(57)【特許請求の範囲】
【請求項１】
音声認識システムに複数の応用プログラムを接続した音声認識インターフェースにおいて、
前記音声認識システムは、
音声を認識する音声認識手段と、
前記複数の応用プログラムのそれぞれに対応して、該応用プログラムが音声入力の対象となっているか否かを示す第１の情報、及び該応用プログラムのために認識対象とすべき１又は複数の認識対象語彙を示す第２の情報を少なくとも管理する応用プログラム管理手段と、
この応用プログラム管理手段により管理されている前記第１の情報が音声入力の対象となっていることを示している１又は複数の前記応用プログラムに対応してそれぞれ管理されている前記第２の情報に基づいて音声入力に対する認識対象語彙を特定し、該特定された認識対象語彙のいずれかが前記音声認識手段により認識された場合に、前記第１の情報が音声入力の対象となっていることを示しており且つ前記第２の情報認識が当該認識された語彙を認識対象語彙とすることを示している１又は複数の前記応用プログラムを、当該認識された語彙の送信先として特定するメッセージ処理手段とを具備し、
いずれの前記応用プログラムが音声入力の対象となっているかにかかわらず常に認識対象とすべき、個々の前記応用プログラムに一意に対応する語彙を示す第３の情報をも管理し、
前記第３の情報に含まれる語彙のいずれかが前記音声認識手段により認識された場合には、当該認識された語彙に一意に対応する前記応用プログラムに対応する前記第１の情報を、当該応用プログラムが音声入力の対象となっていることを示す状態にすることを特徴とする音声認識インターフェース。
【請求項２】
音声認識システムに複数の応用プログラムを接続した音声認識インターフェースにおいて、
前記音声認識システムは、
音声を認識する音声認識手段と、
前記複数の応用プログラムのそれぞれに対応して、該応用プログラムが音声入力の対象となっているか否かを示す第１の情報、及び該応用プログラムのために認識対象とすべき１又は複数の認識対象語彙を示す第２の情報を少なくとも管理する応用プログラム管理手段と、
この応用プログラム管理手段により管理されている前記第１の情報が音声入力の対象となっていることを示している１又は複数の前記応用プログラムに対応してそれぞれ管理されている前記第２の情報に基づいて音声入力に対する認識対象語彙を特定し、該特定された認識対象語彙のいずれかが前記音声認識手段により認識された場合に、前記第１の情報が音声入力の対象となっていることを示しており且つ前記第２の情報認識が当該認識された語彙を認識対象語彙とすることを示している１又は複数の前記応用プログラムを、当該認識された語彙の送信先として特定するメッセージ処理手段とを具備し、
前記応用プログラムは、それがキーボード入力の対象となった場合に、前記音声認識システムに対して、自信を音声入力の対象とすべきことを要求するものであり、
前記音声認識システムは、前記応用プログラムから前記要求を受けた場合に、当該応用プログラムに対応する前記第１の情報を、当該応用プログラムが音声入力の対象となっていることを示す状態にすることを特徴とする音声認識インターフェース。
【請求項３】
前記音声認識システムは、予め定められた所定のイベントが発生した場合に、該発生したイベントの内容及び予め定められた規則に従って、所定の前記応用プログラムに対応する前記第１の情報を、当該応用プログラムが音声入力の対象となっていることを示す状態に変更するとともに、他の所定の前記応用プログラムに対応する前記第１の情報を、当該応用プログラムが音声入力の対象となっていないことを示す状態に変更することを特徴とする請求項１または請求項２いずれか記載の音声認識インターフェース。
【請求項４】
前記音声認識システムは、前記応用プログラムのうちで通知要求を受けているものに対して、当該応用プログラム自身が現在音声入力の対象となっているか否かを少なくとも判断可能とする情報を通知することを特徴とする請求項１または請求項２いずれか記載の音声認識インターフェース。
【請求項５】
前記音声認識システムは、前記第１の情報が音声入力の対象となっていることを示している前記応用プログラムのウィンドウを、前記第１の情報が音声入力の対象となっていないことを示している他の前記応用プログラムのウィンドウの表示形態とは異なる表示形態で、表示画面に表示することを特徴とする請求項１または請求項２いずれか記載の音声認識インターフェース。
【請求項６】
前記音声認識システムは、前記第１の情報が音声入力の対象となっていることを示している前記応用プログラムについて、該応用プログラムに対応する前記第２の情報が示す該応用プログラムのために認識対象とすべき１又は複数の認識対象語彙を、表示画面に表示することを特徴とする請求項１または請求項２いずれか記載の音声認識インターフェース。
【請求項７】
前記音声認識システムは、前記送信先として特定された前記応用プログラムに対して送信された前記認識された語彙を、表示画面に表示することを特徴とする請求項６記載の音声認識インターフェース。
【請求項８】
前記第２の情報は、各々の応用プログラムから前記音声認識システムへ与えられるものであることを特徴とする請求項１または請求項２いずれか記載の音声認識インターフェース。
【請求項９】
前記音声認識システムは、
前記第２の情報を、対応する前記応用プログラムのウィンドウを複数に分割した各分割領域のそれぞれに対応して管理し、
前記応用プログラムに対応する前記第２の情報としては、該応用プログラムのウィンドウにおける各分割領域のうち、マウスポインタが現在位置している分割領域に対応して管理されている前記第２の情報を用いることを特徴とする請求項１または請求項２いずれか記載の音声認識インターフェース。
【請求項１０】
前記音声認識システムは、
前記複数の応用プログラムの少なくとも一部について、前記第１の情報及び前記第２の情報を、個々の前記応用プログラムに対応する１又は複数のウィンドウのそれぞれに対応して管理し、
前記第１の情報及び前記第２の情報が前記ウィンドウのそれぞれに対応して管理されている前記応用プログラムについては、前記第１の情報が音声入力の対象となっていることを示している１又は複数の前記ウィンドウに対応してそれぞれ管理されている前記第２の情報に基づいて音声入力に対する認識対象語彙を特定し、該特定された認識対象語彙のいずれかが前記音声認識手段により認識された場合に、前記第１の情報が音声入力の対象となっていることを示しており且つ前記第２の情報認識が当該認識された語彙を認識対象語彙とすることを示している１又は複数の前記ウィンドウを、当該認識された語彙の送信先として特定すること特徴とする請求項１または請求項２いずれか記載の音声認識インターフェース。
【請求項１１】
前記音声認識システムは、前記第１の情報及び前記第２の情報が前記ウィンドウのそれぞれに対応して管理されている前記応用プログラムについて、該応用プログラムのウィンドウのうち前記第１の情報が音声入力の対象となっていることを示しているものにおいては、該ウィンドウに対応して管理されている前記第２の情報に加えて、該ウィンドウをもつ該応用プログラムの他のウィンドウに対応して管理されている前記第２の情報に含まれる、当該応用プログラムの他のウィンドウについても用いるものとして指定されている語彙をも用いることを特徴とする請求項１または請求項２いずれか記載の音声認識インターフェース。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、パーソナルコンピュータおよびワークステーションなどに用いられる音声認識インターフェースに関するものである。
【０００２】
【従来の技術】
近年、計算機はキーボード、マウス、音声、画像など複数の入力手段を装備し、様々な指示やデータ入力を可能にしたものが考えられている。
【０００３】
このうちで、音声入力は、人間にとって自然であり有力な入力手段といえるが、音声処理にかかる計算量や認識率などの点で問題があり、入力手段として広く利用されるに至らなかった。
【０００４】
しかして、従来、音声認識インターフェースにおける、応用プログラムと音声認識システムの構成として、次のようなものが考えられている。
【０００５】
図１２２は、応用プログラムＡＰに音声認識システムＳＲＳが組み込まれているものである。このようにしたものは、音声認識機能が応用プログラムＡＰから分離できないため、他の応用プログラムから音声認識機能を利用するのが困難であった。
【０００６】
また、図１２３は、一つの音声認識システムＳＲＳと一つの応用プログラムＡＰからなり、両者が接続される構成のものである。このようにしたものは、音声認識システムＳＲＳは、接続された応用プログラムＡＰに占有されるため、同じ音声認識システムＳＲＳを別の応用プログラムから利用するには、別の応用プログラムに接続を変更する必要があり、接続し直すための手間がかかる。また、音声認識システムＳＲＳと応用プログラムＡＰの間でやり取りするデータは、音声認識システムＳＲＳから応用プログラムＡＰへ送られる認識結果のみであるため、音声認識システムＳＲＳは応用プログラムＡＰの内部状態を知ることができない。このため、応用プログラムＡＰの内部状態に応じた認識対象語彙の変更などが自動的に行えず、利用者が語彙の変更を行う必要があるため、使い勝手の悪いシステムになっていた。
【０００７】
また、図１２４は、一つの音声認識システムＳＲＳと一つの応用プログラムＡＰからなり、それらが相互に接続されて、認識語彙や認識結果などの情報を送り合う構成のものである。このようにしたものは、音声認識システムＳＲＳは応用プログラムＡＰの内部状態や認識語彙などを知ることができるため、認識語彙の変更を自動的に行うことができるが、音声認識システムＳＲＳは応用プログラムＡＰに占有されるため、同時に他の応用プログラムが音声認識システムＳＲＳを利用することができない。
【０００８】
また、図１２５は、文献［Ｓｃｈｍａｎｄｔｅｔａｌ，“Ａｕｇｍｅｎｔｉｎｇ  ａ  ｗｉｎｄｏｗ  ｓｙｓｔｅｍ  ｗｉｔｈ  ｓｐｅｅｃｈ  ｉｎｐｕｔ”，ＣＯＭＰＵＴＥＲ，Ｖｏｌ．２３，ｐｐ．５０−５８，１９９０］のシステムの構成であり、一つの音声認識システムＳＲＳから複数の応用プログラムＡＰに音声認識結果を一方的に送るものである。このシステムでは、ウインドウシステムを利用し、音声認識結果をマウスやキーボードによる入力に翻訳することによって音声を入力している。この構成のシステムでは、複数の応用プログラムＡＰ音声認識機能を同時に利用できるが、音声認識システムＳＲＳが応用プログラムＡＰの内部状態を知ることができないため、応用プログラムＡＰの内部状態に応じた認識処理を行うことができない。
【０００９】
また、図１２６は、文献［Ｒｕｄｎｉｃｋｙ他、ｓｐｏｋｅｎ  ｌａｎｇｕａｇｅ  ｒｅｃｏｇｎｉｔｉｏｎ  ｉｎ  ａｎ  ｏｆｆｉｃｅ  ｍａｎａｇｅｍｅｎｔ  ｄｏｍａｉｎ，Ｐｒｏｃ．ＩＣＡＳＳＰ´９１，Ｓ１２．１２，ｐｐ．８２９−８３２，１９９１］のシステムの構成であり、一つの音声認識システムＳＲＳと複数の応用プログラムＡＰからなり、音声認識システムＳＲＳと応用プログラムＡＰが相互に情報を送り合って音声認識を行う。このシステムには、複数の応用プログラムが連続音声認識を共用できるという特徴があり、高価な音声認識装置の利用に関して有用な方法を取っているといえるが、リアルタイム処理やワークステーション上での利用形態についての検討は十分ではない。この構成では、複数のプログラムが音声認識機能を利用可能であり、また、応用プログラムＡＰの内部状態に応じた認識システムＳＲＳ側の処理も可能であるが、同時に一つの応用プログラムＡＰとしか接続できないため、複数の応用プログラムＡＰを同時に扱えるという音声の特徴を生かした処理を行うことができなかった。また、どの応用プログラムＡＰに音声認識結果を送るかの決定は、音声認識システムＳＲＳから行われていたため、例えば応用プログラムＡＰ側で認識結果を必要としている場面でも、認識結果を得られない場合があった。
【００１０】
【発明が解決しようとする課題】
このように従来の音声認識インターフェースによると、応用プログラムＡＰが音声認識対象を管理できないため、応用プログラムＡＰ主導の音声入力制御ができず、利用者に音声認識を促したい状態でも、音声認識システムＳＲＳからの音声入力許可命令を受けとるまで待たなければならなかった。また、１つの音声で複数の応用プログラムＡＰを同時に制御することができないため、例えば「終了」という１つの音声入力で、複数の応用プログラムＡＰを終了させることができなかった。また、認識結果にしたがって、音声入力を複数の応用プログラムＡＰに振り分けることができないため、音声の入力に先立って入力対象を特定することが必要とされていた。また、１つの音声入力に対して１つの音声認識システムしか動作しないため、例えば孤立単語認識と連続音声認識のように異なる種類の認識方式を共存させ、同時に利用するようなことができなかった。
【００１１】
本発明は、上記事情に鑑みてなされたもので、音声認識システムより複数の応用プログラムを同時に取扱うことが可能で、使い勝手に優れた音声認識インターフェースを提供することを目的とする。
【００１２】
【課題を解決するための手段】
本発明は、音声認識システムに複数の応用プログラムを接続した音声認識インターフェースにおいて、前記音声認識システムは、音声を認識する音声認識手段と、前記複数の応用プログラムのそれぞれに対応して、該応用プログラムが音声入力の対象となっているか否かを示す第１の情報、及び該応用プログラムのために認識対象とすべき１又は複数の認識対象語彙を示す第２の情報を少なくとも管理する応用プログラム管理手段と、この応用プログラム管理手段により管理されている前記第１の情報が音声入力の対象となっていることを示している１又は複数の前記応用プログラムに対応してそれぞれ管理されている前記第２の情報に基づいて音声入力に対する認識対象語彙を特定し、該特定された認識対象語彙のいずれかが前記音声認識手段により認識された場合に、前記第１の情報が音声入力の対象となっていることを示しており且つ前記第２の情報認識が当該認識された語彙を認識対象語彙とすることを示している１又は複数の前記応用プログラムを、当該認識された語彙の送信先として特定するメッセージ処理手段とを具備し、いずれの前記応用プログラムが音声入力の対象となっているかにかかわらず常に認識対象とすべき、個々の前記応用プログラムに一意に対応する語彙を示す第３の情報をも管理し、前記第３の情報に含まれる語彙のいずれかが前記音声認識手段により認識された場合には、当該認識された語彙に一意に対応する前記応用プログラムに対応する前記第１の情報を、当該応用プログラムが音声入力の対象となっていることを示す状態にすることを特徴とする。
また、音声認識システムに複数の応用プログラムを接続した音声認識インターフェースにおいて、前記音声認識システムは、音声を認識する音声認識手段と、前記複数の応用プログラムのそれぞれに対応して、該応用プログラムが音声入力の対象となっているか否かを示す第１の情報、及び該応用プログラムのために認識対象とすべき１又は複数の認識対象語彙を示す第２の情報を少なくとも管理する応用プログラム管理手段と、この応用プログラム管理手段により管理されている前記第１の情報が音声入力の対象となっていることを示している１又は複数の前記応用プログラムに対応してそれぞれ管理されている前記第２の情報に基づいて音声入力に対する認識対象語彙を特定し、該特定された認識対象語彙のいずれかが前記音声認識手段により認識された場合に、前記第１の情報が音声入力の対象となっていることを示しており且つ前記第２の情報認識が当該認識された語彙を認識対象語彙とすることを示している１又は複数の前記応用プログラムを、当該認識された語彙の送信先として特定するメッセージ処理手段とを具備し、前記応用プログラムは、それがキーボード入力の対象となった場合に、前記音声認識システムに対して、自信を音声入力の対象とすべきことを要求するものであり、前記音声認識システムは、前記応用プログラムから前記要求を受けた場合に、当該応用プログラムに対応する前記第１の情報を、当該応用プログラムが音声入力の対象となっていることを示す状態にすることを特徴とする。
好ましくは、前記音声認識システムは、予め定められた所定のイベントが発生した場合に、該発生したイベントの内容及び予め定められた規則に従って、所定の前記応用プログラムに対応する前記第１の情報を、当該応用プログラムが音声入力の対象となっていることを示す状態に変更するとともに、他の所定の前記応用プログラムに対応する前記第１の情報を、当該応用プログラムが音声入力の対象となっていないことを示す状態に変更するようにしてもよい。
好ましくは、前記音声認識システムは、前記応用プログラムのうちで通知要求を受けているものに対して、当該応用プログラム自身が現在音声入力の対象となっているか否かを少なくとも判断可能とする情報を通知するようにしてもよい。好ましくは、前記音声認識システムは、前記第１の情報が音声入力の対象となっていることを示している前記応用プログラムのウィンドウを、前記第１の情報が音声入力の対象となっていないことを示している他の前記応用プログラムのウィンドウの表示形態とは異なる表示形態で、表示画面に表示するようにしてもよい。
好ましくは、前記音声認識システムは、前記第１の情報が音声入力の対象となっていることを示している前記応用プログラムについて、該応用プログラムに対応する前記第２の情報が示す該応用プログラムのために認識対象とすべき１又は複数の認識対象語彙を、表示画面に表示するするようにしてもよい。
好ましくは、前記音声認識システムは、前記送信先として特定された前記応用プログラムに対して送信された前記認識された語彙を、表示画面に表示するようにしてもよい。
好ましくは、前記第２の情報は、各々の応用プログラムから前記音声認識システムへ与えられるものであるようにしてもよい。
好ましくは、前記音声認識システムは、前記第２の情報を、対応する前記応用プログラムのウィンドウを複数に分割した各分割領域のそれぞれに対応して管理し、前記応用プログラムに対応する前記第２の情報としては、該応用プログラムのウィンドウにおける各分割領域のうち、マウスポインタが現在位置している分割領域に対応して管理されている前記第２の情報を用いるようにしてもよい。
好ましくは、前記音声認識システムは、前記複数の応用プログラムの少なくとも一部について、前記第１の情報及び前記第２の情報を、個々の前記応用プログラムに対応する１又は複数のウィンドウのそれぞれに対応して管理し、前記第１の情報及び前記第２の情報が前記ウィンドウのそれぞれに対応して管理されている前記応用プログラムについては、前記第１の情報が音声入力の対象となっていることを示している１又は複数の前記ウィンドウに対応してそれぞれ管理されている前記第２の情報に基づいて音声入力に対する認識対象語彙を特定し、該特定された認識対象語彙のいずれかが前記音声認識手段により認識された場合に、前記第１の情報が音声入力の対象となっていることを示しており且つ前記第２の情報認識が当該認識された語彙を認識対象語彙とすることを示している１又は複数の前記ウィンドウを、当該認識された語彙の送信先として特定するようにしてもよい。
好ましくは、前記音声認識システムは、前記第１の情報及び前記第２の情報が前記ウィンドウのそれぞれに対応して管理されている前記応用プログラムについて、該応用プログラムのウィンドウのうち前記第１の情報が音声入力の対象となっていることを示しているものにおいては、該ウィンドウに対応して管理されている前記第２の情報に加えて、該ウィンドウをもつ該応用プログラムの他のウィンドウに対応して管理されている前記第２の情報に含まれる、当該応用プログラムの他のウィンドウについても用いるものとして指定されている語彙をも用いるようにしてもよい。
【００１３】
【作用】
この結果、本発明によれば各応用プログラムにより音声認識システムに対する音声認識結果の受信の可否を決定できるので、応用プログラムが自分や他の応用プログラムの音声入力に関する制御を自由に行うことができ、柔軟で使いやすい音声認識インターフェースが構築できる。
【００１４】
また、音声認識システムがその音声認識結果を同時に複数の応用プログラムに送信できるので、一つの音声入力による操作を同時に複数の応用プログラムに対して行うこともでき、音声入力による計算機の操作性も向上する。
【００１５】
さらに、音声認識システムが複数の応用プログラムに対する音声認識を行えるので、音声入力対象の明示的な指定をせずに音声認識結果に基づき音声入力を各応用プログラムに振り分けることができ、利用者の負担を軽減できる。
【００１６】
【実施例】
以下、本発明の実施例を図面に従い説明する。
【００１７】
（第１実施例）
図１は同実施例の概略構成を示している。図において、１は音声認識システムで、この音声認識システム１は、メッセージ処理部１１、音声認識部１２、応用プログラム管理テーブル１３から構成され、メッセージ処理部１１に複数の応用プログラム２を接続している。
【００１８】
この場合、音声認識システム１は、応用プログラム２からのメッセージに含まれる指示に従って音声認識を行い、認識結果をメッセージとして応用プログラム２に送る。応用プログラム２は、その音声認識結果を利用してその応用に依存した固有の処理を行う。また、音声認識システム１は、同時に複数の応用プログラム２とメッセージを交換し音声認識結果を送信できるようにしている。
【００１９】
音声認識システム１を構成するメッセージ処理部１１は、応用プログラム２と音声認識部１２のメッセージを交換し、音声認識システム１の全体制御を行う。また、音声認識部１２は、メッセージ処理部１１とメッセージを交換し合うことでメッセージ処理部１１から送られてくる情報に従って入力音声に対して音声認識を行い、その結果情報をメッセージ処理部１１に通知する。
【００２０】
応用プログラム管理テーブル１３は、音声認識システム１と通信を行う全ての応用プログラム２に関する情報を収納するテーブルである。このテーブルは、音声が入力された際の認識対象語彙の決定や、認識結果の送信先の決定に利用され、これにより音声認識システム１は同時に複数の応用プログラム２とのメッセージ交換を行うことができる。また、応用プログラム管理テーブル１３は、プログラムＩＤ、入力マスク、認識対象語彙リスト、音声入力フラグを持っている。プログラムＩＤは、音声認識システム１により応用プログラム２に対して一意に付けられる識別のための番号である。入力マスクは、音声認識システム１から応用プログラム２に送信するメッセージの種類を限定するものである。認識語彙リストは、応用プログラム２が音声認識システム１に対して要求した認識語彙が記述されるテーブルである。音声入力時の認識対象語彙の決定に利用される。音声入力フラグは、当該応用プログラム２に音声フォーカスが当たっているか否かを表している。なお、応用プログラム２に音声フォーカスが当たるという言葉は、応用プログラム２が音声入力対象となるということを意味するものとする。すなわち、音声フォーカスは、認識結果の送信対象を特定するものである。
【００２１】
図２は音声認識部１２の概略構成を示している。
【００２２】
この場合、音声認識部１２は、音声検出部１２１、音声分析部１２２、認識辞書照合部１２３および音声認識辞書１２４からなっている。
【００２３】
音声検出部１２１は、例えば一定時間間隔ごとの入力音声のパワーをもとにして検出を行う方法（永田、他“ワークステーションにおける音声認識機能の開発”，電子情報通信学会技術報告、ＨＣ９１１９，ｐｐ．６３−７０，（１９９１））が知られている。音声分析部１２２は、音声検出部１２１で検出される音声区間に対して、例えばＦＦＴやバンドパスフィルタなどを用いて周波数分析を行い、単語音声の特徴パラメータを抽出する。認識辞書照合部１２３は、音声分析部１２２からの出力パラメータを用いて、例えば複合類似度法（上記の研究資料）やＨＭＭ、ＤＰマッチングなどの手法により認識辞書１２４との照合を行い、スコアの最も高い語彙を認識結果として出力する。
【００２４】
そして、認識辞書照合部１２３では、音声特徴パラメータと認識辞書１２４と照合を行う際、照合前に無駄な処理を行わないため、その時点で認識辞書１２４のどの語彙と照合を行うべきかをメッセージ処理部１１に問い合わせ、その照会情報にしたがって認識辞書１２４との照合処理を行う。そして、認識の成功失敗にかかわらずその認識結果はメッセージ処理部１１に送られ、応用プログラム管理テーブル１３の内容にしたがって応用プログラム２に認識結果を送るようになる。
【００２５】
ここで、図２では、認識部の要素が全て一体となっており、１つのプロセスとして動作可能であるが、図３に示すように音声検出部１２１を分離した構成も可能である。音声検出部１２１と後続の音声分析部１２２、認識辞書照合部１２３を、例えばべつプロセスとして両者の間のデータのやり取りをプロセス間通信により行えば、音声検出部１２１を独立した形で扱うことができ、例えば、図４に示すように複数の音声検出部１２１からの出力を共通の音声分析部１２２、認識辞書照合部１２３で扱うことができる。また、図５に示すように音声検出部１２１と音声分析部１２２を一体にして、認識辞書照合部１２３と認識辞書１２４を分離した構成も可能である。
【００２６】
図６は応用プログラム２の概略構成を示している。
【００２７】
この場合、応用プログラム２は、メッセージ入出力部２１およびプログラム本体２２からなっている。メッセージ入出力部２１は、音声認識システム１とメッセージ交換を一括して行うもので、音声入力の標準の手段を応用プログラム２の作成者に提供するものである。また、複雑なメッセージ送受信規約を応用プログラム作成者から隠蔽し、全ての応用プログラム作成者に統一的に通信手続を提供するためでもある。プログラム本体２２は、応用プログラムに依存した処理の手続を行うプログラムであり、応用プログラム固有の内部状態に従った音声認識システム１に対する命令や、音声認識システム１から音声認識結果を受け取った際の手続などを含んでいる。
【００２８】
次に、このように構成した実施例の動作を説明する。
【００２９】
この場合、音声認識システム１と応用プログラム２との間の情報のやり取りは、メッセージ交換によって行う。ここで、メッセージとは、ある構成要素からほかの構成要素に渡されるコマンドやそのコマンドの実行結果、音声認識結果などのデータを総称していう。
【００３０】
メッセージによる通信は、例えば音声認識システム１をサーバ化し、また応用プログラム２を音声認識システムのクライアントとし、その間をＴＰＣ、ＤＥＣｎｅｔ、Ｓｔｒｅａｍなどのバイトストリーム型のプロトコルを利用して実装する。音声認識インターフェースの各構成要素間で交換されるメッセージを、次に説明する図７に示している。これらのメッセージの処理は、すべて音声認識システムのメッセージ処理部１１が担当する。なお、上述の実施例では、図１の音声認識システム、全体が１つのプロセスとして実行するものとして説明したが、音声認識システムの構成要素である音声認識部、メッセージ処理部、応用プログラム管理テーブル、それぞれを別個のプログラムとして実行することも可能である。
【００３１】
［音声認識システム１と応用プログラム２の間のメッセージ］
応用プログラム２から音声認識システム１へのメッセージは、図７（ａ）に示すような種類がある。これらは、基本的に、応用プログラム２から音声認識システム１への命令を意味している。
【００３２】
ここで、通信路接続／切断要求は、応用プログラム２が音声認識システム１とメッセージを交換するにあたって、その通信路を接続／解放する要求である。音声認識辞書のロード／解放要求は、応用プログラム２が利用したい語彙を含む音声認識辞書を音声認識システム１にロード／解放する要求である。認識語彙設定要求は、応用プログラム２が、どの認識辞書のどの語彙を使って認識を行うかを音声認識システム１に要求するものである。入力マスク設定要求は、応用プログラム２が、音声認識システム１から受け取りたいメッセージの種類を設定する要求である。入力タスク設定要求は、音声フォーカスを、指定した応用プログラム２に変更する要求である。認識開始／終了要求は、音声認識システム１に対する音声認識開始／終了の要求である。
【００３３】
一方、音声認識システム１から応用プログラム２へのメッセージは、図７（ｂ）に示すような種類があり、２つに分類できる。１つは、応用プログラム２からの命令やデータの問い合わせなどの要求に対する応答で、これは上記の要求メッセージに対応する。もう１つのメッセージは、音声認識結果の情報や、音声認識システムの内部状態の変化にともない、音声認識システムによって生成されるメッセージである。
【００３４】
ここで、音声認識結果は、音声認識システム１が、応用プログラム２の設定要求をした認識語彙を用いて認識した結果を通知するメッセージである。認識が成功した場合には、すくなくとも１つの認識語彙を含み、その語彙が何であるか、その語彙の持つ辞書はどれか、認識処理結果としての得点などの情報を含む。失敗した場合には（音声レベルが高すぎたとか低すぎたなど）、失敗した原因に関する情報を持っている。入力タスク変更通知は、入力タスク設定要求などで音声フォーカスが実際に変更された際に応用プログラム２に対して送信されるメッセージで、変更される前のタスクＩＤおよび変更後のタスクＩＤを含んでいる。認識辞書ロード／解放通知は、認識辞書ロード／解放要求などで認識辞書が新たにロードされたり解放された場合に送信されるメッセージである。通信路接続／切断の通知は、応用プログラム２が音声認識システム１に対して通信路接続／切断要求を発行した際に発生するメッセージである。応用プログラム２が要求せずに一方的に通信路を切断した場合にも発生する。認識語彙変更通知は、認識語彙設定要求により各応用プログラムの認識語彙が変更された場合に発生するメッセージである。
【００３５】
これらは、音声入力を受け付け音声認識を行ったときや、音声フォーカスが変更されたときや、応用プログラム２が音声認識システム１と接続したときや、認識語彙が変更されたときなど、音声認識システム１から全ての応用プログラム２に送信できるものであるが、全てのメッセージを応用プログラム２が常時受け取る必要はない。応用プログラム２が、どのメッセージを受け取るかの設定は、各メッセージに対応する入力マスクを音声認識システム１に通知する事で行う（入力マスク設定要求）。これによって応用プログラム２は、自分の必要とするメッセージのみを音声認識システム１に通知してもらうことができる。
【００３６】
図８は、入力マスクの種類を示している。これらは応用プログラム２が受け取りたいメッセージの種類に対応しており、同時に複数のマスクが設定できるものとする。
【００３７】
この設定を音声認識システム１に通知することで、入力マスクに対応するメッセージが音声認識システム１の内部で生成される度にそれを受け取ることができる。例えば、音声認識結果マスクを設定すれば、音声入力がなされる度に音声認識結果を得ることができるようになるし、入力タスク変更マスクを設定すれば、音声フォーカスが変更される度に、それが応用プログラムに通知されるようになる。
【００３８】
音声認識システム１と応用プログラム２の間のメッセージとして、上記の２種類のメッセージ（要求メッセージと応答メッセージ）以外に、エラーメッセージが考えられる。エラーメッセージは、成功時には応答を要しない応用プログラム２からの片道メッセージの失敗や、認識システムにクリティカルな状態が発生したときにそれを通知するメッセージである。また、上述したメッセージ以外にも、音声認識システム１の内部情報にアクセスするためのメッセージや、音声入力レベルを変更するなど、音声認識システム１や音声入出力の設定をするメッセージなどさまざまなメッセージが考えられる。
【００３９】
このように、応用プログラム２は、音声認識システム１の内部状態の変化をメッセージの形で通知させることができるため、それに基づいて音声認識システム１を制御し、さらには他の応用プログラム２が制御できるようになるため、自由度の高い、柔軟なインターフェースを音声によって制御することができる。
【００４０】
さて、音声認識システム１は、メッセージ処理部１１と音声認識部１２を有しているが、これらの間もメッセージによって情報交換がなされる。なお、音声認識システム１における応用プログラム２とのメッセージは、その全てをメッセージ処理部１１が取扱っている。
【００４１】
［音声認識部１２とメッセージ処理部１１の間のメッセージ］
音声認識部１２からメッセージ処理部１１へのメッセージは、図７（ｃ）に示す種類がある。ここで、認識語彙照会要求は、音声認識システムに音声が入力された時点で、入力音声とどの認識語彙との照合を行うべきかを決定するために発行される要求である。音声認識結果は、入力音声とその時点で認識すべき認識語彙との照合結果をメッセージ処理部１１に通知するものである。
【００４２】
一方、メッセージ処理部１１から音声認識部１２へのメッセージは、図７（ｄ）に示すような種類がある。ここで、認識辞書ロード／解放要求は、応用プログラム２が音声認識システム１に対して発行した認識辞書ロード／解放要求がそのまま音声認識部１２へ引き渡された所のメッセージである。認識語彙情報は、音声認識部１２からメッセージ処理部１１への認識語彙照会要求に対する応答である。
【００４３】
このようにして、音声認識システムを構成する各部において、メッセージをやりとりすることで、処理が進められるが、次に、音声認識インターフェースとして、処理がどのように進められていくかを図９に従い説明する。同図では、応用プログラム２が起動されてから、最初に音声認識結果を受け取るまでのタイムチャートを示している。
【００４４】
この場合、応用プログラム２は、まず音声認識システム１との接続要求（ａ）を送る。接続が達成されたならば、音声認識語彙を含む認識辞書ロード要求（ｂ）と、ロードした辞書中で音声入力に使いたい語彙を認識語彙とする設定要求（ｃ）を発行する。メッセージ処理部１１では、（ａ）に対しては応用プログラム２との通信路接続処理を行って、その結果を応用プログラム２に返す。（ｂ）に対しては、メッセージをそのまま音声認識部１２に送って辞書がロードされるのを待ち、辞書のロードの結果を応用プログラム２に返す。（ｃ）に対しては指定された認識語彙を応用プログラム管理テーブル１３に書込み、その処理結果を返す。認識対象語彙が無事に設定されたならば、応用プログラム２は、入力マスク設定要求（ｄ）と入力タスク設定要求（ｅ）を送る。メッセージ処理部１１では、（ｄ）と（ｅ）を受けて、それぞれ応用プログラム管理テーブル１３に書込む。
【００４５】
以上が、音声認識システム１に対する応用プログラム２からの初期設定要求となる。初期設定が終わったならば、音声認識システム１からのメッセージ待ちに入る。メッセージを待ちながら、応用プログラム２固有のタスクに依存した処理などを行う。処理に伴う内部状態の遷移などに従い、認識語彙を変更する要求や入力タスクを自分自身や他の応用プログラム２に変更する要求など、任意の要求を自分の処理に応じて音声認識システム１に送り、音声認識システム１を応用プログラム２側から制御できるようにしている。
【００４６】
ここで、音声入力が応用プログラム２に対して行われたとする。すると入力音声は、まず音声認識部１２において、音声区間の検出と分析が行なわれる。音声認識部１２は、音声分析を済ませたならば、その時点で認識対象となっている語彙を知るために、メッセージ処理部１１に対して認識語彙照会要求（ｆ）を送る。メッセージ処理部１１では、これを受信すると、応用プログラム管理テーブル１３を参照してこの場面で音声認識処理を行うべき語彙を調べ、その結果である認識語彙情報を音声認識部１２に返す。音声認識部１２では、（ｇ）により指定された認識対象語彙に対応する認識辞書データと分析済みの分析データを照合し、その結果をメッセージ処理部１１に送る。メッセージ処理部１１では、（ｇ）のうちの１位の尤度をもつ語彙を応用プログラム管理テーブル１３の認識対象語彙中で探し、それを持つ応用プログラム２の音声入力フラグが１であり、かつ入力マスクとして認識結果通知マスクが設定されていたならば、その応用プログラムに対して認識結果を送信する。
【００４７】
図９で説明した処理を、さらに具体例を用いて説明する。
【００４８】
音声認識システム１と接続している応用プログラム２がシェルツールとテキストエディタの２つであった場合の応用プログラム管理テーブル１３は、図１０（ａ）に示すようになる。
【００４９】
ここで新しくメールツールを起動する際の処理を説明する。起動されたメールツールが、まず通信路接続要求（ａ）を送信すると、応用プログラム管理テーブル１３にメールツール用の領域が取られ、メールツールのプログラムＩＤが付けられる。プログラムＩＤは、例えば応用プログラム２の起動順に０から付けられるとする。次に認識辞書ロード要求（ｂ）を送る。ここでは認識辞書はすでにロードされており、音声認識システム１は、そのことを応用プログラム２に知らせる。次に、認識語彙設定要求（ｃ）で認識語彙として「先頭」「最後」「前」「次」「送信」「終了」を送り、入力マスクとして認識結果通知マスクを送る（ｄ）。入力タスク設定要求（ｅ）として、現在当たっている全ての音声フォーカスを無効にし、音声フォーカスをメールツールに当てる要求をする。
【００５０】
なお、本実施例では、１つの認識辞書をすべての応用プログラム２で共通に使うこととし、従って、図１０においては、複数の辞書を利用する場合に必要となる各語彙がどの辞書に含まれるかを示す情報を省略する。
【００５１】
以上の処理により、応用プログラム管理テーブル１３は、図１０（ｂ）のようになり、シェルツールに当たっていた音声フォーカスは、新たに起動されたメールツールに変更され、メールツールは音声入力が可能な状態になる。
【００５２】
ここで、例えば「次」という音声が入力されたとする。入力された音声は、音声認識部１２において音声区間検出と分析処理を施され、音声特徴パラメータが求められる。音声認識部１２は、この音声特徴パラメータと照合する辞書データを知るべく、メッセージ処理部１１に対して認識語彙照合要求（ｆ）を送る。この要求を受けたメッセージ処理部１１は、応用プログラム管理テーブル１３を参照してその時点での認識対象語彙を知る。ここでは、音声入力フラグが１であり、かつ入力マスクに認識結果通知マスクが設定されているメールツールの認識対象語彙リスト中の全ての語彙「先頭」「最後」「前」「次」「送信」「終了」がその時点で入力可能な語彙となる。これら６つの語彙が音声認識部１２に通知され、音声認識部１２は、これら語彙に関する辞書データと分析された特徴パラメータに対して照合処理を行い、その結果をメッセージ処理部１１に送る（ｇ）。
メッセージ処理部１１は、認識結果を受けとると、応用プログラム２中の音声入力フラグが１であり、かつ入力マスクに認識結果通知マスクが設定されている応用プログラム２の認識対象語彙リスト中に認識結果の語彙を探し、発見したならばその認識結果をその語彙リストを持つ応用プログラム２に対して送信する。
【００５３】
先の音声入力の認識結果が「次」であった場合には、メールツールに送信されることになる。「次」という認識結果をメッセージ入出力部２１を介して受けとった応用プログラム２は、例えば現在表示している受信メールの次のメールを表示するといった処理を行う。
【００５４】
図１０（ａ）（ｂ）では、シェルツールの入力マスクとして、認識結果通知マスクが設定されている。このマスクにより音声フォーカスの変更が発生する度にそれが通知されるようになる。
【００５５】
上述の例では、メールツールからの入力タスク設定要求（ｅ）を音声認識システム１が受信し、メッセージ処理部１１が音声フォーカスの変更を行ったときに入力タスク変更通知のメッセージがシェルツールに送られる。認識結果通知マスク以外の入力マスクは音声入力フラグの値に依存していないため、入力タスク変更マスクが設定されていれば、音声入力フラグの値に関係なく、音声フォーカスの変更メッセージが、それが起きる度に応用プログラム２に通知される。応用プログラム２は、このような音声認識システム１の内部状態の変化をメッセージを介して知ることで、様々な柔軟な処理をすることができる。例えば、シェルツールは、音声フォーカスを失ったことを利用者に画面表示や合成音声またビープ音などを通じて知らせることができる。
【００５６】
このようにして、応用プログラム２は、メッセージを通じて音声認識システム１を自由に制御できるようになり、応用プログラム主導の柔軟な音声認識インターフェースが得られることになる。
【００５７】
従って、第１実施例によれば、複数の応用プログラム２が同時に平行して動作するマルチタスク環境において、各応用プログラム２が音声認識システム１と通信により直接メッセージ交換を行い、認識語彙や認識結果などのデータを直接相互に交換できるため、全ての応用プログラム２にキーボードやマウスなどの様に、音声入力を標準的な入力手段として装備することができるため、ワークステーションなどのマルチタスク環境における音声入力の本格的な利用が可能となり、音声を含めたマンマシンインタフェースの使い勝手の向上が期待できることになる。
【００５８】
なお、本実施例は、孤立単語認識を応用した音声認識インターフェースの実施例であったが、連続単語音声認識や連続音声認識を応用することも可能である。
（第２実施例）
同第２実施例では、マルチタスクの計算機環境において、ウィンドウシステムを同時に利用することで、ユーザの利用環境の向上を可能にしている。
【００５９】
ウィンドウシステムを同時に利用する場合の構成を図１１に示している。この場合、音声入力を扱う音声認識システム３と、キーボード入力およびマウス入力を扱うウィンドウシステム４と、これら音声認識システム３およびウィンドウシステム４と相互にメッセージを通信する１つ以上の応用プログラム５からなっている。つまり、同実施例では、上述の第１実施例にウィンドウシステムを追加し、応用プログラムにウィンドウシステムとの間の通信手段を持たせるようにしている。
【００６０】
ウィンドウシステム４と音声認識システムと３は、相互に独立している。また、ウィンドウシステム４と応用プログラム５との間のメッセージは、マルチウィンドウ環境におけるウィンドウの生成や、キーボード入力やマウス入力などの処理に関するものである。
【００６１】
本実施例を説明する前に、マルチウィンドウを実現するウィンドウシステムについて簡単に説明する。ワークステーションなどのマルチタスクの計算機環境でマルチウィンドウを実現するウィンドウシステムは、その環境下で動作する複数の応用プログラムと通信し、各々の応用プログラムをビットマップディスプレイと呼ばれる表示画面に抽象化して表示される。そこでは、応用プログラムごとに基本的に１つのウィンドウが割り当てられる。
【００６２】
図１２は、一般的なウィンドウシステムの画面表示例である。この例では、Ａ，Ｂ，Ｃの３つの応用プログラムが平行して動作している。ウィンドウシステムは、キーボードやマウスなどの入力装置を管理し、複数の応用プログラムに入力装置を共有させる。マウス画面中では、矢印型のマウスポインタとして抽象化されており、ウィンドウの操作や入力対象の指定などに使われる。
【００６３】
なお、本願の実施例では専ら、ポインティングデバイスとしてマウスを利用した説明をしているが、ペンやタッチパネルなど他のポインティングデバイスを用いることも可能であり、全ての実施例における記述はこれら他のポインティングデバイスについても全く同様に適用できる。
【００６４】
キーボード入力を行う対象は、キーボードフォーカスによる。キーボードフォーカスは一般的にマウスポインタによって指定される。キーボードフォーカスの当たっている応用プログラムは、ウィンドウ枠がそれ以外のウィンドウより太くしたり、ウィンドウ上部のタイトルバーの色を変えることで表現される。図１２では、応用プログラムＢにキーボードフォーカスが当たっている様子を示す。キーボードフォーカスは一般に常に１つのウィンドウにだけ当てられる。
【００６５】
ここで、第１実施例で述べた３つのプログラム、つまりシェルツール、テキストディタ、メールツールを再び利用して説明する。この場合、各プログラムは、ウィンドウシステムによって各々１つのウィンドウとして抽象化され表現される。また、音声認識システムとも通信を行い、起動時に音声認識システムに対して第１実施例で示した手順をもって認識語彙を設定する。各応用プログラムの認識語彙は同じく図１３に示す通りである。
【００６６】
一般に既存のウィンドウシステムにおいて、応用プログラムは、キーボードフォーカスの変更の通知が受け取られる。キーボードの入力対象と音声の入力対象を同じ応用プログラムにするために、応用プログラムはキーボードフォーカスが当たったならば、音声認識システムに対し、自身に音声フォーカスを当てる要求をし、外れたならば音声フォーカスをはずす要求をする。これは、第１実施例で述べた、入力タスク変更要求を送信することで可能となる。以下ではキーボードフォーカスと音声フォーカスを一致したものとして扱い、それを入力フォーカスと呼ぶ。入力フォーカスはマウスによって操作する。
【００６７】
入力フォーカスの移動に伴う音声認識語彙の変化を図１４に示している。この場合、図１４（ａ）は状態１、図１４（ｂ）は状態２を示すもので、入力フォーカス（それと同時に音声フォーカスも）がテキストエディタに当たっている。従って、この状態で認識可能な語彙は、テキストエディタの認識語彙である、「カット」「コピー」「ペースト」「解消」「終了」の５つである。ここではユーザはこの５つの語彙を発声すると、音声認識結果がテキストエディタに送られるということである。マウスポインタによりシェルツールを指定すると、入力フォーカスはシェルツールに移動し（それと同時に音声フォーカスもシェルツールに移動し）認識可能な語彙は、シェルツールの認識語彙である「ヒストリ」「リスト」「ホーム」「プロセス」「終了」の５つに変化する。
【００６８】
音声認識語彙として何を使うかは自由であり、応用プログラム毎の認識語彙をユーザが記憶、判断することは、ユーザへの大きな負担となる。しかし、個々の応用プログラムに認識語彙の表示を可能にする手段をもたせるのは逆に応用プログラムの作成者にとって負担となる。また、音声入力は、キーボードなどの入力手段と違って暖味性があるため、入力音声が正しく認識されたかをユーザが確認できることが重要となってくる。
【００６９】
この問題を解決する手段として、音声認識インタフェースに標準的な応用プログラムとして、図１５に示すような、認識語彙を表示するプログラム（語彙表示プログラム）を作成することが考えられる。このプログラムは、全ての応用プログラムが、新規の応用プログラムが通信路を接続／切断したり、語彙の変更を要求したり、音声フォーカスの変更をする度に、自身に、それらの要求により発生するメッセージを送信するように要求する（すなわちそれを受け取る入力マスクを設定する）。語彙表示プログラムは、常に、その時点で認識可能な語彙をすべて表示できる。また、音声が認識される度に、それを知り、応用プログラムに送信された認識結果を、例えば図１５のように色を変えて表示することで、音声認識システムが受け付けた音声入力を確認できる。認識語彙表示プログラムにより、応用プログラムの使用者と作成者の双方の負担を軽減し、より使いやすい音声入力環境をユーザに提供できる。
【００７０】
また、語彙表示プログラムのリスト中の色を変える以外に、認識結果は別の方法によっても、使用者に通知できる。
【００７１】
例えば、ディスプレイのスクリーン、あるいはアプリケーションのウインドウの特定の位置に認識結果を表示させる方法もある。この表示部分は、アプリケーションごとに持つことも音声認識システム自身が所有していてもよい。ウインドウシステム環境下では、認識結果表示用のウインドウを作成しておき、アプリケーションのウインドウの中央部や上下左右などの周囲の部分あるいはマウスなどのポインタ、キーボード入力のカーソルなどの付近など、特定の位置に表示させるように位置調節をすればよい。
【００７２】
また認識結果は、次の認識結果が得られるまで表示し続けてもよいし、認識結果が得られた直後だけ表示し、ある時間が経過した後は、次の認識結果が得られるまで表示させないようにしておいてもよい。特にマウスなどのポインタやキーボード入力のカーソルの付近は、視線の移動がわずかで済む利点がある反面、作業している領域の近くで常時表示させると作業の妨げになる場合もあるので、認識結果が得られた直後だけ表示するのは有効である。これとスクリーンやアプリケーションの特定位置に認識結果を常時表示させる方法と併用してもよい。
【００７３】
応用プログラム間だけではなく、１つの応用プログラム内でも、そのマウスの位置によって音声認識語彙を変更することで、必要以上の認識処理を減らし、音声入力をより確実なものにできる。例えば、図１６（ａ）および同図（ｂ）に示すように、メールツールをリスト表示部とテキスト表示部の２つに分割し、そのどちらにマウスポインタがあるかによって認識語彙（ここでは認識語彙は８つである）を変える。こうすることで、必要以上の無駄な認識処理をおさえるとともに、入力音声の認識誤りを起こりにくくすることができるという効果がある。
【００７４】
また、第１実施例では、新たなアプリケーションが起動されると、そのアプリケーションに音声フォーカスが移ることを説明した。同様にアプリケーションの起動、終了時あるいは、マウス、ペンなどのポインティングデバイス、キーボードなどの入力操作や音声認識の結果を受けて実行される処理の結果として、アプリケーションのウインドウ状態変化がある（ウインドウが生成破壊、ジオメトリ変更された）場合には、音声フォーカスの移動を行う規則を作ることにより使い勝手を向上させることができる。
【００７５】
例えば、「ウインドウの破壊、アイコン化、ウインドウが他のウインドウに隠れる、等の場合音声フォーカスを失い、ウインドウの生成、非表示状態から表示状態への変更、ウインドウが他のウインドウの上に表示される、ウインドウの大きさを大きくする、等の場合音声フォーカスを獲得する。」、というような規則に従い、各アプリケーション内部でウインドウ状態変化に応じて、フォーカスの獲得・消去を行う。勿論、このような、ウインドウ状態変化は個々のアプリケーションが個別に管理しなくても、音声フォーカスの管理を行うプログラムにより一括管理してもよい。この場合、この管理プログラムは、ウインドウシステムを管理するプログラム（例えば、システムのウインドウサーバ）に管理したいアプリケーションのウインドウの状態変化を知らせてもらい、その通知を受けた時に上述のような規則を適用して、音声フォーカスを変更すればよい。
【００７６】
また、音声フォーカス管理プログラムがあれば、音声フォーカスを獲得していたアプリケーションがアプリケーションの終了、ウインドウの破壊などにともない音声フォーカスを失った場合も、どのアプリケーションに音声フォーカスを移すかに関して、同様に規則を作り、使い勝手を向上させることができる。
【００７７】
例えば、「音声フォーカスの履歴を音声フォーカス管理プログラムが保持しておき、音声フォーカスを獲得していたアプリケーションが音声フォーカスを消失した場合、その消失原因が他のアプリケーションのフォーカス獲得要求によるものでないならば、それ以前に音声フォーカスを獲得していたアプリケーションにフォーカスを戻す。」、という規則を作り、音声フォーカス管理プログラムがこれに従って、音声フォーカスを変更させれば、音声フォーカスを獲得しているアプリケーションが１つもない状態、すなわち音声認識ステムの出力をどのアプリケーションも受け取らない状態を回避することができる。
【００７８】
なお、本実施例においては、音声認識システムとウインドウシステムを独立した構成としたが、両システムを統合した形態の音声認識インターフェースの実現も可能である。
【００７９】
（第３実施例）
第２実施例では、音声認識システムとウィンドウシステムを組み合わせ、音声フォーカスとキーボードフォーカスを一致させて、１つの入力フォーカスとし、入力フォーカスをマウスポインタで指定することで、音声認識対象語彙を変更した。しかし、これでは入力フォーカスを変更する度にキーボードから手を離さなければならない。入力フォーカスの変更を音声で可能にすることでユーザはキーボードから手を離さずに入力タスクを変更し、ユーザのマルチウインドウ環境における使い勝手の向上を期待できる。
【００８０】
入力フォーカスを音声入力で変更可能にするため、実施例１を拡張して各認識語彙に対してローカルとグローバルの２つの値を設定できるようにする。ローカルな認識語彙とは、それによる認識設定をした応用プログラムに音声フォーカスが当たっている際に認識するような語彙であり、グローバルな認識語彙とは、音声フォーカスがどの応用プログラムに当たっているかにかかわらず、認識対象となるような語彙である。
【００８１】
ここで、再び３つの応用プログラム（シェルツール、テキストエディタ、メールツール）を使って説明する。
【００８２】
各応用プログラムの認識語彙は、図１７に示す通りである。ローカル／グローバル設定にともない応用プログラム管理テーブル中の認識対象語彙リスト中の語彙のそれぞれにローカル／グローバルを示すフラグを設ける。応用プログラム管理テーブルは、図１８に示すようになる。音声入力が与えられたときに、メッセージ処理部は、この応用プログラム管理テーブルを使って認識語彙を次のように求める。まず、応用管理テーブルを参照して音声フォーカスの当たっている応用プログラムのローカル認識語彙を拾い出す。次いで全ての応用プログラムのグローバル認識語彙を拾い集める。これらがその時点での認識システムが認識可能とする語彙である。例えば、テキストエディタに音声フォーカスが当たっているとすると、その時点での認識語彙は「カット」「コピー」「ペースト」「取消し」「終了」「シェルツール」「メールツール」「テキストエディタ」の８つである。ここで、「カット」「コピー」「ペースト」「取消し」「終了」「テキストエディタ」の発声に対する認識結果は、テキストエディタに送付され、「メールツール」「シェルツール」は、それぞれメールツール、シェルツールに送信される。例えば、この状態でメールツールを発声した時に、メールツールの中で入力フォーカス（音声フォーカスとキーボードフォーカス）を自分自身に変更すれば、音声入力とキー入力の対象をキーボードから手を離すことなく変更できる。
【００８３】
これは、換言すれば、ウインドウに名前を付けると言うことである。このウンドウ名はウインドウの上部のタイトル表示部に表示すれば、ユーザは、それによってウインドウを何と呼べばよいかわかる。
【００８４】
以上のように、本実施例では、認識語彙にローカル／グローバルの属性を与えることで、ウィンドウに名前を付け、その名前を発声することで手を使わずにフォーカスの変更が可能となり、応用プログラムを切り替えることが可能となる。
（第４実施例）
第２、３実施例では、音声フォーカスとキーボードフォーカスを一致させ、同時に１つのウインドウだけが両者の入力を排他的に受け付けるようにした。
【００８５】
この２つの入力フォーカスを一致させることで１つの応用プログラムが両方の入力から一手に引き受けることができた反面、２つの入力手段がありながらそれぞれ別々の応用プログラムに対する入力をできなかった。本実施例では、この２つのフォーカスを分離するために音声フォーカスをマウスポインタによって直接操作しないようにする（キーボードフォーカスは、マウスポインタを使う。）。
マウスポインタがウインドウに入り、それが応用プログラムに通知されても、応用プログラムは音声フォーカスを移動させない。この場合は、音声フォーカスは、第３実施例で述べたようにウインドウに名前を付け、それぞれグローバル認識語彙とし、その名前で発声することで変更できる。
【００８６】
入力フォーカスを分離した際、その２つのフォーカスをユーザに分かりやすく呈示しなければ、ユーザが入力する際に混乱してしまう。本実施例では、キーボードフォーカスをウインドウ枠を太くすることで表示し、音声フォーカスをウィンドウタイトルの色を変化させることで示すこととする。
【００８７】
図１９は、入力フォーカスを２つに分離し、それぞれを別々に移動させた場合の例である。同図（ａ）では、両フォーカスは、どちらもテキストエディタに当たっている。メールツールをマウスポインタで指定すると、キーボードフォーカスはメールツールに移動するが、音声フォーカスは、テキストエディタに当たったままである同図（ｂ）。同図（ａ）の状態から、「メールツール」音声入力を行うと、音声フォーカスがメールツールに移動するが、キーボードフォーカスはそのままである。同図（ｂ）および（ｃ）において、キーボードフォーカスと音声フォーカスは、それぞれ個別の応用プログラムに当たっているため、まったく同時に別々の入力チャンネルを通じて２つの応用プログラムを操作できる。例えば、同図（ｃ）の状態にすることで、テキストエディタに対してキーボードで文章を打ち込みながらメールツールを音声で操作し、受信した電子メールを読むことができる。
【００８８】
また、音声フォーカスをコントロールする応用プログラム、音声フォーカスマネージャを作成し、これにより音声フォーカスを音声以外の手段で移動できるようにもしている。図１９の右側が音声フォーカスマネージャを示してており、この音声フォーカスマネージャは、同時に動作している応用プログラムの状態を音声認識システムと通信することで知り、リストなどの形で表示する。
【００８９】
音声フォーカスは、例えば応用プログラム名を反転表示することで表現し、これらリスト上をマウスポインタで指定することで音声フォーカスが変更できるようになる。また、応用プログラムに入力可能な手段は、キーボードや音声以外にもペンなども考えられる。応用プログラムに入力可能な手段および何が入力できるかを表示すればユーザの使い勝手が向上できる。例えば、入力可能性を手段別にアイコン化することで表示する。
【００９０】
このように、音声入力対象と音声以外の手段による入力対象を別々に分離することで、複数の入力手段を複数の応用プログラムに割り当て、人間が自然の形の作業を平行して行うことができるようになる。
【００９１】
（第５実施例）
図２０は、同実施例の概略構成を示している。この場合、音声認識システム６に対して複数の応用プログラム７を接続している。そして、これら応用プログラム７には、それぞれメッセージ入出力部７１を有している。
【００９２】
しかして、音声認識システム６は、音声入力があるごとに、その音声に対して認識処理を行い、その認識結果を応用プログラム７に送信する。応用プログラム７は、音声認識システム６に対して認識対象語彙を通知し、音声認識システム６は、それを用いて認識処理した結果を応用プログラム７に送信する。
【００９３】
応用プログラム７は、メッセージ入出力部７１を有していて、このメッセージ入出力部７１は、応用プログラム７が認識結果を受け取るか否かを決定し、その要求を音声認識システム６に対して行う。メッセージ入出力部７１は、応用プログラム７の指示によって音声認識システム６に対して応用プログラム７のための音声認識を行う要求をしたり、音声認識システム６から送信された認識結果を受けて応用プログラム７に渡したり、ブロックして渡さなかったりする。また、認識対象語彙を変更できる。
【００９４】
応用プログラム７がメッセージ入出力部７１を持つことで、応用プログラム７は、外部からの働き掛けによらず、自分の状態にしたがって音声入力（認識結果）を受けとったり、受けとらなかったりできる。
【００９５】
例えば、音声による制御が可能な電子メールシステム（音声メールと称する。）の例を挙げると、音声の誤認識による誤動作を防止するため、音声入力が不能な状態で音声メールを起動、動作させておく。音声メールがメールをうけとると、例えば「新しいメールを受信しました。いますぐお読みになりますか。」と合成音声を出力して知らせ、「はい」「いいえ」などの確認を取るための認識対象語彙と、それにより音声認識することを音声認識システム６に通知する。ユーザが「はい」といったならば、新しく受信したメールを表示したり、合成音声によりメールを読み上げたりする。「いいえ」といったならば、音声メールは音声認識システム６に対して音声認識結果を受けとらないように要求し、元の状態に戻る。
【００９６】
「新しくメッセージを…」のメッセージは、合成音声でなく、図２１のように表示してもよい。同図での「はい」「いいえ」は、マウスなどでも操作を可能とするためである。
【００９７】
また、図２０において、１つの応用プログラム７のメッセージ入出力部７１に、他の応用プログラム７の音声入力を可能にしたり、ブロックしたりする機能を与えれば、電子メールの例で言えば、確認のための音声入力を待つ間、電子メールは、他の音声によって制御が可能な応用プログラム７の音声入力を一時的にブロックし、確認が終わった時に戻すような操作が可能になる。
【００９８】
応用プログラム７による、こうした他応用プログラム７の音声入力をブロックする操作が競合した場合には、時間的に後にブロックモードになった応用プログラム７は、先にブロックモードになった応用プログラム７のブロック解除を待つ操作ができる。
【００９９】
このように音声認識システム６でなく、応用プログラム７にタスクの管理を可能にする手段を持たせることにより、応用プログラム７が音声認識システム６の指示に従うだけでなく、応用プログラム７独自の内容状態に従って音声入力を利用できる。
【０１００】
また、ある特定の応用プログラム７に他の全ての応用プログラム７のタスクの管理（音声認識結果を送るか否か、どの認識対象語彙により音声認識を行うか否かなどの処理）を行わせることもできる。
【０１０１】
図２２は、ワークステーションなどのマルチウィンドウ環境で、音声により操作できるメールツール、シェルツール、テキストエディタおよびタスク管理プログラムを示している。ここでは、どれか１つの応用プログラム７が音声入力を可能としている。この場合、テキストウディタが音声入力対象となっている（タイトルの色の変更によりそれが表示されている。）。そして、音声入力対象となっていることは、タスク管理プログラムでも同様に表示することができる。この例では、音声入力対象の変更は、タスク管理プログラムの表示の上をマウスなどのポインティングデバイスを利用して指定することができる。
【０１０２】
（第６実施例）
実施例５では、１つの応用プログラム７だけを音声入力対象としたが、複数の応用プログラム７を同時に認識対象することも可能である。
【０１０３】
図２０の音声認識システム６に、例えば図２３に示すような応用プログラム管理テーブルを持たせる。この応用プログラム管理テーブルは、音声認識システム６に接続している全ての応用プログラム７に関して認識の可否および認識対象語彙に関する情報を持つ。
【０１０４】
このテーブルの情報の変更は、各応用プログラム７のメッセージ入出力部７１からの要求によって行う。図２３では、メールツールとシェルツールが音声入力可能になっている。図２３の状態は、例えば図２４に示すように表現できる。
【０１０５】
ここで音声認識システム６は、「プロセス」「ホーム」といった音声入力は、シェルツールに送り、「先頭」「次」といった音声入力は、メールツールに送るといったように、認識した結果を自動的に振り分けることができる。また、「終了」は、メールツールとシェルツールに同時に送ることができるため、各応用プログラム７はそれを受け取って応用プログラム７自身を終了させることができる。
【０１０６】
さらに、複数の応用プログラム７を音声入力対象とすることを前提とすれば、次のような操作が可能になる。図２５は、タスク管理プログラムの機能を拡張した例である。「排他制御」は従来あるように音声入力対象の応用プログラム７を常に一つにする機能である。「全部」は、音声認識システム６に接続されている全ての応用プログラム７を音声入力対象とする機能である。「反転」は音声入力対象を逆転させる機能であり、メールツールとシェルツールが音声入力対象となった状態で「反転」することで音声入力対象がエキストエディタとなる。もう一度「反転」すれば元に戻る。これらの操作は、マウスのようなポインティングデバイスだけでなく、音声やキーなどの入力装置により可能である。例えば、何等かのキーボタンやキーを押しながら音声入力する。
【０１０７】
「全部」ボタンを押しながら発声すると、全部の応用プログラム７が音声入力対象となり、「反転」ボタンを押しながら発声すると、音声入力対象が反転し、ボタンを離すとそれらの状態は元に戻る。
【０１０８】
特定の１つの対象を指定しないまま入力し、その入力が適切に処理されることが本実施例では可能になる。ワークステーションなどのマルチウインドウ環境を考えると、その上で例え音声による操作が可能な応用プログラム７が複数動作していたとしても、対計算機ということを考えれば、人間の相手は１つであり、計算機も相手の発声をタスク切換えなどの特別な操作をすることなく、自動的に適切に処理されることを人間が期待するのは自然のことであり、音声メディアの特性を活かすことになるといえる。
【０１０９】
（第７実施例）
上述の第６実施例において、各応用プログラム７の認識対象語彙が何であるかは分からない。そのため、タスク管理プログラム（あるいは別の応用プログラム７にしてもよい）に各応用プログラム７の認識対象語彙を表示させる。応用プログラム７は音声認識システム６に対して、音声認識システム６の持つ応用プログラム管理テーブル（図２３）の情報を要求することで、その表示が可能である（図２６）。
【０１１０】
このように音声入力対象となった応用プログラム７の認識対象語彙を自動的に表示することで、ユーザが各応用プログラム７ごとに入力に使用する認識対象語彙を記憶する必要がなくなり、ユーザの負担が少なくなる。また、応用プログラム７の作成者の側にも認識対象語彙を表示させる手段を用意する必要がなくなる分、負担解消が計れる。これはまた、例えば、入力対象の応用プログラム７の表示と一緒に表示できる（図２７）。図２７では、メールツールとシェルツールの色の変化を持って、それらが入力対象となっていることが表示されている。
【０１１１】
（第８実施例）
複数の応用プログラム７の制御は、画面の表示やマウスなどのポインティングデバイスを必ずしも必要としていない。例えば、音声によるビデオ予約が可能なＶＴＲ制御プログラムを電話でコントロールしている際に、第５実施例で述べた音声メールプログラムがＶＴＲ制御プログラムの処理に一時的に割り込み、「緊急のメール受信しました。ないようを確認しますか」と合成音声を出力して知らせることができる。この確認を受けた利用者は、受信したメールの内容を合成音声により知ることができる。
【０１１２】
メールによる作業が終わると、ビデオ予約の作業が再開される。ＶＴＲ制御プログラムは、作業中断に備えて「予約内容確認」などの語彙とともに、中断前までに行われた予約内容を確認できれば、より使いやすいインターフェースとなる。電話の場合、音声だけでなく、電話のプッシュボタンなどの入力装置が利用できる。音声入力の自然な性質を活かしながら、例えば環境の雑音が一時的に増大し、音声による入力が疎外されるような場合には、適宜プッシュボタンなどを利用して入力を確実にすることができる。
【０１１３】
（第９実施例）
次に、本発明による音声認識プログラムによる認識語彙の学習に関する実施例について説明する。
【０１１４】
従来、認識語彙の学習の際は、学習語彙の一覧表の中から利用者が学習させたい語彙を選択するが、語彙が多い場合、選択したい語彙を探すのに手間がかかり、使い勝手を悪化させていた。例えばワークステーション用に発売されている音声認識装置における学習プログラムでは、様々な応用プログラムで使用する認識語彙がすべて表示されるため学習させたい語彙を数百の単語リストから選ばなければならなかった。
【０１１５】
本実施例では、応用プログラムからの認識語彙情報を利用することにより、利用者に提示する単語一覧の語彙数を少なくして容易に目的の語彙を選択するようにでき、また、応用プログラム使用中であってもその場で学習を行うことができるようにしている。
【０１１６】
同実施例は、図２８に示すように図１で述べた音声認識システム１と応用プログラム２に学習データ収集部８と辞書作成部９を加えた構成からなっている。
【０１１７】
ここで、学習データ収集部８は、音声認識システム１とメッセージ交換を行って応用プログラム２に関する語彙情報を受け取り、利用者への語彙表示を行って認識語彙を選択させる。また、学習に必要な設定、例えば、学習データの出力を行うように音声認識システム１へ要求し、受け取ったデータをファイルに保存する。辞書作成部９は上記ファイルを入力として認識辞書の作成を行う。
【０１１８】
以上の動作を行うために、学習データ収集部８は、図２９に示すように単語音声特徴データ保存部８１、学習語彙表示選択部８２、学習データ収集制御部８３、学習語彙ガイド表示部８４から構成している。
【０１１９】
ここで、学習語彙表示選択部８２は、語彙を利用者に表示して学習語彙を選択させるもので、内部に有する学習語彙テーブル８２１に音声認識システム１から送られて来る応用プログラム２の認識語彙を記憶するようにしている。学習語彙テーブル８２１は、例えば文書編集に使うコマンド群が認識対象になっている場合は、
音声認識対象語彙：取り消し、カット、コピー、ペースト、フォント      のようになっていて、この内容が、例えば図３３のように表示され、利用者が応用プログラムを使用しているその場で目的の語彙を選択することができる。表示される語彙は応用プログラムの内部状態に応じて必要とされる認識対象の語彙のみであるため、全部をまとめて表示するよりも非常に少なくすることができ、容易に目的の語彙を選択可能である。単語音声特徴データ保存部８１は、メッセージ処理部を介して音声認識システム１から送られてくる単語音声特徴データを、例えば磁気ディスクなどに保存する。学習データ収集制御部８３は、データ収集の全体制御を行い、データ収集の開始／終了を示すためのデータ収集指示フラグを持つ。音声認識システム１との間のメッセージ交換は、図３０に示すメッセージを用いて行うことができる。
【０１２０】
学習データ収集のため、音声認識システム１では、音声認識を行って認識結果を応用プログラム２へ送る通常の認識動作の他、音声分析の結果得られる単語音声特徴データをデータ収集部８へ返すデータ収集動作の２つの動作モードを行うことが可能であり、以下では各々の動作を認識モード、学習モードと呼ぶことにする。
【０１２１】
次に、図３１、図３２を参照しながらデータ収集の手順について説明する。
【０１２２】
図３１は、音声認識システム１のデータ収集時のフローチャートである。
【０１２３】
この場合、学習を行う前に音声認識システムでは、応用プログラムとの通信により、すでに認識語彙が設定されているものとする（ステップ３１０１）。そして、データ収集部８からの学習モード設定要求メッセージを受信すると（ステップ３１０２）、学習に必要な動作を行う（ステップ３１０３）。
【０１２４】
学習に必要な動作は、例えば設定されている語彙のセットをデータ収集中保持するために音声フォーカスを移らないようにしたり、収集中に認識結果を応用プログラムへ送って認識結果によって応用プログラム２の状態が変化して設定語彙が変化しないようにデータ収集中、認識結果を応用プログラム２へ送らないようにすることなどがある。
【０１２５】
次に、音声認識システム１は、データ収集部８へ認識対象語彙のリストを送信した後（ステップ３１０４）、データ収集部８からのメッセージを受信し（ステップ３１０５）、それが音声特徴データ送信要求であれば、音声入力がおこなわれる度に特徴データをデータ収集部８へ送信し（ステップ３１０７）、学習モード解除要求であれば、学習モードを解除を行い通常の認識モードに戻る（ステップ３１０８）。
【０１２６】
図３２は、学習データ収集部のフローチャートである。
【０１２７】
まず、初期状態としてデータ収集の実行を指示するフラグにＯＦＦが設定されている（ステップ３２００）。ユーザによりデータ収集がＯＮにセットされると音声認識システム１へ学習モード設定要求のメッセージを送る（ステップ３２０１）。次に音声認識システム１にその時の認識対象語彙を要求し、語彙を学習語彙表示選択部８２の学習語彙テーブル８２１に記憶させる。
【０１２８】
学習語彙ガイド表示部８４は、例えば図３３のように表示し（ステップ３２０２）、学習語彙をマウスなどを用いて選択させる（ステップ３２０３）。選択語彙は複数でもよく、例えば選択した語彙の背景色が白から緑に変化して見易くすることができる。図３３は、文書編集メニューの語彙の中から「コピー」と「ペースト」を学習語彙として選択した場合を図示している。
【０１２９】
次に、単語音声特徴データ送信要求を音声認識システム１に出した後（ステップ３２０４）、学習語彙の発声を促すための発声すべき語彙の表示が学習ガイド表示部８４によって図３４のようになされる（ステップ３２０５）。この場合、ガイドはなくすことも可能である。また、補助情報として発声回数などを表示したり、発声すべき語彙を合成音声によって聞かせることもできる。こうすることで、ガイドを画面に表示するだけに比べて見誤りなどによる間違った発声を少なくすることができる。
【０１３０】
ユーザが発声した後、音声認識システム１から送られてくる単語音声特徴データをファイルへ出力し、学習データ収集制御部８３により設定されているデータ収集指示フラグによりデータ収集の送信／終了を判断する（ステップ３２０７）。フラグがＯＮなら単語音声特徴データ送信要求から、ステップ３２０９を介して上記データ収集・ファイル出力までを繰り返し、ＯＦＦなら音声認識システム１に学習設定解除の要求を出す（ステップ３２０８）。
【０１３１】
次に、データ収集時の音声認識インターフェース全体の処理の流れを図３５を用いて説明する。
【０１３２】
まず、初期設定では、ユーザからデータ収集の指示が出されると（ａ）、データ収集部８より音声認識システム１に対して学習モード設定要求が出される（ｂ）。これを受けて音声認識システム１が現在認識に用いている認識対象語彙をデータ収集部８に送る（ｃ）。
【０１３３】
データ収集部８では、認識対象語彙をユーザに表示して学習を行う語彙の選択を促す。学習の語彙が選択されると（ｄ）、データ収集部８は、音声認識システム１に対して単語音声特徴データの送信を要求し（ｆ）、選択された語彙を発声のガイドとして表示し（ｅ）、ユーザに発声を促す。
【０１３４】
音声認識システム１では、発声されたユーザの音声を処理した後、データ収集部８に単語音声特徴データを送信し（ｇ）、データ収集部８は、そのデータをファイルに出力する。
【０１３５】
学習終了時には、まず、ユーザがデータ収集終了の指示を入力し（ｈ）、データ収集部８は、学習モードの解除を音声認識システム１に要求する（ｉ）。音声認識システム１では、それを受けて学習モードを解除する。
【０１３６】
データ収集終了後は利用者が必要に応じて認識辞書の作成を行うことができる。辞書作成部９は，単語音声特徴データ保存部８１からのデータを用いて辞書作成を行い辞書をファイル出力する。
【０１３７】
従って、このようにすれば目的の語彙を簡単に選択でき、応用プログラム使用中においても認識語彙の学習を簡単に行うことができるようになる。
【０１３８】
（第１０実施例）
次に、時間のかかる辞書作成をバックグランドで行い、データ収集中や他の応用プログラム実行中に辞書を作成することで辞書作成終了を待たずに使い勝手の良い音声認識インターフェースを実現する実施例について説明する。
【０１３９】
ところで、従来、音声認識のパターンマッチング法としては、ＤＰ法やＨＭＭ、複合類似度法などが知られており、いずれも標準となる認識辞書を用いてパターンマッチングを行うが、例えば高精度な認識を行うため固有値展開などを必要とする複合類似度法（永田、他“ワークステーションにおける音声認識機能の開発”電子情報通信学会技術報告、ＨＣ９１１９、ｐｐ．６３−７０、（１９９１））では、辞書作成のための計算量が多く、現在高速であるとされるワークステーション、例えば処理能力２０ＭＩＰＳの計算機を用いた場合でもかなりの時間、例えば一単語当り数秒から数十秒を要するため待ち時間による学習インターフェースの使い勝手の悪化が無視できない。そこで、学習データの収集中に辞書作成をバックグラウンドで計算することにより、待ち時間を減らしてインターフェースの使い勝手を向上させるようにしている。
【０１４０】
そこで、同実施例では、辞書作成をバックグラウンドで行うことでインターフェースを良くする音声認識システムについて説明する。
【０１４１】
この場合、図２８で述べた辞書作成部９を、図３６に示すように辞書作成管理部９１、辞書作成制御部９２、データ入力部９３、辞書作成部本体９４、ファイル出力部９５から構成している。
【０１４２】
ここで、辞書作成管理部９１は、データ収集部８からのメッセージを受け、要求された語彙の単語認識辞書の作成を辞書作成制御部９２へ指示し作成終了をメッセージでデータ収集部８に通知する。
【０１４３】
複数の辞書作成要求があった場合に順序よく実行するため例えば図３７のような辞書作成管理テーブルの要求日時の順番に従って作成を行う。図３７は例として文書編集用のコマンドである「コピー」「ペースト」「カット」という単語について、この順序で辞書作成を要求されたときの管理テーブルの内容である。語彙などの条件は要求のあった日付、時刻とともに管理テーブルに登録され、辞書作成がこの順で行われ、作成の終了した要求は管理表から削除される。
【０１４４】
辞書作成要求は上記のように語彙を指定するだけでなく、単語音声特徴データの属性としてデータ自身に登録されている他の情報、例えば図３８のように発声者の名前を指定してその人の特定話者用の辞書を作ったり、図３９のように日付を指定して新しいデータのみによって辞書を作ることもできる。
【０１４５】
そして、辞書作成管理部９１と辞書作成制御部９２の間はメッセージ交換でやりとりを行う。
【０１４６】
次に、図４０、図４１を用いて辞書作成の流れについて説明する。
【０１４７】
まず、図４０は辞書作成管理テーブルへの登録の手順である。この場合、辞書作成要求のメッセージがあったかどうかを判断し（ステップ４００１）、なければ要求を待ち、あれば語彙やユーザ名などの条件を辞書作成管理テーブルに登録する（ステップ４００２）。
【０１４８】
一方、図４１は辞書作成の手順である。この場合、辞書作成管理テーブル上に登録されている辞書作成要求を検索し、要求がなければ登録を待ち、あれば最も古い日時の要求を選ぶ（ステップ４１０１）。次に単語音声特徴データを入力し（ステップ４１０２）、上記要求の条件に適合するデータを選択する（ステップ４１０３）。選択したデータのみを用いて辞書を作成しファイル出力する（ステップ４１０４、４１０５）。上記要求を管理テーブルから削除し、管理テーブルの検索（ステップ４１０１）へ戻る。以上を繰り返す。また、すべての辞書作成要求が削除された時点で、辞書作成が終了したことを学習データ収集部に通知しても良い。
【０１４９】
認識辞書の作成は、データ収集時にバックグラウンドで行うため、辞書作成の進行状況は利用者にとって分かりにくい。そこで、辞書作成の進行状況を例えば図４２（ａ）（ｂ）に示すように全処理量に対する終了した処理量の割合を表示することによって利用者に分かりやすいインターフェースを提供できるようにしている。この場合、辞書作成の開始や終了の際には、ビープ音などにより通知することも可能である。また、辞書作成処理の速度を表示することも可能で、例えば図４３に示すように速度を４段階に分けたり、図４４（ｂ）に示す色分けを用いて同図（ａ）のように色で処理速度を表示したりでき、計算機の負荷が大きくて辞書作成の処理が進まない場合には、処理が停滞していることを表示することにより、利用者に計算機の負荷の分散を促すようにもできる。
【０１５０】
以上のように、時間がかかる音声データの収集中にバックグラウンドで辞書作成を行うことにより、待ち時間を少なくして使い勝っての良いインターフェースを実現することができる。
【０１５１】
また、以上述べた辞書作成は、独立したプロセスとして動作することが可能で、データ収集部８からの要求だけでなく、音声認識システムやその他の応用プログラムからも辞書作成要求を受け付けることが可能であり、学習データ収集処理時のみに限らず、いつ辞書作成を行ってもよい。
【０１５２】
（第１１実施例）
認識対象を単語または文節などとする音声認識においては、従来より入力音声のパワーの変化、音声ピッチの変化、あるいは零交差回数などの特徴パラメータを用いて単語境界を検出し、この音声特徴ベクトルと認識語彙セットについての認識辞書とを照合することにより行われていた。しかし、実際の作業環境では、背景雑音やユーザの不用意な発話（他のユーザとの会話や独り言など）の影響により誤った単語境界が検出されることが少なくない。このため、音声認識システムのユーザは現在何が認識対象になっているかを常に意識し、それ以外の言葉を発声しないようにする必要がある。
【０１５３】
一方、音声を計算機への入力手段の一つとして他の入力手段（例えばキーボードやマウス）と合わせて作業を行う場合、ユーザは、入力内容や作業の状況に応じてそれぞれの入力手段を使い分けることが考えられる。
【０１５４】
そこで、本実施例では、図４５に示すように図１で述べた音声認識システム１と応用プログラム２に音声認識自動停止部１０を加えた構成とし、認識処理に、通常の認識処理（現在の認識対象となっている全ての語彙に対する認識処理）をおこなうモードと、特定のキーワードについてのみ認識処理を行うモードの２つのモードを設け、認識処理を開始して暫くは通常の認識処理を行い、予め定めておいた時間内に音声入力が行われなかった場合には、それまでの認識語彙セットを保存し、特定のキーワード（例えば「認識開始」など）のみを認識語彙セットとするモードに切り替わるようにする。その後、このキーワードが入力されれば、保存していた認識語彙セットを新たに設定し、通常の認識処理モードに移行する。この認識処理モードの切り替えは、例えば音声フォーカスの変更や音声以外の入力手段による指示によっても行われ、認識モードの移行は、メッセージまたはアイコンによる表示やピープ音などを用いてユーザに伝えられる。これにより、ユーザが音声を暫く使わない状態になると、自動的に音声認識のモードが切り替わり、特定のキーワード以外の音声を無視することで検出誤りによる予期しないタスクの切り替えや誤動作を回避することができる。
【０１５５】
また、ユーザはキーワードを発声するか、音声以外の入力手段により音声認識処理モードの切り替えを意識的に行うことができる。上記の処理は、例えばインターバル・タイマ機構を用いることにより実現できる。これは、現在時刻から時間切れになる時間を秒数で指定するもので、時間切れになると、その旨を通知するシグナルが渡される。このシグナルを受信した時点で音声認識のモードの切り替えを行う。
【０１５６】
以下、図４６に示すフローチャートに従って説明する。
【０１５７】
まず、最初にタイマが時間切れになるまでの秒数を設定し（ステップ４６０１）、時間切れか否かを示すフラグを０にする。このフラグは、時間切れになった旨を通知するシグナルを受信した際に呼び出されるシグナルハンドラ内で１がセットされるようにしておき、認識処理の最初にその値が調べられる。なお、タイマの機能は、計算機に通常内蔵されている時計の機能により容易に実現可能である。また、シグナルハンドラは、音声認識自動停止部１０の中にプログラムとして書くことができる。
【０１５８】
次に、認識対象とする語彙セットを設定した後（ステップ４６０２）、時間切れか否かを調べて（ステップ４６０３）、時間切れでなければ、その語彙セットに対する認識処理を行う。
【０１５９】
認識処理は、まず入力音声のパワー変化や音声ピッチの変化、あるいは零交差回数などの特徴パラメータを用いて音声区間の始端と終端を検出し（ステップ４６０４）、終端が検出されれば、その始端と終端で定まる音声区間から音声特徴ベクトルを抽出し、現在の認識語彙セットの認識辞書と照合を行い、各確認語彙のの類似度を求め、そのうち類似度最大で、かつその値が予め定めておいたしきい値以上のものを認識結果として出力し、認識処理を終了する。（ステップ４６０５〜４６０９）
なお、図４６では、音声特徴ベクトルの抽出から、認識辞書との照合およびしきい値による判定までを認識処理としている。終端が検出されない場合や、認識結果が得られない場合は（ステップ４６０５、４６０７）、語彙セットの設定に戻り、必要に応じて（例えばクライアントから音声フォーカスの変更や認識語彙の変更要求があった場合）認識語彙セットの変更を行い、時間切れか否かを調べて、時間切れでなければ再び現在の認識語彙セットに対する認識処理を行う。時間切れになった場合は、それまでの認識語彙セットを保存し、特定のキーワードを認識語彙とするモードに移行する。そのキーワードが検出されるか、クライアントから認識処理モードの切り替え指示があれば、保存していた認識語彙セットを復元し、タイマを再設定して通常の認識処理に復帰する（ステップ４６１０〜４６１７）。
【０１６０】
以上述べた認識機能の自動停止機能により背景雑音やユーザの不用意な発話による誤動作を防ぎ、使い勝手のよい音声認識インターフェースを実現することができる。
【０１６１】
また、背景雑音やユーザの発話による誤動作をユーザが意識的に避ける方法として、従来からマウスやキーを押し下げている間だけ、音声入力を行う方法が使われているが、音声入力ごとに毎回マウスを操作するのは煩わしいという問題がある。そこで、常時音声入力中として、マウスを押し下げている間だけ音声入力を受け付けないことにすれば、発声ごとにマウスを操作しなければならないといった煩わしさを軽減できる。
【０１６２】
（第１２実施例）
ところで、音声メールツールは、音声入力可能な電子メールシステムであり、音声を使って受信したメールのリストを移動して内容を確認したり、そのメールに対する返事を送信することができる。
【０１６３】
この場合、ツールは、リスト表示部、受信メール表示部、送信メール編集部からなり、リスト中の反転表示されたメールが受信メール表示部に表示される。そして、例えば、音声を使って以下のような操作ができる。ここでは、上司からの緊急のメールに対して返事を出すまでを示している。
【０１６４】
「メールツール」（音声メールツールを全てウインドウの前に出す。）
「先頭」        （受付けリストの先頭にリストポインタを移動する。）
「次」          （リストポインタを次のメールに移動する。）
「最後」        （受信リストの最後にリストポインタを移動する。）
「前」          （リストポインタの前のメールに移動する。）
「上司」        （上司からのメールだけをリストアップする。）
「緊急」        （そのうち緊急のメールだけをリストアップする。）
「返事」        （緊急のメールに対して返事を出す。送信メール表示部に“Ｔｏ：上司名”と“Ｓｕｂｊｅｃｔ：Ｒｅ：上司からのメールのＳｕｂｊｅｃｔ”が入る。）
メールシステムの初期状態を図４７に示す。メールリストの表示部には、全てのメールリストを一度に表示できないため、所望のメールを探すのにマウスを使う場合には、表示部の右側にあるスライド用のバーを使う必要がある。特に大量のメールが来た時などは、メール探しに多くの労力を必要とし、操作性は十分であるといえない。しかし、ここで音声を用いることにより、直接所望のメールを検索でき、作業の大幅な効率化が図れる。
【０１６５】
ここで、例えば上司からの緊急のメールを選択する場合、「上司」「緊急」と発声するだけで、選択することができる。図４８に上司からの緊急のメールの検索結果を示す。この例では２通のメールがきているものとすると、次のようになる。
【０１６６】
「コピー」    （メッセージをコピーする。）
「ペースト」  （コピーしたメッセージを受信メールにペーストする。）
「引用」      （そのメッセージに引用符を付ける。）
ここで、そのメッセージに対する返事を書き、
「サイン」    （必要があれば自分のシグネチャをメールの最後に付ける。）
「送信」      （返信メールを送信する。）
ここで使われている「上司」や「緊急」は、音声マクロコマンドとして実装されており、メールのヘッダや内容を用いて照合した結果を用いてリストを限定するものである。すなわち、電子メールの発信者の名前、所属、標題、差出日、本文の内容は、テキスト（文字データ）で書かれており、その内容を理解し、キーワードや内容の照合を行うことにより、音声での効率的な電子メールの取り出しが可能になる。これはフルテキストサーチなどの情報検索技術や文脈解析技術を用いて、ＷＳ上で実現でき、音声入力インターフェースの利用により音声メールの使い勝手が大幅に向上する。また、テキストの一部を音声合成で読み上げたり、強調したり、スピードを変化させることも可能である。また、図４７に示すように認識語彙の表示や現在音声フォーカスが当たっているクライアントの表示、認識が動作中であるか否かの表示などを行い、ユーザにシステムの状態をできるだけ伝えるように考慮し、作業の効率化を可能にしている。
【０１６７】
（第１３実施例）
音声認識サーバを使って、既存のアプリケーションを音声で制御することができる。これは、既存のアプリケーションのキーボード入力を音声によって代行するクライアントを作成すれば可能である。ここでは、既存のアプリケーションに対する音声制御を可能とする音声マクロプログラムを使って、既存のＤＴＰ（Ｄｅｓｋ  Ｔｏｐ  Ｐｕｂｌｉｓｈｉｈｇ）システムを音声コントロールする例を示す。
【０１６８】
音声マクロプログラムは、既存アプリケーションの認識語彙に関する知識をメニュー形式で持ち、そのメニュー階層を利用して認識語彙を限定する。ここで、
“図形”メニュー
“取り消し”
“グループ化”
“グループ解除”
“フロント”
“バック”
“上／下（うえした）反転”
“右／左（みぎひだり）反転”
“回転”
“トップレベル”メニュー
“文書”
“編集”
“図形”
メニュー階層のルートを「トップレベル」と呼び、トップレベルから単語を発生し、メニュー階層をたどることでコマンドを実行していく。メニューの階層を移動するごとにウインドウにメニューの各項目とメニュー階層における現在位置をパスの形で表現しユーザに呈示する。
【０１６９】
そして、以下のように操作される。ここでは、文書ウインドウに存在する複数個の図形を取り扱う例を示している（図４９参照）。
【０１７０】
図形を扱うためにトップレベルから図面メニューを開く。
「図形」（メニューの項目が音声コマンダにリストアップされる。）
ここで、文書ウインドウ上の複数の図形をマウスで選択する。
「グループ化」（複数の図形を１つの図形として取り扱うべく纏める。）
「上下反転」（グループ化した図形の上下を反転させる。）
「回転」（図形を回転させる。）
「グロープ解除」（グルーブ化を解除する。）
次に、先にグループ化された図形のうちの１つをマウスで選択する。
「バック」（選択した図形を全ての図形の後ろに送る。）
「取消し」（「バック」により行われた操作を取り消す。）
「フロント」（一番前に送る。）
これをマウスを使って操作する場合には、
・メニューバーをクリックしてメニューを表示する。
【０１７１】
・メニューをプルダウンし、実行したいコマンドの項目を選択する。
【０１７２】
・マウスボタンから手を離してコマンドを実行。
の少なくとも３アクション必要であり、マウスポインタの移動の手間を考えると、それ以上のアクションを行っていると考えられる。
【０１７３】
ところが、音声を使用すると、
・操作を行う単語を発生する。
の１アクションで済むため、音声の有用性が分かる。マウスを使ってメニューを選択することで操作する場合には、例え予め何を操作したいかをユーザが分かっていても、上記の操作は必ず実行しなければならない。音声は、他の入力手段と組み合わせることで、より効果的なインタフェースとなる。
【０１７４】
ここで、キーボードマクロを使えば、音声と同様に１回だけの操作で済むが、キーボードマクロは基本的に一つの文字で表現するため、キーボードマクロが多ければ多いほど対応付けのしにくい文字とコマンドの組み合わせを記憶することが要求され、ユーザの負担になる。
【０１７５】
そこで、コマンドを、ただ１つの文字でなく、そのコマンドの意味をも自然に表現し得る音声と結び付けることで、アプリケーションは、ユーザに対して、より自然なインターフェースが提供できる。
【０１７６】
また、単語認識の際に上述した図形メニューのなかで、例えば「グループ化」と「グループ解除」のように前半部分が同じカテゴリに存在する場合には、部分抽象化により単語の後半部分のパターンを用いて認識を行うことにより、認識精度の向上を図ることができる。また、「上下反転」「左右反転」のように後半部分が同じ場合には、単独の前半部分のパターンを用いて認識を行うことも可能である。要するに、パターンの違いがより明確になるように様々な視点から認識のための単語パターンを取り出し、認識を行うことにより認識性能の向上が可能になる。
【０１７７】
（第１４実施例）
以上、述べてきた音声認識インターフェースは、音声の入力にのみ注目してきたが、音声の出力機能をインターフェース内に取り入れ、テキストからの音声合成や音声データの再生を行なうようにすれば、音声の入出力を統合して行なうことができるため、複数の応用プログラムへの音声入力とそれらからの音によるメッセージの出力を簡単に行なうことができ、ユーザにとって取扱い易いインターフェースを実現することができる。
【０１７８】
以下に、音声合成機能を備えた音声認識インターフェースである音声入出力インターフェースの構成について説明する。
【０１７９】
図５０は音声合成部を備えた音声入出力システムの概略構成を示しており、図１で述べた音声認識システム１に音声合成部１４を付加した構成になっている。この場合、音声合成部１４はメッセージ処理部１１からの指示に従ってテキスト情報から合成音声生成を行い、音声出力を行なうようになっている。また、応用プログラム管理テーブル１３は、複数の応用プログラム２からの音声出力を制御するため、図５５に示すように応用プログラム２の音声出力に関する情報を収納するフィールドを持っている。これにより、複数の応用プログラム２からの音声出力に対する制御を行なうことができる。ここでの音声出力に関する情報としては、特定の音声出力に対して音声出力を優先的に行なうことを指示するための音声出力優先度などがある。
【０１８０】
図５１は、音声合成部１４の概略構成を示しており、全体制御部５６１、波形重畳部５６２、音声出力管理テーブル５６３、波形合成部５６４からなっている。
【０１８１】
全体制御部５６１はメッセージ処理部１１から合成音声の出力要求とともに文字列を受けとり波形合成部５６４に送って音声合成を行ない音声出力する。この場合、音声合成部１４によって出力する音響信号は合成音のみでなく、録音された音声や音声以外であってもよく、その場合は音声の合成を必要としない。このときは波形合成は行なわずにメッセージ処理部から受けとった波形データをそのまま音声出力するようにしている。
【０１８２】
また、波形合成部５６４は全体制御部５６１から文字列データを受けとって音声合成を行なう。音声合成の方式としてはさまざまな方法が知られており、例えば文献（D.Klatt: "Review of text-to-speech conversion for English ", J,Acoust.Soc.Am.,82,3，pp.737-793 (Sept.1987)) の方法を用いることが可能である。
【０１８３】
音声出力管理テーブル５６３はメッセージ処理部１１からの音声出力の要求を登録するテーブルであり、このテーブルに登録された順番に従って音声出力を行なうことにより、複数の音声出力要求に対して時間的な整合性を保ちながら音声出力を行なうことができる。
【０１８４】
音声合成部１４は独立したプロセスとして動作させることが可能で、メッセージ処理部１１とは、音声認識システム１と応用プログラム２の間のメッセージで述べたように、プロセス通信によるメッセージ交換によりデータのやりとりを行なう。ここでのメッセージとしては図５３に示すようなものがある。
【０１８５】
同図（ａ）の応用プログラム２からメッセージ処理部１１へのメッセージは応用プログラム２からの命令を意味している。ここでの音声合成要求は、応用プログラムがテキスト内容を合成音声に変換させる要求で、合成するテキストデータと共に要求を出し、その結果合成音声データが通知される。波形再生要求は応用プログラムが録音等により既に波形の形で音声データを持っている際、それをそのまま再生するための要求で、再生データと共に送信する。音声合成・再生要求は、音声の合成とその再生をまとめて行なう要求であり、合成音声データは通知されない。
【０１８６】
優先度設定要求は、特定の応用プログラムからの出力音を優先させるための要求であり、例えば出力音のレベルと音声合成処理の優先度、中断出力の有無、などに関して、設定できるようになっている。
【０１８７】
音声出力要求の優先度は、例えば緊急を要する場合に、高い値に設定することにより、直ちにユーザの注意を向けることができるため効果的である。
【０１８８】
先に述べたように、音声出力管理テーブル５６３はメッセージ処理部１１からの音声出力要求を登録するテーブルであり、このテーブルに登録された順番に従って音声出力を行なうことにより、複数の音声出力要求に対して時間的な整合性を保ちながら、音声出力を行なうことができる。
【０１８９】
音声出力管理テーブル５６３の例を図５２（ａ）（ｂ）に示している。テーブルに記録するデータはデータＩＤ、波形かテキストかを表す入力データの種類、出力要求のテーブルへの登録時刻、テキストデータの内容、音声出力の際の音量などがある。図の例では、データＩＤ＃１、＃２、＃３がテキストデータであり、＃０〜２のデータに対しては処理が終了しているが、＃３のデータは現在処理中、＃４のデータはまだ処理が行なわれていないことを示している。
【０１９０】
一方、メッセージ処理部１１から応用プログラム２へのメッセージは図５３の（ｂ）に示すような種類がある。音声出力状況通知は、要求された音声出力が終了したことを通知し、優先度設定通知は、優先度設定要求に従って音声出力の優先度が設定されたことを通知する。いずれも要求に対する確認のメッセージである。
【０１９１】
応用プログラム２がどのメッセージを受け取るかの設定は、先の音声認識システム１と応用プログラム２の間のメッセージに関する説明で既に述べた通りで、入力マスクによって設定することができる。この場合、音声合成部１４が加わったことにより、図５４に示すような種類からなっている。
【０１９２】
また、上述したようなメッセージ以外にも、エラーメッセージや音声出力レベルの設定メッセージ、音声合成部１４の内部情報にアクセスするメッセージなどさまざまなメッセージが設定可能である。
【０１９３】
音声合成部１４とメッセージ処理部１１との間もメッセージによって情報交換が行なわれる。この場合のメッセージは図５３の（ｃ）（ｄ）に示す種類がある。このうちの（ｄ）のメッセージ処理部１１から音声合成部１４へのメッセージは、（ａ）の応用プログラム２からメッセージ処理部１１への要求メッセージとほぼ同じであり、（ｃ）の音声合成部１４からメッセージ処理部１１へのメッセージは、（ｂ）のメッセージ処理部１１から応用プログラム２への通知メッセージとほぼ同じ種類のものを使うようにしている。
【０１９４】
以上、述べたように音声合成部１４を有する音声認識システム１の各部においてメッセージをやりとりすることによって、複数の応用プログラム２からの要求による音声出力処理が進められるが、次に、音声認識インターフェース全体としての処理の流れを図５６、５７に従って説明する。
【０１９５】
図５６では、既に第１実施例で述べた手続に従って応用プログラム２と音声認識システム１との接続処理と音声認識に関する初期設定をステップ６１０１で既に完了しているものとする。そして、ステップ６１０１の終了後、応用プログラム２は音声出力処理に関する初期設定を後述の図５７の（ａ）に従って行なう（ステップ６１０２）。初期設定としては、音声合成部１４における音声出力管理テーブル５６３の初期化、応用プログラム管理テーブル１３の音声出力優先度情報の初期化などがある。そして、音声入力および音声出力の処理を実行する（ステップ６１０３）。
【０１９６】
次に、応用プログラム２からの音声出力に関する要求ごとの音声出力処理について説明する。
【０１９７】
まず、図５７の（ｂ−１）の音声合成要求が応用プログラム２から出された場合、メッセージ処理部１１は要求をそのまま音声合成部１４へ音声合成要求として送る。そして、音声合成部１４は音声出力管理テーブル５６３へのメッセージの登録を行なう。音声合成要求は波形の再生処理を含まないため、例えば図５２の出力管理テーブルメッセージＩＤ＃１のように、出力ありなしの項は出力なし（＝０）となる。この場合、音声出力優先度情報は使われない。合成処理が終了後は、音声合成部１４は終了したことを音声出力状況通知によってメッセージ処理部１１へ通知し、メッセージ処理部１１はそれを応用プログラム２へ通知する。応用プログラム２はこの通知の後音声波形データ要求を出し、合成音声ごとに受け取る。
【０１９８】
次に、図５７の（ｂ−２）の波形再生要求があった場合、メッセージ処理部は図５５に示す応用プログラム管理テーブルに登録してある優先度情報を検索し、要求を行なった応用プログラムに関する情報を付加して音声合成部１４へ波形再生要求を行なう。
【０１９９】
音声合成部１４では、音声出力管理テーブルにメッセージの登録を行なうが、この場合は、例えば図５２のメッセージＩＤ＃０または＃４のような内容が登録される。波形再生終了後に音声合成部１４は、音声出力状況通知により、再生が終了したことをメッセージ処理部１１に送り、メッセージ処理部１１はそれを応用プログラム２へ送る。
【０２００】
次に、図５７の（ｂ−３）の音声合成再生要求があった場合は、波形再生の場合と同様な処理で音声の合成および再生の処理を行なう。
【０２０１】
また、図５７の（ｂ−４）の優先度設定要求によって音声出力優先度を変更することができる。音声出力優先度は先に述べたように、音声出力のレベル、音声合成処理の優先度、中断処理の有無等がある。出力音声のレベルを高くすれば、その出力メッセージに対する注意を引きつけるのに役立ち、音声合成処理の優先度を高くすれば、その音声データが音声合成後出力されるまでの時間遅れを小さくできる。又、中断処理は、特定の音声出力データ以外の音声出力を一時中断し、そのデータのみを出力する処理であり、これらを組み合わせて使用することにより、重要なメッセージを優先的に出力するなどの処理が可能である。
【０２０２】
例えば図５２では、メッセージＩＤ＃０の波形再生要求に対しては、出力レベル＝３、中断出力なし、合成処理優先度−（値なし）が設定されている。この場合、優先度の値は０〜１０の範囲で設定するようになっており、出力レベル３は、比較的小さい値である。又、中断出力なしのため、この波形データは他の音と重なって聞こえて来る。これに対し、＃２の音声合成・再生要求に対しては、出力レベルは最大の１０であり、かつ音声合成処理の優先度も最大であるため、合成音データが直ちに出力される。又、中断出力ありのため、この間に他の音は出力中断状態にある。この合成音を出力中は、他の音に邪魔されずに音を聞くことができる。
【０２０３】
次に、以上述べたような音声出力要求を順次処理する方法について説明する。
【０２０４】
複数の音声出力要求は音声合成部１４の音声出力管理テーブル５６３に従って処理を行なう。音声出力管理テーブル５６３には要求のあった順番に要求のＩＤ、入力データの種類（波形／テキスト）、要求受付時刻、データ内容、処理状態、音量、出力中断処理のあり／なし、音声合成処理の優先度、排他処理の係数、等が登録される。
【０２０５】
図５８に示すように、まず、全体制御部５６１は、音声出力管理テーブル５６３の処理状態の項を参照し（ステップ６３０１）、「未処理」となっているデータを探し、あれば処理状態を「処理中」に更新し（ステップ６３０２）、データの種類を参照する（ステップ６３０３）。そして、データがテキストであればテキストデータを波形合成部５６４へ送って音声合成を行い（ステップ６３０４）、合成音データを波形重畳部５６２へ渡し、波形データであればそのまま波形データを波形重畳部へ渡す（ステップ６３０５）。そして処理状態を「終了」に更新して（ステップ６３０６）、次の未処理データの処理を行なう。
【０２０６】
波形合成部５６４では、処理を行なっているデータに関する合成処理優先度情報をもとに、合成演算を行なう処理の他の処理に対する優先度を設定して演算を行なう。優先度の設定は、例えばワークステーションのオペレーティングシステムとして一般的であるＵＮＩＸのシステムコールを用い、合成プロセスに対する演算装置の割り当て時間を変更させたり、処理量の異なる複数の音声合成器を用意して優先度に応じて使う合成器を変えたりすることにより行なえる。
【０２０７】
波形重畳部５６２では、波形データと共に音量、出力中断処理のあり／なし、排他処理の係数などの情報に基づいて複数の波形を重畳する。重畳の際には、時刻と波形データのサンプルの対応を常に監視し、複数の音声出力要求の間の時間とそれらの要求に対応する複数の波形データの出力される間隔が、なるべく等しくなるようにしている。また、重畳の処理は単位時間、例えば１０ｍｓｅｃごとのブロック処理によって行なうことが可能である。
【０２０８】
次に、図５９により、中断処理のある音声データを重畳する際の例を説明する。この場合、データは図５２の音声出力管理テーブル５６３にあるデータＩＤ＃１〜３であり、簡単のため、登録から波形重畳までは時間遅れがないものとしたが、実際には用いる計算機の処理能力に応じて、音声合成やデータの移動による時間遅れがある。音声出力管理テーブル５６３に記録された時刻どおりで、かつ出力中断処理を行なわずに音声データを出力する場合には、図５９（ａ）のように、データどうしが時間的に重なっているため、緊急なメッセージであるデータ＃２の音声は、先頭部がデータ＃１の最後と、後半部がデータ＃３の前半部と重なって出力されることになる。これに対し、出力中断処理を行なう場合の（ｂ）では、データ＃２の「緊急です」が始まる時点でデータ＃１の重畳を中断し、＃２の処理終了後、＃１の中断された時点から残りを重畳することになる。又、データ＃３は、＃２が終了後に重畳される。データ＃１のように、中断処理によって時間的に分割されるデータは、上述のように分割したまま出力しても良いが、中断処理後にもう一度最初から出力し直したり、又、分割された後半部は出力しない、あるいは徐々に音量を下げて重畳するなど様々な処理が考えられる。
【０２０９】
（第１５実施例）
第１４実施例に記述したように、音声認識システムは、音声合成部１４を組み入れ、マルチタスク環境において、複数のタスクから音声認識および合成機能の利用を可能にすることで、ユーザが応用プログラム２を使用する際の使い勝手が向上する。本実施例においては、第１４実施例をふまえ、具体的なシステムの応用例として、音声メールツールについて音声合成機能を追加した際の効果を中心に述べる。
【０２１０】
図６０は、第１５実施例の概略構成を示しており、音声入出力システム６５１、ウィンドウシステム６５２、音声メールツール６５３から構成している。また、音声メールツール６５３は、電子メール処理部６５３１とメッセージ入出力部６５３２からなっている。
【０２１１】
この場合、音声入出力システム６５１は、第１４実施例に述べた、音声合成機能を持つシステムである。ウィンドウシステム６５２は、応用プログラムに関する情報をＧＵＩ（Graphical User Interface）を通じてユーザに提供する。そして、これら音声入出力システム６５１及びウィンドウシステム６５２を利用することで、音声メールツール６５３で、音声入力をマウスやキーボードと同様に扱え、音声合成をも統一的に扱えるようにしている。
【０２１２】
通常、音声メールシステムで送受信されるデータはテキストデータであるが、テキストデータだけではなく、音声データや画像データ等をメールの中に混在させることができる。音声データを含むメールを送受信するために、メールツールは生の音声データを録音・再生する機能が必要となる。
【０２１３】
応用プログラム２が生の音声データを扱えるようにするために、応用プログラム２と音声入出力システム６５１間で交わされるメッセージとして、図６１に示すものを追加する。これらのメッセージを利用して、メールツールが音声データを録音する手順を図６２の（ａ）に、再生する手順を図６２の（ｂ）に示している。また、今述べた音声の録音・再生機能を持つ音声メールツールの画面表示例を図６３に示す。この表示例は、上述した第１２実施例の図４８とほぼ同じ表示画面を持つ。ここでは、ツールのリスト表示部の行の先頭に＊印の付いたものがあるが、これは音声データを含むメール文書を識別する印である。受信メール表示部に、音声データ付メール文書の表示例を示す。メール文書中の音声データは、例えばボタン様の形式でユーザに提示する。
【０２１４】
図６３においては、緊急とラベル付けられたボタンが、音声データである。音声データをマウス等で指定し、マウスやキーや音声入力を使って再生する。音声データ付のボタンは、メールのテキスト中の任意の位置に任意の個数作成し、配置できる。
【０２１５】
メール中の音声データの録音・再生・編集は、図６４のような、音声データ編集用のサブウィンドウを用いて行なう。図の上部の２つのスライダーはそれぞれ音声データの入力・出力時のボリュームを設定するものである。その下のボタンは、それぞれ音声データの録音、再生、録音／再生の停止、音声データの編集、メールへの音声データの追加を行なうボタンである。編集ボタンには、カット、コピー、ペーストなどを行なう編集用のサブメニューが存在する。ボタン列の右端の「緊急」は、ユーザが任意に入れることのできる文字で、音声データ作成時に、ボタンのラベルとして表示される。図６４の下部が音声波形データを編集する所である。データをマウスを用いて選択し、音声入力を用いてカット、コピー、ペーストを行ったり、エコーをかけたり、ピッチを変化させたりなどの効果を音声データに加えることが可能である。また、音声データの編集やデータに対する効果の付加は、メールツールでなく、専用の音声データ編集ツールで行ってもよい。それを用いて音声を編集する際に、メールツールとの間で音声データの受け渡しを行う必要があるが、その受け渡しを音声入力を使ったカット＆ペーストによって行えば音声データに対する編集操作が簡単に行えるようになる。
【０２１６】
音声入力を使ったカット＆ペーストは、音声データに対してだけでなく、テキストやグラフィックなど様々な形態のデータに対して適用し、応用プログラム向けのデータの受け渡しに用いることができる。
【０２１７】
以上述べた機能を用いてメールの返事を出す場合には「返事」と発することにより読んだメールの全て、あるいは文面の一部などを自動的にコピーし、引用の印をそれぞれ付加し、さらに自分のサインと録音メッセージを自動的に付加して送信してしまうことにより、ほとんどのキーボードに手を触れずにメールの返事を出すことができる。その際、録音メッセージは、前もって録音してあるものを用いてもよいが、自動的に録音モードに入って「送信」が発声されたならば、自動的にその録音データを付加してメール送信を行ったりできる。例えば図６５は、送別会のお知らせに対する返信の文面の例である。この例では、８行目まで、送られてきたお知らせのメールのコピーに引用マーク（》）を付け、９〜１１行目に自分のサインと録音メッセージの印を付加するようにしている。
【０２１８】
また、図６４で示す音声データの録再・編集機能の一部または全部を図６６のように、受信メール表示部や、送信メール編集部に並べて配置することで、メール中の音声データに対する操作性が向上するとも考えられる。
【０２１９】
録音データはそのまま全部をメール用のデータとして用いてもよいが、データ中には言い澱みなどにより不要な無音部があり、必要以上にデータ量が多くなってしまうことがある。
【０２２０】
そのような場合、無音部を自動的に検出して一定の長さ、例えば１秒以上の無音部をカットすることも可能である。
【０２２１】
また、録音の際の利用者の動きにより、口とマイクロホン間の距離が変化して録音レベルが一定でなくなり、聞きずらいデータになってしまうことがある。
【０２２２】
そのような場合、録音データのパワーを調べて全体に亘ってレベルを均一にし、聞きやすくすることができる。レベルの均一化の処理は、ある単位ごと、例えば単語、文ごとのレベルを求め、最大のレベルを持つものに他を合わせるようにするなどにより実現可能である。
【０２２３】
また、データ全体あるいは上述の最大レベルが小さすぎたり、大きすぎたりした場合には、データ全体のレベルをそれに応じて変えることにより、聞き苦しくないようにできる。
【０２２４】
さて、本実施例のメールツールを使うことで、テキストと音声の混在したメール文書を読み上げることができる。
【０２２５】
図６３の受信メール部のメールを読み上げることとすると、
「田村殿」                                    （音声合成）
「先週の出張報告書を至急提出のこと」          （  〃    ）
（緊急ボタンの音声データを再生）
「沢田」                                      （音声合成）
と、このように、データの出現順に、データの種類に応じた処理（テキストデータは音声合成し、音声データはそのまま再生する）を行なうことで、テキスト以外のデータをも読み上げることができる。また、テキストデータだけの読み上げや、音声データだけの読み上げを可能にすることもユーザにとって有用になる。テキスト以外のデータ形式としては、音声以外のものでも、そのデータ形式に従った処理を行なえば良い（動画なら動画の再生を行なう）。
【０２２６】
メールの読み上げは、本文だけではなく、題や発信者や送受信の時間を示すメールのヘッダに関しても行なって良い。
【０２２７】
ここで、全てのメール文書に対して、同一の読み上げ方をする必要はない。例えば、メールアドレスと、合成音声の属性を図６７に示すようにデータベース化することによって、発信者毎にメール文書読み上げの際の音声の特徴を変化させることができる。図６７の設定では、Ｔａｍｕｒａ氏からのメールは、低くゆっくりと話す男性の声で、Ｎａｋａｙａｍａ氏からのメールは、高く早口の女性の声で、それ以外のメールは、標準的な声の高さを持つ男性の声で、標準的スピードにより読み上げられる。
【０２２８】
さらに、発信者情報だけではなく、１つの文書内の情報を使って合成部を変化させることが考えられる。例えば、引用符に囲まれた部分のみに関して、男女の性別を入れ替えるとか、声の高さや読み上げの速度を変化させることが可能である。
【０２２９】
また、メールの受信者が、合成音声によるメールの読み上げを行なうことを想定し、メール本文中のテキストに、音声合成用の制御コードを付加して、メールの読み上げ方を指定することが考えられる。制御コード交じりのメールの例を図７６に示す。
【０２３０】
この場合、＠＜…＞で囲まれた部分が、制御コードおよびその指定で読み上げられる部分である。ｍａｌｅ、５、５、９は、特に性別（男性）、声の高さ、速度、声の大きさを示し、ここでは、「絶対に遅れないように」の部分だけが、その他の部分よりも大きな声で読まれる。このように、メール本文中の部分に対し、音声合成の細かな設定を可能にすることで、メール中の重要な所を強調したり、文章の抑揚を変えたり、引用した言葉を本人に近い特徴の合成音声で読ませて変化をつけるといった事が可能となる。
【０２３１】
以上に述べたメールツールはマルチタスクの環境下で音声によって制御を行うことができるため、キーボードやマウスなどによって文書の作成やプログラム編集などを行いながら音声によってメールによって読むことができ便利である。
【０２３２】
なお、メールツールだけでなく、情報検索のためのツール、例えば英和、和英などの電子辞書や対訳辞書、類似表現、言い換えなどを引くための類似語辞書などのデータベースを本発明によるインターフェースにより音声で操作すれば、文書やメール作成中に調べたい単語などを音声による操作で引くことができるため、文書作成の中断を少なくできて便利である。
【０２３３】
メールの内容の確認を、表示によらず、音声読み上げを使って行なう際に、１つのメール全体を読み上げの対象とすることは、特に、大量のメールの中から所望のメール文書を検索する場合などには、効率が悪くなると考えられる。そこで、メールの読み上げの最中にメールツールに対するコマンドを発行可能にする。特に、そのコマンドは、音声入力によって行なえれば都合が良い。
【０２３４】
まず、読み上げモードを設け、メールを読み上げる際の単位を設定可能にしておく。読み上げモードには、全文、段落、文の３つのモードがある。図６３の右上の「読上」ボタンのとなりの「全文」の表示が読み上げモードを示す。「読上」ボタンにより、モードに従った音声合成を行なう。メール読み上げ時に使用する音声コマンドを、図６８に示す。
【０２３５】
ユーザは、モードを設定し、「読上」ボタンあるいは「読み上げ」と発声することにより、メールの読み上げを開始する。音声コマンド「ストップ」、「続行」により、読み上げの一時停止と再開を行なえる。「もう一度」は最後に読み上げた単位をもう一度読み上げる。「前の〜」および「次の〜」の「〜」は読み上げの単位であり、メールツールはコマンドに従ってモードを自動的に変更する。例えばモードが「全文」の時に「次の文」と入力すれば、モードは自動的に「文」に変わる。「次」および「前」は、「次の〜」および「前の〜」の省略表現であり、それらのコマンドで扱われる単位はモードとして現在設定されている単位である。「速く」「ゆっくり」は読み上げ速度の設定、「高く」「低く」は読み上げ合成音の声の高さ設定、「男性」「女性」は合成音声の性別の設定を行なう音声コマンドである。
【０２３６】
このように、メールの内容の音声による読み上げを可能にし、読み上げの制御を音声を使って行なうことで、マウスおよびキーボードのみを使って制御する時よりも、使い勝手が向上すると考えられる。特に、マルチウィンドウ環境において、聴覚と音声入力を音声メールツールの制御に使い、視覚とキー入力を別のタスク（例えばテキストエディタ）に使うことで、１人のユーザによる複数のタスクの同時制御が可能となる。
【０２３７】
音声合成機能は、メール文書の読み上げだけではなく、メールツールからユーザに対して提供されるメッセージにも利用可能である。例えば、マルチウィンドウ環境において、動作するメールツールがメッセージの出力に合成音声を利用する場合を考えてみる。まず、メールツールをその起動時にアイコン化しておく。メールツールが新規メールを受信すると、「××さんから新しいメールが届きました。未読分は全部で５通あります」といったメッセージを合成音声を使ってユーザに提供する。もちろんこのメッセージは、録音された音声データでも良いが、メッセージ文の変更し易さや、任意の数値データの読み上げを考えると、合成音声の方がメールツール等の応用プログラムの作成者にとっては都合が良い。新規メール受信通知のメッセージをいつも同じ様に出力するのではなく、例えば、メールに重要度を設定し、その重要度に従って音声メッセージを出力しなかったり、「××さんから緊急のメールが届きました」と、メッセージ文を変えたり、音声合成のパラメータを変更して声のトーンを変えることができる。メッセージとして、「サブジェクトは、会議通知です」と、メールの題についての情報を提供してもよい。このように、合成音声をメールツールのメッセージ出力に利用することで、ユーザは、メールツールを直接見ることなく、受信メールを読むか否かの決定ができる。
【０２３８】
新規メール受信のメッセージは、ユーザが計算機上で行なっている作業に割り込むメッセージであり、ユーザの作業に割り込んで欲しいか否かは、作業内容によりけりである。例えば、何らかのプログラムのデモンストレーション中には、メールに割り込んで欲しくないであろう。そこで作業の重要度を設定し、作業の重要度とメールの重要度を比較して、メールの重要度が作業の重要度以上なら音声メッセージを出力し、それに満たない場合は出力しない、といった事を行なう。作業の重要度は、作業環境全体に設定したり、個々のプログラムに設定したり、プログラム内のサブタスク毎に設定する事が考えられる。
【０２３９】
作業の重要度とメールの重要度を比較し、メールの受信の通知方法を決定するために、音声メールシステムを図６９に示す構成とする。メールシステム６９１は、メッセージ入出力部６９１１の介在によって、音声入出力システム６９２やウィンドウシステム６９３と接続されている。音声入出力システム６９２やウィンドウシステム６９３からのメッセージは、メッセージの内容に従い、メッセージ入出力部６９１１によってふりわけられ、そのメッセージを処理すべき所において処理が行なわれる。
【０２４０】
電子メール処理部６９１２は、外部の公衆回線やＬＡＮを通じ、電子メール文書の送受信や、受信したメールに対する処理を行なう。タスク重要度管理テーブル６９１３は、音声入出力システムに接続したすべての応用プログラムの作業の重要度を音声入出力システムから受け取り、管理する。このタスクの重要度と、受信したメールの重要度から、受信したメールをユーザに対してどのように知らせるかの役割も、電子メール処理部６９１２が担う。
【０２４１】
この機能を実現するために第１４実施例で述べた音声入出力システムの持つ応用プログラム管理テーブルを拡張し、項目として、タスク優先度を新たに設定する。図７０に拡張した応用プログラム管理テーブルを示す。ここでは、シェルツールのタスク優先度が「２」、ＤＴＰシステムのが「５」に設定されている。
【０２４２】
さらに、この応用プログラム管理テーブルに値を設定したり、値を読み取るためのメッセージとして、図７１に示すメッセージを新たに設ける。また、タスク優先度変更のたびにその通知をメールシステムが受け取れるようにするために、入力マスクとして、タスク優先度変更マスクを新たに設ける。
【０２４３】
メールシステムは、入力マスクとして、タスク優先度変更マスクと、入力タスク変更マスクを設定することにより、音声入出力システムに接続されているすべての応用プログラムのタスク優先度と、音声フォーカスの有無を得、図７２に示すようにその情報をタスク重要度管理テーブルに動的に反映することが可能である。電子メールの優先度は、例えば、”Ｐｒｅｆｅｒｅｎｃｅ：３”のようなヘッダ情報をメール文書に付加し、メール自体に重要度を設定することも可能であるし、発行者毎にメールの優先度を設定しても良い。メールシステムの電子メール処理部は、電子メールを受信するたびに図７３に示す処理を行なう。
【０２４４】
この場合、音声フォーカスが１つのタスクに当たっているか調べ（ステップ７８０１）、ＹＥＳならば音声フォーカスのあるタスクの優先度を選択し、ＮＯならば音声フォーカスの当たっているすべてのタスクの優先度の平均を選択する。例えば、その中で一番高い優先度を選択しても良い。そして、これらがメールの優先度より低いか調べ（ステップ７８０４）、ＹＥＳならば音声を使って通知し（ステップ７８０５）、ＮＯならば何も通知しない（ステップ７８０６）。この場合、アイコンの表示を変化させたり、動画像を用いたりといった様々な方法をユーザへのメールの受信通知に用いることができる。
【０２４５】
応用プログラムとして、メールシステム以外に、シェルツールとＤＴＰシステムが、音声入出力システムに接続している時の画面の表示例を図７４に示す。図７４（ａ）は、タスク重要度管理テーブルが図７２の状態の時の画面表示例である。ここで、重要度３を持つメールを受信したとすると、図７３に示した処理によればここで音声フォーカスの当たっているシェルツールの重要度が、メールの重要度より高い（小さい値ほど重要度が高いと見做す）ため、メールシステムはメールの受信をユーザに通知しない。これに対して、タスク重要度管理テーブルが図７５の状態にある（対応する画面表示例は図７４（ｂ））時に、先ほどと同様に、重要度３のメールを受信した際には、メールシステムは「新しいメールを受信しました」という音声出力を行ない、メールの受信をユーザに通知する。また、通知と同時にメールシステムは、自身に対して音声フォーカスを設定することによってユーザの作業に割り込み、ユーザにメールシステムを使わせることが可能である。
【０２４６】
このように、新規受信の通知などに関するメッセージを、メールの重要度や作業の重要度に従って変化させることで、ユーザの作業を疎外しない柔軟なインターフェースをユーザに提供できることになる。
【０２４７】
（第１６実施例）
第１５実施例におけるメール文書の読み上げ機能は、受信したメールの一部あるいは全部をその文面に対して何の変更も加えず、合成音声を使ってそのまま読み上げるものであった。この方法は、メール文書が少なく、おしなべて小さい場合には問題は少ないが、メールが多く、大きくなるに従い、その機能だけでは不十分である。
【０２４８】
図７７は、音声メールシステムの概略構成を示すもので、音声入出力システム８２１に接続される音声メールシステム８２２を電子メール処理部８２２１、文書要約部８２２２、メッセージ入出力部８２２３より構成している。この場合、図７８に示すように文書要約部８２２２を音声メールシステム８２２の外に設けるようにしてもよい。
【０２４９】
ここで、メールシステム８２２は、音声入出力システム８２１と接続してその音声入出力機能を用いる。電子メール処理部８２２１は、外部の公衆回線やＬＡＮを通じ、電子メール文書の送受信や、受信したメールに対する処理を行なう。文書要約部８２２２は、電子メールなどの文書を要約するシステムである。テキスト文を要約する技術としては、「石橋ほか、英文要約システム「ＤＩＥＴ」、情報処理学会第４８回全国大会、６Ｄ−９（１９８９）」や、「喜多、説明文を要約するシステム、情報処理学会自然言語処理研究会、６３−３（１９８７）」などが知られており、この技術を応用して、文書要約部を構成できる。
【０２５０】
文書要約部８２２２は、電子メール処理部８２２１から要約前のメール文書を受け取り、要約して返す。電子メール処理部８２２１は、受信したメールの重要度や、文書の長さや文書の内容などに従って、そのメール文書を要約するか否か、また、どのような要約を行なうかを決定し、要約方法の情報とともにメールを文書要約部にひきわたす。電子メール処理部８２２１は、メールを受信するたびに、例えば図７９に示すような処理を行ない、受信メールに対する要約方法を決定する。
【０２５１】
この場合、メールの重要度が「３」以上か判断し（ステップ８４０１）、「３」以上であれば要約しない（ステップ８４０２）。「３」以上出なければ、メール本分中に「至急」を含むか調べ（ステップ８４０３）、「至急」を含めば、さらに文書が長いか調べ（ステップ８４０４）、文書が長くなければ要約せず（ステップ８４０２）、文書が長ければ要約する（ステップ８４０５）。また、本分中に「至急」を含まなければ、先頭行だけを要約する（ステップ８４０６）。そして、メールに従った要約処理を行う（ステップ８４０７）。
【０２５２】
メールのような文書の場合、その内容が完結していなかったり、短すぎたりして、要約に適さないこともあると考えられるが、その場合には、短いメールに対しては、要約を行なわない（必要がない）こともできるし、完結していなくて要約に失敗したメール文書に対しては、例えば、最初や最後の数行を取り出して読み上げるようにすれば、すべてのメールに対して何らかの要約処理をほどこすことができるといえる。要約は、例えば、音声による「要約」コマンドの形でユーザが指示することによってもできるし、あるいは、メールシステムが、受信メールの全てを（あるいは長いものだけを）自動的に要約しておくことによってもできる。
【０２５３】
このように、音声メールツールがメール文書の要約機能を具えることで、メール文書処理の効率化をはかることができ、時に多忙なユーザや、大量のメールを処理する必要のあるユーザにとっては、便利である。
【０２５４】
（第１７実施例）
第１５および第１６実施例においては、音声入出力システムの提供する音声認識および合成機能の利用に関して、音声メールツールを使って述べた。
【０２５５】
これらは、ＧＵＩおよび音声出力を使ってユーザに情報を提供していたが、電話インターフェースなどの、ＧＵＩを利用できない環境において第１５および１６実施例で述べた機能はより有用である。本実施例では、ＧＵＩを利用しない電話を介した音声入出力インターフェースについて、音声メールシステムの例を使って述べる。
【０２５６】
図８０は第１７実施例の概略構成を示している。この場合、音声認識システム８５１に接続される音声メーメシステム８５２にメールアドレステーブル８５３を接続している。
【０２５７】
この場合、音声入出力システム８５１は電話回線に接続されるが、この電話回線との接続は、既存技術を使えば可能であり、ここでは述べない。電話からの音声メールシステム８５２への入力は、音声およびプッシュボタンにより行なえるとする。
【０２５８】
メールは個人情報であるため、電話でメールの内容を確認する前にあらかじめ個人情報の認証手続が必要である。これは電話のプッシュボタン等で行なうかパスワードの音声認識、あるいは話者照合技術により行なう。
【０２５９】
認証手続において利用者を確認した後、音声認識を利用して、メールへのアクセスを対話的に進める。ここで述べる音声メールシステム８５２は、第１５、１６実施例で述べた音声認識と音声合成の機能が全て利用できる。即ち、音声入力によって、音声メールの全部のあるいは部分のあるいは要約された内容の確認を行なうことができる。音声メールシステム８５２の操作は基本的に全て音声を使って行なう。従って、メール送信も音声により行なう。電話インターフェースでは、プッシュボタンを使ってメールの内容を入力するのは現実的ではないため、メールの内容自体も音声となる。音声によるメール文書の作成は、音声認識と音声の録音を同時に行なうことで可能となる。図８０の構成において、認識と録音を同時に行なうことは疎外されない。図８１に、音声を使ったメール文書作成の例を示す。場面設定は、受信したメールの内容を音声（合声／肉声）により確認した後、そのメールに対して返事を出す所である。
【０２６０】
まず、（１）のユーザの「録音開始」という音声を認識し、メールシステムは続くユーザの音声（２）の「○○です〜お伝え下さい」をメール文書として録音する。（２）の最後の「ストップ、ストップ」は、録音を停止する命令である。「ストップ」が繰り返されているのは、メール本文中の「ストップ」と、命令としての「ストップ」を区別するためである。「ストップ、ストップ」全体を認識対象語彙としても良い。メールシステムは「ストップ、ストップ」の区間を録音されたデータからカットする。ユーザは（３）の「内容確認」によりメール文書の内容（４）を確認し、（５）の「送信」によりメールを送信する。最後に（６）のメッセージにより、メールの送信を認識する。
【０２６１】
ここで、（２）でユーザがデータを録音する際に、音声認識システムの音声認識部の中の音声検出部に音声データの先頭を検出させれば、「録音開始」から本文の入力までの間に間があいても、その無音区間を録音せずに済む。
【０２６２】
また、録音終了を指定するための「ストップ、ストップ」などの単語の代わりに「送信」と発声し、「送信」を認識したならば、録音内容をメールデータとして自動的に送信してしまうこともできる。こうすれば、録音の停止を指定する「ストップ」の発声が不要になり、簡単にメールを送信できる。この時、送信したメールの内容は、「内容確認」などの発声により確認しなくとも、自動的に録音内容を再生することによって確認できる。
【０２６３】
また、「録音開始」後、１つの音声区間を録音するようにすると、「ストップ、ストップ」のような録音停止命令は不要となる。音声区間の終端は、例えば「３秒間無音であれば音声データの入力終了とみなす」のように、余裕をもたせた設定にすれば、ユーザが一息でメッセージを入力しなければならないというような制約が緩和される。
【０２６４】
このように、データとしての音声区間を検出するために、応用プログラムと音声認識システムとの間のメッセージとして、図８２のメッセージを追加する。この音声区間検出メッセージは往復メッセージであり、図８３に示すような手順でもって、音声区間のデータを入力音声から切り出すことができる。音声区間検出メッセージでは、パラメータとして、音声の終端を検出するための時間（例えば、３秒間無音区間が続いたら、その無音区間の前を音声区間とみなす）や、入力音声がない場合のタイムアウト指定（要求を発信してから３０秒たったら、音声区間は検出されなかったとみなす）ができる。
【０２６５】
また、メール文書の題は、ここで述べたように、受信メールに対して返事を出す際には、ＵＮＩＸメールでの表現でいえば、受信したメールの“ Subject :  hello “に対しては“ Subject : re: hello“のように、返事としての題を入れられるといえるが、電話口で新規にメールを作成する場合には、そのメールに題を付けられない。それを可能にするために、音声認識を組み合わせる。例を図８４に示す。
【０２６６】
この場合、ユーザの（１）「サブジェクト」という音声をメールシステムが認識すると、メールシステムは、サブジェクト入力モードになる。このモードでは、予め決められたサブジェクト（題）用の単語が認識対象語彙となる。例えば、「こんにちは」「お知らせ」「至急連絡下さい」「ごくろうさま」「会議通知」などが考えられる。図８４の例では、（２）「会議通知」を入力する。メールシステムは「会議通知」を認識すると、メール文書にテキスト“ Subject :会議通知“を挿入し（３）、（４）のような確認のメッセージを合成音声により行なう。
【０２６７】
サブジェクト入力モード時の認識結果をうけて行なうのは、メールの題の挿入だけではなく、例えば、定型的なメール文書の入力が可能である。図８５は、「ごくろうさま」という入力に対して、メールの本文として挿入される定型メールの例である。文書中の｛receiver｝と｛sender｝は、受信者、発信者の代入される変数を表している。この変数により、誰にでも同一の文面のメールを音声だけで送信できる。定型メールをデータベース化し、そのデータを音声で呼び出すことが可能であれば、便利であると考えられる。
【０２６８】
また、第１５実施例においては、メール文書中の任意の場所に音声データを追加・挿入可能としたが、サブジェクト入力モードにおいて、サブジェクト自体に音声データを付けることを可能とし、例えば、メールの受信と同時に音声サブジェクトを出力すれば、メールの発信者やメールの内容が受信者に伝わり易いと考えられる。もちろん、音声認識によるサブジェクトの挿入と音声サブジェクトの録音を同時に行なっても良い。
【０２６９】
受信メールに対する返事を送信するのではなく、電話口から送信先を指定するのには、音声認識を利用する。そのために、あらかじめ、学習機能を応用して単語登録を行ない、認識対語語彙とメールアドレスを結びつけておく。例えば図８６に示すような外観を持つアドレスブックをメールシステムに持たせ、図８７に示すメールアドレスの登録機能によって、メールアドレスと音声を結びつける。
この時の登録の手順は、
遙メールアドレスブック（図８６）を開く
遙登録用ウィンドウ（図８７）を開きメールアドレスの新規登録を開始する。
遙名前とアドレスをキーボードで入力する。
遙学習に必要な回数（数回〜数十回）、新しい単語（この例では鈴木）
を発声する。
遙ＯＫボタンを押し、登録を完了する。
【０２７０】
このようにして、認識対語語彙（鈴木）と、メールアドレス（Ｓｕｚｕｋｉ＠ａａａ，ｂｂｂ，ｃｃｃ，ｃｏ．ｊｐ）とを結びつけておき、電話口で利用する。例えば、図８８の手順で行なう。まず（１）でユーザが「送信先」と発声し、認識されると、メールシステムは、（２）のメッセージを音声出力し、ユーザに確認をとる。（３）では図Ａ、Ｂなどによって登録された語彙が認識対象となっており、この例では、「鈴木」が認識されると、メール文書中にｔｏ：Ｓｕｚｕｋｉ＠ａａａ，ｂｂｂ，ｃｃｃ，ｃｏ．ｊｐが挿入される。
【０２７１】
（４）（５）はメールアドレスの認識の様子を示している。（４）の「鈴木」の音声のように、例えば図８７における登録の際に利用した音声の１つを自動的に録音しておき、認識の確認に使うことができる。
【０２７２】
（４）の「Ｓｕｚｕｋｉ＠…」は、合成音声によるアルファベット読み下しを使って確認を行なう例である。
【０２７３】
この方法では、音声によるメールアドレスの指定は、予め登録したものにしか適用できないが、次に述べるように、予め登録しているメールアドレスを音声を使って指定することができる。そのためにまず、ユーザが過去に受け取ったメールから、自動的にメールアドレスのデータベースを作成する機能を付ける。メールアドレスは、ＵＮＩＸメールにおいては、メールのヘッダとして入っており、そこからデータベースを作成するのは困難ではない。メールアドレスの構成は、例えば、
ユーザ名＠部課名、組織名、組織区分、国の区分
のような構成になっており、メールアドレスの逆順（国→ユーザ名）にツリー状の階層構造を持つデータベースが作成できる。
【０２７４】
メールシステムは、国の区分から順に、図８９のように合成音声による読み上げを用いて、メールアドレスを順にたどっていく。図８９の例において、あやまったノード（メールアドレスを順にたどった際の節）を選択した際は「取り消し」などの語彙をもって、１つ前の（上位の）ノードに戻ったり、「取り止め」などの語彙をもって、アドレスの入力を取り止めたりできる。また、任意のノードに認識対語語彙を予め結びつけておき、例えば、会社名を発声することで、その会社のメールアドレスノードまで、一時に移動することもできる。
【０２７５】
このような方法をとれば、過去にメールをくれた人に対してならば、音声をつかってそのメールアドレスを指定することが可能となる。
【０２７６】
また、単語単位の認識辞書が不要な音韻認識をベースとした音声認識システムが広く研究されているが、これを用いることにより過去に届いたメール中に該当するアドレスがない場合でも、音声によってアドレスを入力し、メールを転送することが可能である。
【０２７７】
（第１８実施例）
本発明の第１実施例や第１４実施例で述べた音声認識インターフェースでは、音声認識システムあるいは音声入出力システム専用に開発した応用プログラムを対象として、音声認識や音声合成のサービスを提供するものであった。本実施例では、上記のような専用プログラムに対する音声による制御に加えて、前記音声認識システムあるいは音声入出力システムと直接メッセージをやり取りすることのできないような任意の応用プログラムに対する音声による制御を可能とする拡張を前記音声認識インターフェースに施すものである。これによって、音声認識の応用分野とユーザの拡大を図ることができる。本実施例では、第１４実施例に上記拡張を施した例を説明するが、同様の拡張を第１実施例に施すことが可能であることは明らかである。
【０２７８】
以下、本実施例について説明する。
図９０は、本実施例の音声入出力インターフェースの全体構成であり、第１４実施例で述べたものと同一の音声入出力システム１と、そのメッセージ処理部１１（図示せず）に応用プログラムとして接続された音声インターフェース管理システム（以下、ＳＩＭと呼ぶ）１０４からなる。
【０２７９】
汎用応用プログラム（以下、ＧＡＰと呼ぶ）１０３は、音声入出力システム１と直接接続されていない応用プログラムであり、音声入出力システム１とは全く独立して動作可能なプログラムである。これに対して、専用応用プログラム（以下、ＳＡＰと呼ぶ）１０２は、音声入出力システム１と直接接続して動作するものである。
【０２８０】
ＳＩＭ１０４は、ＳＡＰの一つであり、音声入出力システム１とＧＡＰ１０３との仲立ちをして、ＧＡＰ１０３に対する音声による操作を可能にする応用プログラムである。音声フォーカスの表示も、ＳＩＭ１０４が行なう。なお、ＳＡＰ１０２は、図５０の応用プログラム２に対応するものである。ＳＡＰおよびＧＡＰは、１つの音声入出力システムに対してそれぞれ複数個存在することが可能である。
【０２８１】
次に、ＳＩＭ１０４による、ＧＡＰ１０３に対する操作について説明する。ＧＡＰ１０３は、ＳＡＰ１０２と異なり音声入出力システムと直接接続されてはおらず、ＧＡＰ１０３が受け付けられる入力は、音声以外のキーボードやマウスといった入力装置からのものである。従って、ＳＩＭ１０４は、音声によるＧＡＰ１０３の操作を実現するために、音声入力をＧＡＰ１０３の受理できる形の入力、例えばキーボード入力やマウス入力等に変換する。
本実施例では、ＳＩＭ１０４は、図９０に示すように、音声インターフェース管理部１４１、プログラム操作登録部１４２、メッセージ変換部１４３から構成される。音声インターフェース管理部１４１内には、応用プログラムごとの音声認識結果と操作との対応表が設けられており、この対応表（以下、音声インターフェース管理テーブルと言う）の情報は、プログラム操作登録部１４２によって登録される。前記メッセージ処理部１１と直接接続されるメッセージ変換部１４３は、音声入出力システム１とのメッセージのやり取りを行なう機能、つまり図６のメッセージ入出力部２１の機能を包含するものであり、認識結果を受信した際に、音声インターフェース管理テーブルを参照して、該認識結果をＧＡＰ１０３に対する操作コマンドに変換し、ＧＡＰ１０３に送信する。
【０２８２】
ＳＩＭ１０４からＧＡＰ１０３に操作コマンドを送るには、ＧＡＰ１０３自身が他のアプリケーションからの操作の手段を提供していなければならない。
【０２８３】
ウインドウシステムを利用したアプリケーションであれば、ＳＩＭ１０４はウインドウシステムを介して、そのＧＡＰ１０３へキーやマウスなどの入力デバイスによる操作コマンドの入力時に発生するのと同じメッセージをＧＡＰ１０３に送る。このようなメッセージ送信の方法はＸウインドウシステムなどの各ウインドウシステムの提供するライブラリにある機能で容易に実装できる。実際、ウイドウシステムでは、メッセージの送付先がＧＡＰ１０３そのものではなく、ＧＡＰ１０３の中で生成したウインドウなどのオブジェクトの場合もある。メッセージ送信時に、そのオブジェクトの識別子である必要があるケースもあるが、後述するプログラム操作登録の内容や、ウインドウシステムに問合せて識別子の情報から、送り先のオブジェクトの識別子を決定することは容易である。
【０２８４】
次に、具体例をあげて説明する。図９１に示すように、１つの音声入出力システム１に対して、音声インターフェース管理システム１０４とメールツール１２０が直接接続して動作し、また音声入出力システム１と直接接続できないＧＡＰであるシェルツール１３０とエディタ１３１が並行して動作しているとする。このときの画面表示は、例えば図９２のように行なえる。
【０２８５】
この場合のＳＩＭ１０４の音声インターフェース管理テーブルの一例を図９３に示す。この表における“プログラム名”は、認識対象語彙であり、ユーザがプログラム名を発声することで応用プログラムに対する疑似音声フォーカスを切り換えることができる。“応用プログラム”は、応用プログラム自体の識別子であると共に、コマンドの送信対象を表す。
【０２８６】
上記の疑似音声フォーカスは、応用プログラムに対して疑似的に設けた音声フォーカスである。ＧＡＰは音声入出力システム１と直接接続しておらず、従って、音声入出力システム１はＧＡＰの存在を関知しないため、ＧＡＰに対して本当の音声フォーカスは設定されない。ＳＩＭ１０４は、「シェルツール」や「エディタ」等、ＧＡＰの名前を認識結果として受け取ると、そのプログラムについて定義されているコマンド名を認識対象語彙とする設定要求を、音声入出力システムに対して行なう（例えば、「シェルツール」の場合、「エルエス」や「プロセス」）。そして、図１２や図１９等で示したような音声フォーカスの表示をそのプログラムに対して行なう。
【０２８７】
図９４に示すように、ＧＡＰ１０３に関係する真の音声フォーカスはＳＩＭ１０４に設定され、実際に画面に表示されるのは疑似音声フォーカスである。ＳＩＭ１０４が、プログラム名の認識をきっかけにして、認識のコンテキストを切り換えるのである。なお、メールツールにみるように、ＳＡＰの疑似音声フォーカスと真の音声フォーカスは合致する。
【０２８８】
ＳＩＭおよびＧＡＰのコマンド名の属性は、ＳＩＭに対してローカルである。すなわち、ＳＩＭに音声フォーカスが設定されているときに認識対象となる。ＳＡＰにコマンドを送信する際、ＳＩＭ１０４に音声フォーカスが設定されない状態であるため、ＳＡＰ１０２に関するコマンド名は、グローバル属性を持つ。例えば、図９３のメールツールのコマンド名「終了」の属性がグローバルである。なお、図９３で、ローカル，グローバルといった認識対象語彙の属性は、プログラム名および認識対象語彙の欄の括弧内に示されている。属性値は、“０”がローカル、“１”がグローバルである。
【０２８９】
このようなメッセージ変換部１４３の処理手順の一例を図９５に示す。すなわち、音声入出力システム１のメッセージ処理部１１から受信した認識結果がプログラム名である場合、直前の疑似フォーカスに関するコマンド名を認識対象からはずし（ステップ９００３）、認識したプログラム名を持つ応用プログラムに疑似フォーカスを設定し（ステップ９００４）、その応用プログラムのコマンド名を認識対象として設定（追加）する（ステップ９００５）。
【０２９０】
一方、受信した認識結果がプログラム名でない場合（ステップ９００２）、コマンド名に対応するコマンドを、疑似フォーカスの設定されている応用プログラムに送信する（ステップ９００６）。
【０２９１】
以上述べたように、本実施例のような構成をとることにより、既に存在する音声入力（認識）を用いない応用プログラム（ＧＡＰ）に対しても、音声認識の利用が可能となり、ユーザの拡大と使い勝手の向上が実現できる。
【０２９２】
（第１９実施例）
ウィンドウベースのＧＵＩ（グラフィカル・ユーザ・インターフェース）を持つシステム下では、１つのプログラムを複数のウィンドウを使って構成することができる。本実施例では、上記第１８実施例をもとに、複数のウィンドウを持つ応用プログラムの個々のウィンドウに対する音声入力を可能にするべく、システムを拡張した例を説明する。これにより、よりきめ細かい音声認識の利用が可能となり、操作性が向上する。
【０２９３】
これまで説明してきた実施例においては、音声入出力システム１によって音声フォーカスが設定可能な単位は、“応用プログラム”であったが、本実施例では、その単位を“音声ウィンドウ”とする。音声ウィンドウは、応用プログラム中に複数個作成可能であり、個々の音声ウィンドウは、音声ウィンドウ名、入力マスク、および認識対象語彙セットを持つ。
【０２９４】
図９６が、実施例１４（図５０参照）で説明した音声入出力システム１を拡張して、音声ウィンドウを扱えるようにしたものである。ここで、図９６の応用プログラム管理テーブル１３は、後述するように拡張する。また、応用プログラム２に音声ウィンドウ２３が加わっているが、音声ウィンドウ２３の実体は、音声入出力システム１の応用プログラム管理テーブル１３中に存在する。
【０２９５】
以下、具体例をあげて説明する。第１８実施例と同様に、応用プログラムとして、ＳＩＭ（１０４）、シェルツール、エディタ、およびメールツールの４つが動作しているとする。このうち、ＳＩＭとメールツールはＳＡＰであり、シェルツールとエディタはＧＡＰである。図９７のように、シェルツールとエディタをそれぞれ２つのウィンドウから構成し、それ以外を１つのウィンドウから構成したとする。この場合の音声入出力インターフェース全体の構成を図９８に示す。専用プログラム（ＳＡＰ）であるメールツール１２０は、自分用の音声ウィンドウ２２３を持ち、ＳＩＭ１０４は、自分用の音声ウィンドウ０（１４４0 ）に加えて、汎用プログラム用の音声ウィンドウ１〜４（１４４1 〜１４４4 ）を持つ。この音声ウィンドウは、図９７に示すようないわゆるウィンドウシステム（図示せず）やＯＳ（図示せず）におけるウィンドウとは異なり、ビジュアルな属性を持たないものである。ウィンドウシステムのウィンドウは、通常、ツリー構造を持ち、その構造やウィンドウシステムの内部状態の変化を応用プログラム内部から知ることができる。ＳＩＭ１０４は、そのようなウィンドウシステムの情報と、音声入出力システム１の情報にアクセスし、ウィンドウと音声ウィンドウとを結びつけて協調的に動作させ、統一的なユーザインターフェースを提供する。ウィンドウと音声ウィンドウとの結び付けは、両者にウィンドウ名などの一意かつ同一の属性を付与したり、プログラム操作登録部１４２で対話的に行なうことで可能である。
【０２９６】
音声ウィンドウはその属性として、ウィンドウ名、認識対象語彙、入力マスク等を持ち、音声入出力システム１はこの音声ウィンドウ単位で音声フォーカスの設定を行なう。ウィンドウ名やコマンド名などの認識対象語彙の属性として、ローカル、グローバルに加え、ウィンドウを設ける。ローカル属性を持つ語彙は、それが属する音声ウィンドウに音声フォーカスが設定されている時に認識対象となる。グローバル属性を持つ語彙は、音声フォーカスがどこに設定されていようと常に認識対象となる。ウィンドウ属性を持つ語彙は、それが属する音声ウィンドウに音声フォーカスが設定されていなくとも、その音声ウィンドウと同じ応用プログラムに属する音声ウィンドウに音声フォーカスが設定されている時に認識対象となる。
【０２９７】
また、複数の音声ウィンドウをグループ化して認識語彙を混合し、認識結果に応じて自動的にその認識語彙の属する音声ウィンドウへ結果を送信することもできる。例えば、応用プログラム管理テーブルが図１０２の状態の場合に、シェルツールとエディタをグループ化してエルエス、プロセス、カット、コピー、ペーストを１度に認識し、エルエスまたはプロセスが認識された場合はシェルツールへ認識結果を送り、カット、コピー、またはペーストが認識された場合にはエディタへ認識結果を送るようにする。
【０２９８】
これにより、シェルツールとエディタの間の音声フォーカスの移動を省略して効率的に両者の作業を行うことができる。複数の音声ウィンドウの語彙の中にも同じものがある場合には、それを語彙として持つ複数の音声ウィンドウへ同時に認識結果を送信しても良いし、音声フォーカスの当たっている音声ウィンドウを優先させることにしても良い。なお、グループ化は、図１０２の応用プログラム管理テーブルのグループ化ＩＤの属性により、行うかどうかを決めることができる。
【０２９９】
また、音声ウィンドウのグループ化の一方法として、音声ウィンドウに親子関係を導入し、親ウィンドウと子ウィンドウをグループ化して両者の語彙を同時に認識することもできる。例えば、応用プログラム管理テーブルが図１０２の状態の場合に、シェルツールの設定ウィンドウに関して、その親のシェルツールウィンドウと設定ウィンドウをグループ化する。そして、設定ウィンドウに音声フォーカスが当たったときに両者の混合した語彙によって認識を行う。
【０３００】
これにより、子音声ウィンドウに音声フォーカスが当たっている場合に、音声フォーカスの移動を省略してその親ウィンドウへの音声入力を行うことができ、作業が効率化できる。なお、親ウィンドウと子ウィンドウで同じ語彙を持つ場合には、音声フォーカスの当たっている子ウィンドウに優先して認識結果を送るようにできる。
【０３０１】
図９８の状態の時、ＳＩＭ１０４の音声インターフェース管理部１４１内の音声インターフェース管理テーブルは、図９９のようになる。図９３のテーブルにウィンドウＩＤを加え、プログラム名の替りにウィンドウ名を追加した形である。ウィンドウＩＤとは、ウィンドウシステムにおけるウィンドウの識別子である（図９７参照）。図９９に示すように、ウィンドウＩＤと音声ウィンドウＩＤとは一対一に対応しており、この表を用いてＳＩＭ１０４はウィンドウと音声ウィンドウとを連動させる。例えば、この例でいうと「シェルツール」を認識したならば、ＳＩＭ１０４はＩＤ＝１の音声ウィンドウに音声フォーカスを設定し、ＩＤ＝１０１のウィンドウの表示を図１９に示したように音声フォーカスの設定された状態にする。
【０３０２】
ウィンドウシステムやＯＳによっては、他の応用プログラムウィンドウの表示を変更できない場合があるが、そのときには図１００の斜線部ｗ１で示すような形で独立した別のウィンドウを他の応用プログラムのウィンドウに貼り付け、音声フォーカスの所在を示す。この外付けウィンドウの表示の例を図１０１に示す。図のように、応用プログラムの上部に音声フォーカスを示す表示（ウィンドウ）が示される。なお、このウィンドウの位置は、音声フォーカスが明示できればどこでも良く、また数もいくつでも良い。また、静止画だけでなく、動画像を使うことで、音声フォーカスの位置がより分かり易くなる。
【０３０３】
ここで、図１８で示した音声入出力システム１の応用プログラム管理テーブル１３は、図１０２に示すように拡張される。新たな欄として音声ウィンドウＩＤおよびウィンドウ名が付加されている。音声ウィンドウＩＤは、音声フォーカスの設定されている音声ウィンドウの識別子であり、ウィンドウ名はその名前である。ローカル，グローバルといった認識対象語彙の属性は、ウィンドウ名および認識対象語彙の欄の括弧内に示されている。属性値は、“０”がローカル、“２”がグローバル、“１”がウィンドウである。音声入出力インターフェース１の構成が図９８である場合の音声入出力システム１の応用プログラム管理テーブル１３は図１０２に示す状態にあり、音声インターフェース管理システム１０４の音声インターフェース管理テーブルが図９９に示す状態にある。この時、疑似音声フォーカスによって、ユーザには、音声フォーカスが“シェルツール”（ウィンドウＩＤ＝１０１）に設定されているように見えている。一方、真の音声フォーカスは、ウィンドウ（ＩＤ＝１０１）と対応付けられた所の音声ウィンドウ（ＩＤ＝１）に設定されており、その音声ウィンドウは、ＳＩＭ１０４に属している。例えば、この状態で認識可能な語彙は、「エルエス」、「プロセス」、「シェルツール」、「エディタ」、「メールツール」、「システム」、および「設定」である。
【０３０４】
上記構成において、音声入出力システム１が認識処理を行い、その認識結果が、それぞれの語彙が設定されている音声ウィンドウに送られる。図１０３に、この認識処理の手順の一例を示す。
【０３０５】
まず、ウィンドウ（０）について、音声フォーカスが設定されている場合、当該ウィンドウ（０）に設定されている語彙を認識語彙リストに追加する（ステップ９１０３）。一方、音声フォーカスが設定されていない場合、当該ウィンドウ（０）が音声フォーカスの設定されている音声ウィンドウと同じ応用プログラムに属すときは、当該ウィンドウ（０）の語彙のうち属性値が“１”であるものを認識語彙リストに追加し（ステップ９１０５）、属しないときは、当該ウィンドウ（０）の語彙のうち属性値が“２”であるものを認識語彙リストに追加する（ステップ９１０６）。
【０３０６】
以上の処理を、ウィンドウ（１）をはじめとする他の全ウィンドウについて行う。
【０３０７】
そして、認識処理を行い（ステップ９１０８）、第１位の認識結果がウィンドウ名である場合、第１位の語彙が設定されていたウィンドウに音声フォーカスを設定し（ステップ９１１０）、ウィンドウ名でない場合、第１位の語彙が設定されていたウィンドウに上記認識結果を送信する（ステップ９１１１）。
【０３０８】
例えば、図１０２において、認識可能な語彙の１つである「設定」の設定されている音声ウィンドウは２つ（ＩＤ＝２とＩＤ＝４）あるが、それぞれの語彙の属性が“１”（＝ウィンドウ）であることから、ここで認識した結果「設定」は、音声ウィンドウＩＤ＝２に送られる。これに対して、音声フォーカスが音声ウィンドウＩＤ＝３に設定されている場合に認識された「設定」は、音声ウィンドウＩＤ＝４に送られる。ウィンドウ名を認識した際に音声入出力システム１の動作としては、単に認識結果をウィンドウ名の属する音声ウィンドウに送ることもできるし、送らずに音声フォーカスをその音声ウィンドウに設定することもできる。
【０３０９】
このように、認識対象語彙にウィンドウ属性を持たせることで、複数の応用プログラムのウィンドウに同一の名前を付け、操作することが可能となる。本実施例により音声認識インターフェースとしての使い勝手が大幅に向上する。
【０３１０】
（第２０実施例）
第１８実施例および第１９実施例で述べたように、音声認識システムからの音声メッセージを音声インターフェース管理システム１０４によって音声メッセージを変換して送信することにより、音声入出力インターフェースと直接通信する手段を持たない既存の応用プログラムに対しても、音声入力を行なうことが可能になった。
【０３１１】
既存の応用プログラムに本発明の音声入出力インターフェースを適用する場合には、既存のプログラムの操作と、それを行うための語彙との対応を、音声入出力インターフェース専用の応用プログラムとは別個にとる必要がある。この実施例では、“語彙”と“プログラムの操作”との対応をとるためのプログラム操作の登録について説明する。
【０３１２】
プログラム操作の登録では、音声フォーカスを目的の応用プログラムに移動させるのに用いるプログラム名またはウィンドウ名の登録と、既存の応用プログラムの操作を行なうためのキー入力またはマウス入力イベントの系列と語彙との対応づけを行なう。例えば、シェルツールのウィンドウを２つ使う場合には、ウィンドウ名として「シェル１」、「シェル２」と付け、シェルツールの中で行なう操作、例えば画面上の文字を全部消去するクリア（clear ）コマンドを行なうためのキー入力系列に対し「クリア」という単語を割り当て、登録する。
【０３１３】
通常、一般の応用プログラムは、そのプログラムが表示しているウィンドウのウィンドウ名を持っていないため、名前でウィンドウを指定するためには、ウィンドウに名前を付け、音声インターフェース管理テーブルからウィンドウ名で対象ウィンドウを識別できるようにすることが必要である。このため、第１９実施例の図９９に示すように、音声インターフェース管理テーブルに、ウィンドウシステムにおけるウィンドウ識別子であるウィンドウＩＤとウィンドウ名とを格納するフィールドを持たせている。このテーブルにより、音声インターフェース管理部１４１は、例えば「エデイタ」が認識結果として送られて来た場合には、ウィンドウＩＤ１０３を持つウィンドウに対して疑似音声フォーカスを設定する。上述のウィンドウＩＤは、ウィンドウシステム（図示せず）の持つ情報にアクセスすることにより得られる。例えば、ウィンドウシステムのサーバー（図示せず）に、ウィンドウ構造に関する情報を問い合わせることにより得ることができるが、ウィンドウ名も同時に得られるとは限らない。ウィンドウＩＤとウィンドウ名を同時に得るにはウィンドウ名を指定してプログラムを起動する方法があるが、既に動作中のプログラムが別のウィンドウを新たに生成するポップアップウィンドウのような場合には、起動前から名前を付けることは困難である。そのような場合には、マウスでウィンドウをクリックすることによって、そのウィンドウのウィンドウＩＤを獲得し、そのウィンドウＩＤにウィンドウ名を対応させるという方法でウィンドウ名を付けることができる。マウスがクリックされたウィンドウのＩＤは、ウィンドウシステムのサーバーに問い合わせることで容易に得られる。
【０３１４】
次に、ウィンドウへの名前付けとプログラム操作の登録方法について以下に説明する。
図１０４は、前記プログラム操作登録部１４２の構成である。このプログラム操作登録部１４２は、登録内容の画面への表示とユーザからの入力を行なうプログラム操作表示編集部１５１と、登録内容をファイル２００に保存する登録内容保存部１５２と、ウィンドウシステムからウィンドウＩＤを取得するウィンドウＩＤ取得部１５３からなる。
【０３１５】
プログラム操作表示編集部１５１は、例えば図１０５のような登録画面を表示してウィンドウ名やプログラム操作、単語名などの入力を行ない、前記音声インターフェース管理部１４１内の音声インターフェース管理テーブルに登録内容を書き込む。登録内容保存部１５２は、プロクラム操作の登録内容をファイル２００に保存する。ウィンドウＩＤの取得は、ウィンドウシステムのサーバーに問い合わせることにより容易に行なえる。
【０３１６】
図１０５の登録画面は、プログラム操作登録内容を音声インターフェース管理テーブルに書き込む「登録」ボタン、入力内容を取り消して入力前の状態に戻すための「取り消し」ボタン、登録を終了するための「終了」ボタン、対象とする一般応用プログラムのウィンドウＩＤを取得するための「ウィンドウＩＤ取得」ボタン、応用プログラムの種類を入力する「応用プログラムクラス」（ＡＰクラス）ウィンドウ、ウィンドウ名を入力する「ウィンドウ名」ウィンドウ、および語彙とそれに対応したプログラム操作を表すキー入力系列またはマウス入力系列を入力するプログラム操作入力ウィンドウからなる。
【０３１７】
図１０５では、応用プログラムクラスとして「シェル」、シェルのウィンドウ名として「シェル１」が選択され、背景色が反転しており、シェル１に対する操作として単語「エルエス」と「クリア」に相当するキー入力操作と、それらの語彙のスコープとしてローカル（０）が、編集用ウィンドウに入力された状態を示している。
【０３１８】
次に、プログラム操作の登録手順について図１０６を用いて説明する。プログラム操作登録部１４２は、メッセージ変換部１４３から起動され、まず、プログラム操作登録内容を保存した登録内容ファイル２００から登録内容を読み出し（ステップ９２０１）、画面表示を行ないユーザの入力待ちの状態（ステップ９２０２）になる。
【０３１９】
ここで、ユーザが、ＡＰクラス、ウィンドウ名、語彙、プログラム操作などの入力、あるいは、登録ボタン、取り消しボタン、終了ボタン、ウィンドウＩＤ取得ボタン等の入力を行なう。
【０３２０】
入力が登録ボタンであった場合には（ステップ９２０３）、画面に表示されている編集結果を保存ファイル２００へ保存し、更に音声インターフェース管理テーブル１４１へ書き込んで登録内容を音声入出力インターフェースの動作に反映させる（ステップ９２０４）。
【０３２１】
入力が取り消しボタンであった場合には（ステップ９２０５）、再度、保存ファイル２００から登録内容を読み込んで表示し、入力待ちの状態に戻る（ステップ９２０２）。
【０３２２】
入力が既に登録済みの応用プログラムクラス（ＡＰクラス）であった場合（ステップ９２０６）選択されたＡＰクラスのウィンドウ名の一覧と語彙、プログラム操作を画面表示し（ステップ９２０７）、入力待ちの状態に戻る（ステップ９２０２）。
【０３２３】
入力がウィンドウＩＤ取得ボタンであった場合（ステップ９２０８）、まず、ウィンドウ名が選択されているか判別し（ステップ９２０９）、選択されていない場合には入力待ちに戻り（ステップ９２０２）、選択されている場合にはマウスでウィンドウがクリックされるのを待ち、クリックされたウィンドウのＩＤを取得して、図９９に示すような音声インターフェース管理テーブルに選択されているウィンドウ名とウィンドウＩＤを書き込む（ステップ９２１０）。
【０３２４】
入力が終了ボタンである場合（ステップ９２１１）には、画面表示内容の内容の音声インターフェース管理テーブルへの書き込みとファイル２００への保存を行なって（ステップ９２１２）、登録を終了する。
【０３２５】
以上述べたように、プログラム操作登録の際、応用プログラムの種類を指定することにより、同一のプログラム操作を入力せずに、自動的に指定することが可能になり、登録が効率的に行なえるようになる。
【０３２６】
また、名前を指定して起動することが困難な応用プログラムのウィンドウに対しても、マウスのクリックされたウィンドウのＩＤを取得してウィンドウ名と結び付けるようにすることにより、容易にウィンドウ名を付けて音声入力を行なえるようになる。
【０３２７】
上述の登録の例では、すでに生成されているウインドウのＩＤを利用して、操作コマンドと認識結果の対応をとっていたが、一般にウインドウ等のオブジェクトＩＤは生成時に決定され、同じ種類のアプリケーションであっても異なるＩＤが付与される。したがって、登録時にウインドウ階層やウインドウ名など、同じ種類のアプリケーションで共通のウインドウ属性値をウインドウシステムに問い合わせて登録内容に付加しておけば、これらの属性値を照合することによって同種のアプリケーションで共通に登録内容を反映させることができる。
【０３２８】
さらに、この登録時に、登録対象のアプリケーションに複数のウインドウ名を登録しておくことによって、同じ種類のアプリケーションが起動された時に（既に使われいる音声ウインドウ名を音声認識システムに問合わせて）使われていないウインドウ名を起動されたアプリケーションの音声ウインドウ名として利用すれば音声ウインドウ名の衝突を避けることができる。
【０３２９】
（第２１実施例）
次に、音声入出力インターフェースにおいて音声の認識を行なうための認識辞書の編集機能に関する実施例について説明する。
【０３３０】
図１０７は、辞書編集部１４４を持つ音声インターフェース管理システム１０４の構成である。辞書編集部１４４は、メッセージ変換部１４３から起動され、編集を終了すると終了メッセージをメッセージ変換部１４３へ返す。この終了メッセージを受けて音声インターフェース管理部１４１は、音声入出力システム１へ、編集した後の新しい辞書のロード命令を出すことができる。
【０３３１】
ここで、図１０８は、認識辞書の構成の例である。認識辞書には単語ごとに、パターンマッチング用のテンプレートの他、単語名や単語ＩＤ、あるいは認識パラメータ等のデータがヘッダに格納されている。これらのデータの内容を表示し、編集する機能を備えることにより、使わない単語の辞書を削除して辞書に要する実行時のメモリ量を減らしたり、単語名やＩＤを付け替えたりすることが容易に行なえるようになる。
【０３３２】
次に、辞書編集部１４４の構成について説明する。辞書編集部１４４は、図１０９に示すように、辞書内容を表示してユーザが編集を行なえるようにする辞書内容表示編集部４４１と、辞書内容のチェックや検索を行なう辞書内容検索部４４２からなる。
【０３３３】
辞書内容は、例えば図１１０のような画面に表示される。画面中には、辞書名を表示する辞書名ウィンドウ、語彙番号、単語ＩＤ、単語、パラメータ、辞書番号を表示する辞書内容ウィンドウ、辞書の削除を行なう「削除」ボタン、パラメータの検索を行なう「検索」ボタン、内容の全表示を行なう「全表示」ボタン、辞書編集を終了する「終了」ボタン、辞書内容チェック結果を表示するステータスウィンドウ、検索の際の値を入力する検索値ウィンドウなどがある。辞書内容ウィンドウのパラメータの項目はメニューになっており、マウスでクリックすると図に示すようなパラメータ内容が表示されて表示する内容を選択するようにできる。
【０３３４】
辞書内容のチェックは、辞書名を選択したときに自動的に動作するようにでき、例えば、同じＩＤの単語がないか、あるいは同じ単語名の辞書がないか等のチェックや、認識パラメータのくい違いがないか等のチェックが行なわれ、結果がステータスウィンドウに表示される。
【０３３５】
図１１０の項目では、辞書として、“common”および“usr.１”というファイル名の辞書が選択され、辞書内容としてその２つの内容がマージして表示される。例えば、語彙Ｎｏ．“１”はＩＤ＝１のオープンで辞書作成に使ったデータ数が１００であることを示している。また、語彙Ｎｏ．“２”はＩＤ＝２のクリアでこの単語が選択されて背景色が暗く変わっていることを示している。
【０３３６】
次に、辞書編集の処理の手順を、図１１１を用いて説明する。辞書編集部が起動されるとまず、辞書ファイルから辞書内容を読み出し（ステップ９３０１）、画面に内容を表示して入力待ちする状態になる（ステップ９３０２）。
【０３３７】
入力が削除ボタンであった場合には（ステップ９３０３）、ユーザが指定した辞書Ｎｏの辞書をファイルから削除し（ステップ９３０４）、入力待ちに戻る（ステップ９３０２）。
【０３３８】
入力が全表示ボタンであった場合には（ステップ９３０５）、辞書内容を再度読み出して（ステップ９３０１）、入力待ちに戻る（ステップ９３０２）。
【０３３９】
入力が検索ボタンであった場合には、パラメータメニューからのパラメータの指定を待ち（ステップ９３０７）、指定されたパラメータと検索値ウィンドウに入力された値に合致する辞書のみ辞書内容として表示して（ステップ９３０８）、入力待ちに戻る（ステップ９３０２）。
【０３４０】
入力が終了ボタンであった場合には、画面に入力した内容から辞書ファイルを更新し（ステップ９３１０）終了したことをメッセージ変換部へ知らせて（ステップ９３１１）終了する。
【０３４１】
以上に述べた辞書編集部により、不要な単語辞書の削除や内容の確認、単語名の変更などの編集が容易に行なえ、また同じＩＤや単語の２重使用や認識パラメータの不統一のチェック等が容易に行なえる。
【０３４２】
（第２２実施例）
本発明の第１８，１９実施例で述べた音声入出力インタフェースでは、ユーザの発声の認識結果の確認および認識結果により引きおこされる応用プログラムの動作の確認は、応用プログラムの提示する画面情報を通じて行っている。例えば、認識結果（および認識失敗）を文字情報としてユーザに提示する。「シェルツール」などプログラム名を呼んだ時にシェルツールの表示を第１９実施例の図１００，１０１のように変更する。「アイコン化」の発声に対して、音声フォーカスの当たったウィンドウをアイコン化する等、音声による応用プログラムへの働きかけは、応用プログラムの行う画面表示の変化としてユーザへフィードバックされる。しかし、応用プログラムによっては、操作によりその表示が殆んどあるいは全く変化しない事も考えられる。また、キーボードフォーカスと音声フォーカスを分離できるという本発明の特長を生かして音声フォーカスを当てた応用プログラムを表示しない状態で使用することも考えられる。このような場合には、認識結果やそれによる操作の確認を画面出力ではなく、第１４実施例で述べた、音声合成機能を利用した音声出力によって行うことで、ユーザの応用プログラム操作上の利便性が向上する。
【０３４３】
動作確認を音声出力によって行うために、第１９実施例の音声インタフェースマネージャ（図９８）を図１１２のように拡張する。すなわち、音声インタフェース管理システム（ＳＩＭ）に応答音声管理部４０１と応答音声登録部４０３を追加する。
【０３４４】
ユーザの行った発声に対してどのような応答音声を返すかを定義するのが、応答音声管理部４０１であり、その登録を行うのが応答音声登録部４０３である。そして、動作（すなわちメッセージ）が発生した際に応答音声管理部４０１を参照して音声応答を出力するのが、メッセージ変換部１４３である。
【０３４５】
応答音声管理部４０１の例を図１１３に示す。応答音声管理部４０１は、音声応答を出力するきっかけとなる動作と、動作時に行う応答コマンドおよび、その設定を実際に適用するか否かを決定するフラグから成る。動作は、音声によらないものでもよい。応答には、コマンドが記述される。ｓｙｎｔｈ（）は、その引数をテキストとして合成音声を出力するコマンド、ｐｌａｙ（）は、引数を波形データと見做し、出力するコマンドである。
【０３４６】
メッセージ変換部１４３は応答音声管理部４０１のデータを参照し、図１１４に示す流れにより処理を行う。先ず、音声入出力シスムテから受信したメッセージが認識結果か否かを判定し（ステップ１０００１）、認識処理が成功したか否かを判定する（ステップ１０００２）。ついでその成功・失敗に応じて、音声応答コマンドを実行する（ステップ１０００３，ステップ１０００４）。ステップ１０００５は、認識処理の成功・失敗以外の応答音声を出力する段階であり、図１１３の３行目以下の設定にあたる。この流れに従えば、認識はできたが類似度が低い、あるいは音声入力レベルが大き（小さ）すぎるなどの理由によって、認識失敗した際には、「えっ？」などという音声データが出力され、応用プログラム名、例えば「メール」が認識された時には、合成音声により「はい、メールです」などと出力される。ここで、図１１３中の＄＜ｃａｔ＞は、認識結果の語彙名が置換される）。
【０３４７】
応答音声管理部４０１のコマンドを登録するのが、図１１５に示す応答音声登録部４０３である。各動作に対してコマンドを記述し、また適用するか否かのチェックボックスをチェックし、ＯＫボタンを押すことで登録を確認する。
【０３４８】
応答音声管理部４０３の応答コマンドは、メッセージ変換部１４３が処理するものであり、第１９実施例の図９９に示した音声インタフェース管理テーブルのコマンドとして記述できる。ここにｐｌａｙ（）およびｓｙｎｔｈ（）コマンドを記述することで、音声入出力システム１と直接情報を交換できないＧＡＰの動作に対して、その応用プログラムに即した応答音声出力を定義できる。
【０３４９】
このように、音声入力によって行われる（あるいは行われない）動作に対して、動作毎に意味のある音声応答を返す機構をＳＩＭに設け、音声入力に対しては音声で応答するという自然な方法で、ユーザが画面の表示の変化を注視しなくとも（あるいは全くみなくとも）応用プログラムの実行した動作を確認できるため、音声入出力インタフェースの操作性が向上する。
【０３５０】
（第２３実施例）
本発明の第９実施例では、認識辞書作成のためのデータ収集について説明したが、収集データの中には、間違った語彙の発声や音声区間の検出誤りなどにより、誤りデータが含まれることがある。例えば「ひらく」という単語は「く」の音が小さく発声されることがあり、「く」が抜けて「ひら」のみ音声区間として検出されることがある。このような誤ったデータによる認識辞書の学習は認識精度を大きく低下させるため、データの確認を行って誤りデータを取り除くことが必要である。そこで本実施例では、データの確認を容易に且つ確実に行なえるように、音を再生して聞くことによりデータ確認するようにしている。
【０３５１】
従来、収集した音声データを再生して確認する方法では、検出された音声区間のみを再生する場合が多いが、語彙によっては、音声の始終端が誤って検出されている場合でもユーザがそれを聞きもらしてしまうという問題があった。例えば上に述べた「ひらく」の語尾の「く」が抜けて「ひら」だけになってしまった場合でも、「ひら」の再生音が「ひらく」と聞こえてしまうことがある。本実施例では、このような始終端の確認のミスを少なくするため、音声の始終端位置を音により分り易く提示するようにしている。これにより、音声データの確認が音により容易に且つ確実に行なえるようになるため、学習データの収集が簡単でミスなく行なえ、音声入出力インタフェースの使い勝手の向上と認識精度の向上が実現できる。
【０３５２】
始終端位置を分り易くする方法としては、
（方法１）検出された音声区間の前後に白色雑音や正弦波など既知の音を付加して再生する方法、
（方法２）始終端位置にクリック音を乗せて再生する方法、
（方法３）始端よりも一定時間前から終端よりも一定時間後までの発声全体を再生した後、音声区間のみを再生する方法、
などが考えられる。
【０３５３】
上記方法１によれば、先程述べた「ひらく」の例では、「ひら」の後にすぐ別の音が続くため、「く」が抜けていることを容易に聞き取ることができる。上記方法２によれば、「ひら」の後に続いて、クリック音が来るため「く」が抜けていることが分る。また、上記方法３によれば、発声全体と音声区間とを比較して聞くことができるため、「く」の有無を容易に識別することができる。
【０３５４】
ここで、本実施例による拡張したデータ収集部８の構成を図１１６に示す。
【０３５５】
データ収集部８は、図１１６に示すように、第９実施例の図２９のデータ収集部８に、音声データ確認部４１１、データ使用可否入力部４１３を加え、学習データ収集制御部８３を介して音声特徴データを音声特徴データ保存部に送るような構成になっている。すなわち、音声データ確認部４１１で提示された再生音を聞いて、ユーザがその音声データを辞書作成に使うか否かをデータ使用可否入力部４１３から指定できるような構成になっている。
【０３５６】
このデータ収集部８の処理の流れを図１１７に従って説明する。
【０３５７】
まず、初期設定では、ユーザからのデータ収集の指示により、データ収集部８から音声認識システム１に対して学習モード設定要求が出され（ステップ１１００１）、これを受けて音声認識システムは認識対象語彙をデータ収集部８に送る。データ収集部８では認識対象語彙がユーザに表示される（ステップ１１００２）。
【０３５８】
ユーザにより学習語彙が選択されると（ステップ１１００３）、データ収集部８は音声認識システム１に単語音声特徴データと単語音声波形データの送信を要求し（ステップ１１００４）、選択された語彙を発声のガイドとして発声ガイド表示部４１５に表示し（ステップ１１００５）、ユーザに発声を促す。音声認識システム１では発声されたユーザの音声を処理した後、データ収集部８に単語特徴データと波形データを送信する。そして、データ収集部８はそのデータを受信し、内部メモリに一時格納する（ステップ１１００６）。
【０３５９】
音声波形データは音声データ確認部４１１に送られ、ユーザがそのデータを確認し、辞書作成に使うか否かを、データ使用可否入力部４１３により入力する（ステップ１１００７）。データを使用するとした場合には単語音声特徴データが磁気ディスク上などにファイル出力され（ステップ１１００８でＹＥＳの場合およびステップ１１００９）、使用しないとした場合にはファイル出力しない（ステップ１１００８でＮＯの場合）。
【０３６０】
学習終了時にはユーザがデータ収集終了の指示を入力し、データ収集指示フラグがＯＦＦならば（ステップ１１０１０でＹｅｓの場合）、データ収集部８は学習モードの解除を音声認識システム１に要求する（ステップ１１０１２）。音声認識システム１では、それを受けて学習モードを解除する。一方、学習を終了しないときは、データ収集指示フラグを検査し（ステップ１１０１１）、上記ステップ１１００４以下の処理を繰り返す。データ収集指示フラグは、学習データ収集制御部の中に設定されており、図に示すようなデータ収集ボタンにより、ユーザが入力可能とすることができる。
【０３６１】
次に、本実施例の音声データ確認部４１１の構成を図１１８に示す。
【０３６２】
音声データ確認部４１１は、音声データを格納する音声データメモリ４２１、音声データを加工する音声データ加工部４２２、加工に用いる付加音を生成する付加音生成部４２４、加工後の音声データを再生して音にする再生部４２３から成り、学習データ収集部制御８３から音声データと始終端位置に関する情報を受け取って加工後、音として出力する。加工後の音を音声入出力システムに送って音データを再生することにすれば、再西部４２３はなくても良い。
【０３６３】
次に、図１１９に従って処理の流れについて説明する。
【０３６４】
まず、学習データ収集制御部８３から音声データと始終端情報を受け取り、音声データメモリ４２１に格納する（ステップ１２００１，ステップ１２１０１，ステップ１２２０１）。この音声データは、音声区間の前後に一定時間、例えば２４０ｍｓｅｃの余裕を付けた波形データであり、例えば図１２０に示すようなものである。図のデータは「ひらく」の「ひら」が音声区間として検出されたため、「く」の音は終端の余裕の中に入っている。
【０３６５】
次に、音声区間の前後に付加音をつける上記方法１の場合では、付加音を付加音生成部４２４で作り（ステップ１２００２）、音声データ加工部４２２で始終位置の前と終端位置の後にこの付加音を付加する（ステップ１２００３，ステップ１２００４）。この結果、音声データ図１２１の（ａ）に示すようなものになる。
【０３６６】
付加音データは白色ノイズでも良いし、正弦波でも良く、これらは乱数発生ルーチンや三角関数のルーチンを使って容易に作成できる。又、録音データを単に読み出すだけでも良い。
【０３６７】
始終端位置にクリック音を付加する上記方法２の場合では、クリック音を付加音生成部４２４で作り（ステップ１２１０２）、始終端位置に付加する（ステップ１２１０３，ステップ１２１０４）。この結果、音声データは図１２１の（ｂ）に示すようなものになる。ここでクリック音は短時間、例えば数１０ｍｓｅｃ幅のパルスや三角波等で良い。
【０３６８】
発声の全体と音声区間の両方を再生する上記方法３の場合では、まず、音声区間外の平均パワーを計算し（ステップ１２２０２）、この値が、しきい値、例えば雑音レベル＋２ｄＢよりも大きければ（ステップ１２２０３でＹＥＳの場合）、音声区間の前後についた余裕と音声区間とを合わせた音声全体を再生する（ステップ１２２０４）。一方、計算した平均パワーがしきい値よりも小さければ（ステップ１２２０３でＮＯの場合）、音声区間のみ再生する（ステップ１２２０５）。雑音レベルは音声認識システム１で音声検出のために常時測定しているため（永田、他“ワークステーションにおける音声認識機能の開発”，電子情報通信学会技術報告、ＨＣ９１１９，ｐｐ．６３−７０，（１９９１）、参照）それを用いれば良い。発声全体の再生と音声区間の再生の２回の再生を、発声の毎に行なうのは煩しいため、上述のように音声区間の外の音声パワーが大きいときに、始終端位置を誤った可能性が大きいと見なして、そのときのみ２回の再生を行なうようにすれば、煩しさを軽減できる。
【０３６９】
この場合、図１２１の（ｃ）に示すように、発声全体の再生音は「ひらく」の全発声が再生されるが、音声区間のみの再音声は「ひら」だけしか再生されないため、続けてこの２つの再生音を聞いて比較することによって「く」が抜けていることを容易に識別できる。
【０３７０】
以上に述べたように、音声データが正しいか否かをユーザが再生音により容易に判断することができ、データを辞書作成に使用するか否かをデータ収集部で直ちに入力することができるため、音声データ収集を簡単に、且つ確実に行なうことができる。
【０３７１】
これにより、誤ったデータを除いて認識辞書を作成することができる。
【０３７２】
【発明の効果】
本発明によれば、各応用プログラムにより音声認識システムに対する音声認識結果の受信の可否を決定できるので、応用プログラムが自分や他の応用プログラムの音声入力に関する制御を自由に行うことができ、柔軟で使いやすい音声認識インターフェースが構築できる。また、音声認識システムがその音声認識結果を同時に複数の応用プログラムに送信できるので、一つの音声入力による操作を同時に複数の応用プログラムに対して行うこともでき、音声入力による計算機の操作性も向上する。さらに音声認識システムが複数の応用プログラムに対する音声認識を行えるので、音声入力対象の明示的な指定をせずに音声認識結果に基づき音声入力を各応用プログラムに振り分けることができ、利用者の負担を軽減できる。
【図面の簡単な説明】
【図１】本発明の一実施例の概略構成を示す図。
【図２】音声認識部の概略構成を示す図。
【図３】音声認識部の他例の概略構成を示す図。
【図４】音声認識部の他例の概略構成を示す図。
【図５】音声認識部の他例の概略構成を示す図。
【図６】応用プログラムの概略構成を示す図。
【図７】構成要素間で伝送されるメッセージを説明する図。
【図８】入力マスクの種類を示す図。
【図９】音声認識インターフェース各部の処理のタイムチャートを示す図。
【図１０】応用プログラム管理テーブルを説明する図。
【図１１】本発明の第２実施例の概略構成を示す図。
【図１２】一般的なウィンドウシステムの画面表示例を示す図。
【図１３】応用プログラムの認識語彙を説明する図。
【図１４】入力フォーカスの移動に伴う音声認識語彙の変化を説明する図。
【図１５】認識語彙の表示例を説明する図。
【図１６】マウスの位置により認識語彙を変更する状態を説明する図。
【図１７】本発明の第３実施例での応用プログラムの認識語彙を説明する図。
【図１８】応用プログラム管理テーブルを説明する図。
【図１９】本発明の第４実施例を説明する図。
【図２０】本発明の第５実施例の概略構成を示す図。
【図２１】メッセージ表示例を示す図。
【図２２】ワークステーションなどのマルチウィンドウ環境を示す図。
【図２３】本発明の第６実施例での応用プログラム管理テーブルを示す図。
【図２４】図２３の応用プログラム管理テーブルに基づく表現を説明する図。
【図２５】タスク管理プログラム機能の拡張例を示す図。
【図２６】本発明の第７実施例での表示例を説明する図。
【図２７】同第７実施例での表示例を説明する図。
【図２８】本発明の第９実施例の概略構成を示す図。
【図２９】学習データ収集部の概略構成を示す図。
【図３０】音声認識システムとのメッセージ交換を説明する図。
【図３１】音声認識システムのデータ収集時のフローチャートを示す図。
【図３２】学習データ収集部のフローチャートを示す図。
【図３３】学習語彙ガイド表示部での表示例を示す図。
【図３４】学習語彙ガイド表示部での表示例を示す図。
【図３５】データ収集時の音声認識インターフェースの処理の流れを示す図。
【図３６】本発明の第１０実施例の概略構成を示す図。
【図３７】辞書作成管理テーブルを示す図。
【図３８】辞書作成管理テーブルを示す図。
【図３９】辞書作成管理テーブルを示す図。
【図４０】辞書作成管理テーブルへの登録手順を説明する図。
【図４１】辞書作成の手順を説明する図。
【図４２】辞書作成の進行状況の表示例を示す図。
【図４３】辞書作成処理の速度表示の例を示す図。
【図４４】辞書作成処理の速度表示の例を示す図。
【図４５】本発明の第１１実施例の概略構成を示す図。
【図４６】音声認識自動停止処理を説明する図。
【図４７】本発明の第１２実施例を説明する図。
【図４８】同第１２実施例を説明する図。
【図４９】本発明の第１３実施例を説明する図。
【図５０】本発明の第１４実施例の概略構成を示す図。
【図５１】音声合成部の概略構成を示す図。
【図５２】音声出力管理テーブルを説明する図。
【図５３】音声入力に対するメッセージを説明する図。
【図５４】音声出力に対する入力マスクを説明する図。
【図５５】応用プログラム管理テーブルを説明する図。
【図５６】音声出力処理のフローチャートを示す図。
【図５７】音声出力処理のタイムチャートを示す図。
【図５８】音声出力要求処理のフローチャートを示す図。
【図５９】中断処理のある音声データを重畳する際の一例を説明する図。
【図６０】本発明の第１５実施例の概略構成を示す図。
【図６１】応用プログラムと音声入出力システム間で交わされるメッセージを説明する図。
【図６２】音声メールツールが音声データを録音する処理のタイムチャートを示す図。
【図６３】音声メールツールの画面表示例を示す図。
【図６４】音声データ編集用のサブウィンドウを示す図。
【図６５】メール送信による返信の文面例を示す図。
【図６６】音声データ編集用のサブウィンドウを示す図。
【図６７】合成音声の属性のデータベースの一例を示す図。
【図６８】メール読み上げ時に使用する音声コマンドの例を示す図。
【図６９】音声メールシステムの概略構成を示す図。
【図７０】応用プログラム管理テーブルを説明する図。
【図７１】メールシステムと音声入出力システム間のメッセージを説明する図。
【図７２】タスク重要度管理テーブルを説明する図。
【図７３】音声メールシステムの電子メール処理のフローチャートを示す図。
【図７４】受信メールの通知例を示す図。
【図７５】タスク重要度管理テーブルを説明する図。
【図７６】制御コード交じりのメール例を示す図。
【図７７】本発明の第１６実施例の概略構成を示す図。
【図７８】本発明の第１６実施例の概略構成を示す図。
【図７９】要約設定処理のフローチャートを示す図。
【図８０】本発明の第１７実施例の概略構成を示す図。
【図８１】音声を使ったメール文書作成例を示す図。
【図８２】応用プログラムと音声認識システムの間のメッセージ例を示す図。
【図８３】音声区間データを入力音声から切り出す処理のタイムチャートを示す図。
【図８４】音声によるメール題の入力を説明する図。
【図８５】定型的なメール文書の入力を説明する図。
【図８６】メールアドレスブックの画面表示例を示す図。
【図８７】音声入力可能なメールアドレスの登録例を示す図。
【図８８】音声によるメール送付先指定の手順を説明する図。
【図８９】メールアドレスのデータベースを用いたメール送付先指定を説明する図。
【図９０】本発明の第１８実施例の概略構成を示す図。
【図９１】同第１８実施例におけるシステム構成を示す図。
【図９２】同第１８実施例での画面表示例を示す図。
【図９３】音声インターフェース管理テーブルの一例を示す図。
【図９４】疑似音声フォーカスと音声フォーカスとの対応関係を示す図。
【図９５】メッセージ変換部のフローチャートを示す図。
【図９６】本発明の第１９実施例の概略構成を示す図。
【図９７】同第１９実施例での画面表示例を示す図。
【図９８】同第１９実施例のより詳細な構成を示す図。
【図９９】音声インターフェース管理テーブルの一例を示す図。
【図１００】音声フォーカスの表示方法を説明するための図。
【図１０１】外付けウィンドウの表示例を示す図。
【図１０２】応用プログラム管理テーブルの一例を示す図。
【図１０３】音声入出力システムの認識処理のフローチャートを示す図。
【図１０４】本発明の第２０実施例の概略構成を示す図。
【図１０５】プログラム操作の登録画面の一例を示す図。
【図１０６】プログラム操作登録の処理手順を示す図・
【図１０７】本発明の第２０実施例の概略構成を示す図。
【図１０８】認識辞書の構成の一例を示す図。
【図１０９】辞書編集部の概略構成を示す図。
【図１１０】辞書編集画面の一例を示す図。
【図１１１】辞書編集部の処理のフローチャートを示す図。
【図１１２】本発明の第２２実施例の概略構成を示す図。
【図１１３】応答音声管理部の概略構成を示す図。
【図１１４】メッセージ変換部の処理のフローチャートを示す図。
【図１１５】応答音声登録部の概略構成を示す図。
【図１１６】拡張したデータ収集部の概略構成を示す図。
【図１１７】図１１６のデータ収集部の処理のフローチャートを示す図。
【図１１８】音声データ確認部の概略構成を示す図。
【図１１９】音声データ確認部の処理のフローチャートを示す図。
【図１２０】音声データの一例を示す図。
【図１２１】加工後の音声データの様子を示す図。
【図１２２】従来の音声認識インターフェースを示す図。
【図１２３】従来の音声認識インターフェースを示す図。
【図１２４】従来の音声認識インターフェースを示す図。
【図１２５】従来の音声認識インターフェースを示す図。
【図１２６】従来の音声認識インターフェースを示す図。
【符号の説明】
１、３、６…音声認識システム、１１…メッセージ処理部、１２…音声認識部、１２１…音声検出部、１２２…音声分析部、１２３…認識辞書照合部、１２４…音声認識辞書、１３…応用プログラム管理テーブル、２、５、７…応用プロクラム、２１、７１…メッセージ入出力部、２２…プログラム本体、４…ウインドウシステム、８…データ収集部、８１…単語音声特徴データ保持部、８２…学習語彙表示選択部、８３…学習データ収集制御部、８４…学習語彙ガイド表示部、９…辞書作成部、９１…辞書作成管理部、９２…辞書作成制御部、９３…データ入力部、９４…辞書作成部本体、９５…ファイル出力部、１０…音声認識自動停止部、１４…音声合成部、５６１…全体制御部、５６２…波形重畳部、５６３…音声出力管理テーブル、５６４…波形合成部、６５１…音声入出力システム、６５２…ウィンドウシステム、６５３…音声メールツール、６５３１…電子メール処理部、６５３２…メッセージ入出力部、８２１…音声入出力システム、８２２…音声メールシステム、８２２１…電子メール処理部、８２２２…文書要約部、８２２３…メッセージ入出力部、８５１…音声認識システム、８５２…音声メーメシステム８５２、８５３…メールアドレステーブル、１０３…汎用応用プログラム（ＧＡＰ）、１０２…専用応用プログラム（ＳＡＰ）、１０４…音声インターフェース管理システム（ＳＩＭ）、１４１…音声インターフェース管理部、１４２…プログラム操作登録部、１４３…メッセージ変換部、２３…音声ウィンドウ、１４４０0 〜１４４０4 …音声ウィンドウ、１５１……プログラム操作表示編集部、１５２…登録内容保存部、１５３…ウィンドウＩＤ取得部、１４４…辞書編集部、４４１…辞書内容表示編集部、４４２…辞書内容検索部、４０１…応答音声管理部４０１、４０３…応答音声登録部、４１１…音声データ確認部、４１３…データ使用可否入力部、４１５…発生ガイド表示部、４２１…音声データメモリ、４２２…音声データ加工部、４２３…再生部、４２４…付加音データ保存部。
【図１】
0003725566.tif 000002
【図２】
0003725566.tif 000003
【図３】
0003725566.tif 000004
【図４】
0003725566.tif 000005
【図５】
0003725566.tif 000006
【図６】
0003725566.tif 000007
【図７】
0003725566.tif 000008
【図８】
0003725566.tif 000009
【図９】
0003725566.tif 000010
【図１０】
0003725566.tif 000011
【図１１】
0003725566.tif 000012
【図１２】
0003725566.tif 000013
【図１３】
0003725566.tif 000014
【図１４】
0003725566.tif 000015
【図１５】
0003725566.tif 000016
【図１６】
0003725566.tif 000017
【図１７】
0003725566.tif 000018
【図１８】
0003725566.tif 000019
【図１９】
0003725566.tif 000020
【図２０】
0003725566.tif 000021
【図２１】
0003725566.tif 000022
【図２２】
0003725566.tif 000023
【図２３】
0003725566.tif 000024
【図２４】
0003725566.tif 000025
【図２５】
0003725566.tif 000026
【図２６】
0003725566.tif 000027
【図２７】
0003725566.tif 000028
【図２８】
0003725566.tif 000029
【図２９】
0003725566.tif 000030
【図３０】
0003725566.tif 000031
【図３１】
0003725566.tif 000032
【図３２】
0003725566.tif 000033
【図３３】
0003725566.tif 000034
【図３４】
0003725566.tif 000035
【図３５】
0003725566.tif 000036
【図３６】
0003725566.tif 000037
【図３７】
0003725566.tif 000038
【図３８】
0003725566.tif 000039
【図３９】
0003725566.tif 000040
【図４０】
0003725566.tif 000041
【図４１】
0003725566.tif 000042
【図４２】
0003725566.tif 000043
【図４３】
0003725566.tif 000044
【図４４】
0003725566.tif 000045
【図４５】
0003725566.tif 000046
【図４６】
0003725566.tif 000047
【図４７】
0003725566.tif 000048
【図４８】
0003725566.tif 000049
【図４９】
0003725566.tif 000050
【図５０】
0003725566.tif 000051
【図５１】
0003725566.tif 000052
【図５２】
0003725566.tif 000053
【図５３】
0003725566.tif 000054
【図５４】
0003725566.tif 000055
【図５５】
0003725566.tif 000056
【図５６】
0003725566.tif 000057
【図５７】
0003725566.tif 000058
【図５８】
0003725566.tif 000059
【図５９】
0003725566.tif 000060
【図６０】
0003725566.tif 000061
【図６１】
0003725566.tif 000062
【図６２】
0003725566.tif 000063
【図６３】
0003725566.tif 000064
【図６４】
0003725566.tif 000065
【図６５】
0003725566.tif 000066
【図６６】
0003725566.tif 000067
【図６７】
0003725566.tif 000068
【図６８】
0003725566.tif 000069
【図６９】
0003725566.tif 000070
【図７０】
0003725566.tif 000071
【図７１】
0003725566.tif 000072
【図７２】
0003725566.tif 000073
【図７３】
0003725566.tif 000074
【図７４】
0003725566.tif 000075
【図７５】
0003725566.tif 000076
【図７６】
0003725566.tif 000077
【図７７】
0003725566.tif 000078
【図７８】
0003725566.tif 000079
【図７９】
0003725566.tif 000080
【図８０】
0003725566.tif 000081
【図８１】
0003725566.tif 000082
【図８２】
0003725566.tif 000083
【図８３】
0003725566.tif 000084
【図８４】
0003725566.tif 000085
【図８５】
0003725566.tif 000086
【図８６】
0003725566.tif 000087
【図８７】
0003725566.tif 000088
【図８８】
0003725566.tif 000089
【図８９】
0003725566.tif 000090
【図９０】
0003725566.tif 000091
【図９１】
0003725566.tif 000092
【図９２】
0003725566.tif 000093
【図９３】
0003725566.tif 000094
【図９４】
0003725566.tif 000095
【図９５】
0003725566.tif 000096
【図９６】
0003725566.tif 000097
【図９７】
0003725566.tif 000098
【図９８】
0003725566.tif 000099
【図９９】
0003725566.tif 000100
【図１００】
0003725566.tif 000101
【図１０１】
0003725566.tif 000102
【図１０２】
0003725566.tif 000103
【図１０３】
0003725566.tif 000104
【図１０４】
0003725566.tif 000105
【図１０５】
0003725566.tif 000106
【図１０６】
0003725566.tif 000107
【図１０７】
0003725566.tif 000108
【図１０８】
0003725566.tif 000109
【図１０９】
0003725566.tif 000110
【図１１０】
0003725566.tif 000111
【図１１１】
0003725566.tif 000112
【図１１２】
0003725566.tif 000113
【図１１３】
0003725566.tif 000114
【図１１４】
0003725566.tif 000115
【図１１５】
0003725566.tif 000116
【図１１６】
0003725566.tif 000117
【図１１７】
0003725566.tif 000118
【図１１８】
0003725566.tif 000119
【図１１９】
0003725566.tif 000120
【図１２０】
0003725566.tif 000121
【図１２１】
0003725566.tif 000122
【図１２２】
0003725566.tif 000123
【図１２３】
0003725566.tif 000124
【図１２４】
0003725566.tif 000125
【図１２５】
0003725566.tif 000126
【図１２６】
0003725566.tif 000127