(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0004】
音源からの音に音源とは異なる位置で発せられたノイズが混入すると、音源の方向を誤検出することがある。ノイズが混入しても精度よく音源の方向を検出することができる音源方向検出装置、音源方向検出方法、音源方向検出プログラムが求められる。
【0005】
本発明はこのような要望に対応するため、音源から発せられた音にノイズが混入しても精度よく音源の方向を検出することができる音源方向検出装置、音源方向検出方法、音源方向検出プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明は、音源から発せられ、第1のマイクロホンに入力された音を音響電気変換した第1の音響波形信号
に基づく包絡線信号に含まれるパルス状
の波形を抽出することによって生成された第1のエッジ信号と、前記音源から発せられ、第2のマイクロホンに入力された音を音響電気変換した第2の音響波形信号
に基づく包絡線信号に含まれるパルス状
の波形を抽出することによって生成された第2のエッジ信号とが入力され、前記第1及び第2のエッジ信号の重心の時間差を示す重心時間差データを生成する重心時間差検出部と、前記重心時間差データに基づいて前記音源の方向を判定する方向判定部とを備え、前記重心時間差検出部は、前記第1のエッジ信号における第1の重心を算出する第1の重心算出部と、前記第2のエッジ信号における第2の重心を算出する第2の重心算出部と、前記第1及び第2の重心に基づいて、前記重心時間差データを生成する重心時間差データ生成部とを有し、前記第1及び第2の重心算出部はそれぞれ複数のアドレスを有するメモリを有し、前記第1及び第2の重心算出部は、それぞれ、所定のデータ抽出期間内に、前記第1及び第2のエッジ信号を前記メモリのアドレスの一方の端部から他方の端部へと順次シフトさせつつ重心を算出し、前記重心時間差データ生成部は、前記データ抽出期間内に生成された重心の時間差の正側の最大値または負側の絶対値の最大値を前記重心時間差データとすることを特徴とする音源方向検出装置を提供する。
【0007】
上記の音源方向検出装置において、前記データ抽出期間内に生成された重心の時間差の正側の最大値を検出する正最大値検出部と、前記データ抽出期間内に生成された重心の時間差の負側の絶対値の最大値を検出する負最大値検出部と、前記データ抽出期間内の
、前記重心の時間差が正である期間と負である期間との割合に基づいて、前記正側の最大値と前記負側の絶対値の最大値との加重平均値を算出する際に使用する重み付けの値である混合率を生成す
る混合率生成部と、
前記正側の最大値と前記負側の絶対値の最大値との加重平均値である混合値を前記混合率を使用して算出し、前記混合値
を前記重心時間差データとする混合部とを有することが好ましい。
【0008】
本発明は、音源から発せられ、第1のマイクロホンに入力された音を音響電気変換した第1の音響波形信号
に基づく包絡線信号に含まれるパルス状
の波形を抽出することによって生成された第1のエッジ信号と、前記音源から発せられ、第2のマイクロホンに入力された音を音響電気変換した第2の音響波形信号
に基づく包絡線信号に含まれるパルス状
の波形を抽出することによって生成された第2のエッジ信号とが入力され、前記第1及び第2のエッジ信号の重心の時間差を示す重心時間差データを生成する重心時間差検出部と、前記第1及び第2のエッジ信号が入力され、前記第1及び第2のエッジ信号が所定のレベル以上立ち上がった時点を基準として、前記第1及び第2のエッジ信号の時間差を示すエッジ時間差データを生成するエッジ時間差検出部と、前記重心時間差データと前記エッジ時間差データとに基づいて前記音源の方向を判定する方向判定部とを備え、前記方向判定部は、前記エッジ時間差データと前記重心時間差データとの差分の大きさに応じて、前記エッジ時間差データと前記重心時間差データとの加重平均値を算出する際に使用する重み付けの値である混合率を生成する混合率生成部と、前記エッジ時間差データと前記重心時間差データとの加重平均値である混合値を前記混合率を使用して算出する混合部と、前記混合値に基づいて前記音源の方向を判定する時間差角度変換部とを有することを特徴とする音源方向検出装置を提供する。
【0009】
本発明は、音源から発せられ、第1のマイクロホンに入力された音を音響電気変換した第1の音響波形信号
に基づく包絡線信号に含まれるパルス状
の波形を抽出することによって生成された第1のエッジ信号と、前記音源から発せられ、第2のマイクロホンに入力された音を音響電気変換した第2の音響波形信号
に基づく包絡線信号に含まれるパルス状
の波形を抽出することによって生成された第2のエッジ信号とのそれぞれの重心の時間差を示す重心時間差データを生成する重心時間差検出工程と、前記重心時間差データに基づいて前記音源の方向を判定するする方向判定工程とを含み、前記重心時間差検出工程は、前記第1のエッジ信号における第1の重心を算出する第1の重心算出工程と、前記第2のエッジ信号における第2の重心を算出する第2の重心算出工程と、前記第1及び第2の重心に基づいて、前記重心時間差データを生成する重心時間差データ生成工程とを含み、前記第1及び第2の重心算出工程は、それぞれ、所定のデータ抽出期間内に、前記第1及び第2のエッジ信号を、複数のアドレスを有するメモリのアドレスの一方の端部から他方の端部へと順次シフトさせつつ重心を算出し、前記重心時間差データ生成工程は、前記データ抽出期間内に生成された重心の時間差の正側の最大値または負側の絶対値の最大値を前記重心時間差データとすることを特徴とする音源方向検出方法を提供する。
【0010】
本発明は、音源から発せられ、第1のマイクロホンに入力された音を音響電気変換した第1の音響波形信号
に基づく包絡線信号に含まれるパルス状
の波形を抽出することによって生成された第1のエッジ信号と、前記音源から発せられ、第2のマイクロホンに入力された音を音響電気変換した第2の音響波形信号
に基づく包絡線信号に含まれるパルス状
の波形を抽出することによって生成された第2のエッジ信号とのそれぞれの重心の時間差を示す重心時間差データを生成する重心時間差検出工程と、前記第1及び第2のエッジ信号に基づき、前記第1及び第2のエッジ信号が所定のレベル以上立ち上がった時点を基準として、前記第1及び第2のエッジ信号の時間差を示すエッジ時間差データを生成するエッジ時間差検出工程と、前記重心時間差データと前記エッジ時間差データとに基づいて前記音源の方向を判定する方向判定工程とを含み、前記方向判定工程は、前記エッジ時間差データと前記重心時間差データとの差分の大きさに応じて、前記エッジ時間差データと前記重心時間差データとの加重平均値を算出する際に使用する重み付けの値である混合率を生成する混合率生成工程と、前記エッジ時間差データと前記重心時間差データとの加重平均値である混合値を前記混合率を使用して算出する混合工程と、前記混合値に基づいて前記音源の方向を判定する時間差角度変換工程ととを含むことを特徴とする音源方向検出方法を提供する。
【0011】
本発明は、コンピュータに、音源から発せられ、第1のマイクロホンに入力された音を音響電気変換した第1の音響波形信号
に基づく包絡線信号に含まれるパルス状
の波形を抽出することによって生成された第1のエッジ信号と、前記音源から発せられ、第2のマイクロホンに入力された音を音響電気変換した第2の音響波形信号
に基づく包絡線信号に含まれるパルス状
の波形を抽出することによって生成された第2のエッジ信号とのそれぞれの重心の時間差を示す重心時間差データを生成させる重心時間差検出ステップと、前記重心時間差データに基づいて前記音源の方向を判定させる方向判定ステップとを実行させ、前記重心時間差検出ステップとして、前記第1のエッジ信号における第1の重心を算出する第1の重心算出ステップと、前記第2のエッジ信号における第2の重心を算出する第2の重心算出ステップと、前記第1及び第2の重心に基づいて、前記重心時間差データを生成する重心時間差データ生成ステップとを実行させ、前記第1及び第2の重心算出ステップとして、それぞれ、所定のデータ抽出期間内に、前記第1及び第2のエッジ信号を、複数のアドレスを有するメモリのアドレスの一方の端部から他方の端部へと順次シフトさせつつ重心を算出させるステップを実行させ、前記重心時間差データ生成ステップとして、前記データ抽出期間内に生成された重心の時間差の正側の最大値または負側の絶対値の最大値を前記重心時間差データとするステップを実行させることを特徴とする音源方向検出プログラムを提供する。
【0012】
本発明は、コンピュータに、音源から発せられ、第1のマイクロホンに入力された音を音響電気変換した第1の音響波形信号
に基づく包絡線信号に含まれるパルス状
の波形を抽出することによって生成された第1のエッジ信号と、前記音源から発せられ、第2のマイクロホンに入力された音を音響電気変換した第2の音響波形信号
に基づく包絡線信号に含まれるパルス状
の波形を抽出することによって生成された第2のエッジ信号とのそれぞれの重心の時間差を示す重心時間差データを生成する重心時間差検出ステップと、前記第1及び第2のエッジ信号に基づき、前記第1及び第2のエッジ信号が所定のレベル以上立ち上がった時点を基準として、前記第1及び第2のエッジ信号の時間差を示すエッジ時間差データを生成するエッジ時間差検出ステップと、前記重心時間差データと前記エッジ時間差データとに基づいて前記音源の方向を判定する方向判定ステップとを実行させ、前記方向判定ステップとして、前記エッジ時間差データと前記重心時間差データとの差分の大きさに応じて、前記エッジ時間差データと前記重心時間差データとの加重平均値を算出する際に使用する重み付けの値である混合率を生成する混合率生成ステップと、前記エッジ時間差データと前記重心時間差データとの加重平均値である混合値を前記混合率を使用して算出する混合ステップと、前記混合値に基づいて前記音源の方向を判定する時間差角度変換ステップとを実行させることを特徴とする音源方向検出プログラムを提供する。
【発明の効果】
【0014】
本発明の音源方向検出装置、音源方向検出方法、音源方向検出プログラムによれば、音源から発せられた音にノイズが混入しても精度よく音源の方向を検出することができる。
【発明を実施するための形態】
【0016】
以下、音源方向検出装置、音源方向検出方法、音源方向検出プログラムの各実施形態について、添付図面を参照して説明する。
【0017】
<第1実施形態>
第1実施形態の音源方向検出装置、音源方向検出方法、音源方向検出プログラムについて説明する。
図1において、マイクロホン11,21には、ここでは図示していない音源より発せられた音が入力される。一例として、マイクロホン11,21は、
図2に示すように、液晶パネル等の薄型ディスプレイを用いた画像表示装置10の上面に互いに離間させて配置されている。マイクロホン11,21には、画像表示装置10の前方に位置する音源SSからの音が入力される。
【0018】
音源SSから発せられる音としては、拍手音のように急激に立ち上がって収束するエッジ成分を含む音であることが望ましい。
【0019】
マイクロホン11,21は、入力された音を音響電気変換して
図3に示すような波形のアナログ信号(音響波形信号)を出力する。
図3に示す波形は単なる一例である。マイクロホン11,21が
図2に示すように配置されている場合、音源SSからの音はマイクロホン11に先に到達し、マイクロホン21に後に到達する。従って、マイクロホン11が出力するアナログ信号とマイクロホン21が出力するアナログ信号とは若干の時間ずれることになる。
【0020】
なお、マイクロホン11,21に入力される音は厳密には完全に同じ波形ではないため出力するアナログ信号も同じ波形にはならないが、ここでは簡略化のため、同じ波形のアナログ信号を出力するとして説明する。
【0021】
A/D変換器12,22は、マイクロホン11,21より出力されたアナログ信号をデジタル信号に変換する。マイクロホン11,21がA/D変換器を内蔵し、マイクロホン11,21がデジタル信号を出力する場合には、A/D変換器12,22は省略可能である。
【0022】
絶対値化部13,23は、A/D変換器12,22より出力されたデジタル信号を絶対値化する。絶対値化部13,23からは、絶対値化信号S13,S23が出力される。
図4の実線は、絶対値化信号S13またはS23を示している。絶対値化信号S13と絶対値化信号S23とは若干の時間ずれている。
図4では、簡略化のため信号波形の包絡線のみを示している。
【0023】
エッジ抽出部14,24は、絶対値化部13,23より出力された絶対値化信号S13,S23に基づいて波形のエッジを抽出する。エッジ抽出部14,24は、まず、絶対値化信号S13,S23を低域通過フィルタに通すことによって高域成分を低減させて遅延させることによって、
図4に破線で示すような、波形信号S14,S24を生成する。
【0024】
エッジ抽出部14,24は、絶対値化信号S13,S23から波形信号S14,S24を減算し、負の成分を零で制限することによって、
図5に示すようなエッジ信号S14e,S24eを生成する。エッジ信号S14e,S24eは急峻に立ち上がって急峻に立ち下がるパルス状の信号波形である。エッジ信号S14e,S24eは、包絡線信号として抽出される。
【0025】
図5に示すエッジ信号S14e,S24eは、時間が離れた2箇所にそれぞれエッジ信号S14e,S24eが発生しているが、パルス状の音が1回のみ発生した場合には、エッジ信号S14e,S24eは1箇所のみの波形となる。
【0026】
以上のようにしてエッジ抽出部14が生成したエッジ信号S14eと、エッジ抽出部24が生成したエッジ信号S24eは、重心時間差検出部30に入力される。以上説明したエッジ抽出部14,24によるエッジ抽出方法は、エッジを的確に抽出することができる好ましい方法であるが、他のエッジ抽出方法を採用してもよい。
【0027】
図6を用いて、重心時間差検出部30の具体的構成及び動作について説明する。
図6に示す重心時間差検出部30は、重心時間差検出方式によってエッジ信号S14eとエッジ信号S24eとの時間差を検出する。
【0028】
図6において、重心算出部301には、エッジ抽出部14より出力されたエッジ信号S14eが入力され、重心算出部302には、エッジ抽出部24より出力されたエッジ信号S24eが入力される。重心算出部301,302は、アドレス1〜NのNサンプルのデータを保持するメモリ(シフトレジスタ)を有する。アドレス1〜Nに保持されるデータは時間の進行に伴って順次シフトされる。
【0029】
図7は、重心算出部301,302にエッジ信号S14e,S24eが入力され始めた初期の時点の状態を示している。
図7において、(a)は重心算出部301に入力されるエッジ信号S14e、(b)は重心算出部302に入力されるエッジ信号S24eを示している。エッジ信号S14e,S24eは実際には離散的なデータである。
【0030】
エッジ信号S14e,S24eの各サンプル点のデータは、時間の進行に伴って、1サンプルごとにメモリの一方の端部であるアドレス1から他方の端部であるアドレスNへと順次シフトされていく。即ち、エッジ信号S14e,S24eは、時間の進行に伴って、1サンプルごとに
図7の左方向へと移っていく。それぞれのタイミングにおいて、アドレス1〜Nのメモリには、エッジ信号S14e,S24eの各サンプル点のデータが保持される。
【0031】
図7では、時刻ta,tb間のデータ抽出期間内にエッジ信号S14e,S24eの一部が入っている状態であるので、アドレス1〜Nのメモリにおけるアドレス1側の一部のアドレスにエッジ信号S14e,S24eの一部のサンプル点のデータが保持され、残りのアドレスのデータは零である。時刻tbは現在時刻である。
【0032】
データ抽出期間内のエッジ信号S14e,S24eの波形をS(i)、iを1〜Nとすると、データ抽出期間内のエッジ信号S14e,S24eの時間軸上の重心tgは次の式(1)で算出することができる。
【0034】
図7の(a)に示すエッジ信号S14eの重心tgをtg1、
図7の(b)に示すエッジ信号S24eの重心tgをtg2とすると、重心tg1,tg2は
図7の(a),(b)に太い実線の矢印で示す位置(時刻)となる。重心tg1,tg2は
図6の時間差分算出部303に入力される。時間差分算出部303は、次の式(2)によって重心tg1,tg2の時間差である重心差分値tdを算出する。重心差分値tdは、エッジ信号S14e,S24eの重心の時間差を示す重心時間差データの1つである。
【0036】
データ抽出期間内にエッジ信号S14e,S24eが入っていない状態では、式(1)の分母と分子が零になる。この場合には、重心算出部301,302及び時間差分算出部303は、重心tg(tg1,tg2)及び重心差分値tdを不定または零として破綻しないように処理する。
【0037】
図8は、
図7の状態から時間が進行して、データ抽出期間内にエッジ信号S14e,S24eの全てが入った状態を示している。エッジ信号S14e,S24eの全てのサンプル点のデータは、重心算出部301,302が有するメモリのアドレス1〜Nの中間のアドレス部分に保持される。
図8の(a),(b)では、重心tg1,tg2は図示の位置(時刻)となり、重心差分値tdは図示の時間間隔となる。
【0038】
図9は、
図8の状態からさらに時間が進行して、エッジ信号S14e,S24eの一部がデータ抽出期間から外れた状態を示している。アドレス1〜NのメモリにおけるアドレスN側の一部のアドレスにエッジ信号S14e,S24eの一部のサンプル点のデータが保持される。
図9の(a),(b)では、重心tg1,tg2は図示の位置(時刻)となり、重心差分値tdは図示の時間間隔となる。
【0039】
図10を用いて、エッジ信号S14e,S24eにノイズが混入した場合について説明する。
図10の(a)はノイズNZが混入したエッジ信号S14e’を示しており、
図10の(b)はノイズNZが混入したエッジ信号S24e’を示している。
図10は、
図8と同様に、データ抽出期間内にエッジ信号S14e’,S24e’の全てが入った状態を示している。エッジ信号S14e’,S24e’のピーク値はそれぞれL1,L2である。
【0040】
このようにノイズNZが混入したエッジ信号S14e’,S24e’の場合には、式(1)によって算出する重心tg1,tg2の位置は、ノイズNZが混入していない場合と比較して若干ずれることになる。重心差分値tdも、ノイズNZが混入していない場合と比較して若干長くなったり短くなったりする可能性がある。ノイズNZの影響は、方向を検出したい所望の音源とノイズNZの方向とが異なるほど、またノイズNZの音量が大きくなるほ
ど大きくなる。しかしながら、エッジ信号の最も大きな振幅が所望の音源によるものであればノイズNZの有無による重心tg1,tg2の位置及び重心差分値tdへの影響は誤差程度であり、音源の方向の検出に破綻を来たすような問題となることはない。
【0041】
図11は、
図7〜
図9で説明したようにエッジ信号S14e,S24eのサンプル点のデータがメモリのアドレス1側からアドレスN側へと順次のシフトされたときの重心差分値tdの変化の様子を示している。重心差分値tdは、データ抽出期間の中央付近において平坦となり、この平坦な部分が重心差分値tdの最大値となる。
図8より分かるように、データ抽出期間内にエッジ信号S14e,S24eの全てが入った状態は所定の時間にわたって発生する。従って、重心差分値tdは部分的に平坦な特性となる。
【0042】
図11に示すTdhは、
図6のデータ保持部309でのデータ保持タイミングを示している。データ保持部309におけるデータ保持については後述する。
【0043】
図7〜
図9では、
図2で説明したように、音源SSからの音がマイクロホン11に先に到達する場合を示しているので、エッジ信号S14eが先に発生し、エッジ信号S24eが後に発生して、
図11に示すように、重心差分値tdは正側に発生する。音源SSからの音がマイクロホン21に先に到達する場合には、重心差分値tdは負側に発生することになる。
【0044】
図12の(a),(b)は、重心差分値tdが正側に発生する場合と負側に発生する場合のシミュレーション波形の例を示している。
図12の(a)に示すシミュレーション波形では、平坦な部分は波形の右側に偏った位置にある。
図12の(b)に示すシミュレーション波形では、平坦な部分は波形の中央付近にあるものの、平坦な部分の時間は短い。エッジ信号S14e,S24eの波形によって平坦な部分の位置は異なり、平坦な部分の時間長も異なることになる。
【0045】
図6において、重心差分値tdは、正最大値検出部304と、負最大値検出部305と、極性占有率算出部306に入力される。正最大値検出部304は、
図12の(a)のような場合の重心差分値tdの正側の最大値Maxpを検出する。負最大値検出部305、
図12の(b)のような場合の重心差分値tdの負側の絶対値の最大値Maxmを検出する。正最大値検出部304及び負最大値検出部305は、重心差分値tdの値を抽出するタイミングを一義的に決めて値を抽出するのではなく、正側の最大値または負側の絶対値の最大値を検出することによって、重心差分値tdを正確に得ることができる。
【0046】
特定のタイミングで重心差分値tdを抽出する方法は、タイミングを特定するのが難しく、ノイズでタイミングがずれる場合があることから、正確な値を得る手法としては正の最大値または負の絶対値の最大値を用いる方法が合理的である。
【0047】
重心差分値tdの正側の最大値または負側の絶対値の最大値は、エッジ信号S14e,S24eの重心の時間差を示す重心時間差データの1つである。
【0048】
ところが、本発明者による検証によって、音源SSがマイクロホン11,21から等距離に近い位置にあり、重心差分値tdが小さいときには、重心差分値tdは正側または負側に明確に発生しない場合があることが判明している。
【0049】
図13は、重心差分値tdが正の期間Tpと負の期間Tmとが存在しており、正の期間Tpの方が格段に長い場合である。エッジ信号S14e,S24eが歪んでいる場合には、データ抽出期間の最初または最後の部分で重心差分値tdの正負が反転する場合がある。
図14は、重心差分値tdが正の期間Tpと負の期間Tmとが存在しており、正の期間Tpと負の期間Tmとがほぼ同じ長さの場合である。
【0050】
重心時間差検出部30は、
図13,
図14のような重心差分値tdの波形が発生する場合を考慮して、極性占有率算出部306と非線形処理部307と混合部308を設けている。極性占有率算出部306は、次の式(3)によって極性占有率Rpoを算出する。重心差分値tdの値が零の場合は、正の期間Tpと負の期間Tmとのいずれかに含める。
【0051】
Rpo=Tp/(Tp+Tm) …(3)
【0052】
極性占有率Rpoは0〜1の値となる。
図13の場合、極性占有率Rpoは1に近い値となり、
図14の場合、極性占有率Rpoは0.5付近の値となる。極性占有率算出部306が算出した極性占有率Rpoは、非線形処理部307に入力される。非線形処理部307は、
図15に示す変換特性に基づいて、極性占有率Rpoを混合率Rmixに変換する。なお、極性占有率Rpoは本実施形態では時間率で算出したが、重心差分値tdと重心差分値tdが零の時間軸とで囲まれた部分の面積の比率で算出してもよい。
【0053】
非線形処理部307は、実線にて示すように、極性占有率Rpoが0に近い領域Rpo1では混合率Rmixを0とし、極性占有率Rpoが1に近い領域Rpo3では混合率Rmixを1とし、極性占有率Rpoが0.5付近の領域Rpo2では混合率Rmixを0から1へと線形に増大させていく。非線形処理部307は、簡略化のため、一点鎖線にて示すように、領域Rpo2において混合率Rmixを0.5の一定値としてもよい。
【0054】
極性占有率算出部306と非線形処理部307は、データ抽出期間内の正側の時間差(重心差分値td)と負側の時間差(重心差分値td)の割合に基づいて、正側の最大値Maxpと負側の絶対値の最大値Maxmとを混合する混合率Rmixを生成する混合率生成部である。
【0055】
混合部308には、正最大値検出部304より出力される正側の最大値Maxpと、負最大値検出部305より出力される負側の絶対値の最大値Maxmと、非線形処理部307より出力される混合率Rmixが入力される。混合部308は、混合率Rmixの値に応じて正側の最大値Maxpと負側の絶対値の最大値Maxmとを混合して混合値Mmixを生成する。混合部308は、次の式(4)に基づいて混合値Mmixを生成する。
【0056】
Mmix=(Maxp-Maxm)Rmix+Maxm …(4)
【0057】
式(4)より分かるように、混合率Rmixが1であれば、混合部308は正側の最大値Maxpのみを出力し、混合率Rmixが0であれば、混合部308は負側の絶対値の最大値Maxmのみを出力する。混合部308は、混合率Rmixの値が大きいほど正側の最大値Maxpを増やす。混合率Rmixが0.5であれば、混合部308は、正側の最大値Maxpと負側の絶対値の最大値Maxmとの平均値を出力する。このようにして、混合部308は、正側の最大値Maxpと負側の絶対値の最大値Maxmとを混合した混合値Mmixを出力する。
【0058】
混合部308より出力された混合値Mmixは、エッジ信号S14e,S24eの重心の時間差を示す重心時間差データの1つである。
【0059】
データ保持部309は、混合部308より出力された混合値Mmixを
図11〜
図14に示すデータ抽出期間を過ぎた後のデータ保持タイミングTdhで保持する。データ保持部309が過去に混合値Mmixを保持している場合には、データ保持タイミングTdhで新たな混合値Mmixへと更新される。データ保持部309は、保持した混合値Mmixを重心時間差検出部30の最終的な時間差検出データDtd30として出力する。
【0060】
図1に戻り、以上のようにして重心時間差検出部30によってエッジ信号S14e,S24eの時間差が検出されて生成された時間差検出データDtd30は、方向判定部40に入力される。方向判定部40は、時間差検出データDtd30に基づいて、音源SSの方向を示す角度データDag40を生成して出力する。
【0061】
図16を用いて、エッジ信号S14e,S24eの時間差に基づいて音源SSの方向を示す角度を算出することができる原理について説明する。
図16において、音源SSから発せられる音波を平面波とした場合、音源SSから2つのマイクロホン11,21の中心点PDへ向かう平面波は、マイクロホン11の位置である点PBに到達するとき、一点鎖線にて示す線分SS−PDに直交する線分PB−PCの点PCに到達する。
【0062】
音源SSから発せられる音波は厳密には球面波であり、太い破線で示すように、点PBと点PCとを通過する円弧を描く。マイクロホン21の位置をPA、線分SS−PAと点PB,点PCを通過するときの球面波が描く円弧との交点をPEとすると、音波と平面波で近似した場合と球面波とした場合との誤差は、線分PA−PCと線分PA−PEとの僅かな差となる。この差は無視することができる程度の差であり、平面波による近似で十分な精度を得ることができる。
【0063】
従って、線分PA−PCの距離Dacが、マイクロホン11,21への平面波の到達距離の差となる。距離Dacを音波が進む時間をTacとすると、線分PA−PBの垂線に対する音源SSの角度θは次のようにして算出することができる。
【0064】
時間Tacは、前述のように、エッジ信号S14e,S24eの重心tg1,tg2の時間差である重心差分値td、重心差分値tdの最大値、混合値Mmixである時間差検出データDtd30として算出されている。ここでは、重心差分値tdを時間tdとして説明する。
【0065】
時刻をt、マイクロホン11から得られる受信信号をS1(t)、マイクロホン21から得られる受信信号をS2(t)とすると、時間tdより、式(5)の関係が得られる。
S2(t)=S1(t-td) …(5)
【0066】
音速をc、マイクロホン11,21間の距離をmdとし、音源SSの角度θを用いて、時間tdは式(6)で表される。
td=md・sinθ/c …(6)
【0067】
従って、角度θは式(7)で表される。
θ=arcsin(td・c/md) …(7)
【0068】
マイクロホン11,21間の距離mdは既知であり、音速cを340m/sとすれば、時間tdを計測すれば角度θを求めることができる。最も基本的には、式(7)におけるtdとして重心差分値tdを用いれば、角度θを計算することができる。好ましくは、式(6)におけるtdとして重心差分値tdの最大値を用いれば、角度θを計算することができる。
【0069】
第1実施形態においては、最も好ましい構成として、方向判定部40は、混合値Mmixである時間差検出データDtd30を用いて角度θを計算し、得られた角度θを示す値を音源SSの方向を示す角度データDag40として出力する。
【0070】
図1,
図6では、ハードウェア構成としての音源方向検出装置を示し、音源方向検出装置で実行される動作、即ち、音源方向検出方法について説明したが、以上説明した動作をソフトウェア(コンピュータプログラム)を用いて実現することも可能である。ハードウェアとソフトウェアとを混在させて構成することも可能であり、ハードウェアとソフトウェアとの使い分けは任意である。
【0071】
コンピュータに、少なくとも重心時間差検出部30及び方向判定部40におけるそれぞれの動作(手順)を実行させ、
図1,
図6で説明した各機能を実現させればよい。
【0072】
<第2実施形態>
第2実施形態の音源方向検出装置、音源方向検出方法、音源方向検出プログラムについて説明する。
図17に示す第2実施形態において、
図1に示す第1実施形態と同一部分には同一符号を付し、その説明を適宜省略する。
【0073】
図17において、重心時間差検出部30及びエッジ時間差検出部31には、エッジ抽出部14,24より出力されたエッジ信号S14e,S24eが入力される。重心時間差検出部30は、第1実施形態において説明したように、エッジ信号S14e,S24eの重心tg1,tg2の時間差に基づいて時間差検出データDtd30を生成して出力する。エッジ時間差検出部31は、エッジ時間差検出方式によって、次のようにしてエッジ信号S14e,S24eの時間差を検出する。
【0074】
図18の(a),(b)は、エッジ時間差検出部31に入力されるエッジ信号S14e,S24eの例を示している。エッジ時間差検出部31は、エッジ信号S14e,S24eのピーク値L1,L2を検出し、例えばL1/2,L2/2を閾値として設定する。エッジ時間差検出部31は、エッジ信号S14eが閾値L1/2を越えた時刻th1と、エッジ信号S24eが閾値L2/2を越えた時刻th2とを検出する。エッジ時間差検出部31は、時刻th1と時刻th2との時間差tdを検出して、時間差tdを示す時間差検出データDtd31を出力する。
【0075】
このように、エッジ時間差検出部31は、エッジ信号S14e,S24eが所定のレベル以上立ち上がった時点を基準として、エッジ信号S14e,S24eの時間差tdを示す時間差データDtd31を生成する。重心時間差検出部30で生成される時間差検出データDtd30が重心時間差検出データであるのに対し、エッジ時間差検出部31で生成される時間差検出データDtd31はエッジ時間差検出データである。なお、エッジ時間差検出部31で検出される時間差tdと、重心時間差検出部30で検出される時間差(重心差分値)tdとは異なるが、便宜上同じ符号を用いている。
【0076】
タイミングパルス生成部35は、重心時間差検出部30及びエッジ時間差検出部31がエッジ信号S14e,S24eの時間差tdを検出するために必要な各種のタイミングパルスを、エッジ信号S14e,S24eに基づいて生成する。タイミングパルスとしては、重心時間差検出部30及びエッジ時間差検出部31が有するメモリやフリップフロップまたはソフトウェアの変数を初期化するパルス、データを所定のタイミングで抽出したり保持したりするためのパルス等が含まれる。
【0077】
なお、
図1に示す第1実施形態においても、タイミングパルス生成部35と同様のタイミングパルス生成部が必要であることは当然である。
図1では、タイミングパルス生成部の図示を省略している。
【0078】
ここで、
図19を用いて、エッジ信号S14e,S24eにノイズが混入した場合について説明する。
図19は
図10と同様の波形を示している。
図19の(a)はノイズNZが混入したエッジ信号S14e’を示しており、
図19の(b)はノイズNZが混入したエッジ信号S24e’を示している。例えば、
図19の(a)の波形では、ノイズNZのピーク値は閾値L1/2を越えておらず、
図19の(b)の波形では、ノイズNZのピーク値は閾値L2/2を越えているとする。
【0079】
仮に、
図19の(b)の波形においてノイズNZが混入していなかったり、ノイズNZのピーク値が閾値L2/2を越えてなかったりすれば、
図18で説明したように、エッジ時間差検出部31は、エッジ信号S14e’が閾値L1/2を越えた時刻th1と、エッジ信号S24e’が閾値L2/2を越えた時刻th2とを検出する。エッジ時間差検出部31は、時刻th1と時刻th2との時間差td1を検出する。
【0080】
しかしながら、ノイズNZのピーク値が閾値L2/2を越えていると、エッジ時間差検出部31は、エッジ信号S24e’が閾値L2/2を越えた時刻th3を検出してしまう。エッジ時間差検出部31は、時刻th1と時刻th3との時間差td2を検出する。この場合の誤差は(td1+td2)となり、大きな誤差が発生してしまう。時間差td1と時間差td2とは方向が異なるので、時間差td2を検出した場合には、音源SSの位置が
図2とは逆にマイクロホン21側に位置していると誤検出することになる。
【0081】
エッジ信号S14e,S24eの時間差tdを直接検出するエッジ時間差検出部31は、ノイズが混入した場合には大きな誤差が発生してしまうものの、ノイズが混入していない場合には精度よく、しかも、極めて簡単にエッジ信号S14e,S24eの時間差tdを検出することが可能である。一方、重心時間差検出部30は、ノイズが混入したとしても音源SSの位置を逆方向に誤検出してしまうほどの大きな誤差が発生することはなく、ノイズに対する耐性を有する。
【0082】
図17に示す重心時間差検出部30とエッジ時間差検出部31との双方を有する第2実施形態の構成は、エッジ信号S14e,S24eの時間差の検出精度とノイズに対する耐性とを両立させた構成である。
図17において、重心時間差検出部30より出力された時間差検出データDtd30と、エッジ時間差検出部31より出力された時間差検出データDtd31は、方向判定部41に入力される。
【0083】
図20に示すように、方向判定部41は、絶対値差分算出部411,非線形処理部412,混合部413,時間差角度変換部414を有する。絶対値差分算出部411には時間差検出データDtd30,Dtd31が入力され、絶対値差分算出部411は、時間差検出データDtd30,Dtd31それぞれが示す時間差の差分を算出して絶対化して絶対値差分値D411を出力する。
【0084】
非線形処理部412は、入力された絶対値差分値D411を
図21に示す変換特性に基づいて混合率D412に変換する。時間差検出データDtd30,Dtd31は同じエッジ信号S14e,S24eに基づいて検出されたデータであるので、本来であれば両者の差は小さいが、ノイズが混入した場合には両者の差が大きくなる。
【0085】
非線形処理部412は、実線にて示すように、絶対値差分値D411が0に近い領域D411aでは混合率D412を0〜0.5の一定値(例えば0.25)とし、絶対値差分値D411が0と最大値の中間の値から最大値までの領域D411cでは混合率D412を1とし、領域D411aと領域D411cとの間の領域D411bでは混合率D412を0〜0.5の一定値から1へと線形に増大させていく。非線形処理部412は、簡略化のため、一点鎖線にて示すように、領域D411bにおいて混合率D412を0.5の一定値としてもよい。
【0086】
絶対値差分算出部411と非線形処理部412は、時間差検出データDtd30,Dtd31の差分の大きさである絶対値差分値D411の値に応じて時間差検出データDtd30(重心時間差データ)と時間差検出データDtd31(エッジ時間差データ)とを混合する混合率D412を生成する混合率生成部である。
【0087】
混合部413には、時間差検出データDtd30,Dtd31と混合率D412とが入力される。混合部413は、混合率D412の値に応じて時間差検出データDtd30,Dtd31を混合して、混合時間差検出データDtdmixを生成する。混合部413は、次の式(8)に基づいて混合時間差検出データDtdmixを生成する。
【0088】
Dtdmix=(Dtd30-Dtd31)D412+Dtd31 …(8)
【0089】
絶対値差分算出部411より出力された絶対値差分値D411が大きいということは、エッジ時間差検出部31によって生成された時間差検出データDtd31の精度がよくなく、信頼性が低い可能性が高い。混合率D412の値を1とすれば、式(8)より、混合時間差検出データDtdmixは時間差検出データDtd30となる。上記のように、重心時間差検出部30によって検出される時間差検出データDtd30はノイズに対する耐性を有する。
【0090】
そこで、混合部413は、絶対値差分値D411が大きいほど時間差検出データDtd30の割合を増やし、絶対値差分値D411が所定の大きさ以上となったら時間差検出データDtd30のみとする。
【0091】
絶対値差分算出部411より出力された絶対値差分値D411が小さいということは、ノイズによる影響を受けていない可能性が高く、エッジ時間差検出部31によって生成された時間差検出データDtd31の精度がよい。そこで、混合部413は、絶対値差分値D411が小さいほどエッジ時間差検出部31によって生成された時間差検出データDtd31の割合を増やす。
【0092】
混合部413より出力された混合時間差検出データDtdmixは、時間差角度変換部414に入力される。時間差角度変換部414は、
図16で説明したような原理
に基づいて、混合時間差検出データDtdmixが示す時間差を音源SSの角度θに変換する。時間差角度変換部414は、式(6)における時間tdに混合時間差検出データDtdmixを用いて角度θを計算し、得られた角度θを示す値を音源SSの方向を示す角度データDag41として出力する。
【0093】
第2実施形態においても、
図17,
図20で説明した動作をソフトウェア(コンピュータプログラム)を用いて実現することも可能である。ハードウェアとソフトウェアとを混在させて構成することも可能であり、ハードウェアとソフトウェアとの使い分けは任意である。コンピュータに、少なくとも重心時間差検出部30,エッジ時間差検出部31,方向判定部41におけるそれぞれの動作(手順)を実行させ、
図17,
図20で説明した各機能を実現させればよい。
【0094】
図20のおける時間差角度変換部414を、重心時間差検出部30とエッジ時間差検出部31内で時間差tdを算出した直後に配置して、時間差tdを角度θに変換した上で後段の処理を行ってもよい。この場合、重心時間差検出部30では、時間差分算出部303の直後に時間差角度変換部414を設ければよい。
【0095】
本発明は以上説明した第1,第2実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々変更可能である。第1,第2実施形態では、2つのマイクロホン11,12を用いた構成を示しているが、3つ以上のマイクロホンを用いて音源の方向の検出精度を向上させるようにしてもよい。2つのマイクロホンを組として複数組のマイクロホンを備えて、複数の音源の方向を検出するようにしてもよい。