雑音抑制装置、雑音抑制方法、及び、プログラム
【課題】車室内のように反響等の影響が大きく、雑音の到来方向が次々変化する環境において、目的音の音源を推定し、雑音を抑制した目的音を取得すること。
【解決手段】独立成分分析部303は、2つ以上のマイクロホンが受信した音の音源を分離する音源分離フィルタを求め、話者音(目的音)同定部306は、分離した音源のうち、目的音の音源方向を推定し、位相検出部308は、目的音の音源方向を用いてマイクロホン間の位相差を検出し、中心値更新処理部309は、検出された位相差を用いて、位相差の中心値を更新し、フィルタリング部311は、更新された中心値を用いて生成された雑音抑制フィルタを用いて、マイクロホンが受信した音の雑音を抑制し出力する。
【解決手段】独立成分分析部303は、2つ以上のマイクロホンが受信した音の音源を分離する音源分離フィルタを求め、話者音(目的音)同定部306は、分離した音源のうち、目的音の音源方向を推定し、位相検出部308は、目的音の音源方向を用いてマイクロホン間の位相差を検出し、中心値更新処理部309は、検出された位相差を用いて、位相差の中心値を更新し、フィルタリング部311は、更新された中心値を用いて生成された雑音抑制フィルタを用いて、マイクロホンが受信した音の雑音を抑制し出力する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の音源が存在する空間において、少なくとも2つ以上のマイクロホンを用いて、雑音を抑制した目的音を取得する雑音抑制装置、雑音抑制方法、及びプログラムに関する。
【背景技術】
【0002】
従来、複数の音源が存在する空間において、複数のマイクロホンを用いて、特定の方向の音源(目的音)のみを抽出する方法が広く検討されている(例えば、特許文献1参照)。特に、最小分散ビームフォーマに基づく方法は、マイクロホン間位相差から、時間ごと、周波数成分ごとに、目的音の到来方向を算出し、その位相差が所定の範囲内であれば、その時間成分、周波数成分を目的音と判定し、その位相差が所定の範囲外であれば雑音と判定する。そして、その判定結果に基づき、雑音を抑制するためのフィルタを作成し、そのフィルタを用いて雑音抑制処理を行い、目的音を取り出す。例えば、マイクロホンを2つ用いる場合、ある特定方向θから到来する音の位相差Θは、マイクロホンの配置から決まる理論値(Θ=2πfc−1dsinθ)で求めることができる。ここで、fは周波数、cは音速、dはマイク間の距離である。こうして求められた位相差の理論値を元に、受信した音が目的音か雑音かという判定を行う。
【0003】
また、例えば、非特許文献1に記載されるような、音源方向の情報を使わず、目的音と雑音とが統計的に独立であることを利用した独立成分分析に基づき、目的音を取得する方法がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−17961号公報
【非特許文献】
【0005】
【非特許文献1】戸上真人,天野明雄 "人間共生ロボットEMIEWの騒音下音声認識技術,"計測と制御,Vol.46,No.6,2007/6.
【発明の概要】
【発明が解決しようとする課題】
【0006】
音源が存在する空間が無響環境である場合は、最小分散ビームフォーマに基づく方法で求められた位相差の理論値は、実測値との差が所定の範囲内であり、目的音か雑音かの判定を行うことができるが、音源が存在する環境が、例えば、車室内のように狭い環境では、音の反響などにより位相差の実値と求められた理論値との差が大きくなる。
図14は車室内に設置したマイクロホンアレイの一例を示す図であり、図15はマイクロホンアレイのマイクロホン配置から求めた目的音の位相差の理論値と実値の一例を示す図である。図14に示す複数のマイクロホン1005からなるマイクロホンアレイ1001のマイク配置から目的音のマイク間位相差の理論値を推定し、推定した位相差の理論値との差が小さい周波数成分を目的音と推定する。図15において、位相差の理論値は点線で、実値は実線で示される。図15に示すように、実値は、理論値と異なり周波数成分ごとにかなり振幅がある。これは、車室内の音の反響等の影響である。例えば、図15に示すG点は、実際は目的音であるのにかかわらず、理論値に基づく判定だと理論値との差が大きいため、目的音ではなく、雑音として判定されてしまうこととなる。
このように、反響などの大きい車室内等の環境では、マイク配置を基に求めた位相差の理論値を基準にしての判定では目的音の音源分離の精度が低くなってしまうという問題が生じる。
【0007】
また、走行中の車などでは、走行音や外部からの雑音、車内の運転手及び同乗者の発話など時々刻々と変化する音が存在するため、例えば、車室内ハンズフリー装置などでは、さまざまな雑音方向に追従し、目的音を抽出する必要がある。しかしながら、非特許文献1に記載された独立成分分析による音源分離方法では、目的音と雑音の統計的性質を用いるため,比較的長い観測データが必要となり、雑音方向が変化した場合,目的音と雑音の独立性を評価するのに十分な観測データが得られるまで,雑音抑制処理に用いる雑音抑制フィルタを更新することができないという問題がある。
【0008】
そこで、本発明は、前記従来技術の問題点を解決するためになされたものであり、車室内のように、反響や残響等の影響によりマイクロホン配置から求めた位相差の理論値と実値との差が大きい環境において、雑音の到来方向が時々刻々と変化した場合であっても、瞬時に目的音の音源を分離し、目的音の雑音抑制信号を出力することが可能な精度の高い雑音抑制装置及び雑音抑制方法を提供することを課題とする。
【課題を解決するための手段】
【0009】
前記課題を解決するために、本発明は、音を受信する複数の音声受信手段と、前記音声受信手段によって受信された音から目的音を分離する音源分離手段と、前記音源分離手段によって分離された目的音の音源方向を推定する音源方向推定手段と、前記音源方向推定手段によって推定された音源の方向に基づき、前記複数の音声受信手段によって受信された音の位相差を検出する位相差検出手段と、前記位相差検出手段により検出された前記位相差の中心値を算出する中心値算出処理手段と、前記中心値算出処理手段で算出された中心値を用いて雑音を抑制する雑音抑制フィルタ特性を設定するフィルタ作成手段と、前記フィルタ作成手段によって特性が設定された前記雑音抑制フィルタを用いて、前記目的音の雑音抑制処理を行う雑音抑制処理手段とを有することを特徴とする。
【0010】
本発明では、複数のマイクロホンなどの音声受信手段から受信した音から目的音を分離し、その目的音の音源方向を推定し、その推定された音源方向を基に複数の音声受信手段によって受信された音の位相差の中心値を算出し、その算出された中心値を用いて雑音を抑制するフィルタを作成し、その雑音抑制フィルタを用いて複数の音源の音が混在する音から雑音を抑制した目的音を取得するものである。
ここで、中心値算出処理手段は、目的音とそれ以外の音のパワーを推定し、その時間相関を求め、求められた時間相関が所定値以上である場合に、位相差の中心値を更新する。
【0011】
また、第2の発明は、複数の音声受信手段によって音を受信する音声受信ステップと、前記音声受信手段によって受信された音から目的音を分離する音源分離ステップと、前記分離された目的音の音源方向を推定する音源方向推定ステップと、前記推定された音源方向に基づき、前記複数の音声受信手段によって受信された音の位相差を検出する位相差検出ステップと、前記検出された位相差の中心値を算出する中心値算出ステップと、前記算出された中心値を用いて雑音を抑制する雑音抑制フィルタ特性を設定するフィルタ作成ステップと、前記フィルタ作成ステップにおいて特性が設定された前記雑音抑制フィルタを用いて、前記目的音の雑音抑制処理を行う雑音抑制ステップを有することを特徴とする雑音抑制方法である。
【0012】
また、第3の発明は、コンピュータを、音を受信する複数の音声受信手段と、前記音声受信手段によって受信された音から目的音を分離する音源分離手段と、前記音源分離手段によって分離された目的音の音源方向を推定する音源方向推定手段と、前記音源方向推定手段によって推定された音源の方向に基づき、前記複数の音声受信手段によって受信された音の位相差を検出する位相差検出手段と、前記位相差検出手段により検出された前記位相差の中心値を算出する中心値算出処理手段と、前記中心値算出処理手段で算出された中心値を用いて雑音を抑制する雑音抑制フィルタ特性を設定するフィルタ作成手段と、前記フィルタ作成手段によって特性が設定された前記雑音抑制フィルタを用いて、前記目的音の雑音抑制処理を行う雑音抑制処理手段として動作させることを特徴とするプログラムである。
【発明の効果】
【0013】
本発明の雑音抑制装置、雑音抑制方法、及びプログラムによれば、複数の音源が混在する環境、車室内など特に音の反響や残響などの影響のある狭い空間において、雑音の到来方向が時々刻々と変化した場合でも雑音を抑制した目的音を取得することが可能となる。
【図面の簡単な説明】
【0014】
【図1】雑音抑制装置のハードウェア構成図である。
【図2】雑音抑制装置の適用例を示す図である。
【図3】中央演算装置の機能ブロック構成を示す図である。
【図4】雑音抑制処理の時間的な流れを示す図である。
【図5】フィルタ適応部の機能ブロック構成を示す図である。
【図6】独立成分分析部による処理の流れを示すフローチャートである。
【図7】音源定位部による音源方向の推定処理のフローチャートである。
【図8】目的音の存在範囲を示す図である。
【図9】目的音の音源方向の推定処理を説明するための図である。
【図10】中心値更新処理部によって行われる判定処理の流れを示すフローチャートである。
【図11】雑音抑制装置によって推定された目的音の推定値と実測値との比較を示す図である。
【図12】雑音抑制装置によって求められた目的音の残留雑音と従来の雑音抑制方法で求めた目的音の残留雑音との比較を示す図である。
【図13】雑音抑制装置の応用例を示す図である。
【図14】車室内に設置したマイクロホンアレイの一例を示す図である。
【図15】マイクロホン素子の配置から求めた位相差の理論値と実値との比較を示す図である。
【発明を実施するための形態】
【0015】
以下に、添付図面を参照しながら、本発明を実施するための最良の形態(以下、「実施形態」という)を詳細に説明する。なお、以下の説明および添付図面において、略同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略することにする。
図1は、本発明の実施形態に係る雑音抑制装置のハードウェア構成を示す図である。図2は雑音抑制装置の適用の一例を示す図である。なお、以下の実施形態の説明では、図2に示すような車3における車室内での雑音抑制装置の適用を例に説明する。
【0016】
図1に示すように、雑音抑制装置1は、マイクロホンアレイ21、多チャンネルA/D変換機22、中央演算装置23、揮発性メモリ24、不揮発性メモリ25から構成される。マイクロホンアレイ21は、複数のマイクロホン素子31−1、31−2、…、31−M(以下、複数個のマイクロホン素子すべてを示す場合はマイクロホン素子31とする)を配置してなる。マイクロホン素子31の配置は、図2の設置例に限らず適宜選択可能である。マイクロホンアレイ21のマイクロホン素子31は空間の音、ここでは車室内の音を受信し、マイクロホンアレイ21は受信したアナログ音を多チャンネルA/D変換機22に送る。例えばハンズフリー装置を考えると、マイクロホン素子31の取得すべき目的音は図2に示す運転席に座る運転手の発話となるが、車室内であると、マイクロホン素子31は、走行中のエンジン音や外部環境からの雑音、同乗者の発話、また、それらの音すべての反響や残響などのさまざまな音を一緒に集音することとなる。
【0017】
多チャンネルA/D変換機22は、マイクロホンアレイ21から受信したアナログ音波形をデジタル音波形に変換し、中央演算装置23に送信する。中央演算装置23は、マイクロプロセッサなどの演算処理装置であり、不揮発性メモリ24に記憶された雑音抑制処理などのプログラムを実行する。不揮発性メモリ24はROM(Read Only Memory)などの記憶装置であり、後記する各処理を行うプログラムやマイクロホン素子31の配置、その配置から求める係数や定数といった雑音抑制処理に必要な数値データ等を記憶する。揮発性メモリ25はRAM(Random Access Memory)などの記憶装置であり、中央演算装置23によって不揮発性メモリ24から読み出された処理プログラムは揮発性メモリ25に展開され、実行される。また、揮発性メモリ25はプログラム実行中のワークメモリとして使われる。
【0018】
図3は、中央演算装置23における機能ブロック構成を示す図である。図3に示すように、多チャンネルA/D変換機22は波形取り込み部301を有し、中央演算装置23は、遅延バッファ部302、独立成分分析部303、音源定位部304、ステアリングベクトル生成部305、話者音(目的音)同定部306、位相差検出部308、中心値更新処理部309、フィルタ適応部310、フィルタリング部311といった機能ブロックを有してなる。図3中の矢印は、各機能ブロック間の係わりと動作の方向性を示す。
【0019】
多チャンネルA/D変換機22の波形取り込み部301は、デジタル音圧データXm(t)を取得し、中央演算装置23に送信する。デジタル音圧データXm(t)はm番目のマイクロホン素子31のtサンプル目のデジタル音圧データを示し、各マイクロホン素子31で受信された複数の音源からの音が混在するデータである。
中央演算装置23の遅延バッファ部302は、送信されるデジタル音圧データXm(t)を所定の時間分だけ蓄積する。所定の時間とは例えば数秒であり、遅延バッファ部302は、時間分のデジタル音圧データXm(t)が蓄積すると、そのデータを独立成分分析部303に送信する。
【0020】
独立成分分析部303は、後記する独立成分分析処理を行い、複数の音源からの音が混在するデジタル音圧データXm(t)を音源ごとに分離する。音源定位部304は、後記する処理によりそれぞれの音源の存在する方向を推定する。話者音(目的音)同定部306は複数の音源から目的音である音源の方向を推定する。ステアリングベクトル生成部305は、独立成分分析処理で求められた雑音抑制処理のためのフィルタの逆行列を求める。位相差検出部308は、目的音同定部306により推定された目的音の音源と各マイクロホン素子31との位相差を検出する。中心値更新処理部309は、位相差検出部308で検出された位相差を用いて雑音抑制処理に使用する中心値ベクトルを更新する。
【0021】
フィルタ適応部310は、後記するように、波形取り込み部301から受信したデジタル音圧データXm(t)に対して、周波数ごとに雑音抑制信号処理に使用するフィルタを生成する。フィルタリング部311は、フィルタ適応部310が生成したフィルタを用いて、雑音抑制音を抽出する。
ここで、フィルタ適応部310、フィルタリング部311による処理Aは、波形取り込み部301によって取り込まれたデジタル音圧データXm(t)に対してほぼリアルタイムに雑音か目的音かを判定し、目的音を取り出す処理である。
また、遅延バッファ部302、独立成分分析部303、音源定位部304、ステアリングベクトル生成部305、話者音(目的音)同定部306、位相差検出部308、中心値更新処理部309による処理Bは、車室内の反響や残響等を考慮した目的音の抽出処理であり、遅延バッファ部302にデジタル音圧データXm(t)を保持するバッファ長分の時間毎に行われ、中心値が正しく更新された場合に、フィルタ適応部310は更新された中心値を考慮したフィルタを用いて雑音抑制処理を行う。
【0022】
図4は、雑音抑制装置1の処理の時間的な流れの一例を示す図である。
図4において、T1、T2、T3、…は、遅延バッファ部302が入力波形であるデジタル音圧データXm(t)を蓄積する時間であり、例えば数秒である。
フィルタ適応部310、フィルタリング部311による処理Aは、波形取り込み部301によって取り込まれた入力波形に対して、雑音抑制処理が開始された時間T1から、例えば数十[ms]といった時間刻みtframeごとに(T1、T2、T3はtframeより大きい)、ほぼリアルタイムにフィルタを作成し、雑音抑制処理を行う。
【0023】
図3に戻り、遅延バッファ部302、独立成分分析部303、音源定位部304、ステアリングベクトル生成部305、話者音(目的音)同定部306、位相差検出部308、中心値更新処理部309による処理Bは、遅延バッファ部302にデジタル音圧データXm(t)を保持するバッファ長分の時間毎に行われる。例えば、図4に示すように、時間T1分の入力波形が取り込まれると、独立成分分析部303は、時間T1分の入力波形に対して独立成分分析を行い、音源定位部304、ステアリングベクトル生成部305、話者音(目的音)同定部306、位相差検出部308、中心値更新処理部309は中心値を更新する。従って、処理Aにおける雑音抑制フィルタには、過去の音信号に対して処理Bによって更新された中心値が考慮され、到来方向が時々刻々と変化する雑音を抑制することが可能である。
【0024】
次に、雑音抑制装置1の雑音抑制処理について詳細に説明する。
図5は、フィルタ適応部310の機能ブロック構成を示す図である。フィルタ適応部310は、離散フーリエ変換部402、音源方向推定部403、目的音適応部404、雑音適応部405、フィルタ適応部406から構成される。離散フーリエ変換部402は、波形取り込み部301によって取り込まれた入力波形信号の直流成分をカットし、例えば数十[ms]といった時間刻みtframeの窓関数を重畳して、短時間フーリエ変換を実行し、マイクロホン素子31ごとの時間周波数領域信号Xm(f,τ)を得る。窓関数としては、ハミング窓、ハニング窓、ブラックマン窓などがある。マイクロホン素子31ごとの時間周波数領域信号Xm(f,τ)は(式1)で定義される。
【0025】
【数1】
【0026】
以下に説明する処理は、短時間フーリエ変換を実行するごと、例えば、数十[ms]といった時間刻みtframeごとに行う。
音源方向推定部403は周波数fごとに処理を行い、処理Bによって求めた中心値ベクトルC(f)を用いて目的音が含まれる周波数成分を同定する。中心値ベクトルC(f)は、目的音の方向ベクトルであり、中心値更新処理部309によって更新された位相差の中心値am(f)を用いて(式2)で表される。ここで、Tは転置行列を示す。位相差の中心値am(f)の算出方法については、後に詳細に述べる。
【0027】
【数2】
【0028】
音源方向推定部403は、(式3)で表されるコスト関数Cost(f,τ)を用いて時間周波数領域信号Xm(f,τ)が目的音であるか、雑音であるかの判定を行う。
【0029】
【数3】
【0030】
ここで、*は複素共役を示す。また、Th(f)は、Xm(f,τ)/|Xm(f,τ)|が、目的音の中心値ベクトルC(f)からどれだけ離れていれば雑音とみなすかをコントロールする閾値を示す定数であり、例えば、Xm(f,τ)が目的音である場合はコスト関数Cost(f,τ)が1より大きい値をとるように決定されるものである。尚、この定数Th(f)は、不揮発性メモリ24に予め記憶されるものである。
【0031】
こうして、音源方向推定部403は、(式3)を用いて、時間周波数領域信号Xm(f,τ)を試し、コスト関数Cost(f,τ)が1より大きい値をとれば、時間周波数領域信号Xm(f,τ)が目的音であり、コスト関数Cost(f,τ)が1以下の値であれば、時間周波数領域信号Xm(f,τ)が雑音であると判定する。
目的音適応部404は、目的音であると判定された時間周波数領域信号Xm(f,τ)を用いて、(式4)によりステアリングベクトルの推定値a(f)を更新する。
【0032】
【数4】
【0033】
また、雑音適応部405は、目的音と判断されなかった時間周波数領域信号Xm(f,τ)を用いて、(式5)を求める。
【0034】
【数5】
【0035】
ここで、(式4)におけるβ、(式5)におけるαは、更新速度を制御する定数であり、α、βが大きいほど更新速度が大きくなる。尚、α、βの定数は不揮発性メモリ24に予め記憶されるものである。
フィルタ適応部406は、(式4)、(式5)で求められた周波数fにおけるa(f)、Rn(f)を用いて、周波数fごとに雑音抑制フィルタW(f)を求める。
【0036】
【数6】
【0037】
このように、フィルタ適応部310は雑音抑制フィルタW(f)を求めて、フィルタリング部311に送信する。
フィルタリング部311は、(式7)により(式6)のフィルタW(f)を用いて時間周波数領域信号Xm(f,τ)をフィルタリング処理し、雑音抑制信号ym(f,τ)を求める。
【0038】
【数7】
【0039】
こうして求められたym(f,τ)に離散逆フーリエ変換を行うと、時間領域の雑音抑制信号を得ることができる。即ち、目的音を確実に取得することが可能となる。
次に、中心値を更新する処理Bについて説明する。
遅延バッファ部302に時刻tslengthから所定の時間Tn分の蓄積されたデジタル音圧データXm(t)は、独立成分分析部303に送信される。独立成分分析303は、デジタル音圧データXm(t)を時間刻みtframeごとに短時間フーリエ変換して時間周波数領域信号X(f,τ)を求め、周波数fごとに図6に示す処理を行う。ここで、τは、τ=tslength+i×tframe(i=1,…,length)とされ、i=lengthの時のτはτ=tslength+Tnとなる。
【0040】
図6は、独立成分分析部303によるフィルタ更新処理の手順を示すフローチャートである。フィルタWicaは、周波数f、時間τにおけるX(f,τ)を音源ごとに分離するための音源分離フィルタであり、図6に示す処理は、その時点でフィルタリング部311で使用されているフィルタWをWicaとし、更新する処理である。また、図6に示す処理はある周波数fにおける処理であり、独立成分分析部303は、図6に示す処理を全周波数に対して実行する。
【0041】
ステップS501で、独立成分分析部303は、フィルタWicaが十分収束しているかどうかを判定する。この判定は、フィルタの閾値を予め設定し、その閾値に到達したかどうかで判定してもよいし、処理回数の閾値を予め設定し、その処理回数に到達したら、Wicaは収束したものとみなして処理を終了してもよい。尚、この場合の閾値あるいは処理回数は、予め不揮発性メモリ24に記憶される。
次に、フィルタWicaが十分収束していない場合(ステップS501で「No」)、ステップS502で、独立成分分析部303はiを初期化し、バッファ長時間Tnの開始時のデータから処理を行う。また、ステップS502で、後記するRica(f)をゼロにするなどして初期化する。
【0042】
ステップS503で、独立成分分析部303は、iがlength以下であるかどうかを判定する。図4に示す処理は、遅延バッファ部302にデジタル音圧データが蓄積された時間分だけ、つまり、τがτ=tslength+Tnになるまで行われる。そこで、iがlength以下である場合、即ち、tslength≦τ≦tslength+Tnである場合(ステップS503で「Yes」)、独立成分分析部303は、時間周波数領域信号X(f,τ)に対して(式8)により現在のフィルタWicaを用いてフィルタリング処理を行い(ステップS504)、音源分離信号yica(f,τ)を得る。
【0043】
【数8】
【0044】
ステップS505で、独立成分分析部303は、ステップS504で求められたyica(f,τ)を用いて、(式9)により非線形共分散行列Rica(f)を更新する。非線形共分散行列Rica(f)の非対角項が「0」に近づくほど、分離した音源が独立になっていることを示し、対角項は各音源の大きさに相当する。
【0045】
【数9】
ここで、関数φ(x)は、音源の確率分布の微分関数に相当する関数であり、(式10)として定義する。
【0046】
【数10】
【0047】
次に、ステップS506で、独立成分分析303は、iに1を加算し、次のτ=tslength+i×tframeについて、ステップS503からステップS506の処理を繰り返し行う。こうして、共分散行列Rica(f)は少しずつ更新していく。
【0048】
ステップS503においてi>lengthとなり(ステップS503で「No」)、バッファ長の時間分Tnだけの処理が終了すると、ステップS507で、独立成分分析部303は、(式11)によりフィルタWica(f)を更新する。つまり、フィルタWica(f)は遅延バッファ部302に蓄積された1つのデータに対して1回更新されることになる。
【0049】
【数11】
【0050】
ここで、ηはフィルタWicaを更新する速度を制御するための定数であり、大きいほどフィルタWicaの収束速度は上がるが、フィルタWicaが発散する可能性も高くなる。
ステップS507が終了したら、ステップS501に戻り、Wicaの収束判定を行う。
更新されたWicaを用いて(式8)で求められた音源ごとの音源分離信号yica(f,τ)は音源定位部304に送られる。音源分離信号yica(f,τ)は、各音源の時間τ、周波数fの分離信号を要素に持つベクトルである。
【0051】
音源定位部304は、音源分離信号yica(f,τ)から音源方向を推定する。
図7は、音源定位部による音源方向の推定処理の手順を示すフローチャートである。
ステップS601で、音源定位部304は、周波数fを初期化して0[Hz]として処理を開始する。以下に述べる処理は、周波数範囲0≦f≦fmaxの周波数fについて行われる。ステップS602で、周波数fがfmax以下であるかどうかの判定を行い、周波数fがfmaxを超えた場合(ステップS602で「No」)は処理を終了する。
【0052】
ステップS602で「Yes」の場合、ステップS603で、音源定位部304は音源方向の各変数の初期化を行う。ここで、θはθmin≦θ≦θmaxの範囲内で、マイクロホンアレイ21に対する音源の方向を表す角度の変数であり、ステップS603ではθ=θminとする。図8は、目的音の音源の存在範囲を説明するための図である。図8に示すように、目的音である音源は、マイクロホンアレイ21から見てθminからθmaxの間に存在するとし、θmin≦θ≦θmaxの範囲内のθについて以下に述べる処理を行う。また、θactive(f)は求めるべき目的音の音源方向の角度を示し、ステップS603ではθactive(f)=θminとする。Vmaxは後記する関数を示し、ステップS603では、Vmax=0とする。
【0053】
図7に戻り、ステップS604において、音源定位部304はθがθmax以下であるかどうかを判定し、θ≦θmaxである場合(ステップS604で「Yes」)、ステップS605で内積Vを計算する。内積Vは(式12)で求められる。
V = |Af(θ)・Z(f)| ・・(式12)
ここで、Af(θ)は音源方向θに存在する周波数fの音がマイクロホン素子31のそれぞれに到達するまでの位相の遅延量を要素に持つベクトルであり、(式13)によって定義される。
【0054】
【数12】
【0055】
ここで、本実施の形態では、1番目のマイクロホン素子31−1を基準とし、m番目のマイクロホン素子31−mに到達する位相の遅延量Tm,f(θ)を(式14)で定義する。
【0056】
【数13】
【0057】
ここで、tm(θ)は音源方向θの音がm番目のマイクロホン素子31−mに到達するまでの時間を示す。
また、マイクロホン素子31が直線上に配置され、音源がマイクロホン素子31間の距離に比べて十分大きい場合は、位相の遅延量Tm,f(θ)は(式15)として近似することが可能となる。
【0058】
【数14】
【0059】
ここで、dmはマイクロホン素子31−1とマイクロホン素子31−m(m=2,…,M)との距離を示す。また、cは音速であり、常温でほぼ340[m/s]である。
Tm,f(θ)は、マイクロホン素子31の配置による幾何学計算よって求められる。マイクロホン素子31の配置は不揮発性メモリ24に記憶される。
また、(式12)において、Z(f)はステアリングベクトルである。i番目の音源のステアリングベクトルZ(f)は、図6に示す処理で求められたフィルタWica(f)の逆行列Wica−1(f)の第i列に相当する。
【0060】
こうして、音源定位部304は、(式12)により内積Vを求め、ステップS606では、求めた内積VとVmaxとを比較する。内積VがVmax以上である場合(ステップS606で「Yes」)、音源定位部304は、ステップS607において、Vmax=V、θactive(f)=θとする。ステップS607が終了した場合も、ステップS606で内積VがVmaxより小さい場合も、音源定位部304は、θをθ=θ+Δθとして(Δθは本処理における角度変数の刻みであり、適宜決められる)、ステップS604に戻り、ステップS604からステップS607の処理を繰り返す。ステップS607において内積Vが大きいということは、現在調べているθに関して音源方向θのステアリングベクトルAf(θ)と図5に示す独立成分分析処理で更新したフィルタWica(f)の逆行列から求めたステアリングベクトルZ(f)とが近いということである。このようにして求められた、内積Vが最も大きいθが、周波数fにおける目的音の音源方向θactiveと推定される。
【0061】
周波数fにおいてのすべてのθ(θmin≦θ≦θmax)でステップS604からステップS607の処理が行われると(ステップS604で「No」)、音源定位部304は、ステップS602に戻り、次の周波数f=f+Δf(Δfは本処理における周波数の刻みであり、適宜決められる)において、ステップS602以降の処理を行う。こうして、音源定位部304は、周波数f(0≦f≦fmax)においての音源方向θactiveを求める。
【0062】
音源定位部304によって推定された音源ごと、周波数ごとに求めた目的音の音源方向θactiveは話者音(目的音)同定部306に送られる。話者音(目的音)同定部306は、周波数成分ごとに求められたθactiveの頻度を算出し、最も頻度の多い方向を目的音の音源方向θtargetとする。図9は、話者音同定の処理を説明するための図である。話者音(目的音)同定部306は、例えば、周波数成分ごとに求められたθactiveの頻度を算出し、図9に示すヒストグラム(横軸は方向θ、縦軸は頻度を示す)を求め、最も頻度の多い方向θを音源方向の推定値θtargetとする。
【0063】
ステアリングベクトル生成部305は、独立成分分析部303が各音源ごとに求めたフィルタWica(f)から音源のステアリングベクトルを周波数ごとに抽出する。位相差検出部308は、ステアリングベクトル生成部305によって抽出された、話者音(目的音)同定部306によって目的音と判定された音源方向θtargetのステアリングベクトルys(f)からマイク間位相差σm(f)を抽出する。目的音と推定されたステアリングベクトルをys(f)とすると、1番目のマイクロホン素子31−1を基準としたときのm番目のマイクロホン素子31−mのマイク間位相差σm(t)は(式16)によって表される。
【0064】
【数15】
【0065】
位相差検出部308によって求められたマイク間位相差σm(t)((式16))を用いて、中心値更新処理部309は、中心値am(f)を(式17)に従って更新する。
【0066】
【数16】
【0067】
ここで、λは更新速度を制御するための定数であり、λが小さいほど、更新速度が早いことになる。
こうして求めた中心値am(f)を(式2)に適用し、中心値ベクトルC(f)を求める。前記の処理に従って、フィルタリング部311は中心値が更新された雑音抑制音y(f,τ)を(式7)により求め、雑音抑制音y(f,τ)を離散逆フーリエ変換することによって、時間領域の雑音抑制信号を得る。
本実施の形態では、マイクロホン素子31が音を受信し、遅延バッファ部302に取り込まれると、前記のように、フィルタWicaはバッファ長ごとに更新され、更新されたフィルタWicaを用いて音源を分離し、目的音の音源方向を推定し、中心値を更新し、その更新した中心値を用いて雑音抑制信号を求める。雑音の到来方向が次々変化した場合であっても、目的音と雑音を考慮し、時間に追随して更新されたフィルタWicaを用いて音源分離を行い、目的音の音源方向を推定し、目的音の雑音抑制信号を得ることが可能である。
【0068】
尚、本実施の形態では、雑音抑制信号を求める際に、更新した中心値を反映するかどうかを判定する。
図10は、中心値更新処理部309によって行われる判定処理の流れを示すフローチャートである。ステップS801では、話者音(目的音)と同定されるステアリングベクトルys(f)、即ち、これは独立成分分析部303で求められたWicaの逆行列のs列目の音源成分であるys(f)であるが、その音源成分を逆短時間フーリエ変換することによって求めたYs(t)を使って、目的音のパワーPs(t)を推定する。ここで、パワーPs(t)は(式18)で定義される。
【0069】
Ps(t)=Σs|Ys(t)|2・・(式18)
ここで、Σsは目的音と判定された信号に対して和を取るものとする。
同様に、ステップS802における話者音同定の結果、雑音と判定された成分のパワーPn(t)を推定する。これは、(式19)で定義される。
Pn(t)=Σn|Yn(t)|2・・(式19)
Yn(t)は独立成分分析で分離して取り出したn番目の時間領域の雑音信号とする。またΣnは雑音と判定された信号に対して和を取るものとする。
【0070】
ステップS803では、目的音パワーPs(t)と雑音パワーPn(t)の時間相関CORpを計算する。CORpは(式20)で定義される。
CORp= E[(Ps(t)-E[Ps(t)])(Pn(t)-E[Pn(t)]]・・(式20)
ここで、E[・]は期待値計算を行うオペレータとする。
【0071】
ステップS804では、計算したCORpが予め定める閾値以上であるかどうかを判定する。閾値以上である場合は、独立成分分析により目的音と雑音の分離が十分できていないと考えられる。このような場合、独立成分分析の結果から算出した目的音のマイク間位相差σm(f)((式16))は雑音の影響を大きく受けていると考えられる。従って、このような場合は抽出したマイク間位相差σm(f)を中心値ベクトルC(f)に反映せずに、処理を終了する。逆に、計算したCORpが予め定める閾値以下の場合(ステップS804で「No」)は、目的音と雑音の分離が十分行われていると考えられるため、ステップS805において前記のような中心値更新処理((式16)、(式17))を行う。尚、時間相関CORpの閾値は、不揮発性メモリ24に予め記憶される。
【0072】
以上説明したように、雑音抑制装置1では、独立成分分析による音源定位を利用し、車室内の反響、残響等を考慮した雑音抑制音を得ることが可能となる。
図11は、雑音抑制装置1により算出した目的音の推定値と実測値とを示す図である。図15に示す理論値と比べてもわかるように、雑音抑制装置1による目的音の推定値は実測値によく一致していることがわかる。従って、本雑音抑制装置1を用いれば、取得した音が目的音であるか、雑音であるかの判定は、マイクロホン素子の配置から求めた位相差の理論値を基準とした判定の場合よりも高い精度で行うことができる。
【0073】
図12は、目的音に残留した雑音信号波形の比較の一例を示す図である。図12(a)に示す信号波形は、本実施の形態である雑音抑制装置1により取得された目的音の残留雑音信号波形であり、図12(b)に示す信号波形は従来の雑音抑制方式により取得した目的音の残留雑音信号波形である。これにより、雑音抑制装置1を用いて取得した目的音の残留雑音は、従来の雑音抑制方式の残留雑音に比べて小さくなっていることがわかる。即ち、本実施の形態である雑音抑制装置1により精度の高い目的音が取得できることがわかる。
尚、以上説明した本実施の形態の(式3)で定義したコスト関数を、(式21)で定義される別のコスト関数Cost2m(f,τ)を用いてもよい。
【0074】
【数17】
【0075】
ここで、X(f,τ)のマイクロホン素子31−mとマイクロホン素子31−1との間の位相差σm(f,τ)と中心値a(f)のm番目のマイクロホン素子の成分の位相差との差をTh2m(f)で正規化したコスト関数Cost2m(f,τ)が全てのmに対して1より小さければ目的音成分と同定するような構成を取っても良い。Th2m(f)は目的話者範囲内で、Cost2m(f,τ)が1より小さい値をとるように事前に調整するものである。
また、定数Th2m(f)は、(式22)で定義するようにΔθ=|θmax-θmin|から決めてもよい。
【0076】
【数18】
尚、この定数Th2m(f)は、不揮発性メモリ24に予め記憶されるものである。
【0077】
次に、雑音抑制装置1の応用例について述べる。雑音抑制装置1の適用環境は図2に示す場合と同様である。
図13は、目的音の中心値ベクトルC(f)を非運転中に決定する雑音抑制処理の流れを示すフローチャートである。
ステップS901で、車内設置スピーカ(図示せず)から「発話してください」などといった発話促進ガイダンスが行われ、目的音の音源、例えば運転手などの発話を促す。
ステップS902で、多チャンネルA/D変換機22は、マイクロホンアレイ21が受信した音声(発話)のアナログ音波形をデジタル音波形に変換し、中央演算装置23に送信する。
【0078】
ステップS903で、独立成分分析部303は前記の独立成分分析処理を行い、複数の音源(最大個数Mの音源)からの音が混在するデジタル音波形を音源ごとに分離する。
ステップS904で、音源のインデックスを示すiと音源ごとのパワー最大値Pmaxを「0」とし、初期化する。
ステップS905で、インデックスiが音源の最大個数M以下であるかどうかを判定する(ソース判定)。
【0079】
インデックスiがM以下である場合(ステップS905で「Yes」)、ステップS906で、音源定位部304は音源iの音源定位を行う。これは、音源iの音源方向を求めることであり、ステップS903の独立成分分析で求めたフィルタWicaの逆行列のi列目が音源方向を示すベクトルとなる。
ステップS907で、音源定位部304は、求めた音源方向が予め設定する目的音方向であるかどうかを判定する。ステップS907で、求めた音源方向が予め設定する目的音方向でない場合、ステップS905のソース判定処理に戻る。
【0080】
ステップS907で、求めた音源方向が予め設定する目的音方向であった場合、ステップS908ではその音源のパワーPiを求める。ここで、パワーPiは(式18)で示されるように、独立成分分析で求めたフィルタWicaの逆行列のi列目の成分を逆フーリエ変換した成分の平均2乗で計算される。
ステップS910で、計算されたパワーPiがパワー最大値Pmaxより大きいかどうかを判定し、大きい場合(ステップS910で「Yes」)は、ステップS911でimax=i、Pmax=Piとして、パワーが最大となる音源インデックスimaxとパワー最大値Pmaxを更新する。ステップS910で「No」のときは、ステップS905のソース判定に戻る。
【0081】
こうして、音源のインデックスiがMより大きくなるまでステップS905〜ステップS911の処理を繰り返し、音源のインデックスiがMより大きくなった場合(ステップS905で「No」)、ステップS909でパワーPiが最も大きい音源imaxを目的音の音源として判定し、その方向を中心値ベクトルC(f)として設定し、処理を終了する。
図13に示す処理では、目的音方向にいくつかの音源があるとされた場合、パワーPiを計算し、パワーが最大となる音源が最も目的音の音源に近いと判定するものである。
【0082】
以上、添付図面を参照しながら、本発明に係る雑音抑制装置の好適な実施形態について説明したが、本発明はかかる例に限定されない。ここでは、車室内での雑音抑制装置の適用を例に説明したが、音の反響や残響の影響の多いその他の環境においても同様に適用可能であり、同様な効果を得ることができる。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【産業上の利用可能性】
【0083】
このように、本発明によれば、車室内やホールなどといった残響や反響の影響の大きい空間において、目的音を精度よく取得可能である。また、走行中の車など雑音の到来方向が次々変化する環境において、雑音を抑制し、目的音を取得することが可能である。
【符号の説明】
【0084】
1………雑音抑制装置
21………マイクロホンアレイ
22………多チャンネルA/D変換機
23………中央演算装置
24………不揮発性メモリ
25………揮発性メモリ
31、31−1、31−2、…、31−M………マイクロホン素子
301………波形取り込み部
302………遅延バッファ部
303………独立成分分析部
304………音源定位部
305………ステアリングベクトル生成部
306………話者音(目的音)同定部
308………位相差検出部
309………中心値更新処理部
310………フィルタ適応部
311………フィルタリング部
【技術分野】
【0001】
本発明は、複数の音源が存在する空間において、少なくとも2つ以上のマイクロホンを用いて、雑音を抑制した目的音を取得する雑音抑制装置、雑音抑制方法、及びプログラムに関する。
【背景技術】
【0002】
従来、複数の音源が存在する空間において、複数のマイクロホンを用いて、特定の方向の音源(目的音)のみを抽出する方法が広く検討されている(例えば、特許文献1参照)。特に、最小分散ビームフォーマに基づく方法は、マイクロホン間位相差から、時間ごと、周波数成分ごとに、目的音の到来方向を算出し、その位相差が所定の範囲内であれば、その時間成分、周波数成分を目的音と判定し、その位相差が所定の範囲外であれば雑音と判定する。そして、その判定結果に基づき、雑音を抑制するためのフィルタを作成し、そのフィルタを用いて雑音抑制処理を行い、目的音を取り出す。例えば、マイクロホンを2つ用いる場合、ある特定方向θから到来する音の位相差Θは、マイクロホンの配置から決まる理論値(Θ=2πfc−1dsinθ)で求めることができる。ここで、fは周波数、cは音速、dはマイク間の距離である。こうして求められた位相差の理論値を元に、受信した音が目的音か雑音かという判定を行う。
【0003】
また、例えば、非特許文献1に記載されるような、音源方向の情報を使わず、目的音と雑音とが統計的に独立であることを利用した独立成分分析に基づき、目的音を取得する方法がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−17961号公報
【非特許文献】
【0005】
【非特許文献1】戸上真人,天野明雄 "人間共生ロボットEMIEWの騒音下音声認識技術,"計測と制御,Vol.46,No.6,2007/6.
【発明の概要】
【発明が解決しようとする課題】
【0006】
音源が存在する空間が無響環境である場合は、最小分散ビームフォーマに基づく方法で求められた位相差の理論値は、実測値との差が所定の範囲内であり、目的音か雑音かの判定を行うことができるが、音源が存在する環境が、例えば、車室内のように狭い環境では、音の反響などにより位相差の実値と求められた理論値との差が大きくなる。
図14は車室内に設置したマイクロホンアレイの一例を示す図であり、図15はマイクロホンアレイのマイクロホン配置から求めた目的音の位相差の理論値と実値の一例を示す図である。図14に示す複数のマイクロホン1005からなるマイクロホンアレイ1001のマイク配置から目的音のマイク間位相差の理論値を推定し、推定した位相差の理論値との差が小さい周波数成分を目的音と推定する。図15において、位相差の理論値は点線で、実値は実線で示される。図15に示すように、実値は、理論値と異なり周波数成分ごとにかなり振幅がある。これは、車室内の音の反響等の影響である。例えば、図15に示すG点は、実際は目的音であるのにかかわらず、理論値に基づく判定だと理論値との差が大きいため、目的音ではなく、雑音として判定されてしまうこととなる。
このように、反響などの大きい車室内等の環境では、マイク配置を基に求めた位相差の理論値を基準にしての判定では目的音の音源分離の精度が低くなってしまうという問題が生じる。
【0007】
また、走行中の車などでは、走行音や外部からの雑音、車内の運転手及び同乗者の発話など時々刻々と変化する音が存在するため、例えば、車室内ハンズフリー装置などでは、さまざまな雑音方向に追従し、目的音を抽出する必要がある。しかしながら、非特許文献1に記載された独立成分分析による音源分離方法では、目的音と雑音の統計的性質を用いるため,比較的長い観測データが必要となり、雑音方向が変化した場合,目的音と雑音の独立性を評価するのに十分な観測データが得られるまで,雑音抑制処理に用いる雑音抑制フィルタを更新することができないという問題がある。
【0008】
そこで、本発明は、前記従来技術の問題点を解決するためになされたものであり、車室内のように、反響や残響等の影響によりマイクロホン配置から求めた位相差の理論値と実値との差が大きい環境において、雑音の到来方向が時々刻々と変化した場合であっても、瞬時に目的音の音源を分離し、目的音の雑音抑制信号を出力することが可能な精度の高い雑音抑制装置及び雑音抑制方法を提供することを課題とする。
【課題を解決するための手段】
【0009】
前記課題を解決するために、本発明は、音を受信する複数の音声受信手段と、前記音声受信手段によって受信された音から目的音を分離する音源分離手段と、前記音源分離手段によって分離された目的音の音源方向を推定する音源方向推定手段と、前記音源方向推定手段によって推定された音源の方向に基づき、前記複数の音声受信手段によって受信された音の位相差を検出する位相差検出手段と、前記位相差検出手段により検出された前記位相差の中心値を算出する中心値算出処理手段と、前記中心値算出処理手段で算出された中心値を用いて雑音を抑制する雑音抑制フィルタ特性を設定するフィルタ作成手段と、前記フィルタ作成手段によって特性が設定された前記雑音抑制フィルタを用いて、前記目的音の雑音抑制処理を行う雑音抑制処理手段とを有することを特徴とする。
【0010】
本発明では、複数のマイクロホンなどの音声受信手段から受信した音から目的音を分離し、その目的音の音源方向を推定し、その推定された音源方向を基に複数の音声受信手段によって受信された音の位相差の中心値を算出し、その算出された中心値を用いて雑音を抑制するフィルタを作成し、その雑音抑制フィルタを用いて複数の音源の音が混在する音から雑音を抑制した目的音を取得するものである。
ここで、中心値算出処理手段は、目的音とそれ以外の音のパワーを推定し、その時間相関を求め、求められた時間相関が所定値以上である場合に、位相差の中心値を更新する。
【0011】
また、第2の発明は、複数の音声受信手段によって音を受信する音声受信ステップと、前記音声受信手段によって受信された音から目的音を分離する音源分離ステップと、前記分離された目的音の音源方向を推定する音源方向推定ステップと、前記推定された音源方向に基づき、前記複数の音声受信手段によって受信された音の位相差を検出する位相差検出ステップと、前記検出された位相差の中心値を算出する中心値算出ステップと、前記算出された中心値を用いて雑音を抑制する雑音抑制フィルタ特性を設定するフィルタ作成ステップと、前記フィルタ作成ステップにおいて特性が設定された前記雑音抑制フィルタを用いて、前記目的音の雑音抑制処理を行う雑音抑制ステップを有することを特徴とする雑音抑制方法である。
【0012】
また、第3の発明は、コンピュータを、音を受信する複数の音声受信手段と、前記音声受信手段によって受信された音から目的音を分離する音源分離手段と、前記音源分離手段によって分離された目的音の音源方向を推定する音源方向推定手段と、前記音源方向推定手段によって推定された音源の方向に基づき、前記複数の音声受信手段によって受信された音の位相差を検出する位相差検出手段と、前記位相差検出手段により検出された前記位相差の中心値を算出する中心値算出処理手段と、前記中心値算出処理手段で算出された中心値を用いて雑音を抑制する雑音抑制フィルタ特性を設定するフィルタ作成手段と、前記フィルタ作成手段によって特性が設定された前記雑音抑制フィルタを用いて、前記目的音の雑音抑制処理を行う雑音抑制処理手段として動作させることを特徴とするプログラムである。
【発明の効果】
【0013】
本発明の雑音抑制装置、雑音抑制方法、及びプログラムによれば、複数の音源が混在する環境、車室内など特に音の反響や残響などの影響のある狭い空間において、雑音の到来方向が時々刻々と変化した場合でも雑音を抑制した目的音を取得することが可能となる。
【図面の簡単な説明】
【0014】
【図1】雑音抑制装置のハードウェア構成図である。
【図2】雑音抑制装置の適用例を示す図である。
【図3】中央演算装置の機能ブロック構成を示す図である。
【図4】雑音抑制処理の時間的な流れを示す図である。
【図5】フィルタ適応部の機能ブロック構成を示す図である。
【図6】独立成分分析部による処理の流れを示すフローチャートである。
【図7】音源定位部による音源方向の推定処理のフローチャートである。
【図8】目的音の存在範囲を示す図である。
【図9】目的音の音源方向の推定処理を説明するための図である。
【図10】中心値更新処理部によって行われる判定処理の流れを示すフローチャートである。
【図11】雑音抑制装置によって推定された目的音の推定値と実測値との比較を示す図である。
【図12】雑音抑制装置によって求められた目的音の残留雑音と従来の雑音抑制方法で求めた目的音の残留雑音との比較を示す図である。
【図13】雑音抑制装置の応用例を示す図である。
【図14】車室内に設置したマイクロホンアレイの一例を示す図である。
【図15】マイクロホン素子の配置から求めた位相差の理論値と実値との比較を示す図である。
【発明を実施するための形態】
【0015】
以下に、添付図面を参照しながら、本発明を実施するための最良の形態(以下、「実施形態」という)を詳細に説明する。なお、以下の説明および添付図面において、略同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略することにする。
図1は、本発明の実施形態に係る雑音抑制装置のハードウェア構成を示す図である。図2は雑音抑制装置の適用の一例を示す図である。なお、以下の実施形態の説明では、図2に示すような車3における車室内での雑音抑制装置の適用を例に説明する。
【0016】
図1に示すように、雑音抑制装置1は、マイクロホンアレイ21、多チャンネルA/D変換機22、中央演算装置23、揮発性メモリ24、不揮発性メモリ25から構成される。マイクロホンアレイ21は、複数のマイクロホン素子31−1、31−2、…、31−M(以下、複数個のマイクロホン素子すべてを示す場合はマイクロホン素子31とする)を配置してなる。マイクロホン素子31の配置は、図2の設置例に限らず適宜選択可能である。マイクロホンアレイ21のマイクロホン素子31は空間の音、ここでは車室内の音を受信し、マイクロホンアレイ21は受信したアナログ音を多チャンネルA/D変換機22に送る。例えばハンズフリー装置を考えると、マイクロホン素子31の取得すべき目的音は図2に示す運転席に座る運転手の発話となるが、車室内であると、マイクロホン素子31は、走行中のエンジン音や外部環境からの雑音、同乗者の発話、また、それらの音すべての反響や残響などのさまざまな音を一緒に集音することとなる。
【0017】
多チャンネルA/D変換機22は、マイクロホンアレイ21から受信したアナログ音波形をデジタル音波形に変換し、中央演算装置23に送信する。中央演算装置23は、マイクロプロセッサなどの演算処理装置であり、不揮発性メモリ24に記憶された雑音抑制処理などのプログラムを実行する。不揮発性メモリ24はROM(Read Only Memory)などの記憶装置であり、後記する各処理を行うプログラムやマイクロホン素子31の配置、その配置から求める係数や定数といった雑音抑制処理に必要な数値データ等を記憶する。揮発性メモリ25はRAM(Random Access Memory)などの記憶装置であり、中央演算装置23によって不揮発性メモリ24から読み出された処理プログラムは揮発性メモリ25に展開され、実行される。また、揮発性メモリ25はプログラム実行中のワークメモリとして使われる。
【0018】
図3は、中央演算装置23における機能ブロック構成を示す図である。図3に示すように、多チャンネルA/D変換機22は波形取り込み部301を有し、中央演算装置23は、遅延バッファ部302、独立成分分析部303、音源定位部304、ステアリングベクトル生成部305、話者音(目的音)同定部306、位相差検出部308、中心値更新処理部309、フィルタ適応部310、フィルタリング部311といった機能ブロックを有してなる。図3中の矢印は、各機能ブロック間の係わりと動作の方向性を示す。
【0019】
多チャンネルA/D変換機22の波形取り込み部301は、デジタル音圧データXm(t)を取得し、中央演算装置23に送信する。デジタル音圧データXm(t)はm番目のマイクロホン素子31のtサンプル目のデジタル音圧データを示し、各マイクロホン素子31で受信された複数の音源からの音が混在するデータである。
中央演算装置23の遅延バッファ部302は、送信されるデジタル音圧データXm(t)を所定の時間分だけ蓄積する。所定の時間とは例えば数秒であり、遅延バッファ部302は、時間分のデジタル音圧データXm(t)が蓄積すると、そのデータを独立成分分析部303に送信する。
【0020】
独立成分分析部303は、後記する独立成分分析処理を行い、複数の音源からの音が混在するデジタル音圧データXm(t)を音源ごとに分離する。音源定位部304は、後記する処理によりそれぞれの音源の存在する方向を推定する。話者音(目的音)同定部306は複数の音源から目的音である音源の方向を推定する。ステアリングベクトル生成部305は、独立成分分析処理で求められた雑音抑制処理のためのフィルタの逆行列を求める。位相差検出部308は、目的音同定部306により推定された目的音の音源と各マイクロホン素子31との位相差を検出する。中心値更新処理部309は、位相差検出部308で検出された位相差を用いて雑音抑制処理に使用する中心値ベクトルを更新する。
【0021】
フィルタ適応部310は、後記するように、波形取り込み部301から受信したデジタル音圧データXm(t)に対して、周波数ごとに雑音抑制信号処理に使用するフィルタを生成する。フィルタリング部311は、フィルタ適応部310が生成したフィルタを用いて、雑音抑制音を抽出する。
ここで、フィルタ適応部310、フィルタリング部311による処理Aは、波形取り込み部301によって取り込まれたデジタル音圧データXm(t)に対してほぼリアルタイムに雑音か目的音かを判定し、目的音を取り出す処理である。
また、遅延バッファ部302、独立成分分析部303、音源定位部304、ステアリングベクトル生成部305、話者音(目的音)同定部306、位相差検出部308、中心値更新処理部309による処理Bは、車室内の反響や残響等を考慮した目的音の抽出処理であり、遅延バッファ部302にデジタル音圧データXm(t)を保持するバッファ長分の時間毎に行われ、中心値が正しく更新された場合に、フィルタ適応部310は更新された中心値を考慮したフィルタを用いて雑音抑制処理を行う。
【0022】
図4は、雑音抑制装置1の処理の時間的な流れの一例を示す図である。
図4において、T1、T2、T3、…は、遅延バッファ部302が入力波形であるデジタル音圧データXm(t)を蓄積する時間であり、例えば数秒である。
フィルタ適応部310、フィルタリング部311による処理Aは、波形取り込み部301によって取り込まれた入力波形に対して、雑音抑制処理が開始された時間T1から、例えば数十[ms]といった時間刻みtframeごとに(T1、T2、T3はtframeより大きい)、ほぼリアルタイムにフィルタを作成し、雑音抑制処理を行う。
【0023】
図3に戻り、遅延バッファ部302、独立成分分析部303、音源定位部304、ステアリングベクトル生成部305、話者音(目的音)同定部306、位相差検出部308、中心値更新処理部309による処理Bは、遅延バッファ部302にデジタル音圧データXm(t)を保持するバッファ長分の時間毎に行われる。例えば、図4に示すように、時間T1分の入力波形が取り込まれると、独立成分分析部303は、時間T1分の入力波形に対して独立成分分析を行い、音源定位部304、ステアリングベクトル生成部305、話者音(目的音)同定部306、位相差検出部308、中心値更新処理部309は中心値を更新する。従って、処理Aにおける雑音抑制フィルタには、過去の音信号に対して処理Bによって更新された中心値が考慮され、到来方向が時々刻々と変化する雑音を抑制することが可能である。
【0024】
次に、雑音抑制装置1の雑音抑制処理について詳細に説明する。
図5は、フィルタ適応部310の機能ブロック構成を示す図である。フィルタ適応部310は、離散フーリエ変換部402、音源方向推定部403、目的音適応部404、雑音適応部405、フィルタ適応部406から構成される。離散フーリエ変換部402は、波形取り込み部301によって取り込まれた入力波形信号の直流成分をカットし、例えば数十[ms]といった時間刻みtframeの窓関数を重畳して、短時間フーリエ変換を実行し、マイクロホン素子31ごとの時間周波数領域信号Xm(f,τ)を得る。窓関数としては、ハミング窓、ハニング窓、ブラックマン窓などがある。マイクロホン素子31ごとの時間周波数領域信号Xm(f,τ)は(式1)で定義される。
【0025】
【数1】
【0026】
以下に説明する処理は、短時間フーリエ変換を実行するごと、例えば、数十[ms]といった時間刻みtframeごとに行う。
音源方向推定部403は周波数fごとに処理を行い、処理Bによって求めた中心値ベクトルC(f)を用いて目的音が含まれる周波数成分を同定する。中心値ベクトルC(f)は、目的音の方向ベクトルであり、中心値更新処理部309によって更新された位相差の中心値am(f)を用いて(式2)で表される。ここで、Tは転置行列を示す。位相差の中心値am(f)の算出方法については、後に詳細に述べる。
【0027】
【数2】
【0028】
音源方向推定部403は、(式3)で表されるコスト関数Cost(f,τ)を用いて時間周波数領域信号Xm(f,τ)が目的音であるか、雑音であるかの判定を行う。
【0029】
【数3】
【0030】
ここで、*は複素共役を示す。また、Th(f)は、Xm(f,τ)/|Xm(f,τ)|が、目的音の中心値ベクトルC(f)からどれだけ離れていれば雑音とみなすかをコントロールする閾値を示す定数であり、例えば、Xm(f,τ)が目的音である場合はコスト関数Cost(f,τ)が1より大きい値をとるように決定されるものである。尚、この定数Th(f)は、不揮発性メモリ24に予め記憶されるものである。
【0031】
こうして、音源方向推定部403は、(式3)を用いて、時間周波数領域信号Xm(f,τ)を試し、コスト関数Cost(f,τ)が1より大きい値をとれば、時間周波数領域信号Xm(f,τ)が目的音であり、コスト関数Cost(f,τ)が1以下の値であれば、時間周波数領域信号Xm(f,τ)が雑音であると判定する。
目的音適応部404は、目的音であると判定された時間周波数領域信号Xm(f,τ)を用いて、(式4)によりステアリングベクトルの推定値a(f)を更新する。
【0032】
【数4】
【0033】
また、雑音適応部405は、目的音と判断されなかった時間周波数領域信号Xm(f,τ)を用いて、(式5)を求める。
【0034】
【数5】
【0035】
ここで、(式4)におけるβ、(式5)におけるαは、更新速度を制御する定数であり、α、βが大きいほど更新速度が大きくなる。尚、α、βの定数は不揮発性メモリ24に予め記憶されるものである。
フィルタ適応部406は、(式4)、(式5)で求められた周波数fにおけるa(f)、Rn(f)を用いて、周波数fごとに雑音抑制フィルタW(f)を求める。
【0036】
【数6】
【0037】
このように、フィルタ適応部310は雑音抑制フィルタW(f)を求めて、フィルタリング部311に送信する。
フィルタリング部311は、(式7)により(式6)のフィルタW(f)を用いて時間周波数領域信号Xm(f,τ)をフィルタリング処理し、雑音抑制信号ym(f,τ)を求める。
【0038】
【数7】
【0039】
こうして求められたym(f,τ)に離散逆フーリエ変換を行うと、時間領域の雑音抑制信号を得ることができる。即ち、目的音を確実に取得することが可能となる。
次に、中心値を更新する処理Bについて説明する。
遅延バッファ部302に時刻tslengthから所定の時間Tn分の蓄積されたデジタル音圧データXm(t)は、独立成分分析部303に送信される。独立成分分析303は、デジタル音圧データXm(t)を時間刻みtframeごとに短時間フーリエ変換して時間周波数領域信号X(f,τ)を求め、周波数fごとに図6に示す処理を行う。ここで、τは、τ=tslength+i×tframe(i=1,…,length)とされ、i=lengthの時のτはτ=tslength+Tnとなる。
【0040】
図6は、独立成分分析部303によるフィルタ更新処理の手順を示すフローチャートである。フィルタWicaは、周波数f、時間τにおけるX(f,τ)を音源ごとに分離するための音源分離フィルタであり、図6に示す処理は、その時点でフィルタリング部311で使用されているフィルタWをWicaとし、更新する処理である。また、図6に示す処理はある周波数fにおける処理であり、独立成分分析部303は、図6に示す処理を全周波数に対して実行する。
【0041】
ステップS501で、独立成分分析部303は、フィルタWicaが十分収束しているかどうかを判定する。この判定は、フィルタの閾値を予め設定し、その閾値に到達したかどうかで判定してもよいし、処理回数の閾値を予め設定し、その処理回数に到達したら、Wicaは収束したものとみなして処理を終了してもよい。尚、この場合の閾値あるいは処理回数は、予め不揮発性メモリ24に記憶される。
次に、フィルタWicaが十分収束していない場合(ステップS501で「No」)、ステップS502で、独立成分分析部303はiを初期化し、バッファ長時間Tnの開始時のデータから処理を行う。また、ステップS502で、後記するRica(f)をゼロにするなどして初期化する。
【0042】
ステップS503で、独立成分分析部303は、iがlength以下であるかどうかを判定する。図4に示す処理は、遅延バッファ部302にデジタル音圧データが蓄積された時間分だけ、つまり、τがτ=tslength+Tnになるまで行われる。そこで、iがlength以下である場合、即ち、tslength≦τ≦tslength+Tnである場合(ステップS503で「Yes」)、独立成分分析部303は、時間周波数領域信号X(f,τ)に対して(式8)により現在のフィルタWicaを用いてフィルタリング処理を行い(ステップS504)、音源分離信号yica(f,τ)を得る。
【0043】
【数8】
【0044】
ステップS505で、独立成分分析部303は、ステップS504で求められたyica(f,τ)を用いて、(式9)により非線形共分散行列Rica(f)を更新する。非線形共分散行列Rica(f)の非対角項が「0」に近づくほど、分離した音源が独立になっていることを示し、対角項は各音源の大きさに相当する。
【0045】
【数9】
ここで、関数φ(x)は、音源の確率分布の微分関数に相当する関数であり、(式10)として定義する。
【0046】
【数10】
【0047】
次に、ステップS506で、独立成分分析303は、iに1を加算し、次のτ=tslength+i×tframeについて、ステップS503からステップS506の処理を繰り返し行う。こうして、共分散行列Rica(f)は少しずつ更新していく。
【0048】
ステップS503においてi>lengthとなり(ステップS503で「No」)、バッファ長の時間分Tnだけの処理が終了すると、ステップS507で、独立成分分析部303は、(式11)によりフィルタWica(f)を更新する。つまり、フィルタWica(f)は遅延バッファ部302に蓄積された1つのデータに対して1回更新されることになる。
【0049】
【数11】
【0050】
ここで、ηはフィルタWicaを更新する速度を制御するための定数であり、大きいほどフィルタWicaの収束速度は上がるが、フィルタWicaが発散する可能性も高くなる。
ステップS507が終了したら、ステップS501に戻り、Wicaの収束判定を行う。
更新されたWicaを用いて(式8)で求められた音源ごとの音源分離信号yica(f,τ)は音源定位部304に送られる。音源分離信号yica(f,τ)は、各音源の時間τ、周波数fの分離信号を要素に持つベクトルである。
【0051】
音源定位部304は、音源分離信号yica(f,τ)から音源方向を推定する。
図7は、音源定位部による音源方向の推定処理の手順を示すフローチャートである。
ステップS601で、音源定位部304は、周波数fを初期化して0[Hz]として処理を開始する。以下に述べる処理は、周波数範囲0≦f≦fmaxの周波数fについて行われる。ステップS602で、周波数fがfmax以下であるかどうかの判定を行い、周波数fがfmaxを超えた場合(ステップS602で「No」)は処理を終了する。
【0052】
ステップS602で「Yes」の場合、ステップS603で、音源定位部304は音源方向の各変数の初期化を行う。ここで、θはθmin≦θ≦θmaxの範囲内で、マイクロホンアレイ21に対する音源の方向を表す角度の変数であり、ステップS603ではθ=θminとする。図8は、目的音の音源の存在範囲を説明するための図である。図8に示すように、目的音である音源は、マイクロホンアレイ21から見てθminからθmaxの間に存在するとし、θmin≦θ≦θmaxの範囲内のθについて以下に述べる処理を行う。また、θactive(f)は求めるべき目的音の音源方向の角度を示し、ステップS603ではθactive(f)=θminとする。Vmaxは後記する関数を示し、ステップS603では、Vmax=0とする。
【0053】
図7に戻り、ステップS604において、音源定位部304はθがθmax以下であるかどうかを判定し、θ≦θmaxである場合(ステップS604で「Yes」)、ステップS605で内積Vを計算する。内積Vは(式12)で求められる。
V = |Af(θ)・Z(f)| ・・(式12)
ここで、Af(θ)は音源方向θに存在する周波数fの音がマイクロホン素子31のそれぞれに到達するまでの位相の遅延量を要素に持つベクトルであり、(式13)によって定義される。
【0054】
【数12】
【0055】
ここで、本実施の形態では、1番目のマイクロホン素子31−1を基準とし、m番目のマイクロホン素子31−mに到達する位相の遅延量Tm,f(θ)を(式14)で定義する。
【0056】
【数13】
【0057】
ここで、tm(θ)は音源方向θの音がm番目のマイクロホン素子31−mに到達するまでの時間を示す。
また、マイクロホン素子31が直線上に配置され、音源がマイクロホン素子31間の距離に比べて十分大きい場合は、位相の遅延量Tm,f(θ)は(式15)として近似することが可能となる。
【0058】
【数14】
【0059】
ここで、dmはマイクロホン素子31−1とマイクロホン素子31−m(m=2,…,M)との距離を示す。また、cは音速であり、常温でほぼ340[m/s]である。
Tm,f(θ)は、マイクロホン素子31の配置による幾何学計算よって求められる。マイクロホン素子31の配置は不揮発性メモリ24に記憶される。
また、(式12)において、Z(f)はステアリングベクトルである。i番目の音源のステアリングベクトルZ(f)は、図6に示す処理で求められたフィルタWica(f)の逆行列Wica−1(f)の第i列に相当する。
【0060】
こうして、音源定位部304は、(式12)により内積Vを求め、ステップS606では、求めた内積VとVmaxとを比較する。内積VがVmax以上である場合(ステップS606で「Yes」)、音源定位部304は、ステップS607において、Vmax=V、θactive(f)=θとする。ステップS607が終了した場合も、ステップS606で内積VがVmaxより小さい場合も、音源定位部304は、θをθ=θ+Δθとして(Δθは本処理における角度変数の刻みであり、適宜決められる)、ステップS604に戻り、ステップS604からステップS607の処理を繰り返す。ステップS607において内積Vが大きいということは、現在調べているθに関して音源方向θのステアリングベクトルAf(θ)と図5に示す独立成分分析処理で更新したフィルタWica(f)の逆行列から求めたステアリングベクトルZ(f)とが近いということである。このようにして求められた、内積Vが最も大きいθが、周波数fにおける目的音の音源方向θactiveと推定される。
【0061】
周波数fにおいてのすべてのθ(θmin≦θ≦θmax)でステップS604からステップS607の処理が行われると(ステップS604で「No」)、音源定位部304は、ステップS602に戻り、次の周波数f=f+Δf(Δfは本処理における周波数の刻みであり、適宜決められる)において、ステップS602以降の処理を行う。こうして、音源定位部304は、周波数f(0≦f≦fmax)においての音源方向θactiveを求める。
【0062】
音源定位部304によって推定された音源ごと、周波数ごとに求めた目的音の音源方向θactiveは話者音(目的音)同定部306に送られる。話者音(目的音)同定部306は、周波数成分ごとに求められたθactiveの頻度を算出し、最も頻度の多い方向を目的音の音源方向θtargetとする。図9は、話者音同定の処理を説明するための図である。話者音(目的音)同定部306は、例えば、周波数成分ごとに求められたθactiveの頻度を算出し、図9に示すヒストグラム(横軸は方向θ、縦軸は頻度を示す)を求め、最も頻度の多い方向θを音源方向の推定値θtargetとする。
【0063】
ステアリングベクトル生成部305は、独立成分分析部303が各音源ごとに求めたフィルタWica(f)から音源のステアリングベクトルを周波数ごとに抽出する。位相差検出部308は、ステアリングベクトル生成部305によって抽出された、話者音(目的音)同定部306によって目的音と判定された音源方向θtargetのステアリングベクトルys(f)からマイク間位相差σm(f)を抽出する。目的音と推定されたステアリングベクトルをys(f)とすると、1番目のマイクロホン素子31−1を基準としたときのm番目のマイクロホン素子31−mのマイク間位相差σm(t)は(式16)によって表される。
【0064】
【数15】
【0065】
位相差検出部308によって求められたマイク間位相差σm(t)((式16))を用いて、中心値更新処理部309は、中心値am(f)を(式17)に従って更新する。
【0066】
【数16】
【0067】
ここで、λは更新速度を制御するための定数であり、λが小さいほど、更新速度が早いことになる。
こうして求めた中心値am(f)を(式2)に適用し、中心値ベクトルC(f)を求める。前記の処理に従って、フィルタリング部311は中心値が更新された雑音抑制音y(f,τ)を(式7)により求め、雑音抑制音y(f,τ)を離散逆フーリエ変換することによって、時間領域の雑音抑制信号を得る。
本実施の形態では、マイクロホン素子31が音を受信し、遅延バッファ部302に取り込まれると、前記のように、フィルタWicaはバッファ長ごとに更新され、更新されたフィルタWicaを用いて音源を分離し、目的音の音源方向を推定し、中心値を更新し、その更新した中心値を用いて雑音抑制信号を求める。雑音の到来方向が次々変化した場合であっても、目的音と雑音を考慮し、時間に追随して更新されたフィルタWicaを用いて音源分離を行い、目的音の音源方向を推定し、目的音の雑音抑制信号を得ることが可能である。
【0068】
尚、本実施の形態では、雑音抑制信号を求める際に、更新した中心値を反映するかどうかを判定する。
図10は、中心値更新処理部309によって行われる判定処理の流れを示すフローチャートである。ステップS801では、話者音(目的音)と同定されるステアリングベクトルys(f)、即ち、これは独立成分分析部303で求められたWicaの逆行列のs列目の音源成分であるys(f)であるが、その音源成分を逆短時間フーリエ変換することによって求めたYs(t)を使って、目的音のパワーPs(t)を推定する。ここで、パワーPs(t)は(式18)で定義される。
【0069】
Ps(t)=Σs|Ys(t)|2・・(式18)
ここで、Σsは目的音と判定された信号に対して和を取るものとする。
同様に、ステップS802における話者音同定の結果、雑音と判定された成分のパワーPn(t)を推定する。これは、(式19)で定義される。
Pn(t)=Σn|Yn(t)|2・・(式19)
Yn(t)は独立成分分析で分離して取り出したn番目の時間領域の雑音信号とする。またΣnは雑音と判定された信号に対して和を取るものとする。
【0070】
ステップS803では、目的音パワーPs(t)と雑音パワーPn(t)の時間相関CORpを計算する。CORpは(式20)で定義される。
CORp= E[(Ps(t)-E[Ps(t)])(Pn(t)-E[Pn(t)]]・・(式20)
ここで、E[・]は期待値計算を行うオペレータとする。
【0071】
ステップS804では、計算したCORpが予め定める閾値以上であるかどうかを判定する。閾値以上である場合は、独立成分分析により目的音と雑音の分離が十分できていないと考えられる。このような場合、独立成分分析の結果から算出した目的音のマイク間位相差σm(f)((式16))は雑音の影響を大きく受けていると考えられる。従って、このような場合は抽出したマイク間位相差σm(f)を中心値ベクトルC(f)に反映せずに、処理を終了する。逆に、計算したCORpが予め定める閾値以下の場合(ステップS804で「No」)は、目的音と雑音の分離が十分行われていると考えられるため、ステップS805において前記のような中心値更新処理((式16)、(式17))を行う。尚、時間相関CORpの閾値は、不揮発性メモリ24に予め記憶される。
【0072】
以上説明したように、雑音抑制装置1では、独立成分分析による音源定位を利用し、車室内の反響、残響等を考慮した雑音抑制音を得ることが可能となる。
図11は、雑音抑制装置1により算出した目的音の推定値と実測値とを示す図である。図15に示す理論値と比べてもわかるように、雑音抑制装置1による目的音の推定値は実測値によく一致していることがわかる。従って、本雑音抑制装置1を用いれば、取得した音が目的音であるか、雑音であるかの判定は、マイクロホン素子の配置から求めた位相差の理論値を基準とした判定の場合よりも高い精度で行うことができる。
【0073】
図12は、目的音に残留した雑音信号波形の比較の一例を示す図である。図12(a)に示す信号波形は、本実施の形態である雑音抑制装置1により取得された目的音の残留雑音信号波形であり、図12(b)に示す信号波形は従来の雑音抑制方式により取得した目的音の残留雑音信号波形である。これにより、雑音抑制装置1を用いて取得した目的音の残留雑音は、従来の雑音抑制方式の残留雑音に比べて小さくなっていることがわかる。即ち、本実施の形態である雑音抑制装置1により精度の高い目的音が取得できることがわかる。
尚、以上説明した本実施の形態の(式3)で定義したコスト関数を、(式21)で定義される別のコスト関数Cost2m(f,τ)を用いてもよい。
【0074】
【数17】
【0075】
ここで、X(f,τ)のマイクロホン素子31−mとマイクロホン素子31−1との間の位相差σm(f,τ)と中心値a(f)のm番目のマイクロホン素子の成分の位相差との差をTh2m(f)で正規化したコスト関数Cost2m(f,τ)が全てのmに対して1より小さければ目的音成分と同定するような構成を取っても良い。Th2m(f)は目的話者範囲内で、Cost2m(f,τ)が1より小さい値をとるように事前に調整するものである。
また、定数Th2m(f)は、(式22)で定義するようにΔθ=|θmax-θmin|から決めてもよい。
【0076】
【数18】
尚、この定数Th2m(f)は、不揮発性メモリ24に予め記憶されるものである。
【0077】
次に、雑音抑制装置1の応用例について述べる。雑音抑制装置1の適用環境は図2に示す場合と同様である。
図13は、目的音の中心値ベクトルC(f)を非運転中に決定する雑音抑制処理の流れを示すフローチャートである。
ステップS901で、車内設置スピーカ(図示せず)から「発話してください」などといった発話促進ガイダンスが行われ、目的音の音源、例えば運転手などの発話を促す。
ステップS902で、多チャンネルA/D変換機22は、マイクロホンアレイ21が受信した音声(発話)のアナログ音波形をデジタル音波形に変換し、中央演算装置23に送信する。
【0078】
ステップS903で、独立成分分析部303は前記の独立成分分析処理を行い、複数の音源(最大個数Mの音源)からの音が混在するデジタル音波形を音源ごとに分離する。
ステップS904で、音源のインデックスを示すiと音源ごとのパワー最大値Pmaxを「0」とし、初期化する。
ステップS905で、インデックスiが音源の最大個数M以下であるかどうかを判定する(ソース判定)。
【0079】
インデックスiがM以下である場合(ステップS905で「Yes」)、ステップS906で、音源定位部304は音源iの音源定位を行う。これは、音源iの音源方向を求めることであり、ステップS903の独立成分分析で求めたフィルタWicaの逆行列のi列目が音源方向を示すベクトルとなる。
ステップS907で、音源定位部304は、求めた音源方向が予め設定する目的音方向であるかどうかを判定する。ステップS907で、求めた音源方向が予め設定する目的音方向でない場合、ステップS905のソース判定処理に戻る。
【0080】
ステップS907で、求めた音源方向が予め設定する目的音方向であった場合、ステップS908ではその音源のパワーPiを求める。ここで、パワーPiは(式18)で示されるように、独立成分分析で求めたフィルタWicaの逆行列のi列目の成分を逆フーリエ変換した成分の平均2乗で計算される。
ステップS910で、計算されたパワーPiがパワー最大値Pmaxより大きいかどうかを判定し、大きい場合(ステップS910で「Yes」)は、ステップS911でimax=i、Pmax=Piとして、パワーが最大となる音源インデックスimaxとパワー最大値Pmaxを更新する。ステップS910で「No」のときは、ステップS905のソース判定に戻る。
【0081】
こうして、音源のインデックスiがMより大きくなるまでステップS905〜ステップS911の処理を繰り返し、音源のインデックスiがMより大きくなった場合(ステップS905で「No」)、ステップS909でパワーPiが最も大きい音源imaxを目的音の音源として判定し、その方向を中心値ベクトルC(f)として設定し、処理を終了する。
図13に示す処理では、目的音方向にいくつかの音源があるとされた場合、パワーPiを計算し、パワーが最大となる音源が最も目的音の音源に近いと判定するものである。
【0082】
以上、添付図面を参照しながら、本発明に係る雑音抑制装置の好適な実施形態について説明したが、本発明はかかる例に限定されない。ここでは、車室内での雑音抑制装置の適用を例に説明したが、音の反響や残響の影響の多いその他の環境においても同様に適用可能であり、同様な効果を得ることができる。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【産業上の利用可能性】
【0083】
このように、本発明によれば、車室内やホールなどといった残響や反響の影響の大きい空間において、目的音を精度よく取得可能である。また、走行中の車など雑音の到来方向が次々変化する環境において、雑音を抑制し、目的音を取得することが可能である。
【符号の説明】
【0084】
1………雑音抑制装置
21………マイクロホンアレイ
22………多チャンネルA/D変換機
23………中央演算装置
24………不揮発性メモリ
25………揮発性メモリ
31、31−1、31−2、…、31−M………マイクロホン素子
301………波形取り込み部
302………遅延バッファ部
303………独立成分分析部
304………音源定位部
305………ステアリングベクトル生成部
306………話者音(目的音)同定部
308………位相差検出部
309………中心値更新処理部
310………フィルタ適応部
311………フィルタリング部
【特許請求の範囲】
【請求項1】
音を受信する複数の音声受信手段と、
前記音声受信手段によって受信された音から目的音を分離する音源分離手段と、
前記音源分離手段によって分離された目的音の音源方向を推定する音源方向推定手段と、
前記音源方向推定手段によって推定された音源の方向に基づき、前記複数の音声受信手段によって受信された音の位相差を検出する位相差検出手段と、
前記位相差検出手段により検出された前記位相差の中心値を算出する中心値算出処理手段と、
前記中心値算出処理手段で算出された中心値を用いて雑音を抑制する雑音抑制フィルタ特性を設定するフィルタ作成手段と、
前記フィルタ作成手段によって特性が設定された前記雑音抑制フィルタを用いて、前記目的音の雑音抑制処理を行う雑音抑制処理手段と、
を有することを特徴とする雑音抑制装置。
【請求項2】
前記音源分離手段は、
前記受信された音を周波数変換することにより得られる周波数領域信号を生成する周波数領域信号生成手段と、
前記雑音抑制フィルタと前記周波数領域信号とから算出される音源分離信号を生成する音源分離信号生成手段と、
前記音源分離信号を用いて共分散行列を生成する共分散行列生成手段と、
を有し、
前記生成された共分散行列を用いて前記目的音の音源を分離することを特徴とする請求項1に記載の雑音抑制装置。
【請求項3】
前記音源方向推定手段は、
前記音源分離手段によって分離された前記目的音のステアリングベクトルを算出するステアリングベクトル算出手段と、
前記位相差検出手段によって取得された前記位相差を遅延量の大きさとして持つ前記音声受信手段間のベクトルを算出する受信手段間ベクトル算出手段と、
前記ステアリングベクトルと前記音声受信手段間のベクトルとの内積を算出する内積算出手段と、
を有し、
前記内積を大きさに持つ目的音の中心値ベクトルを用いて、前記目的音の音源方向を推定することを特徴とする請求項1に記載の雑音抑制装置。
【請求項4】
前記中心値算出処理手段は、
前記音源のパワーを推定するパワー推定手段と、
前記パワー推定手段により、目的音とそれ以外の音のパワーを推定し、その時間相関を求める時間相関検出手段と、
前記時間相関検出手段によって求められた前記時間相関が所定値以上である場合に、前記位相差の中心値を更新する中心値更新手段と、
を有することを特徴とする請求項1に記載の雑音抑制装置。
【請求項5】
複数の音声受信手段によって音を受信する音声受信ステップと、
前記音声受信手段によって受信された音から目的音を分離する音源分離ステップと、
前記分離された目的音の音源方向を推定する音源方向推定ステップと、
前記推定された音源方向に基づき、前記複数の音声受信手段によって受信された音の位相差を検出する位相差検出ステップと、
前記検出された位相差の中心値を算出する中心値算出ステップと、
前記算出された中心値を用いて雑音を抑制する雑音抑制フィルタ特性を設定するフィルタ作成ステップと、
前記フィルタ作成ステップにおいて特性が設定された前記雑音抑制フィルタを用いて、前記目的音の雑音抑制処理を行う雑音抑制ステップと、
を有することを特徴とする雑音抑制方法。
【請求項6】
前記音源分離ステップは、
前記受信された音を周波数変換することにより得られる周波数領域信号を生成する周波数領域信号生成ステップと、
前記雑音抑制フィルタと前記周波数領域信号とから算出される音源分離信号を生成する音源分離信号生成ステップと、
前記音源分離信号を用いて共分散行列を生成する共分散行列生成ステップと、
を有し、
前記生成された共分散行列を用いて前記目的音の音源を分離することを特徴とする請求項5に記載の雑音抑制方法。
【請求項7】
前記音源方向推定ステップは、
前記音源分離ステップによって分離された前記目的音のステアリングベクトルを算出するステアリングベクトル算出ステップと、
前記位相差検出ステップによって取得された前記位相差を遅延量の大きさとして持つ前記音声受信手段間のベクトルを算出する受信手段間ベクトル算出ステップと、
前記ステアリングベクトルと前記音声受信手段間のベクトルとの内積を算出する内積算出ステップと、
を有し、
前記内積を大きさに持つ目的音の中心値ベクトルを用いて、前記目的音の音源方向を推定することを特徴とする請求項5に記載の雑音抑制方法。
【請求項8】
前記中心値算出ステップは、
前記音源のパワーを推定するパワー推定ステップと、
前記パワー推定ステップにおいて目的音とそれ以外の音のパワーを推定し、その時間相関を求める時間相関検出ステップと、
前記時間相関検出ステップにおいて求められた前記時間相関が所定値以上である場合に、前記位相差の中心値を更新する中心値更新ステップと、
を有することを特徴とする請求項5に記載の雑音抑制方法。
【請求項9】
コンピュータを、
音を受信する複数の音声受信手段と、
前記音声受信手段によって受信された音から目的音を分離する音源分離手段と、
前記音源分離手段によって分離された目的音の音源方向を推定する音源方向推定手段と、
前記音源方向推定手段によって推定された音源の方向に基づき、前記複数の音声受信手段によって受信された音の位相差を検出する位相差検出手段と、
前記位相差検出手段により検出された前記位相差の中心値を算出する中心値算出処理手段と、
前記中心値算出処理手段で算出された中心値を用いて雑音を抑制する雑音抑制フィルタ特性を設定するフィルタ作成手段と、
前記フィルタ作成手段によって特性が設定された前記雑音抑制フィルタを用いて、前記目的音の雑音抑制処理を行う雑音抑制処理手段と、
して動作させることを特徴とするプログラム。
【請求項10】
前記音源分離手段は、
前記受信された音を周波数変換することにより得られる周波数領域信号を生成する周波数領域信号生成手段と、
前記雑音抑制フィルタと前記周波数領域信号とから算出される音源分離信号を生成する音源分離信号生成手段と、
前記音源分離信号を用いて共分散行列を生成する共分散行列生成手段と、
を有し、
前記生成された共分散行列を用いて前記目的音の音源を分離することを特徴とする請求項9に記載のプログラム。
【請求項11】
前記音源方向推定手段は、
前記音源分離手段によって分離された前記目的音のステアリングベクトルを算出するステアリングベクトル算出手段と、
前記位相差検出手段によって取得された前記位相差を遅延量の大きさとして持つ前記音声受信手段間のベクトルを算出する受信手段間ベクトル算出手段と、
前記ステアリングベクトルと前記音声受信手段間のベクトルとの内積を算出する内積算出手段と、
を有し、
前記内積を大きさに持つ目的音の中心値ベクトルを用いて、前記目的音の音源方向を推定することを特徴とする請求項9に記載のプログラム。
【請求項12】
前記中心値算出処理手段は、
前記音源のパワーを推定するパワー推定手段と、
前記パワー推定手段により、目的音とそれ以外の音のパワーを推定し、その時間相関を求める時間相関検出手段と、
前記時間相関検出手段によって求められた前記時間相関が所定値以上である場合に、前記位相差の中心値を更新する中心値更新手段と、
を有することを特徴とする請求項9に記載のプログラム。
【請求項1】
音を受信する複数の音声受信手段と、
前記音声受信手段によって受信された音から目的音を分離する音源分離手段と、
前記音源分離手段によって分離された目的音の音源方向を推定する音源方向推定手段と、
前記音源方向推定手段によって推定された音源の方向に基づき、前記複数の音声受信手段によって受信された音の位相差を検出する位相差検出手段と、
前記位相差検出手段により検出された前記位相差の中心値を算出する中心値算出処理手段と、
前記中心値算出処理手段で算出された中心値を用いて雑音を抑制する雑音抑制フィルタ特性を設定するフィルタ作成手段と、
前記フィルタ作成手段によって特性が設定された前記雑音抑制フィルタを用いて、前記目的音の雑音抑制処理を行う雑音抑制処理手段と、
を有することを特徴とする雑音抑制装置。
【請求項2】
前記音源分離手段は、
前記受信された音を周波数変換することにより得られる周波数領域信号を生成する周波数領域信号生成手段と、
前記雑音抑制フィルタと前記周波数領域信号とから算出される音源分離信号を生成する音源分離信号生成手段と、
前記音源分離信号を用いて共分散行列を生成する共分散行列生成手段と、
を有し、
前記生成された共分散行列を用いて前記目的音の音源を分離することを特徴とする請求項1に記載の雑音抑制装置。
【請求項3】
前記音源方向推定手段は、
前記音源分離手段によって分離された前記目的音のステアリングベクトルを算出するステアリングベクトル算出手段と、
前記位相差検出手段によって取得された前記位相差を遅延量の大きさとして持つ前記音声受信手段間のベクトルを算出する受信手段間ベクトル算出手段と、
前記ステアリングベクトルと前記音声受信手段間のベクトルとの内積を算出する内積算出手段と、
を有し、
前記内積を大きさに持つ目的音の中心値ベクトルを用いて、前記目的音の音源方向を推定することを特徴とする請求項1に記載の雑音抑制装置。
【請求項4】
前記中心値算出処理手段は、
前記音源のパワーを推定するパワー推定手段と、
前記パワー推定手段により、目的音とそれ以外の音のパワーを推定し、その時間相関を求める時間相関検出手段と、
前記時間相関検出手段によって求められた前記時間相関が所定値以上である場合に、前記位相差の中心値を更新する中心値更新手段と、
を有することを特徴とする請求項1に記載の雑音抑制装置。
【請求項5】
複数の音声受信手段によって音を受信する音声受信ステップと、
前記音声受信手段によって受信された音から目的音を分離する音源分離ステップと、
前記分離された目的音の音源方向を推定する音源方向推定ステップと、
前記推定された音源方向に基づき、前記複数の音声受信手段によって受信された音の位相差を検出する位相差検出ステップと、
前記検出された位相差の中心値を算出する中心値算出ステップと、
前記算出された中心値を用いて雑音を抑制する雑音抑制フィルタ特性を設定するフィルタ作成ステップと、
前記フィルタ作成ステップにおいて特性が設定された前記雑音抑制フィルタを用いて、前記目的音の雑音抑制処理を行う雑音抑制ステップと、
を有することを特徴とする雑音抑制方法。
【請求項6】
前記音源分離ステップは、
前記受信された音を周波数変換することにより得られる周波数領域信号を生成する周波数領域信号生成ステップと、
前記雑音抑制フィルタと前記周波数領域信号とから算出される音源分離信号を生成する音源分離信号生成ステップと、
前記音源分離信号を用いて共分散行列を生成する共分散行列生成ステップと、
を有し、
前記生成された共分散行列を用いて前記目的音の音源を分離することを特徴とする請求項5に記載の雑音抑制方法。
【請求項7】
前記音源方向推定ステップは、
前記音源分離ステップによって分離された前記目的音のステアリングベクトルを算出するステアリングベクトル算出ステップと、
前記位相差検出ステップによって取得された前記位相差を遅延量の大きさとして持つ前記音声受信手段間のベクトルを算出する受信手段間ベクトル算出ステップと、
前記ステアリングベクトルと前記音声受信手段間のベクトルとの内積を算出する内積算出ステップと、
を有し、
前記内積を大きさに持つ目的音の中心値ベクトルを用いて、前記目的音の音源方向を推定することを特徴とする請求項5に記載の雑音抑制方法。
【請求項8】
前記中心値算出ステップは、
前記音源のパワーを推定するパワー推定ステップと、
前記パワー推定ステップにおいて目的音とそれ以外の音のパワーを推定し、その時間相関を求める時間相関検出ステップと、
前記時間相関検出ステップにおいて求められた前記時間相関が所定値以上である場合に、前記位相差の中心値を更新する中心値更新ステップと、
を有することを特徴とする請求項5に記載の雑音抑制方法。
【請求項9】
コンピュータを、
音を受信する複数の音声受信手段と、
前記音声受信手段によって受信された音から目的音を分離する音源分離手段と、
前記音源分離手段によって分離された目的音の音源方向を推定する音源方向推定手段と、
前記音源方向推定手段によって推定された音源の方向に基づき、前記複数の音声受信手段によって受信された音の位相差を検出する位相差検出手段と、
前記位相差検出手段により検出された前記位相差の中心値を算出する中心値算出処理手段と、
前記中心値算出処理手段で算出された中心値を用いて雑音を抑制する雑音抑制フィルタ特性を設定するフィルタ作成手段と、
前記フィルタ作成手段によって特性が設定された前記雑音抑制フィルタを用いて、前記目的音の雑音抑制処理を行う雑音抑制処理手段と、
して動作させることを特徴とするプログラム。
【請求項10】
前記音源分離手段は、
前記受信された音を周波数変換することにより得られる周波数領域信号を生成する周波数領域信号生成手段と、
前記雑音抑制フィルタと前記周波数領域信号とから算出される音源分離信号を生成する音源分離信号生成手段と、
前記音源分離信号を用いて共分散行列を生成する共分散行列生成手段と、
を有し、
前記生成された共分散行列を用いて前記目的音の音源を分離することを特徴とする請求項9に記載のプログラム。
【請求項11】
前記音源方向推定手段は、
前記音源分離手段によって分離された前記目的音のステアリングベクトルを算出するステアリングベクトル算出手段と、
前記位相差検出手段によって取得された前記位相差を遅延量の大きさとして持つ前記音声受信手段間のベクトルを算出する受信手段間ベクトル算出手段と、
前記ステアリングベクトルと前記音声受信手段間のベクトルとの内積を算出する内積算出手段と、
を有し、
前記内積を大きさに持つ目的音の中心値ベクトルを用いて、前記目的音の音源方向を推定することを特徴とする請求項9に記載のプログラム。
【請求項12】
前記中心値算出処理手段は、
前記音源のパワーを推定するパワー推定手段と、
前記パワー推定手段により、目的音とそれ以外の音のパワーを推定し、その時間相関を求める時間相関検出手段と、
前記時間相関検出手段によって求められた前記時間相関が所定値以上である場合に、前記位相差の中心値を更新する中心値更新手段と、
を有することを特徴とする請求項9に記載のプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2010−176105(P2010−176105A)
【公開日】平成22年8月12日(2010.8.12)
【国際特許分類】
【出願番号】特願2009−22039(P2009−22039)
【出願日】平成21年2月2日(2009.2.2)
【出願人】(591132335)株式会社ザナヴィ・インフォマティクス (745)
【Fターム(参考)】
【公開日】平成22年8月12日(2010.8.12)
【国際特許分類】
【出願日】平成21年2月2日(2009.2.2)
【出願人】(591132335)株式会社ザナヴィ・インフォマティクス (745)
【Fターム(参考)】
[ Back to top ]