HOW AI LISTENS
AIは、音を文字にする
音声認識(ASR)は、音声生成の逆再生です。 マイクに届いた波形を「特徴の地図」に変え、フレームごとに音を当て、 重複と空白をたたんで文字列にし、最後は文脈で直す—— CTC方式のASR(wav2vec2などが採用する仕組み)が聞き取る内部を、実際に音を鳴らし、実際に計算しながら5ステップで体感します。 🔊 音が出ます。音量にご注意ください。
はじめる ↓音を、受け取るINPUT WAVEFORM
音声生成では、波形は最後に出てくる「出口」でした。 認識では、同じ波形がいちばん最初の「入口」になります。 AIが受け取るのは意味でも文字でもなく、1秒間に約44,100個の数値の列——ただの波。 ここから「こんにちは」という文字列にたどり着くまでが、この章の旅です。
INCOMING AUDIO — 聞き取る音声を選んで入力する
波を、特徴の地図にするMEL SPECTROGRAM
モデルは生の波形を直接読みません。まず「どの高さの成分が、いつ、どれだけ強いか」の地図= メルスペクトログラムに変換します。 Whisperの入口もここ——波形を時間×周波数の1枚の画像にしてから、ニューラルネットに渡します。 生成編で「音を絵にした」のと、まったく同じ絵です。
WAVEFORM → SPECTROGRAM — 入力音を特徴に変換する
フレームごとに、音を当てるACOUSTIC MODEL
音響モデルは、スペクトログラムを短いフレーム(約20〜30ミリ秒)ずつに区切り、 各フレームで「これはどの文字らしいか」の確率を出します。 下のヒートマップはフォルマントの近さから実際に計算したもの。 縦=文字の候補、横=時間。各列でいちばん明るいマスが「その瞬間の答え」です。
FRAME EMISSIONS — 文字候補 × 時間フレーム(実計算)
重複と空白を、たたむCTC ALIGNMENT
フレーム数と文字数は一致しません(「は〜」は何フレームでも1文字)。 このズレを吸収する仕組みがCTC。ルールはたった2つ: ①連続する同じ文字は1つにまとめる ②␣(ブランク)を消す。 STEP 03で出た生の系列を、実際にこの2ルールで畳んでみましょう。
COLLAPSE — 生フレーム系列を文字列にたたむ
文脈で、直すLANGUAGE MODEL RESCORING
音だけでは決められないことがあります——同音異義語です。 「きしゃ」は貴社・記者・汽車・帰社のどれ? 音はまったく同じ。 そこでCTC方式のASRは、候補となる文字列を言語モデル(文章の続きを予測する力)で スコアの付け直し(リスコアリング)をして、文脈に合う方を選び直します。 スライダーで「言語の力」を強めてみてください。
HOMOPHONE RESCORING — 音は同じ、文脈で決める(実計算)
聞こえた音: きしゃ の きしゃ が きしゃ で きしゃ した