« 大学院生がシナリオ執筆支援システムの研究を学会で発表 | トップページ | 先端メディア学「感性表現による音声コミュニケーション」その3 »

大学の演習で人の声でメロディを演奏するボコーダ作成!

|

みなさん、こんにちは、

メディア学部には「専門演習」という演習があります。20種類ほどの演習の中から好きな演習を2つ履修します。その中の1つが「音・音声インタフェース」です。この演習では、プログラミングで楽器音を発生するシンセサイザを作成します。
楽器の音色は音の中に含まれるいろいろな振動の混ざり具合で決まります。これを周波数分布といいます。ところで「あ」とか「い」とかの区別も周波数分布の違いなのです。つまり、言葉は様々な楽器を取り替えて発音しているようなものなのです。
シンセサイザで楽器音の代わりに人の声を発生させるものをボコーダと言います。「音・音声インタフェース」では、線形予測分析という方法を使ってボコーダプログラムを作成します。
前景予測分析の仕組みを図1に示します。過去の実測値で次の実測値を予測するもので、過去の実測値に定数を掛けて和を取ったもので予測するので「線形予測」と言います。定数は予測ができるだけ実測値に近づくように設定します。この予測値と実測値の差を予測誤差と言いますが、実はこれは、声帯から爆発的に流れ出すインパルスに相当するのです。この線形予測の式を書き直すと図1の一番したの式のように過去の実測値から求められる予測値と予測誤差から次の音が求まるという式になります。

Photo_3

                    図1 線形予測分析

 

そうすると、図2のように過去の実測値から次々に次の実測値をつくることができます。

Photo_4

                    図2 次々に音声を生成するしくみ

 

予測誤差としてインパルスをある時間間隔で与えると、その間隔で音声振動が発生します。このインパルス間隔が声帯振動周期にあたり、声の高さがこれできまります。図3のようにパルス間隔を変えれば、声の高さを変えられるので、歌を歌わせたりもできるわけです。

Photo_6

                    図3 ボコーダ音声の高さを変えるしくみ

 

プログラミングはMATLABという信号処理ソフトを使います。フリーソフトのScilabを使ってもおなじようなことができます。

 

相川 清明

入試関連」カテゴリの記事

在学生向け」カテゴリの記事

授業紹介」カテゴリの記事

« 大学院生がシナリオ執筆支援システムの研究を学会で発表 | トップページ | 先端メディア学「感性表現による音声コミュニケーション」その3 »