## Speech Recognition HOWTO

Stephen
Cook

                    scook@gear21.com

高資
服部
日本語訳

    	    htakashi@yabumi.com

v2.0
April 19, 2002
scc
Changed license information (now GFDL) and added a new publication.
v1.2
February 5, 2002
scc
Added more commercial software listings (sent by Mayur Patel).
v1.1
October 5, 2001
scc
Added info for Vocalis Speechware. Fixed/Updated various other items.
v1.0
November 20, 2000
scc
Added info on L and H and HTK
v0.5
September 13, 2000
scc
Initial HOWTO Submission

Linux 上での自動音声認識 (ASR) が簡単になりつつあります. 開発者だけでなくユーザでも入手可能なものもあります. この文書では, 音声認識の基礎と入手可能な音声認識ソフトウェアについて記述します.

## 法的な注意

### 著作権/ライセンス

(訳注: 原文を残します.)

Copyright (c) 2000-2002 Stephen C. Cook. Permission is granted to copy, distribute, and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation.

この文書をFree Software Foundation が発行する GNU Free Documentation License の 1.1 あるいはそれ以降のバージョンの条件のもとで, 複製, 配布, 修正することが許可されています.

This document is made available under the terms of the GNU Free Documentation License (GFDL), which is hereby incorporated by reference.

この文書は GNU Free Documentation License (GFDL) の条件の元で入手可能になっています. ここでライセンスへのリンクを挙げて, 同文書を添付したものとします.

### 免責

(訳注: 原文を残します.)

The author disclaims all warranties with regard to this document, including all implied warranties of merchantability and fitness for a certain purpose; in no event shall the author be liable for any special, indirect or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract, negligence or other tortious action, arising out of or in connection with the use of this document.

著者は, 全ての商行為が可能であることの暗黙の保証, ある目的へ適合する ことを含めてこの文書に関する全ての保証を放棄します; どのような出来事があっても, この文書の使用との継がりの内外で起こる, 規約の中の活動, 怠慢 あるいは他の不法行為によるものであろうと, あらゆる特別な, 間接的または, 結果的な損害や 使用, データ, 利益の損失による 損害などに対して作者は責任を負いません.

### 商標

この文書に含まれる全ての商標はそれぞれの所有者の著作権/登録商標です.

## 前置き

###

この文書は音声認識の学習に興味があり, 試してみようとしている 初級から中級レベルの Linux ユーザをターゲットにしています. また, 興味を持った 開発者のために音声認識に関するプログラミングの基礎についても説明します.

どのような音声認識ソフトウェアと開発用のライブラリが Linux で使用 できるのかを調べ始めたときにこの文書を書きはじめました. Linux 上での自動音声認識 (ASR または単に SR) はちょうど本領を発揮し はじめたことろで, この文書で正しい方向へ後押しできることを願っています - ASR 技術のユーザと開発者の両方をサポートすることで.

この文書は SR の技術については触れていません, その代りに "HOWTO" という 側面に集中しています (これは HOWTO ですから…). ここでカバーできていないことについては, 興味を持った読者が本や記事を 探せるように出版物の節を用意しました. これがLinux 上の ASR についての最終的な報告ということではありません.

この文書の最新版は, LDP のアーカイブをチェックするか, http://www.gear21.com/speech/index.htmlから入手してください.

### 謝辞

この文書を見直し, 援助してくださった以下の人々に感謝します:

- Jessica Perry Hekman

- Geoff Wexler

### コメント/最新情報/フィードバック

コメントや, 提案, 改訂, 最新情報があれば, また, ただ ASR についてチャットしたいときも, 私のアドレス scook@gear21.com に Email を下さい.

### ToDo

以下のことが "to do" として残っています:

- 出版物の節に説明を加える.

- 出版物の節により多くの本を加える.

- より多くのリンクを説明付きで加える.

- ASR システムの手順についての説明を充実させる.

- FFT とフィルターの説明を加える.

- DSP の原理の説明を加える.

### 改訂履歴

v0.1 最初の草案 2000年 8月

v0.5 最終草案 2000年 9月

## はじめに

### 音声認識の基礎

