1 of 64

応用音響学

第9回 音声認識システム

情報理工学系研究科 システム情報学専攻 講師

齋藤 佑樹

2 of 64

2026年度 応用音響学 講義スケジュール

2

第01回

04/10

猿渡

第02回

04/17

猿渡

第03回

04/24

猿渡

第04回

05/01

猿渡

第05回

05/08

猿渡

第06回

05/15

猿渡

第07回

05/29

齋藤

06/05

休講

第08回

06/12

齋藤

第09回

06/19

齋藤

第10回

06/26

齋藤

第11回

07/03

齋藤

第12回

07/10

齋藤

第13回

07/24

猿渡・齋藤

(試験)

前半

後半

3 of 64

応用音響学 講義の目的

  • 前半 (猿渡先生担当)
    • 音声分析, 音声符号化, 音声認識, 音声合成, 音響信号処理などに関連する基礎知識について講義する. 応用として, 携帯電話やMP3などの音声音楽情報圧縮技術や音声認識技術・音声合成システムなどがある. 統計的信号処理の基礎, スペクトル解析, パターン認識, 確率モデル, 統計学習, 最適解探策などの基本概念とアルゴリズムを理解し, これらの技術の基礎になる知識と概念の習得を目指す.�
  • 後半 (齋藤担当)
    • 人間の持つ音知覚・音生成の生理とそのモデリング方法を理解することを目的とし, 知覚と生成をシステムとして記述するための基礎事項について講義する. 応用として, 聴覚モデリング, 生成モデリング, 音声言語の認識合成, 生体認証などがある. これらを理解することで, 音に関する知覚と生成を工学的に扱うための知識の習得を目指す.

3

4 of 64

ここから本日の内容

5 of 64

音声に含まれる情報の分類 [Fujisaki96]

  • 言語 (linguistic) 情報: “何を” 話すか�
  • 非言語 (non-linguistic) 情報: “誰が” 話すか (話し手が意図的に制御不可)�
  • パラ言語 (para-linguistic) 情報: “いつ, どのように” 話すか (〃制御可能)

5

こんにちは

本講義で学ぶこと: 音声に含まれる言語内容を

自動で認識するには?

6 of 64

最近の音声認識システムは本当にすごい

6

Google Pixel 8 (2023)

Phonetic typewriter (1962)

“one hundred Japanese monosyllables in which about 3000 transistors and about 5000 diodes”

あ,い,...ん,が,ぎ,....,きゃ,...

Sakai et al., “The phonetic typewriter,” IFIP Congress, 1962.

7 of 64

7

1,000言語以上を認識するための技術開発が進んでいる

8 of 64

本日の講義内容

  • 音声認識とは
  • 音声認識の音響モデル
  • 音声認識の評価

8

9 of 64

音声のもつ情報と, それを扱う主な技術

9

Linguistic

(言語情報)

Para-linguistic

(パラ言語情報)

Non-linguistic

(非言語情報)

音声認識

話者認識�など

音声感情認識�など

物理

情報

物理

テキスト�音声合成

話者制御�音声合成など

感情音声合成�など

音声の認識と合成は対比される技術 (前者は抽象化, 後者は具現化)

こんにちは

こんにちは

10 of 64

テキスト音声認識 (Speech-To-Text)

  • 定義: 入力された音声からその発話内容を自動認識する技術
    • 即ち, 人間による「音を聴取して発話内容を聞き取る」行為を�計算機的に模擬する技術
  • 定式化: 統計モデルとして記述 (NOT 決定論的モデル)
    • なぜ? → 人間の発声は確率的な揺らぎを持つから.
    • 言い換えると, 同じテキストを同じ話者が発話しても, その音声は変動
    • これに加え, 背景雑音, 通信経路, 話者, 感情による揺らぎも考慮したい

10

音声

テキスト

STT モデル

こんにちは

こんにちは

11 of 64

