人はなぜ初対面の人の言葉が分かるのでしょうか? そして、1歳半前後の幼児でも、言葉の持つ意味は別として、人の言葉をちゃんと聞き分けます。なぜなのでしょうか? 人間のこの不思議ですばらしい能力に驚嘆させられると同時に、音声による情報伝達のしくみに強い興味が湧いてまいります。
そこで、この疑問に挑戦すべく、独自の仮説を打ち立ててみました。それは「音声を構成する全ての音素が特定の周波数スペクトルで表現される」というものです。この仮説が正しければ、周波数スペクトルを用いて1音節毎に音素を求め、それらをつなぎ合わせることで、音声認識が行えることになります。音声認識環境に影響を受けにくい、ロバスト性の高い音声認識法を目指して、母音と子音それぞれについて検証してみました。
結論としては、 音声データを分析して得られた周波数スペクトルを元に、分析区間内での各周波数成分の含有比率(以後、振幅比率と呼びます)を求めて検討した結果、仮説通り特定の周波数スペクトルが、一定の強度割合以上に存在するかどうかを調べることにより、母音や子音を音声認識できることが分かりました。
このホームページは、以下の内容で構成されています。
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
☆ 母音の周波数スペクトルによる音声認識
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
1. 母音「あ」「お」「え」「い」{う」の音声波形
2. 母音「あ」「お」「え」「い」「う」の音声特徴を周波数スペクトルで表現する
3. 母音「あ」「お」「え」「い」「う」の特徴を「振幅比率」で表現する
4. 母音のまとめ
音声は空気の振動で伝わります。この空気の振動をマイクロフォンで電気的に捉えて視覚的に表示することで音声波形を見ることができます。先ずは母音「あ」を見てみましょう。音声波形を図a-1に示します。この図で振幅電圧は最高で1V程度を示しています。
図a-2に波形の一部を拡大してみました。しかし、拡大した波形をじっと眺めていても「あ」の特徴を見つけることは難しそうです。
それでは、同じ話者がマイクに向かって「お」を発声した場合にはどうなるのでしょうか? この時の音声波形を図o-1に示します。また、図o-2は図o-1の一部を拡大したものです。「あ」に比べてピーク幅が広くシンプルな印象をうけます。
さて、今度は図e-1に「え」の音声波形を示します。図e-2にその一部を拡大しました。「あ」や「お」に比べてピークの外観がだいぶ複雑に変化してきました。小刻みに変化する曲線が多くなっています。
更に、図i-1に「い」の音声波形を示します。図i-2に音声波形の一部分を拡大しています。音声波形全体が鋭い小さなピークで覆われています。この状態は丁度、周期の大きな波に高い周波数が重畳されているようです。しかし、このままでは依然として、母音「い」の音声特徴を定量的に説明することは困難です。
最後に、同じ話者が「う」を発声した場合にはどうなるのでしょうか? この時の音声波形を図u-1に示します。 また、図u-2は図u-1の一部を拡大したものです。「お」に比べてピーク幅がより広い感じがします。また、母音「え」の音声波形に少し似ています。一体「う」の音声特徴はどこにあるのでしょうか?
それでは、これから新しい手がかりを求めて宝探しに出発しましょう。皆さんはフーリェ解析という言葉を聞かれたことがある思います。この手法は、複雑な形をした波形を一定区間毎に区切って周波数分析し、単純な純音の組み合わせに分解することで周波数スペクトルを求めるものです。この手法を使って、図a-2、図o-2、図e-2、図i-2及び図u-2それぞれの図中で記述した分析区間について、取り敢えず音声波形を構成している周波数成分を求めてみましょう。ここでは、波形を構成する周波数成分を横軸で表し、また、それぞれの周波数成分の強さ(振幅)を縦軸にとって振幅スペクトルを表しています。周波数成分の分解能は区切りよくおおよそ100Hz刻みで求めてみます。因みに、この値は、アナログ音声をデジタルデータに変換する時のサンプリング速度と、フーリェ解析する際の処理データ数に依存するので、組み合わせを適宜選択する必要があります。周波数分析の結果が、図a-3、図o-3、図e-3、図i-3及び図u-3です。
図a-3で、最初に目に付くのは、800Hzにある振幅約14の大きなピークです。どんな働きがあるのでしょうか? 実はこのピーク、「あ」を特徴づけるための周波数成分としての意味を余り持っていないようなのです。
むしろここで大事なことは、「あ」を構成する周波数成分の振幅が、1200Hzを越えた高い周波数領域で急激に小さくなるという事実です。
つまり、「あ」を構成する周波数成分の中で、振幅が仮に3以上となる最大周波数は、1200Hzになっています。以後この周波数を境界周波数と呼ぶことにします。
以上の事実は、音声認識の上でどういうことを意味するのでしょうか? 「あ」については、このくらいで一旦置きましょう。
次に、図o-3を見てみましょう。500Hzにある振幅19程度の大きなピークが目に付きますが、このピークが「お」の音声特徴なのでしょうか? 図a-3と図o-3をよーく見比べると、心なしかグラフ全体がこじんまりとしているのに気づきます。どこがちがうのでしょうか? 「お」を構成する周波数成分の境界周波数が、「あ」の1200Hzに対して900Hzと小さいためではないでしょうか。
言い換えると、「あ」の場合には振幅の大きな(仮に3以上)周波数成分が広域に分布していましたが、「お」の場合は、明らかに 振幅の大きな周波数成分の分布が、グラフ左側の比較的低い周波数領域の狭い範囲に偏っています。
「あ」の場合は、このように音声周波数が低域から広域まで広帯域に分布しているため、「お」よりも声の通りがよいのではないでしょうか。私たちは、危険な時に「あぶない」と叫びますが、「あ」の部分を「お」に置き変えるとどうでしょうか?「おぶない」となってしまい、緊迫感がだいぶ低下しそうです。
それでは図e-3を見てみましょう。「あ」及び「お」と異なり、振幅が仮に4以上の大きなピークは700Hz付近まで後退しました。そして同時に1900Hz、2000Hz及び2600Hz付近に新たなピークが現れました。ここで大事なことは、これまでと同じ要領で、境界周波数が700Hzだと早合点してはいけないということです。実は、1900Hzまたは2000Hz或いは2600Hzにある振幅強度3〜5程度のピークが、重要な意味を持っているのです。この周波数範囲にこれらのピークが存在することで、「え」の音声認識が可能なことが分かりました。図e-2の小刻みに変化する小さなピークの波長をグラフ上で概略測定すると、振幅スペクトルに現れる1900Hzから2600Hzの周波数成分と符号します。
さて、音声認識条件を設定する際に考慮しなければならないことは、たとえ同一人であっても声の大きさや調子がその都度一定でないことと、話し手によって声の質が異なり、その影響で振幅スペクトルパターンが変動するということです。 このため周波数成分の大きさ(振幅)をいつでも正しく比較するための工夫が不可欠となります。
図i-3を見てみましょう。図e-3と同じように、振幅4以上の周波数成分は、500Hz付近まで後退しました。そして同時に4500Hz付近に新たなピークが出現しました。
図u-3は「う」についての振幅スペクトルの図です。500Hz以下の低い周波数領域にある大きなピーク群と、700Hzから1200Hzに存在する一見、音声特徴らしいピーク群で構成されています。しかし、後者のピーク群は「あ」または「お」に出現する音声特徴であった筈です。遂にこの仮説もここで破綻するのでしょうか? この続きは振幅比率の項であらためて検討したいと思います。
ここでは、振幅強度で表現された振幅スペクトルの図を振幅比率で表してみます。その方法は、周波数成分(直流成分を除く)のそれぞれの振幅強度を足しあわせて振幅の合計値を求め、次にこの合計値に対する各周波数成分の振幅比率を求めるものです。とても簡単な方法ですが、これにより振幅の正規化をはかることが可能になります。
図a-4、図o-4、図e-4、図i-4、図u-4は、それぞれ「あ」「お」「え」「い」「う」について、縦軸を振幅比率で表現したものです。
「あ」、「お」、「え」及び「う」の場合、振幅スペクトルの振幅値と振幅比率が同じ様な値になり、振幅比率の効果がはっきりと見えませんが、声の大きさが小さい場合の判定には大きな効果があります。
さてそれでは、「あ」と「お」を区別するための境界周波数と振幅比率の関係はどうなっているのでしょうか?
男女複数の人の「あ」と「お」のスペクトルパターンを収集し、上記の原則を当てはめた結果、「お」を認識するためには、基本周波数(男:約125Hz、女:約250Hz)に無関係に振幅比率3以上の周波数成分が、800Hzから1000Hzの間に存在することが必須条件であることが分かりました(マイク等の性能で数字は若干変動します)。
一方、「あ」の正しい音声認識のためには、振幅比率3.8以上の周波数成分が、1200Hzから1700Hzの間に存在することが必要条件であることも分かりました。
「あ」を発声したときに、「お」のスペクトルパターンが、音声波形のどこかの位置で出現することはありますが、「お」を発声したときに「あ」のスペクトルパターンが出現することはないようです。
また、「え」について多くのデータを収集し分析した結果、1900Hzから3000Hzの間に振幅比率2以上の周波数成分がある時に、「え」を認識できることが分かりました。
「い」の場合、振幅比率が概ね3以上となる周波数は、4500Hzとなりましたが、他の話者についても特徴的な周波数を求めた結果、概ね3700Hzから5300Hzまでの間に特徴ピークが出現することが認められました。
「い」を発声したときに「え」のスペクトルパターンが音声波形のどこかの位置で出現することはありますが、「え」を発声したときに「い」のスペクトルパターンが出現することはないと言えます。
音声認識を行う際には、このように音素間の優先順位を考慮して判断する必要がありそうです。
「う」は音声特徴を掴みにくい音素ですので、認識基準は以下の方法で求めます。先ず「あ」を認識するためのプログラムを使って「あ」及び「う」の音声波形を分析します。この時「あ」の音声波形に対しては「あ」を認識するけれども、「う」の音声波形からは「あ」を全く認識しない条件を求めます。 同様に、「お」を音声認識するためのプログラムを使って「お」及び「う」の音声波形を分析し、「お」の音声波形では「お」を音声認識するけれども、「う」の波形に対しては「お」を音声認識しない条件を見いだします。「う」の音声波形に対して「あ」及び「お」を音声認識しないための条件が求まったら、逆にそれが「う」を音声認識するための条件となります。「う」の場合は2種類の音声認識パターンがありそうです。 その結果、第1のパターンは、@100から400Hzの間に振幅比率20以上の周波数成分が1個以上存在すること、A振幅比率3以上の周波数成分が800から1000Hzの間に3個存在しないこと、また、第2のパターンは、 @振幅比率10以上の周波数成分が500または600Hzに存在し、しかも700から900Hzに存在しないこと、A振幅比率3以上の周波数成分が800から1000Hzの間に2個以上存在しないこと、となります。
母音「あ」、「お」、「え」、「い」及び「う」について、これまでの結果を元に、その音声認識基準を表1から表5に示しました。
この表の見方を表1で説明すると次のようになります。例えば母音領域の任意の区間をフーリエ解析して、周波数成分毎の振幅比率を求めたときに、青い区間に該当する全ての周波数成分の振幅比率が3以下で、周波数700から1000Hzの薄い赤色の区間に振幅比率3.8以上の周波数成分が3個以上存在し、更に1200から1700Hzの薄い赤色区間に振幅比率3.8以上の周波数成分が1個以上存在するという条件が満たされた時に、この分析区間は「あ」であると判定します。他の表についても同じように解釈します。従ってこの表から言えることは、振幅比率に大きく影響を与えない程度の強さのノイズは無視できることになります。つまりロバスト性が大であると言えるかと思います。
今回の音声認識法は、音声認識結果を何パーセントの確からしさといった確率で表現するのではなく、特定の周波数スペクトルパターンが「ある」か「ない」かの2値で、単純に求めることにその特徴があります。
なお、「え」及び「い」の場合、特徴周波数成分は必ずしも波形の全域で観測されるとは限らないようです。
以上5種類の母音について紹介しましたが、母音を音声認識する際は、音素の優先順位(あ>お>う または い>え>う)を考慮して判定する必要があります。
表1から表5までの基準を使用した音声認識プログラムを作成し、未知音声に適用することにより、母音の音声認識を行うことが出来ることを確認しております。
所で話が少し横道にそれますが、音声認識基準の応用例として、喉頭摘出で声帯を失った70歳代男性が、電気式人工喉頭で発声した母音「あ」のデータを紹介します。電気式人工喉頭は小型の振動装置を顎の下辺りに当て、口の形を整えることで発声するものだそうです。子音の中には発声し難いものもあるようです。それでは図extra_a_1に全体の音声波形を示します。また、図extra_a_2に波形の一部を拡大して示します。ピッチ周波数は約70Hz位でかなり低い音声です。耳で聞いた感じは、澄み切った音ではありませんが、発音ははっきりと聞き取れます。
次に、拡大図の中の任意区間を周波数分析し、振幅スペクトルと振幅比率を求めてみましょう。結果を図extra_a_3と図extra_a_4に示します。振幅の大きな周波数成分はだいぶ高い周波数領域に移動しましたが、「あ」を音声認識するための境界周波数は、振幅スペクトル、振幅比率共に表1の基準内にきちんと収まっています。ここでも音声認識基準の有効性が確認できるのではないでしょうか。