音声認識とは, コンピュータ (あるいは他のタイプの機械) が話し言葉を 認識する処理です. 基本的には, コンピュータに向って話し, その上で, その言葉がコンピュータに正しく認識されるという意味です.

以下の定義は音声認識の技術を理解するために必要な基礎です.

発話

  発話は, 1つの意味を表す単語やいくつかの言葉をコンピュータに向かって 発声する (話す) ことです. 発話は単語であったり, 言葉であったり, 文であったり, あるいは複数の文であったりします.

話者への依存

  話者に依存するシステムは特定の話者を対象として設計されます. そのシステムは一般に, その特定の話者の発声に対しては正確ですが, 他の話者では精度がずっと悪くなります. それらは話者が一定の声と 速度で話すことを仮定しています. 話者に依存しないシステムは様々な話者に 向けて設計されます. 順応性のあるシステムは普通, 話者に依存しない システムとしてスタートし, 学習技術を利用して認識精度を高めることで 話者に適応していきます.

語彙

  語彙 (あるいは辞書) とは, SR システムに認識されるための言葉や発話のリストです. 一般に, コンピュータにとっては少ない語彙のほうが認識しやすく, 語彙が多くなるほど認識が困難になります. 普通の辞書とは異なり, それぞれの項目は単語ではありません. それらは文や文章ほど 長くなることもあります. 少ない語彙は1つか2つの認識された文 (例えば "Wake up") しかないかもしれませんが, とても多い語彙では 10 万語 以上となります.

精度

  認識装置の能力はその精度を測定することによって, あるいはまた, 話された言葉をどれくらい認識するかによって調べることができます. これは発話を正確に特定するだけでなく, 発話が語彙に 含まれているかどうかを特定することも含んでいます. 良い ASR システムは 98% 以上の精度があります. あるシステムの精度の許容範囲はその用途に強く 依存します.

学習

  話者に順応する能力を持つ音声認識もあります. システムが この能力をもっているときは, 学習させることができます. ASR システムは話者に標準的な言葉や一般的な言葉を繰り返させ, 比較のアルゴリズムを特定の話者に調和することで学習されます. 一般に認識装置を学習させることで, その精度は向上します.

  学習は, 話し方やある種の単語の発音がうまくできない話者にも 利用されます. 話者が首尾一貫して発話を繰り返す限り, 学習機能の ある ASR システムは適応することが可能でしょう.

### 音声認識のタイプ

音声認識のシステムは, どのようなタイプの発話を認識する能力を持っているか によって, 幾つかのクラスに分類することができます. このようなクラスは話者がいつ発話を始め, いつ終えたのかを測定する能力が ASR の難しさの 1つであるという事実に基づいています. 多くのパッケージが 使用中のモードによって, 複数のクラスに適合します.

孤立した言葉

  孤立した言葉の認識には, それぞれの発話ごとにサンプルウィンドウ (サンプルの開始から終了の期間)の前後に 音のない時間 (オーディオ信号の無い状態)が必要となります. 認識装置が単語を受け取るというわけでなく 一度には発話は一つという意味です. このシステムでは普通なのですが, ``音声入力状態 / 認識状態'' という 2 つの 状態があるため，話者はとぎれとぎれに話さなければなりません (声がとぎれたときに認識処理をしています). 孤立した発話はこのクラスではより良い名前かもしれません.

連続した言葉

  連続した言葉 (あるいはより正確に '連続した発話') のシステムは 孤立した言葉のシステムに似ていますが, 間に最短の休止をはさみながら '続けて発声される' 個別の発話を認識します.

連続した音声

  連続した認識が次のステップです. 連続した音声を認識できる装置は 最も作りにくい ものです, なぜなら発話の境界を特定するために特殊な方法を使用しなければ ならないからです. 連続した音声認識装置はユーザにほとんど自然に話すことを 許します, 一方でコンピュータが内容を特定します. 基本的に, それは コンピュータの書き取りです.

自然な音声

  実際に自然な音声が何であるかの定義はさまざまあるようです. 基本的な 段階では, それは自然な音の発生であって繰り返されるものではない という考えであるかもしれません. 自然な音声の機能を備えた ASR システムは "ums" と "ahs" など, 混合された言葉などの さまざまな自然の音声の特徴や, 微かな口ごもりさえ, 扱うことが可能でしょう.

