音声認識って、実際どんなことしてるの?

2012.12.07 12:00
  • このエントリーをはてなブックマークに追加

121206_speechrecognition1.jpg


たとえばSiriさんは、いつも何してるんでしょう?

コンピューターを声で操作することが、どんどん可能になっています。コンピューターに命令してお母さんに電話をかけたり、ピザ屋さんを探させたり、メールを書かせたり、いろんなことができます。間違えることもありますが、かなり正しく動作してくれます。

そんなときにコンピューターが実際どう動いているかを知ると、ちょっと感動します。だって、空気圧の小さな変化を捉えて、それにいろんな処理をかけて言葉に変換していくんです。

音声認識技術は最近開発されたものではなく、長年蓄積された成果が現在のスマートフォンなどのソフトウェアに生かされています。それがどんな流れになっているのか、Mental Floss誌が、以下の7ステップにまとめてくれました。

 


 

1. 空気の動きを数字に変換


音は耳に、またはコンピューターのマイクに、空気の圧力の変化、つまり音波として捉えられます。コンピューターはその波を特定の時間間隔で測定し、保存していきます。測定間隔が長すぎると、音波の中の重要な変化を逃してしまいます。音波を適切に測るには、1秒あたり8000回測定しなきゃいけません。さらに音質を高めるには1秒あたり4万4100回の測定が必要です。このデジタル化のプロセスが、言い換えると「8kHz」とか「44.1kHz」になります。


121206_speechrecognition2.jpg


Image:Wikimedia Commons


2. 音波のどこが音声かを推定


コンピューターが音波を捉えても、そのどこが音声によるもので、どこが背景の車の音(または衣ずれやハードドライブの動作音)か、そのままではわかりません。なので、音波のデータに様々な数学的処理をかけて、音声らしくないデータを取り除いていきます。人間は「音声ってこんなもの」と何となくわかってはいますが、それをコンピューターに教えてノイズを完全に除去するのは難しいことです。


3. 音声の判別に使う音波を検出


121206_speechrecognition3.jpg


Image:Wikimedia Commons


声による音波は、異なる周波数の音波の複雑な組み合わせでできています。特定の周波数がどう変化し、どんな強さになっているかを見ることが、その音波が「アー」なのか「イー」なのかを判別するために重要です。ここでもさまざまな数学的処理をして、音波から重要な部分を取り出し、数値に変換します。


4. 音の「かたまり」をチェックし、何の音かを推定


音声を細分化する際の音の「かたまり」、または「音素」は、たとえば英語なら40種類あります。コンピューターには音素の事例がたくさん与えられていて、どんな音がどの音素かはだいたい判別できるように学習させられてあります。でも、実際の音素の発声の仕方は人によって違うし、同じ音でも隣にある音素によって変化します。たとえば、「star」という単語の中の「t」と、「city」の中の「t」はかなり違う音です。コンピューターは、さまざまな前後関係の中で各音素がどう発声されるかのモデルを知っている必要があります。


5. 音素から単語を推定


コンピューターは単語の巨大なリストを持っていて、そこには各単語がどう発音されうるかも複数パターン入っています。そしてコンピューターは、音素の連続を分割して、それがどんな単語でありうるかを推定します。もし、ある連続した音素について「hang ten」という単語列らしいと推定できる場合、それは音だけだと「hey, ngten!」とも推定できてしまうかもしれません。でも「ngten」という単語は辞書にないので、そんな推定は成立しないことになります。


6. 単語列を推定


音声では、文字と違って単語の切れ目がずっと曖昧です。コンピューターは、有効な単語にマッチする音素列を探すことで、単語間の切れ目を見つける必要があります。

ある連続した音声がどんな単語で構成されているかについては、複数の推定が可能です。たとえば、「What do cats like for breakfast?(ネコは朝食に何を食べたい?)」という音声は、音から単語を拾うだけなら、「water gaslight four brick vast?(水ガス灯4つのレンガ広い?)という単語の羅列だと推定できるかもしれません。が、コンピューターが「ある単語の次にはどんな単語が来やすいか」のモデルを学習しておけば、どんな単語列がもっとも適切かを推定できます。

システムによっては、他の情報(たとえば隣り合わない単語同士の依存関係)まで考慮する場合もあります。でも、使う情報が多ければ多いほど必要な処理能力も大きくなっていきます。


7. アクションへ


コンピューターが与えられた音声がどんな言葉かの推定を終えると、それに基づいてアクションをとります。音声からテキストに起こすソフトウェアであれば、推定結果を画面に表示します。コールセンターの自動応答ソフトウェアであれば、何らかのメニュー項目にあてはめようとします。Siriであれば、電話をかけたりネットを検索したり、何らかの答えを出そうとします。

処理に多少時間がかかったり、結果が間違っていたりすることもありますが、それでも短時間にこれだけのことをしているんですね。Siriさん、というか、今のコンピューターって、すごいですね!


Arika Okrent - Mental Floss(原文/miho)

  • このエントリーをはてなブックマークに追加
  • おしえてしりせんせい(Teach me Miss Siri)
  • イオシス
・関連メディア