(57)【要約】【課題】非定常な雑音環境下でも精度良く発話区間を検出できるようにする。【解決手段】発話区間検出装置２７０は、音声信号のシーケンス中で発話開始位置である可能性の高いフレームを検出するクラスタリング開始位置判定部４５６と、クラスタリング開始位置が検出された後、その位置のフレームよりプレロール時間だけ前のフレームから最新に受信したフレームまでを音声パワーの値に基づき１０ミリ秒ごとにクラスタリングする処理を開始して各フレームのクラスタレベルを算出するクラスタリング処理部４９０と、各フレームについて算出されたクラスタレベルのシーケンスに基づいて、５０ミリ秒ごとに発話開始位置及び発話終了位置を検出する処理を繰返し行なう発話状態判定部４９２及び発話開始・終了判定部４９４とを含む。【選択図】図７
2013114024.tif 000002
【特許請求の範囲】
【請求項１】
音声信号のフレームのシーケンスを受け、当該シーケンス内の発話区間を検出するための発話区間検出装置であって、
受信したシーケンスの中で発話開始位置である可能性の高いフレームを検出し、検出信号を出力する検出手段と、
前記検出手段により出力された前記検出信号に応答して、前記フレームのシーケンスのうち、前記検出信号に対応するフレームより前の所定位置までのフレームから、最新に受信したフレームまでを、各フレームの音声パワーの値に基づいて繰返しクラスタリングする処理を開始し、繰返しごとに、音声パワーの値の大きさに応じたクラスタレベルを各フレームについて算出するためのクラスタリング手段と、
前記クラスタリング手段によるクラスタリングの繰返しと所定の関係を持ったタイミングで、前記クラスタリング手段により各フレームについて算出されたクラスタレベルのシーケンスに基づいて発話開始位置及び発話終了位置を検出する処理を繰返し行なう、クラスタレベルによる発話区間検出手段とを含む、発話区間検出装置。
【請求項２】
前記検出手段は、
所定個数のフレームを新たに受信するごとに、受信した前記シーケンスのうち、最新に受信したフレームから遡って所定の時間だけ前までの時間窓内のフレームの音声パワーの分散を算出するための分散算出手段と、
前記分散算出手段により算出された分散が予め定められたしきい値以上となったことに応答して、前記検出信号を出力するための検出信号出力手段とを含む、請求項１に記載の発話区間検出装置。
【請求項３】
前記所定個数は１個である、請求項２に記載の発話区間検出装置。
【請求項４】
前記検出信号に応答して、前記検出手段の動作を停止させるための手段をさらに含む、請求項１〜請求項３のいずれかに記載の発話区間検出装置。
【請求項５】
前記発話区間検出手段は、
前記クラスタリング手段によるクラスタリングの繰返しが所定回数だけ行われるごとに、当該所定回数の間に受信されたフレームの各々に対し、前記クラスタリング手段により算出されたクラスタレベルを所定のしきい値と比較することにより、各フレームが発話中フレーム及び非発話中フレームのいずれであるかを判定するための発話中フレーム判定手段と、
前記発話中フレーム判定手段により判定された発話中フレーム及び非発話中フレームのシーケンスに基づいて、発話開始位置及び発話終了位置を判定するための発話開始位置及び発話終了位置判定手段とを含む、請求項１〜請求項４のいずれかに記載の発話区間検出装置。
【請求項６】
前記発話中フレームは、クラスタレベルが前記しきい値以上であるフレームであり、
前記非発話中フレームは、クラスタレベルが前記しきい値未満であるフレームである
前記発話開始位置及び発話終了位置判定手段は、
発話の状態を記憶するための発話状態記憶手段を含み、
前記発話区間検出装置による発話区間の検出の開始時に前記発話状態記憶手段に記憶される発話の状態は前記非発話中状態であり、
前記発話の状態は、少なくとも、
発話のない状態である非発話中状態と、
発話中である発話中状態と、を含み、
前記発話中フレーム判定手段は、
前記発話中状態において、各フレームのクラスタレベルが第１のしきい値以上か否かに基づいて各フレームを発話中フレームと非発話中フレームとに分類する第１の分類手段と、
前記非発話中状態において、各フレームのクラスタレベルが前記第１のしきい値以下である第２のしきい値以上か否かに基づいて各フレームを発話中フレームと非発話中フレームとに分類する第２の分類手段とを含む、請求項５に記載の発話区間検出装置。
【請求項７】
前記発話開始位置及び発話終了位置判定手段は、さらに、
前記発話状態記憶手段に記憶された発話の状態が前記非発話中状態であるときに、前記発話中フレーム判定手段により出力される連続する発話中フレームの数をカウントする第１の発話中フレームカウント手段と、
前記第１の発話中フレームカウント手段によるカウントが予め定められた最短発話時間以上となったことに応答して、発話の状態を発話中状態に設定し、前記連続する発話中フレームの先頭フレーム以前の所定位置のフレームを発話開始位置として決定する発話開始位置決定手段と、
前記発話状態記憶手段に記憶された発話の状態が前記発話状態であるときに、前記発話中フレーム判定手段により判定される連続する非発話中フレームの数をカウントする第１の非発話中フレームカウント手段と、
前記第１の非発話中フレームカウント手段によるカウントが発話終了と判定するためのしきい値より大きくなったことに応答して、発話の状態を非発話中状態に設定し、前記連続する非発話中フレームの最後のフレーム以後の所定位置のフレームを発話終了位置に決定する発話終了位置決定手段とを含む、請求項６に記載の発話区間検出装置。
【請求項８】
前記発話開始位置及び発話終了位置判定手段は、さらに、
前記発話状態記憶手段に記憶された発話の状態が前記非発話中状態であるときに、前記発話中フレーム判定手段により出力される連続する非発話中フレームの数をカウントする第２の非発話中フレームカウント手段と、
前記第２の非発話中フレームカウント手段によるカウントが、予め設定された、最短無音時間に相当する数以上となったことに応答して、前記第１の発話中フレームカウント手段によるカウントをクリアするための発話中フレームカウントクリア手段とを含む、請求項７に記載の発話区間検出装置。
【請求項９】
前記発話開始位置及び発話終了位置判定手段は、さらに、前記発話状態記憶手段に記憶された発話の状態が前記発話状態であるときに、前記発話中フレーム判定手段により発話中フレームと判定されたフレームがあったことに応答して、前記第１の非発話中フレームカウント手段によるカウントをクリアするための非発話中フレームカウントクリア手段を含む、請求項７又は請求項８に記載の発話区間検出装置。
【請求項１０】
さらに、
前記発話区間検出手段により検出された発話区間を記憶するための発話区間記憶手段と、
前記クラスタリング手段によるクラスタリングが実行されたことに応答して、クラスタリング後のクラスタレベルを用いて、前記発話区間記憶手段に記憶された発話区間の各々について棄却すべきか否かを判定するための棄却判定手段とを含む、請求項１〜請求項９のいずれかに記載の発話区間検出装置。
【請求項１１】
コンピュータを、
受信した音声信号のフレームのシーケンスの中で発話開始位置である可能性の高いフレームを検出し、検出信号を出力する検出手段と、
前記検出手段により出力された前記検出信号に応答して、前記フレームのシーケンスのうち、前記検出信号に対応するフレームより前の所定位置までのフレームから、最新に受信したフレームまでを、各フレームの音声パワーの値に基づいて繰返しクラスタリングする処理を開始し、繰返しごとに、音声パワーの値の大きさに応じたクラスタレベルを各フレームについて算出するためのクラスタリング手段と、
前記クラスタリング手段によるクラスタリングの繰返しと所定の関係を持ったタイミングで、前記クラスタリング手段により各フレームについて算出されたクラスタレベルのシーケンスに基づいて発話開始位置及び発話終了位置を検出する処理を繰返し行なう、クラスタレベルによる発話区間検出手段として機能させる、発話区間検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は音声認識技術に関し、特に、非定常な雑音下での発話区間の検出技術の改良に関する。
【背景技術】
【０００２】
近年、機械と人間との間のインターフェイスとして、音声認識が用いられる機会が多くなっている。例えばいわゆるスマートフォンを用いて何か情報を引き出したり、情報を検索したりしようとする場合には、ハードウェアにせよ、ソフトウェアにせよ、キーボードを用いて必要なコマンドを入力するよりも、音声を用いてコマンドを入力する方がユーザにとっては格段に楽である。さらに、単なる音声認識を超えて、音声を用いた人間と機械との間のインタラクションを行なう機会も増えると思われる。そうした場合にも、音声認識が非常に重要な役割を果たすであろうことは想像にかたくない。
【０００３】
しかし、そのように音声認識が用いられる場面が増えると、音声認識の信頼性を高めるために解決すべき課題が今までにもまして重要となる。例えば、非定常な雑音下での音声認識の精度の向上という問題がある。雑音が非常に小さいか、定常的な雑音しかない環境下ではかなり高い精度を示す音声認識システムであっても、非定常な雑音が発生する環境下では、精度が大きく低下することが知られている。したがって、非定常な雑音が発生する環境下での音声認識の精度を高くできる技術が必要である。
【０００４】
この点で特に問題となるのは、発話区間の検出である。発話区間が正しく検出できなければ、当然に音声認識の精度も低下する。特に非定常な雑音の環境下では、発話の開始及び終了位置を検出するのが難しく、音声認識の精度を高めることがむずかしかった。
【０００５】
こうした問題を解決するための１つの提案が、特許文献１でなされている。特許文献１に記載の技術では、音声信号の各フレームの音声パワーに基づいてフレームを２つのクラスタに分け、エネルギの低い方のクラスタの中心の音声パワーを環境雑音の推定値の初期値とする。この後は、この推定値の初期値と、発話の音声エネルギ値とに基づいて、発話区間を検出するためのエネルギ値のしきい値を逐次算出する（特許文献１の段落００１４，００１６）。
【０００６】
上のようにクラスタを分類することにより、エネルギ値の小さなクラスタには環境雑音のみを含むフレームが属することになると思われる。このような方法により発話区間を検出するための音声パワーのしきい値を実際の音声信号の音声パワーに追従して変化させることにより、発話区間の開始位置及び終了位置が正確に推定できるとされている（特許文献１の段落００１５、００１７）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−０３１６３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記した特許文献１に記載の技術により、それ以前よりも発話区間の検出が正確になったと思われる。しかしこの技術にもさらに改良すべき余地がある。それは、例えば音声パワーの大きさの変化、及びその変化のタイミングにより発話区間検出のためのしきい値が決定されてしまうという問題である。こうした手法では、非定常な雑音による音声パワーが入力された場合、その時点では発話区間検出のためのしきい値が低い値であることが多く、その結果、非定常な雑音を発話の開始位置として誤検出しやすいという問題がある。さらに、高い音声パワーが入力された後には逆にしきい値が高くなるために、その後の通常レベルの音声が検知しにくいという問題もある。
【０００９】
なお、発話区間の誤検出を防ぐために、検出された発話区間の一部を棄却するという後処理がされることがある。この場合、従来は、雑音区間と実発話区間との音声パワーの差を見て発話区間を棄却するか否かを判定している。しかしそうした判定では、話者、発話環境、又は発話内容によって、音声パワーの値が大きく異なるという問題に対処できない。このため、話者等の条件に依存しないしきい値で精度良く発話区間の検出をする技術が望まれている。
【００１０】
それ故に本発明の目的は、非定常な雑音環境下でも精度良く発話区間を検出することができる発話区間検出装置及びプログラムを提供することである。
【課題を解決するための手段】
【００１１】
本発明の第１の局面に係る発話区間検出装置は、音声信号のフレームのシーケンスを受け、当該シーケンス内の発話区間を検出するための発話区間検出装置である。この装置は、受信したシーケンスの中で発話開始位置である可能性の高いフレームを検出し、検出信号を出力する検出手段と、検出手段により出力された検出信号に応答して、フレームのシーケンスのうち、検出信号に対応するフレームより前の所定位置までのフレームから、最新に受信したフレームまでを、各フレームの音声パワーの値に基づいて繰返しクラスタリングする処理を開始し、繰返しごとに、音声パワーの値の大きさに応じたクラスタレベルを各フレームについて算出するためのクラスタリング手段と、クラスタリング手段によるクラスタリングの繰返しと所定の関係を持ったタイミングで、クラスタリング手段により各フレームについて算出されたクラスタレベルのシーケンスに基づいて発話開始位置及び発話終了位置を検出する処理を繰返し行なう、クラスタレベルによる発話区間検出手段とを含む。
【００１２】
検出信号が発話開始位置である可能性の高いフレームを検出して検出信号を出力する。この検出信号に応答して、クラスタリング手段が、フレームのシーケンス中で検出信号に対応するフレームより前の所定位置（例えばフレームシーケンスの先頭）から、最新のフレームまでをその音声パワーに基づいて繰返しクラスタリングする処理を開始する。このクラスタリングの結果は、通常、新たなフレームが受信されてクラスタリングが実行されるたびに変化する。例えば音声パワーが大きなフレームが受信されると、それ以前に受信されていた音声パワーの小さなフレームは、クラスタレベルがより低いクラスタに分類される可能性がある。発話区間検出装置は、クラスタリング手段によるクラスタリングの繰返しと所定の関係を持ったタイミング（例えばクラスタリングが５回行われたタイミング）で、各フレームについて算出されたクラスタレベルのシーケンスに基づいて発話開始位置及び終了位置を検出する。
【００１３】
クラスタレベルに基づいて発話区間を検出するため、非定常な雑音の音声パワーが実発話区間の音声パワーよりも小さければ、それらはクラスタレベルの小さなクラスタに分類されることになる。その結果、雑音区間を実発話区間と区別できる可能性が高くなる。クラスタレベルという明確な値に基づいているため発話区間と雑音区間との判定は容易であり、かつクラスタレベルのシーケンスに基づいて発話区間が検出されるため、音声パワーの変化にそれほど依存しないで発話区間の検出を高精度で行なえる。その結果、非定常な雑音環境下でも精度良く発話区間を検出することができる発話区間検出装置を提供できる。
【００１４】
好ましくは、検出手段は、所定個数（例えば１個）のフレームを新たに受信するごとに、受信したシーケンスのうち、最新に受信したフレームから遡って所定の時間だけ前までの時間窓内のフレームの音声パワーの分散を算出するための分散算出手段と、分散算出手段により算出された分散が予め定められたしきい値以上となったことに応答して、検出信号を出力するための検出信号出力手段とを含む。
【００１５】
このように音声パワーの分散を基準としてクラスタリングの開始タイミングを定めることにより、クラスタリングを開始すべき位置を精度良く決定することができ、計算量の増加を防ぎながら発話区間の検出を行なうことができる。
【００１６】
より好ましくは、発話区間検出装置は、検出信号に応答して、検出手段の動作を停止させるための手段をさらに含む。
【００１７】
発話区間検出手段は、クラスタリング手段によるクラスタリングの繰返しが所定回数だけ行われるごとに、当該所定回数の間に受信されたフレームの各々に対し、クラスタリング手段により算出されたクラスタレベルを所定のしきい値と比較することにより、各フレームが発話中フレーム及び非発話中フレームのいずれであるかを判定するための発話中フレーム判定手段と、発話中フレーム判定手段により判定された発話中フレーム及び非発話中フレームのシーケンスに基づいて、発話開始位置及び発話終了位置を判定するための発話開始位置及び発話終了位置判定手段とを含んでもよい。
【００１８】
好ましくは、発話中フレームは、クラスタレベルがしきい値以上であるフレームであり、非発話中フレームは、クラスタレベルがしきい値未満であるフレームである。
【００１９】
発話開始位置及び発話終了位置判定手段は、発話の状態を記憶するための発話状態記憶手段を含む。発話区間検出装置による発話区間の検出の開始時に発話状態記憶手段に記憶される発話の状態は非発話中状態である。発話の状態は、少なくとも、発話のない状態である非発話中状態と、発話中である発話中状態とを含む。発話中フレーム判定手段は、発話中状態において、各フレームのクラスタレベルが第１のしきい値以上か否かに基づいて各フレームを発話中フレームと非発話中フレームとに分類する第１の分類手段と、非発話中状態において、各フレームのクラスタレベルが第１のしきい値以下である第２のしきい値以上か否かに基づいて各フレームを発話中フレームと非発話中フレームとに分類する第２の分類手段とを含む。
【００２０】
より好ましくは、発話開始位置及び発話終了位置判定手段は、さらに、発話状態記憶手段に記憶された発話の状態が非発話中状態であるときに、発話中フレーム判定手段により出力される連続する発話中フレームの数をカウントする第１の発話中フレームカウント手段と、第１の発話中フレームカウント手段によるカウントが予め定められた最短発話時間以上となったことに応答して、発話の状態を発話中状態に設定し、連続する発話中フレームの先頭フレーム以前の所定位置のフレームを発話開始位置として決定する発話開始位置決定手段と、発話状態記憶手段に記憶された発話の状態が発話状態であるときに、発話中フレーム判定手段により判定される連続する非発話中フレームの数をカウントする第１の非発話中フレームカウント手段と、第１の非発話中フレームカウント手段によるカウントが発話終了と判定するためのしきい値より大きくなったことに応答して、発話の状態を非発話中状態に設定し、連続する非発話中フレームの最後のフレーム以後の所定位置のフレームを発話終了位置に決定する発話終了位置決定手段とを含む。
【００２１】
さらに好ましくは、発話開始位置及び発話終了位置判定手段は、さらに、発話状態記憶手段に記憶された発話の状態が非発話中状態であるときに、発話中フレーム判定手段により出力される連続する非発話中フレームの数をカウントする第２の非発話中フレームカウント手段と、第２の非発話中フレームカウント手段によるカウントが、予め設定された、最短無音時間に相当する数以上となったことに応答して、第１の発話中フレームカウント手段によるカウントをクリアするための発話中フレームカウントクリア手段とを含む。
【００２２】
発話開始位置及び発話終了位置判定手段は、さらに、発話状態記憶手段に記憶された発話の状態が発話状態であるときに、発話中フレーム判定手段により発話中フレームと判定されたフレームがあったことに応答して、第１の非発話中フレームカウント手段によるカウントをクリアするための非発話中フレームカウントクリア手段を含んでもよい。
【００２３】
好ましくは、発話区間検出装置はさらに、発話区間検出手段により検出された発話区間を記憶するための発話区間記憶手段と、クラスタリング手段によるクラスタリングが実行されたことに応答して、クラスタリング後のクラスタレベルを用いて、発話区間記憶手段に記憶された発話区間の各々について棄却すべきか否かを判定するための棄却判定手段とを含む。
【００２４】
雑音区間が一旦発話区間と誤判定されたとしても、実発話区間の音声パワーが大きければ、それら本来の雑音区間のクラスタレベルはクラスタリングを繰返し行なうことにより低くなることが期待できる。発話区間を記憶しておいて、新たなクラスタリングの結果を用いて棄却すべきか否かを判定することにより、誤って発話区間と判定された雑音区間を棄却することが可能になる。
【００２５】
本発明の第２の局面に係る発話区間検出プログラムは、コンピュータを、受信した音声信号のフレームのシーケンスの中で発話開始位置である可能性の高いフレームを検出し、検出信号を出力する検出手段と、検出手段により出力された検出信号に応答して、フレームのシーケンスのうち、検出信号に対応するフレームより前の所定位置までのフレームから、最新に受信したフレームまでを、各フレームの音声パワーの値に基づいて繰返しクラスタリングする処理を開始し、繰返しごとに、音声パワーの値の大きさに応じたクラスタレベルを各フレームについて算出するためのクラスタリング手段と、クラスタリング手段によるクラスタリングの繰返しと所定の関係を持ったタイミングで、クラスタリング手段により各フレームについて算出されたクラスタレベルのシーケンスに基づいて発話開始位置及び発話終了位置を検出する処理を繰返し行なう、クラスタレベルによる発話区間検出手段として機能させる。
【発明の効果】
【００２６】
以上のようにこの発明によれば、各フレームを音声パワーに基づいてクラスタリングし、その結果に基づいて発話区間の検出を行なう。クラスタレベルにより発話区間とそれ以外の区間とが明確に分離されるため、発話区間を高い精度で行なうことができる。さらに、クラスタリングの繰返しを開始するタイミングを、音声パワーの分散に基づいて決定することにより、計算量の増加を防止しながら、発話開始位置の検出精度を高めることができる。クラスタリングの繰返しにより各フレームのクラスタレベルが変化するため、雑音区間が発話区間と誤検出されても棄却される可能性が高くなり、発話区間の検出精度をより高められる。
【図面の簡単な説明】
【００２７】
【図１】本発明の１実施の形態に係る発話区間検出装置の処理の流れの概略を説明するためのフローチャートである。
【図２】本発明の１実施の形態の装置において、音声フレームのクラスタリング処理がどのように行なわれるかを説明するための図である。
【図３】本発明の１実施の形態の装置における発話区間の棄却方法の原理について説明するための図である。
【図４】本発明の１実施の形態の装置を実現するコンピュータシステムの外観図である。
【図５】図４に示すコンピュータシステムのハードウェアブロック図である。
【図６】本発明の１実施の形態に係る発話区間検出装置を含む音声認識システムの概略構成を示すブロック図である。
【図７】図６に示す発話区間検出装置の機能的ブロック図である。
【図８】図７に示す発話区間検出装置をコンピュータで実現するためのコンピュータプログラムの制御構造を示すフローチャートである。
【図９】クラスタリング開始タイミングの判定処理を説明するための図である。
【図１０】クラスタリング開始判定処理における処理対象となるフレームの範囲（分散窓）を示す図である。
【図１１】クラスタリング開始判定処理を実現するプログラムの制御構造を示す不コーチャーとである。
【図１２】クラスタリング処理を実現するプログラムの制御構造を示すフローチャートである。
【図１３】発話区間判定処理を実現するプログラムの制御構造を示すフローチャートである。
【図１４】発話状態判定処理を実現するプログラムの制御構造を示すフローチャートである。
【図１５】発話開始位置判定処理を実現するプログラムの制御構造を示すフローチャートである。
【図１６】発話終了位置を実現するプログラムの制御構造を示すフローチャートである。
【図１７】発話開始判定処理を説明するための図である。
【図１８】クラスタリング処理のタイミングを説明するための図である。
【図１９】発話終了判定処理を説明するための図である。
【図２０】発話棄却判定処理を実現するプログラムの制御構造を示すフローチャートである。
【図２１】前発話区間棄却判定処理を実現するプログラムの制御構造を示すフローチャートである。
【図２２】現発話区間棄却判定処理を実現するプログラムの制御構造を示すフローチャートである。
【図２３】現発話区間棄却処理を説明するための図である。
【発明を実施するための形態】
【００２８】
以下の説明及び図面では、同一の部品には同一の参照番号を付してある。したがって、それらについての詳細な説明は繰返さない。
【００２９】
［概略］
本実施の形態では、以下のような処理により発話区間の検出を行なう。特に本実施の形態では、音声信号の各フレームをそのパワー値に基づき所定個数のクラスタに逐次クラスタリングし、フレームが属するクラスタの変化に基づいて発話区間の開始位置及び終了位置を検出する点、及び、発話区間の検出後にもクラスタリングを逐次行なうことにより、各フレームが属するクラスタが変化することに基づいて、発話区間とされた区間を棄却する棄却処理を行なう点に特徴がある。
【００３０】
図１を参照して、この発話区間検出処理では、音声信号のどの位置からクラスタリングを開始すべきかを決定するクラスタリング開始判定処理（ステップ５０）を行なう。クラスタリングを開始すべき条件が満たされると、発話が終了する（ステップ５２の判定においてＹＥＳとなる。）まで、次のような処理を所定時間毎（本実施の形態では１０ミリ秒毎）に繰返す。この繰返しでは、入力される音声フレームをクラスタリングし（ステップ５４）、その結果に基づいて、現時点での発話確定状態を判定して（ステップ５６）、さらに以前に発話区間と判定された区間及び現在の発話区間とについてステップ５６の結果に基づいて棄却すべきか否かを判定する処理（ステップ５８）とを行なう。この繰返しを上記所定時間ごとに繰返すことにより、発話区間の判定と棄却とを行なう。なお、発話区間と判定された区間が棄却された場合、本実施の形態では音声認識をリセットし、新たに定められた発話区間の音声データのみを用いた音声認識が最初から行われる。本実施の形態では、音声信号は１０ミリ秒ごとにフレーム化されるため、上記繰返しは新たなフレームが発話区間検出装置に入力されるたびに行われることになる。
【００３１】
図２を参照して、上記したステップ５０で行われるクラスタリングの開始タイミングの判定処理の概略について説明する。音声信号８０が入力されるものとする。図２において、横軸が時間を表す。右側に行くほど新しい（後から入力された）音声であることを示す。発話開始位置と考えられる位置の近辺では、例えばピーク９４により示されるように、音声パワーは急激に大きくなると考えられる。本実施の形態では、このように音声信号のパワーが急激に大きくなった点の直後（例えば時刻９２）をクラスタリング開始位置とする。この処理の詳細については後述する。
【００３２】
時刻９２以後、ステップ５４、５６及び５８の処理が音声の発話区間終了まで繰返される。すなわち、ステップ５４に関し、クラスタリング開始時刻９２では範囲８２で示される音声信号８０の各フレームについてクラスタリングが実行される。その後、５０ミリ秒後に、範囲８４で示される音声信号の各フレームのクラスタリングが再び行われる。以後、５０ミリ秒毎に、範囲８６及び範囲８８の各フレームのクラスタリングが行われ、以後、同様である。
【００３３】
ステップ５６の処理により、対象範囲内の各フレームがどのクラスタに属するかが決まる。例えばクラスタ数が４であり、パワーの小さな順から順番にクラスタ番号を１，２，３，４とする。するとこのクラスタ番号は、各フレームのパワーのレベルを示すものと考えることができる。以後、このレベルを「クラスタレベル」と呼ぶ。音声信号８０の各フレームについてそのクラスタレベルを調べていくと、クラスタレベルは曲線９０で示されるように変化するであろう。
【００３４】
図３（Ａ）を参照して、音声信号１００に対し、範囲１０２のような比較的パワーのレベルが低い領域が続く場合を考える。この範囲の各フレームについてクラスタリングした結果得られるクラスタレベルの変化は、曲線１０４で表されるようなものとなると考えられる。本実施の形態では、このクラスタレベルが所定時間以上、しきい値１０６以上となったときに、その区間を一応の発話区間とする。すなわち、曲線１０４の一部分１０８が発話区間であると判定される。ただしここでの発話区間は次に説明するように暫定的なものである。
【００３５】
図３（Ｂ）を参照して、上記した音声信号１００の後に、パワーの大きな部分１２２が続いて入力され、音声信号１２０により示されるようになったものとする。この両者を含む範囲で音声信号１２０の各フレームをクラスタリングすると、部分１２２に含まれるフレームのパワーが相対的に大きいため、範囲１０２に含まれるフレームのクラスタレベルは低くなる。すなわち、クラスタレベルは図３（Ｂ）の曲線１２４により示されるようになり、図３（Ａ）では発話区間となっていた部分１０８のクラスタレベルが低くなる。その結果、この部分１２８ではしきい値１０６との比較で発話区間の条件が満たされなくなる。その結果、一旦発話区間と認定された部分が棄却され、非発話部分に分類されることになる。図１のステップ５６及び５８で行われるのは、このように発話区間を判定する処理と、発話区間に暫定的に分類された区間を棄却すべきか否かを決定する処理とである。
【００３６】
［構成］
本実施の形態に係る発話区間検出装置は、主として、図４に示すコンピュータシステム１５０と、コンピュータシステム１５０により実行されるコンピュータプログラムとにより実現される。
【００３７】
コンピュータシステム１５０は、コンピュータ１６０と、コンピュータ１６０に接続されるマイクロフォン１９４，スピーカ１９２，モニタ１６２、キーボード１６６及びマウス１６８とを含む。
【００３８】
図５を参照して、コンピュータ１６０は、ＣＰＵ（中央演算処理装置）１７６と、ＣＰＵ１７６に接続されたバス１８６と、バス１８６にいずれも接続されたＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）１７８、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１８０と、ハードディスクドライブ（ＨＤＤ）１７４、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）１９０が装着されるＤＶＤドライブ１７０、スピーカ１９２及びマイクロフォン１９４が接続されるサウンドボード１８８、並びに、インターネット１９６等のネットワークへの接続を提供するネットワークＩ／Ｆ１７２とを含む。本実施の形態では、図を簡明にし分かりやすくするため、マウス１６８、キーボード１６６及びモニタ１６２もバス１８６に接続されているものとする。
【００３９】
［機能的ブロック］
本実施の形態に係る発話区間検出装置について、全体システムにおいてどのような一にあるかについて、図６を参照して説明する。この実施の形態に係る発話区間検出装置２７０は、音声認識システム２５０において、音声認識エンジン２７２のフロントエンド処理を担当する。すなわち、発話区間検出装置２７０は、マイクロフォン１９４から音声信号３００の入力と、マイクロフォン１９４に付属している、発話中か否かを示すユーザが操作するスイッチ２６０の出力３０２とを受け、音声信号３００をフレーム化し、発話区間を検出して、発話区間のみのフレームの特徴量のシーケンス３０６を音声認識エンジン２７２に対して渡す。前述したとおり、発話区間検出装置２７０はさらに、発話区間検出処理中に発話区間の棄却が生じたときには、リセット信号３０８を音声認識エンジン２７２に対して出力する機能も持つ。この場合、発話区間検出装置２７０は再度発話区間の検出を行なって発話区間のフレームの特徴量を音声認識エンジン２７２に対して出力する。音声認識エンジン２７２は発話区間検出装置２７０から受信したフレームの特徴量を用いて再度音声認識を再開し、音声認識結果のテキスト３１０を出力する。
【００４０】
なお、発話区間検出装置２７０の発話区間検出には、種々のパラメータの設定が可能である。そのため、発話区間検出装置２７０には、それらのパラメータ値３０４を入力する入力装置２７４が接続される。入力装置２７４は例えば、図５に示すモニタ１６２、キーボード１６６、及びマウス１６８とＣＰＵ１７６により実行されるプログラムによるユーザインターフェイスにより実現される。
【００４１】
［詳細構成］
図７を参照して、発話区間検出装置２７０は、音声信号３００の入力を受けて、音声パワーを含む特徴量ベクトルからなるフレームのシーケンスに変換し、クラスタリング処理の前段階としてクラスタリング開始位置を判定する処理を行なう前段階処理部４３０と、前段階処理部４３０によりクラスタリング開始位置が検出されると、所定時間毎に、その時間から音声信号３００の先頭までの各フレームを所定時間（５０ミリ秒ごと）ごとにクラスタリングし、クラスタリングの結果に基づいて発話区間の検出及び棄却処理を行なって、発話区間の各フレームの特徴量のシーケンス３０６と、発話区間の棄却が生じたときのリセット信号３０８とを出力し音声認識エンジン２７２に与える処理を行なう発話区間検出部４３６と、発話区間検出部４３６の動作条件を設定するための種々の値を記憶する設定記憶部４３２と、発話区間検出部４３６により逐次決定される発話区間（発話開始位置及び発話終了位置）を記憶する発話区間記憶部４３４とを含む。
【００４２】
設定記憶部４３２及び発話区間記憶部４３４は、図５に示すＨＤＤ１７４、ＲＡＭ１８０等により実現される。
【００４３】
前段階処理部４３０は、音声信号３００を１０ミリ秒ごとにフレーム化し、フレームシーケンスとして出力するフレーム化部４５０と、フレーム化部４５０が出力する各フレームに対し、音声認識エンジン２７２での音声認識で用いられる特徴量（音声パワーを含む。）を算出する特徴量計算部４５２と、特徴量計算部４５２が出力する特徴量をフレームごとに記憶するバッファ４５４と、バッファ４５４に記憶された各フレームの音声パワーの値の分散に基づいてクラスタリング開始位置を判定し、発話開始位置である可能性の高いフレームが検出されたことを示すクラスタリング開始信号を出力するクラスタリング開始位置判定部４５６とを含む。フレーム化部４５０、特徴量計算部４５２、バッファ４５４及びクラスタリング開始位置判定部４５６には、スイッチ２６０の出力が与えられており、ユーザがスイッチ２６０を操作して発話の終了を指示すると、これら機能ブロックはいずれも動作を終了する。クラスタリング開始位置判定部４５６は、クラスタリング開始信号を出力すると、それ以後は上記した動作を停止する。発話区間検出が一旦終了した後、新たに発話区間検出処理が再開されると、クラスタリング開始位置判定部４５６は再び上記した処理を開始する。
【００４４】
発話区間検出部４３６は、バッファ４５４のデータ読出ができるようにバッファ４５４に接続され、指定された位置と音声信号の先頭との間の各フレームの音声パワー値を所定の設定にしたがって新たにフレームが受信されるたびに繰返しクラスタリングするクラスタリング処理部４９０と、クラスタリング処理部４９０によるクラスタリング結果を用い、フレームが５個入力されるたびに各フレームにおける発話確定状態を判定し、各フレームに対して発話確定状態のラベルを付す処理を行なう発話状態判定部４９２とを含む。発話状態判定部４９２は、各フレームのクラスタレベルをしきい値と比較することにより上記した判定を行なう。なお、発話開始位置の検出時のしきい値と、発話終了位置の検出時のしきい値とは異なっていてもよい。本実施の形態では、発話開始位置の検出時のしきい値の方が発話終了位置の検出時のしきい値より高くなっている。本実施の形態では、発話確定状態としては、「非発話中状態」、「発話開始確定状態」、「発話中確定状態」、及び「発話終了確定状態」の４つの状態がある。
【００４５】
発話区間検出部４３６はさらに、発話状態判定部４９２により各フレームに付されたラベルに基づき、発話の開始位置及び終了位置を判定するための発話開始・終了判定部４９４と、発話開始・終了判定部４９４による判定結果と、クラスタリング処理部４９０によるクラスタリングの結果とを用い、発話開始・終了判定部４９４により発話区間と判定された区間の各々について、新たなクラスタリングの結果、棄却すべき状態となったか否かを判定し、棄却すべき発話区間が生じた場合にはリセット信号３０８を出力するための発話区間棄却処理部４９６と、クラスタリング開始位置判定部４５６からクラスタリング開始信号を受けると、クラスタリング処理部４９０、発話状態判定部４９２、発話開始・終了判定部４９４及び発話区間棄却処理部４９６による処理を開始させ、以後、所定時間の間隔をおいてクラスタリング開始位置を５０ミリ秒ずつ後にずらしながらクラスタリング処理部４９０、発話状態判定部４９２、発話開始・終了判定部４９４及び発話区間棄却処理部４９６を繰返し動作させるための繰返制御部４９８とを含む。
【００４６】
設定記憶部４３２は、クラスタリング処理部４９０により行われるクラスタリング処理のためのパラメータ（クラスタ数、クラスタリング処理間の時間間隔、各クラスタの重心位置の計算方法に関するパラメータ）等を記憶するためのクラスタ設定記憶部４７０と、発話状態判定部４９２による発話確定状態判定の際に用いられる様々なしきい値を記憶するためのしきい値記憶部４７２と、発話開始・終了判定部４９４による処理で、所定の条件を満たした位置から発話の開始位置及び終了位置として決定すべき位置までのシフト量を記憶するためのシフト量記憶部４７４とを含む。
【００４７】
［プログラム構成］
以後、上記した各機能ブロックを実現するためのプログラムの制御構造について、フローチャートを用いて説明し、あわせて各プログラムで行なわれる処理の詳細について説明する。
【００４８】
《メインプログラム》
図８に示すメインプログラムは、所定時間（本実施の形態では１０ミリ秒）ごとに繰返し起動されるであって、１０ミリ秒ごとに、それまでに入力された音声データに対する以下に述べるような処理を繰返し実行する。
【００４９】
このプログラムは、発話データに対して既にクラスタリング処理を開始しているか否かを判定するステップ５２０と、クラスタリング処理をまだ開始していないと判定されたときに、クラスタリング開始判定のための直近の窓内の発話データの各フレームの音声パワーの分散に基づいて、クラスタリングを開始するか否かを判定するステップ５２２とを含む。ステップ５２２で実行される処理については後述する。
【００５０】
ステップ５２０の判定が肯定のとき、又はステップ５２０の判定が否定的で、ステップ５２２の処理が実行された後には、ステップ５２４で現在のクラスタリング状態が「クラスタリング中」か否かが判定される。判定が否定的であればこのプログラムの実行は一旦終了され、１０ミリ秒後に先頭から再開される。
【００５１】
ステップ５２４の判定が肯定的であれば、ステップ５２６で、発話開始からの全フレームの音声パワーについて、クラスタリング処理が実行される。この処理については後述する。
【００５２】
ステップ５２６の処理が完了した後、ステップ５２８において、発話区間の判定タイミングであるか否かが判定される。発話区間とは、音声信号中で発話の占める区間のことを指す。本実施の形態では、フレームが入力されるたびに発話区間の判定を行なうのではなく、５フレームごとに発話区間の判定を行なう。
【００５３】
例えば、図１８を参照して、音声信号７９０において、あるタイミング７９４において、そこから５フレーム分の判定区間７９２について、発話区間の判定を行なう。次に発話区間の判定を行なうのは、上記したタイミング７９４から５フレーム分の時間が経過した後のタイミング７９６である。このタイミング７９６では、本実施の形態では、タイミング７９６の直前の５フレーム分の判定区間７９８に対して発話区間の判定処理を実行する。
【００５４】
本実施の形態では、フレームは１０ミリ秒ごとに入力される。すなわち、発話区間の判定は５０ミリ秒ごとに行なう。そこで、ステップ５２８では、前回の発話区間の判定タイミングから５０ミリ秒が経過したかを判定する。ステップ５２８の判定が否定的であれば何もせずこのプログラムの実行を終了する。ステップ５２８の判定が肯定的であれば、ステップ５３０において、発話区間の判定処理を実行してこのプログラムの実行を一旦終了する。ステップ５３０の詳細については後述する。なお、ステップ５２８で、どの程度の間隔で発話区間判定処理を行なうかは設計的事項である。例えば、クラスタリング開始後は、ステップ５２８の処理を行なわず常にステップ５３０の処理を実行するようにしてもよい。
【００５５】
《クラスタリング開始位置判定》
図８のステップ５２２の処理について、図９〜図１１を参照して説明する。以下、「クラスタリング状態」とは、クラスタリング処理を開始したか否かを示す変数のことをいう。そのとり得る値は「非クラスタリング」と「クラスタリング中」の２つである。初期値は「非クラスタリング」である。
【００５６】
図９を参照して、発話開始位置と考えられる位置は、音声信号５４０のピーク５４２の直後の位置５４４にあると仮定できる。ピーク５４２の付近では、音声信号の音声パワーの分散がそれ以外の位置と比較して大きくなると考えられる。また、発話開始と考えられるまでは、上記したようなクラスタリング処理を実行することは意味がない。すなわち、音声信号５４０のピーク５４２の直後の位置５４４からクラスタリングを開始することが合理的と考えられる。この位置５４４を検出するために、本実施の形態では、現在時点の直近の所定時間の窓内の音声パワーの分散を求め、その値が所定のしきい値以上となったときにクラスタリングを開始する。この窓を以下では「分散窓」と呼ぶ。
【００５７】
図１０（Ａ）を参照して、ある時点における音声信号５６０の分散窓５６４は、ある時点の直前の時間範囲５６２である。図１０（Ｂ）に示されるように、時間がさらに進んだ音声信号５７０における分散窓５７４は、その時点の直前の時間範囲５７２である。
【００５８】
図１１を参照して、図８のステップ５２２における処理を実現するプログラムルーチンは、音声信号の入力開始時からの累計フレーム数が所定のしきい値より大きくなったか否かを判定し、判定が否定的であれば何もせずに処理を終了するステップ６００を含む。所定長の分散窓に相当するフレーム数以上のフレームの入力を受けた後でなければ、音声パワーの分散に基づくクラスタリングの開始判定を行なうことはできない。したがって、入力されたフレーム数が少ない場合にはクラスタリングの開始判定は行なわない。
【００５９】
このプログラムはさらに、ステップ６００の判定が肯定的であるときに、現時点の直前の分散窓内に含まれるフレームの音声パワーについて、その分散を求めるステップ６０２と、ステップ６０２で求めた分散の値が所定のしきい値以上か否かを判定するステップ６０４とを含む。ステップ６０４の判定が否定的であればステップ６０８でクラスタリング状態を示す変数に「非クラスタリング」であることを示す値を格納してこの処理を終了する。ステップ６０４の判定が肯定的であれば、ステップ６０６で、クラスタリング状態を示す変数に、「クラスタリング中」であることを示す値を格納して処理を終了する。
【００６０】
この結果、図１１に示すクラスタリング開始判定処理により、通常は、処理の開始からしばらくの間は「非クラスタリング」状態と判定され、分散窓内のフレームの音声パワーの分散がしきい値以上になることがあると「クラスタリング中」と判定される。一旦「クラスタリング中」と判定された後は、後述するようにこの処理が中止されるまで、クラスタリング状態は「クラスタリング中」に維持される。
【００６１】
《クラスタリング処理》
図１２を参照して、図８のステップ５２６で実行されるクラスタリングのためのプログラムルーチンは、直前の分散窓内のフレームの音声パワー値の内、上位の所定個数をハズレ値として除外するステップ６２０と、残った音声パワー値に基づいて、各クラスタの重心位置を計算するステップ６２２と、ステップ６２２で計算された各クラスタの重心位置を用い、Ｋ平均クラスタ法によるクラスタリング処理により、各音声パワー値をクラスタリングして処理を終了するステップ６２４とを含む。本実施の形態では、クラスタ数は設定可能であり、図６に示す入力装置２７４により入力され、図７に示す設定記憶部４３２に記憶される。以下の説明では、クラスタ数として「４」が設定された場合を想定している。
【００６２】
Ｋ平均クラスタ法については、統計学の辞書にも記載されている、クラスタ解析のための１手法であって、基本的な概念についてはよく知られている。したがってここではその詳細については繰返さない。
【００６３】
なお、本実施の形態では、ステップ６２４のクラスタリング処理により、各フレームはその音声パワーによってクラスタレベル１〜４のいずれかに分類される。
【００６４】
《発話区間判定》
図１３を参照して、図８のステップ５３０で行なわれる発話区間判定処理のためのプログラムルーチンは、フレームのクラスタレベルの変化に基づいて、現在の発話確定状態を判定するステップ６４０を含む。ここで、発話確定状態とは、発話状態判定部４９２について述べたとおり、「非発話中状態」、「発話開始確定状態」、「発話中確定状態」、及び「発話終了確定状態」のいずれかであり、処理の最初には「非発話状態」となっている。
【００６５】
このプログラムはさらに、ステップ６４０の後、発話確定状態が上記した４つの状態のいずれであるかを判定してその結果に基づいて制御の流れを分岐させるステップ６４２を含む。発話確定状態が「発話開始確定」又は「発話中確定」であれば制御はステップ６４４に進む。発話確定状態が「発話終了確定」であれば制御はステップ６５４に進む。発話確定状態が「非発話中」であれば何もせずこの発話区間判定処理を終了する。どのようなときに発話確定状態が上記した４つのいずれに分類されるかについては図１４を参照して後述する。
【００６６】
発話確定状態が「発話開始確定」又は「発話中確定」であれば、ステップ６４４で、これまでに発話区間と判定された区間の各々について、クラスタリング処理後の新たなクラスタレベルに基づいて発話区間でなくなるものがあればその発話区間を棄却する。続いてステップ６４６では、ステップ６４４の処理の結果、棄却された発話確定区間があるか否かを判定する。棄却された発話確定区間があれば、ステップ６４８で、音声認識エンジン２７２に対してリセット依頼信号を出力する。このリセット依頼信号は、これまで発話区間検出装置２７０から音声認識エンジン２７２に対して出力された発話区間の各フレームの特徴量データを全て破棄することを指示するためのものである。リセット信号を受信した音声認識エンジン２７２は、それまでに発話区間検出装置２７０から受信した一連のフレームの特徴量を全て破棄する。
【００６７】
ステップ６４６の判定が否定的である場合、及びステップ６４６の判定が肯定的であってかつステップ６４８の処理が完了した場合には、ステップ６５０で、発話区間検出装置２７０は、発話確定区間の特徴量を音声認識エンジン２７２に送信する。ステップ６４６の判定が肯定的である場合、ステップ６５０では、棄却された発話区間を除く発話区間の各フレームの特徴量が音声認識エンジン２７２に送信される。ステップ６５０の後、ステップ６５２で発話確定状態を「発話中確定」に変更してこの処理を終了する。
【００６８】
ステップ６４２の判定が「発話終了確定」である場合、ステップ６５４で、発話確定区間の各フレームの特徴量を音声認識エンジン２７２に送信する。続くステップ６５６では、発話確定状態を「非発話中状態」に修正してこの処理を終了する。
【００６９】
《発話状態判定》
図１４を参照して、図１３のステップ６４０で実行される発話状態判定処理を実現するためのプログラムルーチンは、現在の発話状態が「発話中確定状態」か否かを判定し、その結果に応じて制御の流れを分岐させるステップ６７０を含む。ステップ６７０の判定が否定的である場合、制御はステップ６７２に進み、発話開始位置判定処理を行なってこの処理を終了する。ステップ６７０の判定が肯定的である場合、制御はステップ６７４に進み、発話終了位置判定処理を行なってこの処理を終了する。発話開始位置判定処理及び発話終了位置判定処理の詳細についてはそれぞれ図１５及び図１６を参照して説明する。
【００７０】
《発話開始位置判定》
図１５を参照して、発話開始位置判定処理を実現するプログラムルーチンは、現在の時刻からさかのぼって次のフレーム（すなわち前のフレーム）の音声パワーのバッファからの読出を試行するステップ７００と、先頭のフレームに到達したときに処理を終了するステップ７０２と、ステップ７０２で次のフレームがあると判定された時に実行され、そのフレームの音声パワーのクラスタレベルが第１のしきい値ＴＨ１（発話開始クラスタレベルのしきい値）以上か否かを判定するステップ７０４とを含む。
【００７１】
ステップ７０４の判定が肯定的であれば、ステップ７０６で発話中フレーム数を示す変数を１カウントアップする。続くステップ７０８で、非発話中フレーム数を示す変数に０を代入する。さらに、ステップ７１０で、発話中フレーム数が第２のしきい値ＴＨ２（最短発話時間を表す。）以上となったか否かを判定し、判定が否定的である場合には制御をステップ７００に戻す。ステップ７１０の判定が肯定的であれば、ステップ７１２で「発話開始位置先行処理」を実行する。
【００７２】
「発話開始位置先行処理」とは、発話の開始位置を、ステップ７１０の判定が肯定的となったフレームから所定数だけさかのぼって決定する処理のことをいう。この所定数（所定時間）を「プリロール時間」と呼ぶ。
【００７３】
ステップ７１２の後、発話確定状態を「発話開始確定状態」に変更してこの処理を終了する。
【００７４】
一方、ステップ７０４の判定が否定的であれば、ステップ７１６で非発話中フレーム数を１カウントアップする。続いてステップ７１８で非発話中フレーム数が第３のしきい値ＴＨ３（最短無音時間を表す。）以上となったか否かを判定する。判定が否定的であれば制御はステップ７００に戻る。判定が肯定的であればステップ７２０で発話中フレーム数を０クリアし、制御をステップ７００に戻す。
【００７５】
《発話終了位置判定》
発話終了位置判定処理は、発話区間の終了位置を決定する処理である。
【００７６】
図１６を参照して、図１４のステップ６７４で実行される発話終了位置判定のためのプログラムルーチンは、次のフレームの音声パワー値の読出を試行するステップ７４０と、ステップ７４０の試行の結果、フレームデータの最後（先頭）まで達したか否かを判定し、判定が肯定的であれば処理を終了するステップ７４２とを含む。このプログラムはさらに、ステップ７４２の判定が否定的であるときに実行され、ステップ７４０で読出したフレームのクラスタレベルが第４のしきい値ＴＨ４（発話終了クラスタレベルのしきい値）を下回ったか否かを判定し、判定結果に応じて制御の流れを分岐させるステップ７４４とを含む。
【００７７】
ステップ７４４の判定が肯定的であれば、ステップ７４６で非発話中フレーム数を１カウントアップする。続くステップ７４８で、非発話中フレーム数が第５のしきい値ＴＨ５（発話終了と判定するための非発話フレーム数のしきい値）を上回ったか否かが判定され、判定が否定であれば制御はステップ７４０に戻る。ステップ７４８の判定が肯定的であればステップ７５０で発話終了位置を、現在のフレームから所定フレーム数だけ後ろの位置に移動した位置を発話終了位置とする処理をする。この移動量をアフターロールと呼ぶ。ステップ７５０の後、発話確定状態を「発話終了確定状態」に変更してこの処理を終了する。
【００７８】
一方、ステップ７４４の判定が否定の場合、ステップ７５４で非発話フレーム数を０クリアし、制御をステップ７４０に戻す。
【００７９】
図１７を参照して、発話開始位置判定についてその概要を説明する。今、クラスタレベル曲線７７０において、第１のしきい値ＴＨ１（線分７７２により表す。）を超えたフレームが第２のしきい値ＴＨ２以上続いた場合、その最初の位置７７４を特定し、さらにその位置７７４からプリロール７７６だけ先行した位置７７８を発話開始位置とする。これが図１５に示す発話開始位置判定処理の概要である。
【００８０】
図１９を参照して、発話終了位置判定についてその概要を説明する。今、クラスタレベル曲線８１０において、第４のしきい値ＴＨ４（線分７７２により表す。）を下回るクラスタレベルの連続するフレーム数が第５のしきい値ＴＨ５を下回ったとき、その最初の位置８１２から前述したアフターロール８１４だけ後ろに移動した位置８１６を発話終了位置とする。これが図１６に示す発話終了位置判定処理の概要である。
【００８１】
《発話棄却判定処理》
前述したとおり、上記した一連の処理により一端は発話区間と判定された区間であっても後続する音声信号を含めたクラスタリング処理により、発話区間から外すべき区間が生ずることがある。図１３のステップ６４４で行われる発話棄却判定処理は、そうした発話区間を見つけ出し、発話区間から削除する処理のことをいう。
【００８２】
図２０を参照して、この処理を実現するプログラムルーチンは、音声信号上の現時点での処理位置より前に発話区間として特定された区間が存在しているか否かが判定される。判定が否定的であれば何もせずこの処理は終了する。判定が否定的であれば制御はステップ８３４に進む。判定が肯定的であれば、ステップ８３４の前にステップ８３２が実行される。ステップ８３２では、現在より前の発話区間の各々について、新たに行われたクラスタリング処理の結果、その発話区間を棄却すべきか否かが判定され、判定結果に応じて前発話区間が棄却又は維持される。その詳細については図２１を参照して後述する。ステップ８３０の判定が否定的である場合、及びステップ８３０の判定が肯定的でかつステップ８３２の処理が終了した後、ステップ８３４で、現在の発話区間について、新たなクラスタリングの結果、発話区間から棄却すべきか否かが判定され、判定結果に応じて現発話区間が棄却又は維持される。この詳細については図２２を参照して後述する。
【００８３】
《前発話区間棄却判定》
図２１を参照して、前発話区間棄却判定処理を実現するためのプログラムルーチンは、次のフレーム（すなわち直前のフレーム）の音声パワー値のバッファからの読出を試行するステップ８５０と、ステップ８５０の処理の結果、前の全ての発話区間に対し、棄却判定処理８４８を実行するステップ８４６を含む。棄却判定処理中では、処理対象の発話区間内のフレームが所定の順番で（例えば前からシーケンシャルに）読出され、以下の処理が実行される。なお、図２１の処理では、デフォルトとして対象の前発話区間は発話区間であるものとして処理が開始される。
【００８４】
棄却判定処理８４８は、対象となる前発話区間の中で次のフレームの読出を試行するステップ８５０と、ステップ８５０の処理の結果、処理対象の前発話区間内の全てのフレームに対してチェックが完了したと判定されたときに、この前発話区間に対する処理を終了するステップ８５２とを含む。ステップ８５２でまだ前発話区間内に未処理のフレームがあると判定されたときに、そのフレームのクラスタレベルを第１のしきい値ＴＨ１（発話開始クラスタレベルのしきい値）と比較し、判定結果に応じて制御の流れを分岐させるステップ８５４とを含む。
【００８５】
ステップ８５４の判定が肯定の時には、ステップ８５６で発話中フレーム数を１カウントアップし、ステップ８５８で非発話中フレーム数を０クリアする。続いて発話中フレーム数が第２のしきい値ＴＨ２（最短発話時間）以上となったか否かを判定する。判定が肯定であれば、処理中の前発話区間を棄却しないことに設定し、この前発話区間に対する処理を終了する。ステップ８６０の判定が否定的であれば制御はステップ８５０に戻る。
【００８６】
一方、ステップ８５４の判定が否定的であれば、ステップ８６２で非発話中フレーム数を１カウントアップし、ステップ８６４で非発話中フレーム数が第３のしきい値ＴＨ３（最短無音時間）以上となったか否かが判定される。判定結果が肯定的であれば発話中フレーム数を０クリアし、制御はステップ８５０に戻る。判定結果が否定であれば制御はステップ８５０に戻る。
【００８７】
この処理により、例えば図３（Ａ）において発話区間と判定されていた部分１０８が、図３（Ｂ）の部分１２８により示すように、非発話区間と判定される（棄却される）ことが生じ得る。
【００８８】
《現発話区間棄却判定》
この処理は、現在処理中フレームを含む、発話区間と判定された区間について、棄却すべき区間が生じたか否かを判定する処理である。この処理では現発話区間のうち、最も新しいフレーム（カレントフレーム）から順番に前方のフレームを読出して以下の処理を行なう。なおこの処理でも、現発話区間については、まず発話区間であることが前提としてこの処理が開始される。
【００８９】
図２２を参照して、現発話区間棄却判定を実現するプログラムルーチンは、現発話区間において、次のフレーム（すなわち直前に読出したフレームの直前のフレーム）の読出を試行するステップ８８０と、ステップ８８０の試行の結果、現発話区間の全てのフレームの読出が完了したか否かを判定し、判定が肯定的であれば処理を終了するステップ８８２と、ステップ８８２の判定が否定的であるときに、読出したフレームのフレームレベルが第１のしきい値ＴＨ１（発話開始クラスタレベルのしきい値）以上か否かに応じて制御の流れを分岐させるステップ８８４とを含む。
【００９０】
ステップ８８４の判定が肯定的である場合、ステップ８９０で発話中フレーム数を１カウントアップして制御はステップ８８０に戻る。
【００９１】
ステップ８８４の判定が否定的である場合、ステップ８８６で非発話中フレーム数を１カウントアップする。続いてステップ８８８で、非発話中フレーム数が第３のしきい値ＴＨ３（最短無音時間）以上となったか否かを判定する。判定が否定的であれば制御はステップ８８０に戻る。判定が肯定的であればステップ８９２において、この最短無音時間の最初（最もカレントフレームに近いフレーム）から現発話区間の先頭までの区間の全フレームのフレームレベルに基づいて、その区間の発話状態クラスタの比率を計算する。ステップ８９４では、この比率が第６のしきい値ＴＨ６（発話状態と判定するためのクラスタ比率しきい値）未満か否かが判定される。判定が否定的であれば制御はステップ８８０に戻る。さもなければステップ８９６で、この最短無音時間の最初（最もカレントフレームに近いフレーム）から前述のプレロール時間だけ遡った位置を現発話区間の新たな先頭位置とし、それ以前の区間は非発話区間として（棄却して）処理を終了する。この場合、プレロール量及び第３のしきい値ＴＨ３の値は、発話開始位置が検出された直後にはステップ８８８の判定結果がＹＥＳとならないように設定されている。
【００９２】
例えば、図２３（Ａ）を参照して、現発話区間９３２について、現発話区間棄却処理を行なう場合を考える。クラスタレベル曲線９３０について、カレントの位置（現発話区間９３２の最も右側の位置）から遡って第１のしきい値ＴＨ１（図２３（Ａ）において線分９１２で示す。）を下回った位置９３４を特定する。この位置からさらに遡って、クラスタレベルが第１のしきい値ＴＨ１を下回った区間９３８が第３のしきい値ＴＨ３（最短無音時間）以上となるような位置９３６があるか否かを探索し、そのような位置９３６があれば、位置９３４から現発話区間９３２の先頭位置９４２までのフレームについて、その区間の発話状態クラスタの比率を計算する。この比率が第６のしきい値ＴＨ６未満であれば、現発話区間のうち、図２３（Ｂ）に示すように位置９３４からプレロール時間９６８だけ遡った位置から前の区間９６４を棄却し、位置９６２以降の区間９６０を新たな現発話区間とする。
【００９３】
図２３（Ａ）に示す例では、位置９３４から現発話区間９３２の先頭までの中で、しきい値以上となる区間９４０の比率が上記しきい値より小さくなる。したがって図２３（Ｂ）に示すように、位置９３４からプレロール時間９６８だけ遡った位置９６２から現発話区間の先頭位置９４２までが棄却され、位置９６２が新たな現発話区間９６０の先頭位置となる。
【００９４】
［動作］
上記した本実施の形態に係る発話区間検出装置２７０は以下のように動作する。図６を参照して、マイクロフォン１９４を介して音声信号３００が発話区間検出装置２７０に入力される。図７を参照して、フレーム化部４５０は音声信号３００をデジタル化し、１０ミリ秒ごとに１０ミリ秒長のフレームに分離して特徴量計算部４５２に与える。特徴量計算部４５２は、各フレームについて、後続の音声認識エンジン２７２で使用される特徴量を算出し、バッファ４５４に格納する。このとき算出される特徴量の中には、本実施の形態では音声パワーが含まれている。
【００９５】
クラスタリング開始位置判定部４５６は、バッファ４５４にフレームデータが格納されると、各フレームの音声パワーの分散に基づいて、クラスタリング開始位置を判定する。クラスタリングの開始条件が充足されると、クラスタリング開始位置判定部４５６は繰返制御部４９８に指示を送り、発話区間検出部４３６による発話区間の判定処理が開始される。
【００９６】
繰返制御部４９８は、クラスタリング開始位置判定部４５６からクラスタリングの開始条件が満たされたことを示す信号を受けると、クラスタリング処理部４９０を１０ミリ秒ごとに動作させ、バッファ４５４に含まれる各フレームの音声パワーについて、クラスタリングを行なわせる。クラスタリング処理部４９０はクラスタリングが完了すると、各フレームにクラスタレベルを付与して発話状態判定部４９２に与える。
【００９７】
クラスタリングが完了すると繰返制御部４９８は次に、発話状態判定部４９２による発話状態判定処理を実行させる。ただし発話状態判定部４９２による処理は５０ミリ秒ごとに行なわれるので、クラスタリング処理部４９０によるクラスタリングが５回行われるごとに発話状態判定部４９２が１回動作することになる。発話状態判定部４９２は、各フレームのクラスタレベルに基づいて、カレントフレームを含み、直前の判定窓内の各フレームについて、その発話確定状態を判定し、フレームにその結果を示すラベルを付して発話開始・終了判定部４９４に与える。発話開始・終了判定部４９４は、発話状態判定部４９２から与えられたフレームシーケンスの発話確定状態のラベルに基づいて、発話開始位置及び終了位置を特定する。発話開始・終了判定部４９４は、この結果を発話区間記憶部４３４に格納する。
【００９８】
発話区間棄却処理部４９６は、この結果を受けてさらに、クラスタリング処理部４９０によるクラスタリングにより、前発話区間の内で棄却することになった区間を特定し、発話区間から除外する。発話区間棄却処理部４９６はさらに、カレントフレームが発話区間であるときには、そのフレーム内の発話フレーム比率に基づいて、棄却すべき区間があればその区間を現発話フレームから分離して棄却するよう、発話区間記憶部４３４に記憶された発話区間データを更新する。発話区間棄却処理部４９６は、発話区間記憶部４３４に記憶された発話区間のフレームデータの特徴量のシーケンスを音声認識エンジン２７２に与え、音声認識エンジン２７２はこれら特徴量のシーケンスに対して音声認識を行ない、音声認識結果のテキストを出力する。
【００９９】
発話区間棄却処理部４９６は、発話区間の棄却が生じたときにはリセット信号３０８を音声認識エンジン２７２に与える。さらに発話区間棄却処理部４９６は、発話区間記憶部４３４に記憶された、棄却処理後の新たな発話区間のフレームデータの特徴量シーケンスを音声認識エンジン２７２に与える。音声認識エンジン２７２は、これら特徴量を用いて、音声認識を最初から実行する。
【０１００】
こうした処理が繰返されていく。ユーザが発話を終了すると、本実施の形態ではユーザはスイッチ２６０を用い、発話終了を示す信号を出力する。このスイッチ２６０の出力３０２は発話区間検出装置２７０に含まれる各部に与えられ、これら各部の動作が終了する。
【０１０１】
実際には、これら処理は前述したプログラムにより実現される。以下、発話確定状態に応じてプログラムの実行経路がどのように変化するかを説明する。
【０１０２】
《クラスタリング開始まで》
クラスタリング開始位置判定部４５６は、図１１を参照して、バッファ４５４に格納されたフレーム数が所定数以上になるまで待機し（ステップ６００）、フレーム数が所定以上となるとステップ６０２以下のクラスタリング開始位置判定処理を開始する。この処理では、フレームがバッファ４５４に入力されるたびに（１０ミリ秒ごとに）、カレントフレームの直前の所定の長さの分散窓内に含まれるフレームの音声パワーの分散を計算する（ステップ６０２）。その値がしきい値以上となる（ステップ６０４の判定がＹＥＳとなる）と、クラスタリング状態を示す変数にクラスタリング開始（クラスタリング中）を示す値が代入され（ステップ６０６）、クラスタリング処理が開始される。
【０１０３】
《最初の発話開始位置検出まで》
図１２に示すクラスタリング処理が完了すると、図１３に示す発話区間判定処理が実行される。この処理において、発話確定状態の初期値は「非発話中」である。
【０１０４】
発話開始位置の条件が充足されるまでは、図１４のステップ６７０の判定は否定的であり、ステップ６７２（図１５）の発話開始位置判定処理が実行される。発話開始位置の検出の条件が充足されるまでは、図１５のステップ７１０の判定結果はＮＯである。したがって、いずれステップ７０２の判定結果がＹＥＳとなって発話開始位置は検出されずに、次の繰返しが行われる。
【０１０５】
《最初の発話開始位置検出時》
この場合、図１４のステップ６７０の判定はまだ否定的であるが、ステップ６７４で図１５のプログラムが実行され、図１５のステップ７１０の判定が肯定的となる。その結果、ステップ７１２において発話開始位置が決定され、ステップ７１４で発話確定状態が「発話開始確定状態」となる。したがって、図１３のステップ６４２の判定の結果、制御はステップ６４４に進む。まだ発話確定区間はないので、ステップ６４４では何もされず、ステップ６４６の判定も否定となる。ステップ６５０では、発話開始位置から発話開始確定位置まで（図１７でいうと、位置７７８からカレントフレームまで）が発話区間として確定している。したがって、その区間の特徴量を音声認識エンジンに送る。ステップ６５２で発話確定状態は「発話中確定」となる。
【０１０６】
《最初の発話中確定状態、発話終了状態検出前まで》
この状態では、図８のプログラムが起動されると、ステップ５２０，５２４，５２６，及び５２８，又はステップ５２０，５２４，５２６，５２８、及び５３０の経路の処理が実行される。この条件では、ステップ５３０では、図１４のステップ６７０の判定が肯定的となり、ステップ６７４の処理が実行される。ステップ６７４では、図１６の処理が実行される。
【０１０７】
図１６を参照して、カレントフレームからその直前の判定窓内の全てのフレームの各々に対して、ステップ７４２〜７４８の処理を実行する。発話終了位置の条件が充足されない場合、ステップ７４８の判定は常に否定的となり、いずれステップ７４２の判定が肯定的となる。図１３のステップ６４２の結果、制御はステップ６４４（図２０に示す発話棄却処理）に進む。
【０１０８】
図２０を参照して、ここではまだ発話確定区間は存在しないため、ステップ８３２の処理は実行されず、ステップ８３４の処理（図２２に詳細を示す）が実行される。図２２の処理では、ステップ８８０〜８８８の処理を現発話区間のカレントフレームから遡って実行する。ステップ８８８の判定が肯定的となることなくステップ８８２の判定が肯定的となれば、ここでは何もされずにこの処理が終了する。ステップ８８２の判定が肯定的となる前にステップ８８８の判定が肯定的となる場合があると、ステップ８９２において、ステップ８８４の処理で最初に判定結果がＹＥＳとなったフレームから現発話区間の先頭までのフレームについて、発話状態クラスタの比率が算出される。もしもこの値がしきい値ＴＨ６未満であれば、ステップ８８４の判定が最初に肯定的となったフレームから所定のプレロール時間だけ遡った位置のフレームから現発話区間の先頭フレームまでが棄却される（ステップ８９６）。
【０１０９】
現発話区間の棄却が発生すると、図１３のステップ６４６の判定が肯定的となり、ステップ６４８の処理が実行され、音声認識エンジンにリセット依頼が送られる。続いてステップ６５０で、棄却後の発話開始位置からカレントフレームまでの特徴量が音声認識エンジンに送信される。音声認識エンジンでは、リセット依頼に応答して、これまでの音声認識結果をリセットし、続いてステップ６５０で送信されてくる特徴量のシーケンスに対する音声認識を実行する。
【０１１０】
《最初の発話終了状態検出時》
この場合、図１６の処理で、ステップ７４２の判定が肯定となる前に、ステップ７４８の判定が肯定となり、ステップ７５０で発話終了位置が特定され、ステップ７５２で発話確定状態が「発話終了確定状態」となる。ステップ７５０で発話終了位置が特定されるので、発話確定区間が１つ特定されたことになる。
【０１１１】
図１３のステップ６４２の結果、制御はステップ６５４に進み、発話確定区間の特徴量のシーケンスが音声認識エンジン２７２に送信される。ステップ６５６で発話確定状態が「非発話中状態」に更新される。
【０１１２】
《２回目以降の発話開始位置検出まで》
この場合、１回目の発話開始位置検出までと概略同じ処理が実行される。すなわち、図１３に示す処理でステップ６４０及び６４２の処理がされた後、ステップ６４２の判定によって発話区間判定処理では何もされない。
【０１１３】
《２回目以降の発話開始位置検出時》
この場合にも、１回目の発話開始位置検出時と概略同じ処理が実行される。ただし、図１３のステップ６４４の処理が実行され、その結果、ステップ６４８の処理が実行される可能性があること、及びステップ６５０で発話確定区間の特徴量が音声認識エンジン２７２に実際に送信される点が異なる。
【０１１４】
発話棄却判定では、図２０のステップ８３０の判定が肯定的となり、ステップ８３２の処理（図２１）の処理が実行される。その後、ステップ８３４の処理も実行される。
【０１１５】
図２１を参照して、前に特定された発話確定区間の各々について、ステップ８５０〜８６０の処理が繰返し実行される。新たに実行されたクラスタリング処理の結果、ステップ８６０の判定が肯定的となった場合には、ステップ８６８でこの発話確定区間を棄却しないことが決定される（非棄却）。そうでなく、ステップ８５２の判定が肯定的となった場合には、この発話確定区間は棄却される。
【０１１６】
再び図１３を参照して、ステップ６４４の判定の結果、前発話区間の一部に棄却すべきものがある場合、ステップ６４６の判定が肯定的となり、ステップ６４８で音声認識エンジン２７２に対してリセット信号が出力される。続いてステップ６５０で、残った発話確定区間の特徴量を音声認識エンジン２７２に送信し、ステップ６５２で発話確定状態を「発話中」に変更する。
【０１１７】
《２回目以降の発話開始位置検出から発話終了位置検出まで》
この場合は、１回目の発話開始位置検出から発話終了位置検出までと同じ処理が実行される。
【０１１８】
《２回目以降の発話終了位置検出時》
この場合も、１回目の発話終了位置検出と同じ処理が実行される。
【０１１９】
こうした処理が繰返し実行されていく。ユーザが発話終了の印としてマイクロフォン１９４のスイッチ２６０を操作すると、上記した処理は中止される。
【０１２０】
上記実施の形態では、発話のクラスタリング開始条件が充足された後、所定時間間隔で全発話データのフレームの音声パワーをクラスタリングする処理を繰返し、各フレームのクラスタリグレベルに基づいて、発話区間の確定と棄却とを繰返して行なう。例えば発話開始の直前に雑音レベルの比較的高い領域があり、クラスタリングの初期に発話区間に分類されたとしても、後続する実際の発話区間の音声パワーが大きいことによって、クラスタリングの繰返しのうちにそれら雑音のクラスタレベルは低くなる。その結果、いずれそれら雑音により生じた発話区間は棄却され、正しい発話区間のみを精度良く抽出できるようになることが期待できる。実際、上記実施の形態にしたがって構築したシステムでは、従来技術と比較して雑音区間を発話区間として誤検出してしまう頻度が低くなり、後続の音声認識の精度を高めることができた。
【０１２１】
さらに、上記実施の形態では、各種のしきい値（クラスタ数、発話開始クラスタレベルのしきい値、最短発話時間、最短無音時間、発話終了クラスタレベル、発話終了と判定するための非発話フレーム数のしきい値、及び発話状態と判定するためのクラスタ比率しきい値、フレームのシフト長及びフレーム長を設定記憶部４３２に設定できる。そのため、音声認識システムが設置される環境にあわせて発話区間検出装置２７０を最適化できる。
【０１２２】
なお、上記実施の形態では、発話区間検出装置２７０に音声信号３００がマイクロフォン１９４から与えられる例を説明した。しかし、本発明がそのような実施の形態には限定されず、何らかの形で音声データが発話区間検出装置２７０に与えられれば十分であることは明らかである。例えば遠隔地の携帯電話等において音声を収集し、符号化して発話区間検出装置２７０を持つサーバに送信してくるような実施の形態も考えられる。単に音声をデジタル化して発話区間検出装置２７０に送信してくるものでもよい。要は、各フレームについて音声パワーと特徴量とが得られる様なデータであれば、どのような形で発話区間検出装置２７０に音声データが与えられるものであってもよい。
【０１２３】
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内での全ての変更を含む。
【符号の説明】
【０１２４】
８０、１００、１２０  音声信号
１５０  コンピュータシステム
１６０  コンピュータ
１９４  マイクロフォン
２５０  音声認識システム
２７０  発話区間検出装置
３０６  特徴量のシーケンス
３０８  リセット信号
４３０  前段階処理部
４３２  設定記憶部
４３４  発話区間記憶部
４３６  発話区間検出部
４５６  クラスタリング開始位置判定部
４９０  クラスタリング処理部
４９２  発話状態判定部
４９４  発話開始・終了判定部
４９６  発話区間棄却処理部
４９８  繰返制御部
【図１】
2013114024.tif 000003
【図２】
2013114024.tif 000004
【図３】
2013114024.tif 000005
【図４】
2013114024.tif 000006
【図５】
2013114024.tif 000007
【図６】
2013114024.tif 000008
【図７】
2013114024.tif 000009
【図８】
2013114024.tif 000010
【図９】
2013114024.tif 000011
【図１０】
2013114024.tif 000012
【図１１】
2013114024.tif 000013
【図１２】
2013114024.tif 000014
【図１３】
2013114024.tif 000015
【図１４】
2013114024.tif 000016
【図１５】
2013114024.tif 000017
【図１６】
2013114024.tif 000018
【図１７】
2013114024.tif 000019
【図１８】
2013114024.tif 000020
【図１９】
2013114024.tif 000021
【図２０】
2013114024.tif 000022
【図２１】
2013114024.tif 000023
【図２２】
2013114024.tif 000024
【図２３】
2013114024.tif 000025