音声照合/識別

  いくつかの ASR システムは特定のユーザを識別する機能を持っています. この文書では照合やセキュリティのためのシステムについては扱いません.

### 利用法と応用

コンピュータと人間を仲介する仕事全般において, ASR の出番があるかもしれ ません. 現在は下記に挙げたアプリケーションが一般的です.

書き取り

  書き取りは, 今日最も一般的な ASR システムの使用法です. これは一般の 文書処理と同様に医学記録転写や, 法律や仕事の書き取りも含みます. システムの精度を向上させるために, 特別な語彙が使われる場合もあります.

音声命令システム

  コンピュータのコマンドを実行する ASR システムのことを, 音声命令システムと 定義します. "Open Netscape" や "Start a new xterm" のように音声で命令すると, 発話どおりのコマンドが実行されます.

電話

  いくつかの PBX/Voice メールシステムは, ボタンを押すかわりにコマンドを話すことで電話をかけられます.

携帯機器

  入力手段が限定されている携帯機器では, 話すことは当然可能です.

医療/ハンディキャップ

  多くの人が, 反復運動過多損傷 (RSI), 筋ジストロフィーなどの ような身体的な制限のためにタイピングに問題を抱えています. 例えば聴覚に 問題のある人は, 相手の声をテキストに変えるために電話に接続されたシステムを使用できるでしょう.

組み込みアプリケーション

  新しい携帯電話のなかには "Call Home" のような発話を解釈する C&C 音声認識を 備えたものもあります. これは将来の ASR と Linux の主要事項となるかもしれません. なぜ私はまだテレビに話しかけられないのでしょうか?

## ハードウェア

### サウンドカード

音声は比較的低い帯域幅を必要とするので, 中程度から高品質の 16 ビットサウンドカードなら使えるでしょう. カーネルでサウンドを有効にして 正しいドライバをインストールしなければなりません. サウンドカードについて のこれ以上の情報は http://www.LinuxDoc.org/ にある "The Linux Sound HOWTO" を見てください. サウンドカードの品質については精度とノイズの 影響について, しばしば議論がまき起こります.

最も綺麗な A/D (アナログからディジタル) への変換機能を持ったサウンドカードを 勧めますが, しばしばディジタルサンプルの明瞭さはマイクの性能に依存し, 周囲のノイズにはいっそう大きく依存します. モニタや, PCI スロット, ハードディスクなどからの電気信号的なノイズはふつう, コンピュータのファンや 椅子のきしむ音, 呼吸から聞こえるノイズに比べて小さなものです.

ASR ソフトウェアパッケージには特定のサウンドカードを必要とする ものがあります. 特定のハードウェアへの依存を避けるのは通常良いことです, なぜなら将来の選択肢を狭めてしまうからです. もし適切に動作するためには特別なハードウェアが必要となるようなパッケージを 考えているのなら, あなたは利益とコストを考慮しなければならないでしょう.

### マイク

マイクの品質は ASR を使う上で重要です. 多くの場合において, 卓上マイクはこの使用法に向きません. 周囲のノイズを拾いがちになるので, ASR プログラムがうまく動作しないことに なります.

マイクをずっと持ちつづけているのは大変なので, ハンドマイクも 最善の選択ではありません. 周囲のノイズの量を抑えながら, 頻繁に話者が 変わる場合や認識装置に向って話すことがあまりない場合は (ヘッドセットを付け ることも選択できないとき) 最も便利です.

断然人気のある一番よい選択はヘッドセットです. それを使えば, いつもあなたの口もとにマイクを置いたままでも, 周囲の騒音を最小に抑えることができます. ヘッドセットはイアホンの無いものと あるもの (モノラルかステレオか) もあります. ステレオのヘッドホンを勧めますが, それは個人の好みの問題です.

$25 から $100 くらいで素晴らしい性能を持ったヘッドセット型マイクが買えます. http://www.headphones.com か http://www.speechcontrol.com から探してみてください.

