(57)【特許請求の範囲】
【請求項１】
コンピュータで実行する音声認識におけるアクション・ポジションの操作方法（５００）であって、
発声されたコマンドを表すデータを受取るデータ受取り処理（５２０）を実行し、該コマンドは、コマンド識別情報と、少なくとも１個の発声済単語を備える指定情報とを含んでおり、
前記データに対する音声認識処理を実行し、前記コマンド識別情報と前記指定情報とを識別すること（５０５，５５５，５６５，５７５）を含み、
前記コマンド識別情報に基づいて実行されるアクション（５６０、５７０，５８０）においてアクション・ポジション設定処理を実行し、該アクション・ポジション設定処理は、前記少なくとも１個の発生済単語に関連している、ことを特徴とする方法。
【請求項２】
前記コマンド識別情報は、前記少なくとも１個の発声済単語の前方にアクション・ポジションを設定すべきことを指示し、前記アクション・ポジション設定処理は、前記少なくとも１個の発声済単語の直前にアクション・ポジションを設定すること（５６０）を含む請求項１記載の方法。
【請求項３】
前記コマンド識別情報は、「インサート・ビフォー（ｉｎｓｅｒｔ  ｂｅｆｏｒｅ）」を含む請求項２記載の方法。
【請求項４】
前記コマンド識別情報は、前記少なくとも１個の発声済単語の後にアクション・ポジションを設定すべきことを指示し、前記アクション・ポジション設定処理は、前記少なくとも１個の発声済単語の直後にアクション・ポジションを設定すること（５６０）を含む請求項１記載の方法。
【請求項５】
前記コマンド識別情報は「インサート・アフター（ｉｎｓｅｒｔ  ａｆｔｅｒ）」を含む請求項４記載の方法。
【請求項６】
前記指定情報は、複数の単語で構成された１個のアタランスを表す指定辞からなる請求項１記載の方法。
【請求項７】
前記指定情報は、少なくとも１個の新単語を含み、前記方法は更に、前記少なくとも１個の発声済単語以降の任意の複数の単語を、前記少なくとも１個の新単語で置換する置換処理（５８５）を実行すること含む、請求項１記載の方法。
【請求項８】
前記アクション・ポジション設定処理は、前記少なくとも１個の新単語の後にアクション・ポジションを設定すること（５７０）を含む請求項１から７のいずれか１項に記載の記載の方法。
【請求項９】
前記コマンド識別情報は「レジューム・ウィズ（ｒｅｓｕｍｅ  ｗｉｔｈ）」を含む請求項７記載の方法。
【請求項１０】
前記データ受取り処理は、発声された前記コマンドを、前記音声認識を実行するコンピュータとは物理的に分離した録音装置を用いて録音することによって生成されるデータを受取ることを含む請求項１から９のいずれか１項に記載の方法。
【請求項１１】
前記録音装置はディジタル録音装置を備えており、
前記データ受取り処理は、前記ディジタル録音装置からファイルを受取ることを含む請求項１０に記載の方法。
【請求項１２】
前記データ受取り処理は、発声された前記コマンドを前記録音装置で再生することによって生成される信号を受取ることを含む請求項１０または１１に記載の方法。
【請求項１３】
コンピュータ・プログラム（１６０）を記録したコンピュータが読取り可能な記憶媒体であって、該コンピュータに
発声されたコマンドを表すデータを受取るデータ受取り処理（５２０）を実行させ、該コマンドは、コマンド識別情報と、少なくとも１個の発声済単語を備える識別情報とを含み、
前記データに対する音声認識処理を実行させ、前記コマンド識別情報と前記指定情報とを識別させることを含み、
システム（１００）は前記コマンド識別情報に基づいて実行されるべきアクション（５６０，５７０，５８０）におけるアクション・ポジション設定処理を実行し、前記アクション・ポジション設定処理は前記少なくとも１個の発声済単語に対応している、
ことを特徴とする記憶媒体。
【請求項１４】
音声認識システム（１００）であって、
音声信号を受取るための入力デバイス（１０５、１１０，１１５、１２０）と、
プロセッサ（１３０）とを備え、該プロセッサは、
発声されたコマンドを表すデータを受取るデータ受取り処理（５２０）を実行し、該コマンドは、コマンド識別情報と、少なくとも１個の発声済単語を備える指定情報とを含んでおり、
前記データに対する音声認識処理を実行し、前記コマンド識別情報と前記指定情報とを識別する（５０５，５５５，５６５，５７５）よう構成され、前記音声認識システム（１００）は
前記コマンド識別情報に基づいて実行されるアクション（５６０、５７０、５８０）においてアクション・ポジション設定処理を実行し、該アクション・ポジション設定処理は、前記少なくとも１個の発生済み単語に関連している、
ことを特徴とする音声認識システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、音声認識におけるポジション操作に関する。
【０００２】
【従来の技術】
音声認識システムは、ユーザの音声を解析して、ユーザが何を話しているかを判定するシステムである。音声認識システムの殆どは、フレーム方式のシステムである。フレーム方式のシステムでは、プロセッサが、認識対象音声を表している信号を非常に短い時間部分に分割して、一連のディジタル・フレームを生成する。
【０００３】
連続音声認識システムは、ユーザが個々の単語ごと、ないしは語句ごとに区切って発声する必要がなく、連続して発声した一連の単語ないし語句を認識する能力を備えた音声認識システムである。これに対して、分離音声認識システムは、個々に区切って発声した単語ないし語句を認識するようにした音声認識システムであり、ユーザは、個々の単語ないし語句を発声するたびに、その後に短い間を置かなければならない。一般的に、連続音声認識システムは、分離音声認識システムと比べて誤認識の発生頻度が高いが、それは、連続した音声を認識するための認識作業がそれだけ複雑だからである。
【０００４】
連続音声認識システムのプロセッサは、一般的に、音声の「アタランス（ｕｔｔｅｒａｎｃｅ：前後を沈黙で区切られたひとまとまりの発声）」を解析するように設定されている。１個のアタランスに含まれるフレームの数は一定しておらず、所定長さ以上のポーズ（沈黙）が発生した場合に、そのポーズまでの音声部分をもって、１個のアタランスと見なすようにしている。
【０００５】
ユーザが何を話しているかを判定するために、プロセッサは先ず、１個のアタランスに含まれている複数のディジタル・フレームの各々に対して最良のマッチングを示す夫々の音響モデルを判定し、続いて、それら音響モデルに対応するテキストを判定する。様々な単語、語句、それにコマンドの集合をボキャブラリと呼び、１個の音響モデルは、ボキャブラリのうちの、１個の単語、１個の語句、または１個のコマンドに対応していることもあれば、単語等の部分を構成している１個の音、即ち音素に対応していることもある。１個の単語が複数の音素によって構成されているとき、それら音素の集合により、その単語の表音綴り字（ｐｈｏｎｅｔｉｃ  ｓｐｅｌｌｉｎｇ）が表されている。音響モデルのうちには、沈黙を表す音響モデルや、種々の環境ノイズを表す音響モデルも含まれている。
【０００６】
最良のマッチングを示す音響モデルの集合に対応する単語ないし語句は、認識候補と呼ばれる。プロセッサは、１個のアタランスに対して、ただ１つの認識候補しか生成しない（即ち、ただ１つの単語列ないし語句列しか生成しない）こともあれば、複数の認識候補を生成することもあり、後者の場合には、それら認識候補を列挙したリストを生成することになる。
【０００７】
従来の分離音声認識システムでは、その修正機構として次のようなものが用いられていた。それは、１個の単語を認識するたびに、その単語に対応した選択肢リストを表示して、もし誤った認識がなされていたならば、ユーザが、その選択肢リストから正しい単語を選択するか、或いはキーボードから正しい単語を打ち込むことによって、その誤認識を訂正できるようにしたものである。例えば、米国、マサチューセッツ州、ニュートン市に所在のドラゴン・システムズ社（Ｄｒａｇｏｎ  Ｓｙｓｔｅｍｓ，  Ｉｎｃ．）が販売している「ＤｒａｇｏｎＤｉｃｔａｔｅ  ｆｏｒ  Ｗｉｎｄｏｗｓ」という製品では、ユーザが１個の単語を発声するごとに、その単語に対応した、番号付きの複数の認識候補を列挙したリスト（即ち「選択肢リスト」）が表示され、一方、ユーザの口述内容（ディクテーション）を表示しているテキストには、それら複数の認識候補のうちの、最良スコアの認識候補が書き込まれる。そして、その最良スコアの認識候補が誤りであった場合には、ユーザは、「チューズ・Ｎ（ｃｈｏｏｓｅ−Ｎ）」と発声することで、その選択リスト中の１つの認識候補を選択することができ、ここで「Ｎ」は、正しい認識候補に付されている番号である。更に、もし、正しい単語が選択肢リスト中になければ、ユーザは、正しい単語の先頭の幾つかの文字をキーボードから打ち込むか、あるいは、先頭の幾つかの文字の夫々に対応した単語（例えば「アルファ（ａｌｐｈａ）」、「ブラボー（ｂｒａｖｏ）」等）を発声することによって、選択肢リストを、より精緻なリストに更新することができる。ユーザは更に「スクラッチ・ザット（ｓｃｒａｔｃｈ  ｔｈａｔ）」と発声することによって、誤った認識結果を廃棄させることができる。
【０００８】
ユーザが口述作業を続行して新たな単語を発声したならば、そのことによって先に表示した認識結果が容認されたものと見なされる。ただし、ユーザが、口述作業を続行して新たな単語を幾つか発声した後に、先の認識結果が誤っていたことに気付いた場合には、ユーザは「ウップ（Ｏｏｐｓ）」と発声すればよく、それによって、それまでに認識された複数の認識済単語を列挙した番号付きリストが表示される。そのリストが表示されたならば、ユーザは、「ワード・Ｎ（ｗｏｒｄ−Ｎ）」と発声することで、そのリストのうちから１つの認識済単語を選択することができ、ここで「Ｎ」は、その認識済単語に付されている番号である。音声認識システムは、この発声に応答して、その選択された認識済単語のために作成された選択肢リストを表示するため、ユーザは、その選択肢リストを使用して、上述の方法で、その認識済単語に修正を加えることができる。
【０００９】
【発明の概要】
大局的にとらえた特徴の１つは、コンピュータで実行する音声認識において、発声されたコマンドを表すデータを受取り、その受取ったデータに応答して、アクション・ポジションを操作することにある。前記コマンドは、コマンド識別情報と、少なくとも１個の発声済単語を指定した発声済単語指定情報とを含んでいる。前記データに対する音声認識処理を実行し、それによって、前記コマンド識別情報と前記発声済単語指定情報とを識別する。続いて、アクション・ポジション設定処理を実行し、このアクション・ポジション設定処理においては、前記発声済単語の位置を基準とした相対位置であって前記コマンド識別情報に応じて定まる相対位置にアクション・ポジションを設定する。
【００１０】
具体的な実施の形態は、以下に列挙する特徴の１つまたは幾つかを備えたものとすることができる。先ず、前記発声済単語指定情報は、１個または２個以上の発声済単語から成るものとしてもよく、或いは、発声によって行われた選択を表すか、または発声されたアタランスを表す、省略形式の識別子（例えば「ザット（ｔｈａｔ）」から成るものとしてもよい。
【００１１】
前記コマンド識別情報は、前記発声済単語の位置の前方にアクション・ポジションを設定すべきことを指示した識別情報とすることもでき（例えば「インサート・ビフォー（ｉｎｓｅｒｔ  ｂｅｆｏｒｅ）」）、前記発声済単語の位置の後方にアクション・ポジションを設定すべきことを指示した識別情報とすることもできる（例えば「インサート・アフター（ｉｎｓｅｒｔ  ａｆｔｅｒ）」）。これらの場合には、その発声済単語ないし発声済アタランスの位置の直前、ないし直後にアクション・ポジションを設定するようにすればよい。
【００１２】
前記発声済単語指定情報は、１個または２個以上の発声済単語と、１個または２個以上の新単語とを含んでいるものとすることができる。また、このようにした場合には、そのコマンドに含まれている発声済単語以降の単語から成る単語列を、そのコマンドに含まれている新単語で置換する置換処理を実行するようにすればよい。そして更に、新単語の直後にアクション・ポジションを設定するようにすればよい。このコマンドは、例えば、「レジューム・ウィズ（ｒｅｓｕｍｅｗｉｔｈ）」コマンドであり、このコマンドは、単語「レジューム・ウィズ」の後に１個または２個以上の認識済単語と、１個または２個以上の新単語とが続くものである。
【００１３】
「レジューム・ウィズ」コマンドは、それを実行する上で、ディスプレイ上に情報が表示されていることを必要としない。そのため、このコマンドは、ユーザが、例えばアナログ録音装置やディジタル録音装置等の、ポータブル録音装置を用いて音声を録音し、その録音した音声を後に音声認識システムへ転送して音声認識処理を行わせるという利用の仕方をするとき、特に有用なコマンドである。従って「レジューム・ウィズ」コマンドは、ユーザに、口述内容を訂正するための、ないしは誤って発声した単語を消去するための、簡明で効率的な方法を提供するコマンドである。
【００１４】
発生されたコマンドを表している前記データを生成する方法としては、音声認識を実行するコンピュータとは物理的に分離した録音装置を用いてコマンドを録音するという方法がある。その録音装置がディジタル録音装置であれば、前記データを、そのディジタル録音装置によって生成されたファイルの形とすることができる。また、前記データは、例えばアナログ録音装置を用いる場合には、発声された前記コマンドをそのアナログ録音装置で再生することによって生成される信号の形とすることができる。
【００１５】
大局的にとらえたもう１つの特徴は、コンピュータで実行する音声認識において、発声された選択コマンドを表すデータに応答して、テキスト・ブロックを選択することにある。前記選択コマンドは、コマンド識別情報と、認識済テキストのブロックである１個のテキスト・ブロックを指定したテキスト・ブロック識別情報とを含んでいる。前記テキスト・ブロックには含まれていて前記テキスト・ブロック識別情報には含まれていない単語が少なくとも１個存在している。前記データに対する音声認識処理を実行し、それによって、前記コマンド識別情報と前記テキスト・ブロック識別情報とを識別する。続いて、前記テキスト・ブロック識別情報に対応したテキスト・ブロックを選択する。
【００１６】
具体的な実施の形態は、以下に列挙する特徴の１つまたは幾つかを備えたものとすることができる。先ず、テキスト・ブロック識別情報は、前記テキスト・ブロックの認識済単語のうちの少なくとも先頭の認識済単語と、前記テキスト・ブロックの認識済単語のうちの少なくとも末尾の認識済単語とを含んでいるものとすることができる。この場合、例えば、前記コマンド識別情報が「セレクト（ｓｅｌｅｃｔ）」を含んでおり、前記テキスト・ブロック識別情報が、前記テキスト・ブロックの認識済単語のうちの先頭の認識済単語と、「スルー（ｔｈｒｏｕｇｈ）」と、前記テキスト・ブロックの認識済単語のうちの末尾の認識済単語とを含んでいるものとすることができる（即ち、「セレクト・Ｘ・スルー・Ｙ（ｓｅｌｅｃｔ  Ｘ  ｔｈｒｏｕｇｈ  Ｙ）」となる）。また、別法として、テキスト・ブロック識別情報を、発声によって行われた選択を表すか、または発声されたアタランスを表す、省略形式の識別子（例えば「ザット（ｔｈａｔ）」から成るものとしてもよい。
【００１７】
前記音声認識処理は、制約グラマーを使用して実行するようにすることができる。その場合に、前記制約グラマーは、前記テキスト・ブロックの先頭の単語と末尾の単語とが、認識済単語集合に含まれる任意の単語であればよいというものにすることができる。また、前記認識済単語集合は、前記選択コマンドが発声されたときにディスプレイ装置に表示されている認識済単語から成るものとすることができる。
【００１８】
前記音声認識処理において、前記テキスト・ブロック識別情報が指定しているテキスト・ブロックである可能性のあるテキスト・ブロックを候補として複数生成し、更に、そのブロックの先頭の認識済単語がそのブロックの末尾の認識済単語より後に発声されたテキスト・ブロックを候補から排除するようにすることができる。
【００１９】
前記音声認識処理において、前記複数の候補の各々のスコアを求めるようにしてもよい。一般的に、１つの候補は複数の構成要素で構成されており、それら構成要素の夫々のスコアに基づいて、当該候補のスコアを求めるようにする。ある候補のある構成要素と、それとは別の候補のある構成要素とが、同音異義語の関係にある場合には、それら２つの候補のスコアに調整を加えて、それら候補の各々のスコアのうちの同音異義語に原因している部分のスコアを、該当する同音異義語のうちで最良スコアを有する同音異義語のスコアに等しくするようにするのもよい。
【００２０】
大局的にとらえた更に別の特徴として、コンピュータを用いてテキストに対する作業を行う方法において、前記テキストのある部分を指定しているアタランスを含んでいるコマンドを受取り、前記アタランスに対する音声認識を実行して前記テキストの前記部分を識別し、識別した前記テキストの前記部分の位置を基準とした相対位置であって前記コマンドに応じて定まる相対位置に、前記テキスト内のアクション・ポジションを設定するということがある。
【００２１】
その他の特徴及び利点は、以下の詳細な説明、図面、及び請求項から明らかな通りである。
【００２２】
【詳細な説明】
図１において、音声認識システム１００は、複数の入出力（Ｉ／Ｏ）デバイス（図示例では、マイクロホン１０５，マウス１１０，キーボード１１５，及びディスプレイ１２０）と、汎用コンピュータ１２５とを備えている。汎用コンピュータ１２５は、プロセッサ（ＣＰＵ）１３０，Ｉ／Ｏユニット１３５，及びサウンド・カード１４０を備えている。メモリ１４５には、データ及びプログラムが格納されており、格納されているプログラムには、オペレーティング・システム１５０、アプリケーション・プログラム１５５（例えば、ワード・プロセッサのプログラム等）、それに音声認識ソフトウェア１６０などが含まれている。
【００２３】
マイクロホン１０５は、ユーザの音声をひろって、その音声をアナログ信号の形でサウンド・カード１４０へ伝達する。サウンド・カード１４０では、その信号がＡ／Ｄコンバータで処理され、それによって、そのアナログ信号がディジタル・サンプル集合に変換される。プロセッサ１３０は、オペレーティング・システム１５０及び音声認識ソフトウェア１６０の制御下にあって、ユーザの連続音声に含まれている複数のアタランスの各々を識別する。アタランスとは、十分に長い所定時間長さ（例えば、１６０〜２５０ミリ秒）の休止（ポーズ）によって前後が区切られた、ひとまとまりの発声部分をいう。アタランスには、ユーザの音声中の１個の単語だけから成るアタランスもあれば、２個以上の単語から成るアタランスもある。
【００２４】
この音声認識システムには更に、アナログ・レコーダ・ポート１６５，及び／または、ディジタル・レコーダ・ポート１７０を装備することができる。アナログ・レコーダ・ポート１６５は、サウンド・カード１４０に接続しており、ハンドヘルド型レコーダ（手持型録音装置）を用いて録音した音声をサウンド・カード１４０へ入力する際にこのポート１６５を使用する。このアナログ・レコーダ・ポート１６５は、ハンドヘルド型レコーダをこのポート１６５に挿入したときに、そのレコーダのスピーカと対向する位置にマイクロホンを配設した構成のものとしてもよく、また、マイクロホン１０５をアナログ・レコーダ・ポートとして利用するようにしてもよい。また更に、アナログ・レコーダ・ポート１６５をテープ・プレーヤで構成し、ハンドヘルド型レコーダで録音したテープを、そのテープ・プレーヤに挿入することによって、そのテープに録音されている情報がサウンド・カード１４０へ転送されるようにしてもよい。
【００２５】
ディジタル・レコーダ・ポート１７０は、例えばハンドヘルド型ディジタル録音装置を使用して生成したディジタル・ファイルを転送するためのポートとして構成することができる。またその場合には、そのディジタル・ファイルを直接、メモリ１４５へ転送する構成としてもよい。更に、ディジタル・レコーダ・ポート１７０は、コンピュータ１２５の記憶装置（例えばフロッピー・ドライブ）で構成することもできる。
【００２６】
図２は、音声認識ソフトウェア１６０の構成要素を示した図である。理解を容易にするために、以下の説明では、それら構成要素が、ある特定の結果を得るための動作を実行するというように説明する。ただし実際には、それら構成要素の各々は、プロセッサ１３０が特定の処理手順に従って動作することによって実現されるものである。
【００２７】
先ず、フロントエンド処理モジュール２００は、サウンド・カード１４０から（またはディジタル・レコーダ・ポート１７０から）転送されてくる一連のディジタル・サンプル２０５を、１個のアタランスの周波数成分を表す一連のパラメータ・フレーム２１０へ変換する。各々のフレームは、２４個のパラメータを含んでおり、１個のアタランスの非常に短い時間部分（例えば１０ミリ秒に相当する部分）を表している。
【００２８】
認識部２１５は、ある１個のアタランスに対応した一連のフレームを受取ったならば、それらフレームに処理を施して、当該アタランスに対応したテキストを識別する。そのために、認識部２１５は、そのテキストに関する幾つかの仮定を考察して、それら仮定の夫々のスコアを付与する。各々の仮定に付与するスコアは、その仮定がユーザの音声に対応している確率を反映した値を有する。処理を容易にするために、このスコアの値は、負の対数値で表すようにしている。この場合、スコアの値が小さいほど、マッチングは良好であり（即ち、仮定が真実である確率が高い）、一方、スコアの値が大きいほど、マッチングの見込みは小さい（即ち、仮定が真実である確率が低い）。従って、スコアの値が大きければ、それだけマッチングの尤度は低下する。認識部２１５は、１個のアタランスについて以上の処理を完了したならば、スコアが良好な幾つかの仮定を、複数の認識候補を列挙したリスト形で、制御／インターフェース・モジュール２２０へ供給する。この場合、そのリストに列挙されている認識候補は、その各々が、１つずつの仮定に対応しており、また、その各々にスコアが付与されている。それら認識候補のうちには、テキストに対応した認識候補が含まれていることもあり、また、コマンドに対応した認識候補が含まれていることもある。また、コマンドには、単語から成るコマンド、語句から成るコマンド、それに、センテンスから成るコマンドなどがある。
【００２９】
認識部２１５は、１個のアタランスを構成している複数のフレーム２１０を処理する際に、１個または２個以上の制約グラマー２２５に従ってその処理を実行する。制約グラマーは、テンプレートと呼ばれることもあり、また、規制ルールと呼ばれることもある。制約グラマーのうちには、あるアタランスに対応することのできる単語の条件をを規定しているもの、単語どうしの間の並び順の条件を規定しているもの、単語どうしの間の文法形態の条件を規定しているもの、それに、単語どうしの間の並び順の条件と文法形態の条件との両方を規定しているものなどがある。例えば、メニュー操作コマンドに関係した制約グラマーのうちには、メニューに示される項目（例えば「ファイル」や「編集」等）だけを集めた制約グラマーや、メニュー画面内での移動を行わせるコマンド単語（例えば「アップ（ｕｐ）」、「ダウン（ｄｏｗｎ）」、「トップ（ｔｏｐ）」、「ボトム（ｂｏｔｔｏｍ）」等）だけを集めた制約グラマーがある。制約グラマーは、アクティブ状態にされたり、非アクティブ状態にされたりするため、その時々で、アクティブ状態にある制約グラマーは異なっている。例えば、制約グラマーのうちには、特定のアプリケーション・プログラム１５５に関連付けられているものがあり、そのような制約グラマーは、ユーザがそのアプリケーション・プログラムを開いたならばアクティブ状態にされ、ユーザがそのアプリケーション・プログラムを閉じたならば非アクティブ状態にされる。認識部２１５は、アクティブ状態にある制約グラマーに違反する仮定を廃棄する。更に、認識部２１５は、ある種の制約グラマーに関連付けられている仮定のスコアに対しては、その制約グラマーの特性に基づいて調整を加えることがある。
【００３０】
図３は、認識済テキストを選択するのに用いる「セレクト（ｓｅｌｅｃｔ）」コマンドのための制約グラマーの具体例を示した図である。図示のごとく、一般的に、制約グラマーは状態図によって表すことができ、図３にはそのための状態図４００を示した。「セレクト」コマンドは、その先頭の単語が「セレクト」であって、その後に１個または２個以上の認識済単語が続く構成を有するものであり、２個以上の認識済単語を含んでいるときには、それら単語が、認識された時間の順に並んでいなければならない。この制約グラマーの第１状態４０５は、そのコマンドの先頭の単語が「セレクト」であることを要求している。先頭の単語が「セレクト」であったならば、この制約グラマーは、パス４１０で示したように第２状態４１５へ遷移することを許容し、この第２状態４１５は、そのコマンドを構成している次の単語が認識済単語であることを要求している。この第２状態４１５に付したリターンパス４２０は、そのコマンドが更にその他の認識済単語を含んでいてもよいことを示している。第２状態４１５から脱出してコマンドを完了させるパス４２５は、そのコマンドが更に含んでいてもよいのは認識済単語だけであることを示している。図４は、認識したアタランスが「フォー・スコア・アンド・セブン（ｆｏｕｒ  ｓｃｏｒｅ  ａｎｄ  ｓｅｖｅｎ）」であった場合に、以上に説明した「セレクト」コマンドのための制約グラマーが、どのような状態図で表されるかを示したものであり、図４にはそれを状態図４５０で示した。この状態図を更に拡張して、その他のアタランスの単語も含む状態図にすることも可能である。
【００３１】
制約グラマーは、状態図で表せるばかりでなく、Ｂａｃｋｕｓ−Ｎａｕｒ形式（ＢＮＦ）や、拡張ＢＮＦ（ＥＢＮＦ）で表すこともできる。「セレクト」コマンドのための制約グラマーは、ＥＢＮＦで表すと次のように表される。
＜認識結果＞：：＝セレクト＜単語列＞
このＥＢＮＦ表記において、
＜単語列＞：：＝［ＰＲＷ1［ＰＲＷ2［ＰＲＷ3．．．ＰＲＷn］］］｜
［ＰＲＷ2［ＰＲＷ3．．．ＰＲＷn］］｜．．．［ＰＲＷn］、であり、
また、
「ＰＲＷi」は、第ｉ番の認識済単語であり、
［］は、オプションであることを表しており、
＜＞は、ルールであることを表しており、
｜は、ＯＲ関数であり、
：：＝は、定義であって、左右両辺が等しいことを表している。
図３及び図４から明らかなように、上記ＥＢＮＦ表記は、「セレクト（ｓｅｌｅｃｔ）」の後に任意の認識済単語の単語列が続いてよいが、ただし、その単語列に含まれている認識済単語の並び順が正しくなければならないことを示している。この制約グラマーでは、オプション単語を含むことも、また交代単語を含むことも許容していない。ただし、場合によっては、この制約グラマーに修正を加えて、オプション単語や、交代単語ないし交代語句を含むことを許容するようにした制約グラマーを使用することもある。（例えば、「アンド」をオプション単語として許容するならば、「フォー・スコア・アンド・セブン」と「フォー・スコア・セブン」とのどちらも許容されるようになり、また、交代単語ないし交代語句を用いる場合には、例えば「フォー・スコア・アンド・セブン」と「エイティ・セブン」とのどちらも許容するようにすることができる。）。
【００３２】
再び図２について説明する。音声認識ソフトウェア１６０が使用する制約グラマー２２５のうちの１つに、ラージ・ボキャブラリ・ディクテーション・グラマーがある。ラージ・ボキャブラリ・ディクテーション・グラマーは、アクティブ・ボキャブラリ２３０に含まれている単語を識別するためのグラマーであり、アクティブ・ボキャブラリ２３０は、ソフトウェアにとって既知の単語から成るボキャブラリである。ラージ・ボキャブラリ・ディクテーション・グラマーは、更に、夫々の単語の出現頻度も示している。ラージ・ボキャブラリ・ディクテーション・グラマーに用いる言語モデルは、各々の単語の出現頻度を、その単語の前後にどのような単語があるかを考慮せずに示したユニグラム・モデルとしてもよく、或いは、各々の単語の出現頻度を、その単語に先行する単語がどのようなものであるかを考慮して示したバイグラム・モデルとしてもよい。例えばバイグラム・モデルを使用する場合には、名詞や形容詞は、動詞や前置詞と比べて、「ザ（ｔｈｅ）」の後にくる確率が高いということを規定することができる。
【００３３】
制約グラマー２２５のうちには、更に、インライン・ディクテーション・マクロ・グラマーがあり、これは、様々なディクテーション・コマンドのための制約グラマーである。ディクテーション・コマンドには、例えば、単語の頭文字を大文字化するための「キャップ（ＣＡＰ）」コマンドまたは「キャピタライズ（Ｃａｐｉｔａｌｉｚｅ）」コマンドと呼ばれるコマンドや、新たな段落をはじめるための「ニュー・パラグラフ（Ｎｅｗ−Ｐａｒａｇｒａｐｈ）」コマンドなどがある。制約グラマー２２５のうちには、更に、先に説明したようにテキストを選択するために使用する「セレクト・Ｘ・Ｙ・Ｚ（ｓｅｌｅｃｔ  Ｘ  Ｙ  Ｚ）」グラマー、誤り修正コマンド・グラマー、ディクテーション編集グラマー、特定のアプリケーション・プログラム１５５を制御するために使用するアプリケーション・コマンド・アンド・コントロール・グラマー、オペレーティング・システム１５０及び音声認識ソフトウェア１６０を制御するために使用するグローバル・コマンド・アンド・コントロール・グラマー、メニューを操作するために使用するメニュー・アンド・ダイアログ・トラッキング・グラマー、それに、キーボード１１５やマウス１１０等の入力デバイスの代わりに音声を使用できるようにするためのキーボード・コントロール・グラマーがある。
【００３４】
アクティブ・ボキャブラリ２３０に含まれている各単語は、発音モデルで表されており、より詳しくは、各単語は、その単語の表音綴り字を成す音素列によって表されている。また、各音素は、３個のノードから成るトライフォンで表すことができる。トライフォンは前後関係を考慮した音素であり、例えば「ａｂｃ」というトライフォンは、音素「ｂ」の前に音素「ａ」が存在し、音素「ｂ」の後に音素「ｃ」が存在するものであり、従って、音素「ａ」及び「ｃ」が前後関係として付随する音素「ｂ」を表している。
【００３５】
ユーザごとに、そのユーザに専用のボキャブラリ・ファイルを作成することができ、１人のユーザに対して２つ以上のボキャブラリ・ファイルを作成することも可能である。あるユーザのボキャブラリ・ファイルには、そのユーザに対応した単語、発音、及び言語モデルに関する情報の全てが収容される。また、ディクテーション及びコマンドに関連した様々なグラマーは、それらを複数の専用ボキャブラリ・ファイルに分けて収容しておくようにすれば、言語モデル情報を最適化し、また、メモリ利用効率を最適化するのに有利であり、またそれによって、１つのボキャブラリ・ファイルに収容する単語の個数を６万４千語までに抑えることができる。また、複数のシステム・ボキャブラリから成る、システム・ボキャブラリ集合も使用される。
【００３６】
音響モデル２３５は、音声認識システムを使用する各ユーザごとに、そのユーザの専用の音響モデルを用意するようにしている。そのために、音声認識システムをはじめて使用するときには、エンロールメント・プログラムを実行して、男性音声または女性音声の、発声者独立の（即ち、特定の発声者に対応するのではなく、どの発声者にも対応する）音響モデルを、特定のユーザの音声に適応させる。また、音声認識システムの使用中にも、音響モデルの適応化を更に進行させることができる。尚、音響モデルは、アクティブ・ボキャブラリ２３０とは別のファイルに収容しておくようにしている。
【００３７】
音響モデル２３５は、音素を表すものである。音素としてトライフォンを使用している場合には、音響モデル２３５は、トライフォンの各ノードを、複数のガウス型（正規分布型）確率密度関数（ＰＤＦ）の混合によって表すものとなっている。例えば、トライフォン「ａｂｃ」のノード「ｉ」は、次の［式１］に示したａｂiｃで表される。
【００３８】
【数１】
0004444396.tif 000002
この［式１］において、ｗkで表した各係数は混合重みであり、次の［式２］が成り立つ。
【００３９】
【数２】
0004444396.tif 000003
また［式１］において、μkは、確率密度関数（ＰＤＦ）Ｎkの平均ベクトルであり、ｃkは、確率密度関数（ＰＤＦ）Ｎkの共分散行列である。フレーム・シーケンス中の各フレームが２４個のパラメータを含んでいるのと同様に、各ベクトルμkも２４個のパラメータを含んでいる。行列ｃkは、２４×２４行列である。トライフォンの各ノードは、最多では、例えば１６個のＰＤＦの混合として表される。
【００４０】
ラージ・ボキャブラリ・ディクテーション・グラマーは、複数のディクテーション・トピックを含む構成とすることができる（トピックとは、分野別辞書であり、例えば「医学」トピックや「法律」トピック等がある）。各ディクテーション・トピックは、そのトピック専用のボキャブラリ・ファイルと、そのトピック専用の言語モデルとで構成される。ディクテーション・トピックに収容されている単語群は、アクティブ・ボキャブラリ２３０の構成要素である。１つのディクテーション・トピックには、典型的な具体例では、通常の音声認識において考察対象とされる約３万語程度の単語が収容されている。
【００４１】
１つのディクテーション・ボキャブラリの全体は、アクティブ・ボキャブラリ２３０と、バックアップ・ボキャブラリ２４５とで構成されている。これらのうちバックアップ・ボキャブラリ２４５は、例えば、特定ユーザ用バックアップ・ボキャブラリ単語群と、全システム的バックアップ・ボキャブラリ単語群とを収容した複数のファイルで構成されるものである。
【００４２】
ユーザが音声認識ソフトウェアの使用中に生成した単語は、特定ユーザ用バックアップ・ボキャブラリ単語群に該当する。また、この種の単語は、そのユーザの専用のボキャブラリ・ファイルに収容されると共に、そのとき使用しているディクテーション・トピックに対応したボキャブラリ・ファイルにも収容される。そのため、その単語は、そのディクテーション・トピックに対応したバックアップ・ディクショナリの一部分として、どのユーザからも利用できるようになると共に、当該ユーザは、そのとき使用しているディクテーション・トピックの種類にかかわらず常にその単語を利用できるようになる。例えば、あるユーザが、医学トピックの使用中に「ガングリオン（ｇａｎｇｌｉｏｎ）」という単語をディクテーション・ボキャブラリに追加したならば、それ以後、どのユーザも、医学トピックの使用中にはこの単語「ガングリオン」に即座にアクセスできるようになる。またそれに加えて、その単語は、当該ユーザのための特定ユーザ用バックアップ・ボキャブラリにも書き込まれる。そのため、当該ユーザは、法律トピックを使用しているときであっても、修正作業中に「ガングリオン」と発声することで、バックアップ・ディクショナリに収容されている単語「ガングリオン」を取出すことができる。
【００４３】
以上に説明した特定ユーザ用バックアップ・ボキャブラリの他に、更に、全システム的バックアップ・ボキャブラリが装備されている。全システム的バックアップ・ボキャブラリは、システムにとって既知の単語の全てを収容したものであり、ある時点でアクティブ・ボキャブラリに収容されている可能性のある単語は全て、この全システム的バックアップ・ボキャブラリに収容されている。
【００４４】
認識部２１５は、プリフィルタ処理部２４０と並行して動作できるようにしてある。あるアタランスの処理を開始する際には、認識部２１５がプリフィルタ処理部２４０へ要求を発して、そのアタランスの先頭の単語として発声された可能性のある単語（即ち、そのアタランスの先頭の幾つかのフレームに対応する可能性のある単語）のリストを出力させる。プリフィルタ処理部２４０は、それら一連のフレームとアクティブ・ボキャブラリ２３０とを粗比較し、それによって、アクティブ・ボキャブラリ２３０に含まれている単語のうち、認識部２１５において、より精緻な比較を実行することが適当であると判断される単語だけを拾い出すことで、ボキャブラリの部分集合を編成する。
【００４５】
制御／インターフェース・モジュール２２０は、音声認識ソフトウェアの動作を制御しており、また、その他のソフトウェアとの間のインターフェース、並びに、ユーザとの間のインターフェースの機能を担っている。制御／インターフェース・モジュール２２０は、認識部２１５から、各アタランスに対応した複数の認識候補を列挙したリストを受取る。それら認識候補は、ディクテーション・テキストに対応した認識候補であったり、音声認識コマンドに対応した認識候補であったり、外部コマンドに対応した認識候補であったりする。このリスト中の最良スコアの認識候補がディクテーション・テキストに対応した認識候補であったならば、制御／インターフェース・モジュール２２０は、そのディクテーション・テキストを、例えばワード・プロセッサ等の、その時点でアクティブ状態にあるアプリケーションへ転送する。制御／インターフェース・モジュール２２０は更に、その最良スコアの認識候補を、グラフィカル・ユーザ・インターフェースを介してユーザに表示することもできる。また、最良スコアの認識候補が、何らかのコマンドであった場合には、制御／インターフェース・モジュール２２０は、そのコマンドを実行する。例えば、制御／インターフェース・モジュール２２０は、音声認識コマンド（例えば「ウェイク・アップ（ｗａｋｅ  ｕｐ）」コマンドや、「メイク・ザット（ｍａｋｅ  ｔｈａｔ）」コマンド）に応答して、音声認識ソフトウェアの動作を制御することもあり、また、外部コマンドを、そのコマンドが対応しているソフトウェアへ転送することもある。
【００４６】
制御／インターフェース・モジュール２２０は更に、認識部２１５が使用するアクティブ・ボキャブラリ、音響モデル、及び制約グラマーの制御を実行する。例えば、音声認識ソフトウェアが、特定のアプリケーション（例えばＭｉｃｒｏｓｏｆｔ  Ｗｏｒｄ等）に利用されているときには、制御／インターフェース・モジュール２２０は、アクティブ・ボキャブラリを更新して、そのアプリケーションに対応したコマンド単語を組込み、また、そのアプリケーションに対応した制約グラマーをアクティブ状態にする。
【００４７】
制御／インターフェース・モジュール２２０が担当しているその他の機能としては、ボキャブラリ・カスタマイザとしての機能、及びボキャブラリ・マネージャとしての機能がある。ボキャブラリ・カスタマイザは、ユーザから供給されたテキストをスキャンすることによって、特定のトピックの言語モデルを最適化するものである。また、ボキャブラリ・マネージャは、ボキャブラリ、グラマー、及びマクロのブラウズ（閲覧）及び操作を行うために用いられる開発ツールである。制御／インターフェース・モジュール２２０のこれら機能の各々は、メイン音声認識ソフトウェアから分離した実行プログラムとして構成するようにしてもよい。同様に、制御／インターフェース・モジュール２２０それ自体も、独立した実行プログラムとして構成するようにしてもよい。
【００４８】
制御／インターフェース・モジュール２２０は更に、エンロールメント・プログラムを実行する機能も担当している。エンロールメント・プログラムは、エンロール用テキストと、このエンロール用テキストに対応したエンロール用グラマーとを使用して、音声認識ソフトウェアを、特定のユーザに適応するようにカスタマイズするためのプログラムである。エンロールメント・プログラムの動作モードとしては、エンロールメント作業をどのように行うべきかを、エンロールメント・プログラムがユーザに指示するインタラクティブ・モードと、コンピュータとは無関係にユーザに自由にエンロールメント作業を行わせるノンインタラクティブ・モードとの、両方のモードが利用可能である。インタラクティブ・モードでは、エンロールメント・プログラムがエンロール用テキストをユーザに表示して、ユーザはその表示されたテキストを読み上げる。ユーザがそのテキストを読み上げて行くのに合わせて、認識部２１５が、エンロール用グラマーを使用して、ユーザが次々と発声する一連のアタランスとエンロール用テキストのうちのそれらアタランスに対応した夫々の部分とをマッチングさせて行く。そして、認識部２１５が、両者をマッチングさせることができなかったときには、エンロールメント・プログラムがユーザへプロンプトを発して、エンロール用テキストの該当部分の読み上げを再度実行させる。認識部２１５は更に、ユーザが発声するアタランスから得られる音響情報に基づいて、エンロール用テキストのマッチング部分に対応した音響モデル２３５のトレーニング、即ち適応化を実行する。
【００４９】
一方、ノンインタラクティブ・モードにおいては、ユーザは、コンピュータが発するプロンプトによって読み上げを指示されることなく、みずからの判断でエンロール用テキストの読み上げを行う。このモードでは、ユーザは、コンピュータがディスプレイ上に表示したテキストを読み上げるばかりでなく、コンピュータの動作とは全く無関係に、紙に印刷されたテキストを読み上げることによってエンロールメントを行うことも可能であるということが、このモードの大きな利点の１つである。従って、このモードを利用する場合、ユーザは、エンロール用テキストをポータブル録音装置に吹き込み、その録音した情報を後刻コンピュータにダウンロードして認識部２１５に処理を行わせるという方法を採ることができる。また、このモードを利用する場合には、ユーザは、エンロール用テキストの全ての単語を読み上げる必要はなく、読み飛ばしたい単語やパラグラフは読み飛ばしてかまわない。更に、エンロール用テキストのうちのある部分を反復して読み上げてもかまわない。これらのことによって、エンロールメント作業の融通性が大いに高まっている。
【００５０】
エンロールメント・プログラムは、複数のエンロール用テキストを列挙したリストを提示して、使用するエンロール用テキストをユーザに選択させることができ、それらエンロール用テキストの各々には、そのテキストに対応したエンロール用グラマーが付属している。これとは別の方法として、ユーザが、よそで入手したエンロール用テキストを入力することも可能である。この場合には、エンロールメント・プログラムが、その入力されたエンロール用テキストからエンロール用グラマーを生成するか、或いは、予め生成しておいたエンロール用グラマーを使用するようにすればよい。
【００５１】
制御／インターフェース・モジュール２２０は、更に、音声認識ソフトウェア１６０が実行する様々な処理のうちの、誤り修正処理と、カーソル／ポジション操作処理とを担当している。誤り修正処理には、「メイク・ザット」コマンドに関する処理や、「スペル・ザット」コマンドに関する処理が含まれる。また、カーソル／ポジション操作処理には、上述の「セレクト」コマンド、そのバリエーション（例えば、「セレクト（始点単語）スルー（終点単語）」コマンド等）、「インサート・ビフォー（ｉｎｓｅｒｔ  ｂｅｆｏｒｅ）」コマンド、「インサート・アフター（ｉｎｓｅｒｔ  ａｆｔｅｒ）」コマンド、それに「レジューム・ウィズ（ｒｅｓｕｍｅ  ｗｉｔｈ）」コマンドに関する処理が含まれる。
【００５２】
誤り修正作業の実行中には、バックアップ・ボキャブラリを対象とした単語検索を行うが、その際には、先に、特定ユーザ用バックアップ・ディクショナリを検索し、その後に、全システム的バックアップ・ディクショナリを検索する。また、これらバックアップ・ディクショナリの検索は、ユーザがキーボードから打ち込んだテキストに新単語が含まれていた場合にも実行される。
【００５３】
システムが誤認識を発生した場合には、ユーザは、適当な修正コマンドを発することによって、その誤認識の修正を行う。図５〜図１８は、テキスト及びコマンドのあるシーケンスに応答して、制御／インターフェース・モジュール２２０が起動したユーザ・インターフェースを示した図である。図５に示した例では、認識部２１５が、先頭の（第１番）アタランス１３００（「ホエン・ア・ジャスティス・ニーズ・ア・フレンド・ニューパラグラフ（Ｗｈｅｎ  ａ  ｊｕｓｔｉｃｅ  ｎｅｅｄｓ  ａ  ｆｒｉｅｎｄ  Ｎｅｗ−Ｐａｒａｇｒａｐｈ）」）を正しく認識し、そして、制御／インターフェース・モジュール２２０が、ディクテーション・ウィンドウ１３１０の中にこのアタランスの認識結果１３０５（「Ｗｈｅｎ  ａ  ｊｕｓｔｉｃｅ  ｎｅｅｄｓ  ａ  ｆｒｉｅｎｄ））を表示している。ここで、制御／インターフェース・モジュール２２０は、そのアタランスのうちのテキスト部分に対応したテキスト１３０５（「Ｗｈｅｎ  ａ  ｊｕｓｔｉｃｅ  ｎｅｅｄｓ  ａ  ｆｒｉｅｎｄ」）をディスプレイに表示して、そのアタランスに含まれているフォーマット・コマンド（「ニューパラグラフ」）を実行している。
【００５４】
認識部２１５は、第２番アタランス（「ゼア・アー・ツー・カインズ・オブ・リーガル・キビツァーズ（Ｔｈｅｒｅ  ａｒｅ  ｔｗｏ  ｋｉｎｄｓ  ｏｆ  ｌｅｇａｌ  ｋｉｂｉｔｚｅｒｓ）」）を誤認識しており、即ち、単語「ｋｉｂｉｔｚｅｒｓ」を、誤って「ｃａｎｃｅｒｓ」であると認識している。制御／インターフェース・モジュール２２０は、この誤った認識結果１３１６（「Ｔｈｅｒｅ  ａｒｅ  ｔｗｏ  ｋｉｎｄｓ  ｏｆ  ｌｅｇａ  ｃａｎｃｅｒｓ」）をディクテーション・ウィンドウ１３１０の中に表示している。制御／インターフェース・モジュール２２０は更に、現在アタランス（ここでは第２番アタランス）の認識結果を、ディクテーション・ウィンドウ１３１０の最下段の表示フィールド１３２０にも表示している。
【００５５】
図６は、ユーザが、この誤認識を修正するところを示した。ユーザは、マウス１１０を操作して単語「ｃａｎｃｅｒ」を選択した上で「スペル・ザット・ケー・アイ・ビー・アイ（Ｓｐｅｌｌ  ｔｈａｔ  ｋ  ｉ  ｂ  ｉ）」と発声する。制御／インターフェース・モジュール２２０は、その発声に応答して、その「スペル・ザット」コマンドを認識し、図６に示したような、修正ダイアログボックス１３２５を表示する。修正ダイアログボックス１３２５には、指定された文字列（「ｋｉｂｉ」）で始まる単語の番号付きリスト１３２６が表示される。尚、ユーザは、マウス１１０を操作して単語「ｃａｎｃｅｒ」を選択する代わりに、「セレクト」コマンドを使用して言葉によってこの単語を選択することもでき、それには、「セレクト・キャンサー（ｓｅｌｓｃｔ  ｃａｎｃｅｒ）」と発声すればよい。また同様に、ユーザは、「スペル・ザット・ケー・アイ・ビー・アイ（Ｓｐｅｌｌ  Ｔｈａｔ  ｋ  ｉ  ｂ  ｉ）」と発声する代わりに、キーボードから文字列「ｋｉｂｉ」を打ち込んでもよい。
【００５６】
ユーザは、「チューズ・４（Ｃｈｏｏｓｅ  ４）」と発声することで、正しい単語１３２７（「ｋｉｂｉｔｚｅｒｓ」）を選択することができ、それは、「ｋｉｂｉｔｚｅｒｓ」が、選択肢リストの第４番目に表示されているからである。図７に示したように、制御／インターフェース・モジュール２２０が、この発声に応答して、ディクテーション・ウィンドウ１３１０に表示されている誤った単語（「ｃａｎｃｅｒ」）を、選択された単語１３２７で置換する。
【００５７】
再び図６を参照して説明すると、修正ダイアログボックス１３２５は「トレーニング（Ｔｒａｉｎ）」ボタン１３２８を備えており、ユーザがこのボタンを選択すると、制御／インターフェース・モジュールがそれに応答して、トレーニング・セッションを開始する。トレーニング・セッションにおいては、ユーザにプロンプトを発し、トレーニングしようとする単語をユーザに発声させて、サンプルを収集する。認識部２１５は、そのようにして収集したサンプルを使用して、単語の音響モデルをユーザの発声パターンに適応させる。
【００５８】
図８に示したように、認識部２１５は次に、第３番アタランス１３２９（「ゾウズ・フー・プロナウンス・アミーカス（ｔｈｏｓｅ  ｗｈｏ  ｐｒｏｎｏｕｎｃｅ  ａｍｉｃｕｓ）」）を誤認識しており、制御／インターフェース・モジュール２２０が、この誤認識に応答して、ディクテーション・ウィンドウ１３１０の中に、誤ったテキスト１３３０（「ゾウズ・フー・ブラウン・ツー・ミート・ジス（ｔｈｏｓｅ  ｗｈｏ  Ｂｒｏｗｎ  ｔｏ  ｍｅｅｔ  ｔｈｉｓ）」）を表示している。この場合、ユーザは、「コレクト・ザット（Ｃｏｒｒｅｃｔ  Ｔｈａｔ）」コマンド１３３１を発声することで、制御／インターフェース・モジュール２２０に、図９に示すような修正ダイアログボックス１３２５を開かせる。この修正ダイアログボックス１３２５には、第３番アタランス１３２９の全体に対応した認識候補を列挙した選択肢リスト１３３２が表示される。修正ダイアログボックス１３２５に一度に表示可能な認識候補の数は、最多で１０個までであるが、認識候補を列挙したリスト１３３２のエントリの個数は１０個を超えることがあり得る。その場合には、スクロールバー１３３３を操作すれば、第１１番目以降のエントリにアクセスすることができる。
【００５９】
図１０に示したように、ユーザは、マウス１１０を操作して、単語「ブラウン（Ｂｒｏｗｎ）」を選択する。ただし、上で説明したように、ユーザは、音声コマンドによって単語「ブラウン（Ｂｒｏｗｎ）」を選択することもでき、それには、「セレクト・ブラウン（ｓｅｌｅｃｔ  Ｂｒｏｗｎ）」と発声すればよい。図１１に示すように、ユーザはこれに続いて、「ピー・アール・オー・エヌ（ｐｒｏｎ）」１３４０と発声することによって、単語「Ｂｒｏｗｎ」を置換すべき単語が、文字列「ｐｒｏｎ」ではじまる単語であることを指定する。この場合、ユーザは、キーボードから文字列「ｐｒｏｎ」を打ち込んでもよく、それによっても同じ結果が得られる。この選択に応答して、制御／インターフェース・モジュール２２０が、更新した認識候補のリスト１３４１を表示する。この新たなリスト１３４１に含まれている認識候補は全て、更新前のリストでは単語「Ｂｒｏｗｎ」となっていた部分が、「ｐｒｏｎ」ではじまる単語に置換されている。また、それら認識候補はいずれも、「Ｂｒｏｗｎ」に先行する単語列（「ｔｈｏｓｅ  ｗｈｏ」）は正しく認識された単語列になっているが、「Ｂｒｏｗｎ」に後続する単語列は「ｔｏ  ｍｅｅｔ  ｔｈｉｓ」になっている。
【００６０】
図１２に示したように、ユーザは、マウスを操作してそのリストの第３番エントリを選択することによって、単語「ｐｒｏｎｏｕｎｃｅ」を含んでいる認識候補１３４５を選択する。尚、ユーザは、「チューズ・３（Ｃｈｏｏｓｅ  ３）」と発声するようにしてもよく、それによっても同じ結果が得られる。
【００６１】
続いてユーザは、図１３に示したように、マウスを操作して単語列「ｔｏ  ｍｅｅｔ  ｔｈｉｓ」１３５０を選択する。続いてユーザは、図１４に示したように、キーボードから文字列「ａｍｉｃｕ」を打ち込む。すると、制御／インターフェース・モジュール２２０がそれに応答して、更新した認識候補のリスト１３５１を生成する。この更新したリスト１３５１に含まれている認識候補はいずれも、単語列「ｔｈｏｓｅ  ｗｈｏ  ｐｒｏｎｏｕｎｃｅ」ではじまっており、また、文字列「ａｍｉｃｕ」ではじまる単語を含んでいる。例えば、このリストのうちの１つのエントリ１３５２は、文字列「ａｍｉｃｕ」ではじまる語句「ａｍｉｃｕｓ  ｃｕｒｉａｅ」を含んでいる。図示例では、第１番エントリ１３５３が正しいエントリであるため、ユーザは、修正ダイアログボックス１３２５の最下段にある「ＯＫ」ボタン１３５４をクリックする。すると、制御／インターフェース・モジュール２２０が、そのクリック操作に応答して、図１５に示したように、そのアタランスの訂正バージョン１３５５を、ディクテーション・ウィンドウ１３１０の中に表示する。以上に説明したように、アタランスの修正作業の全ステップが、１つの修正ダイアログボックス１３２５の中で実行される。
【００６２】
図１６に示したように、認識部２１５は、次のアタランス１３６０（「イーチ・サブミッツ・ア・ブリーフ・アズ・アン・アウトサイダー（Ｅａｃｈ  ｓｕｂｍｉｔｓ  ａ  ｂｒｉｅｆ  ａｓ  ａｎ  ｏｕｔｓｉｄｅｒ）」）も誤って認識しており、その誤認識に応答して、制御／インターフェース・モジュール２２０がディクテーション・ウィンドウ１３１０の中に誤ったテキスト１３６１（「イーチ・サブミッツ・ア・ブリーフ・イズ・アン・アウトサイダー（Ｅａｃｈ  ｓｕｂｍｉｔｓ  ａ  ｂｒｉｅｆ  ｉｓ  ａｎ  ｏｕｔｓｉｄｅｒ）」）を表示している。図１６には、このユーザ・インターフェースの更にもう１つの特徴が示されている。その特徴とは、あるアタランスの認識作業中に、制御／インターフェース・モジュール２２０は、そのアタランスの部分認識候補１３６５を表示できるということである。この部分認識候補は、認識部２１５がそのアタランスの認識処理を完了する前のある時点における、そのアタランスに対応した仮定のうちの、スコアが良好な一連の仮定によって表された候補である。長いアタランスは処理に長時間を要することがあるため、部分認識候補を表示することが有用である。ユーザはここで再び「コレクト・ザット」コマンド１３３１を発声して、制御／インターフェース・モジュール２２０に、図１７に示したような修正ダイアログボックス１３２５を表示させる。この修正ダイアログボックス１３２５には、アタランス１３６０の全体に対応した複数の認識候補のリスト１３７０が含まれている。アタランス１３６０の正しいテキストは、リスト１３７０の第２番エントリ１３７２として表示されているため、ユーザは、「チューズ・２（Ｃｈｏｏｓｅ  ２）」と発声して、そのテキストを選択する。この発声に応答して、制御／インターフェース・モジュール２２０が、図１８に示したように、ディクテーション・ウィンドウ１３１０の中にそのテキスト１３７２を表示する。
【００６３】
図１９に、制御／インターフェース・モジュール２２０が、認識結果に対する処理を実行するときの処理手順５００を示した。先ず最初に、制御／インターフェース・モジュール２２０は、認識部２１５から、あるアタランスの認識結果を受取る（ステップ５０５）。音声認識ソフトウェアの動作モードが、修正モードになっていなければ（即ち、修正ダイアログボックス１３２５が表示されていなければ）（ステップ５０５）、制御／インターフェース・モジュール２２０は、最良スコアの認識候補が、テキストしか含んでいないかどうかを判定する（ステップ５１０）。それがテキストしか含んでいなかったならば、制御／インターフェース・モジュールは、そのテキストの処理を実行する（ステップ５１５）。このとき、制御／インターフェース・モジュールは、例えば、そのテキストをディクテーション・ウィンドウ１３１０に加入する。
【００６４】
一方、その最良スコアの認識候補が、テキスト以外のものを含んでいたならば（ステップ５１０）、制御／インターフェース・モジュールは、その認識候補が修正コマンドを含んでいるか否かを判定する（ステップ５２０）。修正コマンドが発せられたのであれば、修正ダイアログボックス１３２５をアクティブ状態にする。また、修正コマンドとしては、既に説明した「セレクト」コマンド、「スペル・ザット」コマンド、及び「コレクト・ザット」コマンドに加えて、更にもう１つのコマンドがあり、それは「メイク・ザット」コマンドである。
【００６５】
もし、その最良スコアの認識候補が、修正コマンドを含んでいなかったならば（ステップ５２０）、制御／インターフェース・モジュールは、その最良スコアの認識候補に含まれているコマンドが何であれ、そのコマンドの処理を実行する（ステップ５２５）。例えば、図５に示したように、その最良スコアの認識候補が、テキストの他に、「ニュー・パラグラフ」コマンド等のフォーマット・コマンドを含んでいたならば、制御／インターフェース・モジュールは、その認識候補のテキスト部分の処理を実行すると共に、そのフォーマット・コマンドを実行する。
【００６６】
一方、最良スコアの認識候補が修正コマンドを含んでいると判定されたならば（ステップ５２０）、制御／インターフェース・モジュールは、修正ダイアログボックス１３２５を表示して（ステップ５３０）、修正モードに入る（ステップ５３５）。
【００６７】
続いて、制御／インターフェース・モジュールは、その最良スコアの認識候補を、修正コマンドとして処理する（ステップ５４０）。また、制御／インターフェース・モジュールが最初に認識結果を受け取ったときに、音声認識ソフトウェアが既に修正モードで動作していた場合（即ち、修正ダイアログボックスが既に表示されていた場合）にも、制御／インターフェース・モジュールは、最良スコアの認識候補を、修正コマンドとして処理する。
【００６８】
一般的に、制御／インターフェース・モジュールは、修正コマンドに応答して動作するときには、修正ダイアログボックス１３２５の中に、選択肢リストを表示する。その修正コマンドが「コレクト・ザット」コマンドであって、しかも、最良スコアの認識候補のいずれの部分も、マウス１１０、キーボード１１５、ないしは「セレクト」コマンド等によって選択されていなければ、その選択肢リストは、認識部２１５から受け取った認識候補を列挙したリストになっており、そのリスト中の認識候補は、スコアの良い順に並べられている。一方、その修正コマンドが「コレクト・ザット」コマンドであっても、最良スコアの認識候補のある部分が選択されている場合には、その選択肢リストは、最初に認識部２１５から受取ったオリジナルの認識候補のうちの、選択部分だけが変更された、新バージョンの認識候補を列挙したリストになっている。オリジナルの認識候補をそのように変更した、新バージョンの認識候補を生成させるためには、例えば、オリジナルの認識候補のうちの選択部分だけを、オリジナルのものから変化させることを許容する制約グラマーを使用して当該アタランスの認識作業を再度実行するように、認識部２１５に指令を発すればよい。
【００６９】
修正コマンドが「スペル・ザット」コマンドである場合もこれと同様であり、オリジナルの認識候補の部分選択がされていなければ、表示される選択肢リストのエントリは全て、その「スペル・ザット」コマンドの、「スペル・ザット」という単語列に続く文字列からはじまるエントリになっている。そして、オリジナルの認識候補のある部分が選択されている場合には、表示される選択肢リストのエントリは、オリジナルの認識候補の選択部分が「スペル・ザット」コマンドに指定された文字列からはじまるように変更された、新バージョンの選択候補になっている。
【００７０】
また、「メイク・ザット」コマンドは、そのコマンドの先頭が「メイク・ザット（Ｍａｋｅ  Ｔｈａｔ）」という単語列から成り、その後に、１個または２個以上の置換単語から成る置換単語列が続いているコマンドである。このコマンドが発せられたときに、オリジナルの認識候補のいずれの部分も選択がされていなければ、表示される選択肢リストは、その置換単語列の認識結果をエントリとして含むリストになっており、この場合には、オリジナルの認識候補の全体が、その置換単語列で置換されることになる。ただし、別法として、オリジナルの認識候補の部分選択がなされていなかったならば音声認識ソフトウェアが自動的に、それらオリジナルの認識候補の適当な部分を、置換単語列で置換すべき部分として選択するようにしてもよく、その場合には、表示される選択リストは、その選択部分が様々に異なった種々の認識候補を含んだリストになる。一方、オリジナルの認識候補のある部分が選択がなされているのであれば、表示される選択肢リストには、オリジナルの認識候補の選択部分を、置換単語列の様々な認識候補で置換した様々なバージョンの認識候補を含むものとなる。
【００７１】
制御／インターフェース・モジュールは、最良スコアの認識候補の処理を完了したならば（ステップ５４０）、その認識候補に含まれていたコマンドによる修正セッションが完了しているか否かを判定する（ステップ５４５）。修正セッションが完了していたならば、制御／インターフェース・モジュールは、修正モードから脱出して、修正ダイアログボックスを閉じる（ステップ５５０）。修正セッションが完了していたために修正モードから脱出した場合も、またそうでない場合も、制御／インターフェース・モジュールは、続いて、次の認識候補集合が供給されるのを待つ（ステップ５００）。更に、制御／インターフェース・モジュールは、テキストしか含まない認識候補の処理を完了したときにも（ステップ５１５）、また、修正コマンド以外のコマンドしか含まない認識候補の処理を完了したときにも（ステップ５２５）、同様に、次の認識候補集合が供給されるのを待つことになる。
【００７２】
既述のごとく、ユーザは、「メイク・ザット」コマンドを使用して正しい単語ないし単語列の読みを発声するという方法と、「スペル・ザット」コマンドを使用して正しい単語のスペル（またはそのスペルの一部）を発声するという方法との、いずれを選択することも可能である。ユーザが「メイク・ザット」コマンドを起動したならば、認識部２１５は、そのコマンドを含むアタランスの音声認識を実行し、複数の順序付け音素群（即ち、認識候補）を列挙したリストを、認識結果として返してくる。この場合に、例えば、「メイク・ザット・アップル（Ｍａｋｅ  Ｔｈａｔ  Ａｐｐｌｅ）」というアタランスの認識結果には、第１番の認識候補として「メイク・ザット・ア・プル（Ｍａｋｅ  Ｔｈａｔ  ａ  ｐｕｌｌ）」に対応した音素群が含まれ、また、第２番の認識候補として「メイク・ザット・アップル（Ｍａｋｅ  Ｔｈａｔ  ａｐｐｌｅ）」に対応した音素群が含まれているということがあるかもしれない。
【００７３】
制御／インターフェース・モジュール２２０は、認識部２１５から供給される認識候補のリストを拡張して、各々の認識候補の「メイク・ザット」に続く部分の音素群に対応する「混同発音」のマッチング検索を実行する。この混同発音という概念は、特性が類似した音素群どうしは互いに混同されがちであるという知見に基づいたものである。制御／インターフェース・モジュール２２０は、続いて、混同発音の検索結果に対応した単語を列挙したリストを生成し、それら単語を使用することによって、修正ダイアログボックス１３２５に表示される選択肢リストのエントリを増大させる。
【００７４】
更に、音声認識ソフトウェア１６０のコンフィギュレーションの設定を、修正ダイアログボックスを使用せずに「メイク・ザット」コマンド及び「スペル・ザット」コマンドを実行できるような設定とすることも可能である。音声認識ソフトウェア１６０のコンフィギュレーションをそのように設定したならば、制御／インターフェース・モジュール２２０は、１個のアタランスの全体、またはそのアタランスのうちのユーザによって選択された部分、またはそのアタランスのうちの自動選択によって選択された部分を、その「メイク・ザット」コマンドまたは「スペル・ザット」コマンドの最良スコアの認識結果のテキスト部分で置換する。制御／インターフェース・モジュール２２０は、この置換を実行するためには、例えば、認識作業の認識結果が上述のリスト中のエントリの１つを必ず含むことを要求する制約グラマーを使用して当該アタランスの認識作業を再度実行するように、認識部２１５に指令を発すればよい。
【００７５】
ユーザが「スペル・ザット」コマンドを起動した場合には、認識部２１５は、文字列以外を認識することを許容しないスペル制約グラマーの規定に従って、単語のスペルの認識を実行する。この場合、認識部２１５から供給される認識候補のリストは、複数の文字列を列挙したリストとなり、このリストに含まれる各文字列は、ユーザがその全体または一部のスペルを指定した単語に該当する可能性のある認識結果となっている。次に、制御／インターフェース・モジュールは、その認識結果のリストに含まれている夫々の文字列に対応した「混同スペル」のマッチング検索を実行することができる。混同スペルのマッチング検索は、混同発音のマッチング検索と同様のものであり、発音が類似した文字列どうしは互いに混同されがちであるという知見に基づいたものである。続いて、混同スペルのマッチング検索の結果を、混同発音のマッチング検索の結果と同様に利用して、先に誤認識したテキストを修正する。
【００７６】
ここで概要を述べておくと、音声認識システムは、混同発音のマッチング検索や混同スペルのマッチング検索を、ディクショナリを検索することによって実行する。もし、最初に誤認識された単語を修正するために使用された単語が、アクティブ・ボキャブラリに含まれていなければ、認識部２１５が、最初の認識作業においてその単語を誤認識したことは不可避であったはずである。そこで、同じ誤認識の再発を防止するために、制御／インターフェース・モジュールは、バックアップ・ディクショナリに収容されているその単語をアクティブ・ボキャブラリ２３０に追加することで、その単語を「アクティブ状態」にする。
【００７７】
図２１は、制御／インターフェース・モジュール２２０が修正コマンドを実行する際の処理手順６００を示した図である。ユーザが発したコマンドが「コレクト・ザット」コマンドであったならば（ステップ６００）、制御／インターフェース・モジュールは、上で説明したのと同様に、選択肢リストを表示する（ステップ６０５）。
【００７８】
一方、ユーザが発したコマンドが「コレクト・ザット」コマンドではなく（ステップ６００）、「セレクト」コマンドまたはその変形コマンド（例えば「セレクト［始点単語］スルー［終点単語］」コマンド等）であったならば（ステップ６１０）、制御／インターフェース・モジュールは、その「セレクト」コマンド等に指定されている単語ないし単語列と同じものを、表示されているテキスト中から探し出してハイライト表示にする（ステップ６１５）。例えばそのコマンドが基本的な「セレクト」コマンドであったならば、制御／インターフェース・モジュールは、先頭の単語「セレクト」の後に続く単語を調べて、表示されているテキスト中のその単語をハイライト表示にする。同様に、もしそのコマンドが、「セレクト［始点単語］スルー［終点単語］」コマンドであったならば、制御／インターフェース・モジュールは、そのコマンドの「［始点単語］」の部分に示された単語ではじまり「［終点単語］」の部分に示された単語で終わるような、表示されているテキスト中のブロックを、ハイライト表示にする。認識部２１５は、拡張「セレクト」コマンドに対応した制約グラマーを使用してそれら単語を識別するようにしており、この制約グラマーは次のように表される。
0004444396.tif 000004
この式において、
＜単語列＞：：＝［ＰＲＷ1［ＰＲＷ2［ＰＲＷ3．．．ＰＲＷn］］］｜
［ＰＲＷ2［ＰＲＷ3．．．ＰＲＷn］］｜．．．［ＰＲＷn］、であり、
また、
「ＰＲＷi」は、第ｉ番の認識済単語である。
一般的に、この種のコマンドを処理するときには、ディスプレイ１２０上に表示されている全ての認識済単語が考察対象となる。
【００７９】
上式に示した制約グラマーが適用されるコマンドは、「セレクト［単語（または単語列）］」コマンド、「セレクト［始点単語］スルー［終点単語］」コマンド、「セレクト・フロム［始点単語］ツー［終点単語］」コマンド、「セレクト・ザット」コマンド、それに、「セレクト・アゲイン」コマンドである。また、それらコマンドの変形コマンドに対しても適用される。
【００８０】
上式中の｛順序付け｝という表示は、コマンドに含まれる２つの＜単語列＞のうち、前の＜単語列＞に示された単語列が、後の＜単語列＞に示された単語列よりも、表示されているテキスト中で先に出現することを条件として要求する表示である。この｛順序付け｝表示を制約グラマーに含めることによって、単に、後の＜単語列＞に該当する単語列が、前の＜単語列＞に示された単語に応じて異なったものとなることを要求する方式と比べて、処理量が大幅に軽減される。この｛順序付け｝演算子を実行する場合には、例えば、最初に、前の＜単語列＞及び後の＜単語列＞が表示されている認識済テキスト中に含まれているような仮定の全てを容認し、その後に、順序が正しくない認識結果を含む仮定（即ち、選択ブロックの「始点単語」が実は「終点単語」より後に出現するような認識結果）を放棄するようにすればよい。従って、上式に示した制約グラマーは、位置情報に基づいて、無意味な認識結果を排除するようにしたものである。
【００８１】
「セレクト・ザット」コマンドは、ユーザの発声済アタランスを選択してハイライト表示にするための、迅速で効率的な手段を提供するものである。より詳しくは、制御／インターフェース・モジュールが、「セレクト・ザット」コマンドに応答して、ユーザの発声済アタランスに対応した単語列をハイライト表示にするのである。
【００８２】
「セレクト・アゲイン」コマンドは、１つの文章中に同じ単語が繰返して出現しているときに、その単語の特定の出現箇所を選択するための、迅速で効率的な手段を提供するものである。例えば、ディスプレイ画面上に表示されているテキスト中の３カ所に「音声」という単語が出現しており、音声認識システムが、それら３箇所のうちの先頭の「音声」を（または、その先頭の「音声」を始点単語とする単語列、或いはその先頭の「音声」を終点単語とする単語列を）ハイライト表示にしている場合に、ユーザは「セレクト・アゲイン」と発声することによって、第２番目に出現している「音声」へ移動させることができる。また、このとき、カーソル・ポジションより前方の当該単語の出現箇所へ移動させるか、それとも後方の当該単語の出現箇所へ移動させるかは、ユーザがパラメータを設定することで指定可能である。
【００８３】
以上に説明した種々の選択コマンドに応答して仮定を生成する際には、同音異義語の関係にある複数の単語に対しては、それらの全てに同じスコアを付与するように、認識部２１５のコンフィギュレーションを設定することができる。例えば、ディスプレイ上に表示されているテキスト中に「トライフォンズ（ｔｒｉｐｈｏｎｅｓ）」という単語と「トライ・フォンズ（ｔｒｙ  ｐｈｏｎｅｓ）」という語句との両方が含まれているならば、認識部２１５は、それら２つの要素のいずれかを含んでいる様々な仮定を生成するにあたって、それら仮定の全てにおいて、それら２つの要素のスコアのうちのより良い方のスコアを、それら要素の各々に適用するようにする。
【００８４】
上記の制約グラマーのうちの＜単語列＞の部分は、ディスプレイ上に表示されているテキストが変化するたびに更新することができる。例えば、表示テキストがスクロールされて、ディスプレイ画面の最上段では１行ずつ消えて行き、最下段では１行ずつ追加されるときには、消えて行くテキスト部分は、その制約グラマーの＜単語列＞の先頭部分から次々と除去し、追加される表示テキストは、その制約グラマーの＜単語列＞の末尾に追加するようにすればよい。
【００８５】
尚、マウス１１０またはキーボード１１５を操作して、アタランスの所望の部分を選択することによっても、「セレクト」コマンドを使用した場合と同じ結果を得ることができる。
【００８６】
もし、ユーザが発したコマンドが「コレクト・ザット」コマンドでもなく（ステップ６００）、また「セレクト」コマンドでもなかったならば（ステップ６１０）、制御／インターフェース・モジュールは、そのコマンドが「メイク・ザット」コマンドか否かを判定する（ステップ６２０）。認識部２１５が「メイク・ザット」コマンドを識別するために用いる制約グラマーは、「セレクト」コマンドを識別するために用いる上述の制約グラマーと同様のものである。より詳しくは、その制約グラマーは、先頭に「メイク・ザット」という単語列があり、その後に１個または２個以上の、認識ボキャブラリに収容されている単語が続くことを条件とするものである。この制約グラマーは、次のように表される。
＜認識結果＞：：＝メイク・ザット＜音素列＞
この式において、
＜音素列＞：：＝＜音素列＞＜音素＞、であり、
また、
＜音素＞は、任意の有効音素である。
ユーザが起動したコマンドが「メイク・ザット」コマンドであったならば（ステップ６２０）、制御／インターフェース・モジュールは，ＭＡＫＥ・ＴＨＡＴ修正処理（ステップ６２５）を実行する。
【００８７】
一方、そのコマンドが「コレクト・ザット」コマンドでもなく（ステップ６００）、「セレクト」コマンドでもなく（ステップ６１０）、「メイク・ザット」コマンドでもなかったならば（ステップ６２０）、制御／インターフェース・モジュールは、そのコマンドが「スペル・ザット」コマンドか否かを判定する（ステップ６３０）。認識部２１５が「スペル・ザット」コマンドを識別するために用いる制約グラマーは、次のように表される。
＜認識結果＞：：＝スペル・ザット＜文字列＞
この式において、
＜文字列＞：：＝＜文字列＞＜文字＞、であり、
また、
＜文字＞は、任意の英文字である。
ユーザが起動したコマンドが「スペル・ザット」コマンドであったならば（ステップ６３０）、制御／インターフェース・モジュールは、ＳＰＥＬＬ・ＴＨＡＴ修正処理（ステップ６３５）を実行する。ユーザは、修正ダイアログボックスが開かれているときに、キーボードから文字列を打ち込むか、または、文字列を発声すれば、それによっても、この「スペル・ザット」コマンドを起動することができる。
【００８８】
制御／インターフェース・モジュールは、ＭＡＫＥ・ＴＨＡＴ修正処理（ステップ６２５）またはＳＰＥＬＬ・ＴＨＡＴ修正処理（ステップ６３５）を実行したときには、それに続いてＦＩＮＤ＆ＲＥＰＬＡＣＥ処理（ステップ６４０）を実行する。この処理を実行すると、認識済テキストのうちの一部が、ＭＡＫＥ・ＴＨＡＴ修正処理またはＳＰＥＬＬ・ＴＨＡＴ修正処理によって生成されたテキストで置換される。簡単に述べるならば、「セレクト」コマンドを使用する等の方法によってそのアタランスのある部分が既に選択されている場合には、制御／インターフェース・モジュール２２０は、認識部２１５に認識作業を再度実行させて、その選択部分の単語をその認識結果の単語で置換する。一方、どの部分の選択もされていなければ、制御／インターフェース・モジュールは、そのアタランスの全体を、ＭＡＫＥ・ＴＨＡＴ修正処理またはＳＰＥＬＬ・ＴＨＡＴ修正処理の実行によって生成されたテキストで置換するか、或いは、認識済単語の音声フレームの認識作業を再度実行させて、その認識結果として得られる単語で置換する。
【００８９】
また、もしその修正コマンドが「チューズ・Ｎ」コマンドであったならば（ステップ６４５）、制御／インターフェース・モジュールは、修正ダイアログボックス１３２５に表示されているリストの第Ｎ番のエントリを選択した上で（ステップ６５０）、修正が完了したことを表示する（ステップ６５５）。もしその修正コマンドが「ＯＫ」コマンドをはじめとする肯定的な応答であったならば（ステップ６６０）、制御／インターフェース・モジュールは、修正ダイアログボックス１３２５の最上段に表示されているエントリを選択した上で（ステップ６６５）、修正が完了したことを表示する（ステップ６５５）。
【００９０】
図２０は、最良スコアの認識候補に含まれているコマンドが、例えばカーソル／アクション・ポジション操作コマンド等の、修正コマンドには該当しないコマンドである場合に、制御／インターフェース・モジュールがそのコマンドを実行するための処理手順を示したものである（これは、上述のステップ５２５に対応した処理手順である）。図２０には、特に、「インサート・ビフォー（Ｉｎｓｅｒｔ  Ｂｅｆｏｒｅ）」コマンド、「インサート・アフター（Ｉｎｓｅｒｔ  Ａｆｔｅｒ）」コマンド、それに、「レジューム・ウィズ（Ｒｅｓｕｍｅ  Ｗｉｔｈ）」コマンドが示されている。
【００９１】
もし修正コマンドには該当しないそのコマンドが「インサート・ビフォー」コマンドであったならば（ステップ５５５）、制御／インターフェース・モジュールは、カーソル／アクション・ポジションを、そのコマンドに指定されているテキスト部分の先頭の直前の位置へ移動させる（ステップ５６０）。同様に、もしそのコマンドが「インサート・アフター」コマンドであったならば（ステップ５６５）、制御／インターフェース・モジュールは、カーソル／アクション・ポジションを、そのコマンドに指定されているテキスト部分の末尾の直後の位置へ移動させる（ステップ５７０）。
【００９２】
これら「インサート・ビフォー／アフター」コマンドは、ユーザがテキスト上の所望の位置へ容易に移動するための手段を提供するものである。認識部２１５は、これらコマンドを識別するために「インサート」制約グラマーを使用し、この制約グラマーは次のように表される。
＜認識結果＞：：＝インサート
［ビフォー＜単語列＞］｜
［アフター＜単語列＞］｜
［ビフォー・ザット］｜
［アフター・ザット］
この式において、
＜単語列＞：：＝［ＰＲＷ1［ＰＲＷ2［ＰＲＷ3．．．ＰＲＷn］］］｜
［ＰＲＷ2［ＰＲＷ3．．．ＰＲＷn］］｜．．．［ＰＲＷn］、であり、
また、
「ＰＲＷi」は、第ｉ番の認識済単語である。
「インサート・ビフォー・ザット」コマンドないし「インサート・アフター・ザット」コマンドは、直前に認識されたユーザ・アタランスに対応したテキスト部分の先頭ないし末尾へ、または、ユーザが直前に選択したテキスト部分の先頭ないし末尾へ、迅速且つ効率的に移動するための手段を提供するものである。もしユーザが、これらコマンドを発する前に、テキストの部分選択を行っていなかったならば、制御／インターフェース・モジュールは、これらのコマンドに応答して、カーソル／アクション・ポジションを、（「インサート・ビフォー・ザット」コマンドの場合であれば）直前に認識したアタランスの先頭の直前の位置へ移動させ、或いは、（「インサート・アフター・ザット」コマンドの場合であれば）直前に認識したアタランスの末尾の直後の位置へ移動させる。従って、ユーザは、アタランスの先頭に何らかの単語または単語列を入れ忘れて発声してしまったことに気付いたなら、「インサート・ビフォー・ザット」と発声すれば、そのアタランスの先頭へ移動することができる。そして、入れ忘れた単語を発声した後に、「インサート・アフター・ザット」と発声すれば、そのアタランスの末尾の位置へ戻ることができる。
【００９３】
一方、もしユーザが、「インサート・ビフォー・ザット」コマンドないし「インサート・アフター・ザット」コマンドを発する前に、テキストのある部分を選択していたならば、制御／インターフェース・モジュールは、「インサート・ビフォー・ザット」コマンドないし「インサート・アフター・ザット」コマンドに応答して、その選択部分の直前の位置ないし直後の位置へカーソル／アクション・ポジションを移動させる。従ってユーザは、例えば、「セレクト［始点単語］スルー［終点単語］」と発声して、所望のテキスト部分を選択した上で「インサート・ビフォー・ザット」と発声すれば、その選択部分の先頭へ移動することができる。
【００９４】
もし修正コマンドには該当しないそのコマンドが「レジューム・ウィズ」コマンドであったならば（ステップ５７５）、制御／インターフェース・モジュールは、表示されているテキストの中から、そのコマンドに指定されている単語または単語列の一部とオーバーラップする部分を探し出し（ステップ５８５）、表示されているテキストのうちの、そのオーバーラップする部分から後の全ての部分を、そのコマンドに指定されている単語または単語列で置換する（ステップ５８５）。従って、例えば、ユーザが最初に「トゥデイ・アイ・ソウ・ア・ジラーフ・アット・ザ・ズウ（Ｔｏｄａｙ，  Ｉ  ｓａｗ  ａ  ｇｉｒａｆｆｅ  ａｔ  ｔｈｅ  ｚｏｏ）」と発声し、それに続けて「レジューム・ウィズ・ソウ・アン・エレファント・アット・ザ・サーカス（Ｒｅｓｕｍｅ  Ｗｉｔｈ  ｓａｗ  ａｎ  ｅｌｅｐｈａｔ  ａｔ  ｔｈｅ  ｃｉｒｃｕｓ）」と発声したならば、制御／インターフェース・モジュールは、音声認識システムに「トゥデイ・アイ・ソウ・アン・エレファント・アット・ザ・サーカス（Ｔｏｄａｙ，  Ｉ  ｓａｗ  ａｎ  ｅｌｅｐｈａｎｔ  ａｔ  ｔｈｅ  ｃｉｒｃｕｓ）」と表示させる。この具体例では、オーバーラップしている単語は「ソウ（ｓａｗ）」である。
【００９５】
同様に、例えば、ユーザが最初に「トゥデイ・アイ・ソウ・ア・ジラーフ・アット・ザ・ズウ・ピリオド（Ｔｏｄａｙ，  Ｉ  ｓａｗ  ａ  ｇｉｒａｆｆｅ  ａｔ  ｔｈｅ  ｚｏｏ  ＰＥＲＩＯＤ）」と発声し、続いて「ザ・ジラーフ・ハッド・ア・ロング・ネック・ピリオド（Ｔｈｅ  ｇｉｒａｆｆｅ  ｈａｄ  ａ  ｌｏｎｇ  ｎｅｃｋ  ＰＥＲＩＯＤ）」と発声し、更に続いて「レジューム・ウィズ・ソウ・アン・エレファント・アット・ザ・サーカス（Ｒｅｓｕｍｅ  Ｗｉｔｈ  ｓａｗ  ａｎ  ｅｌｅｐｈａｔ  ａｔ  ｔｈｅ  ｃｉｒｃｕｓ）」と発声したならば、制御／インターフェース・モジュールは、音声認識システムに「トゥデイ・アイ・ソウ・アン・エレファント・アット・ザ・サーカス（Ｔｏｄａｙ，  Ｉ  ｓａｗ  ａｎ  ｅｌｅｐｈａｎｔ  ａｔ  ｔｈｅ  ｃｉｒｃｕｓ）」と表示させる。従って、最初のディクテーションのうちの、第１番のセンテンスの大部分と、第２番のセンテンスの全体とが、「レジューム・ウィズ」コマンドに含まれているテキストで上書きされる。このことから明らかなように、「レジューム・ウィズ」コマンドを使用することによって、一度に多くのアタランスを上書きによって消去することができる。尚、ユーザが「レジューム・ウィズ」と発声する直前にポーズを取ることを要求する実施の形態とすることもでき、これを要求しない実施の形態とすることもできる。
【００９６】
この「レジューム・ウィズ」コマンドは、ディスプレイに情報が表示されていることを必要としない。そのためこのコマンドは、ユーザが、例えばアナログ録音装置やディジタル録音装置等のポータブル録音装置を使用して音声を録音し、その録音した音声を後に音声認識システムへ転送して処理するという方法を用いる場合に特に有用なコマンドである。また、その場合に、この「レジューム・ウィズ」コマンドは、ユーザがディクテーションをやり直すための、または誤って発声した単語を削除するための、簡明で効率的な手段を提供するものである。
【００９７】
認識部２１５は、この「レジューム・ウィズ」コマンドを識別するために「レジューム・ウィズ」制約グラマーを使用する。この制約グラマーは次のように表される。
＜認識結果＞：：＝レジューム・ウィズ＜単語列＞［＜新単語列＞］
この式において、
＜単語列＞：：＝［ＰＲＷ1［ＰＲＷ2［ＰＲＷ3．．．ＰＲＷn］］］｜
［ＰＲＷ2［ＰＲＷ3．．．ＰＲＷn］］｜．．．［ＰＲＷｎ］、であり、
また、
「ＰＲＷi」は、第ｉ番の認識済単語であり、
＜新単語列＞：：＝アクティブ・ボキャブラリに含まれる任意の単語または単語列、である。
もし修正コマンドには該当しないそのコマンドが、「インサート」コマンドでもなく、また「レジューム・ウィズ」コマンドでもなかったならば、制御／インターフェース・モジュールは、そのコマンドの種類に応じた適当な処理を実行する（ステップ５９０）。
【００９８】
請求項に記載した範囲には、その他の実施の形態も含まれる。例えば、以上に説明した様々な技法は、特定のハードウェアないしソフトウェアの形態に限定されるものではなく、音声認識を実行することのできるコンピュータ環境ないし処理環境であれば、いかなる環境においても適用可能な技法である。また、それら技法は、ハードウェアで実施することも、ソフトウェアで実施することも、更にはハードウェアとソフトウェアとを組合せて実施することも可能である。それら技法は、プログラム可能なコンピュータ上で動作するコンピュータ・プログラムによって実施することが好ましく、この場合のコンピュータは、プロセッサと、そのプロセッサで読出しが可能な格納媒体（揮発性ないし不揮発性のメモリや、格納装置等）と、少なくとも１つの入力デバイスと、少なくとも１つの出力デバイスとを備えたものであることが好ましい。更にその場合に、入力デバイスを使用して入力したデータに対して、プログラム・コードを適用することで、以上に説明した機能を実行し、出力情報を生成すればよい。そして、その出力情報を、１つないし複数の出力デバイスに供給するようにすればよい。
【００９９】
いずれのプログラムも、コンピュータ・システムとコミュニケートすることのできるハイレベルの手続型またはオブジェクト指向のプログラミング言語で作成したプログラムとすることが好ましい。ただし場合によっては、それらプログラムをアセンブリ言語またはマシン語で作成することが好ましいことがあるかもしれず、そのような場合には、それら言語を使用すればよい。更に、いずれの場合も、それら言語をコンパイルして使用するようにしてもよく、或いは、インタープリター言語として使用するようにしてもよい。
【０１００】
それらコンピュータ・プログラムは、いずれも、記録媒体ないし記録装置（例えば、ＣＤ−ＲＯＭ、ハード・ディスク、または磁気ディスケット）に格納しておき、それらに格納してあるものを、プログラム可能な汎用型ないし特定用途向けのコンピュータが読出し、その読出したコンピュータ・プログラムによって、そのコンピュータのコンフィギュレーションを設定し、また、そのコンピュータを動作させ、それによって、本明細書に説明した処理手順を実行させるようにすることが好ましい。本発明の音声認識システムは更に、コンピュータによって読出しが可能な、コンピュータ・プログラムを設定した記録媒体として実現することもでき、この場合、コンピュータ・プログラムを設定したその記録媒体が、コンピュータを、以上に説明した特定の方式で動作させることになる。
【図面の簡単な説明】
【図１】音声認識システムのブロック図である。
【図２】図１のシステムの音声認識ソフトウェアのブロック図である。
【図３】認識済テキストを選択するために用いる「セレクト」コマンドに対応した制約グラマーの具体例を示した図である。図示のごとく、この制約グラマーは、状態図４００で表すことができる。「セレクト」コマンドは、「セレクト」という単語の後に、１個または２個以上の認識済単語が続くものであり、それら単語は、それらが認識された順番に並んでいなくてはならない。この制約グラマーの第１状態４０５は、「セレクト」コマンドの先頭の単語が「セレクト」であることを要求している。この制約グラマーは、単語「セレクト」が存在していたならば、それに続いて、パス４１０を介して第２状態４１５へ遷移することを許容しており、この第２状態４１５は、そのコマンドの、単語「セレクト」に続くの次の単語が、認識済単語であることを要求している。パス４２０は、第２状態４１５へリターンするパスであり、そのコマンドが、更にその他の認識済単語を含んでいてもよいことを表している。第２状態４１５から脱出してコマンドを完了させるパス４１５は、そのコマンドが、認識済単語以外の単語を更に含んでいてはならないことを表している。
【図４】認識済アタランスが「フォー・スコア・アンド・セブン」である場合に、図３に示したセレクト・コマンドのための制約グラマーの状態図がどのように表されるかを示した図である。この図３の状態図は、更に別のアタランスの単語を含むように拡張することもできる。
【図５】図１の音声認識システムのユーザ・インターフェースの画面ディスプレイを示した図である。
【図６】図１の音声認識システムのユーザ・インターフェースの画面ディスプレイを示した図である。
【図７】図１の音声認識システムのユーザ・インターフェースの画面ディスプレイを示した図である。
【図８】図１の音声認識システムのユーザ・インターフェースの画面ディスプレイを示した図である。
【図９】図１の音声認識システムのユーザ・インターフェースの画面ディスプレイを示した図である。
【図１０】図１の音声認識システムのユーザ・インターフェースの画面ディスプレイを示した図である。
【図１１】図１の音声認識システムのユーザ・インターフェースの画面ディスプレイを示した図である。
【図１２】図１の音声認識システムのユーザ・インターフェースの画面ディスプレイを示した図である。
【図１３】図１の音声認識システムのユーザ・インターフェースの画面ディスプレイを示した図である。
【図１４】図１の音声認識システムのユーザ・インターフェースの画面ディスプレイを示した図である。
【図１５】図１の音声認識システムのユーザ・インターフェースの画面ディスプレイを示した図である。
【図１６】図１の音声認識システムのユーザ・インターフェースの画面ディスプレイを示した図である。
【図１７】図１の音声認識システムのユーザ・インターフェースの画面ディスプレイを示した図である。
【図１８】図１の音声認識システムのユーザ・インターフェースの画面ディスプレイを示した図である。
【図１９】図２のソフトウェアの制御／インターフェース・モジュールが実行する処理手順を示したフローチャートである。
【図２０】図２のソフトウェアの制御／インターフェース・モジュールが実行する処理手順を示したフローチャートである。
【図２１】図２のソフトウェアの制御／インターフェース・モジュールが実行する処理手順を示したフローチャートである。
【図１】
0004444396.tif 000005
【図２】
0004444396.tif 000006
【図３】
0004444396.tif 000007
【図４】
0004444396.tif 000008
【図５】
0004444396.tif 000009
【図６】
0004444396.tif 000010
【図７】
0004444396.tif 000011
【図８】
0004444396.tif 000012
【図９】
0004444396.tif 000013
【図１０】
0004444396.tif 000014
【図１１】
0004444396.tif 000015
【図１２】
0004444396.tif 000016
【図１３】
0004444396.tif 000017
【図１４】
0004444396.tif 000018
【図１５】
0004444396.tif 000019
【図１６】
0004444396.tif 000020
【図１７】
0004444396.tif 000021
【図１８】
0004444396.tif 000022
【図１９】
0004444396.tif 000023
【図２０】
0004444396.tif 000024
【図２１】
0004444396.tif 000025