テキスト音声認識の難しさ

  • 音声/テキストのメディアとしての違いを捉えること
    • 音声: 境目の定義が曖昧で, 超高密度な時系列データ
      • サンプリング周波数が16,000 [Hz] → 1秒間に16,000サンプルの情報
    • テキスト: 境目を明確に定義可能な時系列データ
      • ただし, 各トークンの集合体 (例: 語や句) の境目は必ずしも明確でない
  • 本質的に長さが異なる2つの時系列データ間の対応関係を学習すること
    • 「こんにちは」と発話された音声のどこからどこまでが「こ」?
    • サンプル毎のラベル付けはあまりにも非現実的

11

音声

テキスト

STT モデル

こんにちは

12 of 64

難しさへの対処1: 音声/テキストからの特徴量抽出

12

短時間フーリエ変換

(STFT)

こんにちは

テキスト解析�(e.g., G2P*)

/k, o, N, n, i, ch, i, w, a/

*G2P = Grapheme-to-Phoneme (書記素音素変換).

13 of 64

[復習] STFT とスペクトログラム

13

応用音響学 第2回講義資料より引用

14 of 64

日本語におけるテキストの階層構造

14

意味の違いをもたらす�最小単位

日本語において�等時性を持つ単位

母音を中心とした,�対象言語の音声の塊

V

V

V

V

V

V

V

V

C

C

C

C

C

C

C

V: Vowel (母音), C: Consonant (子音).

15 of 64

難しさへの対処2: 部分問題への分割

15

潜在変数として

言語特徴量 を導入

(音声特徴量  からテキスト  を予測する問題に置換)

Bayes の定理

分母は   に無関係

音声 (特徴量) は言語特徴量のみに依存すると仮定

16 of 64

分割された各統計モデル

  • : 音響モデル (acoustic model)
    • 音素と音響特徴量の関係を表すモデル�
  • : レキシコン (lexicon), 単語辞書
    • 単語と音素の対応関係を表すモデル (あるいは辞書)�
  • : 言語モデル (language model)
    • 単語の共起確率を表すモデル

16

言語特徴量が与えられた下での音声特徴量の条件付き確率

単語の生起確率

単語が与えられた下での

言語特徴量の条件付き確率

17 of 64

古典的な音声認識フロー

17

/h a sh i o o k u/

“橋を置く”

“箸を置く”

“端を置く”

“箸を置く”

特徴量

抽出

本講義では音響モデル部分 (音響モデリング) のみを説明する.

(余談: 最近の研究ではこのフローを end-to-end に解く)

18 of 64

本日の講義内容

  • 音声認識とは
  • 音声認識の音響モデル
  • 音声認識の評価

18

19 of 64

系列アラインメント問題

  • 音声認識の音響モデリング → 基本的に系列アラインメント問題に帰着
    • どの時刻の音声特徴量が何の音素に対応するかを推定
    • 具体的には, 複数フレームの音声特徴量が1つの音素に対応する�many-to-one alignment 問題�����
  • どうやってこのアラインメントを求める?
    • 最初期: DP マッチング → 応用音響学 第5回
    • 古典的には: 隠れマルコフモデル (Hidden Markov Model: HMM)
    • 最近では: 深層ニューラルネットワーク (Deep Neural Network: DNN)

19

/a r a y u r u g e N j i ts u o …/

20 of 64

第5回の復習: left-to-right HMM

  • 隠れマルコフモデル (HMM)
    • 状態と出力確率分布を持ち, 状態系列がマルコフ過程に従って決定される.
    • ある観測値系列の生成過程を考えるときに, その状態系列が隠れている�(= 周辺化されている)
    • 状態遷移が一方向のみに拘束された HMM → left-to-right HMM

20

状態1

状態2

状態3

:状態3から状態3への� 遷移確率

観測系列

出力確率

状態系列

21 of 64

HMM 音声認識の定式化

21

言語特徴量

系列

1

2

3

1

2

3

1

2

3

音声特徴量�系列

出力確率

状態系列

(観測不可)

/k/

/o/

/N/

言語特徴量系列と音声特徴量系列のアラインメントは隠れている.

(すなわち, 状態系列が隠れ変数であるモデル)

こんにちは

22 of 64

