音声認識最前線

ディープラーニングを用いた音声認識の最前線を伝えます。

はじめに

ディープラーニングの登場によって、音声認識の性能は大きく向上しました。ここでは、ディープラーニングを用いた音声認識について説明していきます。

音声認識の基本

音声認識はいくつかのモジュールから成り立っています。それが、音響モデル、言語モデル、辞書、デコーダです。

                                                                                                 basis_of_asr.png

  • 音響モデルは、どのような音がどのような記号と対応しているのかを学習します。一般的には、おおよそローマ字の1文字に対応する音素という記号を用います。音素は /a/ のように表現します。どの音素がもっともらしいのかを音響尤度という確率で表します。
  • 辞書は、音素の組み合わせがどのような単語と対応しているかを示します。
  • 言語モデルは、単語がどのような順番で並びやすいのかを学習します。たとえば、「おはよう」という単語の次には「ございます」が続きやすいと言うことを学習します。これによって、音素の認識がうまくいかなかった場合でも、正しい単語が出力されるようにします。このとき、どの単語が続きやすいのかを言語尤度と呼ばれる確率で表現します。
  • デコーダは音響尤度と言語尤度から文章を作ります。

従来の音声認識モデル GMM-HMMベース

ディープラーニングが使われる前の音声認識モデルはGMM-HMMと呼ばれるものでした。GMMはガウス混合モデル(Gaussian Mixture Models)の略で、HMMは隠れマルコフモデル(Hidden Markov Models)の略です。

まず、GMMとHMMについて説明します。

GMM

下図で一つのグラフが正規分布を示しています。GMMとは正規分布に重みをつけて足し合わせたものです。このようにして複雑な確率分布を表現します。

                       Screenshot from 2018-11-01 17-35-30.png

下図で各点は、ある音素を発音したときの音声データを表していると思ってください。青が/a/で黄色が/i/のデータだとします。新しい点が入ってきたとき、これを/a/なのか、/i/なのかを見分けるためには、/a/の音のGMMの確率値と/i/のGMMの確率値を比べて、大きい方の音素が正しいとします。

                            Screenshot from 2018-11-01 17-29-13.png

HMM

                                                            HMM.png

HMMは上図で表現されるような確率モデルです。一つ一つの丸が状態を表しています。矢印は時間の流れによって、どの状態に遷移するかを表しています。このように3っつ連なったもので、/a/などの一つの音素を示します。各状態は、遷移確率と出力確率という確率モデルを持ちます。通常、遷移確率はスカラーです。GMM-HMMでは出力確率をGMMによって表現します。これによって、音素の初めの方や真ん中の方、終わりのほうで音がどのように変化するのかを表します。

言語モデル

通常、GMM-HMMの言語モデルには、N-Gramを用います。N-Gramは単語がN個続いたとき、次にどの単語が着やすいのかを確率で表したものです。音声認識では通常、 N=3か4 を用います。

WFST

HMMをデコードする方法は複数存在します。最近もっともよく持ちいられるものが WFST (weighted finite state transducer; 重み付き有限状態トランスデューサーです。WFSTはオートマトンの一種で、入力、出力、重みを持ちます。下図で矢印のところにかかれているのがそれで、 a:x/0.5 の場合、入力が a、出力がx、重みが 0.5 です。εは何も出力しないことを示します。例えばここで、 「aabcb」 が入力されると、「xxyz」が出力されることになります。

                                                            WFST.png

HMMやN−Gram、及び、辞書はそれぞれWFSTに変換することができます。これによって、音響モデルや言語モデル、辞書の探索をWFST上の最短パス探索問題に帰着することができます。

GMM-HMM音声認識の認識率は80%程度でした。

ハイブリッドDNN-HMM

DNN-HMMはGMM-HMMの音響尤度の表現をDNNに変えたものです。DNNはディープラーニングのことで、ディープラーニングがでたころはDNN(ディープニューラルネットワーク)と呼んでいたことの名残です。DNNのほうがHMMよりも正確に音響を正確にモデル化できるために性能が上がりました。DNN-HMMによって、これまで80%程度だった音声認識率が、85%程度に改善しました。

End-to-End音声認識

End-to-End は、はじめから終わりまでという意味で、一つのニューラルネットワークで音声認識を行う方法です。E2Eと略します。日本語の場合は完全なE2Eにはならず、音素、または、かなから漢字に変換する工程を持つことが多いです。CTC (Connectionist Temporal Classifier)というニューラルネットワークでデコーディングに相当する演算ができるようになったことで実現しました。

初期の有名なE2E音声認識器は Baidu のDeepSpeech2です。

DeepSpeech2

Deep Speech 2: End-to-End Speech Recognition in English and Mandarin

https://arxiv.org/pdf/1512.02595.pdf

                         DeepSpeech2.png

DeepSpeech2は上のようなネットワーク構造をしています。まず、3層程度の 2dCNNによって音響をモデリングし、その上にLSTMなどのLSTMのによって時系列構造を学習します。さいごにフルコネクティッド層にとおして、CTCによってデコードを行います。

日本語のデータはありませんが、雑音のない英語の音声認識率は92%程度にまで上がりました。

LAS

LAS は Listen Attend and Spell の略です。最近では、LASを拡張した音声認識モデルが多いです。

Listen, Attend and Spell

https://arxiv.org/pdf/1508.01211.pdf

                LAS.png

LASは上のようなネットワークになっています。まず、下にあるピラミッドLSTMからなるリスナーによって音響をモデル化します。その後、上にあるスペラーからリスナーにアテンションと呼ばれる結合を貼ります。さいごにスペラーのLSTMによってデコードを行います。LAS単体でも英語音声認識では90%程度の認識率を示します。

LAS based joint CTC with Attention 

LASにCTCをくわえてマルチタスク学習を行ったのが joint CTC with Attention です。

Joint CTC- Attention Based End-to-End Speech Recognition Using Multi-task Learning

https://www.merl.com/publications/docs/TR2017-016.pdf

                                                                                         joint_ctc_attention.png

右側のLASのネットワークにCTC加え、CTCでもデコードを行います。これによって、日本語でも93%程度の認識率を叩き出せるようになりました。

Policy Learning

IMPROVING END-TO-END SPEECH RECOGNITION WITH POLICY LEARNING

https://einstein.ai/static/images/pages/research/improving-end-to-end-speech-models/policy-learning.pdf

これは、強化学習の手法である方策勾配法を音声認識に応用した手法です。雑音のない英語の音声認識率はじつに 98%程度もあります。

まとめ

駆け足でしたが、古典的な音声認識から、最近の音声認識モデルまでの紹介を行いました。

LAIRO は Convergence Lab.がAIの最前線をお届けするメディアです。

ドキュメントアクション