« 「料理はデザインだっ!」なお話 ~カレー会を題材に~ | トップページ | 情報処理学会全国大会学生奨励賞受賞研究の紹介(3): 女子学生の活躍 »

演習でカラオケ練習機を作る 

|

みなさん、こんにちは、

 
東京工科大学メディア学部の演習「音・音声インタフェース」でボコーダを作る話を書きました。
今日は、カラオケ練習機を作った話を書きましょう。
カラオケで良い点を取るには、音の高さが伴奏と合ってなくてはいけません。みなさんは、小学校や中学校で、ピアノの伴奏に合わせて「ドー」とか「レー」とか発声練習したことはありませんか?メディア学部の演習では、それと同じようなことができるものを作りました。
演習では、カラオケ練習機をコンピュータのプログラムで作ります。カラオケ練習機を作る演習の1回前の演習でコンピュータに接続されたマイクに向かって話しかけると、音声部分だけ取り出してくれるプログラムを作ってあります。音声部分だけ取り出すことをVAD( Voice Activity Detection)といいます。実は、これ結構難しいのです。単に音のある部分を取り出せばいいのではありません。ドアの閉まる音などの雑音は無視して、音声だけ取り出さなくてはならないからです。
 
さて、カラオケ練習機の作り方の手順です。
 
1、コンピュータの画面上にピアノの鍵盤を作る
2、鍵盤をマウスクリックするとどのキーを押したかがわかるようにする
3、押されたキーに応じて音が鳴るようにする。
4、音声取り込みの待ち受け状態にする。
5、前回作った音声取り込みプログラムで「ミー」などの音を取り込む
6、声の高さ(周波数)を求める
7、鍵盤上に声の周波数にあたるキーにマークをつける
 
これで、発声した音の高さが合っているかわかりますね?
 
さて、どんなしくみで声の高さ(周波数)を求めるのでしょう?
 

この演習では、簡単に計算ができるケプストラム法を使って声の高さを求めます。

ケプストラムというのは周波数軸上の振動成分を分析する手法です。図1はケプストラムを理解するための模式図です。

Photo_4

               図1 バイオリンの周波数成分分布のケプストラム分析

 

図1はバイオリンの音の周波数成分を表しています。基本周波数というのが、音の高さの感覚を決める周波数で、楽器音はこのように基本周波数の整数倍のところに「倍音」と呼ばれる振動成分を含みます。この周波数軸上の規則的な周波数分布を周期成分に分解するのがケプストラム分析です。1次は周波数軸に波1回分の半分が乗っていることに対応します。2次でちょうど1回分の波の振動ですね。この図では12次の周期成分が上のバイオリンの音の倍音の並びに一致していることがわかります。12次だと、波の繰り返しが6個ありますね。

有名な「サンプリング定理」によって、ディジタル信号の最高周波数は1秒間にいくつの音のサンプルがあるかというサンプリング周波数の半分であることがわかっています。図1では最高周波数が4800Hzです。これが、サンプリング周波数の半分ということなので、サンプリング周波数は4800Hzの2倍の9600Hzということになります。図1では基本周波数の周波数目盛の読みは800Hです。さて、今わかっている数値はサンプリング周波数9600Hzとケプストラムの値12です。これらの数をつかって、基本周波数の800Hzを求めるにはどうすればいいでしょうか?なんと、サンプリング周波数の9600Hzを12で割れば800Hzが求まることがわかります。なお、図1はわかりやすく説明するための模式図で、実際はもっと高いサンプリング周波数を使っています。

この原理をつかって、人の声の基本周波数を求めれば、カラオケ練習機の出来上がりです!

相川 清明

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

高校生向け」カテゴリの記事

« 「料理はデザインだっ!」なお話 ~カレー会を題材に~ | トップページ | 情報処理学会全国大会学生奨励賞受賞研究の紹介(3): 女子学生の活躍 »