(57)【要約】      （修正有）【課題】音声認識の認識精度を上げる。【解決手段】発話入力の音声認識のためのコンピュータ・システムを提供する。該システムは、第１発話の入力に応答して、該入力された第１発話の音声が記憶部に登録された音声と一致するかどうかを判断する第１の判断部と、上記入力された第１発話の音声が上記記憶部に登録された音声と一致しない場合に、第２発話の入力を要求する要求部と、上記入力された第２発話の音声が上記記憶部に登録された音声と一致するかどうかを判断する第２の判断部と、上記第２発話の音声が上記記憶部に登録された音声と一致する場合に、上記第２発話の音素列と上記第１発話の音素列とを比較する比較部と、上記第２発話の音素列が上記第１発話の音素列と似ている場合に、上記第１発話の音声を上記第２発話に対応するコマンド又はアクションに関連付ける関連付け部とを含む。【選択図】図１Ａ
2010072098.tif 000002
【特許請求の範囲】
【請求項１】
発話入力の音声認識のためのコンピュータ・システムであって、
第１発話の入力に応答して、該入力された第１発話の音声が記憶部に登録された音声と一致するかどうかを判断する第１の判断部と、
前記入力された第１発話の音声が前記記憶部に登録された音声と一致しない場合に、第２発話の入力を要求する要求部と、
前記入力された第２発話の音声が前記記憶部に登録された音声と一致するかどうかを判断する第２の判断部と、
前記第２発話の音声が前記記憶部に登録された音声と一致する場合に、前記第２発話の音素列と前記第１発話の音素列とを比較する比較部と、
前記第２発話の音素列が前記第１発話の音素列と似ている場合に、前記第１発話の音声を前記第２発話に対応するコマンド又はアクションに関連付ける関連付け部と
を含む、前記コンピュータ・システム。
【請求項２】
前記第２発話の音素列が前記第１発話の音素列と似ていることが、音素列中の音素の一致度に基づいて判断される、請求項１に記載のコンピュータ・システム。
【請求項３】
前記第２発話の音素列が前記第１発話の音素列と似ている場合に、音声が一致したかどうかが、音の揺らぎ情報に基づいて判断される、請求項１に記載のコンピュータ・システム。
【請求項４】
前記第２発話の音素列が前記第１発話の音素列と似ている場合に、前記第１発話の音素列を前記記憶部に登録するかどうかを判定する登録部をさらに含む、請求項１に記載のコンピュータ・システム。
【請求項５】
前記登録部が、前記第１発話の音素列を前記記憶部に登録するかどうかを判定するポリシーを参照する、請求項４に記載のコンピュータ・システム。
【請求項６】
前記ポリシーが、ノイズ比の高さ、単語又はフレーズの使用頻度、音素列の並びの少なくとも１つに基づく、請求項５に記載のコンピュータ・システム。
【請求項７】
前記登録された発話の音素列を前記記憶部から削除するかどうかを判定する削除部をさらに含む、請求項４に記載のコンピュータ・システム。
【請求項８】
前記第２発話の音素列が前記第１発話の音素列と似ていない場合に、前記第１発話の音声を前記第２発話に対応するコマンド又はアクションに関連付けるかどうかをユーザに問い合わせる問合部をさらに含む、請求項１に記載のコンピュータ・システム。
【請求項９】
前記関連付け部が、前記ユーザによって前記関連付けを行う命令を受信することに応じて、前記第１発話の音声を前記第２発話に対応するコマンド又はアクションに関連付ける、請求項８に記載のコンピュータ・システム。
【請求項１０】
前記第２発話の音素列が前記第１発話の音素列と似ていない場合に、前記第１発話の音声に対して前記第２発話に対応するコマンド又はアクションを選択することを許す選択部をさらに含む、請求項１に記載のコンピュータ・システム。
【請求項１１】
前記選択を許すことが、音声コマンドのリストを提示することを含む、請求項１０に記載のコンピュータ・システム。
【請求項１２】
前記第１発話の音声を前記第２発話に対応するコマンド又はアクションに関連付けることが、前記第１発話の音声を前記第２発話の音声のバリエーションとして登録することを含む、請求項１に記載のコンピュータ・システム。
【請求項１３】
前記入力された第２発話の音声が前記記憶部に登録された音声と一致しない場合に、第３発話の入力をさらに要求する第２の要求部と、
前記入力された第３発話の音声が前記記憶部に登録された音声と一致するかどうかを判断する第３の判断部と、
前記第３発話の音声が前記記憶部に登録された音声と一致する場合に、前記第３発話の音素列と前記第２発話の音素列とを比較する第２の比較部と、
前記第３発話の音素列が前記第２発話の音素列と似ている場合に、前記第２発話の音声を前記第３発話に対応するコマンド又はアクションに関連付ける第２の関連付け部と
をさらに含む、請求項１に記載のコンピュータ・システム。
【請求項１４】
前記第１の判断とともに、前記第１発話に対応する第１の音素列を生成する第１の生成部をさらに含む、請求項１に記載のコンピュータ・システム。
【請求項１５】
前記第１の判断部が、前記生成された第１の音素列が前記記憶部に登録された音素列と一致するかどうかをさらに判断する、請求項１３に記載のコンピュータ・システム。
【請求項１６】
前記第２の判断とともに、前記第２発話に対応する第２の音素列を生成する第２の生成部をさらに含む、請求項１に記載のコンピュータ・システム。
【請求項１７】
前記第２の判断部が、前記生成された第２の音素列が前記記憶部に登録された音素列と一致するかどうかをさらに判断する、請求項１５に記載のコンピュータ・システム。
【請求項１８】
前記入力された第１発話の音声又は前記入力された第２発話の音声が前記記憶部に登録された音声と一致するかどうかが、音素列中の音素の一致度に基づいて判断される、請求項１に記載のコンピュータ・システム。
【請求項１９】
前記入力された第１発話の音声が前記記憶部に登録された音声と一致しない場合に、該第１発話の音声を記録部に格納する記録部をさらに含む、請求項１に記載のコンピュータ・システム。
【請求項２０】
前記入力された第１発話の音声が前記記憶部に登録された音声と一致する場合に、前記第１発話に対応するアクションを実行する実行部をさらに含む、請求項１に記載のコンピュータ・システム。
【請求項２１】
前記入力された第２発話の音声が前記記憶部に登録された音声と一致する場合に、前記第２発話に対応するアクションを実行する第２の実行部をさらに含む、請求項１に記載のコンピュータ・システム。
【請求項２２】
前記第１発話が第１の音声コマンドであり、前記第２発話が第２の音声コマンドである、請求項１に記載のコンピュータ・システム。
【請求項２３】
発話入力の音声認識のための方法であって、
第１発話の入力に応答して、該入力された第１発話の音声が記憶部に登録された音声と一致するかどうかを判断するステップと、
前記入力された第１発話の音声が前記記憶部に登録された音声と一致しない場合に、第２発話の入力を要求するステップと、
前記入力された第２発話の音声が前記記憶部に登録された音声と一致するかどうかを判断するステップと、
前記第２発話の音声が前記記憶部に登録された音声と一致する場合に、前記第２発話の音素列と前記第１発話の音素列とを比較するステップと、
前記第２発話の音素列が前記第１発話の音素列と似ている場合に、前記第１発話の音声を前記第２発話に対応するコマンド又はアクションに関連付けるステップと
を含む、前記方法。
【請求項２４】
発話入力の音声認識のための方法であって、
第１発話の入力に応答して、該入力された第１発話の音声が記憶部に登録された音声と一致するかどうかを判断するステップと、
前記入力された第１発話の音声が前記記憶部に登録された音声と一致する場合に、前記第１発話に対応するアクションを実行するステップと、
前記入力された第１発話の音声が前記記憶部に登録された音声と一致しない場合に、第２発話の入力を要求するステップと、
前記入力された第２発話の音声が前記記憶部に登録された音声と一致するかどうかを判断するステップと、
前記第２発話の音声が前記記憶部に登録された音声と一致する場合に、前記第２発話の音素列と前記第１発話の音素列とを比較するステップと、
前記第２発話の音素列が前記第１発話の音素列と似ている場合に、前記第１発話の音声を前記第２発話に対応するコマンド又はアクションに関連付けるステップと、
前記第２発話の音素列が前記第１発話の音素列と似ていない場合に、前記第１発話の音声を前記第２発話に対応するコマンド又はアクションに関連付けるかどうかをユーザに問い合わせるステップと、
前記第２発話の音声が前記記憶部に登録された音声と一致しない場合に、
第３発話の入力をさらに要求するステップと、
前記入力された第３発話の音声が前記記憶部に登録された音声と一致するかどうかを判断するステップと、
前記第３発話の音声が前記記憶部に登録された音声と一致する場合に、前記第３発話の音素列と前記第２発話の音素列とを比較するステップと、
前記第３発話の音素列が前記第２発話の音素列と似ている場合に、前記第２発話の音声を前記第３発話に対応するコマンド又はアクションに関連付けるステップと
を含む、前記方法。
【請求項２５】
発話入力の音声認識のためのコンピュータ・プログラムであって、コンピュータ・システムに請求項２３又は２４のいずれかに記載の方法の各ステップを実行させることを含む、前記コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、発話入力の音声認識のためのコンピュータ・システム、並びにその方法及びコンピュータ・プログラムに関する。
【背景技術】
【０００２】
車載機器（例えば、カーナビゲーション・システム）の高機能化及び複雑化が進む中、ユーザに使いやすいヒューマン・インタフェースとして音声認識がある。ユーザが車載機器に対して音声コマンドを発すると、音声認識を通じて該音声コマンドがコマンドに変換されて、該コマンドに対応するアクションが実行される。ここで、ユーザが任意の発話内容を車載機器のコマンドに関連付ける機能（以下、音声タグ登録モードという）を用いる場合、発話の新規登録は以下の手順に従い行われる：
１．音声タグ登録モードを起動、
２．発話内容をコマンドに関連付けするためのメニューの選択、
３．発話、
４．新規登録。
しかし、ユーザは、どの発話にどのコマンドを関連付けたかを常に意識しているわけではない。また、ユーザは、音声認識に失敗した場合において音声認識の失敗に初めて気付くか或いは失敗を気付きもしない。さらに、車載機器の環境において、ユーザは、発話内容の登録乃至は発音修正の作業を行うことを望んでいない。さらに、ユーザが、発話内容をコマンドへ関連付けるために、上記手順をその都度実行するのは面倒である。
【０００３】
特許文献１は、ユーザが使用する端末であり、文字列情報を記憶した認識辞書を備えるクライアント端末と、該クライアント端末と通信網で接続されるサーバ端末とを備える認識辞書システムを記載する。該サーバ端末は、クライアント端末から入力された情報に対応する第１の語彙について、認識辞書に記憶されている第２の語彙と等価の意味を持ち、異なる文字列情報を持つ言い換え語彙を累積記憶する言い換え語彙累積部と、該言い換え語彙累積部を参照し、言い換え語彙の発生頻度を解析し、該発生頻度が第１の所定値より高い言い換え語彙の少なくとも一つを主要言い換え語彙と判断する言い換え頻度解析部と、主要言い換えと判断された第１の語彙を、第２の語彙と対応付けて認識辞書に登録するために認識辞書を更新する認識辞書更新部とを有する。
【０００４】
【特許文献１】特開２００７−２１３００５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
車載機器において、音声認識の認識精度を上げることが必要とされている。よって、認識精度を上げるために、例えば単語又はフレーズの発音のバリエーションを追加し、音の揺らぎに自動的に対応する音声認識システムが求められている。
また、単語又はフレーズの発音のバリエーションを追加する作業は人手を掛けないと精度がよくならないので、コスト面において敬遠されがちである。よって、単語又はフレーズの発音のバリエーションを自動的に登録する音声認識システムが求められている。
さらに、車載機器では、ハードウェア資源が限られている場合がある。それにも関わらず、例えば１つの単語又はフレーズに対して複数の音の揺らぎを関連付ける場合、より多くのメモリー容量が必要とされる。よって、ハードウェア資源の制約に対応できうるような音声認識システムが求められている。
【課題を解決するための手段】
【０００６】
本発明は、発話入力の音声認識のためのコンピュータ・システムを提供する。
上記コンピュータ・システムは、
第１発話の入力に応答して、該入力された第１発話の音声が記憶部に登録された音声と一致するかどうかを判断する第１の判断部と、
上記入力された第１発話の音声が上記記憶部に登録された音声と一致しない場合に、第２発話の入力を要求する要求部と、
上記入力された第２発話の音声が上記記憶部に登録された音声と一致するかどうかを判断する第２の判断部と、
上記第２発話の音声が上記記憶部に登録された音声と一致する場合に、上記第２発話の音素列と上記第１発話の音素列とを比較する比較部と、
上記第２発話の音素列が上記第１発話の音素列と似ている場合に、上記第１発話の音声を上記第２発話に対応するコマンド又はアクションに関連付ける関連付け部と
を含む。
【０００７】
本発明の１つの実施態様では、上記コンピュータ・システムは、上記第１の判断とともに、上記第１発話に対応する第１の音素列を生成する第１の生成部をさらに含む。
【０００８】
本発明の１つの実施態様では、上記第１の判断部が、上記生成された第１の音素列が上記記憶部に登録された音素列と一致するかどうかをさらに判断する。
【０００９】
本発明の１つの実施態様では、上記入力された第１発話の音声が上記記憶部に登録された音声と一致するかどうかが、音素列中の音素の一致度に基づいて判断される。
【００１０】
本発明の１つの実施態様では、上記コンピュータ・システムは、上記入力された第１発話の音声が上記記憶部に登録された音声と一致する場合に、上記第１発話に対応するアクションを実行する実行部をさらに含む。
【００１１】
本発明の１つの実施態様では、上記第１発話が第１の音声コマンドである。本発明の１つの実施態様では、上記実行部は、上記第１の音声コマンドが上記記憶部に登録された音声コマンドと一致する場合に、上記第１の音声コマンドに対応するアクションを実行する。
【００１２】
本発明の１つの実施態様では、上記コンピュータ・システムは、上記入力された第１発話の音声が上記記憶部に登録された音声と一致しない場合に該第１発話の音声を記録部に格納する記録部をさらに含む。
【００１３】
本発明の１つの実施態様では、上記コンピュータ・システムは、上記第２の判断とともに、上記第２発話に対応する第２の音素列を生成する第２の生成部をさらに含む。
【００１４】
本発明の１つの実施態様では、上記コンピュータ・システムは、上記第２の判断部が、上記生成された第２の音素列が上記記憶部に登録された音素列と一致するかどうかをさらに判断する。
【００１５】
本発明の１つの実施態様では、上記入力された第２発話の音声が上記記憶部に登録された音声と一致するかどうかが、音素列中の音素の一致度に基づいて判断される。
【００１６】
本発明の１つの実施態様では、上記コンピュータ・システムは、上記入力された第２発話の音声が上記記憶部に登録された音声と一致する場合に、上記第２発話に対応するアクションを実行する第２の実行部をさらに含む。
【００１７】
本発明の１つの実施態様では、上記第２発話が第２の音声コマンドである。本発明の１つの実施態様では、上記第２の実行部は、上記第２の音声コマンドが上記記憶部に登録された音声コマンドと一致する場合に、上記第２の音声コマンドに対応するアクションを実行する。
【００１８】
本発明の１つの実施態様では、上記第２発話の音素列が上記第１発話の音素列と似ていることが、音素列中の音素の一致度に基づいて判断される。
【００１９】
本発明の１つの実施態様では、上記第２発話の音素列が上記第１発話の音素列と似ている場合に、音声が一致したかどうかが、音の揺らぎ情報に基づいて判断される。
【００２０】
本発明の１つの実施態様では、上記コンピュータ・システムは、上記第２発話の音素列が上記第１発話の音素列と似ている場合に、上記第１発話の音素列を上記記憶部に登録するかどうかを判定する登録部をさらに含む。
【００２１】
本発明の１つの実施態様では、上記登録部が、上記第１発話の音素列を上記記憶部に登録するかどうかを判定するポリシーを参照する。
【００２２】
本発明の１つの実施態様では、上記ポリシーが、ノイズ比の高さ、単語又はフレーズの使用頻度、音素列の並びの少なくとも１つに基づく。
【００２３】
本発明の１つの実施態様では、上記コンピュータ・システムは、上記登録された発話の音素列を上記記憶部から削除するかどうかを判定する削除部をさらに含む。
【００２４】
本発明の１つの実施態様では、上記コンピュータ・システムは、上記第２発話の音素列が上記第１発話の音素列と似ていない場合に、上記第１発話の音声を上記第２発話に対応するコマンド又はアクションに関連付けるかどうかをユーザに問い合わせる問合部をさらに含む。
【００２５】
本発明の１つの実施態様では、上記関連付け部が、上記ユーザによって上記関連付けを行う命令を受信することに応じて、上記第１発話の音声を上記第２発話に対応するコマンド又はアクションに関連付ける。
【００２６】
本発明の１つの実施態様では、上記コンピュータ・システムは、上記第２発話の音素列が上記第１発話の音素列と似ていない場合に、上記第１発話の音声に対して上記第２発話に対応するコマンド又はアクションを選択することを許す選択部をさらに含む。
【００２７】
本発明の１つの実施態様では、上記選択を許すことが、音声コマンドのリストを提示することを含む。
【００２８】
本発明の１つの実施態様では、上記第１発話の音声を上記第２発話に対応するコマンド又はアクションに関連付けることが、上記第１発話の音声を上記第２発話の音声のバリエーションとして登録することを含む。
【００２９】
本発明の１つの実施態様では、上記コンピュータ・システムは、
上記入力された第２発話の音声が上記記憶部に登録された音声と一致しない場合に、第３発話の入力をさらに要求する第２の要求部と、
上記入力された第３発話の音声が上記記憶部に登録された音声と一致するかどうかを判断する第３の判断部と、
上記第３発話の音声が上記記憶部に登録された音声と一致する場合に、上記第３発話の音素列と上記第２発話の音素列とを比較する第２の比較部と、
上記第３発話の音素列が上記第２発話の音素列と似ている場合に、上記第２発話の音声を上記第３発話に対応するコマンド又はアクションに関連付ける第２の関連付け部と
をさらに含む。
【００３０】
本発明はまた、発話入力の音声認識のための方法を提供する。該方法は、コンピュータ・システムに下記ステップを実行させる。
該ステップは、
第１発話の入力に応答して、該入力された第１発話の音声が記憶部に登録された音声と一致するかどうかを判断する第１の判断ステップと、
上記入力された第１発話の音声が上記記憶部に登録された音声と一致しない場合に、第２発話の入力を要求するステップと、
上記入力された第２発話の音声が上記記憶部に登録された音声と一致するかどうかを判断する第２の判断ステップと、
上記第２発話の音声が上記記憶部に登録された音声と一致する場合に、上記第２発話の音素列と上記第１発話の音素列とを比較するステップと、
上記第２発話の音素列が上記第１発話の音素列と似ている場合に、上記第１発話の音声を上記第２発話に対応するコマンド又はアクションに関連付けるステップと
を含む。
【００３１】
本発明の１つの実施態様では、上記第１の判断ステップが、上記第１の判断とともに、上記第１発話に対応する第１の音素列を生成するステップをさらに含む。
【００３２】
本発明の１つの実施態様では、上記第１の判断ステップが、上記生成された第１の音素列が上記記憶部に登録された音素列と一致するかどうかをさらに判断するステップをさらに含む。
【００３３】
本発明の１つの実施態様では、上記方法は、コンピュータ・システムに下記ステップをさらに実行させる。該ステップは、上記入力された第１発話の音声が上記記憶部に登録された音声と一致する場合に、上記第１発話に対応するアクションを実行するステップを含む。
【００３４】
本発明の１つの実施態様では、上記第１発話が第１の音声コマンドである。本発明の１つの実施態様では、上記方法は、コンピュータ・システムに下記ステップをさらに実行させる。該ステップは、上記第１の音声コマンドが上記記憶部に登録された音声コマンドと一致する場合に、上記第１の音声コマンドに対応するアクションを実行するステップを含む。
【００３５】
本発明の１つの実施態様では、上記方法は、コンピュータ・システムに下記ステップをさらに実行させる。該ステップは、上記入力された第１発話の音声が上記記憶部に登録された音声と一致しない場合に該第１発話の音声を記録部に格納するステップを含む。
【００３６】
本発明の１つの実施態様では、上記方法は、コンピュータ・システムに下記ステップをさらに実行させる。該ステップは、上記第２の判断とともに、上記第２発話に対応する第２の音素列を生成するステップを含む。
【００３７】
本発明の１つの実施態様では、上記第２の判断するステップが、上記生成された第２の音素列が上記記憶部に登録された音素列と一致するかどうかをさらに判断するステップを含む。
【００３８】
本発明の１つの実施態様では、上記第２発話が第２の音声コマンドである。本発明の１つの実施態様では、上記方法は、コンピュータ・システムに下記ステップをさらに実行させる。該ステップは、上記入力された第２発話の音声が上記記憶部に登録された音声と一致する場合に、上記第２発話に対応するアクションを実行するステップを含む。
【００３９】
本発明の１つの実施態様では、上記第２発話が第２の音声コマンドである。本発明の１つの実施態様では、上記方法は、コンピュータ・システムに下記ステップをさらに実行させる。該ステップは、上記第２の音声コマンドが上記記憶部に登録された音声コマンドと一致する場合に、上記第２の音声コマンドに対応するアクションを実行するステップを含む。
【００４０】
本発明の１つの実施態様では、上記方法は、コンピュータ・システムに下記ステップをさらに実行させる。該ステップは、上記第２発話の音素列が上記第１発話の音素列と似ている場合に、上記第１発話の音声を上記記憶部に登録するかどうかを判定するステップを含む。
【００４１】
本発明の１つの実施態様では、上記方法は、コンピュータ・システムに下記ステップをさらに実行させる。該ステップは、上記登録された発話の音素列を上記記憶部から削除するかどうかを判定するステップを含む。
【００４２】
本発明の１つの実施態様では、上記方法は、コンピュータ・システムに下記ステップをさらに実行させる。該ステップは、上記第２発話の音素列が上記第１発話の音素列と似ていない場合に、上記第１発話の音声を上記第２発話に対応するコマンド又はアクションに関連付けるかどうかをユーザに問い合わせるステップを含む。
【００４３】
本発明の１つの実施態様では、上記関連付けするステップが、上記ユーザによって上記関連付けを行う命令を受信することに応じて、上記第１発話の音声を上記第２発話に対応するコマンド又はアクションに関連付けるステップを含む。
【００４４】
本発明の１つの実施態様では、上記方法は、コンピュータ・システムに下記ステップをさらに実行させる。該ステップは、上記第２発話の音素列が上記第１発話の音素列と似ていない場合に、上記第１発話の音声に対して上記第２発話に対応するコマンド又はアクションを選択することを許すステップを含む。
【００４５】
本発明の１つの実施態様では、上記選択を許すステップが、音声コマンドのリストを提示するステップを含む。
【００４６】
本発明の１つの実施態様では、上記第１発話の音声を上記第２発話に対応するコマンド又はアクションに関連付けるステップが、上記第１発話の音声を上記第２発話の音声のバリエーションとして登録するステップを含む。
【００４７】
本発明の１つの実施態様では、上記方法は、コンピュータ・システムに下記ステップをさらに実行させる。該ステップは、
上記入力された第２発話の音声が上記記憶部に登録された音声と一致しない場合に、第３発話の入力をさらに要求するステップと、
上記入力された第３発話の音声が上記記憶部に登録された音声と一致するかどうかを判断するステップと、
上記第３発話の音声が上記記憶部に登録された音声と一致する場合に、上記第３発話の音素列と上記第２発話の音素列とを比較するステップと、
上記第３発話の音素列が上記第２発話の音素列と似ている場合に、上記第２発話の音声を上記第３発話に対応するコマンド又はアクションに関連付けるステップと
を含む。
【００４８】
本発明はまた、発話入力の音声認識のための方法を提供する。該方法は、コンピュータ・システムに下記ステップを実行させる。
該ステップは、
第１発話の入力に応答して、該入力された第１発話の音声が記憶部に登録された音声と一致するかどうかを判断するステップと、
上記入力された第１発話の音声が上記記憶部に登録された音声と一致する場合に、上記第１発話に対応するアクションを実行するステップと、
上記入力された第１発話の音声が上記記憶部に登録された音声と一致しない場合に、第２発話の入力を要求するステップと、
上記入力された第２発話の音声が上記記憶部に登録された音声と一致するかどうかを判断するステップと、
上記第２発話の音声が上記記憶部に登録された音声と一致する場合に、上記第２発話の音素列と上記第１発話の音素列とを比較するステップと、
上記第２発話の音素列が上記第１発話の音素列と似ている場合に、上記第１発話の音声を上記第２発話に対応するコマンド又はアクションに関連付けるステップと、
上記第２発話の音素列が上記第１発話の音素列と似ていない場合に、上記第１発話の音声を上記第２発話に対応するコマンドに関連付けるかどうかをユーザに問い合わせるステップと、
上記第２発話の音声が上記記憶部に登録された音声と一致しない場合に、
第３発話の入力をさらに要求するステップと、
上記入力された第３発話の音声が上記記憶部に登録された音声と一致するかどうかを判断するステップと、
上記第３発話の音声が上記記憶部に登録された音声と一致する場合に、上記第３発話の音素列と上記第２発話の音素列とを比較するステップと、
上記第３発話の音素列が上記第２発話の音素列と似ている場合に、上記第２発話の音声を上記第３発話に対応するコマンド又はアクションに関連付けるステップと
を含む。
【００４９】
本発明はまた、発話入力の音声認識のためのコンピュータ・プログラムを提供する。該コンピュータ・プログラムは、コンピュータ・システムに上記方法のいずれか一つに記載の各ステップを実行させる。
【発明の効果】
【００５０】
本発明の実施形態に従うコンピュータ・システムは、音声認識及び音素取得を同時に複数回行うことにより、音声認識成功時の音声コマンドに対して、失敗時の異なる音素列を同じコマンドとして追加登録する。このことによって、音声認識と同時に失敗時の異なる音素列を追加的に登録する処理が同時に行えるので、ユーザの音声の登録作業が簡略化される。また、ユーザは、ある音声コマンドに対して、どのような発話が登録されているかを気にする必要がない。また、本発明の実施形態に従うコンピュータ・システムは、該コンピュータ・システムの出荷後に、ユーザに応じたバリエーションの単語又はフレーズを追加登録できることから、音声の認識精度が向上する。単語又はフレーズを追加登録できることから、本発明の実施形態に従うコンピュータ・システムの出荷時に、音声認識のための辞書の容量を小さくすることが可能である。
【発明を実施するための最良の形態】
【００５１】
本発明の実施形態において、「発話」とは、ユーザによってコンピュータ・システムに入力される発話をいう。「発話入力」は例えば、コンピュータ・システムに接続された音声入力部、例えばマイクロフォン又はサウンドカードを通して入力される。
本発明の実施形態において、「記憶部」は、音声及び／又は音素列についてのデータを含む。「記憶部」は、データベースであってよい。該記憶部は、コンピュータ・システム内若しくはコンピュータ・システム外の記憶装置、又はコンピュータ・システムにネットワークを介して接続されたサーバ、プロキシの記憶装置に配置されうる。
本発明の実施形態において、「音声認識」の手法として、慣用の技術が使用されうる。例えば、音声認識技術として、ＩＢＭ  Ｅｍｂｅｄｄｅｄ  ＶｉａＶｏｉｃｅ（ＥＶＶ）を使用することができる。音声認識では、認識エンジン、単語又はフレーズ辞書、音響モデルを使用して、入力された発話について単語又はフレーズの認識の処理が行われる。
本発明の実施形態において、「音素列」は、音韻論で、任意の個別言語において意味の区別（弁別）に用いられる最小の音の単位を指す。音素は/ /で囲んで表記する。音素に使う記号は自由であり、各言語固有の音素文字が使われることもあるし、国際音声字母が使われることもある。
本発明の実施形態において、音素列間の比較の手法として、慣用の技術が使用されうる。例えば、音素列が似ているかどうかの判定は、例えばＩＢＭ  ＥＶＶにおける音素列を比較するＡＰＩを使用することができる。音素列を比較するＡＰＩは例えば、esrCompareBaseformsである。
本発明の実施形態において、音声が一致するとは、認識結果の単語又はフレーズが、あらかじめ定義された閾値以上又はそれを超える値（スコア）で辞書（記憶域内の単語又はフレーズの集合）内の単語又はフレーズと一致することをいう。所定の閾値は、言語によっても変わりうる。また、音声が一致したとは、該音声に対応するアクションが実行されることで判定することも可能である。
本発明の実施形態において、音声が一致しないとは、上記あらかじめ定義された閾値以上又はそれを超える単語又はフレーズが上記辞書内にみつからないことをいう。また、音声が一致しないことは、該音声に対応するアクションが実行されなかったことで判定することも可能である。
本発明の実施形態において、音素列が似ているとは、音素列中の音素の一致度が、あらかじめ定義された閾値以上又はそれよりも高いことをいう。所定の閾値は、言語によっても変わりうる。
本発明の実施形態において、音素列が似ていないとは、音素列中の音素の一致度が、あらかじめ定義された閾値以下又はそれよりも低いことをいう。
本発明の実施形態において、「コンピュータ・システム」は、車載機器、例えばカーナビゲーション・システム、ハンドヘルド・コンピュータ、パーソナル・デジタル・アシスタント、携帯電話又はカーナビゲーション・システム以外のナビゲーション・システムを含むが、これらに制限されない。
【００５２】
以下、図面に従って、本発明の実施形態を説明する。本実施形態は、本発明の好適な態様を説明するためのものであり、本発明の範囲をここで示すものに限定する意図はないことを理解されたい。また、以下の図を通して、特に断らない限り、同一符号は、同一の対象を指す。
【００５３】
図１Ａは、本発明の実施態様である、音声認識システムの概要を示す。
音声認識システム（１０１）は、ナビゲーション・システム、ハンドヘルド・コンピュータ、パーソナル・デジタル・アシスタント、又は携帯電話でありうる。
音声認識システム（１０１）は、認識処理部（１０２）、判断部（１０３）、記憶部（１０４）、要求部（１０５）、比較部（１０６）、関連付け部（１０７）、問合部（１０８）、選択部（１０９）、登録部（１１０）、ポリシー（１１１）、実行部（１１２）、及び削除部（１１３）を含む。
認識処理部（１０２）は例えば、認識エンジン、単語又はフレーズ辞書、及び音響モデルを含む。認識エンジンは、発話が音声入力部（図示せず）、例えばマイクロフォン又はサウンドカードマイクを通して入力されると、該入力された発話について単語又はフレーズの音声認識の処理を、単語又はフレーズ辞書及び音響モデルを使用して実行し、同時に音素列を生成する。認識の処理は、発話と単語又はフレーズとのマッチングを行うことである。認識された音声と、生成された音素列は例えば、音素列が生成されることによって関連付けられる。
判断部（１０３）は、認識処理部（１０２）において処理された音声データが記憶部（１０４）内に格納された音声データと一致するかどうかを判断する。詳細には、判断部（１０３）は、ユーザによって最初の発話、例えば音声コマンドが入力されると、該音声コマンドの音素列が記憶部（１０４）に登録された音素列と一致するかどうかを判断する。同様に、判断部（１０３）は、ユーザによって２回目以降の発話、例えば音声コマンドが入力されると、該音声コマンドの音素列が記憶部（１０４）に登録された音素列と一致するかどうかを判断する。
記憶部（１０４）は、判断部（１０３）において使用するための音声データ、音素列データを格納する。記憶部（１０４）は例えば、データベースでありうる。
要求部（１０５）は、ユーザによって最初に入力された発話（第１発話）の音声が記憶部（１０４）に登録された音声と一致しない場合に、２回目の発話（第２発話）の入力を要求する。同様に、要求部（１０５）は、ユーザによって２回目に入力された発話（第２発話）の音声が記憶部（１０４）に登録された音声と一致しない場合に、３回目の発話（第３発話）の入力を要求する。以降、予め設定された回数について、要求部（１０５）は、ユーザに発話の入力を求める。
比較部（１０６）は、第２発話の音声が記憶部（１０４）に登録された音声と一致する場合に、第２発話の音素列と第１発話の音素列とを比較する。同様に、比較部（１０６）は、第ｎ発話の音声が記憶部（１０４）に登録された音声と一致する場合に、第ｎ発話の音素列と第ｎ−１発話の音素列とを比較する。
関連付け部（１０７）は、第２発話の音素列が第１発話の音素列と似ている場合に、第１発話の音声を第２発話に対応するコマンド又はアクションに関連付ける。同様に、関連付け部（１０７）は例えば、第ｎ発話の音素列が第ｎ−１又はそれ以前の発話の音素列と似ている場合に、第ｎ−１又はそれ以前の発話の音声を第ｎ発話に対応するコマンドに関連付ける。
問合部（１０８）は、第２発話の音素列が第１発話の音素列と似ていない場合に、第１発話の音声を第２発話に対応するコマンドに関連付けるかどうかをユーザに問い合わせる。同様に、問合部（１０８）は、第ｎ発話の音素列が第ｎ−１発話の音素列と似ていない場合に、第ｎ−１発話の音声を第ｎ発話に対応するコマンドに関連付けるかどうかをユーザに問い合わせる。
選択部（１０９）は、第２発話の音素列が第１発話の音素列と似ていない場合に、第１発話の音声に対応するコマンドを選択することを許す。同様に、選択部（１０９）は例えば、第ｎ発話の音素列が第ｎ−１又はそれ以前の発話の音素列と似ている場合に、第ｎ−１又はそれ以前の音声に対応するコマンドを選択することを許す。
登録部（１１０）は、第２発話の音素列が第１発話の音素列と似ている場合に、第１発話の音声データ、特に第１発生の音素列を記憶部（１０４）に登録するかどうかを判定するポリシーを参照し、該ポリシーに従い第１発話の音声データを記憶部（１０４）に登録するかどうかを判定する。
ポリシー（１１１）は例えば、ノイズ比の高さ、単語又はフレーズの使用頻度、又は音素列の並びに基づくがこれに限定されない。
実行部（１１２）は、入力された第１発話の音声が記憶部（１０４）に登録された音声と一致する場合に、第１発話に対応するアクションを実行する。特には、実行部（１１２）は、入力された第１の音声コマンドが記憶部（１０４）に登録された音声と一致する場合に、第１の音声コマンドに対応するアクションを実行する。同様に、実行部（１１２）は、入力された第ｎ発話の音声が記憶部（１０４）に登録された音声と一致する場合に、第ｎ発話に対応するアクションを実行する。特には、実行部（１１２）は、入力された第ｎの音声コマンドが記憶部（１０４）に登録された音声と一致する場合に、第ｎの音声コマンドに対応するアクションを実行する。
アクションは、音声認識システム（１０１）が実装される製品によって異なる。例えば、音声認識システム（１０１）がカーナビゲーション・システムの場合、アクションは例えば、検索のためのウィンドウを表示する、検索キーワードに従い所定の目的地までの経路を表示する、ＤＶＤ再生機能又は音楽再生機能を呼び出す、カーナビゲーション・システムの電源をオン／オフする、であるがこれらに限定されない。
削除部（１１３）は、記憶部（１０４）に登録された音声データ又は音素列データをユーザが削除することを許す。削除する理由は、音声データ又は音素列データを格納する記憶部の容量にも限界があり、さらに音素列のバリエーションが増加し過ぎることによって認識率が却って低下するのを防ぐためである。
削除の対象は、使用頻度の低い音声データ又は音素列データである。音声認識システム（１０１）は、使用頻度の低い音声データ又は音素列データをリストとしてユーザに提示する提示部を有してもよい。該提示は、削除対象でありうる音声コマンドとともに、該音声コマンドを最後に使用した日付、該音声コマンドを使用した回数をディスプレイ上に同時に表示するようにしてもよい。該表示は例えば、ウィンドウ形式で表示される。代替的に、削除対象でありうる音声コマンドをディスプレイ上に表示する代わりに、該音声コマンドを音声で再生して削除するかどうかをユーザに都度確認しながら行うようにしてもよい。
【００５４】
図１Ｂは、本発明の実施態様である、音声、音素、及び音声コマンドに対するアクションの概念図を示す。
音声認識システム（図１Ａ、１０１）の音声入力部（１２２）に音声コマンドが入力される。認識処理部（１２３）は、入力された音声について、単語又はフレーズとしての音声認識と音素列の認識とを行う。記憶部（１２４）、例えばメモリー内は、認識処理部（１２３）において認識された音声コマンド「高速道路を利用」を格納する。実行部（図１Ａ、１１２）は、該認識された音声コマンドに対応するコマンドがコマンド群（１２５）にあるかどうかを確認する。コマンド群は、予め所定の記憶部、例えばデータベースに格納されている。上記認識された音声コマンドに対応するコマンドがコマンド群において見つけられた場合、音声コマンド「高速道路を利用」に対応するアクション「目的地までの高速道路を利用した経路を表示する」をアクション群（１２６）から見つけ、該アクションを実行する。
【００５５】
図２Ａは、本発明の実施態様である、音声認識のための方法の概要（その１）を示す。
ステップ２０１では、ユーザによって最初の発話（第１発話）が音声入力部を通して入力される。音声認識システム（図１Ａ、１０１）が、音声認識を開始する。音声認識の開始は、第１発話が入力される前又は後のいずれであってもよい。入力された発話は電気的な音声信号に変換されて、認識エンジンに渡される。認識エンジンは、該入力された音声信号について、単語又はフレーズを認識し、同時に音素列を生成する。第１発話についての認識された単語又はフレーズ及び生成された音素列は、メモリー又はハードディスク・ドライブ若しくはソリッド・ステート・ディスク内に格納される。
例えば、ユーザが高速道路を利用し、目的地に行きたいと望む場合、ユーザは、カーナビゲーション・システムに「コーソクドーロオリヨウ」と発話する。
ステップ２０２では、音声認識システムが、第１発話の入力に応答して、該入力された第１発話の音声が記憶部に登録された音声と一致するかどうかを判断する。
上記例では、１回目の発話が、「高速道路を利用」について、１回目の発話の音素列が「k o o: s o k u d o o: r o o: r i y o o:」であると認識されたとする。一方、記憶部に登録されている音素列は、「k o u s o k u d o u r o o r i y o u」であるとする。該例では、１回目の発話の音素列が「ｕ」について長音符「―」であると認識されているか又は認識されていないために、１回目の発話の音素列「k o o: s o k u d o o: r o o: r i y o o:」と記憶部に登録されている音素列「k o u s o k u d o u r o o r i y o u」とは、一致しないと判断される。
ステップ２０３では、音声認識システム（１０１）が、上記一致がない場合、２回目の発話（第２発話）の入力をユーザに要求する。該要求は例えば、音声による案内又は音声認識システムに接続された表示装置上に表示されうる。また、第１発話の音声又は音素列が、メモリー又はハードディスク・ドライブ若しくはソリッド・ステート・ディスク内に格納される。
例えば、ユーザは、カーナビゲーション・システムに「コウソクドウロオリヨウ」と発話する。
ステップ２０４では、音声認識システム（１０１）が、上記一致がある場合、第１発話に対応するアクションを実行する。
ステップ２０５では、ユーザによって第２発話が音声入力部を通して入力される。入力された発話は電気的な音声信号に変換されて、認識エンジンに渡される。認識エンジンは、該入力された発話は電気的な音声信号に変換されて、認識エンジンに渡される。認識エンジンは、該音声信号について、単語又はフレーズを認識し、同時に音素列を生成する。第２発話についての認識された単語又はフレーズ及び生成された音素列は、メモリー又はハードディスク・ドライブ若しくはソリッド・ステート・ディスク内に格納される。
上記例では、２回目の発話が、「高速道路を利用」について、２回目の発話の音素列が「k o u s o k u d o u r o o r i y o u」であると認識されたとする。
ステップ２０６では、音声認識システム（１０１）が、第２発話の入力に応答して、該入力された第２発話の音声が記憶部に登録された音声と一致するかどうかを判断する。
上記例では、２回目の発話の音素列「k o u s o k u d o u r o o r i y o u」が記憶部に登録されている音素列「k o u s o k u d o u r o o r i y o u」と一致する。
ステップ２０７では、音声認識システム（１０１）が、上記一致がある場合、第２発話の音素列と第１発話の音素列とを比較する。
上記例では、２回目の発話の音素列「k o u s o k u d o u r o o r i y o u」と１回目の発話の音素列「k o o: s o k u d o o: r o o: r i y o o:」とを比較する。
ステップ２０８では、音声認識システム（１０１）が、上記一致がある場合、第２発話に対応するアクションをさらに実行する。
該例では、２回目の発話の音素列「k o u s o k u d o u r o o r i y o u」が記憶部に登録されている音素列「k o u s o k u d o u r o o r i y o u」と一致する。よって、２回目の発話の音素列と記憶部に登録されている音素列とは、一致すると判断される。よって、「高速道路を利用」に対応するアクションとして、例えば、カーナビゲーション・システムの表示装置上に目的地までの高速道路を利用した経路が表示される。
ステップ２０９では、音声認識システム（１０１）が、上記一致がない場合、図２Ｂに示すステップに進む。
ステップ２１０では、音声認識システム（１０１）が、第２発話の音素列が第１発話の音素列と似ている場合、第１発話の音声を第２発話に対応するコマンド又はアクションに関連付ける。特には、第１の音素列を第２の音声コマンドに対応するコマンド又はアクションに関連付ける。該関連付けによって、第１の音声コマンドと同じ発話を以降に行うことによって、第２の音声コマンドに対応するアクションを実行することが可能になる。従って、第２の音声コマンドと同じ発話を以降に要求されることがない。
上記例では、２回目の発話の音素列「k o u s o k u d o u r o o r i y o u」が１回目の発話の音素列「k o o: s o k u d o o: r o o: r i y o o:」と比較して「u」が「o:」に及び「o」が「o:」に置き換わっているだけであることから、音素列は互いに似ていると判断される。よって、１回目の発話の音素列「k o o: s o k u d o o: r o o: r i y o o:」が、２回目の発話の２回目の発話の音素列「k o u s o k u d o u r o o r i y o u」に対応するコマンド又はアクションに関連付けられる。代替的には、１回目の発話の音素列「k o o: s o k u d o o: r o o: r i y o o:」が、音素列「ko u s o k u d o u r o o r i y o u」に関連付けられる。
ステップ２１１では、第２発話の音素列が第１発話の音素列と似ていない場合に、第１発話の音声を第２発話に対応するコマンド又はアクションに関連付けるかどうかをユーザに問い合わせる。例えば、記憶部に音声コマンド「エアコン」が登録されており、１回目の音声コマンドが「クーラー」であり、２回目の音声コマンドが「エアコン」であるとする。２回目の音声コマンドと記憶部に登録された単語又はフレーズが一致するが、２回目の音声コマンドの音素列「k u u: r a a:」は、１回目の音声コマンドの音素列「e a k o n」と似ていない。しかし、クーラーという音声コマンドで行われるアクションと、エアコンという音声コマンドで行われるアクションとが、”エアコンの電源を入れる”という点で共通しているために、ユーザは、１回目の音声コマンド「クーラー」に、２回目の音声コマンドのアクションであるエアコンの”エアコンの電源を入れる”を関連付けることができる。
代替的に、ステップ２１１では、音声認識システム（１０１）が、第２発話の音素列が第１発話の音素列と似ていない場合に、第１発話の音声に対応するコマンドを選択することを許す。該選択は例えば、ユーザが、提示された音声コマンドのリストの中から所望の音声コマンドを選択することによって行われる。該選択が行われると、関連付け部は、第１発話の音声を第２発話の音声のバリエーションとして登録する（ステップ２１７）。該登録によって、発音が違う場合に、ユーザに確認して第１の音声コマンドを第２の音声コマンドの同意語として登録する機会が与えられる。
なお、第１発話の音声を第２発話の音声のバリエーションとして登録する場合に、登録を行うかどうかの判定基準に従い、登録を行うようにすることができる。判定基準は、ポリシーに格納することができる。
判定基準は、下記の通りである。
・ノイズ比の高さ。
−例えばS/N比が所定の値よりも高いか。S/N比は、発話された環境によって異なりうる。
・登録しようとしている単語又はフレーズの使用頻度の高さ。
−現在位置から遠い住所はあまり使われることはないだろう。
−都道府県などだけは追加してもよいかもしれない。
−一般名詞と固有名詞
−神社は一般名詞であるから利用頻度が高いであろうが、固有名詞である熊野神社は利用頻度が低いであろう。
−よく知られた固有名詞とそうでないもの。
−マクドナルド（商標）は利用頻度が高いであろうが、マクドナルド港南中央点は利用頻度が低いであろう。
−利用頻度の高いコマンドとそうでないもの。
−カーナビゲーション・システムにおいて、”自宅へ帰る”は利用頻度が高いであろうが、”今日の運勢は”は利用頻度が低いであろう。
・音素列の並び
−ありえない音素の並びを検出したら登録しない。
−“んんんんん”（同じ音素が３つ以上続く）、但し、このありえない音素の並びは、言語によって異なる。
・位置情報、個人の嗜好情報などを利用する。
−現在位置からの距離、自宅位置からの距離によって頻度を判断する。
−登録地点
−好きな食べ物、よく行くお店
さらに、登録した音声データ又は音素列データを削除することを可能にするステップが用意される（図示せず）。
【００５６】
図２Ｂは、本発明の実施態様である、音声認識のための方法の概要（その２）を示す。
ステップ２２１では、音声認識システム（図１Ａ、１０１）が、ステップ２０６において行われた判断において一致がない場合、３回目の発話（第３発話）の入力をユーザに要求する。該要求は例えば、音声による案内又は音声認識システムに接続された表示装置上に表示されうる。また、第１発話の音声又は音素列が、メモリー又はハードディスク・ドライブ若しくはソリッド・ステート・ディスク内に格納される。
ステップ２２２では、音声認識システム（１０１）が、ユーザによって第３発話が音声入力部を通して入力される。入力された発話がアナログである場合、アナログ−デジタル変換器を介して、デジタル・データに変換されてもよい。認識エンジンは、該入力された発話について、単語又はフレーズを認識し、同時に音素列を生成する。第２発話についての認識された単語又はフレーズ及び生成された音素列は、メモリー又はハードディスク・ドライブ若しくはソリッド・ステート・ディスク内に格納される。
ステップ２２３では、音声認識システム（１０１）が、第３発話の入力に応答して、該入力された第３発話の音声が記憶部に登録された音声と一致するかどうかを判断する。
ステップ２２４では、音声認識システム（１０１）が、上記一致がある場合、第３発話の音素列と第２発話の音素列とを比較する。
ステップ２２５では、音声認識システム（１０１）が、上記一致がある場合、第３発話に対応するアクションを実行する。
ステップ２２６では、音声認識システム（１０１）が、上記一致がない場合、図２Ｂのステップの最初（Ａ）に戻る。
ステップ２２７では、音声認識システム（１０１）が、第３発話の音素列が第２発話の音素列と似ている場合、第２発話の音声を第３発話に対応するコマンドに関連付ける。特には、第２の音声コマンドを第３の音声コマンドに対応するアクションに関連付ける。該関連付けによって、第２発話と同じ発話を以降に行うことによって、以降の発話を要求されることなく、第３の音声コマンドに対応するアクションを実行することが可能になる。
ステップ２２８では、音声認識システム（１０１）が、第２発話の音素列が第１発話の音素列と似ていない場合に、第１発話の音声に対応するコマンドを選択することを許す。該選択は例えば、ユーザが、提示された音声コマンドのリストの中から所望の音声コマンドを選択することによって行われる。該選択が行われると、関連付け部は、第１発話の音声を第２発話の音声のバリエーションとして登録する（ステップ２２７）。
【００５７】
図３Ａは、本発明の実施態様である、音声認識の仕組みの概要（その１）を示す。
図３Ａの音声認識は、グラマー（コマンド）を使用した音声認識を示す。
車載機器では、コマンドの認識が一般的に使用されている。
発話が例えば、「atama  ga  itai」であるとする。信号処理部（３０１）は、該発話が入力されると、当該発話を電気的な音声信号に変換して認識エンジン（３０２）に渡す。認識エンジン（３０２）は、辞書（３０３）及び音響モデル（３０４）を使用して、該音声信号について単語又はフレーズを認識する。
辞書（３０３）は、グラマーの集合体である認識辞書でありうる。グラマーは例えば、”<complaint>=<bodypart>が痛い”、で表記される。音声信号について、<bodypart>部分が、辞書（３０３）を使用して認識される。辞書には、頭、肩、腕、足が登録されている。
音響モデル（３０４）では、音響的な特徴が用いられる。音響的な特徴とは、認識対象の音素がそれぞれどのような周波数特性を持っているかを表したものである。音響モデルの表現としては、混合正規分布を出力確率とした隠れマルコフモデル（ＨＭＭ）が適用可能である。隠れマルコフモデルが適用可能であるのは、音声信号が断片的又は短時間の定常信号と見ることができるからである。
認識エンジン（３０２）は、<bodypart>部分が「頭」であることを認識する。そして、認識エンジン（３０２）は、認識した単語列「頭が痛い」をアプリケーション・プログラム（３０５）に渡す。
【００５８】
図３Ｂは、本発明の実施態様である、音声認識の仕組みの概要（その２）を示す。
図３Ｂの音声認識は、大語彙認識（口述筆記）を使用した音声認識を示す。
発話が例えば、「posuto-wa-akai-maru」であるとする。信号処理部（３１１）は、該発話が入力されると、当該発話を電気的な音声信号に変換して認識エンジン（３１２）に渡す。認識エンジン（３１２）は、言語モデル（３１３）及び音響モデル（３１４）を使用して、該音声信号について単語又はフレーズを認識する。
言語モデル（３１３）では、言語的な特徴が用いられる。言語的な特徴とは、音素の並び方に関する制約を表したものである。例えば、「あなた (a n a t a)」という発声の直後には、「が（g a）」や「は（w a）」などの発声が続く確率が高い、などの制約である。言語モデルの表現として、n-gramが用いられる。また、言語モデルの表現として、文脈自由文法が用いられる。n-gramは、直前の(N-1)個の単語を見て、次の単語を予測するモデルである。文脈自由文法は、全生成規則が、V→ｗの形式である形式文法のひとつである。ここで、Vは非終端記号であり、ｗは終端文字と非終端記号から構成される文字列である。「文脈自由」という用語は前後関係に依存せずに非終端記号Vをｗに置換できることを意味する。n-gramは例えば認識対象の言語が大規模な場合に用いられ、文脈自由文法は例えば認識対象の言語が人手で網羅出来る程度に小さい場合に用いられる。
音響モデル（３１４）では、音響的な特徴が用いられる。音響的な特徴とは、認識対象の音素がそれぞれどのような周波数特性を持っているかを表したものである。音響モデルの表現としては、混合正規分布を出力確率とした隠れマルコフモデル（ＨＭＭ）が適用可能である。隠れマルコフモデルが適用可能であるのは、音声信号が断片的又は短時間の定常信号と見ることができるからである。
認識エンジン（３１２）は、音声信号が「ポストは赤い  丸」であることを認識する。そして、認識エンジン（３１２）は、認識した単語列「ポストは赤い  丸」をアプリケーション・プログラム（３１５）に渡す。
【００５９】
図４Ａは、本発明の実施態様である、音声認識をするための処理の流れを示す。
該音声認識をするための処理は、ＩＢＭ  ＥＶＶを用いたキャラクタ・ユーザ・インターフェース（ＣＵＩ）のＷｉｎｄｏｗｓ（商標）アプリケーションでの動作例である。
メイン・アプリケーション・スレッド（４０１）は、ユーザからのエンター入力により、音声認識処理のメインアプリケーションスレッド内での処理（ステップ４０２〜４０７）を開始する。
ステップ４０２では、音声認識システム（１０１）が、ユーザからのエンター入力により、音声認識を開始するためにマイクロフォンをオンにする。発話が開始されると、該発話が音声認識システム（１０１）に入力される。
ステップ４０３では、音声認識システム（１０１）が、認識エンジンの処理を開始するために、例えば、音声認識ＡＰＩ  esrRecoStartListeningをコールする。音声認識システム（１０１）が、音声の入力待ち受け状態になる。
ステップ４０４では、音声認識システム（１０１）が、ユーザからの再度のエンター入力により、発話が終了したと判断する。音声認識システム（１０１）が、音声認識が終了したためにマイクロフォンをオフにする。
ステップ４０５では、音声認識システム（１０１）が、認識エンジンの処理を終了するために、例えば、音声認識ＡＰＩ  esrRecoStopListeningをコールする。音声認識システム（１０１）は、音声の入力待ち受け状態を解除する。
ステップ４０６では、音声認識システム（１０１）が、認識エンジンから呼ばれるコールバック関数を通してエンジンの状態をチェックし、音声の認識結果の取得を待つ。
ステップ４０７では、音声認識システム（１０１）は、音声の認識結果の出力をする。音声認識システム（１０１）は、音声の認識結果が出力されると、各コマンドを実行する。
図４Ａの４０８はＥＳＲ認識エンジンスレッドであり、音声認識処理中、一定の間隔で逐次呼び出される。
ステップ４０９では、音声認識処理が開始されると、音声認識システム（１０１）は、音声認識結果が出るまでの間、認識エンジンが自らの状態（RECOGNITION STATE）を知らせるために、コールバック関数をコールし続ける。コールバック関数はユーザの定義した関数である。RECOGNITION STATEは、認識エンジンが内部で保持する状態である。
ステップ４１０では、音声認識システム（１０１）が、認識エンジンの状態を取得し、関数内にて目的の状態（例えば、認識完了)かどうかを確認する。判断結果がＹＥＳの場合、ステップ４１１に進む。一方、判断結果がＮＯの場合、ステップは４１２に進む。
ステップ４１１では、音声認識システム（１０１）が、信号の状態をアプリケーション側と共有する。
ステップ４１２では、音声認識システム（１０１）が、処理を完了し、最初に戻る。
ステップ４１３では、音声認識システム（１０１）が、信号の状態をアプリケーションと共有する。
図４Ａの４１４では、音声認識処理が開始されると、音声認識システム（１０１）が、音声認識結果が出るまでの間、認識エンジンが自らの状態を知らせるために、コールバック関数をコールし続ける。コールバック関数はユーザの定義した関数である。
ステップ４１５では、音声認識システム（１０１）が、アプリケーションが必要とする認識結果を入力する。認識結果は、たとえばスペル、ＩＤなどである。音声認識システム（１０１）が、認識結果を知らせるために、コールバック関数をコールし続ける。
ステップ４１６では、音声認識システム（１０１）が、音声認識結果をフレーズという形で様々な情報（スペル、音素列、ＩＤ、スコアなど）を保持するために、所望のデータを取り出す。
ステップ４１７では、音声認識システム（１０１）が、処理を完了し、最初に戻る。
ステップ４１８では、音声認識システム（１０１）が、イベントをアプリケーションと共有する。
【００６０】
例えば、認識辞書に単語「エアコン」及び「ラジオ」が登録されているとする。ユーザが「クーラー」と発話したとする。この場合、ユーザの発話「クーラー」に対応する単語が認識辞書にないので、認識結果は該当なしとなる。認識エンジンとしては、合致する結果がなかった場合に、確からしさの低い結果として、ユーザにとって意図しない結果が出力される可能性がある。
【００６１】
図４Ｂは、本発明の実施態様である、音素列を生成するための処理の流れを示す。
メイン・アプリケーション・スレッド（４２１）は、ユーザからのエンター入力により、音素列認識処理のメインアプリケーションスレッド内での処理（ステップ４２２〜４２７）を開始する。
ステップ４２２では、音声認識システム（１０１）が、ユーザからのエンター入力により、音素列認識を開始するためにマイクロフォンをオンにする。発話が開始されると、該発話が音声認識システム（１０１）に入力される。
ステップ４２３では、音声認識システム（１０１）が、認識エンジンの処理を開始するために、例えば、音声認識ＡＰＩ  esrAcbfStartListeningをコールする。音声認識システム（１０１）が、音声の入力待ち受け状態になる。Acbfは、音素列（Acoustic baseform）の略である。
ステップ４２４では、音声認識システム（１０１）が、ユーザからの再度のエンター入力により、発話が終了したと判断する。音声認識システム（１０１）が、音声認識が終了したためにマイクロフォンをオフにする。
ステップ４２５では、音声認識システム（１０１）が、認識エンジンの処理を終了するために、例えば、音声認識ＡＰＩ  esrRecoStopListeningをコールする。音声認識システム（１０１）は、音声の入力待ち受け状態を解除する。
ステップ４２６では、音声認識システム（１０１）が、認識エンジンから呼ばれるコールバック関数を通してエンジンの状態をチェックし、音素列の認識結果の取得を待つ。
ステップ４２７では、音声認識システム（１０１）が、音素列の認識結果の出力をする。音声認識システム（１０１）は、音素列の認識結果が出力されると、各コマンドを実行する。
図４Ｂの４２８は、ＥＳＲ認識エンジンスレッドであり、音素列認識処理中、一定の間隔で逐次呼び出される。
ステップ４２９では、音声認識処理が開始されると、音声認識システム（１０１）が、音声認識結果が出るまでの間、認識エンジンが自らの状態（RECOGNITION STATE）を知らせるために、コールバック関数をコールし続ける。コールバック関数はユーザの定義した関数である。RECOGNITION STATEは、認識エンジンが内部で保持する状態である。
ステップ４３０では、音声認識システム（１０１）が、認識エンジンの状態を取得し、関数内にて目的の状態（例えば、認識完了）かどうかを確認する。判断結果がＹＥＳの場合、ステップ４３１に進む。一方、判断結果がＮＯの場合、ステップは４３２に進む。
ステップ４３１では、音声認識システム（１０１）が、信号の状態をアプリケーション側と共有する。
ステップ４３２では、音声認識システム（１０１）が、処理を完了し、最初に戻る。
ステップ４３３では、音声認識システム（１０１）が、信号の状態をアプリケーションと共有する。
図４Ａの４３４では、音素列認識処理が開始されると、音声認識システム（１０１）が、音素列の認識結果が出るまでの間、認識エンジンが自らの状態を知らせるために、コールバック関数をコールし続ける。コールバック関数はユーザの定義した関数である。
ステップ４３５では、音声認識システム（１０１）が、アプリケーションが必要とする認識結果を入力する。認識結果は、たとえば音素、ＩＤなどである。音声認識システム（１０１）が、認識結果を知らせるために、コールバック関数をコールし続ける。
ステップ４３６では、音声認識システム（１０１）が、音素列認識結果をフレーズという形で様々な情報（スペル、音素列、ＩＤ、スコアなど）を保持するために、所望のデータを取り出す。
ステップ４３７では、音声認識システム（１０１）が、処理を完了し、最初に戻る。
ステップ４３８では、音声認識システム（１０１）が、イベントをアプリケーションと共有する。
【００６２】
例えば、ユーザが「クーラー」と発話したとする。この場合、「クーラー」の音素列「k u u: r a a:」が生成される。
【００６３】
図５Ａは、本発明の実施態様である、音素列同士の比較を示す。
ステップ５０１では、音声認識システム（１０１）が、第１の音素列と第２の音素列を比較する。音素列同士の比較は、音声認識システムに依存するために一概には言えないが、たとえば、単純な方法として音素列中の音素を比較して一致する数を数える。代替的には、音素列同士の比較は例えば、図５Ｂに示す音素列同士を比較するＡＰＩを使用して行われる。
ステップ５０２では、第１の音素列と第２の音素列が似ている場合（ＹＥＳ）、ステップ５０３に進む。一方、第１の音素列と第２の音素列が似ていない場合（ＮＯ）、ステップ５０５に進む。
第１の音素列と第２の音素列とが似ているかどうかは、下記の基準により判断される。
判断基準：音素列中の音素の一致度が、あらかじめ定義された閾値以上であるかそれよりも低いか。
ステップ５０３では、音声認識システム（１０１）が、音の揺らぎを判断する。音の揺らぎの情報は、言語ごとに音素列の変化として対応付けられており、該情報は記憶部に格納されている。例えば、日本語の場合、"o u" という音素列は、"o o:" という音素列へ変化する可能性が高いということが記録されている。音素列同士の揺らぎは例えば、言語ごとに用意された音の揺らぎの情報を使用して求められる。認識された単語又はフレーズが揺らぎのある可能性のある単語かどうかは、与えられた音素列中に、前記記憶部に格納された揺らぎの情報に音素列が部分的に含まれているかどうかを検索することによって、が判定される。
言語による揺らぎの特徴を考慮して音素列同士が似ていると判断された場合、その音素列を他の音素列のバリエーションとして登録する。
言語による揺らぎの特徴を考慮して音素列同士が似ていないと判断された場合（ＮＯ）、ステップ５０５に進む。一方、言語による揺らぎの特徴を考慮して音素列同士が似ていると判断された場合（ＹＥＳ）、ステップ５０４に進む。
ステップ５０５では、音声認識システム（１０１）は、第１の音素列に対応するコマンドが、第２の音素列に対応するコマンドと違うと判断する。
ステップ５０４では、音声認識システム（１０１）は、第１の音素列に対応するコマンドが、第２の音素列に対応するコマンドと同じであると判断する。よって、音声認識システム（１０１）は、第１の音素列を、第２の音素列に対応するコマンド又はアクションに関連付ける。従って、音声認識システム（１０１）は、第１の音素列によって、第２の音素列に対応するコマンドを実行することができる。
【００６４】
図５Ｂは、本発明の実施態様である、音素列比較のためのＡＰＩを示す。
ＡＰＩ  esrCompareBaseformsは、音素列同士を比較するＡＰＩの一例を示す。コンピュータ・システムは、本ＡＰＩを用いて、閾値を用いて音素列が似ているかどうかが判断される。
ＡＰＩ  esrBaseformCompareInfoは、音素列同士の比較した結果が入る構造体の一例を示す。
【００６５】
図６は、本発明の実施態様に係るコンピュータ・システムのブロック図を示す。
コンピュータ・システム（６０１）は、ＣＰＵ（６０２）とメイン・メモリ（６０３）とを含み、これらはバス（６０５）に接続されている。ＣＰＵ（６０２）は好ましくは、３２ビットまたは６４ビットのアーキテクチャに基づくものであり、例えば、インテル社のＸｅｏｎ（商標）シリーズ、Ｃｏｒｅ（商標）シリーズ、ＡＴＯＭ（商標）シリーズ、Ｐｅｎｔｉｕｍ（商標）シリーズ、Ｃｅｌｅｒｏｎ（商標）シリーズ、ＡＭＤ社のＰｈｅｎｏｍ（商標）シリーズ、Ａｔｈｌｏｎ（商標）シリーズなどを使用することができる。バス（６０５）には、音声の入出力を行うためのサウンド・ボード（６０４）が接続される。サウンド・ボード（６０４）には、必要に応じて、マイクロフォン又はスピーカが接続される。バス（６０５）には、ディスプレイ・コントローラ（６０６）を介して、ＬＣＤモニタなどのディスプレイ（６０７）が接続される。ディスプレイ（６０７）は、そのコンピュータ・システム（６０１）上で動作中のソフトウェアについての情報を、適当なグラフィック・インターフェースで表示するために使用される。バス（６０５）にはまた、ＩＤＥ又はＳＡＴＡコントローラ（６０８）を介して、ハードディスク又はシリコン・ディスク（６０９）と、ＣＤ−ＲＯＭ、ＤＶＤ又はＢｌｕ−ｒａｙドライブ（６１０）が接続されている。ＣＤ−ＲＯＭ、ＤＶＤ又はＢｌｕ−ｒａｙドライブ（６１０）は、必要に応じて、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ又はＢＤからプログラムをハードディスク又はシリコン・ディスク（６０９）に追加導入するために使用される。バス（６０５）には更に、キーボード・マウスコントローラ（６１１）を介して、或いはＵＳＢコントローラ（図示せず）を介して、キーボード（６１２）及びマウス（６１３）が接続されている。
【００６６】
通信インタフェース（６１５）は、例えばイーサネットプロトコルに従うものであり、通信コントローラ（６１４）を介してバス（６０５）に接続される。通信インタフェース（６１５）は、コンピュータ・システム（６０１）及び通信回線（６１６）を物理的に接続する役割を担い、コンピュータ・システム（６０１）のオペレーティング・システムの通信機能のＴＣＰ／ＩＰ通信プロトコルに対して、ネットワーク・インターフェース層を提供する。尚、通信回線は、有線ＬＡＮ環境、或いは例えばＩＥＥＥ８０２．１１ａ／ｂ／ｇ／ｎなどの無線ＬＡＮ接続規格に基づく無線ＬＡＮ環境であってもよい。
【００６７】
なお、コンピュータ等のハードウェアを接続するためのネットワーク接続装置として使用できるものとして、上記のネットワーク・スイッチ以外に、これで尽きている訳ではないが、ルータ、ハードウェア管理コンソール等がある。要するに、ネットワーク運用管理用プログラムが導入されているコンピュータからの、所定のコマンドによる問い合わせに対して、それに接続されているコンピュータのＩＰアドレス、ＭＡＣアドレスなどの構成情報を返すことができる機能をもつものである。ネットワーク・スイッチ及びルータは、アドレス解決プロトコル（ＡＲＰ）のための、それに接続されているコンピュータのＩＰアドレス及び、それに対応するＭＡＣアドレスの対のリストを含むＡＲＰテーブルを含み、所定のコマンドによる問い合わせに対して、ＡＲＰテーブルの内容を返す機能をもつ。
【００６８】
以上、実施形態に基づき本発明を説明してきたが、本実施形態に記載されている内容は、本発明の一例であり、当業者なら、本発明の技術的範囲を逸脱することなく、さまざまな変形例に想到できることが明らかであろう。
【図面の簡単な説明】
【００６９】
【図１Ａ】本発明の実施態様である、音声認識システムの概要を示す。
【図１Ｂ】本発明の実施態様である、音声、音素、及び音声コマンドに対するアクションの概念図を示す。
【図２Ａ】本発明の実施態様である、音声認識のための方法の概要（その１）を示す。
【図２Ｂ】本発明の実施態様である、音声認識のための方法の概要（その２）を示す。
【図３Ａ】本発明の実施態様である、音声認識の仕組みの概要（その１）を示す。
【図３Ｂ】本発明の実施態様である、音声認識の仕組みの概要（その２）を示す。
【図４Ａ】本発明の実施態様である、音声認識をするための処理の流れを示す。
【図４Ｂ】本発明の実施態様である、音素列を生成するための処理の流れを示す。
【図５Ａ】本発明の実施態様である、音素列同士の比較を示す。
【図５Ｂ】本発明の実施態様である、音素列比較のためのＡＰＩを示す
【図６】本発明の実施態様に係るコンピュータ・システムのブロック図を示す。
【図１Ａ】
2010072098.tif 000003
【図１Ｂ】
2010072098.tif 000004
【図２Ａ】
2010072098.tif 000005
【図２Ｂ】
2010072098.tif 000006
【図３Ａ】
2010072098.tif 000007
【図３Ｂ】
2010072098.tif 000008
【図４Ａ】
2010072098.tif 000009
【図４Ｂ】
2010072098.tif 000010
【図５Ａ】
2010072098.tif 000011
【図５Ｂ】
2010072098.tif 000012
【図６】
2010072098.tif 000013