(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0016】
<第1の実施形態>
以下、図面を参照して本発明の第1の実施形態について説明する。
図1に第1の実施形態の雑音検出装置1のブロック図を示す。第1の実施形態の雑音検出装置1は、信号入力部10、フレーム信号生成部11、参照信号生成部12、入力信号記憶部13、相関値算出部14、周期性雑音判定部15、相関値算出範囲生成部16、相関値算出範囲記憶部17、モード切り替え部18、を有する。
【0017】
信号入力部10、入力信号記憶部13、相関値算出範囲記憶部17はハードウェアにより構成される。また、フレーム信号生成部11、参照信号生成部12、相関値算出部14、周期性雑音判定部15、相関値算出範囲生成部16、モード切り替え部18は、CPUやDSP等の演算部により実行される雑音検出プログラムにより実現される。この場合、雑音検出プログラムは、様々なコンピュータ可読媒体に格納され、コンピュータに供給される。プログラムにより実現される各構成要素はハードウェアによって構成されてもよい。
【0018】
信号入力部10は、図示しない音声取得手段から入力信号を取得し、入力信号をデジタル信号に変換する。入力信号が既にデジタル値である場合、信号入力部10は、デジタル信号に変換するための構成を備えなくてもよい。信号入力部10は、デジタル信号に変換した入力信号を、フレーム信号生成部11へ供給する。
【0019】
フレーム信号生成部11は、信号入力部10より供給された入力信号から所定長nのフレーム信号x(t)を生成する。所定長nは第1の時間長である。ここで所定長nは、第1の実施形態の雑音検出装置1が1秒未満の周期の周期性雑音を検出できるようにするため、0.03秒〜0.04秒程度であることが望ましい。フレーム信号生成部11は、生成したフレーム信号x(t)を、入力信号記憶部13、及び相関値算出部14へ供給する。
【0020】
参照信号生成部12は、後述する入力信号記憶部13が記憶している参照信号y(t)と、最新よりひとつ前のフレームのフレーム信号x(t)とに基づいて、新たな参照信号y(t)を生成し、入力信号記憶部13が記憶している参照信号y(t)を更新する。参照信号y(t)は所定長Nの信号である。所定長Nは第2の時間長である。参照信号生成部12は、所定長N(第2の時間長)を、所定長n(第1の時間長)と後述する周期性雑音の周期Tとの和よりも長い時間に設定する。すなわち、所定長Nは、n+T<Nを満たす値である。また、所定長Nは、さらにN<2Tを満たす値、例えば周期性雑音の周期Tの1.5周期分(1.5T)程度の長さであることが望ましい。
【0021】
参照信号生成部12が、フレーム信号x(t)の生成毎に参照信号y(t)を更新するのは、フレーム信号x(t)と時系列的に近接する入力信号を参照信号y(t)とするためである。後述する相関値算出部14は、時系列的に近接するフレーム信号x(t)と参照信号y(t)とを用いて後述する相関値A(m)を算出することで、精度よく周期性雑音を検出できる。
【0022】
図2(a)は、入力信号における更新前の参照信号y(t)の位置(時間的位置)を周波数領域で模式的に示す図である。
図2(b)は、入力信号における追加するフレーム信号x(t)の位置を周波数領域で模式的に示す図である。
図2(c)は、入力信号における更新後の参照信号y(t)の位置を周波数領域で模式的に示す図である。
図2(a)〜(c)のいずれにおいても、実線部分が入力信号における各信号の位置を示している。
【0023】
参照信号生成部12は、まず、
図2(a)に示す更新前の参照信号y(t)の最も過去の時刻t1から時刻t2までの信号を破棄する。時刻t1から時刻t2までの時間は、
図2(b)に示す時刻t3から時刻t4までのフレーム信号x(t)の時間と同じである。そして、参照信号生成部12は、参照信号y(t)の最も新しい時刻t3に、フレーム信号x(t)を追加する。参照信号生成部12は、
図3(c)に示す時刻t2から時刻t4までの区間の信号を、新たな参照信号y(t)として生成し、入力信号記憶部13へ供給する。
【0024】
すなわち、参照信号生成部12は、入力信号記憶部13に記憶されている参照信号y(t)が、最新よりひとつ前のフレームから所定の時間長だけ過去のフレームまでの入力信号となるように、逐次更新する。
【0025】
入力信号記憶部13は、フレーム信号生成部11より供給されたフレーム信号x(t)と、参照信号生成部12より供給された参照信号y(t)とを記憶する。
【0026】
相関値算出部14は、後述する相関値算出範囲記憶部17より供給された相関値算出範囲において、フレーム信号生成部11より供給されたフレーム信号x(t)と、入力信号記憶部13が記憶している参照信号y(t)との相関値A(m)を算出する。相関値算出部14は、算出した相関値A(m)を周期性雑音判定部15へ供給する。
【0027】
相関値算出部14は、式(1)を用いて相関値A(m)を算出する。mはフレーム信号x(t)と参照信号y(t)との位相シフト量である。参照信号y(t)の全範囲で相関値A(m)を算出する場合、位相シフト量mの範囲は、0≦m<N−nである。
A(m)=Σ[t=0,n−1]x(t)・y(t+m)…(1)
【0028】
図3(a)は、参照信号y(t)の一例を、周波数領域で模式的に示す図である。
図3(a)に示す参照信号y(t)の一例は、周期的に周波数が変化する周期性雑音の1.5周期分の信号である。
【0029】
図3(b)は、フレーム信号x(t)の一例を周波数領域で模式的に示す図である。
図3(b)に示すフレーム信号x(t)の一例は、
図3(a)と同一の周期性雑音信号の1フレーム分の信号である。
【0030】
相関値算出部14は、演算量を減らすため、参照信号y(t)の全範囲0≦m<N−nではなく、相関値算出範囲記憶部17が記憶している相関値算出範囲において、相関値A(m)を算出する。
【0031】
具体的には、相関値算出部14は、後述する周期性雑音判定部15が算出する周期性雑音の周期Tと、0≦u≦Tを満たす値uとを用いて、T−u≦m<T+uの範囲において相関値A(m)を算出する。
【0032】
ここで、相関値算出範囲において相関値A(m)を算出する理由について説明する。入力信号記憶部13は、最新よりひとつ前のフレームから、所定の時間長だけ過去のフレームまでの入力信号を参照信号y(t)として記憶している。また、周期性雑音は一定の周期Tの信号である。
【0033】
この場合、フレーム信号x(t)は、入力信号において時系列的に参照信号y(t)の直後に位置する信号である。すなわち、参照信号y(t)とフレーム信号x(t)との相対的な位置関係は一定となり、その結果、相関値A(m)のピーク位置も一定となる。
【0034】
従って、相関値算出部14は、相関値算出範囲T−u<m<T+uにおいて相関値A(m)を算出すれば、相関値A(m)のピーク位置が求められる。
【0035】
図3(c)は、相関値算出部14が、0≦m<N−nの範囲で算出した相関値A(m)を模式的に示す図である。相関値のピークは、相関値算出範囲に現れることがわかる。相関値算出部14が、T−u<m<T+uの範囲で相関値A(m)を算出した場合、相関値A(m)は、両矢印で示す相関値算出範囲のみとなる。
【0036】
周期性雑音判定部15は、相関値算出部14より供給された相関値A(m)に基づいて、フレーム信号x(t)が周期性雑音を含むか否か判定する。具体的には、周期性雑音判定部15は、相関値A(m)が所定の閾値よりも高い相関値を含む場合はフレーム信号x(t)が周期性雑音を含むと判定し、A(m)が所定の閾値よりも高い相関値を含まない場合はフレーム信号x(t)が周期性雑音を含まないと判定する。
【0037】
ここで、周期性雑音判定部15は、所定の閾値Thを次のように算出する。まず、周期性雑音判定部15は、
図3(b)に示すフレーム信号x(t)の二乗和Bを、式(2)を用いて算出する。
B=Σ[t=0,n−1]x(t)・x(t)…(2)
【0038】
そして、周期性雑音判定部15は、式(3)を用いて、閾値Thを算出する。αは、0.5≦α<1.0を満たす所定値である。なお、αは、0.6〜0.7の範囲の値とすることが望ましい。
Th=α・B…(3)
【0039】
図4は、相関値A(m)と閾値Thとの比較を模式的に示す図である。相関値A(m)のピーク位置が閾値Thを超えているため、
図4の場合におけるフレーム信号x(t)は、周期性雑音を含むことを示している。
【0040】
N<2Tの場合、相関値A(m)がピーク位置を示す位相シフト量mが、周期性雑音の周期Tである。2T≦Nの場合、相関値A(m)のピーク位置のうち、最も小さい位相シフト量mのピーク位置が、周期性雑音の周期Tである。
【0041】
周期性雑音判定部15は、フレーム信号x(t)が周期性雑音を含むか否かの判定結果をモード切り替え部18へ供給する。また、周期性雑音判定部15は、フレーム信号x(t)が周期性雑音を含む場合、周期性雑音の周期Tを相関値算出範囲生成部16へ供給する。
【0042】
相関値算出範囲生成部16は、周期性雑音判定部15より供給された周期性雑音の周期Tと後述する値uとに基づいて、相関値算出範囲T−u<m<T+uを生成する。相関値算出範囲生成部16は、生成した相関値算出範囲を、相関値算出範囲記憶部17へ供給する。
【0043】
具体的には、相関値算出範囲生成部16は、周期性雑音の周期Tに基づいて、式(4)を用いて値uを算出する。βは、0<β<0.5を満たす所定値である。
u=β・T…(4)
【0044】
相関値算出範囲生成部16は、複数の過去のフレームにおける周期性雑音の周期Tの平均値や中央値等の代表値と、現在のフレームにおける周期性雑音の周期Tとの差分値に基づいて値uを算出してもよい。
【0045】
相関値算出範囲生成部16は、複数の過去のフレームにおける周期性雑音の周期Tの分散や標準偏差等のばらつきを示す値に基づいて値uを算出してもよい。
【0046】
相関値算出範囲生成部16は、周期性雑音判定部15が周期性雑音を検出しなくなった場合、相関値算出範囲を拡張する処理をしてもよい。この場合、拡張した相関値算出範囲は、参照信号y(t)の全範囲である0≦m<N−nと、直前の相関値算出範囲であるT−u<m<T+uとの間の範囲であれば、いずれの範囲でも構わない。
【0047】
相関値算出範囲生成部16は、値uとは異なる値vを用いて、T−v<m<T+uまたはT−u<m<T+vとして相関値算出範囲を生成してもよい。なお、値u及び値vは、所定の定数値を用いてもよい。すなわち、相関値算出範囲生成部16は、位相シフト量mの範囲を、周期性雑音の周期Tを含む範囲に設定する。
【0048】
相関値算出範囲記憶部17は、相関値算出範囲生成部16より供給された相関値算出範囲を記憶する。相関値算出範囲記憶部17は、過去のフレームにおける周期性雑音の周期Tや、過去のフレームにおける相関値算出範囲を記憶しておいてもよい。
【0049】
相関値算出範囲記憶部17は、過去の複数のフレームにおいて周期性雑音が検出され、かつ周期性雑音の周期Tが一定または所定の範囲内に存在している場合にのみ相関値算出範囲を生成してもよい。
【0050】
モード切り替え部18は、周期性雑音判定部15より供給された、フレーム信号x(t)が周期性雑音を含むか否かの判定結果に基づいて、周期性雑音を除去するモード(以下周期性雑音除去モードと記載する)か、周期性雑音を除去しないモード(以下その他のモードと記載する)かを切り替える。そして、モード切り替え部18は、現在のモードを、図示しない周期性雑音除去部へ供給する。
【0051】
モード切り替え部18は、周期性雑音判定部15から、フレーム信号x(t)が周期性雑音を含む結果が所定時間継続して供給された場合に、周期性雑音除去モードへと切り替える制御をすることが望ましい。
【0052】
モード切り替え部18は、次の処理によってモードを切り替えてもよい。モード切り替え部18は、周期性雑音判定部15から、フレーム信号x(t)が周期性雑音を含む結果が供給された場合、初期値を0とするカウント値に1を加算し、フレーム信号x(t)が周期性雑音を含まない結果が供給された場合、カウント値から1を減算する。モード切り替え部18は、カウント値が第1の閾値に到達した場合、その他のモードから周期性雑音除去モードへと切り替え、カウント値が第2の閾値に到達した場合、周期性雑音除去モードからその他のモードへ切り替える。カウント値の最大値は第1の閾値であり、最小値は第2の閾値である。
【0053】
次に、
図5に示すフローチャートを用いて第1の実施形態の雑音検出装置1の動作を改めて説明する。以下に説明する動作は、本発明の雑音検出方法や雑音検出プログラムで実行される手順についても同様である。
【0054】
信号入力部10は、ステップS1にて、入力信号をデジタル信号に変換し、フレーム信号生成部11へ供給する。
【0055】
フレーム信号生成部11は、ステップS2にて、信号入力部10より供給された入力信号から所定長のフレーム信号x(t)を生成する。
【0056】
参照信号生成部12は、ステップS3にて、参照信号y(t)を生成する。
【0057】
相関値算出部14は、ステップS4にて、入力信号記憶部13が記憶している参照信号y(t)が所定長以上か否か判定する。参照信号y(t)が所定長以上の場合(ステップS4:YES)、相関値算出部14は、処理をステップS5に移行させる。参照信号y(t)が所定長未満の場合(ステップS4:NO)、相関値算出部14は、処理をステップS9に移行させる。
【0058】
相関値算出部14は、ステップS5にて、フレーム信号x(t)と参照信号y(t)とに基づいて相関値A(m)を算出する。
【0059】
周期性雑音判定部15は、ステップS6にて、相関値A(m)を所定の閾値と比較し、フレーム信号x(t)が周期性雑音を含むか否か判定する。
【0060】
フレーム信号x(t)が周期性雑音を含む場合(ステップS6:YES)、周期性雑音判定部15は、処理をステップS7へ移行させる。フレーム信号x(t)が周期性雑音を含まない場合(ステップS6:NO)、周期性雑音判定部15は、処理をステップS9へ移行させる。
【0061】
周期性雑音判定部15は、ステップS7にて、周期性雑音の周期Tを算出する。
【0062】
相関値算出範囲生成部16は、ステップS8にて、周期性雑音の周期Tに基づいて、相関値算出範囲を生成する。
【0063】
モード切り替え部18は、ステップS9にて、フレーム信号x(t)が周期性雑音を含むか否かに基づいて、周期性雑音除去モードか、その他のモードかを切り替える。
【0064】
以上の処理により、第1の実施形態の雑音検出装置1は、少ない演算量で、周期性雑音を精度よく検出できる。
【0065】
<第2の実施形態>
第1の実施形態は、入力信号に含まれる周期性雑音の周期に基づいて、逐次、相関値算出範囲を生成する構成である。一方、第2の実施形態は、予め複数の周期性雑音について、相関値算出範囲を生成しておく構成である。
【0066】
以下、図面を参照して本発明の第2の実施形態について説明する。
図6に第2の実施形態の雑音検出装置2のブロック図を示す。第2の実施形態の雑音検出装置2は、信号入力部10、フレーム信号生成部11、参照信号生成部12、入力信号記憶部13、相関値算出部14、周期性雑音判定部15、相関値算出範囲生成部16、相関値算出範囲記憶部17、モード切り替え部18、報知部20、入力部21を有する。
【0067】
信号入力部10、フレーム信号生成部11、参照信号生成部12、入力信号記憶部13、モード切り替え部18、の各ブロックについては、第1の実施形態と共通するため、説明を省略する。
【0068】
相関値算出部14は、後述する相関値算出範囲生成部16が予め生成した複数の相関値算出範囲において、フレーム信号x(t)と参照信号y(t)との相関値A(m)を算出し、周期性雑音判定部15へ供給する。
【0069】
図7は、周期をT1、T2、T3とする3種類の周期性雑音の相関値算出範囲において算出した相関値A(m)を模式的に示す図である。3種類の周期性雑音の相関値算出範囲は、それぞれ、T1−u1≦m<T1+u1、T2−u2≦m<T2+u2、T3−u3≦m<T3+u3である。
図7においては、各区間は排他的な区間としているが、重複する区間としてもよい。
【0070】
周期性雑音判定部15は、相関値算出部14より供給された相関値A(m)に基づいて、フレーム信号x(t)が周期性雑音を含むか否かを判定し、判定結果をモード切り替え部18へ供給する。周期性雑音判定部15は、判定結果に加えて、フレーム信号x(t)が含む周期性雑音の種類をモード切り替え部18へ供給してもよい。この場合、モード切り替え部18は、入力信号に含まれる周期性雑音の種類を図示しない周期性雑音除去部へ供給してもよい。
【0071】
図8は、複数の区間において相関値A(m)が所定の閾値Thよりも高い相関値を含む場合の相関値A(m)と閾値Thとの比較を模式的に示す図である。
図8においては、周期T1と周期T3とで相関値A(m)は閾値Thを超えている。この場合、周期性雑音判定部15は、相関値A(m)が最大値を示す区間の周期性雑音である周期T1の周期性雑音が存在していると判定する。
【0072】
第2の実施形態の相関値算出範囲生成部16は、後述する入力部21から供給される情報により雑音検出処理を実施する場合には、相関値算出範囲を生成しない。相関値算出範囲生成部16は、後述する入力部21から供給される情報により相関値算出範囲生成処理を実施する場合には、予め相関値算出範囲を生成し、相関値算出範囲記憶部17へ供給する。また、相関値算出範囲生成部16は、相関値算出範囲の生成が完了した旨の情報を報知部20へ供給する。
【0073】
相関値算出範囲記憶部17は、複数の周期性雑音毎に相関値算出範囲を記憶する。
【0074】
報知部20は、相関値算出範囲の生成が完了したことを、表示画面に表示する文字や画像(視覚的情報)、スピーカで発生させる音(聴覚的情報)、または所定の振動体による振動(触覚的情報)等でユーザへ通知する。
【0075】
入力部21には、図示していない操作部をユーザが操作することによって、雑音検出装置2に相関値算出範囲生成処理と雑音検出処理とのいずれか一方の処理を実行させる指示信号が入力される。入力部21は、入力された指示信号を相関値算出範囲生成部16へ供給する。
【0076】
以上の処理により、第2の実施形態の雑音検出装置2は、複数の周期性雑音の相関値算出範囲を予め生成し、少ない演算量で周期性雑音を精度よく検出できる。