レベルについての短かいメモ: マイクのボリュームを上げることを 忘れないでください. これは XMixer か OSS Mixer のようなプログラムを使って 行なうことができます, そして フィードバックノイズを避けるように使用する ことに注意してください. ASR ソフトウェアが自動調節プログラムを含んでいれば, それらを代りに使ってください, それらはその特定の認識システムに最適化 されています.

### コンピュータ/プロセッサ

ASR アプリケーションはプロセッサの速度に強く依存することがあります. これは ASR では大変な量のディジタルフィルタリングと信号処理が 起こりうるからです.

CPU 負荷の高いソフトウェアと同じく, 速いほど良くなります. また, メモリが大きい程よくなります. いくつかの ASR は 100MHz と 16MB の RAM でも可能ですが, 高速で処理する (大きな辞書や複雑な認識スキーム, 高サンプルレート) には, 最低でも 400MHz で 128MB の RAM が良いでしょう. 必要とする処理性能の関係で, ほとんどのソフトウェアでは最小限の 必要条件が記載されています.

大規模の認識を行なうのに, クラスタ (Beowulf や他ものも) を利用することは 行なわれていません. 進行中や開発中のプロジェクトをご存知ならお知らせください. scook@gear21.com

## 音声認識ソフトウェア

### フリーソフトウェア

ここで挙げるフリーソフトウェアの多くは, ここからダウンロードできます: http://sunsite.uio.no/pub/Linux/sound/apps/speech/

#### XVoice

XVoice はさまざまな XWindow アプリケーションで使用できる音声認識のソフトウェアで, 書き取りや連続した音声認識が可能です. ユーザがマクロを定義することもでき, 確かな未来のある良いプログラムです. 一度設定すれば, 充分な精度で動作します.

XVoice を使うためには IBM の ViaVoice for Linux (商用の節を見てください) を入手してインストールする必要があります. また ViaVoice を正しく 動作させるために設定が必要です. 加えて Lesstif/Motif (libXm) も必要です. このプログラムは X Window とやりとりするので, X リソースを 利用できるようにしておかなければならないことに注意することも重要です, このため, ネットワークに継がったマシンやマルチユーザのマシンで使用するときは, 気を付けてください.

このソフトウェアは主にユーザ向けです. RPM を入手できます.

HomePage: http://www.compapp.dcu.ie/~tdoris/Xvoice/ http://www.zachary.com/creemer/xvoice.html

Project: http://xvoice.sourceforge.net

Community: http://www.onelist.com/community/xvoice

#### CVoiceControl/kVoiceControl

CVoiceControl (Console Voice Control の略) は 元々 KVoiceControl(KDE Voice Control) でした. このプログラムはユーザがコマンドを話すことで Linux のコマンドを 実行できる, 基本的な音声認識システムです. CVoiceControl が KVoiceControl に 置き代わりました.

このソフトウェアにはマイクレベルを設定するユーティリティ, 新しいコマンドと発話を追加するための語彙モデルエディタ, 音声認識システムが含まれています.

CVoiceControl は ASR を始めようとする経験豊富なユーザにとって, 素晴らしい出発点となります. 必ずしもユーザフレンドリであるとは言えませんが, 正しく学習させれば, とても役立ちます. セットアップを行う時にはドキュメントを 良く読んでください.

このソフトウェアは主にユーザ向けです.

Homepage: http://www.kiecza.de/daniel/linux/index.html

Documents: http://www.kiecza.de/daniel/linux/cvoicecontrol/index.html

#### Open Mind Speech

1999 年後半に始まった Open Mind Speech は何度か名前を変えました (かつては VoiceControl, その後は SpeechInput で, それから FreeSpeech です). また今では, オープンソースプロジェクトの "Open Mind Initiative" の一部です. 今の所は完全に機能するわけではなく, 主に開発者向けです.

このソフトウェアは主に開発者に向けたものです.

Homepage: http://freespeech.sourceforge.net

#### GVoice

GVoice は Gtk/GNOME アプリケーションを制御するために IBM の (フリーの)ViaVoice SDK を使用した音声 ASR ライブラリで, 初期化, 認識エンジン, 辞書操作, パネルのコントロールを行う ためのライブラリが含まれています. 開発は一年以上停滞しています.

このソフトウェアは主に開発者に向けたものです.