HMM の尤度関数, 学習と推論

  • 学習: 与えられた学習データを用いて, HMM のモデルパラメータを推定
    • すなわち, (o, l) のペアが複数与えられているもとで, 上記の尤度関数を�最大化する (遷移確率, 出力確率パラメータ) を推定
      • もし正規分布でモデル化するなら, その平均・分散
  • 推論: 学習済み HMM を用いて, 所望の入力に対する出力を推定
    • 確率的にサンプリング or 最尤推定

22

全状態経路で総和をとる (周辺化)

状態経路の尤度

経路が決まったときに, その特徴量を出力する確率 (出力確率)

23 of 64

Baum-Welch アルゴリズムによる学習 (第5回の復習)

  • 尤度の対数をとってみる (対数を取っても最大となる点は不変)
    • 出力確率は多変量正規分布を仮定

23

状態 における平均ベクトル,共分散行列

( は時刻 t における状態)

状態 から に遷移する確率

(ただし, )

この対数尤度関数を最大とする HMM パラメータは解析的に求められない.

(∵対数の中に総和が含まれるため → Baum-Welch アルゴリズム)

24 of 64

Baum-Welch アルゴリズムによる学習 (第5回の復習)

  • 基本的な考え方: 補助関数法に基づく最適化
    • 目的関数を直接的に (局所) 最大化 (あるいは最小化) するかわりに,�目的関数の下限 (あるいは上限) となる補助関数を設ける.
    • この補助関数を最適化することでパラメータを推定する.
  • HMM の場合

24

補助変数を導入

Jensen の不等式を

適用

→ Maximize

具体的には, 補助変数 (状態の事後確率) を求めた後, 下限の式を最大化

25 of 64

HMM 出力確率の確率分布

  • 出力確率分布の選び方には任意性がある (多変量正規分布に限らない)
    • 特徴量間の無相関を仮定 → 共分散が零の多変量正規分布
      • すなわち, 共分散行列の非対角成分が零
    • 特徴量間の相関を仮定 → 共分散が非零の多変量正規分布
      • 例えば, ケプストラムは次元間に弱い相関がある.
    • 特徴量分布の多峰性を仮定 → 混合正規分布 (Gaussian Mixture Model)
      • 例えば, 同じ音素でも前後の音素で特徴量が変わる (調音結合)�

25

共分散が零

特徴量空間

共分散が非零

GMM

26 of 64

デコーディング (学習済み HMM を用いた推論・認識)

  • 入力の音声特徴量系列に対し, 事後確率が最大となる状態系列を推定
    • 即ち, Viterbi アルゴリズム (第5回) で解ける.
    • 選ばれた状態系列に対応する音素が, 認識結果の音素となる.

26

27 of 64

Viterbi decoding

27

音声特徴量�系列

1

2

3

1

2

3

1

2

3

1

2

3

1

2

3

1

2

3

1

2

3

1

2

3

1

2

3

1

2

3

1

2

3

1

2

3

/a/

/i/

/u/

/N/

/a/

/i/

/u/

/N/

/a/

/i/

/u/

/N/

取りうるHMMを

並べたもの

(トレリス)

28 of 64

HMM から DNN へ

  • 音声認識の音響モデリング → 基本的に系列アラインメント問題に帰着
    • HMM 音声認識: 音声特徴量系列から HMM 状態系列を推定�
  • 他の統計モデル (ここでは DNN) でも同様
    • Connectionist Temporal Classification (CTC)
      • 本講義ではこれだけ紹介.
    • Transducer
      • 一般的な「トランスデューサ」=「あるエネルギーを別の形態のエネルギーに変換するもの」
      • 音声認識の文脈では「音声を言語に変換する」という意味で用いる
    • Listen, Attend and Spell (LAS)
      • Attention 機構を使い, ソフトな系列アラインメントを推定

28

29 of 64

寄り道: DNN の学習と表現

  • ベースとなる構造: Feed-Forward NN (FFNN) = 非線形変換のスタック
    • 順伝播 (forward propagation): 入力を NN に通して予測値を出力������
    • モデルパラメータ: NN の結合重みバイアス
    •   と : NN の活性化関数 (非線形写像)
      • 隠れ層は sigmoid, ReLU, tanh など
      • 出力層は解きたいタスクに応じて適切に定義 (認識なら Softmax など)����

