Skip to content
Naoya Tech
Go back

How Speech Recognition Works: Turning Speech into Text

35:10 AI

Overview

Voice typing on a phone, auto captions and meeting transcripts all rely on speech recognition. The 1920s toy Radio Rex already jumped out of its kennel when called, but only because a spring let go at sounds around 500 Hz; it took nearly a hundred years for machines to write down what was said. This video follows that history in two halves: first, recognizers built from separate modules for the “ear” and the “brain”, and then single neural networks that learn everything from data.

The middle of the video (5:39–16:08) is a sponsored segment for Typeless, a voice-input app, used to dictate instructions to Claude Code that built the video and open-source pages of this portfolio.

Key Points

Chapters

概要

スマートフォンの音声入力も、動画の自動字幕も、会議の議事録も、音声認識という同じ技術で作られています。1920年代のおもちゃRadio Rexは、名前を呼ぶと小屋から犬が飛び出しましたが、それは500Hzあたりの音でバネが外れるだけの仕掛けでした。機械が話した言葉を文字にできるようになるまでには、そこから100年近くかかります。この動画では、その歴史を2つに分けてたどります。前半は「耳」の役と「頭」の役を別々のモジュールで作った時代、後半は全部を1つのニューラルネットワークにまとめてデータから学ばせる時代です。

動画の途中(5:39〜16:08)は音声入力アプリTypelessの提供パートで、Typelessで話した指示をClaude Codeに渡し、このポートフォリオの動画ページとOSS活動のページを作っています。

ポイント

  • マイクが拾った音は、コンピューターの中では1秒に1万6,000個ほどの数の列で、単語の切れ目は書いてありません。音声認識は、音声Xに対して確率P(W|X)が一番高い単語の並びWを探す問題で、ベイズの定理を使うとP(X|W)×P(W)に置き換えられます。これが音響モデル(耳)と言語モデル(頭)で、言語モデルは文章だけで学習できます。精度は単語誤り率で測り、朗読なら100単語に1〜2個の誤りですが、食事会を離れたマイクで録った音声では4単語に1つ近く間違えます。
  • 波形は25ミリ秒の区間を10ミリ秒ずつずらして切り出し(1秒に100フレーム)、FFT(1965年、クーリーとテューキー)でスペクトログラムにします。周波数をメル尺度でまとめて対数を取ったログメルスペクトログラムが、今の多くのモデルの入力です。以前の認識器は39個の数からなるMFCCを使っていました。
  • 1952年のベル研究所のAudreyは、数字の音を取っておいた型紙と比べて聞き分けました。話す速さの違いは動的計画法を使うDTW(1968年に旧ソ連のヴィンツュク、1971年にNECの迫江と千葉)で吸収しましたが、話す人や単語が変わるたびに型紙を作り直す必要がありました。
  • 1970年代の前半、カーネギーメロン大学のジェームズ・ベイカーとIBMのフレデリック・ジェリネクのグループが、隠れマルコフモデル(HMM)を音声に当てはめました。ベイカーは1982年にDragon Systemsを共同で創業しています。1990年代には、HMMとGMMの音響モデル、発音辞書、N-gramの言語モデル、ビタビのビーム探索を組み合わせたパイプラインが標準になり、のちにKaldi(2011年)などのツールキットで1枚のWFSTのグラフにまとめられました。
  • ニューラルネットワークは、最初はGMMの代わりとしてだけ入りました。GPUで深いネットワークを学習できるようになり、2012年までにはヒントンたちのディープニューラルネットワークが大きな語彙の認識でGMMを上回ります。それでもモジュールは別々に学習するので、前のモジュールの間違いは後ろへそのまま流れていきました。
  • エンドツーエンドのモデルがパイプラインをなくします。CTC(2006年、グレイブスたち)は何も出さないことを表すブランクを使い、あり得る全ての並び方の確率を足し合わせることで、音声と文字の組だけで学習できるようにしました。GoogleのListen, Attend and Spellはアテンションを使い、発音辞書も言語モデルもなしに1文字ずつ書きますが、話し終わるまで書き始められません。RNNトランスデューサーは予測ネットワークを足して話しながら文字を出せるようにし、Googleは2019年にこれを通信なしで動く形でGboardに載せました。2020年のConformerは、Transformerのブロックに畳み込みを足した構造です。
  • 関心は次に学習データの量へ移ります。wav2vec 2.0やHuBERTは隠した音声を当てさせて学び、OpenAIのWhisper(2022年)はインターネットの音声と字幕の組を68万時間集めて学習しました。言語、仕事、時刻を表す記号を使い分けることで、1つのモデルが書き起こし、英語への翻訳、声があるかどうかの判定までこなし、他の評価データでは朗読のデータだけで学習したモデルより誤りが平均55%少なくなりました。一方で、同じ言葉を繰り返したり、聞こえていない文を書いたりすることがあります。
  • Qwen-Audioのような音声LLMは、音声エンコーダー(よくWhisperのものが使われます)の出力を小さな変換の層でLLMに渡します。書き起こしは、要約や質問への答え、感情の判定と並ぶ仕事の1つになりました。ただし、指示の言い方を少し変えるだけで結果がぶれ、同じ内容を文字で渡した場合より推論の正答率が下がるという報告もあります。

チャプター

Watch on YouTube

Share this post on:

Previous Video
How Container Isolation Works: Linux Namespaces, cgroups, Capabilities and seccomp
Next Video
Should GMO Pay the Ransom? A History of Ransomware and Real Cases