# 音声認識
## 定義
音声認識(speech recognition)は、マイクなどで取得した波形データから発話された音声(文字列)を推定するタスクである。処理は「フロントエンド」「音響モデル」「言語モデル」という3つのステップから構成される。フロントエンドは波形データから特徴量(スペクトログラム等)を抽出し、音響モデルは特徴量から音素・文字への変換を行い、言語モデルは音響モデルが出力した候補文字列の意味的・用法的な尤もらしさを評価して最終結果を決定する。3ステップが同時にニューラルネットワークへ置き換わったわけではなく、まず音響モデルがRNN/CNNベースに、次に言語モデルがN-gramベースからLSTM等のニューラルネットワークベースへ置き換わっていった歴史を持ち、フロントエンドは従来手法が使われる場合が多い一方、波形データを直接入力として書き起こしまで一貫してニューラルネットワークで処理する手法も登場している。(Source: [[@2022__Gihyo__ディープラーニングを支える技術 - Chapter 5 ディープラーニングを活用したアプリケーション]] §5.2)
## フロントエンドの処理
波形の特徴を強調するPre-emphasis操作の後、短時間フーリエ変換で時間・周波数ごとの強さを表すスペクトログラムに変換する。音声と関係する低周波成分のみを残し環境音・ノイズに対応する高周波成分を除去するローパスフィルタ、人の聴覚特性を参考に周波数が大きくなるほどサンプリング数を減らすメルフィルタバンクを適用する。(Source: [[@2022__Gihyo__ディープラーニングを支える技術 - Chapter 5 ディープラーニングを活用したアプリケーション]] §5.2)
## 音響モデルの難しさとCTC/RNN-T
音響モデルは、他の系列ラベリング問題と同様に入力系列(フレーム)へラベル(文字・音素)を付与する問題とみなせるが、文字・音素が対応する時間幅が話者・環境・前後の文脈によって大きく異なる点が特に難しい。訓練データには各フレームと書き起こし文字との対応関係(アライメント)が与えられないのが一般的であり、正解の書き起こしと一致する候補解(パス)が複数存在することになる。
CTC(Connectionist Temporal Classification)は、対応なしを表す空白状態の出力を許すことで、文字間の無駄な発音や同じ文字の繰り返しをモデル化する。正解文字列にマッチするパスの集合$G$に対し、対数尤度の和を「log-sum-exp」(log add)で表した損失関数を動的計画法で効率的に最大化する。ただしCTCは各生成文字が直前までの生成文字と入力$x$に条件づけて独立に生成される($p(y_t|x,y_{<t})=p(y_t|x)$)という制約(条件付き確率場の計算と同様の構造)を持ち、直前の生成文字列で条件づけないため表現力に制約がある。RNN-Tはこの制約を外し、それまでの出力$y_{<t}$に条件づけて出力される($p(y_t|x,y_{<t})$)モデルを、隠れマルコフモデル等でも使われる前向き・後ろ向き動的計画法で効率的に学習する。(Source: [[@2022__Gihyo__ディープラーニングを支える技術 - Chapter 5 ディープラーニングを活用したアプリケーション]] §5.2コラム)
## LAS: Listener+Spellerによるend-to-end化
LAS(Listen, attend and spell)は、音声波形の特徴ベクトルを入力、書き起こし文字列を出力として、音素を経由せず直接end-to-endで学習できるモデルである。ListenerとSpellerの2モデルから構成される。Listenerはピラミッド双方向LSTM(pyramid BLSTM、pBLSTM、下の層の2ステップが上の層の1ステップに対応)を使って入力特徴量$x$から特徴量$h$を求め、層を重ねるごとに系列長を1/2にする。LASでは3層のpBLSTMにより系列長を$U=T/2^3=T/8$まで短縮し、各状態の受容野を広げることで後段の注意機構の処理を容易にする。Spellerは、現在の状態と$h$から加法的注意機構(AttentionContext)で背景ベクトルを求め、RNNで次状態を計算し、文字の確率分布を出力する自己回帰デコーダである。
学習時には正解系列に条件づけて学習するが推論時には自身の予測に条件づけて生成しなければならないという分布の不一致は「Exposure Bias」と呼ばれ、LASでは学習時に90%を正解系列から、10%をモデルの予測分布からサンプリングすることで緩和する。推論では、各状態がそれまでのすべての状態・入力に依存し動的計画法(ビタビ復号化)が使えないため、ビームサーチで近似解を求める。言語モデルによるリランキングも精度向上に使われる。(Source: [[@2022__Gihyo__ディープラーニングを支える技術 - Chapter 5 ディープラーニングを活用したアプリケーション]] §5.2、詳細は[[LAS]]を参照)
## 横断的知見
1 ソース目のため、複数ソースの突き合わせによる横断的知見は今後の蓄積に委ねる。[[注意機構]]が扱うクエリ・キー・値による自己注意機構の定式化と、本ページのLAS(Speller側の加法的注意)との突き合わせは、[[注意機構]]ページ側の横断的知見に記載済み。
## 未解決の問い
- CTCとRNN-Tの表現力の差(直前の生成文字列への条件づけの有無)は、実際の音声認識タスクでどの程度の精度差として現れるか。
- LASのExposure Bias緩和策(90/10サンプリング)は、他のsequence-to-sequenceタスク(機械翻訳など)でも同様の比率で有効か。
- フロントエンドが従来手法にとどまりやすい理由(波形データを直接扱うend-to-endモデルとの精度・計算量トレードオフ)は、どのような条件で逆転するか。
## 関連
- source: [[@2022__Gihyo__ディープラーニングを支える技術 - Chapter 5 ディープラーニングを活用したアプリケーション]]
- concept: [[注意機構]] / [[LSTM]] / [[RNN]]
- entity: [[LAS]]
- 書籍: [[wiki/entities/ディープラーニングを支える技術|ディープラーニングを支える技術]]
## 出典
- 岡野原大輔, 『ディープラーニングを支える技術』, 技術評論社, 2022, 第5章 §5.2.