Homepage: http://www.cse.ogi.edu/~omega/gnome/gvoice/

#### ISIP

Mississippi State University の Institute for Signal and Information Processing は その音声認識エンジンを公開しました. このツールキットはフロントエンドと デコーダー, そして訓練モジュールを含んでいます. これは機能的な ツールキットです.

このソフトウェアは主に開発者に向けたものです.

このツールキット (と ISIP についての情報) はここで入手できます: http://www.isip.msstate.edu/project/speech/

#### CMU Sphinx

Sphinx はもともと CMU で始められ, 最近オープンソースとして公開されました. これは多くのツールと情報を含んだ, かなり大きなプログラムです. これはいまだに"開発中"ですが, 学習のためのソフトウェアと認識装置, 音響モデル, 言語モデル, 作成中の文書を含んでいます.

このソフトウェアは主に開発者に向けたものです.

Homepage: http://www.speech.cs.cmu.edu/sphinx/Sphinx.html

Source: http://download.sourceforge.net/cmusphinx/sphinx2-0.1a.tar.gz

#### Ears

Ears の開発は完全ではありませんが, ASR を始めたいと思っている プログラマには良いきっかけになるでしょう.

このソフトウェアは主に開発者に向けたものです.

FTP site: ftp://svr-ftp.eng.cam.ac.uk/comp.speech/recognition/

#### NICO ANN Toolkit

NICO Artificial Neural Network toolkitは音声認識アプリケーションに 最適化されたフレキシブルバックプロパゲーション ニューラルネットワークツールキットです.

このソフトウェアは主に開発者に向けたものです.

homepage: http://www.speech.kth.se/NICO/index.html

#### Myers' Hidden Markov Model Software

Richard Myers のこのソフトウェアは C++ で記述された HMM アルゴリズムです. これは L. Rabiner の本である "Fundamentals of Speech Recognition" に 記述された HMM のための例と学習ツールを提供します.

このソフトウェアは主に開発者に向けたものです.

情報はここで入手できます: http://www.itl.atr.co.jp/comp.speech/Section6/Recognition/myers.hmm.html

#### Jialong He's Speech Recognition Research Tool

もともと Linux 向けに書かれたものではありませんが, この研究ツールは Linux でコンパイルできます. 異なる3つのタイプの認識装置を備えています: DTW, Dynamic Hidden Markov Model, Continuous Density Hidden Markov Model です. これは研究と開発用のもので, 完全な ASR システムでは ありません. このツールキットはいくつかの便利なツールを持っています.

このソフトウェアは主に開発者に向けたものです.

さらに多くの情報はここで入手できます: http://www.itl.atr.co.jp/comp.speech/Section6/Recognition/jialong.html

#### まだ他にもありますか?

上記以外のものをご存じなら私までお知らせください: scook@gear21.com. もしよろしかったら, 紹介頂いたソフトウェアのコピーを入手できる場所も 教えてください. さらに感想も送って頂けると幸いです.

### 商用ソフトウェア

#### IBM ViaVoice

SDK の未来はどうなるかわかりませんが, IBM は ViaVoice シリーズで Linux をサポートするという約束をしています, (開発者とのライセンス契約は現時点では公式には行われていません, もう少し先になるでしょう. )

