AI

音声処理とモデルの軽量化・エッジAI|音素からWaveNetまで

AI

スマートスピーカーに話しかけると、その場ですぐ応答が返ってきます。音の波形を言葉に変える処理と、モデルを小さくして手元の機器で動かす工夫が噛み合った成果です。

こんにちは、zawato(@zawato7)です!

本記事はディープラーニング入門ロードマップの第31回です。画像・言語ときて、残るモダリティである音声を扱います。

この記事でわかること
  • 音素・音韻の違いと、音声が文字になるまでの流れ
  • メル尺度・MFCC・WaveNetといった頻出用語の意味
  • 蒸留・量子化・プルーニングとエッジAIの考え方

 

 

音声処理は「音素を当てる」ための下ごしらえ

音声認識は、アナログ音声をデジタル化し、特徴量を取り出し、音素を推定して文章にする流れで進みます。まず押さえたいのが音素と音韻の違いです。

用語意味
音素言語に依存せず、人間が発声できる音の最小単位
音韻その言語において区別される、ことばの音の最小単位

最初の工程はAD変換です。一般にはPCM(パルス符号変調)が使われ、標本化と量子化の2段階で波形を数値の列にします。

次が特徴量の抽出です。音は周波数の合成なので、FFT(高速フーリエ変換)で成分に分解します。これを時間に沿って並べ、画像のように表したものがスペクトログラムです。

ただし人の耳は周波数が高いほど違いを感じにくくなります。この感覚に合わせた目盛りがメル尺度、それで補正した特徴量がMFCC(メル周波数ケプストラム係数)です。周波数のピークはフォルマントと呼び、母音の識別に使われます。

 

 

音声認識と音声合成|WaveNetとCTC

特徴量から音素列を当てるのが音声認識、言葉から波形を作るのが音声合成です。古典的にはHMM(隠れマルコフモデル)で音素列を推定していましたが、いまはディープラーニングが主流です。

代表格がWaveNetです。飛び飛びの間隔で畳み込むダイレイテッド畳み込みを用いたCNNベースのモデルで、人が話すような自然な音声合成を実現しました。

もうひとつがCTC(Connectionist Temporal Classification)です。同じ「あ」でも伸ばす人と短く切る人がいるように、音の長さと文字数は一致しません。CTCは対応する文字がない区間に空文字を割り当てて吸収します。

音声は順序を持つデータなので、扱い方はLSTMなど時系列モデルと地続きです。近年はTransformerベースの音声認識モデルが精度を伸ばしています。

 

 

モデルの軽量化は蒸留・量子化・プルーニングの3つ

高精度なモデルほど重くなるため、精度を保ったままサイズと計算量を減らす手法が用意されています。覚えるべきは次の3つです。

手法やること
蒸留学習済みモデルの入力と予測値のペアを教師データに、小さなモデルを作る
量子化重みを32ビットから8ビットなどへ落とし、メモリと計算量を減らす
プルーニング予測への影響が小さい部分(重みの小さい結合など)を削除する

蒸留では元のモデルを教師モデル、新しく作る小さなモデルを生徒モデルと呼びます。知識を引き継ぐ点で転移学習と発想が近い手法です。プルーニングの背景には、大きなネットワークには当たりのサブネットワークが含まれるという宝くじ仮説があります。

 

 

エッジAI|クラウドと置き場所を使い分ける

エッジAIとは、カメラやスマートフォンなど現場の端末側でモデルを動かす方式です。クラウドに置くか端末に置くかで、得られるものと失うものが分かれます。

配置メリットデメリット
クラウド精度の高い大きなモデルが使える/更新が容易通信の遅延/障害時の影響が広い
エッジリアルタイム性が高い/通信量が少ないモデルが小さくなる/端末ごとの保守が大変

工事現場の映像監視のように、動画をすべてクラウドへ送ると通信量が跳ね上がる場面ではエッジが有利です。ただし端末の性能は限られるため、前節の軽量化が前提になります。代表例のMobileNetは、畳み込みを分解して計算量を減らし、端末で動く大きさに収めたモデルです。

 

 

まとめ

  • 音声認識はPCMでデジタル化し、FFTとMFCCで特徴量を取り出して音素を推定する
  • 音声合成・音声認識の代表はWaveNet。音と文字の長さのズレはCTCが吸収する
  • 軽量化は蒸留・量子化・プルーニングの3つ。これがエッジAIを支える土台になる

 

 

よくある質問

Q. 音素と音韻はどう違うのですか?
A. 音素は言語を問わず人間が発声できる音の最小単位、音韻はその言語で意味の区別に使われる音の最小単位です。言語に依存しないほうが音素と覚えます。

Q. メル尺度は何のためにあるのですか?
A. 物理的な周波数のままでは人の聞こえ方とズレるためです。感覚に近い目盛りに直すのがメル尺度で、それを用いた特徴量がMFCCになります。

Q. 量子化が2か所に出てきますが同じ意味ですか?
A. 別物です。AD変換の量子化は音の大きさを段階的な数値に丸める処理、軽量化の量子化はモデルの重みのビット数を減らす処理を指します。

Q. エッジAIとクラウドはどちらを選ぶべきですか?
A. 用途次第です。応答の速さや通信量の削減が重要ならエッジ、精度や更新のしやすさを優先するならクラウドが向きます。端末で一次判定してクラウドへ送る併用構成もよく採られます。

 

 

コメント