説明

信号補正プログラム、信号補正装置および信号補正方法

【課題】聴視中の聴取者の耳元にマイクを設置しなくても、最適に音を補正すること。
【解決手段】信号補正装置100は、準備段階において、マイク10が集音した音信号と、マイク20が集音した音信号とを基にして、マイク10が集音した音信号とマイク20が集音した音信号との関係を示す補正式を算出する。信号補正装置100は、動作段階において、準備段階で求めておいた補正式を用いて、マイク10から集音した音信号を、マイク20から集音した音信号に変換する。そして、信号補正装置100は、変換した音信号を基にしてフィルタ係数を求める。信号補正装置100は、フィルタ係数を音源から出力される信号に適用することで、スピーカー30から出力される音信号を補正する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、信号補正プログラム等に関する。
【背景技術】
【0002】
屋外等で聴取者に音を聞かせる場合には、周りの壁や床などの影響により残響が発生し、クリアな音を聴取者に伝えることができない場合がある。このため、残響の影響を無くすための従来技術がある。
【0003】
従来技術1では、聴取者が音を聞く聴取空間の形状や大きさ等によって引き起こされる信号の歪みを予め調べておき、予め調べた情報を基に、信号の歪みを打ち消すように音を補正することで、残響の影響を取り除くという技術がある。しかし、温度や湿度等の環境の変化により、時々刻々と音質は変化するので、予め調べておいた情報だけでは、音を最適に補正することができない。
【0004】
これに対して、時々刻々と変化する音質に応じて音を補正する従来技術2が存在する。この従来技術2では、例えば、聴取者の耳の位置にマイクを設定し、このマイクが集音する音を常時取得し、この音が最適なものとなるように、音源の音にFIR(無限インパルス応答:infinite impulse response)フィルタを適用するものである。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2001−36986号公報
【特許文献2】特開2010−250131号公報
【特許文献3】特開平6−046499号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上述した従来技術では、音を聴取者に聞かせる間、聴取者の耳元にマイクを設置するため、マイクが聴取者の邪魔になるという問題があった。
【0007】
開示の技術は、上記に鑑みてなされたものであって、聴視中の聴取者の耳元にマイクを設置しなくても、最適に音を補正することができる信号補正プログラム、信号補正装置および信号補正方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
本願の開示する信号補正プログラムによれば、コンピュータに、出力部から出力された音信号を、該出力部とは異なる第一の位置に設置された第1マイクが取得した第1音信号と、前記第一の位置以外の第二の位置に設置された第2マイクが取得した第2音信号とを基にして、前記第1音信号と前記第2音信号との関係を示す補正式を算出させる。また、コンピュータに、補正式を記憶装置に記憶させる。また、コンピュータに、出力部から新たに出力された音信号を前記第2マイクが取得した第3音信号と、記憶装置に記憶された補正式とに基づき、第4音信号を生成し、第4音信号を前記出力部に出力させる。
【発明の効果】
【0009】
本願の開示する信号補正プログラムによれば、聴視中の聴取者の耳元にマイクを設置しなくても、最適に音を補正することができるという効果を奏する。
【図面の簡単な説明】
【0010】
【図1】図1は、本実施例1の準備段階の信号補正システムの構成を示す図である。
【図2】図2は、本実施例1の動作段階の信号補正システムの構成を示す図である。
【図3】図3は、本実施例1にかかる信号補正装置の構成を示す機能ブロック図である。
【図4】図4は、時間軸領域のインパルスレスポンスを示す図である。
【図5】図5は、周波数軸領域のインパルスレスポンスを示す図である。
【図6】図6は、本実施例1にかかる信号補正装置の準備段階の処理手順を示すフローチャートである。
【図7】図7は、本実施例1にかかる信号補正装置の動作段階の処理手順を示すフローチャートである。
【図8】図8は、インパルスレスポンスを算出する処理手順を示すフローチャートである。
【図9】図9は、本実施例2にかかる準備段階の信号補正システムの構成を示す図である。
【図10】図10は、本実施例2にかかる動作段階の信号補正システムの構成を示す図である。
【図11】図11は、信号補正装置の構成を示す機能ブロック図である。
【図12】図12は、補正式テーブルのデータ構造の一例を示す図である。
【図13】図13は、距離算出部の処理を説明するための図である。
【図14】図14は、本実施例2にかかる信号補正装置の準備段階の処理手順を示すフローチャートである。
【図15】図15は、本実施例2にかかる信号補正装置の動作段階の処理手順を示すフローチャートである。
【図16】図16は、信号補正部が補正式を求める処理を説明するための図である。
【図17】図17は、信号補正装置のその他の適用例を示す図である。
【図18】図18は、インパルスレスポンスの時間変化の一例を示す図である。
【図19】図19は、信号補正プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【0011】
以下に、本願の開示する信号補正プログラム、信号補正装置および信号補正方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例1】
【0012】
本実施例1にかかる信号補正システムの構成について説明する。まず、準備段階の信号補正システムの構成を示した後に、動作段階の信号補正システムの構成について説明する。準備段階は、第1の時点に対応するものである。動作段階は、第2の時点に対応するものである。
【0013】
図1は、本実施例1にかかる準備段階の信号補正システムの構成を示す図である。図1に示すように、この信号補正システムは、信号補正装置100に、スピーカー30、マイク10、20が接続される。なお、準備段階において、聴取者1は、実際には存在していないものとする。信号補正システムの動作段階において、聴取者1は、図1に示す位置で音信号を実際に聴取する。
【0014】
スピーカー30は、音信号を出力する出力装置である。スピーカー30から出力される音信号は、例えば、壁5等の反射物によって反射する。
【0015】
マイク10は、聴取者1から所定距離だけ離れた位置に設置される常設のマイクである。マイク10は、聴取者1からはなれており、スピーカー30からの音を集音できれば、どこに設置されていてもよい。マイク10は、集音した音信号を信号補正装置100に出力する。
【0016】
マイク20は、準備段階において、聴取者1の耳の位置に相当する位置に設置されるマイクである。マイク20は、集音した音信号を信号補正装置100に出力する。このマイク20は、信号補正システムの動作段階において、撤去される。
【0017】
信号補正装置100は、準備段階において、マイク10が集音した音信号と、マイク20が集音した音信号とを基にして、マイク10が集音した音信号とマイク20が集音した音信号との関係を示す補正式を算出する。
【0018】
図2は、本実施例1にかかる動作段階の信号補正システムの構成を示す図である。図1に示すように、信号補正システムは、信号補正装置100に、スピーカー30、マイク10が接続される。スピーカー30、マイク10は、図1に説明したものと同様である。動作段階において、聴取者1は、図2に示す位置で、スピーカー30からの音信号を聴取する。この位置は、図1に示した聴取者1の位置に対応する。
【0019】
信号補正装置100は、動作段階において、準備段階で求めておいた補正式を用いて、マイク10から集音した音信号を、マイク20から集音した音信号に変換する。そして、信号補正装置100は、変換した音信号を基にしてフィルタ係数を求める。信号補正装置100は、フィルタ係数を音源から出力される信号に適用することで、スピーカー30から出力される音信号を補正する。
【0020】
このように、信号補正装置100によれば、マイク20を聴取者1の耳の位置に設置しなくてもリアルタイムにマイク20の集音する音信号を補正式により得ることができるので、時々刻々と変化する音質の変化に応じて音を補正することができる。
【0021】
次に、図1および図2に示した信号補正装置100の構成について説明する。図3は、本実施例1にかかる信号補正装置の構成を示す機能ブロック図である。図3に示すように、信号補正装置100は、スピーカー30、マイク10、20に接続される。スピーカー30は、図1、2に示したスピーカー30に対応する。また、マイク10は、図1、2に
示したマイク10に対応する。マイク20は、図1に示したマイク20に対応する。なお、マイク20は、準備段階において使用され、動作段階においては撤去される。
【0022】
この信号補正装置100は、音源110、音源制御部120、インパルスレスポンス算出部130、補正式算出部140、記憶部150、音信号補正部160を有する。
【0023】
音源110は、電気信号をスピーカー30に出力して、スピーカー30から音信号を出力させる装置である。音源制御部120は、音源110を制御して、各種の電気信号を音源110から出力させる。例えば、音源制御部120は、準備段階において、インパルス信号を出力させる。また、音源制御部120は、動作段階において、予め設定されていた電気信号を出力させる。また、音源制御部120は、音源110にホワイトノイズなどを出力させてもよい。
【0024】
インパルスレスポンス算出部130は、マイク10、20が集音した音信号からインパルスレスポンスを算出する処理部である。インパルスレスポンスは、スピーカー30から出力される音信号とマイクが集音した音信号との比の値に対応する。
【0025】
まず、インパルスレスポンス算出部130が、マイク10のインパルスレスポンスを算出する処理について説明する。スピーカー30の音源をX(t)とし、マイク10が集音する音信号をYm(t)とする。
【0026】
インパルスレスポンス算出部130は、音源X(t)に対してFFT(Fast Fourier Transform)を実行し、周波数軸領域の音源X(f)に変換する。また、インパルスレスポンス算出部130は、音信号Ym(t)に対してFFTを実行し、周波数軸領域の音信号Ym(f)に変換する。インパルスレスポンス算出部130は、式(1)により、周波数軸領域のインパルスレスポンスHm(f)を算出する。
【0027】
Hm(f)=Ym(f)/X(f)・・・(1)
【0028】
インパルスレスポンス算出部130は、インパルスレスポンスHm(f)を逆FFTすることで、時間軸領域のインパルスレスポンスhm(t)を算出する。
【0029】
インパルスレスポンス算出部130が、マイク20のインパルスレスポンスを算出する処理について説明する。スピーカー30の音源をX(t)とし、マイク20が集音する音信号をYe(t)とする。
【0030】
インパルスレスポンス算出部130は、音源をX(t)に対してFFTを実行し、周波数軸領域の音源X(f)に変換する。また、インパルスレスポンス算出部130は、音信号Ye(t)に対してFFTを実行し、周波数軸領域の音信号Ye(f)に変換する。インパルスレスポンス算出部130は、式(2)により、周波数軸領域のインパルスレスポンスHe(f)を算出する。
【0031】
He(f)=Ye(f)/X(f)・・・(2)
【0032】
インパルスレスポンス算出部130は、インパルスレスポンスHe(f)を逆FFTすることで、時間軸領域のインパルスレスポンスhe(t)を算出する。図4は、時間軸領域のインパルスレスポンスを示す図である。図4において、縦軸は信号の強度を示し、横軸は時間を示す。
【0033】
インパルスレスポンス算出部130は、準備段階と動作段階で異なる処理を行う。インパルスレスポンス算出部130は、準備段階において、インパルスレスポンスhm(t)とインパルスレスポンスhe(t)を補正式算出部140に出力する。インパルスレスポンス算出部130は、動作段階において、インパルスレスポンスhm(t)を音信号補正部160に順次出力する。説明の便宜上、動作段階のインパルスレスポンスをh’m(t)と表記する。
【0034】
補正式算出部140は、準備段階において、インパルスレスポンスhm(t)とインパルスレスポンスhe(t)を基にして、補正式Hem(f)を算出する処理部である。補正式算出部140は、補正式Hem(f)のデータを、補正式データ150aとして記憶部150に記憶させる。
【0035】
補正式算出部140が、補正式Hem(f)を算出する処理について説明する。補正式算出部140は、インパルスレスポンスhm(t)に対してFFTを実行し、周波数軸領域のインパルスレスポンスHm(f)を算出する。また、補正式算出部140は、インパルスレスポンスhe(t)に対してFFTを実行し、周波数軸領域のインパルスレスポンスHe(f)を算出する。図5は、周波数軸領域のインパルスレスポンスを示す図である。周波数軸領域のインパルスレスポンスは、実数部と虚数部とを有する。図5において、左側の縦軸は、実数部の強度を示し、右側の縦軸は、虚数部の強度を示す。横軸は、周波数を示す。図5において、四角でプロットしたものは実数部に対応し、ダイヤ型でプロットしたものは虚数部に対応する。
【0036】
補正式算出部140は、周波数軸領域のインパルスレスポンスHm(f)、He(f)を求めた後に、式(3)により、補正式Hem(f)を算出する。この補正式Hem(f)は、動作段階において、マイク10から取得するインパルスレスポンスを、マイク20から取得するインパルスレスポンスに変換するための変換行列である。
【0037】
Hem(f)=He(f)/Hm(f)・・・(3)
【0038】
音信号補正部160は、音源110から出力される電気信号にフィルタを適用し、フィルタを適用した電気信号をスピーカー30に出力することで、スピーカー30から出力される音信号を補正する処理部である。音信号補正部160は、フィルタ係数設定部160aと、フィルタ160bとを有する。
【0039】
フィルタ係数設定部160aは、フィルタ係数を算出し、フィルタ係数をフィルタ160bに適用する処理部である。
【0040】
フィルタ係数設定部160aがフィルタ係数を算出する処理について説明する。フィルタ係数設定部160aは、インパルスレスポンスh’m(t)を取得し、取得したインパルスレスポンスに対してFFTを実行し、周波数軸領域のインパルスレスポンスH’m(f)を算出する。
【0041】
フィルタ係数設定部160aは、補正式データ150aを記憶部150から取得し、補正式Hem(f)とインパルスレスポンスH’m(f)とを掛け合わせて、インパルスレスポンスH’e(f)を算出する。インパルスレスポンスH’e(f)は、聴取者1の耳の位置での周波数軸領域のインパルスレスポンスに対応する。
【0042】
フィルタ係数設定部160aは、インパルスレスポンスH’e(f)を求めた後に、式(4)により、フィルタ係数Hf(f)を求める。
【0043】
Hf(f)=1/H’e(f)・・・(4)
【0044】
フィルタ係数設定部160aは、フィルタ係数Hf(f)に逆FFTを実行し、時間軸領域のフィルタ係数hf(t)を算出する。フィルタ係数設定部160aは、フィルタ係数hf(t)をフィルタ160bに設定する。フィルタ係数設定部160aは、動作段階において、インパルスレスポンスh’m(t)を取得する度に、フィルタ係数を算出し、フィルタ160bに適用する。
【0045】
フィルタ160bは、フィルタ係数hf(t)により、音源110から出力される電気信号を補正するフィルタである。フィルタ160bは、例えば、FIR(無限インパルス応答)フィルタに対応する。フィルタ160bは、補正した電気信号をスピーカー30に出力する。
【0046】
次に、本実施例1にかかる信号補正装置100の処理手順を準備段階と動作段階に分けて説明する。まず、準備段階の処理について説明する。図6は、本実施例1にかかる信号補正装置の準備段階の処理手順を示すフローチャートである。例えば、図6に示す処理は、マイク10、20から音信号を取得したことを契機にして実行される。
【0047】
図6において、信号補正装置100は、聴取者の耳の位置に置かれたマイク20から音信号を取得し、インパルスレスポンスhe(t)を算出する(ステップS101a)。そして、信号補正装置100は、インパルスレスポンスhe(t)をFFTすることで、周波数軸領域のインパルスレスポンスHe(f)を算出する(ステップS102a)。
【0048】
一方、信号補正装置100は、常設のマイク10から音信号を取得し、インパルスレスポンスhm(t)を算出する(ステップS101b)。そして、信号補正装置100は、インパルスレスポンスhm(t)をFFTすることで、周波数軸領域のインパルスレスポンスHm(f)を算出する(ステップS102b)。
【0049】
信号補正装置100は、補正式Hem(f)を算出し(ステップS103)、補正式データを記憶部150に記憶させる(ステップS104)。なお、図6に示したステップS101a、102aの処理と、ステップS101b、102bの処理は、並列的に実行しても良いし、ステップS101a、102aの処理を行った後に、ステップS101b、102bの処理の処理を行ってもよい。または、ステップS101b、102bの処理の処理を行った後に、ステップS101a、102aの処理を行ってもよい。
【0050】
次に、動作段階の処理について説明する。図7は、本実施例1にかかる信号補正装置の動作段階の処理手順を示すフローチャートである。図7に示す処理は、動作段階において、常設のマイク10から音信号を取得したことを契機に実行される。
【0051】
図7において、信号補正装置100は、常設のマイク10から音信号を取得し、インパルスレスポンスh’m(t)を算出する(ステップS201)。信号補正装置100は、h’m(t)をFFTして周波数軸領域のインパルスレスポンスH’m(f)を算出する(ステップS202)。
【0052】
信号補正装置100は、補正式を利用して、聴取者の耳の位置でのインパルスレスポンスH’e(f)を算出する(ステップS203)。信号補正装置100は、フィルタ係数Hf(f)を算出し(ステップS204)、フィルタ係数Hf(f)に逆FFTを行い、時間軸領域のフィルタ係数hf(t)を算出する(ステップS205)。信号補正装置100は、フィルタ係数hf(t)をフィルタに適用し、音信号を補正する(ステップS206)。
【0053】
次に、インパルスレスポンス算出部130が、インパルスレスポンスを算出する処理手順について説明する。図8は、インパルスレスポンスを算出する処理手順を示すフローチャートである。図8に示すものは、一例として、インパルスレスポンスHm(f)を算出する場合について説明する。図8に示す処理は、例えば、スピーカー30から音信号が出力されたことを契機にして実行される。
【0054】
インパルスレスポンス算出部130は、音信号補正部160から音源X(t)を取得し(ステップS301)、音源X(t)をFFTし、周波数軸領域の音源X(f)に変換する(ステップS302)。
【0055】
一方で、インパルスレスポンス算出部130は、常設のマイク10から音信号Ym(t)を取得し(ステップS303)、常設のマイク10から取得した音信号をFFTし、周波数領域の音信号Ym(f)に変換する(ステップS304)。
【0056】
インパルスレスポンス算出部130は、音源X(f)と音信号Ym(f)を基にして、インパルスレスポンスHm(f)を算出する(ステップS305)。
【0057】
次に、本実施例1にかかる信号補正装置100の効果について説明する。信号補正装置100は、準備段階で、聴取者から離れた常設のマイク10の音信号を、マイク20の音信号に変換する補正式を予め算出しておき、記憶部150に記憶させる。そして、信号補正装置100は、動作段階において、マイク20が撤去された状態で、補正式を利用して、マイク10の音信号からマイク20の音信号を算出し、算出結果を利用して、音源の信号を補正する。このため、聴取者の耳元にマイク20を設定しなくても、時々刻々と変化する音質に対応して、聴取者1に最適な音信号を聞かせることができる。
【実施例2】
【0058】
次に、本実施例2にかかる準備段階および動作段階の信号補正システムの構成について説明する。図9は、本実施例2にかかる準備段階の信号補正システムの構成を示す図である。図9に示すように、この信号補正システムは、信号補正装置200に、スピーカー30、マイク10、マイク20a〜20dが接続される。
【0059】
スピーカー30は、音信号を出力する出力装置である。スピーカー30から出力される音信号は、例えば、壁5等の反射物によって反射する。
【0060】
マイク10は、動作段階で、聴取者1が音信号を聞く位置から所定距離だけ離れた位置に設置されるマイクである。マイク10は、聴取者1からはなれており、スピーカー30からの音を集音できれば、どこに設置されていてもよい。マイク10は、集音した音信号を信号補正装置200に出力する。
【0061】
マイク20a〜20dは、準備段階において、聴取者の耳の位置の候補となる複数の位置にそれぞれ設置されるマイクである。マイク20a〜20dの設置位置は、それぞれ異なっている。マイク20a〜20dは、集音した音信号を信号補正装置200に出力する。各マイク20a〜20dは、動作段階において、撤去される。ここでは、説明の便宜上、マイク20a〜20dを示すが、これに限定されるものではない。
【0062】
信号補正装置200は、準備段階において、マイク10が集音した音信号と、マイク20a〜20dが集音した音信号とを基にして、複数の補正式を算出する。具体的には、マイク10の音信号とマイク20aの音信号との組み合わせから補正式Hema(f)を算出し、マイク10の音信号とマイク20bの音信号との組み合わせから補正式Hemb(f)を算出する。また、信号補正装置200は、マイク10の音信号とマイク20cの音信号との組み合わせから補正式Hemc(f)を算出し、マイク10の音信号とマイク20dの音信号との組み合わせから補正式Hemd(f)を算出する。
【0063】
図10は、本実施例2にかかる動作段階の信号補正システムの構成を示す図である。図10に示すように、信号補正システムは、信号補正装置200に、スピーカー30、マイク10に接続される。スピーカー30、マイク10は、図9に示したものと同様である。
【0064】
信号補正装置200は、動作段階において、信号補正位置200と聴取者1との距離を算出し、距離に応じて最適な補正式を選択する。例えば、信号補正位置200から聴取者1までの距離が、準備段階における信号補正装置200からマイク20aまでの距離に対応している場合には、補正式Hema(f)を選択する。
【0065】
信号補正装置200は、選択した補正式を用いて、マイク10から集音した音信号を、聴取者の位置に対応する音信号に変換する。そして、信号補正装置200は、変換した音信号を基にしてフィルタ係数を求める。信号補正装置200は、フィルタ係数を音源から出力される信号に適用することで、スピーカー30から出力される音信号を補正する。
【0066】
このように、信号補正装置200によれば、マイクを聴取者の位置に設置しなくても、聴取者の立ち位置に合わせて、リアルタイムに聴取者が聞く音信号を補正式により得ることができるので、時々刻々と変化する音質の変化に応じて音を補正することができる。
【0067】
次に、図9および図10に示した信号補正装置200の構成について説明する。図11は、信号補正装置の構成を示す機能ブロック図である。図11に示すように、信号補正装置200は、音源210、音源制御部220、インパルスレスポンス算出部230、補正式算出部240、記憶部250、音信号補正部260を有する。
【0068】
音源210は、電気信号をスピーカー30に出力して、スピーカー30から音信号を出力させる装置である。音源制御部220は、音源210を制御して、各種の電気信号を音源210から出力させる。例えば、音源制御部220は、準備段階において、インパルス信号を出力させる。また、音源制御部220は、動作段階において、予め設定されていた電気信号を出力させる。また、音源制御部220は、音源210にホワイトノイズなどを出力させてもよい。
【0069】
インパルスレスポンス算出部230は、マイク10、20a〜20dが集音した音信号からインパルスレスポンスをそれぞれ算出する処理部である。インパルスレスポンス算出部230は、実施例1に示したインパルスレスポンス算出部130と同様にして、インパルスレスポンスを算出するものとする。
【0070】
マイク10の時間軸領域のインパルスレスポンスをhm(t)とする。マイク20a、20b、20c、20dの時間軸領域のインパルスレスポンスをそれぞれ、hea(t)、heb(t)、hec(t)、hed(t)とする。
【0071】
インパルスレスポンス算出部230は、準備段階と動作段階で異なる処理を行う。インパルスレスポンス算出部230は、準備段階において、インパルスレスポンスhm(t)、hea(t)、heb(t)、hec(t)、hed(t)を、補正式算出部240に出力する。インパルスレスポンス算出部230は、動作段階において、インパルスレスポンスhm(t)を音信号補正部260に順次出力する。説明の便宜上、動作段階のインパルスレスポンスをh’m(t)と表記する。
【0072】
補正式算出部240は、準備段階において、補正式Hema(f)、Hemb(f)、Hemc(f)、Hemd(f)を算出する処理部である。
【0073】
補正式算出部240が、補正式Hema(f)を算出する処理について説明する。補正式算出部240は、インパルスレスポンスhm(t)に対してFFTを実行し、周波数軸領域のインパルスレスポンスHm(f)を算出する。また、補正式算出部240は、インパルスレスポンスhea(t)に対してFFTを実行し、周波数軸領域のインパルスレスポンスHea(f)を算出する。そして、補正式算出部240は、インパルスレスポンスHea(f)をインパルスレスポンスHm(f)で除算することで、補正式Hema(f)を算出する。
【0074】
補正式算出部240が、補正式Hemb(f)を算出する処理について説明する。補正式算出部240は、インパルスレスポンスheb(t)に対してFFTを実行し、周波数軸領域のインパルスレスポンスHeb(f)を算出する。そして、補正式算出部240は、インパルスレスポンスHeb(f)をインパルスレスポンスHm(f)で除算することで、補正式Hemb(f)を算出する。
【0075】
補正式算出部240が、補正式Hemc(f)を算出する処理について説明する。補正式算出部240は、インパルスレスポンスhec(t)に対してFFTを実行し、周波数軸領域のインパルスレスポンスHec(f)を算出する。そして、補正式算出部240は、インパルスレスポンスHec(f)をインパルスレスポンスHm(f)で除算することで、補正式Hemc(f)を算出する。
【0076】
補正式算出部240が、補正式Hemd(f)を算出する処理について説明する。補正式算出部240は、インパルスレスポンスhed(t)に対してFFTを実行し、周波数軸領域のインパルスレスポンスHed(f)を算出する。そして、補正式算出部240は、インパルスレスポンスHed(f)をインパルスレスポンスHm(f)で除算することで、補正式Hemd(f)を算出する。
【0077】
補正式算出部240は、求めた各補正式Hema(f)、Hemb(f)、Hemc(f)、Hemd(f)を、補正式テーブル250aに登録する。
【0078】
図12は、補正式テーブルのデータ構造の一例を示す図である。図12に示すように、補正式テーブル250aは、マイク識別情報、距離、補正式を有する。マイク識別情報は、マイクを識別する情報である。例えば、マイク識別情報は、20a〜20dは、図9、図11に示すマイク20a〜20dに対応する。距離は、信号補正装置200から各マイク20a〜20dまでの距離に対応するものであり、予め設定されているものとする。準備段階において、マイクを設定する設定者は、図12に示す距離に対応するように、マイク20a〜20dを設置する。
【0079】
補正式算出部240は、図12に示すように、マイク識別情報20a〜20dの補正式にそれぞれ、Hema(f)〜Hemd(f)を設定する。
【0080】
音信号補正部260は、音源210から出力される電気信号にフィルタを適用し、スピーカー30から出力される音信号を補正する処理部である。音信号補正部260は、距離算出部260a、フィルタ係数設定部260b、フィルタ260cを有する。
【0081】
距離算出部260aは、動作段階において、信号補正装置200と聴取者1との間の距離を算出する処理部である。距離算出部260aは、算出した距離の情報を、フィルタ係数設定部260bに出力する。
【0082】
距離算出部260aが、距離を算出する処理について説明する。図13は、距離算出部の処理を説明するための図である。図13の波形30aは、インパルスレスポンスhm(t)の波形である。波形30bは、インパルスレスポンスh’m(t)の波形である。波形30cは、インパルスレスポンスhm(t)からインパルスレスポンスh’m(t)を減算した差分波形である。
【0083】
距離算出部260aは、準備段階におけるインパルスレスポンスhm(t)から動作段階におけるインパルスレスポンスh’m(t)を減算することで、差分波形を算出する。そして、距離算出部260aは、差分波形30cの振幅のピーク値を特定し、特定したピーク値から所定時間後に、振幅の大きさが閾値を超える部分を特定する。距離算出部260aは、振幅の大きさが閾値を超える部分の時間から、ピーク値の時間を減算した時間に音速を乗算することで、距離を算出する。図13に示す例では、振幅の大きさが閾値を超える部分は、31となり、距離算出部260aが求める時間は、時間間隔32に相当する時間となる。
【0084】
距離算出部260aは、ピーク値から所定時間後に、振幅の大きさが閾値を超える部分が存在しない場合には、聴取者が存在しないと判定する。聴取者が存在しないと判定した場合には、距離算出部260aは、聴取者が存在しない旨の情報を、フィルタ係数設定部260bに出力する。
【0085】
距離算出部260aは、準備段階において、インパルスレスポンスhm(t)の情報を、インパルスレスポンス算出部230から取得しておく。距離算出部260aは、動作段階において、インパルスレスポンス算出部230から、インパルスレスポンスh’m(t)を順次取得して距離を算出し、算出結果をフィルタ係数設定部260bに出力する。
【0086】
フィルタ係数設定部260bは、信号補正装置200から聴取者までの距離に基づいて、補正式テーブル250aから補正式を選択する。フィルタ係数設定部260bは、選択した補正式を用いてフィルタ係数を算出し、フィルタ係数をフィルタ260cに適用する。
【0087】
フィルタ係数設定部260bが、補正式を選択する処理について説明する。フィルタ係数設定部260bは、信号補正装置200から聴取者までの距離と、補正式テーブル250aとを比較して、聴取者に最も近いマイクに対応する補正式を選択する。例えば、信号補正装置200から聴取者までの距離が10mの場合には、フィルタ係数設定部260bは、マイク20aの補正式Hema(f)を選択する。
【0088】
フィルタ係数設定部260bが、フィルタ係数を算出する処理について説明する。ここでは説明の便宜上、フィルタ係数設定部260bは、補正式Hema(f)を選択した場合について説明する。フィルタ係数設定部260bは、インパルスレスポンスh’m(t)を取得し、取得したインパルスレスポンスに対してFFTを実行し、周波数軸領域のインパルスレスポンスH’m(f)を算出する。
【0089】
フィルタ係数設定部260bは、補正式Hema(f)とインパルスレスポンスH’m(f)とを掛け合わせて、インパルスレスポンスH’e(f)を算出する。インパルスレスポンスH’e(f)は、聴取者1の耳の位置での周波数軸領域のインパルスレスポンスに対応する。フィルタ係数設定部260aは、インパルスレスポンスH’e(f)を求めた後に、実施例1と同様に式(4)により、フィルタ係数Hf(f)を求める。
【0090】
フィルタ係数設定部260bは、フィルタ係数Hf(f)に逆FFTを実行し、時間軸領域のフィルタ係数hf(t)を算出する。フィルタ係数設定部260bは、フィルタ係数hf(t)をフィルタ260cに設定する。フィルタ係数設定部260bは、動作段階において、インパルスレスポンスh’m(t)を取得する度に、フィルタ係数を算出し、フィルタ260cに適用する。
【0091】
ところで、フィルタ係数設定部260bは、距離算出部260aから、聴取者が存在しない旨の情報を取得した場合には、音源210からホワイトノイズを出力するように、音源制御部220に指示する。フィルタ係数設定部260bは、聴取者が存在しない間は、補正式を選択する処理およびフィルタ係数を算出する処理を停止する。
【0092】
フィルタ260cは、フィルタ係数hf(t)により、音源210から出力される電気信号を補正するフィルタである。フィルタ260cは、例えば、FIR(無限インパルス応答)フィルタに対応する。フィルタ260cは、補正した電気信号をスピーカー30に出力する。
【0093】
次に、本実施例2にかかる信号補正装置200の処理手順を準備段階と動作段階に分けて説明する。まず、準備段階の処理について説明する。図14は、本実施例2にかかる信号補正装置の準備段階の処理手順を示すフローチャートである。例えば、図14に示す処理は、マイク10、20a〜20dから音信号を取得したことを契機にして実行される。
【0094】
図14において、信号補正装置200は、聴取者の耳の位置候補に置かれた各マイク20a〜20dから音信号を取得し、インパルスレスポンスhea(t)〜hed(t)を算出する(ステップS401a)。そして、信号補正装置200は、インパルスレスポンスhea(t)〜hed(t)をFFTすることで周波数軸領域のインパルスレスポンスHea(f)〜Hed(f)を算出する(ステップS402a)。
【0095】
一方、信号補正装置200は、常設のマイク10から音信号を取得し、インパルスレスポンスhm(t)を算出する(ステップS401b)。信号補正装置200は、インパルスレスポンスhm(t)をFFTすることで、周波数軸領域のインパルスレスポンスHm(f)を算出する(ステップS402b)。
【0096】
信号補正装置200は、補正式Hema(f)〜Hemd(f)を算出し(ステップS403)、補正式を記憶部250に記憶させる(ステップS404)。なお、図14に示したステップS401a、402aの処理と、ステップS401b、402bの処理は、並列的に実行しても良いし、ステップS401a、402aの処理を行った後に、ステップS401b、402bの処理の処理を行ってもよい。または、ステップS401b、402bの処理の処理を行った後に、ステップS401a、402aの処理を行ってもよい。
【0097】
次に、動作段階の処理について説明する。図15は、本実施例2にかかる信号補正装置の動作段階の処理手順を示すフローチャートである。図15に示す処理は、動作段階において、常設のマイク10から音信号を取得したことを契機に実行される。
【0098】
図15において、信号補正装置200は、常設のマイク10から音信号を取得し、インパルスレスポンスh’m(t)を算出し(ステップS501)、聴取者が存在するか否かを判定する(ステップS502)。
【0099】
信号補正装置200は、聴取者が存在しない場合には(ステップS502,No)、例えばホワイトノイズを出力する(ステップS503)。なお、出力の例としてホワイトノイズを使用するのは周波数情報に欠けが無いためで、ある程度の時間を掛けて周波数情報を蓄積できるなら音楽データなどでも構わない。一方、信号補正装置200は、聴取者が存在する場合には(ステップS502,Yes)計算したhf(t)を適用することで、音信号を補正する(ステップS509)。ステップS503に続いて、信号補正装置200は、その場のインパルスレスポンスデータを更新しながらh’m(t)をFFTして周波数軸領域のインパルスレスポンスH’m(f)を算出する(ステップS504)。
【0100】
信号補正装置200は、自装置と聴取者との距離に基づいて、補正式を選択する(ステップS505)。信号補正装置200は、聴取者の耳の位置でのインパルスレスポンスH’e(f)を算出し(ステップS506)、フィルタ係数Hf(f)を算出する(ステップS507)。
【0101】
信号補正装置200は、フィルタ係数Hf(f)に逆FFTを行い、時間軸領域のフィルタ係数hf(t)を算出する(ステップS508)。信号補正装置200は、フィルタ係数hf(t)を音源に適用し、音信号を補正する(ステップS509)。
【0102】
次に、本実施例2にかかる信号補正装置200の効果について説明する。信号補正装置200は、準備段階で、設置位置の異なるマイク20a〜20dを用いて、位置毎に補正式を算出しておく。そして、信号補正装置200は、動作段階で、聴取者までの距離に基づいて、補正式を選択して、フィルタ係数を求め、音信号を補正する。このため、マイクを聴取者の位置に設置しなくても、聴取者の立ち位置に合わせて、リアルタイムに聴取者が聞く音信号を補正式により得ることができるので、時々刻々と変化する音質の変化に応じて音を補正することができる。
【0103】
また、信号補正装置200は、動作段階において、聴取者が存在しない場合には、フィルタ係数を算出する処理をやめ、ホワイトノイズを出力するので、不要な計算を無くし、処理負荷を軽減することができる。
【0104】
ところで、音信号補正部260は、信号補正装置200から聴取者までの距離と、補正式テーブル250aとを比較して、補正式を選択していたが、これに限定されるものではない。例えば、音信号補正部260は、補間により、補正式を求めてもよい。
【0105】
図16は、信号補正部が補正式を求める処理を説明するための図である。例えば、図16の横軸は、信号補正装置200から聴取者までの距離に対応し、縦軸は、Hem(f)の実数部、虚数部の大きさを示す。図16の黒丸は実数部に対応し、白丸は虚数部に対応する。例えば、黒丸1a、白丸1bの組は、Hema(f)の実数部、虚数部に対応し、黒丸2a、白丸2bの組は、Hemb(f)の実数部、虚数部に対応する。また、黒丸3a、白丸3bの組は、Hemc(f)の実数部、虚数部に対応し、黒丸4a、白丸4bの組は、Hemd(f)の実数部、虚数部に対応する。また、黒丸5a、白丸5bの組は、他のマイクのHem(f)の実数部、虚数部に対応する。
【0106】
信号補正部260は、実数部の近似線6a、虚数部の近似線6bを求める。そして、信号補正部260は、この近似線6a、6bと、距離との交点を求め、補正式Hem(f)を求めてもよい。例えば、距離を距離Aとすると、信号補正部260は、実数部1A、虚数部1Bとする補正式Hem(f)を生成し、生成した補正式を用いてフィルタ係数を設定する。このように、信号補正部260が、距離に基づいて補正式を算出することで、想定した位置とは異なる位置に聴取者が存在していても、聴取者に対して最適な音信号となるように、音信号を補正することができる。
【0107】
なお、本実施例2にかかる信号補正装置200は、距離の異なる複数のマイク20a〜20dを利用して、複数の補正式を算出していたがこれに限定されるものではない。例えば、信号補正装置200は、高さの異なる複数のマイク20a〜20dを利用して、複数の補正式を算出し、最適な補正式を選択して、音信号を補正してもよい。高さの異なるマイク20a〜20dは、それぞれ、信号補正装置200からの距離が異なるので、上記実施例2と同様の方法を用いて、最適な補正式を選択できる。
【0108】
ところで、上記の信号補正装置200は、広い乗り物などにも同様に適用することができる。図17は、信号補正装置のその他の適用例を示す図である。信号補正装置は、準備段階において、各乗客が座る位置41〜49にマイクを設置し、位置毎に、補正式を求めておく。そして、動作段階において、狙った乗客に対応する補正式を利用することで、かかる乗客に対して、クリアな音信号を伝えることができる。例えば、信号補正装置200は、位置45の乗客にクリアな音を伝える場合には、準備段階で求めておいた、位置45の補正式を利用して、音信号を補正する。
【0109】
次に、インパルスレスポンスの時間変化について説明する。図18は、インパルスレスポンスの時間変化の一例を示す図である。図18において、横軸は時刻を示し、縦軸は、インパルスレスポンスの実数部の大きさを示す。線分51〜55は、それぞれ、周波数の異なるインパルスレスポンスである。図18に示すように、インパルスレスポンスは、時間経過と共に変動しており、一定ではない。このため、本実施例のように、補正式を利用して、動的に聴取者の耳の位置に対する音の特性を求め、音信号を補正することで、時々刻々と変化する音の変化に対応することができる。また、動作時に、聴取者に耳もとに、マイクを設置しないので、聴取者の邪魔をすることもない。
【0110】
次に、上記実施例1、2に示した信号補正装置100、200と同様の機能を実現する信号補正プログラムを実行するコンピュータの一例を説明する。図19は、信号補正プログラムを実行するコンピュータの一例を示す図である。
【0111】
図19に示すように、コンピュータ300は、各種演算処理を実行するCPU301と、ユーザからのデータの入力を受け付ける入力装置302と、ディスプレイ303を有する。また、コンピュータ300は、記憶媒体からプログラム等を読取る読み取り装置304と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインターフェース装置305とを有する。また、コンピュータ300は、スピーカー306と、マイク307a、307bを有する。マイク307aは、聴取者から離れた位置に設置される常設のマイクである。マイク307bは、準備段階において、聴取者の耳の位置に設置されるマイクであり、動作段階においては撤去される。また、コンピュータ300は、各種情報を一時記憶するRAM308と、ハードディスク装置309を有する。そして、各装置301〜309は、バス310に接続される。
【0112】
ハードディスク装置309は、補正式算出プログラム309a、音信号補正プログラム309bを記憶する。CPU301は、補正式算出プログラム309a、音信号補正プログラム309bを読み出して、RAM308に展開する。補正式算出プログラム309aは、補正式算出プロセス308aとして機能する。音信号補正プログラム309bは、音信号補正プロセス308bとして機能する。
【0113】
例えば、補正式算出プロセス308aは、図3、図11の補正式算出部140,240に対応する。音信号補正プログラム309bは、図3、図11の音信号補正部160,260に対応する。例えば、補正式算出プロセス308aは、準備段階において、補正式データ308cを生成する。そして、音信号補正プロセス308bは、動作段階において、補正式データ308cを用いて、スピーカー30の音信号を補正する。
【0114】
なお、各プログラム309a,309bについては、必ずしも最初からハードディスク装置309に記憶させておかなくてもよい。例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ300がこれらから各プログラム309a,309bを読み出して実行するようにしてもよい。
【0115】
ところで、実施例1、2に示した記憶部150,250は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。
【0116】
また、実施例1、2に示した各処理部110〜140,160,210〜240,260は、例えば、ASIC(Application Specific Integrated Circuit)や、FPGA(Field Programmable Gate Array)などの集積装置に対応する。また、各処理部は、例えば、CPUやMPU(Micro Processing Unit)等の電子回路に対応する。
【0117】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0118】
(付記1)コンピュータに、
出力部から出力された音信号を、該出力部とは異なる第一の位置に設置された第1マイクが取得した第1音信号と、前記第一の位置以外の第二の位置に設置された第2マイクが取得した第2音信号とを基にして、前記第1音信号と前記第2音信号との関係を示す補正式を算出し、
前記補正式を記憶装置に記憶させ、
前記出力部から新たに出力された音信号を前記第2マイクが取得した第3音信号と、前記記憶装置に記憶された前記補正式とに基づき、第4音信号を生成し、
前記第4音信号を前記出力部に出力させる
各処理を実行させることを特徴とする信号補正プログラム。
【0119】
(付記2)前記補正式を算出する処理は、前記第2マイクと対象物の位置との距離毎に、前記補正式を算出して記憶装置に記憶し、前記音信号を補正する処理は、前記第2マイクと対象物の位置との距離を基にして、記憶装置から補正式を選択することを特徴とする付記1に記載の信号補正プログラム。
【0120】
(付記3)前記補正式を算出する処理は、前記第2マイクと対象物の位置との距離に対応する補正式を、前記記憶装置に記憶された各距離に対応する補正式を基にして生成し、生成した補正式を利用して、前記第2マイクが取得した第2音信号から前記第1マイクの第1音信号を算出することを特徴とする付記1または2に記載の信号補正プログラム。
【0121】
(付記4)前記音信号を補正する処理は、前記第2マイクが取得した音信号に基づいて対象物が存在するか否かを判定し、対象物が存在する場合に、前記出力部から出力される音信号を補正することを特徴とする付記1、2または3に記載の信号補正プログラム。
【0122】
(付記5)出力部から出力された音信号を、該出力部とは異なる第一の位置に設置された第1マイクが取得した第1音信号と、前記第一の位置以外の第二の位置に設置された第2マイクが取得した第2音信号とを基にして、前記第1音信号と前記第2音信号との関係を示す補正式を算出して、該補正式を記憶装置に記憶させる補正式算出部と、
前記出力部から新たに出力された音信号を前記第2マイクが取得した第3音信号と、前記記憶装置に記憶された前記補正式とに基づき、第4音信号を生成し、前記第4音信号を前記出力部に出力させる音信号補正部と
を有することを特徴とする信号補正装置。
【0123】
(付記6)前記補正式算出部は、前記第2マイクと対象物の位置との距離毎に、前記補正式を算出して記憶装置に記憶し、前記音信号補正部は、前記第2マイクと対象物の位置との距離を基にして、記憶装置から補正式を選択することを特徴とする付記5に記載の信号補正装置。
【0124】
(付記7)前記補正式算出部は、前記第2マイクと対象物の位置との距離に対応する補正式を、前記記憶装置に記憶された各距離に対応する補正式を基にして生成し、生成した補正式を利用して、前記第2マイクが取得した第2音信号から前記第1マイクの第1音信号を算出することを特徴とする付記5または6に記載の信号補正装置。
【0125】
(付記8)前記音信号補正部は、前記第2マイクが取得した音信号に基づいて対象物が存在するか否かを判定し、対象物が存在する場合に、前記出力部から出力される音信号を補正することを特徴とする付記5、6または7に記載の信号補正装置。
【0126】
(付記9)コンピュータが実行する信号補正方法であって、
出力部から出力された音信号を、該出力部とは異なる第一の位置に設置された第1マイクが取得した第1音信号と、前記第一の位置以外の第二の位置に設置された第2マイクが取得した第2音信号とを基にして、前記第1音信号と前記第2音信号との関係を示す補正式を算出し、
前記補正式を記憶装置に記憶させ、
前記出力部から新たに出力された音信号を前記第2マイクが取得した第3音信号と、前記記憶装置に記憶された前記補正式とに基づき、第4音信号を生成し、
前記第4音信号を前記出力部に出力させる
各処理を実行させることを特徴とする信号補正方法。
【0127】
(付記10)前記補正式を算出する処理は、前記第2マイクと対象物の位置との距離毎に、前記補正式を算出して記憶装置に記憶し、前記音信号を補正する処理は、前記第2マイクと対象物の位置との距離を基にして、記憶装置から補正式を選択することを特徴とする付記9に記載の信号補正方法。
【0128】
(付記11)前記補正式を算出する処理は、前記第2マイクと対象物の位置との距離に対応する補正式を、前記記憶装置に記憶された各距離に対応する補正式を基にして生成し、生成した補正式を利用して、前記第2マイクが取得した第2音信号から前記第1マイクの第1音信号を算出することを特徴とする付記9または10に記載の信号補正方法。
【0129】
(付記12)前記音信号を補正する処理は、前記第2マイクが取得した音信号に基づいて対象物が存在するか否かを判定し、対象物が存在する場合に、前記出力部から出力される音信号を補正することを特徴とする付記9、10または11に記載の信号補正方法。
【符号の説明】
【0130】
10,20 マイク
30 スピーカー
100 信号補正装置