商用の (フリーでない) 製品である, IBM ViaVoice Dictation for Linux (http://www-4.ibm.com/software/speech/linux/dictation.html から 入手できます) の性能はとても良いのですが, 基本的な ASR システム (64M RAM と 233MHz Pentium) に比較してさらに大きなシステムを必要とします. $59.95US で Andrea NC-8 マイクも付属しています. マルチユーザで使用するこ とも可能です (しかし, 私はマルチユーザで実験していないので, だれか実験 した 人がいれば私のおしりを叩いてください). このパッケージは次のものを含みま す: 文書 (PDF), 学習ツール, 書き取りシステム, それからインストールスクリプト. 2.2系カーネルをベースにした他の Linux ディストリビューションのサポートも 最新のリリースではされています.

この ASR SDK は自由に入手でき, IBM の SMAPI, 文法 API, 文書, と様々なサンプル プログラムを含んでいます. ViaVoice Run Time Kit は書き取り機能のための ASR エンジンとデータファイル, ユーザユーティリティを提供します. この ViaVoice Command & Control Run Time Kit は音声命令システムのための ASR エンジンと データファイルとユーザユーティリティを含んでいます. この SDK と Kit には 128MB の RAM と Linux 2.2 以上が必要です.

SDK と Kit はここで自由に入手できます: http://www-4.ibm.com/software/speech/dev/sdk_linux.html

#### Vocalis Speechware

Vocalis と Vocalis Speechware についてのさらなる情報は: http://www.vocalisspeechware.com と http://www.vocalis.com.

#### Babel Technologies

Babel Technologies は Babear と呼ばれる Linux SDK を提供しています. これは Hybrid Markov Model と Artificial Neural Network テクノロジに基づいた話者に依存しないシステムです. テキスト音声変換や話者照合, 音素解析に関するさまざまな製品があります. 他の情報については: http://www.babeltech.com.

#### SpeechWorks

彼らのウェブサイトでは Linux について特に言及していませんが, 彼らの "OpenSpeech Recognizer" はオープンスタンダードである VoiceXML を 使用しています. 他の情報については: http://www.speechworks.com.

#### Nuance

Nuance はさまざまな *nix プラットフォーム用の音声認識/自然言語の 製品 (現在は Nuance 8.0) を提供しています. 非常に大きな語彙を扱うことが可能で スケーラビリティと障害許容のために特有の分散アーキテクチャを使用しています. 他の情報はここから入手できます: http://www.nuance.com.

#### Abbot/AbbotDemo

Abbot は非常に大きな語彙, 話者に依存しない ASR システムです. それはもともと, Cambridge University の Connectionist Speech Groupによって 開発され, いまは, SoftSound (商用)に移っています. くわしい情報は: http://www.softsound.com

AbbotDemo は Abbot のデモパッケージです. このデモシステムは約 5000 語の 語彙を持ち, connectionist/HMM の連続した音声アルゴリズムを利用しています. これはソースコードの附属しないデモプログラムです.

#### Entropic

Entropic の周辺の有能な人は Micro$oft に買い取られてしまいました. . . 製品とサポートサービスは全て消えてしまいました. HTK と ESPS/waves+ の サポートは打ち切られてしまい, 彼らの未来は M$ にかかっています. 古いウェブサイト http://www.entropic.com にさらに情報があります.

K.K. Chin が私に HTK の元々の開発者 (Cambridge の Speech Vision and Robotic Group) がまだそれに対するサポートをしていると情報をくれました. http://htk.eng.cam.ac.ukでは フリーなバージョンも入手できます. Microsoft が現行の HTK のコードの著作権を所有していることには注意してください.

#### 他の商用製品

より多くの商用の ASR 製品が (L&H を含めて) 近い将来入手できるように なるという噂があります. 私は Comdex 2000 (Vegas) で L&H の代表 2,3 人と 話をしましたが, 誰も Linux リリースについて, また Linux 向けにどの製品のリリースを計画したのかについてさえ情報をくれませんでした. もしこれ以上の情報を持っていれば, 詳細を私 scook@gear21.comに送ってください.

## 音声認識の内側

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

認識システムは 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) 動作は開発者が望んだことだけです.

### ディジタルオーディオの基礎

オーディオは本質的にアナログな現象です. ディジタルサンプルで 録音することは, マイクからのアナログ信号をサウンドカード上の 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 アルゴリズムまたは他の圧縮法を使用する ことは普通価値がありません, なぜならそれは計算能力のコストがかかり, コストに見合った能力を十分に得ることができないからです

## 出版物

このリストに載っていないもので, ここに加えたほうがいいと思う出版物があれば, 私scook@gear21.comへ情報を 送ってください.

### 書籍

- "Fundamentals of Speech Recognition". L. Rabiner & B. Juang. 1993. ISBN: 0130151572.

- "How to Build a Speech Recognition Application". B. Balentine, D. Morgan, and W. Meisel. 1999. ISBN: 0967127815.

- "Speech Recognition : Theory and C++ Implementation". C. Becchetti and L.P. Ricotti. 1999. ISBN: 0471977306.

