音声認識技術について

こんにちは。TabiOです。
本日はAIについて紹介するのですが、特に音声認識について紹介したいと思います。


音声認識技術とは

音声認識と聞くと、iphoneに搭載されているSiri、windowsのCortanaとか、最近話題のAmazon Echo、Google Home、Clova、あとは初音ミクのように話をしたりする技術の総称だと自分は思っていました。
実はこれらの商品は、厳密にはそれぞれ異なった分類をされています。
例えばSiriでいうと、音声対話という分類になります。初音ミクのように歌をうたうような技術は、音声合成という分類になります。
様々な技術が組み合わさり商品として出てきているので、全く使ってないことはないのですが、一般的には上記のように分類されていることが多いです。
では音声認識とはどういう技術で、実際どういう仕組みで動いているのでしょうか。
本日はその謎に迫っていきたいと思います。

声をどうやって認識しているのか?

音声認識技術を簡単に説明すると、人間の会話の音声を認識して、それをテキストに変換する技術の事をさしています。
元になるデータは人間の音声になるのですが、音声は振動なので波で表現することができます。
それが音声波形と呼ばれる図として表現することができます。
 

この波形から、音の最小構成単位である「音素」を特定し、それを手がかりにしてテキストに変換する技術です。
音素とは意味を区別する音声の最小単位のことをさし、日本語の音素は下記です。

 母音:アイウエオ
 撥音:ン
 子音:23種類

例えば「おはよう」を音素に変換すると、o – h – a – y – o – u となり、このアルファベット一文字ずつの単位が音素となります。
音素を使って様々な手法で音声を認識させることができます。
音声を認識させるには、音声認識辞書というものを事前に作成しておく必要があるので、いくつか辞書のモデルを紹介します。

音響モデル

音響モデルは、この周波数成分や時間変化の分析を使ってその声が何かを判別します。
一般的な音響モデルは、数千人、数千時間の音声を統計的に処理したものを基礎としています。
波形を切り出し、特徴量を調べ、音響モデルの元となる音素モデルを作成します。

発話された声の特徴量がどの音素モデルにどれくらい近いかが計算されます。

音響モデルにより、音声から音素をデータとして保持することができます。

パターンマッチ辞書モデル

パターンマッチとは正解データと見比べて同じものならそれと判断するものです。
正解となるデータを事前に用意し、音素が正解データとマッチするかを判断します。
音素は入力された音声の前方から1つずつ探索していくため、探索しやすい構造で保持しておく必要があります。
下記の3つの言葉を例に考えて見ましょう。

言葉 音素
こんにちは k-o-N-n-i-ch-i-w-a
こんばんは k-o-N-b-a-N-w-a
コンバイン k-o-N-b-a-i-N

下の図のように、音素のノードで表現して、共通のものは共通のノードに集約されるようにネットワーク構造を作成しています。

この構造によりパターンマッチングの探索の速度の効率を上げる事ができます。
今回はわかりやすく前方探索で説明しましたが、他にも後方探索等、様々な探索方法があります。

言語モデル

先ほどのパターンマッチ辞書で音素と言葉をうまくつなぎ合わせることができたら、次は文章を表現していきます。
文章は単語と単語のつながりなので、前後の単語から予測をして文章として表現していきます。

ある単語の状態から、次の単語に移動する際に、どの位その繋がりが起こるのかを確率で表現し、定義しています。
「俺は」という文章がある時に、「俺は鈴木・・・」と続く確率の方が、「俺は釈迦」と続く確率よりも高いという事が言えます。
このように、現在の状態から次の状態に遷移する確率を定義するモデルを、HMM(隠れマルコフモデル)といい、現在の音声認識で非常にポピュラーに使われている方法です。
最近では、HMMに代わってRecurrent Neural Networks(RNN)、Long Short-Term Memory(LSTM)の利用が増えてきているようです。
詳しくはこちらの記事参照
このように音素から単語、単語から文章を予測することで初めて、人の音声をテキスト化することができます。
簡単に手順をまとめると下記のようになります。

  1. 音声入力
  2. 話者分離
  3. ノイズ処理
  4. 入力された音声を、音波に変換
  5. 音波から音素を特定
  6. 音素の並びを、予め登録した辞書とマッチングを行い、単語に変換
  7. 変換された単語をつなぎ合わせ文章を作成し、テキストで出力

上記の手順は一つの例のため、順序が前後することや、手法によって流れも変わってくるので目的に応じた手順を進めることが重要だと思います。
一度作成してしまえばどんどん精度をあげることができ、万能に見える音声認識ですが、弱点も存在します。

音声認識の弱点

音声認識は一度精度が良い辞書を作成できてしまえば、汎用的に使えるというメリットがある反面、向いていない分野もあります。
例えば、複数人が同時に発話した場合。
同時に複数の音声入力があると、音素もバラバラに取得されしまい、単語もうまく生成できず、文章にならないことが多いと言われています。
雑音が多い音声の場合。
こちらも声以外の情報がたくさん入って来てしまうと、なかなか正確にデータを取得することが出来ないため、あまり向いていないと言われています。
音声認識の特性を知り、うまく活用できる場を考えて導入することが大切です。

まとめ

音声認識は、簡単そうに見えて結構複雑な処理や精度を求められる技術です。
小学生の頃よくやっていた先生の話を聞いてノートに写すという作業は、人がやると簡単ですが、マシンがやるとなると結構大変な作業のようです。
音声認識の精度がより向上することで、授業の講義、動画の字幕等全て自動で生成してくれる時代がすぐそこまで来ています。
既に音声からテキストを作成する機能は世の中の製品に搭載され始めているため、もしかすると、文字を手で入力するという作業は十年後には残っていないかもしれませんね。


参考記事