| 【発明の名称】 |
音声区間検出装置 |
| 【発明者】 |
【氏名】大和 俊孝
【氏名】北尾 英樹
【氏名】岩本 真一
【氏名】岩田 收
【氏名】中村 正孝
【氏名】大元 芳尚
|
| 【要約】 |
【課題】促音を含む単語、あるいはサ行、ハ行音が連続する単語に対しても音声区間を確実に検出することの可能な音声区間検出装置を提供する。
【解決手段】マイクロフォン21で検出された音声信号は、ライン増幅器22で増幅、アナログ/ディジタル変換部23でディジタル化された後記憶部24に記憶される。記憶された音声信号はピッチ検出部25に取り込まれ、時間領域の処理によって音声ピッチを抽出する。ゲート信号生成部26でこの音声ピッチに基づいてゲート信号を制御し、音声区間信号生成部28でこのゲート信号に基づいて音声区間信号を制御する。音声区間信号により記憶部に記憶されている音声信号を区分することにより単語を抽出することができる。 |
【特許請求の範囲】
【請求項1】 音声信号中に含まれる雑音を除去する前処理手段と、前記前処理手段により雑音が除去された音声信号から音声ピッチ信号を抽出する音声ピッチ抽出手段と、前記音声ピッチ抽出手段で抽出された音声ピッチに基づいてゲート信号を生成するゲート信号生成手段と、前記ゲート信号生成手段に基づいて音声区間信号を生成する音声区間信号生成手段と、を具備する音声区間検出装置。 【請求項2】 前記音声区間信号生成手段で生成された音声区間信号に基づいて前記前処理手段により雑音が除去された音声信号を複数の音声信号に区分する音声信号区分手段をさらに具備する音声区間検出装置。 【請求項3】 前記音声ピッチ抽出手段が、前記前処理手段により雑音が除去された音声信号に対して予め定められた所定振幅以下の音声信号を除去する減算処理を施す減算処理手段と、前記減算処理手段により減算処理された音声信号の振幅を略一定振幅に揃える揃振幅手段と、前記揃振幅手段により略一定振幅に揃えられた音声信号から正ピーク及び前記正ピークに引き続く負ピークを検出し、前記負ピークから前記正ピークを減算して負ピークを強調した音声信号を生成する負ピーク強調手段と、前記負ピーク強調手段で負ピークの強調された音声信号を検波処理し、検波処理後の信号を微分処理する微分処理手段と、を具備する請求項1又は2に記載の音声区間検出装置。 【請求項4】 前記減算処理手段が、前記前処理手段により雑音が除去された音声信号の正側包絡線及び負側包絡線を算出し、前記正側包絡線及び負側包絡線の差である包絡線差を算出する包絡線差算出手段と、前記包絡線差算出手段で算出された包絡線差の予め定められた所定係数倍を乗じて減算処理閾値を算出する減算処理閾値算出手段と、前記前処理手段により雑音が除去された音声信号の振幅が前記減算処理閾値算出手段で算出された減算処理閾値以上である場合は音声信号の振幅から減算処理閾値を減算する減算処理閾値減算手段と、を具備する請求項3に記載の音声区間検出装置。 【請求項5】 前記減算処理手段が、前記前処理手段により雑音が除去された音声信号の振幅が前記減算処理閾値算出手段で算出された減算処理閾値未満である場合は音声信号の振幅を零に設定する零設定手段をさらに具備する請求項4に記載の音声区間検出装置。 【請求項6】 前記揃振幅手段が、前記前処理手段により雑音が除去された音声信号の正側包絡線及び負側包絡線を算出し、前記正側包絡線及び負側包絡線の差である包絡線差を算出する包絡線差算出手段と、前記包絡線差算出手段で現在以前に算出された包絡線差の中の最大包絡線差を保持する最大包絡線差保持手段と、前記最大包絡線差保持手段に保持された最大包絡線差を現在包絡線差で除して揃振幅利得を算出する揃振幅利得算出手段と、を具備する請求項3に記載の音声区間検出装置。 【請求項7】 前記揃振幅手段が、前記揃振幅利得算出手段で算出された揃振幅利得が予め定められた所定閾値以上である場合には揃振幅利得を単位利得に設定する単位利得設定手段をさらに具備する請求項6に記載の音声区間検出装置。 【請求項8】 前記ゲート信号生成手段が、前記音声ピッチ抽出手段で抽出された連続する予め定められた数の音声ピッチの平均値が予め定められたゲート開閾値以上となったときにゲート信号を開とするゲート信号開手段を具備する請求項1又は2に記載の音声区間検出装置。 【請求項9】 前記ゲート信号生成手段が、前記ゲート信号開手段によりいったんゲート信号が開とされたときは前記音声ピッチ抽出手段で抽出された連続する予め定められた数の音声ピッチの平均値が前記ゲート開閾値より小である予め定められたゲート閉閾値以上であれば前記ゲート信号を開状態に維持するゲート信号開維持手段をさらに具備する請求項8に記載の音声区間検出装置。 【請求項10】 前記ゲート信号生成手段が、前記音声ピッチ抽出手段で抽出された連続する予め定められた数の音声ピッチの平均値が、前記ゲート開閾値未満となったときに前記ゲート信号を閉状態とするゲート信号閉手段をさらに具備する請求項9に記載の音声区間検出装置。 【請求項11】 音声区間信号生成手段が、前記ゲート信号生成手段で生成されたゲート信号が開となった時点から予め定められた第1の所定期間を計時する第1の所定期間計時手段と、前記第1の所定期間計時手段による第1の所定期間の計時が終了した時点から予め定められた第2の所定期間遡及して音声区間信号を開とする音声区間信号開手段を具備する請求項1又は2に記載の音声区間検出装置。 【請求項12】 音声区間信号生成手段が、前記ゲート信号生成手段で生成されたゲート信号が閉となった時点から予め定められた第3の所定期間を計時する第3の所定期間計時手段と、前記第3の所定期間計時手段による第3の所定期間の計時が終了した時点に音声区間信号を閉とする音声区間信号閉手段をさらに具備する請求項11に記載の音声区間検出装置。 【請求項13】 音声区間信号生成手段が、前記第3の所定期間計時手段による第3の所定期間の計時が終了しない前に、前記音声区間信号開手段から前記第2の所定期間遡及して前記音声区間信号が開とされたときには音声区間信号を開状態に維持する音声区間信号開状態維持手段をさらに具備する請求項12に記載の音声区間検出装置。
|
【発明の詳細な説明】【0001】 【発明の属する技術分野】本発明は音声区間検出装置に係り、特に促音を含む単語、あるいはサ行、ハ行音が連続する単語に対しても音声区間を確実に検出することの可能な音声区間検出装置に関する。 【0002】 【従来の技術】音声認識にあっては、マイクロフォンから取り込んだ時系列信号の中から音声認識の対象となる音声区間を抽出することが必要となる。音声の短時間パワーが予め定められた閾値以上である期間を音声区間とする方法が提案されているが、不特定話者の音声から多種類の単語を認識することを目的とする場合には十分な精度を確保することは困難であった。 【0003】本出願人は既に時間領域において音声信号から声の高さであるピッチを高精度で検出することの可能なピッチ周期抽出装置及び方法をすでに提案している(特開平9−50297号公報)が、ピッチ周期に基づいて音声区間を決定することも可能である。 【0004】 【発明が解決しようとする課題】しかしながら、単語中に促音を含む単語A(例えば「窒素」)、サ行が連続する単語B(例えば「寿司屋」)、あるいはハ行が連続する単語C(例えば「皮膚科」)を対象とした場合には、単語を構成するすべての音が一つの連続した音声区間として検出されない誤検出が発生する可能性を回避できなかった。 【0005】図1は従来のピッチ周期に基づく音声区間検出結果であって、(イ)は「単語A」を、(ロ)は「単語B」を、(ハ)は「単語C」を対象として音声区間を検出した場合を示す。いずれも上段は音声信号を、下段は音声区間を示す。この図から判明するように、「単語A」の場合には、前部の音(「窒素」にあっては "ちっ”)は音声区間内に検出されているものの、後部の音(「窒素」にあっては "そ”)は検出されていない。 【0006】「寿司屋」の場合には "すし”と "や”の間で、そして「皮膚科」の場合には"ひふ”と "か”の間で音声区間が途切れ、一つの音声区間として検出されていない。この誤検出の原因としては、以下のものが考えられる。 A:単語Aの促音 "っ”に続く摩擦音 "そ”、単語Bのサ行音 "す”に続く摩擦音 "し”はレベルが低いだけでなく、騒音との識別が困難であるためにピッチ周期の検出自体が困難である。 【0007】B:単語に先行する気音部あるいは騒音部がなく、かつ低ピッチである場合にはピッチ周期の検出ができない。 C:単語Cの場合にはハ行音(「皮膚化」の場合は "ひふ”)と、それに続く音(「皮膚化」の場合は "か”)の間の無音期間が長い。 D:無音期間の騒音本発明は上記課題に鑑みなされたものであって、促音を含む単語、あるいはサ行、ハ行音が連続する単語に対しても音声区間を確実に検出することの可能な音声区間検出装置を提供することを目的とする。 【0008】 【課題を解決するための手段】第1の発明に係る音声区間検出装置にあっては、音声信号中に含まれる雑音を除去する前処理手段と、前処理手段により雑音が除去された音声信号から音声ピッチ信号を抽出する音声ピッチ抽出手段と、音声ピッチ抽出手段で抽出された音声ピッチに基づいてゲート信号を生成するゲート信号生成手段と、ゲート信号生成手段に基づいて音声区間信号を生成する音声区間信号生成手段と、を具備する。 【0009】本発明にあっては、音声信号から抽出された音声ピッチに基づいてゲート信号が制御され、このゲート信号に基づいて音声区間信号が制御される。第2の発明に係る音声区間検出装置にあっては、音声区間信号生成手段で生成された音声区間信号に基づいて前処理手段により雑音が除去された音声信号を複数の音声信号に区分する音声信号区分手段をさらに具備する。 【0010】本発明にあっては、音声信号が音声区間信号により複数の区間に区分される。第3の発明に係る音声区間検出装置にあっては、音声ピッチ抽出手段が、前処理手段により雑音が除去された音声信号に対して予め定められた所定振幅以下の音声信号を除去する減算処理を施す減算処理手段と、減算処理手段により減算処理された音声信号の振幅を略一定振幅に揃える揃振幅手段と、揃振幅手段により略一定振幅に揃えられた音声信号から正ピーク及び前記正ピークに引き続く負ピークを検出し負ピークから正ピークを減算して負ピークを強調した音声信号を生成する負ピーク強調手段と、負ピーク強調手段で負ピークの強調された音声信号を検波処理し検波処理後の信号を微分処理する微分処理手段と、を具備する。 【0011】本発明にあっては、音声ピッチが時間領域の処理により抽出される。第4の発明に係る音声区間検出装置にあっては、減算処理手段が、前処理手段により雑音が除去された音声信号の正側包絡線及び負側包絡線を算出し正側包絡線及び負側包絡線の差である包絡線差を算出する包絡線差算出手段と、包絡線差算出手段で算出された包絡線差の予め定められた所定係数倍を乗じて減算処理閾値を算出する減算処理閾値算出手段と、前処理手段により雑音が除去された音声信号の振幅が減算処理閾値算出手段で算出された減算処理閾値以上である場合は音声信号の振幅から減算処理閾値を減算する減算処理閾値減算手段と、を具備する。 【0012】本発明にあっては、音声信号の包絡線差の所定倍が減算処理閾値とされる。第5の発明に係る音声区間検出装置にあっては、減算処理手段が、前処理手段により雑音が除去された音声信号の振幅が前記減算処理閾値算出手段で算出された減算処理閾値未満である場合は音声信号の振幅を零に設定する零設定手段をさらに具備する。 【0013】本発明にあっては、音声信号の振幅が減算処理閾値以下である場合には音声信号の振幅が零に設定される。第6の発明に係る音声区間検出装置にあっては、揃振幅手段が、前処理手段により雑音が除去された音声信号の正側包絡線及び負側包絡線を算出し正側包絡線及び負側包絡線の差である包絡線差を算出する包絡線差算出手段と、包絡線差算出手段で現在以前に算出された包絡線差の中の最大包絡線差を保持する最大包絡線差保持手段と、最大包絡線差保持手段に保持された最大包絡線差を現在包絡線差で除して揃振幅利得を算出する揃振幅利得算出手段と、を具備する。 【0014】本発明にあっては、音声信号の包絡線差に基づき揃振幅利得が決定される。第7の発明に係る音声区間検出装置にあっては、揃振幅手段が、揃振幅利得算出手段で算出された揃振幅利得が予め定められた所定閾値以上である場合には揃振幅利得を単位利得に設定する単位利得設定手段をさらに具備する。本発明にあっては、揃振幅利得が予め定められた所定閾値以上である場合には揃振幅利得は単位利得に設定される。 【0015】第8の発明に係る音声区間検出装置にあっては、ゲート信号生成手段が、音声ピッチ抽出手段で抽出された連続する予め定められた数の音声ピッチの平均値が予め定められたゲート開閾値以上となったときにゲート信号を開とするゲート信号開手段を具備する。本発明にあっては、予め定められた数の音声ピッチの平均値がゲート開閾値以上となったときにゲート信号が開とされる。 【0016】第9の発明に係る音声区間検出装置にあっては、ゲート信号生成手段が、ゲート信号開手段によりいったんゲート信号が開とされたときは音声ピッチ抽出手段で抽出された連続する予め定められた数の音声ピッチの平均値がゲート開閾値より小である予め定められたゲート閉閾値以上であればゲート信号を開状態に維持するゲート信号開維持手段をさらに具備する。 【0017】本発明にあっては、ゲート信号は連続する予め定められた数の音声ピッチの平均値がゲート閉閾値以上であればゲート信号は開状態に維持される。第10の発明に係る音声区間検出装置にあっては、ゲート信号生成手段が、音声ピッチ抽出手段で抽出された連続する予め定められた数の音声ピッチの平均値がゲート開閾値未満となったときにゲート信号を閉状態とするゲート信号閉手段をさらに具備する。 【0018】本発明にあっては、ゲート信号は音声ピッチの平均値がゲート閉閾値未満となったときに閉とされる。第11の発明に係る音声区間検出装置にあっては、音声区間信号生成手段が、ゲート信号生成手段で生成されたゲート信号が開となった時点から予め定められた第1の所定期間を計時する第1の所定期間計時手段と、第1の所定期間計時手段による第1の所定期間の計時が終了した時点から予め定められた第2の所定期間遡及して音声区間信号を開とする音声区間信号開手段を具備する。 【0019】本発明にあっては、音声区間信号は、ゲート信号が第1の所定期間継続して開であるときは第1の所定期間経過時点から第2の所定期間遡及して開とされる。第12の発明に係る音声区間検出装置にあっては、音声区間信号生成手段が、第2ゲート信号生成手段で生成されたゲート信号が閉となった時点から予め定められた第3の所定期間を計時する第3の所定期間計時手段と、第3の所定期間計時手段による第3の所定期間の計時が終了した時点に音声区間信号を閉とする音声区間信号閉手段をさらに具備する。 【0020】本発明にあっては、音声区間信号は、ゲート信号が閉となった時点から第3の所定期間経過後に閉とされる。第13の発明に係る音声区間検出装置にあっては、音声区間信号生成手段が、第3の所定期間計時手段による第3の所定期間の計時が終了しない前に音声区間信号開手段から第2の所定期間遡及して音声区間信号が開とされたときには音声区間信号を開状態に維持する音声区間信号開状態維持手段をさらに具備する。 【0021】本発明にあっては、音声区間信号は、第3の所定期間と第2の所定期間が重複する場合には開状態に維持される。 【0022】 【発明の実施の形態】図2は本発明に係る音声区間検出装置の機能構成図であって、マイクロフォン21で電気信号に変換された音声信号はライン増幅器22で増幅された後、アナログ/ディジタル変換部23で音声信号は予め定められたサンプリング時間Δtごとにサンプリングされてディジタル信号に変換されて、記憶部24に記憶される。 【0023】ゲート信号生成部26はピッチ検出部25で検出されたピッチに基づいてゲート信号を生成し、音声区間信号生成部27はゲート信号生成部26で生成されたゲート信号に基づいて音声区間信号を生成する。単語抽出部28は、音声区間信号生成部27で生成された音声区間信号に基づいて記憶部24に記憶されているディジタル信号を処理して音声区間に含まれる単語を抽出して出力する。 【0024】なお、本実施例においては、アナログ/ディジタル変換部23、記憶部24、ピッチ検出部25、ゲート信号生成部26、音声区間信号生成部27及び単語抽出部28は例えばパーソナルコンピュータで構成され、ピッチ検出部25、第1ゲート生成部26、第2ゲート生成部27及び単語抽出部28はソフトウエア的に構成される。 【0025】図3はアナログ/ディジタル変換部23及び記憶部24で実行される音声サンプリングルーチンのフローチャートであって、サンプリング時間Δtごとに割り込み処理として実行される。まず、ステップ30でアナログ/ディジタル変換部23でサンプリングされた音声信号Vを取り込み、ステップ31で音声信号Vに対して前処理を行うが前処理の内容の詳細は後述する。 【0026】ステップ32で記憶部23の記憶順序を示すインデックスiを "1" に設定し、ステップ33から35で既に記憶部23に記憶されている音声信号X(i)を以下の処理により順送りする。 X(i+1) ← X(i) 順送りが完了すると、今読み込んだ音声信号Vを記憶部23の最先番地X(1)に記憶してこのルーチンを終了する。 【0027】図4はステップ31で実行される前処理ルーチンの詳細フローチャートであって、ステップ310でディジタル信号に対して高周波雑音除去処理を実行する。この処理には、例えば遮断周波数が4KHzであり遮断特性が18db/octであるローパスフィルタが使用される。ステップ311では高周波雑音が除去されたディジタル信号に対して低周波雑音除去処理を実行する。この処理には、例えば遮断周波数が300Hzであり遮断特性が18db/octであるハイパスフィルタが使用される。 【0028】なお、上記実施例においては高周波雑音除去処理及び低周波雑音除去処理をソフトウエアで行っているが、ライン増幅器22内にハードウエア的なフィルタを組み込んでもよい。図5はピッチ検出部25で実行されるピッチ検出ルーチンの詳細フローチャートであって、ステップ50で記憶部23に記憶されている音声信号X(i)を読み込む。 【0029】そして、ステップ51で減算処理を、ステップ52でAGC処理を、ステップ53でピーク検出処理を実行する。さらに、ステップ54で極値検出クランプ処理を、ステップ55でピッチ周期検出処理を実行してこのルーチンを終了する。なお、ステップ51〜55の処理については、以下に詳述する。 【0030】図6はピッチ検出ルーチンのステップ51で実行される減算処理ルーチンのフローチャートであって、音声信号の振幅を一定に揃えるAGC処理において微小な雑音成分までもAGC処理されて増幅されることを防止するために所定振幅以下の成分を除去することを目的とする。まずステップ51aで包絡値差ΔEを算出するが詳細は図7で説明する。 【0031】ステップ51bで包絡値差ΔEが予め定められた振幅除去の閾値r未満であるかを判定し、肯定判定されたとき、即ち包絡値差ΔEが閾値r未満であるときはステップ51cで音声信号X(i)を "0" に設定してステップ51dに進む。なお、ステップ51bで否定判定されたとき、即ち包絡値差ΔEがしきい値r以上であるときは直接ステップ51dに進む。 【0032】ステップ51dでは今回の正側包絡値Ep が前回の正側包絡値Ebpより大であるかを判定する。ステップ51dで肯定判定されたとき、即ち今回の正側包絡値Ep が前回の正側包絡値Ebpより大であり正側包絡値が増加しているときは、ステップ51eでインデックスsを "1" に設定してステップ51gに進む。 【0033】逆にステップ51dで否定判定されたとき、即ち今回の正側包絡値Ep が前回の正側包絡値Epbより小であり正側包絡値が減少しているときは、ステップ51fでインデックスsを "0" に設定してステップ51gに進む。ステップ51gではインデックスsの前回値sb が "1" かつ今回のインデックスsが "0" である、即ち正側のピークが検出されたかを検出する。 【0034】ステップ51gで肯定判定されたとき、即ち正側ピークが検出されたときは、ステップ51hで減算処理の閾値bcを次式を用いて算出した後ステップ51iに進む。 bc ← α*ΔEここでαは予め定められた所定値であり、本発明に係る音声区間検出装置を自動車車室内で使用する場合には一定値 "0.05" とすることができる。 【0035】逆にステップ51gで否定判定されたとき、即ち正側ピークが検出されなかったときは、直接ステップ51iに進む。ステップ51iでは音声信号X(i)が減算処理の閾値bc以上であるか、即ち音声信号X(i)の振幅が大であるかを判定する。ステップ51iで肯定判定されたとき、即ち音声信号X(i)の振幅が閾値bc以上であるときは、ステップ51jで音声信号X(i)から減算処理の閾値bcを減算した値を減算処理後音声信号XS (i)に設定してステップ51iに進む。 【0036】XS (i) ← X(i)−bc一方、ステップ51iで否定判定されたとき、即ち音声信号X(i)の振幅が閾値bc未満であるときはステップ51kでXS (i)を零に設定してステップ51iに進む。なお、ステップ51kの処理を省略してステップ51iで否定判定されたときは直接ステップ51iに進むようにしてもよい。 【0037】最後に、ステップ51iで前回の正側包絡値Epb、前回の負側包絡値Emb及び前回のインデックスsb を更新してこのルーチンを終了する。 Epb ← EpEmb ← Emsb ← s図7は減算処理ルーチンのステップ51aで実行される包絡値差算出ルーチンのフローチャートであって、ステップa1で今回正側包絡値Ep を次式により算出する。 【0038】 Ep = Epb・exp{−1/(τ・fs )} ここでτは時定数fs はサンプリング周波数ステップa2で今回負側包絡値Em を次式により算出する。 Em = Emb・exp{−1/(τ・fs )} ステップa3で減算処理後の音声信号XS (i)とステップa1で演算された今回正側包絡値Ep の最大値を改めて今回正側包絡値Ep に置き換える。 【0039】ステップa4で減算処理後の音声信号XS (i)とステップ71で算出された今回負側包絡値Em の最小値を改めて今回負側包絡値Em に置き換える。ステップa5で次式により包絡値差ΔEを算出して、このルーチンを終了する。 ΔE = Ep − Em図8は減算処理の効果に説明図であって、(イ)は減算処理前の音声信号を、(ロ)は減算処理後の音声信号を示す。この図から、減算処理により微小な雑音が除去されていることが理解される。 【0040】図9はピッチ検出ルーチンのステップ52で実行されるAGC処理ルーチンのフローチャートであって、減算処理後の音声信号XS (i)の振幅を一定に揃えることを目的とする。まず、ステップ52aで最大包絡値差ΔEmax の初期値を "0" に設定し、ステップ52bで図7に示す包絡値差算出ルーチンを実行して包絡値差ΔEを算出する。ただし、この場合は包絡値差算出ルーチンのステップa3及びa4のX(i)をXS (i)とすることはいうまでもない。 【0041】次にステップ52cで、XS (i−2)<XS (i−1) かつXS (i)<XS (i−1) かつX(i−1)S >0であるか、即ちΔt前にサンプリングされた減算処理後の音声信号XS (i−1)が正のピークであるかを判定する。 【0042】ステップ52cで肯定判定されたとき、即ち減算処理後の音声信号XS (i−1)が正のピークであるときは、ステップ52dで包絡値差ΔEとそれ以前に決定された最大包絡値差ΔEmax の最大値を最大包絡値差ΔEmax に設定し直して、最大包絡値差ΔEmax を更新してステップ52eに進む。なお、ステップ52cで否定判定されたとき、即ち音声信号XS (i−1)が正のピークでないときは直接ステップ52eに進む。 【0043】ステップ52eではステップ52bで算出した包絡値差ΔEが "0" であるかを判定する。そして、否定判定されたとき、即ちΔEが "0" でないときはステップ52fでゲインGをΔEmax /ΔEに設定する。次にステップ52gでゲインGが予め定められた閾値β(例えば10)以上であるかを判定し、肯定判定されたときはステップ52hでゲインGを "1" に設定してステップ52iに進む。なお、ステップ52gの判断を省略して、ステップ52fからステップ52iに直接進むようにしてもよい。 【0044】逆にステップ52gで否定判定されたとき、即ちゲインGが予め定められた閾値β未満であるときは直接ステップ52iに進む。なお、ステップ52eで肯定判定されたとき、即ちΔEが "0" である時もステップ52hでゲインGを "1" に設定してステップ52iに進む。最後にステップ52iで減算処理後の音声信号XS (i−1)にゲインGを乗算してAGC処理後の音声信号XG (i−1)を算出してこのルーチンを終了する。 【0045】 XG (i−1) ← G*XS (i−1) 図10はAGC処理の効果の説明図であって、(イ)はAGC処理前の音声信号を、(ロ)はAGC処理後の音声信号を示す。即ち、(イ)のように音声波形の振幅が急激に変化する場合には後述のピッチ周期検出において誤検出の発生を回避できない。そこで、AGC処理により音声波形をほぼ一定振幅に揃えることにより、誤検出の発生を防止することが可能となる。 【0046】図11はピッチ検出ルーチンのステップ53で実行されるピーク検出処理ルーチンの詳細フローチャートであって、ステップ53aでAGC処理後の音声信号に正ピークが検出されたかを判定する。即ち、以下の条件が満足されたときにXG (i−2)が正ピークであると判定する。 XG (i−3)<XG (i−2) かつ XG (i−1)<XG (i−2)かつ 0<XG (i−2) ステップ53aで肯定判定されたとき、即ちAGC処理後の音声信号に正ピークが検出されたときはステップ53bでピーク値XG (i−2)をPとして記憶してこのルーチンを終了する。 【0047】ステップ53aで否定判定されたとき、即ちAGC処理後の音声信号に正ピークが検出されないときは直接このルーチンを終了する。図12はピッチ検出ルーチンのステップ54で実行される極値検出・クランプ処理ルーチンの詳細フローチャートであって、ステップ324aでAGC処理後の音声信号XG に負のピークが検出されたかを判定する。即ち、以下の条件が満足されたときにXG (i−2)が負ピークであると判定する。 【0048】XG (i−3)>XG (i−2) かつ XG (i−1)>XG (i−2)かつ 0>XG (i−2) ステップ54aで肯定判定されたとき、即ちAGC処理後の音声信号に負のピークが検出されたときは、ステップ54bでAGC処理後の音声信号XG (i−2)からピーク値Pを減算して、負ピークを強調したクランプ処理後の音声信号XC (i−2)を算出してこのルーチンを終了する。 【0049】 XC (i−2) ← XG (i−2)−Pステップ54aで否定判定されたとき、即ちAGC処理後の音声信号に負のピークが検出されないときは、ステップ54cでAGC処理後の音声信号XG (i−2)をクランプ処理後の音声信号XC (i−2)としてこのルーチンを終了する。 【0050】XC (i−2) ← XG (i−2) 図13はピッチ検出ルーチンのステップ55で実行されるピッチ周期検出処理ルーチンの詳細フローチャートであって、ステップ55aにおいて検波後出力XD (i−3)を次式により算出する。 XD (i−3) ← E・exp(−Δt/τ) ここでΔtはサンプリング時間、τは予め定められた時定数である。 【0051】なお、Eについては後述する。ステップ55bでクランプ処理後の音声信号XC (i−3)の絶対値が検波後出力XD (i−3)の絶対値より大であるかを判定する。ステップ55bで否定判定されたとき、即ちXC (i−3)の絶対値がXD (i−3)の絶対値以下であるときは、ステップ55cで検波後出力XD (i−3)をEに設定してステップ55fに進む。 【0052】ステップ55bで肯定判定されたとき、即ちXC (i−3)の絶対値がXD (i−3)の絶対値より大であるときは、ステップ55dでクランプ処理後の音声信号に負のピークが存在するかを判定する。即ち、以下の条件が満足されたときにXC (i−3)が負ピークであると判定する。 XC (i−4)>XC (i−3) かつ XC (i−2)>XC (i−3)かつ 0>XC (i−3) ステップ55dで肯定判定されたとき、即ちクランプ処理後の音声信号に負のピークが検出されたときはステップ55eで負ピーク値XC (i−3)ををEに設定してステップ55fに進む。なお、ステップ55dで否定判定されたとき、即ちクランプ処理後の音声信号に負のピークが検出されないときはステップ55cに進む。 【0053】ステップ55fではEとして記憶されていた値を検波後信号XD (i−3)に設定し、ステップ55gで次式により検波後信号変化ΔXD を算出する。 ΔXD ← XD (i−3) − XD (i−4) ステップ55hで検波後信号変化ΔXD の絶対値が予め定められた閾値γ以上であるかを判定する。 【0054】ステップ55hで肯定判定されたとき、即ち検波後出力が急減したときは、ステップ55iで音声ピッチ信号XP (i−3)を "−1" に設定してこのルーチンを終了する。逆にステップ55hで否定判定されたとき、即ち検波後出力が急減していないときは、ステップ55jで音声ピッチ信号XP (i−3)を "0" に設定してこのルーチンを終了する。 【0055】図14及び15は本発明で適用されるピッチ周期検出方法の説明図(1/2)及び(2/2)である。図14の(イ)はクランプ処理後の音声信号を、また(ロ)及び(ハ)は該当部分の拡大音声信号を示し、横軸は時間を、縦軸は振幅を表す。即ち、クランプ処理後の音声信号が負ピークを起点とする包絡線の内側にあるとき(ロ)は包絡線を維持し、外側にあるとき(ハ)はクランプ処理後の音声信号を検波後出力とする。 【0056】図15の(ニ)は検波後信号を、(ホ)は音声ピッチ信号の波形図であって、時刻t2 、t4 及びt6 でピッチパルスが検出されていることを示す。図16は第1ゲート生成部26で実行される第1のゲート信号生成ルーチンのフローチャートであって、ステップ160で音声ピッチ信号XP (i−3)が "−1" であり、かつ直前に音声ピッチ信号が "−1" であった時刻を示すインデックスjが(i−3)と等しくないかを判断する。 【0057】ステップ160で否定判定されたとき、即ち音声ピッチ信号XP (i−3)が"−1" でないか、又はjが(i−3)と等しいときは直接このルーチンを終了する。ステップ160で肯定判定されたとき、即ち音声ピッチ信号XP (i−3)が"−1" であり、かつインデックスjが(i−3)と等しくないときはステップ161に進み、次式によってピッチ周波数fを算出する。 【0058】 f(i−3) = fs /{(i−3)−j} ここで、fs はサンプリング周波数で1/Δtに等しい。ステップ162でピッチ周波数fが予め定められた最高周波数500Hz以上であるかを判定し、最高周波数以上であればステップ163でピッチ周波数fを"0" に設定してステップ164に進む。なお、ステップ162で否定判定されたときは直接ステップ164に進む。 【0059】ステップ164で直前に音声ピッチ信号が "−1" であった時刻を示すインデックスjを(i−3)で更新する。次に、ステップ165で次式によりピッチ周波数を更新した後、平均ピッチ周波数fm を算出する。なお、本実施形態においては3つのピッチ周波数の算術平均により平均ピッチ周波数を算出しているが、使用するピッチ周波数の数は3つに限定されない。又平均ピッチ周波数の算出方法も算術平均に限定されず、重み付け平均、移動平均等他の方法により算出してもよい。 【0060】 f3 ← f2f2 ← f1f1 ← f(i−3) fm = (f3 +f2 +f1 )/3そして、ステップ166で平均ピッチ周波数fm が予め定められた第1の閾値Th1 (例えば200Hz)以上であるかを判定する。 【0061】ステップ166で肯定判定されたとき、即ち平均ピッチ周波数fm が第1の閾値Th1 以上であるときは、音声区間が始まったものとしてステップ167で第1ゲート信号g1 を "1" に設定してこのルーチンを終了する。逆に、ステップ166で否定判定されたとき、即ち平均ピッチ周波数fm が第1の閾値Th1 未満であるときは、ステップ168で平均ピッチ周波数fm が予め定められた第2の閾値Th2 (例えば80Hz)以上であるかを判定する。 【0062】ステップ168で肯定判定されたとき、即ち平均ピッチ周波数fm が第2の閾値Th2 以上であるときは、音声区間が継続しているものとしてステップ167に進みゲート信号g1 を "1" に維持してこのルーチンを終了する。逆に、ステップ168で否定判定されたとき、即ち平均ピッチ周波数fm が第2の閾値Th2 未満であるときは、音声区間が終了したものとしてステップ169に進みゲート信号g1 を "0" にリセットしてこのルーチンを終了する。 【0063】図17はゲート信号の生成方法の説明図であって、(イ)はピッチ周波数を、(ロ)はゲート信号g1 を示す。そして、(イ)の黒丸は各時刻におけるピッチ周波数fを表す。即ち、連続する3つの平均ピッチ周波数が第1の閾値Th1 (200Hz)以上となった時点でゲート信号g1 が "1" 、即ち開となる。 【0064】そして連続する3つの平均ピッチ周波数が第2の閾値Th2 (80Hz)以上を維持している間はゲート信号g1 は開を維持し、連続する3つの平均ピッチ周波数が第2の閾値Th2 (80Hz)未満となったときにゲート信号g1 は "0" 、即ち閉となる。図18は音声信号処理例であって、(イ)は対象の音声信号Vを前処理ルーチンで遮断周波数が300Hzである高周波通過フィルタでろ波して低周波雑音を除去した音声信号Xを示す。 【0065】(ロ)はAGC処理ルーチンによるAGC処理後の音声信号XG の波形であって、所定の振幅以上の成分の振幅がほぼ一定に成形されている。(ハ)はピッチ周期検出処理ルーチンによる検波処理後の信号XD を示し、(ニ)は第1のゲート信号生成ルーチンのステップ341で算出されたピッチ周波数fを示す。 【0066】さらに、(ホ)は第1のゲート信号生成ルーチンで生成されたゲート信号g1を示す。この図から理解できるように音声信号の存在期間とゲート信号g1 が開である期間は一致するものの、音声が途絶えた後に雑音が発生した場合には雑音に起因したピッチ周波数((ニ)の○印)が発生しゲート信号g1 の閉タイミングが遅れてしまう。 【0067】図19は第2のゲート信号生成ルーチンのフローチャートであって、第1のゲート信号生成ルーチンに対してステップ190〜193が追加され、上記課題を解決することを目的とする。即ち、ステップ190で次式により直前に音声ピッチ信号Xp (i−3)が "−1" であった時刻を示すインデックスjから(i−3)までの経過時間Dtを算出する。 【0068】Dt ← {(i−3)−j}/fs次にステップ191で経過時間Dtが予め定められた閾値時間Dtth(例えば0.025秒)以上、かつゲート信号g1 が "1" (即ちゲートが開)であるかを判定する。そしてステップ191で肯定判定されたとき、即ちゲートが開であり、かつ最後に "−1" である音声ピッチ信号が検出されてから25ミリ秒以上が経過したときはステップ193で修正ゲート信号g1 を "0" にしてゲートを閉とするとともに、インデックスjを更新し、f2 及びf3 をリセットしてこのルーチンを終了する。 【0069】逆にステップ192で否定判定されたとき、即ちゲートが閉であるか、あるいは最後に "−1" である音声ピッチ信号が検出されてから25ミリ秒が経過していないときはステップ194で図16に示す第1のゲート信号生成ルーチンを実行してこのルーチンを終了する。なお、上記実施形態において閾値時間Δtthを25ミリ秒としたのは、25ミリ秒以上は周波数40Hz以下に対応するが、人間の声のピッチ周波数が40Hz以下となることは考え難いからである。 【0070】第2のゲート信号生成ルーチンで生成された修正ゲート信号を図18の(ヘ)に示すが、雑音に起因したピッチ周波数((ニ)の○印)の影響を受けずに修正ゲートが閉となることが判る。上記の修正ゲートを使用することにより正確に音声区間を検出することが可能であるが、さらに以下の課題を解決することにより一層正確な音声区間の検出が可能となる。 【0071】1.3つのピッチ周波数の平均値が第1の閾値Th1 以上となったときにゲートを開としているので、開タイミングが遅れがちとなる。 2.単発的な大振幅の雑音と音声信号を区別できない。 3.気音と雑音を区別できない。 4.促音は振幅が小であるため、促音を検出できない。 【0072】そこで本発明においては、ゲート信号(修正ゲート信号も含む)によって以下のように制御される音声区間信号を導入することにより上記課題を解決する。即ち上記1、2及び3を解決するために、ゲート信号が第1の所定期間(例えば50ミリ秒)以上開状態を維持している場合に、現在時点から第2の所定期間(例えば100ミリ秒)遡及して音声区間信号を開とする。 【0073】上記4を解決するために、ゲート信号が閉となった時点から第3の所定期間(例えば150ミリ秒)は音声区間信号を開状態に維持する。図20は音声区間信号生成部27で実行される音声区間信号生成ルーチンのフローチャートであって、ステップ200で前回演算されたゲート信号g1bが "0" であるか、即ちゲートが閉であったかが判定される。 【0074】ステップ200で肯定判定されたとき、即ちゲートが閉であったときはステップ201で今回演算されたゲート信号g1 が "0" であるか、即ちゲートが閉を維持しているかを判定する。ステップ201で肯定判定されたとき、即ちゲートが閉を維持しているときはステップ202で閉維持処理を実行してステップ207に進む。 【0075】ステップ201で否定判定されたとき、即ちゲートが開に移行したときはステップ203で開処理を実行してステップ207に進む。一方ステップ200で否定判定されたとき、即ちゲートが開であったときはステップ204で今回演算されたゲート信号g1 が "1" であるか、即ちゲートが開を維持しているかを判定する。 【0076】ステップ204で肯定判定されたとき、即ちゲートが開を維持しているときはステップ205で開維持処理を実行してステップ207に進む。ステップ204で否定判定されたとき、即ちゲートが閉に移行したときはステップ206で閉処理を実行してステップ207に進む。ステップ207で音声区間信号を出力し、ステップ208では前回演算されたゲート信号g1bを今回演算されたゲート信号g1 で更新してこのルーチンを終了する。 【0077】図21は音声区間信号生成ルーチンのステップ202で実行される開維持処理ルーチンのフローチャートであって、ステップ2aでゲート信号g1 が閉状態を継続している時間である閉継続時間tceにサンプリング時間Δtを加算する。ステップ2bで閉継続時間tceが第3の所定期間である150ミリ秒以上となったかを判定する。 【0078】ステップ2bで肯定判定されたとき、即ちゲート信号g1 が閉となってから150ミリ秒を経過したときは、ステップ2cで処理時刻(i−3)における音声区間信号g2 を "1" に設定してこのルーチンを終了する。逆にステップ2bで否定判定されたとき、即ちゲート信号g1 が閉となってから150ミリ秒を経過していないときは、ステップ2dで処理時刻を示すインデックスが(i−3)であるときの第2のゲート信号であるg2 (i−3)を "0" に設定してこのルーチンを終了する。 【0079】図22は音声区間信号生成ルーチンのステップ203で実行される開処理ルーチンのフローチャートであって、ステップ3aで前回演算されたゲート信号g1bを "1" に設定する。ステップ3bで閉継続時間tceを "0" に復帰し、ステップ3cで処理時刻を示すインデックスが(i−3)であるときの音声区間信号であるg2 (i−3)を "1" に設定してこのルーチンを終了する。 【0080】図23は音声区間信号生成ルーチンのステップ205で実行される開維持処理ルーチンのフローチャートであって、ステップ5aでゲート信号g1 が開状態を継続している時間である開継続時間toeにサンプリング時間Δtを加算する。ステップ5bで開継続時間toeが第1の所定期間である50ミリ秒以上となったかを判定する。 【0081】ステップ5bで否定判定されたとき、即ちゲート信号g1 が開となってから50ミリ秒を経過していないときはステップ5cで処理時刻を示すインデックスが(i−3)であるときの音声区間信号であるg2 (i−3)を "0" に設定してこのルーチンを終了する。ステップ5bで否定判定されたとき、即ちゲート信号g1 が開となってから50ミリ秒を経過したときは、ステップ5dで処理時刻から第2の所定時間である100ミリ秒遡及した時刻を示すインデックスiB を次式により演算する。 【0082】iB ← (i−3)−0.1/Δtなお、右辺第2項は100ミリ秒に存在するサンプリング回数である。ステップ5eで音声信号が存在しない領域まで遡ることを防止するためにインデックスiB が零以上に設定し、ステップ5fで時刻を示すインデックスがiBであるときの音声区間信号であるg2 (iB )を "1" に設定する。 【0083】ステップ5gでインデックスiB が処理時刻を示すインデックス(i−3)となったか、即ち第2の所定期間について遡及処理が完了したかを判定する。そして否定判定されたとき、即ち遡及処理が完了していないときはステップ5hでインデックスiB をデクレメントしてステップ5fに戻る。逆に、ステップ5gで肯定判定されたとき、即ち遡及処理が完了したときはこのルーチンを終了する。 【0084】図24は音声区間信号生成ルーチンのステップ206で実行される開処理ルーチンのフローチャートであって、ステップ6aで前回演算されたゲート信号g1bを "0" に設定する。ステップ6bで開継続時間toeを "0" に復帰し、ステップ6cで処理時刻を示すインデックスが(i−3)であるときの音声区間信号であるg2 (i−3)を "0" に設定してこのルーチンを終了する。 【0085】図25は音声区間信号生成ルーチンのステップ207で実行される第2のゲート信号出力ルーチンのフローチャートであって、ステップ7aで処理時刻から第2の所定時間である100ミリ秒遡及した時刻を示すインデックスib を次式により演算する。ib ← (i−3)−0.1/Δtステップ7bで音声信号が存在しない領域まで遡ることを防止するためにインデックスib を零以上に設定し、ステップ7cでg2 (ib )を出力してこのルーチンを終了する。 【0086】図26は単語抽出部28で実行される単語抽出ルーチンのフローチャートであって、ステップ260で時刻を示すインデックスib であるときの単語信号W(ib )を次式により算出する。 W(ib ) ← X(ib )*g2 (ib ) ただしX(ib )は記憶部24に記憶されている音声信号である。 【0087】ステップ261でW(ib )を出力してこのルーチンを終了する。 【0088】 【発明の効果】第1の発明に係る音声区間検出装置によれば、音声信号を時間領域で処理して抽出された音声ピッチに基づいてゲート信号が制御され、ゲート信号により音声区間が検出されるので、簡易な構成で音声区間を検出することが可能となる。第2の発明に係る音声区間検出装置によれば、音声区間に基づいて音声信号を複数の音声区間に区分することが可能となる。 【0089】第3の発明に係る音声区間検出装置によれば、音声信号を時間領域で処理して抽出された音声ピッチに基づいて音声区間が検出されるので、ほぼ実時間で音声区間を検出することが可能となる。第4の発明に係る音声区間検出装置によれば、音声信号の振幅の変動を抑制することが可能となる。 【0090】第5の発明に係る音声区間検出装置によれば、音声信号内に存在する雑音を確実に除去することが可能となる。第6の発明に係る音声区間検出装置によれば、音声信号の振幅を略一定に揃えることにより音声ピッチを確実に抽出することが可能となる。第7の発明に係る音声区間検出装置によれば、揃振幅利得が所定閾値であるときは揃振幅利得は単位利得に再設定することにより雑音の混入を防止することが可能となる。 【0091】第8の発明に係る音声区間検出装置によれば、ゲート信号が雑音の影響により誤って開となることを防止することが可能となる。第9の発明に係る音声区間検出装置によれば、ゲート信号が雑音の影響により誤って閉となることを防止することが可能となる。第10の発明に係る音声区間検出装置によれば、音声ピッチが抽出されなくなったときに第1ゲート信号を確実に閉とすることが可能となる。 【0092】第11の発明に係る音声区間検出装置によれば、ゲート信号の開遅れを補償するとともに、雑音を気音と区別して確実に排除することが可能となる。第12の発明に係る音声区間検出装置によれば、振幅の小さい促音を確実に検出することが可能となる。第13の発明に係る音声区間検出装置によれば、音声区間が重複した場合にも誤検出を防止することが可能となる。
|
| 【出願人】 |
【識別番号】000237592 【氏名又は名称】富士通テン株式会社 【識別番号】595115592 【氏名又は名称】学校法人鶴学園
|
| 【出願日】 |
平成12年9月20日(2000.9.20) |
| 【代理人】 |
【識別番号】100077517 【弁理士】 【氏名又は名称】石田 敬 (外4名)
|
| 【公開番号】 |
特開2002−91470(P2002−91470A) |
| 【公開日】 |
平成14年3月27日(2002.3.27) |
| 【出願番号】 |
特願2000−286011(P2000−286011) |
|