以下に、本願の開示する音声区間検出方法、音声区間検出装置および音声区間検出プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
図1は、本実施例1に係る翻訳システムの一例を示す図である。図1に示すように、この翻訳システムは、マイク50と、音声区間検出装置100と、音声翻訳サーバ60とを有する。マイク50は、音声区間検出装置100に接続される。音声区間検出装置100は、音声翻訳サーバ60に接続される。
マイク50は、音を集音し、集音した音の情報を、音声区間検出装置100に入力する装置である。以下の説明では、マイク50が集音した音の情報を「音情報」と表記する。
音声区間検出装置100は、音情報の特徴量を基にして、音情報に含まれる音声区間を検出する装置である。音声区間検出装置100は、音声区間の情報を、音声翻訳サーバ60に送信することで、翻訳を依頼する。音声区間検出装置100は、音声翻訳サーバ60から翻訳結果を受信すると、翻訳結果を図示しないスピーカ等から出力する。
音声翻訳サーバ60は、音声区間検出装置100から受信する音声区間の情報に対して音声認識を行い、音声認識の結果を基にして、機械翻訳を実行する装置である。音声翻訳サーバ60は、機械翻訳の結果を、音声区間検出装置100に送信する。
図1に示した音声区間検出装置100の構成の一例について説明する。図2は、本実施例1に係る音声区間検出装置の構成を示す機能ブロック図である。図2に示すように、この音声区間検出装置100は、通信部110aと、インタフェース部110bと、記憶部120と、制御部130とを有する。
通信部110aは、音声翻訳サーバ60とデータ通信を行う処理部である。通信部110aは、NIC(Network Interface Card)等の通信装置に対応する。後述する制御部130は、通信部110aを介して、音声翻訳サーバ60とデータをやり取りする。
インタフェース部110bは、マイク50に接続され、マイク50から音情報を取得する装置である。後述する制御部130は、インタフェース部110bを介して、音情報を取得する。
記憶部120は、バッファ121と、平滑化値テーブル122とを有する。記憶部120は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
バッファ121は、マイク50から取得する音情報を格納するバッファである。
平滑化値テーブル122は、音情報の特徴量を異なる学習計数αによって平滑化した平滑化値を保持するテーブルである。例えば、学習係数α1によって特徴量を平滑化した平滑値を「第1平滑化値」と表記する。学習係数α2によって特徴量を平滑化した平滑値を「第2平滑値」と表記する。
図3は、本実施例1に係る平滑化値テーブルのデータ構造の一例を示す図である。図3に示すように、この平滑化値テーブル122は、フレーム番号と、第1平滑化値と、第2平滑化値とを対応付ける。フレーム番号は、時系列の各フレームを一意に識別する情報である。後述するように、フレームは、音情報を所定の時間幅で分割した情報である。例えば、フレーム長を「20ms」とする。
制御部130は、受付部131と、特徴量算出部132と、判定部133と、算出部134と、検出部135と、出力部136とを有する。制御部130は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などによって実現できる。また、制御部130は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによっても実現できる。
受付部131は、マイク50から音情報を受け付け、受け付けた音情報をバッファ121に格納する処理部である。受付部131は、マイク50から音情報を受け付ける度に、受け付けた音情報をバッファ121に格納する。
特徴量算出部132は、バッファ121から音情報を取得し、フレーム毎に音情報の特徴量を算出する処理部である。特徴量算出部132は、特徴量の情報を、判定部133および算出部134に出力する。例えば、特徴量算出部132は、音情報のSNR(Signal-to-Noise Ratio)を特徴量として算出する。
特徴量算出部132は、音情報を所定の時間幅で分割した各フレームに対して処理を行う。特徴量算出部132は、入力電力を算出する処理、背景雑音レベルを推定する処理、SNRを推定する処理を順に実行する。
特徴量算出部132が入力電力を算出する処理について説明する。特徴量算出部132は、k番目のフレームの音声の電力(値)Spow(k)を、式(1)に基づいて算出する。式(1)において、Sk(n)は、k番目のフレームに含まれる各サンプル点の入力音の電力のうち、n番目の入力音の電力を示す。なお、特徴点算出部132は、音情報を帯域分割し、帯域毎の電力を算出しても良い。以下では、帯域分割数1の場合について説明する。
特徴量算出部132が背景雑音レベルを推定する処理について説明する。特徴点算出部132は、音情報の各フレームを用いて背景雑音レベルを推定する。ただし、特徴量算出部132は、非音声区間となるフレームを用いて、背景雑音推定を行う。
例えば、特徴量算出部132は、式(2)に基づいて、k番目のフレームの背景雑音レベルNoise(k)を算出する。式(2)において、Spow(k)は、非音声区間となるフレームについて、式(1)により算出される値である。Noise(k−1)は、k−1番目のフレームの背景雑音レベルを示す。なお、Noise(0)は、予め管理者に設定された値となる。βは、0以上1未満の定数となる。
特徴量算出部132がSNRを推定する処理について説明する。特徴量算出部132は、k番目のフレームのSNRを、式(3)に基づいて算出する。式(3)において、Spow(k)は、式(1)により算出される値である。Noise(k)は、式(2)により算出される値である。
判定部133は、音情報の特徴量が連続して閾値Thsnr以上となる区間を示す継続長が基準値以上であるか否かを判定する処理部である。判定部133は、判定結果を、検出部135に出力する。具体的に、判定部133は、有音無音を判定する処理と、継続長をカウントする処理、継続長と基準値とを比較する処理を実行する。
判定部133が、有音無音を判定する処理について説明する。判定部133は、特徴量と閾値Thsnrとを比較して、現フレームが有音か無音かを判定する。例えば、判定部133は、k番目のフレームの特徴量が、閾値Thsnr以上である場合には、k番目のフレームに対する有音判定結果を「1」に設定する。一方、判定部133は、k番目のフレームの特徴量が、閾値Thsnr未満である場合には、k番目のフレームに対する有音判定結果を「0」に設定する。
判定部133が継続長をカウントする処理について説明する。判定部133は、k−1番目のフレームの有音判定結果が「0」の場合には、k番目のフレームにおける継続長を「0」に設定する。判定部133は、k−1番目のフレームの有音判定結果が「1」の場合には、k−1番目のフレームにおける継続長に1を加算したものを、k番目のフレームにおける継続長に設定する。
判定部133が継続長と基準値とを比較する処理について説明する。判定部133は、基準値TTL、基準値TTMを用いる。基準値TTLおよび基準値TTMの大小関係を「基準値TTL>基準値TTM」とし、例えば基準値TTLを400ms、基準値TTMを200msとする。判定部133は、k番目のフレームの継続長が、基準値TTL以上であるか、基準値TTL未満かつ基準値TTM以上であるか、基準値TTM未満であるかの判定結果を、検出部135に出力する。
なお、判定部133は、k番目のフレームに対する有音判定結果を「0」に設定する度に、有音判定結果を「0」に設定した旨を検出部135に出力する。
算出部134は、学習係数αを用いて、フレーム毎の特徴量を平滑化することで、フレーム毎の平滑化値を算出する処理部である。例えば、算出部134は、式(4)に基づいて、k番目のフレームの平滑化値を算出する。学習係数αが小さいほど、k番目のフレームの重みが小さくなるため、平滑化量が強いと言える。
k番目のフレームの平滑化値=k−1番目のフレームの特徴量×(1−α)+k番目のフレームの特徴量×α・・・(4)
ここで、算出部134は、異なる学習係数α1,α2を用いて、平滑化値を算出する。学習係数α1および学習係数α2の大小関係を「学習係数α1<学習係数α2」とし、例えばα1を0.1、α2を0.2とする。学習係数α1による平滑化量の方が、学習係数α2による平滑化量よりも強いといえる。算出部134が、学習係数α1を用いて算出した平滑化値を、「第1平滑化値」と表記する。算出部134が、学習係数α2を用いて算出した平滑化値を、「第2平滑化値」と表記する。
算出部134は、フレーム毎に第1平滑化値および第2平滑化値を算出し、算出結果を平滑化値テーブル122に格納する。
検出部135は、平滑化値を基にして、音声区間を検出する処理部である。検出部135は、判定部133の判定結果を基にして、閾値および平滑化値を切り替えて、音声区間の開始フレームを検出する。検出部135は、閾値TVLまたは閾値TVMを用いる。閾値TVLまたは閾値TVMの大小関係を「閾値TVL<閾値TVM」とする。
判定部133の判定結果が「k番目のフレームの継続長が基準値TTL以上である」場合の検出部135の処理について説明する。検出部135は、k番目のフレームの第1平滑化値を、平滑化値テーブル122から取得する。検出部135は、取得した第1平滑化値と、閾値TVLとを比較し、第1平滑化値が閾値TVL以上の場合に、k番目のフレームが、音声区間の開始フレームであると判定する。一方、検出部135は、第1平滑化値が閾値TVL未満の場合に、k番目のフレームは、開始フレームでないと判定する。
判定部133の判定結果が「基準値TTL未満かつ基準値TTM以上である」場合の検出部135の処理について説明する。検出部135は、k番目のフレームの第2平滑化値を、平滑化値テーブル122から取得する。検出部135は、取得した第2平滑化値と、閾値TVMとを比較し、第2平滑化値が閾値TVM以上の場合に、k番目のフレームが、音声区間の開始フレームであると判定する。一方、検出部135は、第2平滑化値が閾値TVM未満の場合に、k番目のフレームは、開始フレームでないと判定する。
判定部133の判定結果が「基準値TTM未満である」場合の検出部135の処理について説明する。この場合には、検出部135は、k番目のフレームは、開始フレームでないと判定する。
続いて、検出部135は、開始フレームを検出した後に、終了フレームの検出を行う。例えば、検出部135は、開始フレームを検出した後に、判定部133から、有音判定結果を「0」に設定した旨の通知を受ける回数をカウントし、カウントした回数が、閾値以上となった時点のフレームを、終了フレームとして検出する。検出部135は、開始フレームから終了フレームまでの音情報を、バッファ121から取得し、取得した音情報を、音声翻訳サーバ60に送信することで、翻訳を依頼する。
出力部136は、音声翻訳サーバ60から翻訳結果を受信した場合に、翻訳結果を音声に変換して、出力する処理部である。
次に、本実施例1に係る音声区間検出装置100の処理手順について説明する。図4、図5および図6は、本実施例1に係る音声区間検出装置の処理手順を示すフローチャートである。図4に示すように、音声区間検出装置100の特徴量算出部132は、バッファ121からフレームを取得する(ステップS101)。
特徴量算出部132は、特徴量を算出する(ステップS102)。音声区間検出装置100の算出部134は、平滑化値を算出する(ステップS103)。ステップS103において、算出部134は、学習係数α1を用いて第1平滑化値を算出し、学習係数α2を用いて第2平滑化値を算出する。
音声区間検出装置100の判定部133は、特徴量の瞬時値が閾値Thsnr以上であるか否かを判定する(ステップS104)。特徴量の瞬時値は、平滑化する前の特徴量を示すものである。
判定部133は、特徴量の瞬時値が閾値Thsnr以上でない場合には(ステップS104,No)、有音判定結果を「0」に設定する(ステップS105)。判定部133は、継続長を「0」に設定し(ステップS106)、ステップS108に移行する。
判定部133は、特徴量の瞬時値が閾値Thsnr以上の場合には(ステップS104,Yes)、有音判定結果を「1」に設定する(ステップS107)。音声区間検出装置100は、音声区間の検出状態が「0」である場合には(ステップS108,Yes)、図5のステップS109に移行する。音声区間検出装置100は、音声区間の検出状態が「0」でない場合には(ステップS108,No)、図6のステップS118に移行する。
図5の説明に移行する。音声区間検出装置100の検出部135は、有音判定結果が「1」でない場合には(ステップS109,No)、ステップS116に移行する。一方、検出部135は、有音判定結果が「1」である場合には(ステップS109,Yes)、継続長に1を加算する(ステップS110)。検出部135は、継続長が閾値TTL以上であるか否かを判定する(ステップS111)。
検出部135は、継続長が基準値TTL以上でない場合には(ステップS111,No)、ステップS112に移行する。検出部135は、継続長が基準値TTL以上である場合には(ステップS111,Yes)、ステップS114に移行する。
検出部135は、継続長が基準値TTM以上であるか否かを判定する(ステップS112)。検出部135は、継続長が基準値TTM以上でない場合には(ステップS112,No)、ステップS116に移行する。検出部135は、継続長が基準値TTM以上である場合には(ステップS112,Yes)、ステップS113に移行する。
検出部135は、学習係数α2で平滑化した第2平滑化値が閾値TVM以上であるか否かを判定する(ステップS113)。検出部135は、学習係数α2で平滑化した第2平滑化値が閾値TVM以上でない場合には(ステップS113,No)、ステップS116に移行する。検出部135は、学習係数α2で平滑化した第2平滑化値が閾値TVM以上である場合には(ステップS113,Yes)、ステップS115に移行する。
検出部135は、学習係数α1で平滑化した第1平滑化値が閾値TVL以上であるか否かを判定する(ステップS114)。検出部135は、学習係数α1で平滑化した第1平滑化値が閾値TVL以上でない場合には(ステップS114,No)、ステップS116に移行する。検出部135は、学習係数α1で平滑化した第1平滑化値が閾値TVL以上である場合には(ステップS114,Yes)、音声区間の検出状態を「1」に設定する(ステップS115)。音声区間の検出状態が「1」となる先頭のフレームが、開始フレームとなる。
検出部135は、フレーム処理を継続しない場合には(ステップS116,No)、処理を終了する。検出部135は、フレーム処理を継続する場合には(ステップS116,Yes)、次のフレーム処理に移行し(ステップS117)、図4のステップS102に移行する。
図6の説明に移行する。検出部135は、有音判定結果が「0」であるか否かを判定する(ステップS118)。検出部135は、有音判定結果が「0」でない場合には(ステップS118,No)、図5のステップS116に移行する。
検出部135は、有音判定結果が「0」である場合には(ステップS118,Yes)、保護区間の継続フレーム数が保護区間の最大継続フレーム数未満であるか否かを判定する(ステップS119)。検出部135は、保護区間の継続フレーム数が保護区間の最大継続フレーム数未満である場合には(ステップS119,Yes)、ステップS120に移行する。検出部135は、保護区間の継続フレーム数が保護区間の最大継続フレーム数未満でない場合には(ステップS119,No)、ステップS122に移行する。
検出部135は、継続フレーム数に1を加算する(ステップS120)。検出部135は、音声区間の検出状態を「1」に設定し(ステップS121)、図5のステップS116に移行する。
検出部135は、継続フレーム数を「0」に設定する(ステップS122)。検出部135は、音声区間の検出状態を「0」に設定し(ステップS123)、図5のステップS116に移行する。
次に、本実施例1に係る音声区間検出装置100の効果について説明する。音声区間検出装置100は、音情報の継続長が基準値TTL以上である場合に、基準の平滑化量よりも強い平滑化量で平滑化された第1平滑化値と閾値TVLとを基にして音声区間を検出する。一方、音声区間検出装置100は、音情報の継続長が基準値TTL未満かつ基準値TTM以上である場合に、基準の平滑化量よりも弱い平滑化量で平滑化された第2平滑化値と閾値TVMとを基にして音声区間を検出する。このように、発話の長さを示す継続長に応じて、平滑化量を調整して平滑化を行い音声区間の検出を試みるため、継続長によらず、音声区間を正しく検出することができる。
また、音声区間検出装置100は、音情報の継続長に応じて、閾値TVLまたは閾値TVMを選択して利用する。例えば、閾値TVLまたは閾値TVMの大小関係を「閾値TVL<閾値TVM」とする。音情報の継続長が基準値TTL以上である場合には、平滑化量が強くなるため、音声区間の取りこぼしを抑止するため、基準より小さい閾値TVLを用いる。一方、音情報の継続長が基準値TTL以上である場合には、平滑化量が弱くなるため、雑音の誤検出を抑止するため、基準より大きい閾値TVMを用いる。これにより、音声区間を正しく検出することができる。
次に、本実施例2に係る音声区間検出装置について説明する。図示を省略するが、本実施例2に係る音声区間検出装置は、図1の音声区間検出装置100と同様にして、マイク50および音声翻訳サーバ60に接続されるものとする。マイク50および音声翻訳サーバ60に関する説明は、実施例1で説明した内容と同様である。
図7は、本実施例2に係る音声検出装置の構成を示す機能ブロック図である。図7に示すように、この音声検出装置200は、通信部210aと、インタフェース部210bと、記憶部220と、制御部230とを有する。通信部210aおよびインタフェース部210bに関する説明は、図2の通信部110aおよびインタフェース部110bに関する説明と同様である。
記憶部220は、バッファ221と平滑化値テーブル222とを有する。記憶部220は、RAM、ROM、フラッシュメモリなどの半導体メモリ素子や、HDDなどの記憶装置に対応する。
バッファ221は、マイク50から取得する音情報を格納するバッファである。
平滑化値テーブル222は、音情報の特徴量を学習係数αによって平滑化した平滑化値を保持するテーブルである。後述するように、本実施例2に係る学習係数αは、継続長に応じて変化する。図8は、平滑化値テーブルのデータ構造の一例を示す図である。図8に示すように、この平滑化値テーブルは、フレーム番号と、平滑化値とを対応付ける。フレーム番号は、時系列の各フレームを一意に識別する情報である。平滑化値は、各フレームの平滑化値である。
制御部230は、受付部231と、特徴量算出部232と、判定部233と、算出部234と、検出部235と、出力部236とを有する。制御部230は、CPUやMPUなどによって実現できる。また、制御部230は、ASICやFPGAなどのハードワイヤードロジックによっても実現できる。
受付部231は、マイク50から音情報を受け付け、受け付けた音情報をバッファ221に格納する処理部である。受付部231は、マイク50から音情報を受け付ける度に、受け付けた音情報をバッファ221に格納する。
特徴量算出部232は、バッファ221から音情報を取得し、フレーム毎に音情報の特徴量を算出する処理部である。特徴量算出部232は、特徴量の情報を、判定部233および算出部234に出力する。例えば、特徴量算出部232は、音情報のSNR(Signal-to-Noise Ratio)を特徴量として算出する。特徴量算出部232が、音情報のSNRを算出する処理は、特徴量算出部132が音情報のSNRを算出する処理と同様である。
判定部233は、音情報の特徴量が連続して閾値Thsnr以上となる区間を示す継続長が基準値以上であるか否かを判定する処理部である。判定部233は、判定結果を、算出部234に出力する。具体的に、判定部233は、有音無音を判定する処理と、継続長をカウントする処理、継続長と基準値とを比較する処理を実行する。このうち、判定部233が、有音無音を判定する処理および継続長をカウントする処理は、判定部133の処理と同様である。
判定部233が継続長と基準値とを比較する処理について説明する。判定部233は、基準値TTL、基準値TTMを用いる。基準値TTLおよび基準値TTMの大小関係を「基準値TTL>基準値TTM」とし、例えば基準値TTLを400ms、基準値TTMを200msとする。判定部233は、k番目のフレームの継続長が、基準値TTL以上であるか、基準値TTL未満かつ基準値TTM以上であるか、基準値TTM未満であるかの判定結果を、算出部234に出力する。
算出部234は、学習係数αを用いて、フレーム毎の特徴量を平滑化することで、フレーム毎の平滑化値を算出する処理部である。算出部234は、算出した平滑化値を平滑化値テーブル222に格納する。
算出部234は、学習係数特定テーブルと、継続長との関係から、学習係数αを特定する。図9は、学習係数特定テーブルのデータ構造の一例を示す図である。図9の横軸は、継続長に対応する軸であり、縦軸は学習係数αに対応する軸である。図9に示すように、継続長に応じて、学習係数αの値が定まる。例えば、継続長が基準値TTL以上である場合には、学習係数αの値は、α2となる。継続長が基準値TTL未満かつ基準値TTM以上である場合には、学習係数αの値は、継続長に応じたα1〜α2の値となる。継続長が基準値TTM未満である場合には、学習係数αの値は、α1となる。
算出部234は、学習係数特定テーブルと継続長との関係から学習係数αを特定し、特定した学習係数αと、式(4)とを基にして、フレームの平滑化値を算出する。また、算出部234は、学習係数αの情報を、検出部235に出力する。
検出部235は、平滑化値テーブル222の平滑化値を基にして、音声区間を検出する処理部である。検出部235は、算出部234の学習係数αの算出結果を基にして閾値を特定する。検出部235は、特定した閾値と平滑化値とを比較して、音声区間の開始フレームを検出する。
例えば、検出部235は、閾値特定テーブルと学習係数との関係から閾値を特定する。図10は、閾値特定テーブルのデータ構造の一例を示す図である。図10の横軸は、学習係数αに対応する軸であり、縦軸は、閾値に対応する軸である。図10に示すように、学習係数αに応じて、閾値が定まる。例えば、学習係数αがα2以上である場合には、閾値は閾値TVMとなる。学習係数αがα1〜α2の場合には、学習係数αに応じた閾値TVL〜閾値TVMの値となる。学習係数αがα1未満である場合には、閾値は閾値TVLとなる。検出部235は、フレーム毎に、閾値を特定する処理を実行する。閾値TVLおよび閾値TVMの大小関係を「閾値TVL>閾値TVM」とし、例えば、閾値TVMの値を「15dB」、閾値TVLの値を「10dB」とする。
検出部235は、k番目のフレームについて特定した閾値と、k番目のフレームの平滑化値とを比較し、平滑化値が閾値以上である場合に、k番目のフレームが音声区間の開始フレームであると判定する。一方、検出部235は、平滑化値が閾値未満の場合には、k番目のフレームは、開始フレームでないと判定する。
続いて、検出部235は、開始フレームを検出した後に、終了フレームの検出を行う。例えば、検出部235は、開始フレームを検出した後に、判定部233から、有音判定結果を「0」に設定した旨の通知を受ける回数をカウントし、カウントした回数が、閾値以上となった時点のフレームを、終了フレームとして検出する。検出部235は、開始フレームから終了フレームまでの音情報を、バッファ221から取得し、取得した音情報を、音声翻訳サーバ60に送信することで、翻訳を依頼する。
出力部236は、音声翻訳サーバ60から翻訳結果を受信した場合に、翻訳結果を音声に変換して、出力する処理部である。
次に、本実施例2に係る音声区間検出装置200の処理手順について説明する。図11、図12および図13は、本実施例2に係る音声区間検出装置の処理手順を示すフローチャートである。図11に示すように、音声区間検出装置200の特徴量算出部232は、バッファ221からフレームを取得する(ステップS201)。
特徴量算出部232は、特徴量を算出する(ステップS202)。音声区間検出装置200の判定部233は、特徴量の瞬時値が閾値Thsnr以上であるか否かを判定する(ステップS203)。特徴量の瞬時値は、平滑化する前の特徴量を示すものである。
判定部233は、特徴量の瞬時値が閾値Thsnr以上でない場合には(ステップS203,No)、有音判定結果を「0」に設定する(ステップS204)。判定部233は、継続長を「0」に設定し(ステップS205)、ステップS207に移行する。
判定部233は、特徴量の瞬時値が閾値Thsnr以上の場合には(ステップS203,Yes)、有音判定結果を「1」に設定する(ステップS206)。音声区間検出装置200は、音声区間の検出状態が「0」である場合には(ステップS207,Yes)、図12のステップS208に移行する。音声区間検出装置200は、音声区間の検出状態が「1」である場合には(ステップS207,No)、図13のステップS216に移行する。
図12の説明に移行する。音声区間検出装置200の算出部234は、有音判定結果が「1」でない場合には(ステップS208,No)、ステップS214に移行する。一方、算出部234は、有音判定結果が「1」である場合には(ステップS208,Yes)、継続長に1を加算する(ステップS209)。算出部234は、継続長に応じた学習係数αに基づき平滑化値を算出する(ステップS210)。
音声区間検出装置200の検出部235は、学習係数αに応じた閾値を特定する(ステップS211)。検出部235は、平滑化値が閾値以上であるか否かを判定する(ステップS212)。検出部235は、平滑化値が閾値以上でない場合には(ステップS212,No)、ステップS214に移行する。
検出部235は、平滑化値が閾値以上の場合には(ステップS212,Yes)、音声区間の検出状態を「1」に設定する(ステップS213)。
検出部235は、フレーム処理を継続しない場合には(ステップS214,No)、処理を終了する。検出部235は、フレーム処理を継続する場合には(ステップS214,Yes)、次のフレーム処理に移行し(ステップS215)、図11のステップS202に移行する。
図13の説明に移行する。検出部235は、有音判定結果が「0」であるか否かを判定する(ステップS216)。検出部235は、有音判定結果が「0」でない場合には(ステップS216,No)、図12のステップS214に移行する。
検出部235は、有音判定結果が「0」である場合には(ステップS216,Yes)、保護区間の継続フレーム数が保護区間の最大継続フレーム数未満であるか否かを判定する(ステップS217)。検出部235は、保護区間の継続フレーム数が保護区間の最大継続フレーム数未満である場合には(ステップS217,Yes)、ステップS218に移行する。検出部235は、保護区間の継続フレーム数が保護区間の最大継続フレーム数未満でない場合には(ステップS217,No)、ステップS220に移行する。
検出部235は、継続フレーム数に1を加算する(ステップS218)。検出部235は、音声区間の検出状態を「1」に設定し(ステップS219)、図12のステップS214に移行する。
検出部235は、継続フレーム数を「0」に設定する(ステップS220)。検出部235は、音声区間の検出状態を「0」に設定し(ステップS221)、図12のステップS214に移行する。
次に、本実施例2に係る音声区間検出装置200の効果について説明する。音声区間検出装置200は、音情報の継続長に応じて、平滑化量の強さを調整する。具体的には、音声区間検出装置200は、音情報の継続長が長いほど平滑化量を強め、継続長が短いほど、平滑化量を弱めて平滑化値を算出する。これにより、継続長によらず、音声区間を正しく検出することができる。
また、音声区間検出装置200は、音情報の平滑化量の強さを決める学習係数αに応じて、閾値の大きさを調整する。具体的に、音声区間検出装置200は、学習係数αが大きいほど閾値の値を大きくし、学習係数αが小さいほど閾値の値を小さくする。学習係数αが大きいほど平滑化量が弱くなり、学習係数αが小さいほど平滑化量が強くなる。このため、雑音の誤検出を抑止しつつ、音声区間を正しく検出することができる。
次に、実施例1および実施例2で説明した音声区間検出装置100,200のその他の処理(1)〜(5)を実施例3として説明を行う。また、ここでは、図2の音声区間検出装置100の処理部を用いて説明を行う。
その他の処理(1)について説明する。特徴量算出部132は、音情報の特徴量として、SNRを用いていたがこれに限定されるものではない。特徴量算出部132は、音情報を基にしてピッチゲインを算出し、ピッチゲインを音情報の特徴量としても良い。特徴量算出部132は、式(5)を基にして、ピッチゲインを算出する。ピッチゲインは、音の周期性の強さを表す値である。式(5)において、s(n)は、k番目のフレームに含まれる各サンプル点の入力音の電力のうち、n番目の入力音の電力を示す。
式(5)に含まれるC(d)は、音情報の長期自己相関を示し、式(6)により定義される。式(6)において、遅延dは、dlowからdhighまでの値をとる。dlowは、遅延dの範囲の最小値を示す。dhighは、遅延dの最大値を示す。dlowおよびdhighの値は、基本周波数(100〜300Hz程度)を含むように設定される。例えば、サンプリング周波数が16kHzの場合には、dlow=40、dhigh=286となる。特徴量算出部132は、各フレームにおいて、全ての遅延dについて、長期自己相関C(d)を算出し、C(d)が最大となるピッチ周期をdmaxとして、ピッチゲインを算出する。
例えば、特徴量としてピッチゲインを用いる場合には、閾値TVMの値を「0.8」とし、閾値TVMの値を「0.6」の値とする。単一の閾値を用いる場合には「0.6〜0.8」とする。
その他の処理(2)について説明する。判定部133は、音情報の特徴量をSNRとし、SNRが連続して閾値Thsnr以上となる区間を示す継続長が基準値以上であるか否かを判定することで、有音判定結果を「1」または「0」に設定していたが、これに限定されるものではない。例えば、特徴量算出部132が、特徴量として、SNRおよびピッチゲインを算出し、判定部133は、SNRおよびピッチゲインと閾値とを比較し、比較結果に基づいて、有音判定結果を「1」または「0」に設定しても良い。
図14は、音の内容と特徴量との関係を示す図である。図14に示すように、音の内容が「足音や打撃音等の突発音」である場合には、SNRの値は「中〜高」となり、ピッチゲインの値は「低」となる。音の内容が「人混みでの騒音」である場合には、SNRの値は「低」となり、ピッチゲインの値は「中〜高」となる。音の内容が「音声」である場合には、SNRの値およびピッチゲインの値は「高」となる。
このため、判定部133は、SNRが閾値Thsnr1以上となり、かつ、ピッチゲインの閾値が閾値Thsnr2以上となる区間を示す継続長が基準値以上である場合に、有音判定結果を「1」と設定する。一方、判定部133は、SNRが閾値Thsnr1未満となる場合や、ピッチゲインが閾値Thsnr2未満となる場合には、有音判定結果を「0」に設定する。例えば、閾値Thsnr1を「10dB〜15dB」の値とし、閾値Thsnr2を「0.6〜0.8」の値とする。
このように、特徴量算出部132が、SNRおよびピッチゲインを算出し、判定部133が、SNRおよびピッチゲインを用いて、音声の区間を判定することで、突発音がある条件でも、人混みの条件でも、音声区間を正しく検出することができる。
その他の処理(3)について説明する。検出部135は、過去フレームの特徴量と、継続長に基づいて、閾値を算出しても良い。例えば、検出部135は、式(7)に基づいて、閾値を算出しても良い。式(7)において、基本閾値は、現フレームから所定フレーム前までの特徴量の平均値である。もしくは、この平均値を求める際、有音判定結果が0と判定された区間のみから求め、定数を加えた値を基本閾値としても良い。補正量は、継続長に基づいて変化する値である。継続長が所定継続長以上の場合には、補正量は、第1補正量となり、継続長が所定継続長未満である場合には、補正量は、第2補正量となる。
閾値=基本閾値+補正量・・・(7)
第1補正量および第2補正量の大小関係を「第1補正量<第2補正量」とし、特徴量がSNRである場合には、例えば、第1補正量は「0dB」、第2補正量は「5dB」とし、特徴量がピッチゲインである場合には、例えば、第1補正量は「0.0」、第2補正量は「0.2」とする。
その他の処理(4)について説明する。算出部134は、学習係数αを変えることで、第1平滑化値および第2平滑化値を算出していたが、これに限定されるものではない。算出部134は、平滑化フィルタ長を調整することで、第1平滑化値および第2平滑化値を算出しても良い。平滑化フィルタ長が長いほど、平滑化対象のフレームの値がより平滑化されるため、平滑化量が強いと言える。
例えば、算出部134は、平滑化フィルタ長FLl(400ms)によって、第1平滑化値を算出する。例えば、算出部134は、k番目のフレームの特徴量を平滑化する場合には、k番目のフレームを含む範囲400msのフレームの特徴量を平均化することで、第1平滑化値を算出する。
例えば、算出部134は、平滑化フィルタ長FLm(200ms)によって、第2平滑化値を算出する。例えば、算出部134は、k番目のフレームの特徴量を平滑化する場合には、k番目のフレームを含む範囲200msのフレームの特徴量を平均化することで、第2平滑化値を算出する。
なお、検出部135は、平滑化フィルタ長FLに応じて、動的に閾値を切り替えて、開始フレーム長を検出しても良い。
その他の処理(5)について説明する。検出部135は、音声区間を検出する場合に、音情報の特徴量の瞬時値が閾値以上となる時刻から、開始フレームの時刻までの情報を、遅延量として、音声翻訳サーバ60に通知しても良い。
図15は、検出部のその他の処理を説明するための図である。図15において、横軸は時間に対応する軸であり、縦軸は特徴量に対応する軸である。線40aは、特徴量の瞬時値を示す。線40bは、特徴量の平滑化値を示す。時刻t1は、特徴量の瞬時値が最初に閾値以上となる時刻である。時刻t2は、開始フレームの時刻である。時刻t3は、終了フレームの時刻である。
この場合には、検出部135は、時刻t1〜時刻t2の情報を、遅延量Dとして、音声翻訳サーバ60に通知する。音声翻訳サーバ60は、時刻t1〜時刻t3までの音情報を、音声認識する区間として、機械翻訳を実行する。このように、検出部135が、遅延量Dを、音声翻訳サーバ60に通知することで、語頭の翻訳が漏れることを抑止することができる。
続いて、雑音入り音情報に対する音声区間の検出率と誤検出率の評価結果について説明する。この評価では、評価対象とする60の発話を、音情報に含めて検出を行った。60の発話のうち、40の発話を継続長の長い発話、20の発話を継続長の短い発話とする。
次に、上記実施例に示した音声区間検出装置100,200と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図16は、音声区間検出装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
図16に示すように、コンピュータ300は、各種演算処理を実行するCPU301と、ユーザからのデータの入力を受け付ける入力装置302と、ディスプレイ303とを有する。また、コンピュータ300は、記憶媒体からプログラム等を読み取る読み取り装置304と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインタフェース装置305とを有する。また、コンピュータ300は、各種情報を一時記憶するRAM306と、ハードディスク装置307とを有する。そして、各装置301〜307は、バス308に接続される。
ハードディスク装置307は、受付プログラム307a、特徴量算出プログラム307b、判定プログラム307c、算出プログラム307d、検出プログラム307e、出力プログラム307fを有する。CPU301は、受付プログラム307a、特徴量算出プログラム307b、判定プログラム307c、算出プログラム307d、検出プログラム307e、出力プログラム307fを読み出してRAM306に展開する。
受付プログラム307aは、受付プロセス306aとして機能する。特徴量算出プログラム307bは、特徴量算出プロセス306bとして機能する。判定プログラム307cは、判定プロセス306cとして機能する。算出プログラム307dは、算出プロセス306dとして機能する。検出プログラム307eは、検出プロセス306eとして機能する。出力プログラム307fは、出力プロセス306fとして機能する。
受付プロセス306aの処理は、受付部131、231の処理に対応する。特徴量算出プロセス306bの処理は、特徴量算出部132,232の処理に対応する。判定プロセス306cの処理は、判定部133,233の処理に対応する。算出プロセス306dの処理は、算出部134,234の処理に対応する。検出プロセス306eの処理は、検出部135,235の処理に対応する。出力プロセス306fの処理は、出力部136,236の処理に対応する。
なお、各プログラム307a〜307fについては、必ずしも最初からハードディスク装置307に記憶させておかなくても良い。例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ300が各プログラム307a〜307fを読み出して実行するようにしても良い。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータが実行する音声区間検出方法であって、
入力音の特徴量が連続して閾値以上となる区間を示す継続長が基準長以上であるか否かを判定し、
前記継続長が前記基準長以上である場合には、基準の平滑化量よりも強い第1平滑化量により、前記入力音の特徴量を平滑化することで前記特徴量の平滑化値を算出し、
前記継続長が前記基準長未満である場合には、前記第1平滑化量よりも弱い第2平滑化量に基づいて、前記入力音の特徴量を平滑化することで前記特徴量の平滑化値を算出し、
前記平滑化値を基にして、前記入力音の音声区間を検出する
処理を実行することを特徴とする音声区間検出方法。
(付記2)前記音声区間を検出する処理は、前記継続長が前記基準長以上である場合には、基準の閾値よりも値を小さくした第1閾値と前記平滑化値とを比較して音声区間を検出し、前記継続長が前記基準長未満である場合には、基準の閾値よりも値を大きくした第2閾値と前記平滑化値とを比較して音声区間を検出することを特徴とする付記1に記載の音声区間検出方法。
(付記3)前記音声区間を検出する処理は、過去の入力音の特徴量の平均値と、前記継続長に基づく補正値とを基にして閾値を算出し、算出した閾値と前記平滑化値とを比較して音声区間を検出すること特徴とする付記1に記載の音声区間検出方法。
(付記4)前記音声区間を検出する処理は、前記入力音の特徴量が閾値以上となる時刻から前記平滑化値が第1閾値以上となる時刻までの区間の情報または、前記入力音の特徴量が閾値以上となる時刻から前記平滑化値が第2閾値以上となる時刻の情報を更に検出することを特徴とする付記1、2または3に記載の音声区間検出方法。
(付記5)前記入力音の特徴量は、前記入力音のSNR(Signal-to-Noise Ratio)または前記入力音のピッチゲインであることを特徴とする付記1〜4のいずれか一つに記載の音声区間検出方法。
(付記6)入力音の特徴量が連続して閾値以上となる区間を示す継続長が基準長以上であるか否かを判定する判定部と、
前記継続長が前記基準長以上である場合には、基準の平滑化量よりも強い第1平滑化量により、前記入力音の特徴量を平滑化することで前記特徴量の平滑化値を算出し、前記継続長が前記基準長未満である場合には、前記第1平滑化量よりも弱い第2平滑化量に基づいて、前記入力音の特徴量を平滑化することで前記特徴量の平滑化値を算出する算出部と、
前記平滑化値を基にして、前記入力音の音声区間を検出する検出部と
を有することを特徴とする音声区間検出装置。
(付記7)前記検出部は、前記継続長が前記基準長以上である場合には、基準の閾値よりも値を小さくした第1閾値と前記平滑化値とを比較して音声区間を検出し、前記継続長が前記基準長未満である場合には、基準の閾値よりも値を大きくした第2閾値と前記平滑化値とを比較して音声区間を検出することを特徴とする付記6に記載の音声区間検出装置。
(付記8)前記検出部は、過去の入力音の特徴量の平均値と、前記継続長に基づく補正値とを基にして閾値を算出し、算出した閾値と前記平滑化値とを比較して音声区間を検出すること特徴とする付記6に記載の音声区間検出装置。
(付記9)前記検出部は、前記入力音の特徴量が閾値以上となる時刻から前記平滑化値が第1閾値以上となる時刻までの区間の情報または、前記入力音の特徴量が閾値以上となる時刻から前記平滑化値が第2閾値以上となる時刻の情報を更に検出することを特徴とする付記6、7または8に記載の音声区間検出装置。
(付記10)前記入力音の特徴量は、前記入力音のSNR(Signal-to-Noise Ratio)または前記入力音のピッチゲインであることを特徴とする付記6〜9のいずれか一つに記載の音声区間検出装置。
(付記11)コンピュータに、
入力音の特徴量が連続して閾値以上となる区間を示す継続長が基準長以上であるか否かを判定し、
前記継続長が前記基準長以上である場合には、基準の平滑化量よりも強い第1平滑化量により、前記入力音の特徴量を平滑化することで前記特徴量の平滑化値を算出し、
前記継続長が前記基準長未満である場合には、前記第1平滑化量よりも弱い第2平滑化量に基づいて、前記入力音の特徴量を平滑化することで前記特徴量の平滑化値を算出し、
前記平滑化値を基にして、前記入力音の音声区間を検出する
処理を実行させることを特徴とする音声区間検出プログラム。
(付記12)前記音声区間を検出する処理は、前記継続長が前記基準長以上である場合には、基準の閾値よりも値を小さくした第1閾値と前記平滑化値とを比較して音声区間を検出し、前記継続長が前記基準長未満である場合には、基準の閾値よりも値を大きくした第2閾値と前記平滑化値とを比較して音声区間を検出することを特徴とする付記11に記載の音声区間検出プログラム。
(付記13)前記音声区間を検出する処理は、過去の入力音の特徴量の平均値と、前記継続長に基づく補正値とを基にして閾値を算出し、算出した閾値と前記平滑化値とを比較して音声区間を検出すること特徴とする付記11に記載の音声区間検出プログラム。
(付記14)前記音声区間を検出する処理は、前記入力音の特徴量が閾値以上となる時刻から前記平滑化値が第1閾値以上となる時刻までの区間の情報または、前記入力音の特徴量が閾値以上となる時刻から前記平滑化値が第2閾値以上となる時刻の情報を更に検出することを特徴とする付記11、12または13に記載の音声区間検出プログラム。
(付記15)前記入力音の特徴量は、前記入力音のSNR(Signal-to-Noise Ratio)または前記入力音のピッチゲインであることを特徴とする付記11〜14のいずれか一つに記載の音声区間検出プログラム。