- "Applied Speech Technology". A. Syrdal, R. Bennett, S. Greenspan. 1994. ISBN: 0849394562.

- "Speech Recognition : The Complete Practical Reference Guide". P. Foster, T. Schalk. 1993. ISBN: 0936648392.

- "Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics and Speech Recognition". D. Jurafsky, J. Martin. 2000. ISBN: 0130950696.

- "Discrete-Time Processing of Speech Signals (IEEE Press Classic Reissue)". J. Deller, J. Hansen, J. Proakis. 1999. ISBN: 0780353862.

- "Statistical Methods for Speech Recognition (Language, Speech, and Communication)". F. Jelinek. 1999. ISBN: 0262100665.

- "Digital Processing of Speech Signals" L. Rabiner, R. Schafer. 1978. ISBN: 0132136031

- "Foundations of Statistical Natural Language Processing". C. Manning, H. Schutze. 1999. ISBN: 0262133601.

- "Designing Effective Speech Interfaces". S. Weinschenk, D. T. Barker. 2000. ISBN: 0471375454.

多数のオンラインで読める参考文献リストがあるので, Institut Fur Phoneti を チェックしたほうがいいでしょう: http://www.informatik.uni-frankfurt.de/~ifb/bib_engl.html

### インターネット

news:comp.speech

  コンピュータと音声に関するニュースグループです.

  - US: http://www.speech.cs.cmu.edu/comp.speech/

  - UK: http://svr-www.eng.cam.ac.uk/comp.speech/

  - Aus: http://www.speech.su.oz.au/comp.speech/

news:comp.speech.users

  音声に関するソフトウェアのユーザのためのニュースグループです.

  - http://www.speechtechnology.com/users/comp.speech.users.html

news:comp.speech.research

  音声に関係したソフトウェアとハードウェアのためのニュースグループです.

news:comp.dsp

  ディジタル信号処理のためのニュースグループです.

news:alt.sci.physics.acoustics

  音の物理学のためのニュースグループです.

DDLinux Email List

  Linux の音声認識のメーリングリストです.

  - Homepage: http://leb.net/ddlinux/

  - Archives: http://leb.net/pipermail/ddlinux/

Linux Software Repository for speech applications

  http://sunsite.uio.no/pub/linux/sound/apps/speech/

Russ Wilcox's List of Speech Recognition Links

  (excellent) http://www.tiac.net/users/rwilcox/speech.html

Online Bibliography

  Online Bibliography of Phonetics and Speech Technology Publications. http://www.informatik.uni-frankfurt.de/~ifb/bib_engl.html

MIT's Spoken Language Systems Homepage

  http://www.sls.lcs.mit.edu/sls/

Oregon Graduate Institute

  Oregon Graduate Institute の Spoken Language Understanding のセンターです. 開発者と研究者にとって素晴らしい場所です. http://cslu.cse.ogi.edu/

IBM's ViaVoice Linux SDK

  http://www-4.ibm.com/software/speech/dev/sdk_linux.html

Mississippi State

  Signal and Information Processingについてのミシシッピ州立大学 開発者に向けた大量の情報があるホームページです. http://www.isip.msstate.edu/projects/speech/

Speech Technology

  ASR ソフトウェアとアクセサリです. http://www.speechtechnology.com

Speech Control

  音声制御のコンピュータシステム. ASR用のマイク, ヘッドセット, ワイヤレス製品です. http://www.speechcontrol.com

Microphones.com

  ASR 用のマイクとアクセサリです. http://www.microphones.com

21st Century Eloquence

  "Speech Recognition Specialists." http://voicerecognition.com

Computing Out Loud

  主には Windows ユーザに向けたものですが, 良い情報があります.

  http://www.out-loud.com

Say I Can.com

  "The Speech Recognition Information Source." http://www.sayican.com

## 日本語訳について

日本語訳は Linux Japanese FAQ Project が行いました. 翻訳に関するご意見は JF プロジェクト <JF@linux.or.jp> 宛に連絡 してください.

### 2.0j

翻訳:

  服部 高資 htakashi@yabumi.com

校正:

  - 中谷 千絵 jeanne@mbox.kyoto-inet.or.jp

  - 野本 浩一 hng@ps.ksky.ne.jp