29

隠れ層

入力層

出力層

30 of 64

寄り道: DNN の学習と表現

  • ベースとなる構造: Feed-Forward NN (FFNN) = 非線形変換のスタック
    • 逆伝播 (backpropagation): 予測誤差に基づいて NN のパラメータを更新�������
    • L を最小化される目的関数 (例えば二乗誤差) とすると, 反復学習の更新式は��

30

パラメータ θ をもつ DNN による非線形変換

目標値

学習係数

隠れ層

入力層

出力層

31 of 64

寄り道: DNN の学習と表現

  • パラメトリックな確率分布を表す DNN も構築可能

31

出力を並べた

ベクトル

目的関数は Gauss 分布の負の対数尤度

(Negative Log Likelihood: NLL)

対角成分に σ を持つ

共分散行列

正規分布を表す生成モデル.�そのパラメータは入力に依存する.

32 of 64

代表的な DNN 音声認識

32

CTC

Transducer

LAS

HMM 学習に似た�軽量・ストリーミング処理

単語の依存関係を学習

ストリーミングも可能

単語の依存関係を学習

他分野知識を利用しやすい

出力単語の独立性を�仮定するため品質が悪い

学習が重い

(大量のメモリが必要)

系列変換なので

ストリーミング処理に一癖

きょ__う_は_

きょ_う__は_

きょう__は__

系列長の違いを

ブランク記号(“_”)で表現

“きょ”

“う”

現在の認識

過去の認識

過去の認識結果と現在の�音声特徴から予測

いわゆる Attention 構造

きょ

クエリ

キー&

バリュー

予測

33 of 64

CTC の DNN 構造

  • 音声特徴量を入力し, 各フレームの音素事後確率を出力する DNN

33

音声特徴量�系列

* 図では簡単化のためにフレームごとに独立であるような DNN にしているが,一般には系列全体に依存するモデルであるため,確率の条件を o_t ではなく o にしている.

t フレーム目の音素が /a/ である確率

t フレーム目の音素が /i/ である確率

34 of 64

blank 記号の導入

  • blank 記号 =「ラベルなし」を表す記号
    • しばしば “_” (アンダーバー) や “<b>” で表される.
    • blank 記号を導入することで, 目標とする音素系列を, 音声特徴量系列と同じ長さの系列として考えられる. (一般に 音素系列長 < 音声特徴量系列長)�
  • 例として, T = 8 フレームの音声特徴量系列に対応する音素系列 /i a i/ を考える.

34

<b>

i

i

i

<b>

a

<b>

i

i

<b>

<b>

a

a

<b>

<b>

i

i

i

<b>

a

<b>

i

i

<b>

連続する非 blank

トークンは1つにする

blank 記号は�削除する

/i/

/a/

/i/

拡張系列から元の系列を一意に復元可能

35 of 64

blank 記号の導入

  • 何故, わざわざ blank 記号を導入すべきなのか?
    • 系列長を合わせるだけなら音素の繰り返し (例: /i i a a i i i/) でも良くないか?
      • blank 記号を導入しないと連続音素を表現できず, 一意復元から反する.
      • 例えば /o o i/ (多い) と /o i/ (老い) が同一の拡張系列を取り得る.�
  • blank 記号の確率を出力できるように DNN の構造を修正�����
  • 1つの音素系列に対し, 拡張系列パターンの候補は複数存在
    • 入力された音声特徴量系列に対応するパターンを見つけたい

35

t フレーム目の音素が blank 記号である確率

36 of 64

音声特徴量系列と拡張系列のアラインメント

36

<b>

k

<b>

e

<b>

e

<b>

事後確率

音声特徴量系列

冒頭, 末尾, �音素間に <b> を入れた�拡張系列

DNN 出力として得られる

37 of 64

遷移パスに関する3つの制約

37

<b>

k

<b>

e

<b>

e

<b>

事後確率

制約2: blank からは blank or 次のトークン

制約1: 非 blank からは同じトークン or blank or 次の非 blank

制約3: 次が非 blank なら同じトークン or blank

(次トークンへの遷移を認めてしまうと [e, e] が [e] になってしまう)

