(57)【要約】【課題】音声信号中で話者が発話している区間の終了を適切に検出できる発話区間検出装置を提供する。【解決手段】発話区間検出装置は、話者の声が表された音声信号を分割した所定長を持つフレームごとに、音声信号の周期性の強さを表すピッチゲインを算出するピッチゲイン算出部（２５）と、話者が発話していない非発話区間が継続している場合においてピッチゲインが第１の閾値以上となると話者が発話している発話区間が開始されたと判定する発話区間開始検出部（２６）と、発話区間におけるピッチゲインの第１の代表値から発話区間が開始される前の区間におけるピッチゲインの第２の代表値を減じた値に応じた低下量だけ第１の閾値より低い第２の閾値を設定する閾値設定部（２８）と、発話区間が継続している場合においてピッチゲインが第２の閾値未満となると発話区間が終了すると判定する発話区間終了検出部（２９）とを有する。【選択図】図２
2019053233.tif 000002
【特許請求の範囲】
【請求項１】
話者の声が表された音声信号を分割した所定長を持つフレームごとに、前記音声信号の周期性の強さを表すピッチゲインを算出するピッチゲイン算出部と、
前記話者が発話していない非発話区間が継続している場合において前記ピッチゲインが第１の閾値以上となると前記話者が発話している発話区間が開始されたと判定する発話区間開始検出部と、
前記発話区間におけるピッチゲインの第１の代表値から前記発話区間が開始される前の区間におけるピッチゲインの第２の代表値を減じた値に応じた低下量だけ前記第１の閾値より低い第２の閾値を設定する閾値設定部と、
前記発話区間が継続している場合において前記ピッチゲインが前記第２の閾値未満となると前記発話区間が終了すると判定する発話区間終了検出部と、
を有する発話区間検出装置。
【請求項２】
前記閾値設定部は、前記発話区間におけるピッチゲインの最大値を前記第１の代表値として算出する、請求項１に記載の発話区間検出装置。
【請求項３】
前記発話区間が開始される前の区間におけるピッチゲインの平均値を前記第２の代表値として算出する雑音ピッチゲイン算出部をさらに有する、請求項１または２に記載の発話区間検出装置。
【請求項４】
前記閾値設定部は、前記発話区間が開始されたと判定されたフレームにおける前記ピッチゲインが大きいほど、前記第２の閾値を高くする、請求項１〜３の何れか一項に記載の発話区間検出装置。
【請求項５】
話者の声が表された音声信号を分割した所定長を持つフレームごとに、前記音声信号の周期性の強さを表すピッチゲインを算出し、
前記話者が発話していない非発話区間が継続している場合において前記ピッチゲインが第１の閾値以上となると前記話者が発話している発話区間が開始されたと判定し、
前記発話区間におけるピッチゲインの第１の代表値から前記発話区間が開始される前の区間におけるピッチゲインの第２の代表値を減じた値に応じた低下量だけ前記第１の閾値より低い第２の閾値を設定し、
前記発話区間が継続している場合において前記ピッチゲインが前記第２の閾値未満となると前記発話区間が終了すると判定する、
ことを含む発話区間検出方法。
【請求項６】
話者の声が表された音声信号を分割した所定長を持つフレームごとに、前記音声信号の周期性の強さを表すピッチゲインを算出し、
前記話者が発話していない非発話区間が継続している場合において前記ピッチゲインが第１の閾値以上となると前記話者が発話している発話区間が開始されたと判定し、
前記発話区間におけるピッチゲインの第１の代表値から前記発話区間が開始される前の区間におけるピッチゲインの第２の代表値を減じた値に応じた低下量だけ前記第１の閾値より低い第２の閾値を設定し、
前記発話区間が継続している場合において前記ピッチゲインが前記第２の閾値未満となると前記発話区間が終了すると判定する、
ことをコンピュータに実行させるための発話区間検出用コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、音声信号から話者が発話している区間を検出する発話区間検出装置、発話区間検出方法及び発話区間検出用コンピュータプログラムに関する。
【背景技術】
【０００２】
音声信号から話者が発した語句を認識し、認識した語句を他の言語に翻訳したり、認識した語句をクエリとしてネットワークまたはデータベース上で探索するといったアプリケーションが開発されている。このようなアプリケーションでは、話者が発話している区間を特定するために、例えば、話者自身がそのようなアプリケーションが実装された装置を操作して、音声信号の録音開始及び録音終了を指示することが求められる。しかし、そのようなアプリケーションが利用される環境によっては、話者がそのような操作を行えないことがある。例えば、話者が両手を使用する何らかの作業を行っている場合には、話者は音声信号の録音開始及び録音終了を指示する操作を行えない。
【０００３】
一方、音声信号において有音か無音かを判定する技術が提案されている（例えば、特許文献１を参照）。この技術では、入力音声信号の一定区間ごとに音声信号のパワー及びピッチパラメータなどが算出される。そして有音の第１の一定区間に続く次の第２の一定区間に対応するピッチパラメータが所定の閾値より低い場合に、その第２の一定区間が無音の一定区間として判定される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−１３３９９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、話者の周囲の環境によっては、入力音声信号のピッチパラメタ―が話者が発した声以外の音声に影響されることがある。そのため、ピッチパラメータと固定された閾値との比較に基づいて有音か否かを判定する上記の技術では、音声信号中で話者が発話している区間の終了を検出できないことがある。
【０００６】
一つの側面では、本発明は、音声信号中で話者が発話している区間の終了を適切に検出できる発話区間検出装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
一つの実施形態によれば、発話区間検出装置が提供される。この発話区間検出装置は、話者の声が表された音声信号を分割した所定長を持つフレームごとに、音声信号の周期性の強さを表すピッチゲインを算出するピッチゲイン算出部と、話者が発話していない非発話区間が継続している場合においてピッチゲインが第１の閾値以上となると話者が発話している発話区間が開始されたと判定する発話区間開始検出部と、発話区間におけるピッチゲインの第１の代表値から発話区間が開始される前の区間におけるピッチゲインの第２の代表値を減じた値に応じた低下量だけ第１の閾値より低い第２の閾値を設定する閾値設定部と、発話区間が継続している場合においてピッチゲインが第２の閾値未満となると発話区間が終了すると判定する発話区間終了検出部とを有する。
【発明の効果】
【０００８】
音声信号中で話者が発話している区間の終了を適切に検出できる。
【図面の簡単な説明】
【０００９】
【図１】一つの実施形態による発話区間検出装置の概略構成図である。
【図２】発話区間検出処理に関するプロセッサの機能ブロック図である。
【図３】ピッチゲインの差分値と閾値低下量調整用の係数aの関係の一例を示す図である。
【図４】変形例による、ピッチゲインの差分値と閾値低下量の関係の一例を示す図である。
【図５】発話区間検出処理の概要を説明する図である。
【図６】ピッチゲインの差分値に応じて設定された第２の閾値と発話区間の関係の一例を示す図である。
【図７】発話区間検出処理の動作フローチャートである。
【図８】SN比と第１の閾値の関係の一例を示す図である。
【図９】変形例による、発話区間の判定に関する状態遷移図である。
【図１０】変形例による、発話区間検出処理の動作フローチャートである。
【図１１】実施形態またはその変形例による発話区間検出装置が実装されたサーバクライアントシステムの概略構成図である。
【発明を実施するための形態】
【００１０】
以下、図を参照しつつ、実施形態による発話区間検出装置について説明する。
この発話区間検出装置は、音声信号中で話者が発話している区間（以下、単に発話区間と呼ぶ）では、人の声の特性上、ある程度の周期性が認められることから、音の周期性の強さを表すピッチゲインに基づいて発話区間を検出する。これにより、この発話区間検出装置は、話者の声以外でも大きな値を取り得るパワーまたは信号対雑音比を利用するよりも、発話区間をより正確に検出できる。
【００１１】
ここで、話者が連続して発声していると、語尾にかけて話者の呼気圧が低下し、声門閉鎖の周期性が弱くなることが知られている（例えば、上村幸雄、「呼気流・呼気圧と調音音声学」、人文 6、 pp.247-291、2007年を参照）。このことから、発明者は、発話区間では、語尾にかけてピッチゲインが減衰することに着目した。そして、この発話区間検出装置は、発話区間の開始を検出する際に用いられる、ピッチゲインに対する第１の閾値よりも、発話区間の終了を検出する際に用いられる、ピッチゲインに対する第２の閾値を低く設定する。
【００１２】
ただし、話者の周囲に、声を発する他者がいる場合など、音声信号のピッチゲインが話者の周囲の環境に影響されることがある。このような場合、話者が発話を終了した後も、音声信号のピッチゲインがある程度の大きさを持つ。そのため、第２の閾値を低くし過ぎると、発話区間の終了を正確に検出することが困難となる。そして例えば、発話区間中の話者の音声を認識する装置が、発話区間の終了の検出に失敗すると、発話区間終了後も音声の認識を継続するために、話者が発話を終えてからその装置が応答するまでの応答時間が長くなってしまう。
【００１３】
そこで、この発話区間検出装置は、発話区間中のピッチゲインの代表値から発話区間の直前の区間におけるピッチゲインの代表値を減じた差が小さいほど、第１の閾値と第２の閾値の差を小さくする。
【００１４】
なお、この発話区間検出装置は、音声認識を利用するユーザインターフェースを採用する様々な装置、例えば、ナビゲーションシステム、携帯電話機またはコンピュータなどに実装できる。
【００１５】
図１は、一つの実施形態による発話区間検出装置の概略構成図である。発話区間検出装置１は、マイクロホン１１と、アナログ／デジタルコンバータ１２と、プロセッサ１３と、メモリ１４とを有する。なお、発話区間検出装置１は、さらに、スピーカ（図示せず）、表示装置（図示せず）及び他の機器と通信するための通信インターフェース（図示せず）を有していてもよい。
【００１６】
マイクロホン１１は、音声入力部の一例であり、話者の声を含む、発話区間検出装置１の周囲の音を集音し、その音の強度に応じたアナログ音声信号を生成する。そしてマイクロホン１１は、そのアナログ音声信号をアナログ／デジタルコンバータ１２（以下、Ａ／Ｄコンバータと表記する）へ出力する。Ａ／Ｄコンバータ１２は、アナログの音声信号を所定のサンプリングレートでサンプリングすることにより、その音声信号をデジタル化する。なお、サンプリングレートは、例えば、音声信号から話者の声を解析するために必要な周波数帯域がナイキスト周波数以下となるよう、例えば、16kHz〜32kHzに設定される。そしてＡ／Ｄコンバータ１２は、デジタル化された音声信号をプロセッサ１３へ出力する。なお、以下では、デジタル化された音声信号を、単に音声信号と呼ぶ。
【００１７】
プロセッサ１３は、例えば、Central Processing Unit(CPU)と、読み書き可能なメモリ回路と、その周辺回路とを有する。プロセッサ１３は、数値演算回路をさらに有していてもよい。そしてプロセッサ１３は、音声信号に対して発話区間検出処理を実行することで発話区間を検出する。プロセッサ１３は、発話区間中の音声信号に対して、例えば、音声認識処理を実行して、話者が発声した語句を認識する。さらに、プロセッサ１３は、認識した語句に応じた処理、例えば、認識した語句を、予め設定された言語の語句に翻訳したり、あるいは、認識した語句をクエリとしてネットワークなどの探索処理を行う。なお、発話区間検出処理の詳細については後述する。
【００１８】
メモリ１４は、例えば、読み書き可能な不揮発性の半導体メモリと、読み書き可能な揮発性の半導体メモリとを有する。さらに、メモリ１４は、磁気記録媒体あるいは光記録媒体及びそのアクセス装置を有していてもよい。そしてメモリ１４は、プロセッサ１３上で実行される発話区間検出処理で利用される各種のデータ及び発話区間検出処理の途中で生成される各種のデータを記憶する。例えば、メモリ１４は、ピッチゲインに対する閾値を記憶する。さらに、メモリ１４は、発話区間中の音声信号に対して行われる処理に関するプログラム及びそのプログラムで利用される各種のデータを記憶してもよい。
【００１９】
以下、プロセッサ１３の詳細について説明する。
【００２０】
図２は、発話区間検出処理に関するプロセッサ１３の機能ブロック図である。プロセッサ１３は、パワー算出部２１と、雑音推定部２２と、信号対雑音比算出部２３と、有音判定部２４と、ピッチゲイン算出部２５と、発話区間開始検出部２６と、雑音ピッチゲイン算出部２７と、閾値設定部２８と、発話区間終了検出部２９とを有する。
プロセッサ１３が有するこれらの各部は、例えば、プロセッサ１３上で動作するコンピュータプログラムにより実現される機能モジュールである。あるいは、プロセッサ１３が有するこれらの各部は、その各部の機能を専用の回路として、プロセッサ１３に組み込まれてもよい。
【００２１】
プロセッサ１３は、音声信号を所定長を持つフレームを処理単位として発話区間検出処理を実行する。フレーム長は、例えば、10msec〜20msecに設定される。そのため、プロセッサ１３は、音声信号をフレームごとに分割し、各フレームをパワー算出部２１及びピッチゲイン算出部２５へ入力する。
【００２２】
パワー算出部２１は、フレームが入力される度に、そのフレームについての音声信号のパワーを算出する。パワー算出部２１は、例えば、フレームごとに、次式に従ってパワーを算出する。
【数１】
2019053233.tif 000003
ここで、Sk(n)は、最新のフレーム（現フレームとも呼ぶ）のn番目のサンプリング点の信号値を表す。kはフレーム番号である。またNは、一つのフレームに含まれるサンプリング点の総数を表す。そしてSpow(k)は、現フレームのパワーを表す。
【００２３】
なお、パワー算出部２１は、各フレームについて、複数の周波数のそれぞれごとにパワーを算出してもよい。この場合、パワー算出部２１は、フレームごとに、音声信号を、時間周波数変換を用いて時間領域から周波数領域のスペクトル信号に変換する。なお、パワー算出部２１は、時間周波数変換として、例えば、高速フーリエ変換(Fast Fourier Transform,FFT)を用いることができる。そしてパワー算出部２１は、周波数帯域ごとに、その周波数帯域に含まれるスペクトル信号の２乗和を、その周波数帯域のパワーとして算出できる。
【００２４】
パワー算出部２１は、フレームごとのパワーを雑音推定部２２及び信号対雑音比算出部２３へ出力する。
【００２５】
雑音推定部２２は、フレームごとに、そのフレームにおける音声信号中の推定雑音成分を算出する。本実施形態では、雑音推定部２２は、直前のフレームにおける推定雑音成分を、現フレームのパワーを用いて次式に従って更新することで、現フレームの推定雑音成分を算出する。
【数２】
2019053233.tif 000004
ここで、Noise(k-1)は、直前のフレームにおける推定雑音成分を表し、Noise(k)は、現フレームにおける推定雑音成分を表す。またβは、忘却係数であり、例えば、0.9に設定される。
【００２６】
なお、パワーが周波数帯域ごとに算出されている場合には、雑音推定部２２は、（２）式に従って、推定される雑音成分を周波数帯域ごとに算出してもよい。この場合には、（２）式において、Noise(k-1)、Noise(k)及びSpow(k)は、それぞれ、着目する周波数帯域についての直前のフレームの推定雑音成分、現フレームの推定雑音成分、パワーとなる。
【００２７】
雑音推定部２２は、フレームごとの推定雑音成分を信号対雑音比算出部２３へ出力する。
なお、後述する有音判定部２４により、現フレームが何らかの信号成分を含む有音フレームであると判定された場合には、雑音推定部２２は、現フレームの推定雑音成分Noise(k)を、Noise(k-1)で置換してもよい。これにより、雑音推定部２２は、雑音成分のみを含み、信号成分を含まないと推定されるフレームに基づいて雑音成分を推定できるので、雑音成分の推定精度を向上できる。
【００２８】
あるいは、雑音推定部２２は、現フレームのパワーが所定の閾値以下である場合に限り、（２）式に従って推定雑音成分を更新すればよい。そして現フレームのパワーが所定の閾値より大きい場合には、雑音推定部２２は、Noise(k)=Noise(k-1)とすればよい。なお、所定の閾値は、例えば、Noise(k-1)に所定のオフセット値を加算した値とすることができる。
【００２９】
信号対雑音比算出部２３は、フレームごとに、信号対雑音比（以下では、単にSN比と表記する）を算出する。例えば、信号対雑音比算出部２３は、次式に従ってSN比を算出する。
【数３】
2019053233.tif 000005
ここで、SNR(k)は、現フレームのSN比を表す。なお、パワー及び推定雑音成分が周波数帯域ごとに算出されている場合には、信号対雑音比算出部２３は、（３）式に従って、SN比を周波数帯域ごとに算出してもよい。この場合には、（３）式において、Noise(k)、Spow(k)及びSNR(k)は、それぞれ、着目する周波数帯域についての現フレームの推定雑音成分、パワー、SN比となる。
【００３０】
信号対雑音比算出部２３は、フレームごとのSN比を有音判定部２４へ出力する。
【００３１】
有音判定部２４は、フレームごとに、そのフレームのSN比に基づいてそのフレームが有音区間に含まれるか否かを判定する。なお、有音区間は、その区間中の音声信号中に何らかの信号成分が含まれると推定される区間である。そのため、発話区間は有音区間に含まれると想定される。そこで、発話区間の検出対象となる区間として有音区間を特定することで、発話区間検出装置１は、発話区間の検出精度を向上できる。
【００３２】
本実施形態では、有音判定部２４は、フレームごとに、そのフレームのSN比を有音判定閾値Thsnrと比較する。なお、有音判定閾値Thsnrは、例えば、音声信号中に推定雑音成分以外の信号成分が含まれることに相当する値、例えば、2〜3に設定される。そして有音判定部２４は、SN比が有音判定閾値Thsnr以上であれば、そのフレームは有音区間に含まれると判定する。一方、有音判定部２４は、SN比が有音判定閾値Thsnr未満であれば、そのフレームは有音区間に含まれない、すなわち、無音区間に含まれると判定する。なお、有音判定部２４は、SN比が有音判定閾値Thsnr以上となるフレームが一定期間（例えば、1秒間）連続した時点で、有音区間に入ったと判定してもよい。また、有音判定部２４は、それ以前のフレームが有音区間に含まれると判定されている状態で、SN比が有音判定閾値Thsnr未満となるフレームが一定期間連続した時点で、有音区間が終了したと判定してもよい。
【００３３】
さらに、周波数帯域ごとにSN比が算出されている場合には、有音判定部２４は、SN比が有音判定閾値Thsnr以上となる周波数帯域の数が所定数以上となる場合に、そのフレームは有音区間に含まれると判定してもよい。なお、所定数は、例えば、SN比が算出される周波数帯域の総数の1/2とすることができる。あるいは、有音判定部２４は、解析対象となる周波数が含まれる周波数帯域についてSN比が有音判定閾値Thsnr以上となる場合に、そのフレームは有音区間に含まれると判定してもよい。
【００３４】
あるいは、有音判定部２４は、フレームごとのパワーそのものに基づいて、フレームごとに有音区間に含まれるか否かを判定してもよい。この場合には、有音判定部２４は、現フレームのパワーが所定の閾値以上であれば、現フレームは有音区間に含まれ、現フレームのパワーが所定の閾値未満であれば、現フレームは無音区間に含まれると判定してもよい。この場合、所定の閾値は、現フレームの推定雑音成分が大きくなるほど、高くなるように設定されてもよい。
【００３５】
有音判定部２４は、フレームごとに、有音区間に含まれるか否かの判定結果を表す情報を雑音推定部２２及びピッチゲイン算出部２５に通知する。なお、有音区間に含まれるか否かの判定結果を表す情報は、例えば、有音区間である場合に"1"となり、無音区間である場合に"0"となるフラグとすることができる。
【００３６】
なお、発話区間開始検出部２６が発話区間の開始を検出した後において、発話区間終了検出部２９が発話区間の終了を検知するよりも前に、有音判定部２４が現フレームについて無音区間に属すると判定することも有り得る。このような場合、有音判定部２４は、直前のフレームまでで発話区間が終了したと判定してもよい。
【００３７】
ピッチゲイン算出部２５は、各フレームについて、音の周期性の強さを表すピッチゲインを算出する。なお、ピッチゲインは、ピッチ予測利得とも呼ばれる。ピッチゲイン算出部２５は、有音区間に含まれる各フレームについて同一の処理を実行するので、以下では、一つのフレームに対する処理について説明する。
【００３８】
ピッチゲインを算出するために、ピッチゲイン算出部２５は、先ず、音声信号の長期自己相関C(d)を、遅延量d∈{dlow,...,dhigh}について算出する。
【数４】
2019053233.tif 000006
上記のように、Sk(n)は、現フレームkのn番目の信号値である。またNは、フレームに含まれるサンプリング点の総数を表す。なお、(n-d)が負となる場合、直前のフレームの対応する信号値（すなわち、Sk-1(N-(n-d))）がSk(n-d)として用いられる。そして遅延量dの範囲{dlow,...,dhigh}は、人の声の基本周波数(100〜300Hz)に相当する遅延量が含まれるように設定される。ピッチゲインは、基本周波数において最も高くなるためである。例えば、サンプリングレートが16kHzである場合、dlow=40、dhigh=286に設定される。
【００３９】
ピッチゲイン算出部２５は、遅延量の範囲に含まれる遅延量dごとに長期自己相関C(d)を算出すると、長期自己相関C(d)のうちの最大値C(dmax)を求める。なお、dmaxは、長期自己相関C(d)の最大値C(dmax)に対応する遅延量であり、この遅延量はピッチ周期に相当する。そしてピッチゲイン算出部２５は、次式に従ってピッチゲインgpitchを算出する。
【数５】
2019053233.tif 000007
【００４０】
ピッチゲイン算出部２５は、フレームについてピッチゲインgpitchを算出する度に、ピッチゲインgpitchを発話区間開始検出部２６、雑音ピッチゲイン算出部２７、閾値設定部２８及び発話区間終了検出部２９へ出力する。
【００４１】
発話区間開始検出部２６は、有音区間内の各フレームについて、ピッチゲインgpitchを発話区間開始検出用の第１の閾値と比較することで、発話区間の開始を検出する。すなわち、発話区間開始検出部２６は、話者が発話していない非発話区間が継続している場合においてピッチゲインgpitchが第１の閾値以上となると話者が発話している発話区間が開始されたと判定する。
【００４２】
本実施形態では、発話区間開始検出部２６は、現フレームの直前のフレームが発話区間でない場合、相対的に高い、発話区間開始検出用の第１の閾値とピッチゲインとを比較する。なお、直前のフレームが発話区間に含まれるか否かは、例えば、メモリ１４に保存されている、発話区間か否かを表すフラグを参照することで判定される。そして発話区間開始検出部２６は、ピッチゲインが第１の閾値以上である場合、現フレームから発話区間が開始されたと判定する。そして発話区間開始検出部２６は、発話区間か否かを表すフラグを、発話区間であることを表す値（例えば、'1'）に更新する。さらに、発話区間開始検出部２６は、発話区間が開始したことをプロセッサ１３及び雑音ピッチゲイン算出部２７へ通知する。
【００４３】
雑音ピッチゲイン算出部２７は、発話区間が開始される直前における、複数のフレームを含む区間のピッチゲインの代表値、すなわち、雑音のピッチゲインの代表値を算出する。本実施形態では、雑音ピッチゲイン算出部２７は、雑音のピッチゲインの代表値として、雑音のピッチゲインの平均値を算出する。発話区間以外では、ピッチゲインは比較的ランダムに変動すると想定される。そこで、発話区間の直前の区間におけるピッチゲインの平均値を、雑音のピッチゲインの代表値とすることで、雑音ピッチゲイン算出部２７は、話者の周囲の環境におけるピッチゲインの程度を正確に評価できる。
【００４４】
例えば、雑音ピッチゲイン算出部２７は、発話区間開始検出部２６より、発話区間が開始したことを通知されるまで、例えば、次式に従って、雑音のピッチゲインの平均値を更新する。
【数６】
2019053233.tif 000008
ここで、gnoisep(k)は、最新のフレームを終端とする区間における雑音のピッチゲインの平均値であり、gnoisep(k-1)は、直前のフレームを終端とする区間における雑音のピッチゲインの平均値である。またgpitch(k)は、最新のフレームのピッチゲインである。またαは、忘却係数であり、例えば、0.9に設定される。なお、最新のフレームが発話区間の最初のフレームである場合には、雑音ピッチゲイン算出部２７は、雑音のピッチゲインの平均値を更新せず、直前のフレームについて算出された雑音のピッチゲインの平均値gnoisep(k-1)を閾値設定部２８へ通知する。
【００４５】
変形例によれば、雑音ピッチゲイン算出部２７は、ピッチゲイン算出部２５からフレームのピッチゲインgpitchを受け取る度に、そのピッチゲインgpitchをメモリ１４に保存する。雑音ピッチゲイン算出部２７は、発話区間開始検出部２６より、発話区間が開始したことを通知されると、メモリ１４から各フレームのピッチゲインgpitchを読み出す。そして雑音ピッチゲイン算出部２７は、次式に従って、発話区間が開始される直前における区間の雑音のピッチゲインの平均値gnoisep(k-1)を算出すればよい。
【数７】
2019053233.tif 000009
ここで、Mは、雑音のピッチゲインの平均値を算出する区間に含まれるフレームの数であり、２以上、例えば、５〜１０に設定される。そしてgpitch(k-M+i)は、雑音のピッチゲインの平均値を算出する区間に含まれる各フレームのピッチゲインである。特に、gpitch(k-1)は、発話区間が開始される直前のフレームのピッチゲインである。そしてこの変形例についても、雑音ピッチゲイン算出部２７は、雑音のピッチゲインの平均値gnoisep(k-1)を閾値設定部２８へ通知する。
【００４６】
閾値設定部２８は、発話区間におけるピッチゲインの代表値と、発話区間が開始される直前における区間の雑音のピッチゲインの代表値との差に応じて、第１の閾値に対する、発話区間の終了を検出するために用いられる第２の閾値の低下量を設定する。
【００４７】
例えば、閾値設定部２８は、発話区間開始後において、現フレームまでの各フレームのピッチゲインのうちの最大値を、発話区間中のピッチゲインの代表値として算出する。発話区間では、ピッチゲインの最大値は、話者の声にほぼ依存する。そのため、発話区間中のピッチゲインの最大値を、発話区間中のピッチゲインの代表値とすることで、閾値設定部２８は、話者の声によるピッチゲインの程度を正確に評価できる。そして閾値設定部２８は、発話区間中のピッチゲインの代表値から、発話区間が開始される直前における区間の雑音のピッチゲインの代表値を減じた差分値（以下、ピッチゲインの差分値と呼ぶ）を、閾値の低下量を設定するために算出する。本実施形態のように、発話区間中のピッチゲインの最大値と発話区間が開始される直前の区間の雑音のピッチゲインの平均値の差分値に基づいて閾値の低下量を設定することで、閾値設定部２８は、第２の閾値を適切な値に設定できる。
【００４８】
なお、上記のように、話者が連続して発声している間、語尾にかけてピッチゲインが減衰する。そのため、発話区間の最初の数フレームにおいて、ピッチゲインは最大となると想定される。そこで、閾値設定部２８は、発話区間開始検出部２６より、発話区間が開始したことを通知されてからの数フレームにおけるピッチゲインの最大値を、発話区間中のピッチゲインの最大値としてもよい。
【００４９】
閾値設定部２８は、ピッチゲインの差分値が大きいほど、発話区間の開始の検出に用いられる第１の閾値に対する発話区間の終了の検出に用いられる第２の閾値の低下量を大きくする。すなわち、閾値設定部２８は、ピッチゲインの差分値が大きいほど、第２の閾値を小さくする。これにより、話者の周囲の環境が比較的静かな環境である場合に、発話区間終了検出部２９が、話者が発話を継続している間に誤って発話区間の終了を検出することを抑制できる。一方、話者の周囲で他者が発声している場合には、第１の閾値と第２の閾値の差が小さくなるので、発話区間終了検出部２９が発話区間の終了の検出に失敗することを抑制できる。
【００５０】
例えば、閾値設定部２８は、次式に従って、第２の閾値Th2を設定する。
【数８】
2019053233.tif 000010
ここで、Th1は第１の閾値であり、Dは、予め設定される閾値低下量の基準値であり、例えば、0.2〜0.3に設定される。また係数aは、ピッチゲインの差分値に応じた係数であり、ピッチゲインの差分値が大きいほど、大きな値となる。
【００５１】
図３は、ピッチゲインの差分値と係数aの関係の一例を示す図である。図３において、横軸はピッチゲインの差分値を表し、縦軸は係数aを表す。そしてグラフ３００は、ピッチゲインの差分値と係数aの関係を表す。図３に示されるように、ピッチゲインの差分値が下限基準値DFMIN（例えば、DFMIN=0.1〜0.2）以下である場合、係数aは0に設定される。すなわち、ピッチゲインの差分値が下限基準値DFMIN以下である場合、第２の閾値Th2は、第１の閾値Th1と等しくなる。一方、ピッチゲインの差分値が上限基準値DFMAX（例えば、DFMAX=0.5〜0.6）以上である場合、係数aは1に設定される。すなわち、ピッチゲインの差分値が上限基準値DFMAX以上である場合、第２の閾値Th2は、(Th1-D)となる。そしてピッチゲインの差分値が下限基準値DFMINより大きく、かつ、上限基準値DFMAX未満であれば、ピッチゲインの差分値が大きくなるにつれて係数aも単調かつ線形に増加する。したがって、ピッチゲインの差分値が下限基準値DFMINより大きく、かつ、上限基準値DFMAX未満であれば、ピッチゲインの差分値が大きくなるにつれて、第２の閾値Th2は小さくなる。
【００５２】
変形例によれば、ピッチゲインの差分値が大きくなるにつれて、閾値低下量Dも大きくなるように、閾値低下量Dが設定されてもよい。この場合には、（８）式において、係数aは1.0に設定されればよい。
【００５３】
図４は、この変形例による、ピッチゲインの差分値と閾値低下量Dの関係の一例を示す図である。図４において、横軸はピッチゲインの差分値を表し、縦軸は閾値低下量Dを表す。そしてグラフ４００は、ピッチゲインの差分値と係数aの関係を表す。図４に示されるように、ピッチゲインの差分値が下限基準値DFMIN以下である場合、閾値低下量Dは閾値低下量の最小値Dmin（例えば、Dmin=0〜0.1）に設定される。すなわち、ピッチゲインの差分値が下限基準値DFMIN以下である場合、第２の閾値Th2は、(Th1-Dmin)となる。一方、ピッチゲインの差分値が上限基準値DFMAX以上である場合、閾値低下量Dは閾値低下量の最大値Dmax（例えば、Dmax=0.2〜0.3）に設定される。すなわち、ピッチゲインの差分値が上限基準値DFMAX以上である場合、第２の閾値Th2は、(Th1-Dmax)となる。そしてピッチゲインの差分値が下限基準値DFMINより大きく、かつ、上限基準値DFMAX未満であれば、ピッチゲインの差分値が大きくなるにつれて閾値低下量Dも単調かつ線形に増加する。したがって、ピッチゲインの差分値が下限基準値DFMINより大きく、かつ、上限基準値DFMAX未満であれば、ピッチゲインの差分値が大きくなるにつれて、第２の閾値Th2は小さくなる。
【００５４】
閾値設定部２８は、発話区間中のピッチゲインの最大値が更新される度に、第２の閾値Th2を算出してもよい。そして閾値設定部２８は、第２の閾値Th2が算出される度に、第２の閾値Th2を発話区間終了検出部２９へ通知する。
【００５５】
発話区間終了検出部２９は、発話区間が継続している場合においてピッチゲインが第１の閾値よりも小さい第２の閾値未満となると発話区間が終了すると判定する。すなわち、現フレームの直前のフレームが発話区間に含まれている場合、発話区間終了検出部２９は、現フレームのピッチゲインを第２の閾値と比較する。そして発話区間終了検出部２９は、現フレームのピッチゲインが第２の閾値未満である場合、直前のフレームまでで発話区間は終了したと判定する。そして発話区間終了検出部２９は、発話区間か否かを表すフラグを、非発話区間であることを表す値（例えば、'0'）に更新する。
【００５６】
図５は、本実施形態による、発話区間検出処理の概要を説明する図である。図５の各グラフにおいて、横軸は時間を表す。１番上のグラフでは、縦軸はSN比を表す。上から２番目のグラフでは、縦軸は有音区間か無音区間かの判定結果を表す。また、上から３番目のグラフでは、縦軸はピッチゲインを表す。そして一番下のグラフでは、縦軸は発話区間か否かの判定結果を表す。
【００５７】
一番上のグラフにおいて、波形５０１は、SN比の時間変化を表す。上から２番目のグラフにおいて、波形５０２は、時刻ごとの有音区間か無音区間かの判定結果を表す。波形５０１に示されるように、時刻t1にてSN比が有音判定閾値Thsnr以上となり、その後、時刻t4まで継続してSN比は有音判定閾値Thsnr以上となる。時刻t4以降、SN比は、有音判定閾値Thsnr未満となる。その結果、波形５０２に示されるように、時刻t1から時刻t4までの区間が有音区間と判定され、その前後は、無音区間と判定される。
【００５８】
上から３番目のグラフにおいて、波形５０３は、ピッチゲインの時間変化を表す。また一番下のグラフにおいて、波形５０４は、時刻ごとの発話区間か否かの判定結果を表す。波形５０３に示されるように、ピッチゲインは、時刻t1から上昇を開始し、時刻t2にて第１の閾値Th1以上となる。その後しばらくしてからピッチゲインはピークとなり、以降徐々に減衰する。そして時刻t3にて、ピッチゲインは第１の閾値Th1よりも低い、第２の閾値Th2未満となる。その結果、波形５０４に示されるように、時刻t2から時刻t3までの区間が発話区間と判定される。なお、仮に、発話区間の終了の判定にも閾値Th1が用いられると、時刻t2'にてピッチゲインは閾値Th1未満となるので、本来の発話区間よりも短い区間しか発話区間として検出されないことになる。しかし上記のように、発話区間の終了の判定に利用される閾値Th2を、発話区間の開始の判定に利用される閾値Th1よりも小さくすることで、発話区間が適切に検出される。
【００５９】
図６は、本実施形態による、ピッチゲインの差分値に応じて設定された第２の閾値と発話区間の関係の一例を示す図である。図６において、横軸は時間を表し、縦軸はピッチゲインを表す。波形６００は、ピッチゲインの時間変化を表す。この例では、ピッチゲインは、時刻t1にて第１の閾値Th1以上となる。したがって、時刻t1にて、発話区間の開始が検出される。その後、時刻t2にて、話者が発声を終了したとする。しかし、この例では、時刻t2以降もしばらくの間、ピッチゲインはある程度の大きさを保っている。そのため、点線で示されるように、閾値Th2が小さ過ぎると、時刻t2では発話区間の終了が検出されず、時刻t3で発話区間が終了したと判定されることになる。
【００６０】
一方、本実施形態によれば、発話区間が開始される直前の区間での雑音のピッチゲインの平均値と発話区間におけるピッチゲインの最大値との差Δpに基づいて閾値Th2が設定される。そのため、第１の閾値Th1に対する第２の閾値Th2の低下量が比較的小さくなり、その結果として、時刻t2にてピッチゲインが閾値Th2未満となり、発話区間の終了が正確に検出される。
【００６１】
発話区間終了検出部２９は、発話区間が終了したタイミングをプロセッサ１３に出力する。
【００６２】
プロセッサ１３は、発話区間の開始及び終了が検出されると、例えば、発話区間中に話者が発話した内容を認識するために、発話区間中の各フレームから、話者の声の特徴を表す複数の特徴量を抽出する。そのような特徴量として、例えば、メル周波数ケプストラムの所定の次数の係数が用いられる。そしてプロセッサ１３は、例えば、各フレームの特徴量を、隠れマルコフモデルにより音響モデルに適用することで、発話区間内の音素系列を認識する。そしてプロセッサ１３は、単語ごとの音素系列を表す単語辞書を参照して、発話区間の音素系列と一致する単語の組み合わせを検出することで、発話区間内の発話内容を認識する。さらにプロセッサ１３は、その発話内容と、プロセッサ１３にて実行されるアプリケーションとに応じた処理を実行してもよい。例えば、プロセッサ１３は、発話内容に応じた単語の組み合わせに対して自動翻訳処理を行って、その発話内容を他言語に翻訳してもよい。そしてプロセッサ１３は、他言語に翻訳された発話内容に応じた文字列を表示装置（図示せず）に表示してもよい。あるいは、プロセッサ１３は、その翻訳された文字列に音声合成処理を適用して、その文字列を表した合成音声信号を生成し、その合成音声信号をスピーカ（図示せず）を介して再生してもよい。あるいは、プロセッサ１３は、発話内容に応じた単語の組み合わせをクエリとして、発話区間検出装置１と接続されたネットワーク上で探索処理を実行してもよい。あるいはまた、プロセッサ１３は、発話内容を表す文字列と、発話区間検出装置１が実装された装置の操作コマンドとを比較し、発話内容を表す文字列が何れかの操作コマンドと一致する場合に、その操作コマンドに応じた処理を実行してもよい。
【００６３】
図７は、本実施形態による、発話区間検出処理の動作フローチャートである。プロセッサ１３は、フレームごとに、下記の動作フローチャートに従って発話区間検出処理を実行する。
【００６４】
パワー算出部２１は、音声信号の現フレームのパワーを算出する（ステップＳ１０１）。雑音推定部２２は、現フレームのパワーと、直前のフレームにおける推定雑音成分に基づいて、現フレームの推定雑音成分を算出する（ステップＳ１０２）。そして信号対雑音比算出部２３は、現フレームのパワーと推定雑音成分に基づいて、現フレームのSN比SNR(k)を算出する（ステップＳ１０３）。さらに、ピッチゲイン算出部２５は、現フレームのピッチゲインgpitchを算出する（ステップＳ１０４）。
【００６５】
有音判定部２４は、現フレームのSN比SNR(k)が有音判定閾値Thsnr以上か否か判定する（ステップＳ１０５）。現フレームのSN比SNR(k)が有音判定閾値Thsnr未満であれば（ステップＳ１０５−Ｎｏ）、有音判定部２４は、現フレームは有音区間には含まれないと判定する。そしてプロセッサ１３は、発話区間検出処理を終了する。
【００６６】
一方、現フレームのSN比が有音判定閾値Thsnr以上であれば（ステップＳ１０５−Ｙｅｓ）、有音判定部２４は、現フレームは有音区間に含まれると判定する。
【００６７】
発話区間開始検出部２６は、直前のフレームが発話区間に含まれるか否か判定する（ステップＳ１０６）。直前のフレームが発話区間に含まれない場合（ステップＳ１０６−Ｎｏ）、発話区間開始検出部２６は、現フレームのピッチゲインgpitchが相対的に高い第１の閾値Th1以上か否か判定する（ステップＳ１０７）。現フレームのピッチゲインgpitchが第１の閾値Th1以上であれば（ステップＳ１０７−Ｙｅｓ）、発話区間開始検出部２６は、現フレームから発話区間が開始したと判定し、発話区間が開始したことを表す情報を出力する（ステップＳ１０８）。また、発話区間開始検出部２６は、発話区間か否かを表すフラグを、発話区間であることを表す値に更新する。そして雑音ピッチゲイン算出部２７は、発話区間が開始される直前の区間における、雑音のピッチゲインの平均値を算出する（ステップＳ１０９）。
【００６８】
一方、現フレームのピッチゲインgpitchが第１の閾値Th1未満であれば（ステップＳ１０７−Ｎｏ）、発話区間開始検出部２６は、現フレームは発話区間に含まれないと判定する。そしてプロセッサ１３は、発話区間開始検出処理を終了する。
【００６９】
また、ステップＳ１０６において、直前のフレームが発話区間に含まれる場合（ステップＳ１０６−Ｙｅｓ）、閾値設定部２８は、第２の閾値Th2を設定する（ステップＳ１１０）。その際、閾値設定部２８は、例えば、発話区間におけるピッチゲインの最大値と発話区間の開始直前の区間における雑音のピッチゲインの平均値との差に応じて第１の閾値Th1に対する第２の閾値Th2の低下量を設定する。そして発話区間終了検出部２９は、現フレームのピッチゲインgpitchが第２の閾値Th2未満か否か判定する（ステップＳ１１１）。現フレームのピッチゲインgpitchが第２の閾値Th2未満であれば（ステップＳ１１１−Ｙｅｓ）、発話区間終了検出部２９は、直前のフレームまでで発話区間が終了したと判定し、発話区間が終了したことを表す情報を出力する（ステップＳ１１２）。また、発話区間終了検出部２９は、発話区間か否かを表すフラグを、非発話区間であることを表す値に更新する。
【００７０】
一方、現フレームのピッチゲインgpitchが第２の閾値Th2以上であれば（ステップＳ１１１−Ｎｏ）、発話区間終了検出部２９は、現フレームにおいても発話区間は継続していると判定する。そしてプロセッサ１３は、発話区間検出処理を終了する。なお、発話区間の開始が検出されるまで、フレームごとに（６）式に基づいて雑音のピッチゲインの平均値が更新される場合には、ステップＳ１０９の処理は、ステップＳ１０６とステップＳ１０７の間で実行されてもよい。
【００７１】
以上に説明してきたように、この発話区間検出装置は、発話区間の開始を検出するためのピッチゲインに対する第１の閾値よりも、発話区間の終了を検出するためのピッチゲインに対する第２の閾値を低く設定する。そのため、この発話区間検出装置は、発話の継続に応じてピッチゲインが小さくなっても、発話区間を適切に検出できる。またこの発話区間検出装置は、第１の閾値に対する、第２の閾値の低下量を、発話区間の開始直前の区間における雑音のピッチゲインの平均値と発話区間のピッチゲインの最大値との差に応じて調整する。そのため、この発話区間検出装置は、話者の周囲の環境が騒がしい場合でも、発話区間の終了を適切に検出できる。
【００７２】
なお、変形例によれば、ピッチゲイン算出部２５は、有音区間内の各フレームについてピッチゲインを算出し、無音区間内の各フレームについては、ピッチゲインを算出しなくてもよい。これにより、演算量が削減される。この場合において、発話区間が開始される直前の区間と無音区間とが重なっている場合、雑音ピッチゲイン算出部２７は、その直前の区間から無音区間を除いた残りの区間に含まれる各フレームのピッチゲインの平均値を、雑音のピッチゲインの平均値としてもよい。あるいは、雑音ピッチゲイン算出部２７は、発話区間が開始される直前の区間及び無音区間の両方に含まれる各フレームのピッチゲインを所定値（例えば、0）として、雑音のピッチゲインの平均値を算出してもよい。
【００７３】
他の変形例によれば、雑音ピッチゲイン算出部２７は、発話区間の直前の区間における、雑音のピッチゲインの代表値として、発話区間の直前の区間における雑音のピッチゲインの中央値あるいは最頻値を算出してもよい。また、閾値設定部２８は、第２の閾値の設定に用いる発話区間内のピッチゲインの代表値として、発話区間内の各フレームのピッチゲインに対して平滑化フィルタ処理をして得られる、各フレームの平滑化されたピッチゲインのうちの最大値を算出してもよい。あるいは、閾値設定部２８は、第２の閾値の設定に用いる発話区間内のピッチゲインの代表値として、発話区間開始直後の数フレームにおけるピッチゲインの平均値を算出してもよい。これらの値が用いられる場合でも、閾値設定部２８は、第１の閾値に対する第２の閾値の低下量を適切に設定できる。
【００７４】
また他の変形例によれば、閾値設定部２８は、発話区間開始時におけるピッチゲインに基づいて、第２の閾値Th2を調整してもよい。例えば、閾値設定部２８は、次式に示されるように、（８）式における第１の閾値Th1の代わりに、ピッチゲインの基準値grefに対する発話区間開始時におけるピッチゲインgpitch(tstart)の比を第１の閾値Th1に乗じて得られる値を用いることで、第２の閾値Th2を算出してもよい。すなわち、発話区間開始時におけるピッチゲインが大きいほど、第２の閾値Th2も大きくなる。なお、係数aは、上記の実施形態と同様に、ピッチゲインの差分値が大きくなるほど大きな値に設定されればよい。
【数９】
2019053233.tif 000011
【００７５】
この場合も、発話区間終了検出部２９は、ピッチゲインが第２の閾値Th2未満となったときに発話区間が終了したと判定すればよい。
【００７６】
この変形例によれば、発話区間開始時のピッチゲインに基づいて第２の閾値が調整されるので、発話区間終了検出部２９は、話者の声の特徴に応じて適切に第２の閾値を調整できる。その結果として、発話区間終了検出部２９は、発話区間の終了をより適切に検出できる。
【００７７】
なお、（９）式において、閾値設定部２８は、発話区間開始時におけるピッチゲインgpitch(tstart)の代わりに、発話区間におけるピッチゲインの最大値を用いてもよい。
【００７８】
また他の変形例によれば、発話区間開始検出部２６は、音声信号のSN比に基づいて、第１の閾値Th1を調整してもよい。同様に、閾値設定部２８は、音声信号のSN比に基づいて、第２の閾値Th2を調整してもよい。
【００７９】
一般に、SN比が低いほど、音声信号に含まれる雑音成分の比率が高いので、音声信号の周期性も低下する。そこで、この変形例によれば、発話区間開始検出部２６は、現フレームのSN比が低いほど、第１の閾値Th1を低く設定する。
【００８０】
図８は、SN比と第１の閾値Th1の関係の一例を示す図である。図８において、横軸はSN比を表し、縦軸は、第１の閾値Th1を表す。そして折れ線８００は、SN比と第１の閾値Th1の関係を表す。折れ線８００に示されるように、SN比がSNRlow以下のときは、第１の閾値Th1は、Thlowに設定される。そしてSN比がSNRlowより大きく、かつ、SNRhigh未満のときは、SN比が大きくなるにつれて第１の閾値Th1も線形に増加する。そしてSN比がSNRhigh以上となると、第１の閾値Th1はThhighに設定される。なお、SNRlow及びSNRhighは、例えば、18dB及び30dBに設定される。また、Thlow及びThhighは、例えば、0.5及び0.7に設定される。なお、図８に示されるように、SN比と第１の閾値Th1との関係を表す参照テーブルが予めメモリ１４に保存され、発話区間開始検出部２６は、その参照テーブルを参照して、SN比に対応する第１の閾値Th1の値を設定すればよい。
【００８１】
さらに、閾値設定部２８は、SN比に基づいて決定された第１の閾値Th1を（８）式または（９）式に代入することで第２の閾値Th2を算出すればよい。これにより、第２の閾値Th2も、SN比がSNRlowより大きく、かつ、SNRhigh未満のときにSN比が大きくなるにつれて線形に増加する。
【００８２】
この変形例によれば、発話区間開始検出部２６は、音声信号のSN比に応じて、第１の閾値Th1を適切に決定できる。同様に、閾値設定部２８は、音声信号のSN比に応じて、第２の閾値Th2を適切に決定できる。なお、ピッチゲインに対する第１及び第２の閾値がフレームごとに急激に変動することを抑制するために、発話区間開始検出部２６は、図８に示される関係に従って、有音区間開始時のフレームのSN比に応じて第１の閾値Th1を決定してもよい。
【００８３】
また、SN比による第１の閾値の調整と、ピッチゲインによる第２の閾値の調整は組み合わせられてもよい。この場合には、閾値設定部２８は、例えば、SN比に基づいて決定された第１の閾値を（９）式における第１の閾値Th1とすることで、第２の閾値Th2を算出すればよい。
【００８４】
また、雑音が大きい環境では、雑音の影響により、ピッチゲインの算出値に含まれる誤差が相対的に大きくなることがある。そのため、発話区間が終了していなくても、瞬間的にピッチゲインが第２の閾値未満となることがある。
【００８５】
そこでさらに他の変形例によれば、発話区間終了検出部２９は、発話区間の開始後において、ピッチゲインが第２の閾値Th2未満となることが一定の監視区間にわたって継続した場合に、発話区間が終了したと判定してもよい。なお、発明者による実験によれば、雑音が比較的小さい環境（例えば、SN比が30dB）では、ピッチゲインの値は、発話区間中、継続して0.6以上となった。一方、発話区間以外では、ピッチゲインが1秒以上継続することはなかった。このことから、上記の監視区間は、例えば、1秒間に設定される。
【００８６】
図９は、この変形例による、発話区間の判定に関する状態遷移図である。状態遷移図９００において、状態１〜状態３は、それぞれ、互いに異なる発話区間の検出状態を表す。具体的に、状態１は、直前のフレームが発話区間及び監視区間中でないこと、すなわち、非発話区間中であることを表す。また状態２は、直前のフレームが発話区間中であることを表す。そして状態３は、直前のフレームが監視区間中であることを表す。
【００８７】
状態１において、現フレームのピッチゲインが第１の閾値Th1未満であれば、発話区間の検出状態は変化しない。すなわち、現フレームは、非発話区間内に含まれる。一方、状態１において、現フレームのピッチゲインが第１の閾値Th1以上であれば、発話区間の検出状態は状態１から状態２に遷移する。すなわち、現フレームから発話区間が開始となる。
【００８８】
状態２において、現フレームのピッチゲインが第１の閾値Th1よりも低い第２の閾値Th2以上であれば、発話区間の検出状態は変化しない。すなわち、現フレームは、発話区間内に含まれる。一方、状態２において、現フレームのピッチゲインが第２の閾値Th2未満であれば、発話区間の検出状態は状態２から状態３に遷移する。すなわち、現フレームから監視区間が開始となる。
【００８９】
状態３において、現フレームのピッチゲインが第２の閾値Th2以上となれば、発話区間の検出状態は状態３から状態２に遷移する。すなわち、現フレームまで発話区間は継続していると判定され、監視区間は一旦終了する。一方、現フレームのピッチゲインが第２の閾値Th2未満であり、かつ、監視区間開始からの継続時間（その継続時間に相当するフレーム数をNframeと表記する）が一定期間（閾値ThN）に達していなければ、発話区間の検出状態は変化しない。すなわち、現フレームは、監視区間内に含まれる。そして、現フレームのピッチゲインが第２の閾値Th2未満であり、かつ、監視区間開始からの継続時間が一定期間に達していれば、発話区間の検出状態は状態３から状態１に遷移する。すなわち、現フレームにて、発話区間が終了したと判定される。
【００９０】
図１０は、この変形例による、発話区間検出処理の動作フローチャートである。なお、図７に示される、上記の実施形態による発話区間検出処理と比較して、ステップＳ１０５で有音区間と判定されるまで（すなわち、ステップＳ１０５においてＹｅｓ）は同じであるため、図１０では、ステップＳ１０５以降の処理について説明する。
【００９１】
発話区間開始検出部２６は、直前のフレームが非発話区間に含まれるか否か判定する（ステップＳ２０１）。すなわち、発話区間開始検出部２６は、直前のフレームにおける発話区間の検出状態が状態１か否か判定する。直前のフレームが非発話区間に含まれる場合（ステップＳ２０１−Ｙｅｓ）、発話区間開始検出部２６は、現フレームのピッチゲインgpitchが第１の閾値Th1以上か否か判定する（ステップＳ２０２）。現フレームのピッチゲインgpitchが第１の閾値Th1以上であれば（ステップＳ２０２−Ｙｅｓ）、発話区間開始検出部２６は、現フレームから発話区間が開始したと判定し、発話区間が開始したことを表す情報を出力する（ステップＳ２０３）。すなわち、発話区間の検出状態が状態１から状態２へ遷移する。また、雑音ピッチゲイン算出部２７は、発話区間が開始される直前の区間における雑音のピッチゲインの平均値を算出する（ステップＳ２０４）。
【００９２】
一方、現フレームのピッチゲインgpitchが第１の閾値Th1未満であれば（ステップＳ２０２−Ｎｏ）、発話区間開始検出部２６は、現フレームは発話区間に含まれないと判定する。すなわち、発話区間の検出状態は状態１のまま維持される。そしてプロセッサ１３は、発話区間検出処理を終了する。
【００９３】
また、ステップＳ２０１において、直前のフレームが非発話区間に含まれない場合（ステップＳ２０１−Ｎｏ）、閾値設定部２８は、直前のフレームが発話区間に含まれるか否か判定する（ステップＳ２０５）。すなわち、閾値設定部２８は、直前のフレームにおける発話区間の検出状態が状態２か否か判定する。直前のフレームが発話区間に含まれる場合（ステップＳ２０５−Ｙｅｓ）、閾値設定部２８は、ピッチゲインの差分値に応じて第２の閾値Th2を設定する（ステップＳ２０６）。そして発話区間終了検出部２９は、現フレームのピッチゲインgpitchが第２の閾値Th2未満か否か判定する（ステップＳ２０７）。現フレームのピッチゲインgpitchが第２の閾値Th2未満であれば（ステップＳ２０７−Ｙｅｓ）、発話区間終了検出部２９は、監視区間を開始する（ステップＳ２０８）。すなわち、発話区間の検出状態が状態２から状態３へ遷移する。そして発話区間終了検出部２９は、監視区間が継続する時間を表す、監視区間開始からのフレーム数Nframeを1に設定する。一方、現フレームのピッチゲインgpitchが第２の閾値Th2以上であれば（ステップＳ２０７−Ｎｏ）、発話区間終了検出部２９は、現フレームにおいても発話区間は継続していると判定する。すなわち、発話区間の検出状態は状態２のまま維持される。そしてプロセッサ１３は、発話区間検出処理を終了する。
【００９４】
また、ステップＳ２０５において、直前のフレームが発話区間に含まれない場合（ステップＳ２０５−Ｎｏ）、監視区間が継続中（状態３）である。この場合、発話区間終了検出部２９は、現フレームのピッチゲインgpitchが第２の閾値Th2以上か否か判定する（ステップＳ２０９）。現フレームのピッチゲインgpitchが第２の閾値Th2以上であれば（ステップＳ２０９−Ｙｅｓ）、発話区間終了検出部２９は、監視区間を終了する（ステップＳ２１０）。すなわち、発話区間の検出状態が状態３から状態２へ遷移する。そして発話区間終了検出部２９は、Nframeを0にリセットする。
【００９５】
一方、現フレームのピッチゲインgpitchが第２の閾値Th2未満であれば（ステップＳ２０９−Ｎｏ）、発話区間終了検出部２９は、Nframeを１インクリメントする（ステップＳ２１１）。そして発話区間終了検出部２９は、Nframeが監視区間の長さの閾値を表すフレーム数ThN以上となったか否か判定する（ステップＳ２１２）。なお、ThNは、例えば、1秒間に相当するフレーム数に設定される。NframeがThN以上であれば（ステップＳ２１２−Ｙｅｓ）、発話区間終了検出部２９は、現フレームにおいて発話区間が終了したと判定し、発話区間が終了したことを表す情報を出力する（ステップＳ２１３）。すなわち、発話区間の検出状態が状態３から状態１へ遷移する。なお、この場合において、発話区間終了検出部２９は、監視区間が開始した時点で発話区間が終了したと遡って判定してもよい。
【００９６】
一方、NframeがThN未満であれば（ステップＳ２１２−Ｎｏ）、発話区間終了検出部２９は、現フレームにおいても監視区間は継続していると判定する。すなわち、発話区間の検出状態は状態３のまま維持される。そしてプロセッサ１３は、発話区間検出処理を終了する。
【００９７】
この変形例によれば、発話区間終了検出部２９は、音声信号中の雑音成分により、ピッチゲインの誤差が大きくなる場合でも、発話区間が終了するタイミングを適切に検出できる。
【００９８】
さらに他の変形例によれば、ピッチゲイン算出部２５は、音声信号の線形予測成分に対する残差信号の長期自己相関に基づいてピッチゲインを算出してもよい。なお、残差信号の長期自己相関は、音声信号から短期相関成分を取り除いた残りの自己相関を表す。この場合、ピッチゲイン算出部２５は、音声信号の線形予測係数を算出する。その際、ピッチゲイン算出部２５は、例えば、TTC標準JT-G722.2規格の5.2.2章で規定されている方法に従って線形予測係数を算出すればよい。そしてピッチゲイン算出部２５は、次式に従って残差信号res(n)を算出する。
【数１０】
2019053233.tif 000012
ここでa(i)は、線形予測係数であり、pは、線形予測係数の次数（例えば、16）である。
【００９９】
ピッチゲイン算出部２５は、残差信号の長期自己相関Cres(d)を次式に従って算出する。
【数１１】
2019053233.tif 000013
なお、遅延量dの最小値dlow及び最大値dhighは、上記の実施形態における（４）式と同様に、人の声の基本周波数に相当する遅延量が含まれるように設定される。
【０１００】
ピッチゲイン算出部２５は、遅延量の範囲に含まれる遅延量dごとに残差信号の長期自己相関Cres(d)を算出すると、その長期自己相関Cres(d)のうちの最大値Cres(dmax)を求める。なお、dmaxは、長期自己相関Cres(d)の最大値Cres(dmax)に対応する遅延量であり、この遅延量はピッチ周期に相当する。そしてピッチゲイン算出部２５は、次式に従ってピッチゲインgpitchを算出すればよい。
【数１２】
2019053233.tif 000014
【０１０１】
また、上記の実施形態または変形例において、発話区間検出装置１は、有音区間を検出せずに、音声信号から発話区間を直接検出してもよい。すなわち、発話区間開始検出部２６は、有音区間か否かにかかわらず、ピッチゲインと第１の閾値Th1との比較結果により、発話区間の開始を検出すればよい。
【０１０２】
これにより、発話区間の検出精度が若干低下する可能性があるものの、発話区間の検出に要する演算量が削減される。この場合、プロセッサ１３が有する各部のうち、有音判定部２４が省略されてもよい。また、第１の閾値Th1及び第２の閾値Th2の調整にSN比が利用されない場合には、パワー算出部２１、雑音推定部２２及び信号対雑音比算出部２３も省略されてもよい。
【０１０３】
また上記の実施形態または変形例による発話区間検出装置は、サーバクライアント型のシステムに実装されてもよい。
図１１は、上記の何れかの実施形態またはその変形例による発話区間検出装置が実装されたサーバクライアントシステムの概略構成図である。
サーバクライアントシステム１００は、端末１１０とサーバ１２０とを有し、端末１１０とサーバ１２０とは、通信ネットワーク１３０を介して互いに通信可能となっている。なお、サーバクライアントシステム１００が有する端末１１０は複数存在してもよい。同様に、サーバクライアントシステム１００が有するサーバ１２０は複数存在してもよい。
【０１０４】
端末１１０は、マイクロホン１１１と、メモリ１１２と、通信インターフェース１１３と、プロセッサ１１４とを有する。マイクロホン１１１、メモリ１１２及び通信インターフェース１１３は、例えば、プロセッサ１１４とバスを介して接続されている。
【０１０５】
マイクロホン１１１は、音声入力部の一例であり、アナログ信号である音声信号を取得し、その音声信号を所定のサンプリングレートでサンプリングすることにより、その音声信号をデジタル化する。そしてマイクロホン１１１は、デジタル化された音声信号をプロセッサ１１４へ出力する。
【０１０６】
メモリ１１２は、例えば、不揮発性の半導体メモリ及び揮発性の半導体メモリを有する。そしてメモリ１１２は、端末１１０を制御するためのコンピュータプログラム、端末１１０の識別情報、発話区間検出処理で利用される各種のデータ及びコンピュータプログラムなどを記憶する。
【０１０７】
通信インターフェース１１３は、端末１１０を通信ネットワーク１３０に接続するためのインターフェース回路を有する。そして通信インターフェース１１３は、プロセッサ１１４から受け取った音声信号を、端末１１０の識別情報とともに通信ネットワーク１３０を介してサーバ１２０へ送信する。
【０１０８】
プロセッサ１１４は、CPUとその周辺回路を有する。そしてプロセッサ１１４は、音声信号を、端末１１０の識別情報とともに、通信インターフェース１１３及び通信ネットワーク１３０を介してサーバ１２０へ送信する。またプロセッサ１１４は、サーバ１２０から受け取った、音声信号に対する処理結果をディスプレイ（図示せず）に表示するか、あるいは、その処理結果に対応する合成音声信号をスピーカ（図示せず）を介して再生する。
【０１０９】
サーバ１２０は、通信インターフェース１２１と、メモリ１２２と、プロセッサ１２３とを有する。通信インターフェース１２１及びメモリ１２２は、プロセッサ１２３とバスを介して接続されている。
【０１１０】
通信インターフェース１２１は、サーバ１２０を通信ネットワーク１３０に接続するためのインターフェース回路を有する。そして通信インターフェース１２１は、音声信号と端末１１０の識別情報とを端末１１０から通信ネットワーク１３０を介して受信してプロセッサ１２３に渡す。
【０１１１】
メモリ１２２は、例えば、不揮発性の半導体メモリ及び揮発性の半導体メモリを有する。そしてメモリ１２２は、サーバ１２０を制御するためのコンピュータプログラムなどを記憶する。またメモリ１２２は、発話区間検出処理を実行するためのコンピュータプログラム及び各端末から受信した音声信号を記憶していてもよい。
【０１１２】
プロセッサ１２３は、CPUとその周辺回路を有する。そしてプロセッサ１２３は、上記の実施形態または変形例による発話区間検出装置のプロセッサの各機能を実現する。さらにプロセッサ１２３は、検出された発話区間に対して音声認識などの所定の処理を実行してその処理結果を求める。そしてプロセッサ１２３は、その処理結果を通信インターフェース１２１及び通信ネットワーク１３０を介して端末１１０へ送信する。
【０１１３】
上記の実施形態または変形例による発話区間検出装置のプロセッサが有する各機能をコンピュータに実現させるコンピュータプログラムは、磁気記録媒体または光記録媒体といったコンピュータによって読み取り可能な媒体に記録された形で提供されてもよい。
【０１１４】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【０１１５】
以上説明した実施形態及びその変形例に関し、更に以下の付記を開示する。
（付記１）
話者の声が表された音声信号を分割した所定長を持つフレームごとに、前記音声信号の周期性の強さを表すピッチゲインを算出するピッチゲイン算出部と、
前記話者が発話していない非発話区間が継続している場合において前記ピッチゲインが第１の閾値以上となると前記話者が発話している発話区間が開始されたと判定する発話区間開始検出部と、
前記発話区間におけるピッチゲインの第１の代表値から前記発話区間が開始される前の区間におけるピッチゲインの第２の代表値を減じた値に応じた低下量だけ前記第１の閾値より低い第２の閾値を設定する閾値設定部と、
前記発話区間が継続している場合において前記ピッチゲインが前記第２の閾値未満となると前記発話区間が終了すると判定する発話区間終了検出部と、
を有する発話区間検出装置。
（付記２）
前記閾値設定部は、前記発話区間におけるピッチゲインの最大値を前記第１の代表値として算出する、付記１に記載の発話区間検出装置。
（付記３）
前記発話区間が開始される前の区間におけるピッチゲインの平均値を前記第２の代表値として算出する雑音ピッチゲイン算出部をさらに有する、付記１または２に記載の発話区間検出装置。
（付記４）
前記閾値設定部は、前記発話区間が開始されたと判定されたフレームにおける前記ピッチゲインが大きいほど、前記第２の閾値を高くする、付記１〜３の何れかに記載の発話区間検出装置。
（付記５）
前記フレームごとに、前記音声信号の信号対雑音成分比を算出する信号対雑音成分比算出部をさらに有し、
前記発話区間開始検出部は、前記信号対雑音成分比が大きいフレームほど、当該フレームにおける前記第２の閾値を高くする、付記１〜３の何れかに記載の発話区間検出装置。
（付記６）
話者の声が表された音声信号を分割した所定長を持つフレームごとに、前記音声信号の周期性の強さを表すピッチゲインを算出し、
前記話者が発話していない非発話区間が継続している場合において前記ピッチゲインが第１の閾値以上となると前記話者が発話している発話区間が開始されたと判定し、
前記発話区間におけるピッチゲインの第１の代表値から前記発話区間が開始される前の区間におけるピッチゲインの第２の代表値を減じた値に応じた低下量だけ前記第１の閾値より低い第２の閾値を設定し、
前記発話区間が継続している場合において前記ピッチゲインが前記第２の閾値未満となると前記発話区間が終了すると判定する、
ことを含む発話区間検出方法。
（付記７）
話者の声が表された音声信号を分割した所定長を持つフレームごとに、前記音声信号の周期性の強さを表すピッチゲインを算出し、
前記話者が発話していない非発話区間が継続している場合において前記ピッチゲインが第１の閾値以上となると前記話者が発話している発話区間が開始されたと判定し、
前記発話区間におけるピッチゲインの第１の代表値から前記発話区間が開始される前の区間におけるピッチゲインの第２の代表値を減じた値に応じた低下量だけ前記第１の閾値より低い第２の閾値を設定し、
前記発話区間が継続している場合において前記ピッチゲインが前記第２の閾値未満となると前記発話区間が終了すると判定する、
ことをコンピュータに実行させるための発話区間検出用コンピュータプログラム。
（付記８）
話者の声が表された音声信号を取得するマイクロホンと、
前記音声信号を分割した所定長を持つフレームごとに、前記音声信号の周期性の強さを表すピッチゲインを算出し、
前記話者が発話していない非発話区間が継続している場合において前記ピッチゲインが第１の閾値以上となると前記話者が発話している発話区間が開始されたと判定し、
前記発話区間におけるピッチゲインの第１の代表値から前記発話区間が開始される前の区間におけるピッチゲインの第２の代表値を減じた値に応じた低下量だけ前記第１の閾値より低い第２の閾値を設定し、
前記発話区間が継続している場合において前記ピッチゲインが前記第２の閾値未満となると前記発話区間が終了すると判定するように構成されたプロセッサと、
を有する発話区間検出装置。
【符号の説明】
【０１１６】
１    発話区間検出装置
１１    マイクロホン
１２    アナログ／デジタルコンバータ
１３    プロセッサ
１４    メモリ
２１    パワー算出部
２２    雑音推定部
２３    信号対雑音比算出部
２４    有音判定部
２５    ピッチゲイン算出部
２６    発話区間開始検出部
２７    雑音ピッチゲイン算出部
２８    閾値設定部
２９    発話区間終了検出部
１００    サーバクライアントシステム
１１０    端末
１１１    マイクロホン
１１２    メモリ
１１３    通信インターフェース
１１４    プロセッサ
１２０    サーバ
１２１    通信インターフェース
１２２    メモリ
１２３    プロセッサ
１３０    通信ネットワーク
【図１】
2019053233.tif 000015
【図２】
2019053233.tif 000016
【図３】
2019053233.tif 000017
【図４】
2019053233.tif 000018
【図５】
2019053233.tif 000019
【図６】
2019053233.tif 000020
【図７】
2019053233.tif 000021
【図８】
2019053233.tif 000022
【図９】
2019053233.tif 000023
【図１０】
2019053233.tif 000024
【図１１】
2019053233.tif 000025