音声言語処理特論 第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
© Copyright 2025 ExpyDoc