38 of 64

遷移パスの開始・終了条件

38

<b>

k

<b>

e

<b>

e

<b>

事後確率

開始条件: blank or 非 blank から始まる

終了条件: blank or 非 blank で終わる

39 of 64

順方向パス

39

<b>

k

<b>

e

<b>

e

<b>

事後確率

累積の確率

40 of 64

順方向パス

40

累積の確率

<b>

k

e

<b>

e

<b>

事後確率

累積の確率

<b>

41 of 64

順方向パス

41

累積の確率

<b>

k

e

<b>

e

<b>

事後確率

累積の確率

<b>

42 of 64

逆方向パスも同様に計算可能

42

<b>

k

e

<b>

e

<b>

事後確率

<b>

43 of 64

逆方向パスも同様に計算可能

43

<b>

k

e

<b>

e

<b>

事後確率

<b>

44 of 64

ある時刻にある音素となる確率を計算可能

44

<b>

k

e

<b>

e

<b>

事後確率

<b>

45 of 64

CTC を使った学習

  • 最小化される目的関数: 事後確率の対数��
  • この関数をある時刻 t, ある音声 p について微分してみる��

45

残る項以外は

変数に無関係

確率は  に�比例するため

確率さえ求まっていれば,�微分をわざわざ計算する必要がない!

46 of 64

HMM との関係

  • CTC の学習: HMM の学習と類似
    • 順方向パスの α, 逆方向パスの β はそれぞれ, �HMM の前向き確率と後ろ向き確率に対応 → Forward-Backward algorithm
    • 故に, HMM と同様に高速に計算可能
  • 一方で, 異なる点も存在
    • HMM における「遷移確率」の概念が CTC には存在しない
      • 正確には, 取り得る遷移先全てで等確率
      • 事後確率がフレーム間で独立であることを仮定�→「あるフレームでこの音素だったから, 次のフレームはこうだろう」という関係性をモデル化の際に考慮しない��

46

47 of 64

本日の講義内容

  • 音声認識とは
  • 音声認識の音響モデル
  • 音声認識の評価

47

48 of 64

音声認識は完璧ではない → どう評価すれば良いか?

  • 例えば...
    • 見本 (reference) が “私は東京大学で学んでいます”
    • 認識結果 (hypothesis) が “私は統計学を学んでいます”
  • 基本的な評価基準: reference/hypothesis の誤り率 (Error Rate: ER)
    • 誤り率 Sentence ER (SER)
    • 単語誤り率 Word ER (WER)
    • 文字誤り率 Character ER (CER)
    • 音素誤り率 Phoneme ER (PER) (たまに使う)

48

49 of 64

様々な誤り率 (SER/WER/CER)

  • SER: 文全体が正しいか否か (すなわち 0% or 100%)���
  • WER: 単語レベルの編集距離 (別名: Levenshtein 距離)���
  • CER: 文字レベルの編集距離

49

Ref.) 東京大学で学んでいます�Hyp.) 統計学を学んでいます

Ref.) 東京/大学//学ん/で/い/ますHyp.) 統計学//学ん/で/い/ます

Ref.) ///学//学/ん/で/い/ま/すHyp.) //学//学/ん/で/い/ま/す

SER =100 %

挿入誤り: 0 (余計な認識結果)

削除誤り: 1 (認識漏れ)

置換誤り: 2 (聞き間違い)

Ref. 長さ: 7 [単語]

WER = (2 + 1) / 7 * 100 [%]

WER と同様に計算可能

50 of 64

余談: 正書法 (orthography)

  • 定義: 言語 (基本的には単語) を文字で記述するためのルールの集合
    • 現代では, 多くの言語が標準的な正書法を持つ.
    • 言語が異なれば正書法も異なる: “center” vs. “centre” など.
    • SER/WER/CER は, 標準的な正書法の存在を前提とした評価指標
  • 例外: 1つの単語に対して複数の表記が存在
    • Hindi などの Indic languages (デーヴァナーガリー,ウルドゥ文字)
    • 日本語 (ひらがな, カタカナ, 漢字)

50

51 of 64

編集距離に基づく WER の計算例

