6. 音声認識の内側

6.1. どのように認識しているか

認識システムは 2 つの主な部分に分解できます. パターン認識システムは 適合を判断するためにパターンを既知のものや学習したパターンと比較します. Acoustic Phonetic システムは音声の特徴 (母音などの音などの音声) を比較する ために人体に関する知識 (声の生成, と聴覚) を利用します. ほとんどの現代的なシステムはこのようなパターン認識アプローチに重点を置いて います, なぜなら. それは現在のコンピュータ利用技術とうまく結びつき, 高い精度を得やすいからです.

ほとんどの認識装置は以下のような段階に分解できます:

  1. オーディオの記録と発話の検出

  2. プリフィルタリング (プリエンファサイズ, 正規化, バンディングなど)

  3. フレーミングとウィンドウィング (データを使用できる形式に分解する)

  4. フィルタリング (更にそれぞれのwindow/frame/freq.bandをフィルタリング)

  5. 比較と適合 (発話の認識)

  6. 動作 (認識されたパターンに関連した機能を実行)

それぞれの段階は単純に見えますが, 一つ一つは多数の異なる (そしてときどきは完全に逆の) 技術を利用しています.

(1) オーディオ/発声の録音: いろいろな方法があります. 始めは周囲のオーディオのレベル (いくつかの場合では音響のエネルギー) を 録音されているサンプルと比較することです. 終点の判別は, 話者が 呼吸やため息, 歯の鳴き, エコーなどの "artifacts" を残しがちなのでさらに困難です.

(2) プリフィルタリング: 認識システムの他の機能に依存して, いろいろな方法で行なわれます. 最も一般的な方法は, サンプルの準備のために一連のオーディオフィルターを使用する "Bank-of-Filters" 法と, 差異(誤差)の計算のために予測機能を使用する Linear Predictive Coding 法です. 異なる形式のスペクトル解析も利用されます.

(3) フレーミング/ウインドウィングはサンプルデータを特定の大きさに分割することです. これはしばしば step2 と step4 へ進みます. この段階は分析のために サンプル境界 (淵のカチンという音などを除くこと) を用意することも含んでいます.

(4) 追加のフィルタリングはいつも存在するわけではありません. これは比較と適合の前でのそれぞれのウィンドウに対する最後の準備です. しばしばこれは時間の配置と正規化から構成されます.

(5)の比較と適合については可能な技術が大量にあります. ほとんどは 現在のウィンドウと既知のサンプルの比較を必要とします.Hidden Markov Models (HMM), 周波数解析, 差異解析, 線型代数の技術/近道, スペクトル歪を利用する 方法や時間歪曲法もあります. これらのすべての方法は一致の確率と精度を得るために使用されています.

(6) 動作は開発者が望んだことだけです.

6.2. ディジタルオーディオの基礎

オーディオは本質的にアナログな現象です. ディジタルサンプルで 録音することは, マイクからのアナログ信号をサウンドカード上の A/D コンバータでディジタル信号に変換することです. マイクが動作していれば, 音波はマイクの中の磁石の要素を振動させ, サウンドカードへの電流 (スピーカが逆に動作していると考えてください) を発生させます. 基本的に そのA/Dコンバータは特定の間隔での電圧の値を記録します.

この過程の中に2つの重要な要素があります. 1つめは "sample rate", あるいは どのような頻度で電圧を記録するのかというもの. 2つめは "bits per second", どのような精度で値が記録されるかというものです. 3つめの要素はチャンネルの数 (モノかステレオか), しかし, 多くの ASR アプリケーションではモノで十分です. 多くのアプリケーションではこれらのパラメータに予め設定された値を 使用して, ユーザは文書に書かれていないかぎり変更するべきではありません. 開発者は異なる値でそのアルゴリズムとは何が合うのかを 実験することで決定するべきです.

それでは, ASR についてはどのようなサンプルレートが良いのでしょうか? 音声は比較的低い帯域幅 (ほとんど 100Hz から 8kHz) ですから, 8000 samples/sec (8kHz) はほとんどの基本的な ASR に対しては十分です. しかし, さらに正確な 高周波数の情報を得られるので 16000 samples/sec(16kHz) を好む人もいます. もし処理能力があれば 16kHz を使うべきです. ほとんどの ASR アプリケーションでは 22kHz 以上のサンプリングレートは無駄です.

そして どのような値が "bits per sample" (1サンプル当りのビット数) について良いのでしょうか? 8 bits per sample は 0 から 255 の間で値を記録します, これはマイク成分の大きさが 256個の中の1つであるということを意味します. 16 bits per sampleは 成分の大きさを 65536 個に分割します. サンプルレートも同様です. 比較のために, 音楽用 Compact Disc は 44kHz で 16 bits per sampleでエンコードされています.

使用されるエンコーディングフォーマットは線型な 符号付あるいは符号なし整数のように単純であるべきです. U-Law/A-Law アルゴリズムまたは他の圧縮法を使用する ことは普通価値がありません, なぜならそれは計算能力のコストがかかり, コストに見合った能力を十分に得ることができないからです