音声言語処理特論
第6回 言語モデルとデコーダ 山本一公
確率モデルによる音声認識の定式化
(1)
•  音声認識 –  入力特徴量時系列から、発声された単語列を推
定する問題 •  確率的に推定する –  入力特徴量時系列 x が与えられたときに、確率
が最大になるような単語列 w を結果とする
ˆ = arg max P(w | x )
w
w
音声言語処理特論 第6回
2
確率モデルによる音声認識の定式化
(2)
ˆ = arg max P(w | x )
w
•  この式 を直接最大化す
w
るのは難しい •  ベイズ則を適用
ˆ = arg max P(w | x )
w
w
P(w, x )
P(x | w )P(w )
= arg max
= arg max
P(x )
P(x )
w
w
∝ arg max P(x | w )P(w )
w
音響モデル (HMM等)
言語モデル (N-­‐gram等)
音声言語処理特論 第6回
3
確率モデルによる音声認識の定式化
(3)
•  言語モデル –  何らかの単語列 w を仮定して、 w が発生する確率を計算 •  音響モデル –  w に対応する音響モデル列を作成 •  音響モデル(HMM)は単語単位や音素単位。それを繋げる –  入力特徴時系列が w であるときの確率を計算 •  w を次々と変えながら、順番に確率を計算していく –  そもそも w の候補数が多すぎる –  w 全体を再計算するのは効率が悪いため、計算を共通化したい •  もっと効率良く計算できないか? –  音声は時系列信号なので、逐次的に(時間同期で)計算できない
か? 音声言語処理特論 第6回
4
連続音声認識処理システムの 一般的な構成
音響特徴
ベクトル
時系列�
音声�
音響分析�
言語モデル�
次に予測される�
単語と言語スコア�
現時点�
の単語�
デコーダー�
予測され�
た単語�
音響�
スコア�
音響モデル�
音声言語処理特論 第6回
発音�
認識�
結果�
漢字かな表記�
発音辞書�
5
音響モデル、言語モデル、デコーダー
•  音響モデル –  音声言語の音響的な特徴を表すモデル •  入力特徴ベクトル時系列とのマッチング –  (部分)時系列がどのモデルに近いか •  単語単位、音節単位、音素単位 •  テンプレート、隠れマルコフモデル •  言語モデル –  音声言語の言語的な特徴を表すモデル •  次にどのような単語が来るかを予測 •  文法(CFG)、確率付きCFG、単語のn個組 •  デコーダー –  音響モデルと言語モデルの両方の情報を使って、最尤単語列を探索
するモジュール
音声言語処理特論 第6回
6
形式文法による言語モデル
音声言語処理特論 第6回
7
文法
•  自然言語には、その言語を表す文法がある –  ……かもしれないし、ないかもしれない –  あるとしても、その言語全てを表すことができる文法は、
ものすごく複雑な文法であろう •  完全ではなくても、大部分の文を表現できる文法は、
おそらく用意できるだろう –  文法をどうやって表現するのか? –  計算機で上手く扱うにはどうすれば良いか? •  形式文法 –  形式言語:形式文法で生成される単語列(言語) 音声言語処理特論 第6回
8
形式文法とその種類
•  形式文法 –  書き換え規則の集合 –  書き換え規則を繰り返し適用することで、単語列を生成する •  句構造文法(Phrase Structure Grammar)の階層 –  「Chomskyの階層」 –  無制限文法(Unrestricted Grammar) •  0型文法、チューリングマシン(Turing Machine)によって受理可能 制
約
強
–  文脈依存文法(Context Sensi?ve Grammar) •  1型文法、線形拘束オートマン(Linear Bounded Automaton)によって受理可
能 –  文脈自由文法(Context Free Grammar) •  2型文法、プッシュダウンオートマトン(Push Down Automaton)によって受理
可能 –  正規文法(Regular Grammar) •  3型文法、有限状態オートマトン(Finite State Automaton)によって受理可能
音声言語処理特論 第6回
9
無制限(0型)文法
•  G=(VN, VT, P, S) –  VN:非終端記号の集合(例えば、品詞等) –  VT:終端記号の集合(実際の単語等) –  P:書き換え規則の集合 •  α → β 書き換えに対する制限無し
–  α∈V+, β∈V*, V=VN∪VT –  αは非終端記号を1つ以上含む –  V*:Vの全ての連結による列の集合 –  V+:V*から空集合を除いたもの –  S:文開始記号 音声言語処理特論 第6回
10
文脈依存(1型)文法(CSG)
•  G=(VN, VT, P, S) –  VN:非終端記号の集合 –  VT:終端記号の集合 –  P:書き換え規則の集合 •  α1Aα2 → α1βα2 書き換え部の前後に拘束あり 左辺の書き換えられる部分は非終端記号
–  α1,α2∈V*, A∈VN, β∈V+, V=VN∪VT –  |A|≦|β| –  V*:Vの全ての連結による列の集合 –  V+:V*から空集合を除いたもの –  S:文開始記号 音声言語処理特論 第6回
11
文脈自由(2型)文法(CFG)
•  G=(VN, VT, P, S) –  VN:非終端記号の集合 –  VT:終端記号の集合 –  P:書き換え規則の集合 •  A → β 書き換え部の前後の拘束がなくなった 左辺は非終端記号
–  A∈VN, β∈V+ (or V*), V=VN∪VT –  V*:Vの全ての連結による列の集合 –  V+:V*から空集合を除いたもの –  S:文開始記号 音声言語処理特論 第6回
12
正規(3型)文法(RG)
•  G=(VN, VT, P, S) –  VN:非終端記号の集合 –  VT:終端記号の集合 –  P:書き換え規則の集合 •  A → aB A → a 1度の書き換えにより、 終端記号がひとつ生成される
–  A,B∈VN, a∈ VT –  S:文開始記号 音声言語処理特論 第6回
13
実用的には
•  0型文法と1型文法は、入力(単語列)が文法によって生
成可能かどうか判定するのに、膨大な計算時間を要する –  制約が緩すぎる –  実用的でない •  3型文法(正規文法)は、有限状態オートマトンに対応して
おり、扱いやすい –  ただし、制約がキツイ –  簡単な文法表現であればこれで十分 •  2型文法(文脈自由文法)は、プッシュダウンオートマトン
に対応しており、扱いやすい –  自然言語を記述するための能力も十分ある
音声言語処理特論 第6回
14
CFGによる簡単な日本語文法
音声言語処理特論 第6回
15
有限状態オートマトンによる文法の例
簡単なロボット移動制御のための有限状態オートマトン
音声言語処理特論 第6回
16
文法の役割
•  入力文(単語列)の構文解析 –  構文木の生成 •  音声認識では入力文はない ⇒ “単語予測” –  言語らしい単語列を生成する –  音声認識結果に制約を与える
音声言語処理特論 第6回
17
HMMによる連続単語音声認識モデル
音声言語処理特論 第6回
18
HMMによるオートマトン制御 連続単語音声認識モデル
「状態p1から単語n1を出力して、 状態qへ遷移する」という意味 音声言語処理特論 第6回
19
HMMを単語モデルとする オートマトン制御レベルビルディング法の アルゴリズム
qが単語を単位とする オートマトンの状態 ②と③を入れ替えると、 One pass DPになる
音声言語処理特論 第6回
20
CFG構文解析アルゴリズム
•  CYK法 –  Cocke-­‐Younger-­‐Kasami –  ボトムアップ型 •  Early法 –  トップダウン型 •  LR法 –  ボトムアップ型 –  プログラミング言語の構文解析
音声言語処理特論 第6回
21
CYK法による構文解析
音声言語処理特論 第6回
22
具体例(1)
音声言語処理特論 第6回
23
具体例(2)
音声言語処理特論 第6回
24
確率文脈自由文法
•  書き換え規則に確率が付与されているCFG –  Stochas?c CFG or Probabilis?c CFG •  学習データとなる文の集合があるとする •  学習データのそれぞれの文に対して、構文解析木が得られる –  書き換え規則の適用回数が分かる ⇒ 数え上げによってその書き換え規則の確率が推定できる •  文法が曖昧な場合 –  書き換え規則が適用されたりされなかったりする •  可能な導出過程を全て考慮しなければならない –  書き換え規則の適用される「確率的な回数」を数える ⇒ Inside-­‐Outsideアルゴリズム •  Forward-­‐Backwardアルゴリズムのようなもの 音声言語処理特論 第6回
25
構文解析による文音声認識(1)
•  ワードラティスがあることを仮定 –  2段DPの1段目の情報と考えて良い 音声言語処理特論 第6回
26
構文解析による文音声認識(2)
•  大まかな考え方 –  ワードラティスによって、任意区間の単語候補が与え
られている –  「ある任意区間が、非終端記号から展開される終端
記号によってカバーできるかどうか、カバーできる場
合には尤度(距離)はいくらか」を考慮しながらDP •  2段DPの2段目は任意の単語接続を許可しているが、それ
に文法制約が加わっていると考えれば良い –  これを積み重ねて、最終的に「入力区間全体が文開
始記号からの展開でカバーできるかどうか、カバーで
きる場合には尤度(距離)いくらか」を考えることにな
る 音声言語処理特論 第6回
27
確率的(統計的)言語モデル
音声言語処理特論 第6回
28
統計的言語モデル(1)
•  これまで認識した結果に、どんな単語をつなぐのが
「尤もらしいか」を確率で表現 –  文頭の場合は、文頭にどんな単語がくる(=文頭記号に
どんな単語をつなぐ)のが「尤もらしいか」を確率で表現 •  部分文(認識途中の文)w1 w2 … wn に単語 wn+1 をつ
なぐ尤もらしさ(確率): P(wn+1 | w1 w2 … wn) 音声言語処理特論 第6回
29
統計的言語モデル(2)
•  あらゆる文を対象に確率値を求めるのは不可能 –  w の種類が数十万、n が不定という条件で、 P( w1 , w2 ,!, wn )
を全て求めることが可能か? •  長さを適当に打ち切ることで、学習データから単語
の連接確率を求めておく
音声言語処理特論 第6回 30 統計的言語モデル(3) -n-­‐gramモデル-
•  ユニグラム(unigram, 1-­‐gram):単語 w の出現確率 P(w) •  バイグラム(bigram, 2-­‐gram):単語 wi-­‐1 が出現したという
条件のもとで、単語 wi が出現する確率 P(wi|wi-­‐1) •  トライグラム(trigram, 3-­‐gram):単語 wi-­‐2, wi-­‐1 が続けて出
現したという条件のもとで、単語 wi が出現する確率 P(wi|wi-­‐2 wi-­‐1) •  n-­‐gram :単語 wi-­‐n+1, … ,wi-­‐1 が続けて出現したという条件
のもとで、単語 wi が出現する確率 P(wi|wi-­‐n+1 wi-­‐n+2 … wi-­‐2 wi-­‐1) 音声言語処理特論 第6回
31
統計的言語モデル(4)
文部科学大臣 の 諮問 機関 で ある •  ユニグラム: P(w) P(文部科学大臣) P(の) P(諮問) P(機関) P(で) P(ある) •  バイグラム:P(w2|w1) P(文部科学大臣|<s>) P(の|文部科学大臣) P(諮問|の) P(機関|諮問) P(で|機関) P(ある|で) •  トライグラム:P(w3|w1, w2) P(文部科学大臣| <s1> <s2>) P(の|<s2>文部科学大臣) P(諮問|文部科学大臣の) P(機関|の諮問)P(で|諮問機関) P(ある|機関で) 音声言語処理特論 第6回
32
英語における言語モデルの効果(1)
アルファベットn-­‐gramモデルの確率に基づいて文字列を自動的に生成
ZEWRTZYNSADXESYJRQY_WGECIJJ_OBVKRBQ
POZBYMBUAWVLBTQCNIKFMP_KMVUUBSAXH
LHSIE_M
英語の0次近似 (random, zero-gram)
AI_NGAE__ITF_NNR_ASAEV_OIE_BAINTHA_HYR
O_POER_SETRYGAIETRWCO__EHDUARU_EU_C_F
T_NSREM_DIY_EESE__F_O_SRIS_R__UNNASHOR
英語の1次近似 (unigram)
音声言語処理特論 第6回
33
英語における言語モデルの効果(2)
URTESHETHING_AD_E_AT_FOULE_ITHALIORTW
ACT_D_STE_MINTSAN_OLINS_TWID_OULY_TE_T
HIGHE_CO_YS_TH_HR_UPAIDE_PAD_CTAVED
英語の2次近似 (bigram)
IANKS_CAN_OU_ANG_RLER_THATTED_OF_TO_S
HOR_OF_TO_HAVEMEM_A_I_MAND_AND_BUT_
WHISSITABLY_THERVEREER_EIGHTS_TAKILLIS_TA
英語の3次近似 (trigram)
音声言語処理特論 第6回
34
英語における言語モデルの効果
REPRESENTING_AND_SPEEDILY_IS_AN_GOOD_
APTOR_COME_CAN_DIFFERENT_NATURAL_HERE_
HE_THE_A_IN_CAME_THE_TO_OF_TO_EXPERT_
GRAY_COME_TO_FURNISHES_THE_LINE_
MESSAGE_HAD_BE_THESE
英語の4次近似
THE_HEAD_AND_IN_FRONTAL_ATTACK_ON_AN_
ENGLISH_WRITER_THAT_THE_CHARACTER_OF_
THIS_POINT_IS_THEREFORE_ANOTHER_METHOD_
FOR_THE_LETTERS_THAT_THE_TIME_OF_WHO_
EVER_TOLD_THE_PROBLEM_FOR_AN_UNEXPECTED
英語の5次近似
音声言語処理特論 第6回
35
バイグラムの例
対数確率����現時点での単語�����次の単語�
�-1.6767
亜熱帯
�
�から�
�-0.5798
亜熱帯
�
�に�
�-0.3979
亜熱帯
�
�の�
�-1.3757
亜熱帯
�
�性�
�-0.9363
亜熱帯
�
�地方�
�-1.2029
阿蘇 �
�
の�
�-1.7769
阿蘇 �
�
オープン�
�-2.1572
阿蘇 �
�
開発�
��:
��:
�:
��
�最大でN×N個(ない組み合わせもある)
N: 登録単語数
音声言語処理特論 第6回
36
バイグラムの求め方(1)
大量のデータ(例えば数年分の新聞すべて)から
単語の組み合わせを数え上げて計算しておく
P(から|亜熱帯)=
C(亜熱帯, から)
C(亜熱帯)
C(亜熱帯, から):「亜熱帯から」が現れた回数
C(亜熱帯):「亜熱帯」が現れた回数
いつものように数え上げ
音声言語処理特論 第6回
37
バイグラムの求め方(2)
大量のデータ(例えば数年分の新聞記事のすべて)か
ら単語の組み合わせを数え上げて計算しておく
C (wi −1wi )
(
)
P wi | wi −1 =
C (wi −1 )
C (wi −1wi ) : wi −1wiが出現した回数
C (wi −1 ) : wi −1が出現した回数
音声言語処理特論 第6回
38
n-­‐gramの求め方
大量のデータ(例えば数年分の新聞記事のすべて)か
ら単語の組み合わせを数え上げて計算しておく
C (wi − n +1wi − n + 2 ! wi − 2 wi −1wi )
P(wi | wi − n +1wi − n + 2 ! wi − 2 wi −1 ) =
C (wi − n +1wi − n + 2 ! wi − 2 wi −1 )
C (wi − n +1wi − n + 2 ! wi − 2 wi −1wi ) : wi − n + 2 ! wi − 2 wi −1wiが出現した回数
C (wi − n +1wi − n + 2 ! wi − 2 wi −1 ) : wi − n + 2 ! wi − 2 wi −1が出現した回数
音声言語処理特論 第6回
39
統計的言語モデルを学習するときの
問題点・留意点
•  学習データ量 –  大量の学習データが必要 –  例えば、新聞記事10年分で数億~数十億文程度 •  語彙サイズ –  辞書に入れておく単語数(学習データの中から選択) –  不必要に多くし過ぎると、認識率が低下する傾向 ⇒ 出現頻度の低い語は入れない •  学習データに出現しない単語列に対する確率 –  「学習データに出現しないから、テストデータにも出現しない」という訳ではな
い –  「亜熱帯・性・気候」だったり「亜熱帯・気候」だったり? •  文の単語への分割 –  英語ならスペースで区切られているが、日本語や中国語はそうではない –  そもそも単語って何だろう? •  「高等専門学校」は「高等専門学校」で1単語?「高等」「専門」「学校」と分けるべき? –  「形態素」
音声言語処理特論 第6回
40
求められない確率の扱い(1)
•  分子の出現回数が0の場合は確率値が0となる •  分母の出現回数が0になる場合は確率が求まらない •  しかし、これらは学習データに出現していないという事実がそこに
あるだけで、認識したい対象に出現しないとは限らない –  確率が0のままだと認識結果には絶対に現れないのでマズイ •  n-­‐gramのnが大きいほど、その傾向が強まる ⇒ 何らかの形で確率値を与える必要がある •  確率値の総和は1 –  普通に学習されたn-­‐gramの場合は学習データに出現したn-­‐gramの
確率値の総和が1 –  一部を、学習データに出現しなかったデータのために残しておく •  総和が1未満になるように、それぞれのn-­‐gram毎に異なる「バックオフ係数 λ (<1)」を掛け(ディスカウンティング(出現回数を減らす))、n-­‐gramの確率を
ちょっとずつ減らしておく •  それによって余った分を(n-­‐1)-­‐gramで分配する
音声言語処理特論 第6回
41
求められない確率の扱い(2)
—  Katzのバックオフ平滑化(スムージング)
wi-2, wi-1の後に続く単語 wi について
P(wi|wi-2,wi-1)
ディスカウント係数 λ
P(wi|wi-1)
学習テキストに
出現した
トライグラム
λ0
wi-2wi-1wiが
出現した中の
wi-1wi
学習テキストに出
現しなかった
トライグラム
バックオフ係数
wi-1wiのみが
1-λ0
音声言語処理特論 第6回
出現
α-1
42
求められない確率の扱い(3)
平滑化したトライグラム P(wi|wi-2,wi-1) の求め方(例)
⎧λ ( wi − 2 wi −1wi ) PE ( wi | wi − 2 , wi −1 )
⎪
P( wi | wi − 2 , wi −1 ) = ⎨(1 − λ0 ( wi − 2 wi −1 ) )α P( wi | wi −1 )
⎪ P( w | w )
i
i −1
⎩
N ( wi − 2 wi −1wi ) > 0
N ( wi − 2 wi −1 ) > 0
otherwise
λ0 ( wi − 2 wi −1 ) = ∑ λ ( wi − 2 wi −1w) PE ( w | wi − 2 wi −1 )
w
⎛
⎞
⎜
α = ⎜1 −
P( wi |wi −1 ) ⎟⎟
∑
⎝ N ( wi−2 wi−1wi ) >0
⎠
−1
どうやって λ を決めるか? (ディスカウンティングするか?) ⇒ Good-­‐Turing推定を使って、 出現数の少ない単語の 頻度を推定する
音声言語処理特論 第6回 43 ディスカウント係数の決め方
•  Good-­‐Turing推定 –  r回出現した単語の出現回数を補正 N r +1
r = (r + 1)
Nr
*
N r : 学習データにr回出現した異なり単語数(単語の種類数)
学習データの単語総数 N = ∑ r ⋅ nr = n1 + 2n2 + 3n3 + !
r >0
r*
ディスカウント係数 λ =
r
音声言語処理特論 第6回 その他の平滑化手法 ・Widen-­‐Bell smoothing ・Kneser-­‐Ney smoothing など 44 形態素解析
•  形態素 –  単語と同じか、より小さい、自然言語の意味を担う最小単位 •  形態素解析(morphological analysis) –  入力文を形態素に分解する処理 •  スペースで区切られていない文を区切る •  品詞同定 •  曖昧性を含む場合 –  「弁慶がなぎなたを持って」(ぎなた読み、弁慶読み) –  「ここではきものをぬぐべし」 –  「アフガン航空相撲殺される」 音声言語処理特論 第6回 45 形態素解析の例
•  「すべてはしらない」 •  形態素単体の出現コストと形態素の連接コストを考慮し
て、コストが最小となるパスをViterbiアルゴリズムにより
決定する(コストは統計的に推定するのが一般的) 音声言語処理特論 第6回
46
言語モデルの評価
•  単語予測が完璧なら、予測される次の単語
は1つで十分だが、通常そんなことにはなら
ない •  予測される次の単語は複数 •  予測される次の単語は(平均的に)何個か? –  少なければ少ない程良いモデル –  確率モデルの場合は、確率を重みと考えて平均
的に何個かを考える 音声言語処理特論 第6回 47 例えば「静的分岐数」?
•  状態毎に選択肢が何個あるか?(の平均) –  確率は考えない NUM
NUM
パターンA
•  2連続数字タスク –  数字は等確率で出現 –  パターンA ICHI
ICHI
•  「NUM」は10数字 •  状態毎の平均分岐数も10 –  パターンB •  最初の状態の分岐は100 •  次の状態は分岐しないので1 •  平均分岐数は、200/101=1.98 ZERO
ZERO
•  同じ難しさのはずだが、同じにならない…… パターンB
–  書き方で評価が変わる指標ではダメ
音声言語処理特論 第6回
48
例えば「平均ファンアウト数」?
•  状態毎に選択肢が何個あるか? –  状態の滞在確率まで考慮した平均 NUM
•  2連続数字タスク パターンA
–  数字は等確率で出現 –  パターンA • 
• 
• 
• 
NUM
「NUM」は10数字 各状態の分岐数は10 各状態の滞在確率は0.5 平均ファンアウト数は10 ICHI
ICHI
–  パターンB •  最初の状態の滞在確率は0.5、 分岐数は100 •  次の状態の滞在確率は0.5/100、 分岐数は1 •  平均分岐数は、0.5x100+(0.5/100x100)=50.5 •  同じ難しさのはずだが、同じにならない…… ZERO
ZERO
パターンB
–  書き方で評価が変わる指標ではダメ
音声言語処理特論 第6回
49
パープレキシティー(Perplexity) ・言語 L のエントロピー
H 0 (L ) = −
・1単語あたりのエントロピー
1
n
2
1
n
w1!wn
1
H (L ) = − ∑ p(w1 ! wn )log 2 p(w1 ! wn )
w1!wn n
・パープレキシティ
パターンA
∑ p(w ! w )log p(w ! w )
PP = 2 H ( L )
NUM
NUM
ICHI
ICHI
1 ⎛ 10 1
1 10 1
1 ⎞
H (L ) = − ⎜ ∑ log 2 + ∑ log 2 ⎟
2 ⎝ n =1 10
10 n =1 10
10 ⎠
1 ⎛
1
1 ⎞
= − ⎜ log 2 + log 2 ⎟ = log 2 10
2 ⎝
10
10 ⎠
100
⎧ 1 ⎛
H (L ) = −∑ ⎨ ⎜
1
1 1
1 ⎞⎫
log 2
+ log 2 ⎟⎬
100 1
1 ⎠⎭
n =1 ⎩ 2 ⎝ 100
パターンB
100
⎧ 1 1
⎫ 100 ⎧ 1
⎫
= ∑ ⎨
log 2 100⎬ = ∑ ⎨
log 2 10⎬ = log 2 10
⎭ n =1 ⎩100
⎭
n =1 ⎩ 2 100
ZERO
ZERO
パープレキシティはどちらも10!
音声言語処理特論 第6回
50
デコーダー
音声言語処理特論 第6回
51
デコーダー
•  大語彙連続音声認識において、最尤の単語
列を求める(探索する)部分 •  HMMと言語モデルにより構成される巨大な
ネットワークをどのように探索するか?
音声言語処理特論 第6回
52
探索の様子
入力音声の 音響分析結果 音響スコア
0.4
x1 x2 … xt … x100
照合
音響モデル
スコアの積が最大になる 経路が認識結果 発音 ts u g i
言語モデル
言語スコア 次
0.2
0.1
文頭 0.2
0.3 の 0.1ニュース です 0.7
0.2
は
事件 でした 今日 が
国会 では :
:
:
:
続いて 文末 0.1
0.05
音声言語処理特論 第6回 53 探索木(1)
•  認識できる単語の種類がp種類で、q単語からなる文を認識する –  確率が低いものはあるが、全ての単語が繋がる可能性を考える w1
w1
w2
w1
wp
wp
w1
w1
wp
w1
wp
pq個の ノード
wp
wp
5,000種類の単語で、 20単語の文だと、 5,00020=9.5x1073
w1
p個の p2個の ノード ノード
wp
•  かなり大変そう……
音声言語処理特論 第6回 末端ノードで 最もスコアが 高くなる単語列が 認識結果となる
54 探索木(2)
•  実際はもっと大変 •  1文に含まれている単語が何単語あるかは認識時には分からない –  nフレームの入力なら、最大n単語!? –  普通は n >> q のため、全部の文パターンを考えると先ほどの例よりもさらに
文候補数が爆発する •  人間が普通に喋ると10[mora/sec]ぐらい。1 mora = 1音節として、分析フ
レームのずらし時間が10[ms]ぐらいなので、1音節が10フレーム。1単語
が平均で2.5音節ぐらいなので、20単語の文だと500フレームぐらいにな
るので、最大候補数は 5,000500 …… •  探索木の各ノードには、音響モデルからのスコアと言語モデルからのス
コアを付ける必要がある –  そのスコアに応じて探索することになる –  ……のだが 音声言語処理特論 第6回 55 探索木(3)
•  しかし、認識するときは単語の境界がどのフレームにあるか
は分からないので、全てのフレームが単語の境界になる可
能性を考えなければならない –  同じ単語の並びでも、単語の境界フレームが異なると音響スコアが
変わってくる –  文単位でスコアを計算できるのであれば、動的計画法によって単語
の境界フレームが変化する場合を考慮した最大音響スコアを算出で
きるが、文単位毎に音響スコアを計算するのは非現実的 –  単語の境界が異なるものを別の候補としてノードを作る必要がある –  探索木がさらに複雑化する •  どうすれば良い? 音声言語処理特論 第6回 56 大語彙連続音声認識における探索
言語的に考えられる文候補(次に接続されそうな単
語語候補)を推定し、これらの候補を次々に音響的
に評価していく(=HMMで確率を求めていく)�
�
①  言語モデルを用いて現時点の単語の次に接続
されそうな単語を予測(言語スコアの獲得)
文の先頭の場合は、文開始記号の次に接続さ
れそうな単語を予測する�
②  候補の単語の発音に従って音響モデル(音素・
音節単位のHMM)を接続�
③  接続された音響モデルと入力ベクトルを照合
(音響スコアの計算)�
④  その次に接続しそうな単語を予測�
音声言語処理特論 第6回
57
探索で考慮すること
•  単語を文頭から一意に決めず、可能性のある候補を考慮しながら
処理を進めなければならない –  認識結果は文全体のスコアの高低によって決定されるべき –  文頭におけるスコアが多少低くても、全体で見ればそうではないかも
しれない •  単語列は文末(最終フレーム)で最終的に評価 –  文末までは文の一部分も決定されない(DPマッチングと同じ)
•  無駄な処理を避けるため、言語スコアや音響スコアがとても低い
候補に対する処理は行わない(枝刈り) •  計算量が多くなりすぎるため、尤度計算を多少妥協(近似)しても
良い……かもしれない(ただし、認識精度とのトレードオフ) 音声言語処理特論 第6回
58
HMMネットワーク (bigram言語モデルの場合) 単語w
� 1
P(
w
1
|
w
1
)
P(
w
2
|
w
1
)
単語w
� 2
・�
・�
・�
・�
・�
単語w
� n
音声言語処理特論 第6回
P(
w
n
|
w
1
)
P(
w
1
|
w
2
)
・�
・�
・�
P(
w
2
|
w
2
)
P(
w
n
|
w
2
)
P(
w
1
|
w
n
)
P(
w
2
|
w
n
)
P(
w
n
|
w
n
)
59
探索の方法
・全てを系統的に調べる方法�
�(1) 縦型探索(探索順:A→C→D→B→E→F)�
�(2) 横型探索(探索順:A→B→C→D→E→F)
・部分的に探索する方法(スコア利用)�
�(1) 最良優先探索・Aアルゴリズム�
���スコアの良い方向に縦型で探索�
�(2) ビームサーチ�
C
A
D
E
B
���一定の値以上のスコアを持つノードのみ横型で探索
時系列処理に向いている
音声言語処理特論 第6回
F
60
HMMネットワークの探索(1)
・・・�
・・・�
・・・�
・・・・・・・・・・・・・�
・・・�
第1フレーム→第2フレーム→第3フレーム
●:アクティブノード�
音声言語処理特論 第6回
61
HMMネットワークの探索(2)
・・・�
・・・�
・・・�
・・・・・・・・・・・・・�
枝刈り
スコアの低いノードは
ノンアクティブに
・・・�
第nフレーム →第n+1フレーム
音声言語処理特論 第6回
62
HMMネットワークの探索(3)
単語終端に至ったら、直ちに各単語の最初のノードに遷移
(単語履歴をメモ)
・・・�
・・・�
・・・�
・・・・・・・・・・・・・�
・・・�
言語スコアを加味
音声言語処理特論 第6回
63
HMMネットワークの探索(4)
認識結果�
最終フレーム
・・・�
・・・�
・・・�
・・・・・・・・・・・・・�
・・・�
単語終端にある候補のうちスコア最大のものの単語
履歴を認識結果とする
音声言語処理特論 第6回
64
HMMネットワーク探索における 探索木のようなもの
言語スコア
加算
w1
言語スコア
加算
w1
言語スコア
加算
w1
wp
wp
w2
w1
wp
w1
wp
wp
音声言語処理特論 第6回
•  このような形で
探索していく •  自己ループがあ
るため、ビーム
から漏れるまで
同じノードで音響
スコアを計算す
る必要がある •  入力の最終フ
レームで各単語
の最終状態にい
るものの中で、
最もスコアが高
いものが認識結
果となる 65
サブワード単位の利用
•  先ほどの例は単語モデル –  認識辞書に登録されている単語数分のモデルが必要 • 
• 
• 
• 
10数字なら10モデル 5,000語なら5,000モデル 60,000語なら60,000モデル 1,000,000語なら1,000,000モデル –  新しい単語を登録するために、モデルが必要 •  学習データが必要 •  サブワードモデル –  組み合わせにより単語を表現できる •  音響モデルの学習データと認識辞書を独立させられる –  音素、音節、biphone、triphone
音声言語処理特論 第6回
66
サブワード単位による認識辞書構造
音声言語処理特論 第6回
67
言語確率を適用するタイミング
•  言語確率はできるだけ早いタイミングで適用したい(スコア
に入れ込みたい) –  ビームサーチを的確に働かせるため •  可能性の低いアークをできるだけ早く除去したい! •  線形単語辞書は、単語の先頭音節で単語が確定する ⇒ すぐに言語確率を適用できる –  先ほどのHMMネットワークの例 •  ツリー(木)型単語辞書は、単語の末尾音節に至まで単語
が確定しない ⇒ 単語の末尾に至るまで言語確率を適用
できない –  何とかならないか?
音声言語処理特論 第6回
68
言語確率のファクタリング
枝狩りのタイミングを早めることが可能
音声言語処理特論 第6回
69
計算量の削減 1-­‐best近似アルゴリズム
•  i 番目のフレームにおいて単語 n が終端するときの
そこまでのスコア •  1-­‐best近似 –  i 番目のフレームで終端する単語の内、スコアが最大のも
ので、接続時の単語スコアを近似する
音声言語処理特論 第6回
70
ツリー辞書と1-­‐best近似による デコーディング
•  候補をまとめられるので計算量およびメモリ
使用量は減る
単語対 近似
1-­‐best 近似
W1
W2
W3
音声言語処理特論 第6回
71
マルチパス認識とリスコアリング(1)
•  探索範囲が広くなり過ぎるため、高次のN-­‐gram
言語モデルが使えない –  小規模システムでは2-­‐gramが主 •  2-­‐gramは良い言語モデルとは言えない •  最初から高精度な結果を得ようとしないことにす
る –  マルチパス認識 •  第1パスで、正解となる候補をざっくりと出しておく •  第2パスで、リスコアリングを行う
音声言語処理特論 第6回
72
マルチパス認識とリスコアリング(2)
•  第1パスの出力 –  単語ラティス •  認識結果候補単語のネットワーク –  N-­‐bestリスト •  N個の認識結果候補文 •  似たような結果(助詞が1つだけ違う、等)がたくさん出てしまう •  第2パスでのリスコアリング(rescoring) –  第1パスより詳細な音響モデル(話者に適応化したモデルや前
後の音素に依存したモデル等)による音響リスコアリング –  第1パスより高次の言語モデル(3-­‐gram, 4-­‐gram等)による言語
リスコアリング •  詳細なモデルのためモデル単体での計算量は多くなるが、候補数が
第1パスの処理によって限定されているため、全体の計算量はあまり
多くならない(普通は一瞬で終わる程度)
音声言語処理特論 第6回
73