51

大学

行く

きょう

カーニバル

行く

見本 (Reference)

仮説 (Hypothesis)

j

i

長さの異なる2つの単語列を対応させた時の距離がWER.

52 of 64

編集距離に基づく WER の計算例

52

j

i

大学

行く

きょう

カーニバル

行く

見本 (Reference)

仮説 (Hypothesis)

挿入誤り (insertion error)

削除誤り (deletion error)

置換誤り(substitution error)

(i, j) の距離

(i, j) の単語が同じなら 0, 違うなら 1

53 of 64

編集距離に基づく WER の計算例

53

大学

行く

0

きょう

カーニバル

行く

仮説 (Hypothesis)

j

i

挿入

削除

置換

見本 (Reference)

54 of 64

編集距離に基づく WER の計算例

54

大学

行く

0

1

2

3

きょう

カーニバル

行く

仮説 (Hypothesis)

j

i

挿入

削除

置換

見本 (Reference)

55 of 64

編集距離に基づく WER の計算例

55

大学

行く

0

1

2

3

きょう

1

カーニバル

2

3

行く

4

仮説 (Hypothesis)

j

i

挿入

削除

置換

見本 (Reference)

56 of 64

編集距離に基づく WER の計算例

56

大学

行く

0

1

2

3

きょう

1

min(2, 2, 1)

カーニバル

2

3

行く

4

仮説 (Hypothesis)

j

i

挿入

削除

置換

見本 (Reference)

57 of 64

編集距離に基づく WER の計算例

57

大学

行く

0

1

2

3

きょう

1

1

カーニバル

2

min(3, 2, 2)

3

行く

4

仮説 (Hypothesis)

j

i

挿入

削除

置換

見本 (Reference)

58 of 64

編集距離に基づく WER の計算例

58

大学

行く

0

1

2

3

きょう

1

1

2

カーニバル

2

2

2

3

3

min(4, 3, 2)

行く

4

4

仮説 (Hypothesis)

j

i

単語が一致なので

Local(i,j)=0

挿入

削除

置換

見本 (Reference)

59 of 64

編集距離に基づく WER の計算例

59

大学

行く

0

1

2

3

きょう

1

1

2

3

カーニバル

2

2

2

3

3

3

2

3

行く

4

4

3

2

仮説 (Hypothesis)

j

i

挿入

削除

置換

見本 (Reference)

60 of 64

編集距離に基づく WER の計算例

60

大学

行く

0

1

2

3

きょう

1

1

2

3

カーニバル

2

2

2

3

3

3

2

3

行く

4

4

3

2

仮説 (Hypothesis)

j

i

最短経路がアライメント結果になり, WER を計算できる.

(上記の例の場合, 長さ 4, 削除誤り 1, 置換誤り 1

見本 (Reference)

+1

+1

61 of 64

WER/CER 計算時の注意点

  • WER や CER は100%を超えることがある
    • 例: トークン列の長さに対し, 挿入誤りや削除誤りが多数含まれる場合�
  • Reference/Hypothesis 間のアラインメントは一意に定まらない
    • 編集距離基準での最短経路が複数存在する場合がある
    • 複数存在する場合は何らかの基準で1つ選ぶことが多い�
  • WER の値だけでなく, 各誤りの値を見ることが重要
    • 挿入誤りが頻発 → 音声認識が発話終了を正しく検出できていない
    • 削除誤りが頻発 → 雑音が多い, など

61

62 of 64

まとめ

63 of 64

まとめ

  • 音声認識とは
    • 入力された音声からその発話内容を自動認識する技術
    • 人間による「音を聴取して発話内容を聞き取る」行為の計算機的模擬�
  • 音声認識の音響モデル
    • 統計モデルとしての記述 → 確率的ゆらぎの吸収
    • HMM と CTC を紹介
  • 音声認識の評価
    • 見本 (Reference) と仮説 (Hypothesis) の誤り率を計算
    • SER, WER, CER
    • 編集距離に基づく WER 計算

63

64 of 64

参考文献

64

  • 高島 遼一 著, �“Python で学ぶ音声認識”,�インプレス社, 2021.