【特許請求の範囲】
【請求項1】
コンピュータに、
出力部から出力された音信号を、該出力部とは異なる第一の位置に設置された第1マイクが取得した第1音信号と、前記第一の位置以外の第二の位置に設置された第2マイクが取得した第2音信号とを基にして、前記第1音信号と前記第2音信号との関係を示す補正式を算出し、
前記補正式を記憶装置に記憶させ、
前記出力部から新たに出力された音信号を前記第2マイクが取得した第3音信号と、前記記憶装置に記憶された前記補正式とに基づき、第4音信号を生成し、
前記第4音信号を前記出力部に出力させる
各処理を実行させることを特徴とする信号補正プログラム。
【請求項2】
前記補正式を算出する処理は、前記第2マイクと対象物の位置との距離毎に、前記補正式を算出して記憶装置に記憶し、前記音信号を補正する処理は、前記第2マイクと対象物の位置との距離を基にして、記憶装置から補正式を選択することを特徴とする請求項1に記載の信号補正プログラム。
【請求項3】
前記補正式を算出する処理は、前記第2マイクと対象物の位置との距離に対応する補正式を、前記記憶装置に記憶された各距離に対応する補正式を基にして生成し、生成した補正式を利用して、前記第2マイクが取得した第2音信号から前記第1マイクの第1音信号を算出することを特徴とする請求項1または2に記載の信号補正プログラム。
【請求項4】
前記音信号を補正する処理は、前記第2マイクが取得した音信号に基づいて対象物が存在するか否かを判定し、対象物が存在する場合に、前記出力部から出力される音信号を補正することを特徴とする請求項1、2または3に記載の信号補正プログラム。
【請求項5】
出力部から出力された音信号を、該出力部とは異なる第一の位置に設置された第1マイクが取得した第1音信号と、前記第一の位置以外の第二の位置に設置された第2マイクが取得した第2音信号とを基にして、前記第1音信号と前記第2音信号との関係を示す補正式を算出して、該補正式を記憶装置に記憶させる補正式算出部と、
前記出力部から新たに出力された音信号を前記第2マイクが取得した第3音信号と、前記記憶装置に記憶された前記補正式とに基づき、第4音信号を生成し、前記第4音信号を前記出力部に出力させる音信号補正部と
を有することを特徴とする信号補正装置。
【請求項6】
コンピュータが実行する信号補正方法であって、
出力部から出力された音信号を、該出力部とは異なる第一の位置に設置された第1マイクが取得した第1音信号と、前記第一の位置以外の第二の位置に設置された第2マイクが取得した第2音信号とを基にして、前記第1音信号と前記第2音信号との関係を示す補正式を算出し、
前記補正式を記憶装置に記憶させ、
前記出力部から新たに出力された音信号を前記第2マイクが取得した第3音信号と、前記記憶装置に記憶された前記補正式とに基づき、第4音信号を生成し、
前記第4音信号を前記出力部に出力させる
各処理を実行させることを特徴とする信号補正方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2013−30985(P2013−30985A)
【公開日】平成25年2月7日(2013.2.7)
【国際特許分類】
【出願番号】特願2011−165665(P2011−165665)
【出願日】平成23年7月28日(2011.7.28)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】