このファイルは、3年春学期科目「音声情報処理」の授業において、口頭で説明する内容をテキスト(.txt)に書き起こしたものです。 事前に科目のHPにアクセスして「講義ノート」の PDF ファイルをダウンロードし、印刷しておいてください。このテキストには講義ノートの記述より多くの情報を含んでいます。講義ノートの行間に、テキストの説明を書きこんで行くことをお勧めします。最後にプリントを綴じれば、将来必要になったときに見返せる自分の「講義ノート」ができあがります。 「学生用ページ」「レポート提出システム」 から、その日の「宿題」レポートを提出してください。 〆切は 次回授業日の前日 23:59 です。 _/_/_/ 第十回 音声認識(3) _/_/_/ 【講義ノート】音声認識システムの構成 (4) 音声認識システムを構成する技術要素の図を、改めて見ていきましょう。 左から音声波形が入力され、区間抽出され、分析処理によって特徴量の時系列に変換されます。具体的には「MFCC」の時系列です。 システムは、例えば「音素」を単位とする「音響モデル」を記憶しています。具体的には「HMM」すなわち隠れマルコフモデルです。 入力音声の特徴時系列と音響モデルの類似度を計算していきます。 しかし、入力音声は、例えば「文章」のような連続音声なのに対し、音響モデルは「音素」といった短い単位です。 そこで音素 HMM をつなげて、文章 HMM を作成するのですが、どのような順番で音素をつなげていくのか? やみくもに並べるわけにはいきません。 このために使われるのが、文法や言語モデルです。どこかで聞いたことがありますね。そうです。前々回の講義で、音声認識の枠組みとしてお話しした「単語認識」「定型文認識」「ディクテーション」に結び付くのです。 緑の吹き出しに「単語・定型文・ディクテーション」とメモしておきましょう。 【講義ノート】技術各論>言語モデル 以下のような順で説明をしていきます。 ・辞書による語彙の制限 ・文法による文型の制限 ・統計的言語モデル 【講義ノート】音声認識の枠組み (再掲) 「単語認識」の枠組みです。人間はコンピュータに向かって何か「単語」を発声します。 システムの中に「単語辞書」というものが用意されています。「赤(あか)」とか「青(あお)」といった単語が見出し語として並んでいます。 システムは人間の発声した音声と、この記憶しているいろいろな色名の音声との類似度を計算して、最も類似度の高かった単語を「認識結果」として選択します。 単語辞書の項目数が多すぎると、音声認識の性能が悪くなります。例えば話した単語が、10個のどれかをあてるのと、10万個のどれかをあてるのでは、項目が多いほうが難しい。 人間が、こういうことを喋ったかもしれない、という可能性の種類が少ないほうが、音声認識の性能が良くなるのです。 辞書による語彙の制限によって、音声認識の性能を上げます。 【講義ノート】技術各論>言語モデル (1) ここでは「Juius」という、音声認識のソフトウェアで使用されている、辞書の形式を紹介します。 この辞書は左の図のような形式で、項目が列挙されています。 %非終端記号 終端記号 音素の並び … 「非終端記号」「終端記号」の意味合いは後述します。ここでは、 「非終端記号」は単語のカテゴリに、「終端記号」は単語の名前に対応すると思ってください。音素の並びは、その単語を発音するための音素を、空白を挟んで列挙します。 非終端記号の吹き出しは「単語のカテゴリ」 終端記号の吹き出しは「単語名」 音素の並びの吹き出しは「音素 or アロフォン」 右の図に単語辞書の実例を示します。 「WORD」という単語カテゴリに、「一の関」「宇都宮」…という駅名が登録されているようすを理解してください。単語名の右側にはその単語を構成する音素が並べられています。 Julius の認識対象に、新しい語彙(単語)を加えたいとき、この単語辞書に項目を加え、発音を示す音素列をテキストで記述すればよいのです。 このようにして「任意語彙」の音声認識システムがつくれます。 【講義ノート】技術各論>言語モデル (2) まとめておきましょう。 ・辞書による語彙の制限  ⇒ たくさんの可能性から選ぶよりも、少ない    可能性から選ぶほうが、認識率が上がる ・「非終端記号」は単語のカテゴリに、「終端記   号」は単語名と発音に対応する ・単語辞書に項目を加え、発音を示す音素列   をテキストで記述 ⇒ 「任意語彙」の実現 【講義ノート】音声認識の枠組み (2)(再掲) 「定型文認識」の枠組みです。 「文章」の発声が許されます。 システムの中に「単語辞書」に加え「文法」が規定してあります。 例えば『「文」というものは「形容詞」と「名詞」と「助詞」が連接したものである』といった感じの規則が定められている。 この規則に沿ってつなげた単語の連続のみが文である。それ以外のことは人間は発声しないと仮定するのです。 この文法に従った「あかいぼうしをみせてください」という発声を正しく認識処理し、 「赤い帽子を見せてください」という認識結果を出力します。 【講義ノート】技術各論>言語モデル (3) 音声認識ソフトウェア「Juius」で使用されている、文法の形式を紹介します。 「文法による文型の制限」 ・「文脈自由文法」(Context Free Grammar)  と呼ばれる形式で、規則によって文型を生成します。例えば、 S ← NP NP ← NOUN NP ← ADJ NOUN という3つの規則が与えられているとします。 まず「S」は「文」を意味する記号です。 「S ← NP」は S(文) は NP(名詞節)から生成されることを意味します。 「NP ← NOUN」:NP は NOUN(名詞)から生成される、また 「NP ← ADJ NOUN」:NP は ADJ(形容詞)と NOUN(名詞)の連接から生成される。 S とか NP とか、文生成の途中に現れる記号を「非終端記号」といいます。非終端記号は最後に、単語辞書中に記述された「%非終端記号」のグループ(単語のカテゴリ)の単語に置き換えられます。単語は文法によってさらに展開されることはないので「終端記号」と呼ばれます。 ・規則によって生成可能な文型のみを音声認識の対象とする ・単語に展開される記号を「終端記号」それ以外を「非終端記号」という これらの規則を連続的に適用して生成可能な文型(単語の並び)のみを音声認識の対象とします。 最後に単語辞書を適用して音素の並びに変換します。 S ← NP ← ADJ NOUN ← 赤い 帽子 ← a k a i b o u sh i このようにして生成された音素の並び順に HMM をつなげて、文章 HMM を作成します。 この文章仮説 HMM を用いて、入力音声の特徴時系列の出力確率を計算し、その文章との類似度とします。 文法及び単語辞書から生成される多数の「文章仮説」のうち、最も類似度の高かったものを音声認識の結果とします。 【講義ノート】技術各論>言語モデル (4) ・文候補の生成例1 S ↑       S ← NP NP ↑        NP ← NOUN NOUN ↑        NOUN ← 帽子 帽子 【講義ノート】技術各論>言語モデル (5) ・文候補の生成例2 S ↑       S ← NP NP ↑       NP ← ADJ NOUN ADJ NOUN ↑   ↑   ADJ ← 赤い, NOUN ← 帽子 赤い 帽子 【講義ノート】技術各論>言語モデル (6) ・文候補の生成(全部) 帽子 (S ← NP ← NOUN) 服 (S ← NP ← NOUN) 赤い 帽子 (S ← NP ← ADJ NOUN) 青い 帽子 (S ← NP ← ADJ NOUN) 赤い 服 (S ← NP ← ADJ NOUN) 青い 服 (S ← NP ← ADJ NOUN) 各文章候補に対応する HMM を用いて、入力音声の特徴時系列を生成する確率を計算し、最も大きい確率を出力する文章候補を音声認識結果とします。 【講義ノート】音声認識の枠組み (3)(再掲) 「ディクテーション」の枠組みです。 いかなる語順に発声された音声でも、それを文書化するための技術です。 統計的「言語モデル」を使います。単語の連鎖する確率を調べて、この確率を用いて、文章候補の絞り込みを行います。 【講義ノート】技術各論>言語モデル (7) 「統計的言語モデル」  - 全ての単語列の「確率」を計算  - N-gram モデル n 個の単語 w_1, w_2, ... , w_n が順に並んだ文 S の確率を、次のように近似します。 P(S) = P( w_1, w_2, ... , w_n ) n = Π P(w_i | w_{i-N+1}, ... , w_{i-1} ) i=1 ただし記号「Π」(プロダクト)は後ろに続く要素を i=1, ... ,n の範囲で、全部掛け合わせたものを表しています。 条件付き確率 P(w_i | w_{i-N+1}, ... , w_{i-1} ) の条件部分「w_{i-N+1}, ... , w_{i-1}」を「文脈」(Context)と呼びます。 このような近似を N-gram モデルといいます。何とか-gram というのは、要素が「何とか」個並んだものを表しています。 単語 N 個の並びで確率モデルを作るのが N-gram モデルということです。 【講義ノート】技術各論>言語モデル (8) 「統計的言語モデル」  - 文の確率(近似のない場合) ちょっと、近似のない場合を考えてみましょう。 P(S) = P( w_1, w_2, ... , w_n ) n = Π P(w_i | w_1, ... , w_{i-1} ) i=1 先ほどの近似式とは文脈の添字が違っています。 この式は数学的には近似のない厳密な式ですが、しかし含まれる条件付き確率の種類は、語彙数の n 乗もあるので、統計操作によってこの値を求めることは現実的に不可能です。  - 条件付確率の種類が語彙の n 乗   ⇒ 事実上、計算不可能 【講義ノート】技術各論>言語モデル (9) そこで、この文脈の長さを小さい数 N=1,2 3 くらいで打ち切って、条件付き確率の値を近似してしまいます。 n P(S) = Π P(w_i | w_{i-N+1}, ... , w_{i-1} ) i=1 「統計的言語モデル」  - 文の確率(近似のない場合)   P(私 は 山 へ 行く)    =P(私)P(は|私)P(山|私 は)P(へ|私 は 山)     P(行く|私 は 山 へ)  - 文の確率(3-gram モデルで近似)   P(私 は 山 へ 行く)    =P(私)P(は|私)P(山|私 は)P(へ|は 山)     P(行く|山 へ) これが「N-gram」言語モデルです。考え方が簡単なわりに強力なので、実用的なディクテーションシステムには、N-gram をベースとした言語モデルが使われていることが多いです。 --