(57)【要約】【課題】  ユーザが誤操作により音声認識ボタンを押すと、意図に反して音声合成が中断され、操作性が損なわれる。【解決手段】  音声を合成するステップと、音声認識の開始を指示するステップと、前記音声認識開始の指示にもとづいて前記音声合成を中断するステップと、入力音声中に発声が含まれるかどうかを判定するステップと、前記発声判定の結果にもとづいて中断された音声合成を再開する位置を決定するステップとを備える。【選択図】  図２
2008051883.tif 000002
【特許請求の範囲】
【請求項１】
音声を合成するステップと、
音声を入力するステップと、
前記入力ステップで入力された音声を認識するステップと、
前記音声認識の開始を指示するステップと、
前記音声認識開始の指示にもとづいて前記音声合成を中断するステップと、
前記音声認識開始の指示にもとづいて前記音声入力ステップで入力された音声中に発声が含まれるかどうかを判定するステップと、
前記発声判定の結果にもとづいて前記中断された音声合成を再開する位置を決定するステップとを備えることを特徴とする音声合成制御方法。
【請求項２】
前記音声合成再開位置は、前記中断された音声合成の中断箇所であることを特徴とする請求項１記載の音声合成制御方法。
【請求項３】
前記音声合成再開位置は、前記中断された音声合成の中断箇所から所定量戻った箇所であることを特徴とする請求項１記載の音声合成制御方法。
【請求項４】
前記音声合成の中断は前記音声認識開始の指示のみならず発声判定の結果にもとづいてなされることを特徴とする請求項１記載の音声合成制御方法。
【請求項５】
前記音声認識開始の取り消しを指示するステップをさらに備え、
前記中断された音声合成の再開位置の決定は前記取り消し指示にもとづいてなされることを特徴とする請求項１記載の音声合成制御方法。
【請求項６】
前記中断された音声合成の再開位置の決定は前記音声入力のなされていた時間にもとづいてなされることを特徴とする請求項５記載の音声合成制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声を合成し出力する音声合成を制御するための方法および装置に関するものである。
【背景技術】
【０００２】
従来より、機器を操作するためのユーザインタフェースとして、音声認識・音声合成を用いたものがある。また、音声認識の利用に際して、ユーザが音声入力のタイミングを指示する場合がある。
【０００３】
音声入力タイミングの指示方法には、音声の開始時点をボタン等で指示するものや音声入力中にボタン等を押下し続けるもの等がある。本願では、特許文献１に倣って、音声の開始時点のみを指示するものをトリガ方式、ボタン等を押下し続けるものをプレストーク方式と呼ぶことにする。
【０００４】
周知のように、音声認識では、周囲雑音の影響を受ける。すなわち、目的音以外の混入する環境では、認識率が低下する。そこで、音声認識・音声合成の双方を用いる場合、音声認識中は合成音声を止めるということが行なわれる。
【０００５】
例えば、前記トリガ方式、プレストーク方式の場合、前記ボタン等が押下された際に音声合成を中断する。
【特許文献１】特開平１１−１０９９８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来技術には以下の様な問題があった。
【０００７】
上記トリガ方式、プレストーク方式のいずれにしても、ユーザがうっかりボタン等を押下してしまう誤操作は起こり得るものである。この際、上記従来例に従えば、音声合成は中断されることとなる。一方、ボタンの押下が誤操作であることから、ユーザの要求は合成音声を聞くことである。そのため、ユーザは、中断された音声合成を再開するために、何らかの操作を行なわなければならないこととなる。これは、ユーザに余計な操作を強いていることであり、ユーザの使用感を損ねていると言える。
【課題を解決するための手段】
【０００８】
前記課題を解決するために、本発明における装置では、音声を合成するステップと、音声を入力するステップと、前記入力ステップで入力された音声を認識するステップと、前記音声認識の開始を指示するステップと、前記音声認識開始の指示にもとづいて前記音声合成を中断するステップと、前記音声認識開始の指示にもとづいて前記音声入力ステップで入力された音声中に発声が含まれるかどうかを判定するステップと、前記発声判定の結果にもとづいて前記中断された音声合成を再開する位置を決定するステップとを備える。
【発明の効果】
【０００９】
本発明によれば、ユーザが誤操作によりトリガ/プレストークボタンを押した場合でも、適切に音声合成が再開されユーザの使用感を向上させることが可能になる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照しながら本発明の好適な実施例について説明していく。
【実施例１】
【００１１】
図1は本発明の一実施例におけるハードウェア構成である。
【００１２】
１は数値演算・制御等の処理を行なう中央処理部であり本発明の手順に従って演算を行なう。
【００１３】
２はスピーカやヘッドフォン等の音声出力部であり、合成音声を出力するのに用いられる。
【００１４】
３はタッチパネルやキーボード・ボタン等の入力部であり、ユーザが本装置に対して動作の指示を与えるのに用いられる。後述のトリガボタン301は、入力部3の構成要素である。前記入力部3の各構成要素は、それぞれ独立したボタンであっても良いし、液晶上に表示された仮想的なボタンであっても良い。さらに、状況に応じて同一のボタンを使い分けるように実装されていても良い。
【００１５】
４はマイクロホン等の音声入力部であり、音声認識のためのユーザの発声を入力するのに用いられる。
【００１６】
５はディスク装置や不揮発メモリ等の外部記憶部であり、音声認識に使用される音響モデル501や認識辞書502・音声合成に使用される音声合成用素片辞書503・言語解析に使用される言語解析辞書504等が保持される。さらに、外部記憶部5には、RAM 7に保持される各種情報のうち、恒久的に使用されるべき情報も保持される。また、外部記憶部5は、CD-ROMやメモリカードといった可搬性のある形態であっても良く、これによって利便性を高めることもできる。
【００１７】
６は読み取り専用のメモリであり、本発明を実現するためのプログラムコード601や図示しない固定的データ等が格納される。もっとも、本発明において、外部記憶部5とROM 6の使用には任意性がある。例えば、プログラムコード601は、ROM 6 ではなく外部記憶部5にインストールされるものであっても良い。逆に、音響モデル501等は6に格納されるものであっても良い。
【００１８】
７はRAM等の一時情報を保持するメモリであり、一時的なデータや各種フラグ等が保持される。7に格納される例として、対話状態701・音声合成内容702・音声認識候補703・言語解析結果704・音声合成ポインタ705・音声出力停止位置706・入力音声707・入力音声カウンタ708等が挙げられる。RAM 7に関しても、外部記憶部5やROM 6との使い分けに任意性がある。例えば、サイズの大きな一時データを外部記憶部5に保持するようにしても良い。あるいは、ROM 6中に圧縮されて記憶されているプログラムコードをRAM 7に展開するような実装でも良い。
【００１９】
上記中央処理部1〜RAM 7は、バス8で接続されている。
【００２０】
次に、本実施例における処理フローを図2に則して説明する。
【００２１】
まず、ステップS1で、対話状態701を初期状態に設定する。対話状態701は、ユーザインタフェースとして適切に機能するために必要な情報で、機器の状態や機器の持つ機能等によって定められるものである。
【００２２】
次に、ステップS2で、前記対話状態701にもとづいて、音声合成内容702を決定する。例えば、対話状態701が「部数入力待ち」の場合、音声合成内容702は「部数を入力してください。」となる。対話状態701から音声合成内容702を決定するために、参照テーブルやルールによる推論等が使用できる。
【００２３】
次に、ステップS3で、前記対話状態701にもとづいて、音声認識候補703を決定する。音声認識として単語音声認識を用いる場合、音声認識候補703は認識候補単語の集合となる。音声認識として連続音声認識を用いる場合、音声認識候補703は、何らかの文法で記述された認識文法となる。例えば、対話状態701が「部数入力待ち」で単語音声認識を用いる場合、音声認識候補703は、最小部数から最大部数までの数値となる。
【００２４】
次に、ステップS4で、前記ステップS2で決定された音声合成内容702を解析する。本ステップにおける具体的な処理は、前記音声合成内容702の記述形式によって異なる。例えば、前記例にあるように、音声合成内容702の記述形式が自然言語の場合、言語解析辞書504や構文ルールを使用した形態素解析・構文解析が行なわれる。一方、音声合成内容702の記述形式が単純な人工文法に基づくものである場合、本ステップの処理は、文字列パターンマッチング等の、より単純な解析になる。
【００２５】
次に、ステップS5で、音声合成ポインタ705を初期化する。音声合成ポインタ705は、音声合成内容702もしくは言語解析結果704に対して、音声合成がどこまで進んだかを指し示す情報である。本ステップでは、音声合成ポインタ705は、音声合成内容702もしくは言語解析結果704の先頭に設定される。
【００２６】
次に、ステップS6で、前記ステップS4の結果にもとづいて、合成音声データを取得する。例えば、前記ステップS4の結果にもとづいて、合成音声の韻律を推定し、音声合成用素片辞書503から適切な素片データを選択し、信号処理によって合成音声データを生成する。本ステップでは、前記音声合成内容702全てに対応する合成音声を1度に取得することも可能である。しかし、本実施例では、前記音声合成内容702のうちの所定分量分の合成音声データを取得するものとする。
【００２７】
次に、ステップS7で、前記ステップS6で取得した合成音声データを音声出力部2に出力する。
【００２８】
次に、ステップS8で、前記音声合成ポインタ705を更新する。すなわち、前記ステップS6で取得した音声データに対応する分だけ音声合成ポインタ705を進める。
【００２９】
次に、ステップS9で、トリガボタン301の押下を検出し、トリガボタン301の押下が検出された場合は処理をステップS12に移し、トリガボタン301の押下が検出されなかった場合は処理をステップS10に移す。
【００３０】
ステップS10では、前記音声合成内容702の音声合成が全て終了しているか判定し、終了している場合にはステップS11に処理を移し、終了していない場合には前記ステップS6に処理を戻す。
【００３１】
ステップS11では、トリガボタン301の押下を検出し、トリガボタンの押下が検出された場合は処理をステップS12に移し、トリガボタンの押下が検出されなかった場合は処理をステップS11に移す。本ステップにおいて、トリガボタン301の押下が検出されなかった場合には無限ループとなるが、これは便宜的なものである。本実施例を応用した機器では、音声入力以外の操作手段も用意されることが多いと考えられる。このような場合、本ステップで、その他の操作も検出し、操作内容に応じて適宜処理をすることが可能である。
【００３２】
ステップS12では、音声出力部2からの音声出力を停止する。
【００３３】
次に、ステップS13で、音声出力を停止した位置を音声出力停止位置706に記録する。音声出力停止位置は、前記音声合成ポインタ705の値そのままでも良いし、前記音声合成ポインタ705の値と音声出力部2の動作状態から計算される値でも良い。例えば、音声出力部2は内部にバッファメモリを備えている場合があるため、バッファメモリに残ったデータサイズにもとづいて音声合成ポインタ705の値を調整することが考えられる。
【００３４】
次に、ステップS14で、音声入力部4からの音声入力を開始する。また、この際、入力音声707の内容をクリアする。
【００３５】
次に、ステップS15で、入力音声カウンタ708を0に設定する。
【００３６】
次に、ステップS16で、音声入力部4から入力された所定分量の音声を、RAM 7中に入力音声707として保持する。
【００３７】
次に、ステップS17で、前記入力音声707に保持された音声データに発声が含まれているかを判定する。発声が含まれているかの判定には、種々提案されている既存技術を使用することができる。前記入力音声707に保持された音声データに発声が含まれている場合、処理をステップS22に移し、前記入力音声707に保持された音声データに発声が含まれていない場合、処理をステップS18に移す。
【００３８】
ステップS18では、入力音声カウンタ708の値に1を加える。
【００３９】
次に、ステップS19で、入力音声カウンタ708の値が所定の上限値に達しているか判定する。入力音声カウンタ708の値が所定の上限値に達している場合、処理をステップS20に移し、入力音声カウンタ708の値が所定の上限値に達していない場合、処理をステップS16に移す。
【００４０】
ステップS20では、音声合成を再開する箇所を計算する。音声合成を再開する箇所の計算には、前記音声合成ポインタ705や前記音声出力停止位置706の値を利用することができる。もっとも簡単な例は、音声出力停止位置706の値を、そのまま音声合成再開位置とするものである。あるいは、音声合成ポインタ705や音声合成ポインタ705の直前の単語境界・文節境界あるいはポーズ句境界を音声合成再開位置とすることもできる。
【００４１】
次に、ステップS21で、音声合成ポインタ705の値を、前記ステップS20で計算された音声合成再開位置に設定する。
【００４２】
ステップS21終了後、処理をステップS6に戻す。
【００４３】
ステップS22では、前記入力音声707に保持された音声データに対して音声認識処理を行なう。具体的には、前記音声データに対する信号処理による特徴量抽出、音声認識候補の標準パターンとの距離(あるいは尤度) 計算、音声認識候補終端のスコア更新等を行なう。
【００４４】
次に、ステップS23で、音声入力部4から入力された所定分量の音声を、入力音声707に保持する。
【００４５】
次に、ステップS24で、発声が終了したかどうかを判定する。発声終了の場合、処理をステップS25に移し、発声終了でない場合、処理をステップS22に移す。発声が終了したかどうかの判定には、前記ステップS17とほぼ同様の手法を使用することができる。あるいは、前記ステップS22で計算された音声認識候補終端のスコア等を用いることもできる。
【００４６】
ステップS25では、前記ステップS22の結果にもとづいて、音声認識結果を取得する。
【００４７】
次に、ステップS26で、前記ステップS25の結果得られた音声認識結果にもとづいて、機器の動作状態を変更する。
【００４８】
次に、ステップS27で、前記ステップS25の結果得られた音声認識結果や前記ステップS26で変更された機器の動作状態にもとづいて対話状態を更新する。
【００４９】
ステップS27終了後、処理をステップS2に戻す。
【実施例２】
【００５０】
前記実施例1では、トリガボタン301の押下が検出された際に音声合成を中断していた。しかし、音声合成の中断は、入力音声707中に発声が検出された後でも良い。
【００５１】
この場合、処理フローは、図3のようになる。
【００５２】
図3中、ステップS1からステップS8までの処理は、実施例1と同様である。
【００５３】
ステップS9の処理は実施例1と同様であるが、トリガボタン301の押下が検出された場合は処理をステップS14に移す。
【００５４】
ステップS10の処理は実施例1と同様である。
【００５５】
ステップS11の処理は実施例1と同様であるが、トリガボタン301の押下が検出された場合は処理をステップS14に移す。
【００５６】
ステップS14、ステップS15およびステップS16の処理は実施例1と同様である。
【００５７】
ステップS17の処理は実施例1と同様であるが、入力音声707に発声が検出された場合は処理をステップS12に移し、発声が検出されなかった場合は処理をステップS101に移す。
【００５８】
ステップS101では、前記音声合成内容702の音声合成が全て終了しているか判定し、終了している場合にはステップS18に処理を移し、終了していない場合には前記ステップS102に処理を戻す。
【００５９】
ステップS102では、前記ステップS6と同様に、合成音声データを取得する。
【００６０】
次に、ステップS103で、前記ステップS7と同様に、前記ステップS102で取得した合成音声データを音声出力部2に出力する。
【００６１】
次に、ステップS104で、前記ステップS8と同様に、前記音声合成ポインタ705を更新する。
【００６２】
次のステップS18の処理は、実施例1と同様である。
【００６３】
次のステップS19の処理は、実施例1と同様であるが、入力音声カウンタ708の値が所定の上限値に達している場合、処理をステップS105に移す。
【００６４】
ステップS105では、前記音声合成内容702の音声合成が全て終了しているか判定し、終了している場合にはステップS106に処理を移し、終了していない場合には前記ステップS6に処理を戻す。
【００６５】
ステップS106では、ステップS5と同様に、音声合成ポインタ705を初期化し、処理をステップS6に戻す。
【００６６】
ステップS12の処理は、実施例1と同様であるが、音声出力停止後、処理をステップS22に移す。
【００６７】
ステップS22からステップS27までの処理は、実施例1と同様である。
【００６８】
本実施例では、ステップS13、ステップS20およびステップS21に相当する処理は行なわれない。
【００６９】
以上説明したように、本実施例によれば、発声が検出された時点で合成音声出力が中断されるため、ユーザが誤ってトリガボタンを押した場合には、合成音声出力が中断されることがなくなる。
【実施例３】
【００７０】
トリガボタン301の押下の後、トリガボタン301と同じもしくはトリガボタン301とは異なるボタンを押下することにより、音声入力開始の指示を取り消せるようにすることも可能である。(以降の説明では、この処理のためのボタンを、トリガボタン301と同じか異なるかに関わらず、取り消しボタンと呼ぶことにする。)
この場合、処理フローは、図4のようになる。
【００７１】
図4中、ステップS1からステップS16までの処理は、実施例1と同様である。
【００７２】
ステップS17の処理は実施例1と同様であるが、入力音声707に発声が検出されなかった場合は処理をステップS201に移す。
【００７３】
ステップS201では、取り消しボタンの押下を検出し、取り消しボタンの押下が検出された場合は処理をステップS20に移し、取り消しボタンの押下が検出されなかった場合は処理をステップS18に移す。
【００７４】
ステップS20の処理は実施例1と同様であるが、本実施例では入力音声カウンタ708の値も利用できる。例えば、入力音声カウンタ708の値によって、音声合成再開位置を音声出力停止位置・音声合成ポインタの直前の単語境界・音声合成内容の先頭の中から選択するといった処理が可能である。
【００７５】
以上説明したように、本発明は、取り消しボタンを用いたユーザインタフェースにも適用可能である。
【００７６】
さらに、本実施例によれば、音声入力の動作していた時間に応じて、音声合成再開位置を柔軟に設定することもできる。
【００７７】
（その他の実施例）
言うまでもないことであるが、前記実施例2および実施例3は組合わせて使用することも可能である。
【００７８】
また、前記実施例3において、トリガボタンの押下をプレストークボタンの押下に、取り消しボタンの押下をプレストークボタンの解放に置き換えて解釈すれば、本発明はプレストーク方式の音声認識に対しても適用可能であることは明らかである。
【００７９】
また、前記各実施例は音声規則合成/テキスト音声変換にもとづいて説明したが、本発明は録音再生型音声合成にも適用できる。その場合の処理フローは、ステップS4が省かれたものとなり、ステップS6が録音再生型音声合成にもとづいた処理となる。
【００８０】
また、前記各実施例では、トリガボタン301の押下を検出した後に音声入力を開始していたが、音声入力はトリガボタン301の押下前に開始していても良い。これにより、ユーザがトリガボタン301の押下に先行して発声を開始してしまう場合に対応できる。
【図面の簡単な説明】
【００８１】
【図１】本発明の一実施例におけるハードウェア構成
【図２】本発明の一実施例における処理フロー
【図３】本発明の一実施例における処理フロー
【図４】本発明の一実施例における処理フロー
【符号の説明】
【００８２】
1  数値演算・制御等の処理を行なう中央処理部である。
2  スピーカやヘッドフォン等の音声出力部である。
3  タッチパネルやキーボード・マウス・ボタン等の入力部である。
4  マイクロホン等の音声入力部である。
5  ディスク装置や不揮発メモリ等の外部記憶部である。
6  読み取り専用のメモリである。
7  RAM等の一時情報を保持するメモリである。
8  バスである。
301  音声認識開始時に押下されるボタンである。
501  音声認識に使用される音響モデルである。
502  音声認識に使用される認識辞書である。
503  音声合成に用いられる素片辞書である。
504  言語解析に用いられる言語解析辞書である。
601  本発明を実現するためのプログラムコードである。
701  対話の状態をあらわす対話状態である。
702  音声合成する内容である。
703  音声認識結果の候補である。
704  音声合成内容702に対して言語解析を行なった結果である。
705  音声合成がどこまで進んだかを示すポインタである。
706  音声出力を停止した位置である。
707  4から入力された音声データである。
708  音声入力毎に更新されるカウンタである。
【図１】
2008051883.tif 000003
【図２】
2008051883.tif 000004
【図３】
2008051883.tif 000005
【図４】
2008051883.tif 000006