以下、図面を参照しつつ本発明の実施形態を説明する。
図1は、本発明の一実施形態のエンジン音加工装置10を含むエンジン音加工システム1の構成例を示す図である。図1に示すように、このエンジン音加工システム1は、エンジン音加工装置10の他に、圧力センサ20とスピーカ30とを含んでいる。圧力センサ20は、エンジン音加工システム1を搭載した車両のエンジンに外気を供給するための吸気管内に設置され、当該吸気管内における圧力の時間変動を表す信号(時間領域の信号)を出力する。圧力センサ20の出力信号Xは、エンジンの駆動制御を行うECU(Engine Control Unit:図1では図示略)に供給され、エンジンの回転数制御等に利用される。また、圧力センサ20の出力信号Xはエンジン音加工装置10にも供給される。
図1のエンジン音加工装置10は、圧力センサ20の出力信号Xを電気的に加工してエンジン音を模した音信号(以下、合成エンジン音信号)Zを生成しスピーカ30に供給する。スピーカ30は、エンジン音加工システム1を搭載した車両の車室内に設置されており、エンジン音加工装置10から供給される合成エンジン音信号Zを音として当該車室内に放音する。このように、本実施形態では、エンジンの駆動制御のために設けられた圧力センサ20の出力信号Xに基づいて合成エンジン音信号Zが生成される。圧力センサ20の出力信号Xを加工して合成エンジン音信号を生成するようにしたのは、車両のエンジンルーム内の環境はマイクロホンなどの音響センサにとっては過酷にすぎ、実用に耐えない虞があるからである。
図1に示すように、エンジン音加工装置10は、雑音抑圧部110−p(p=1〜P:Pは2以上の自然数)、SNR推定部120、信号加工部130、および雑音抑圧済み信号生成部140を含んでいる。本実施形態のエンジン音加工装置10は例えばDSP(Digital Signal Processor)であり、図1に示す雑音抑圧部110−p(p=1〜P)、SNR推定部120、信号加工部130および雑音抑圧済み信号生成部140の各々は制御プログラムにしたがって当該DSPにより実現されるソフトウェアモジュールである。本実施形態では、雑音抑圧部110−p(p=1〜P)、SNR推定部120、信号加工部130および雑音抑圧済み信号生成部140の各々をソフトウェアモジュールで実現するが、これら各部を電子回路で実現し、それら電子回路を組み合わせてエンジン音加工装置10を構成しても勿論良い。
雑音抑圧部110−p(p=1〜P)の各々は、圧力センサ20の出力信号Xを周波数領域の信号に変換して雑音成分を抑圧する処理を施し、さらにその処理結果を時間領域の信号Ypに再度変換して出力する。雑音抑圧部110−p(p=1〜P)の各々による抑圧対象の雑音としては所謂熱雑音が挙げられる。詳細については後述するが、本実施形態では、圧力センサ20の出力信号Xを周波数領域の信号に変換する際のフレームサイズが雑音抑圧部110−p毎に異なっている。具体的には、本実施形態では、図2に示すように、雑音抑圧部110−1におけるフレームサイズF1(例えば、128サンプル)を基準として、雑音抑圧部110−2におけるフレームサイズF2はその2倍に、雑音抑圧部110−3におけるフレームサイズF3はその4倍に、・・・雑音抑圧部110−PにおけるフレームサイズFPは、その2P−1倍になっている。雑音抑圧部110−pの具体的な構成、および雑音抑圧部110−pにより実行される雑音抑圧処理の詳細については後に明らかにする。
SNR推定部120は、圧力センサ20の出力信号Xにおける信号/雑音比である事後SNRを算出するとともに、信号Yp(p=1〜P)の各々における信号/雑音比である事前SNRを算出して出力する。このSNR推定部120の具体的な構成およびSNR推定部120により実行される処理の詳細についても後に明らかにする。
雑音抑圧済み信号生成部140は、雑音抑圧部110−p(p=1〜P)の各々から出力される信号Ypをミキシングして雑音抑圧済み信号Yを生成し、信号加工部130に与える。ここで、雑音抑圧部110−p(p=1〜P)の各々から出力される信号Ypをミキシングして雑音抑圧済み信号Yを生成する理由は以下の通りである。
詳細については後述するが、本実施形態では、雑音抑圧部110−p(p=1〜P)の各々における雑音抑圧方法として反復スペクトル減算法が採用されている。一般に、スペクトル減算法による雑音抑圧処理ではミュージカルノイズが発生する場合があり、フレームサイズが小さいほどミュージカルノイズの発生が顕著になることが知られている。これに対して、反復スペクトル減算法では、条件設定次第ではミュージカルノイズを発生させないようにすることも不可能ではないが、1回のスペクトル減算処理により低減できるノイズ量が当該条件に応じて定まってしまい、複数回のスペクトル減算処理を繰り返し行ったとしても、エンジン音信号Xに含まれるノイズ成分を充分に低減することができない虞がある。これらのことを考慮すると、反復スペクトル減算法を用いる場合においても、フレームサイズをできるだけ大きくすることが好ましいかに見える。しかし、フレームサイズを大きくするに連れて過渡的な信号が鈍るようになり、アタック感が失われるといった問題が生じる。ミュージカルノイズ自体は尖度の高い信号であることが知られており、中心極限定理を考慮すれば、フレームサイズの異なる雑音抑圧結果を混合することでアタック感の消失を抑えつつミュージカルノイズ感を低減させることができる。このため、本実施形態では、雑音抑圧部110−p(p=1〜P)の各々の出力信号Ypを雑音抑圧済み信号生成部140によりミキシングして雑音抑圧済み信号Yを生成するのである。
また、雑音抑圧済み信号生成部140は、雑音抑圧部110−p(p=1〜P)の各々の出力信号Ypをミキシングして雑音抑圧済み信号Yを生成する際のミキシング比率を、SNR推定部から与えられる事後SNRおよび事前SNRに応じて調整する。雑音抑圧部110−p(p=1〜P)の各々をミキシングする際のミキシング比率を事後SNRおよび事前SNRに応じて定めるようにしたのは、事後SNRおよび事前SNRの大小関係や事前SNRの符号(デシベル表現した場合の符号)にエンジンの動作状態が反映されているからであり、エンジンの動作状態を的確に反映した合成エンジン音を表す合成エンジン音信号Zを生成するためである。事後SNRと事前SNRの大小関係および事前SNRの符号とエンジンの動作状態との関係については後に明らかにする。
信号加工部130は、圧力センサ20の出力信号Xと雑音抑圧済み信号Yとから合成エンジン音信号Zを生成してスピーカ30に供給する。図1に示すように、信号加工部130は、ミキシング部132、イコライザ134およびコンプレッサ136を含んでいる。ミキシング部132は、事後SNRおよび事前SNRに応じて定まるミキシング比率で圧力センサ20の出力信号Xと雑音抑圧済み信号Yとをミキシングし、そのミキシング結果である信号Z1をイコライザ134に出力する。イコライザ134は、信号Z1に含まれる各周波数成分の強度を事後SNRおよび事前SNRに応じて調整し、その調整結果である信号Z2をコンプレッサ136に出力する。コンプレッサ136は、信号Z2のダイナミックレンジを事後SNRおよび事前SNRに基づいて調整し、その調整結果を合成エンジン音信号Zとしてスピーカ30に与える。
圧力センサ20の出力信号Xと雑音抑圧済み信号Yのミキシング比率およびそのミキシング結果に施す加工の内容を、事後SNRおよび事前SNRに応じて調整するようにしたのは、前述したように、事後SNRおよび事前SNRの大小関係や事前SNRの符号(デシベル表現した場合の符号)にエンジンの動作状態が反映されているからであり、エンジンの動作状態を的確に反映した合成エンジン音を表す合成エンジン音信号Zを生成するためである。なお、本実施形態では、雑音抑圧部110−p(p=1〜P)の出力信号Ypをミキシングして雑音抑圧済み信号Yを生成する際のミキシング比率、圧力センサ20の出力信号Xと雑音抑圧済み信号Yのミキシング比率、およびそのミキシング結果に施す加工の内容の各々を事後SNRおよび事前SNRに応じて調整するが、上記2種類のミキシング比率と上記加工内容のうちの何れか1つ或いは何れか2を事後SNRおよび事前SNRに応じて調整する態様であっても良い。
図3は、雑音抑圧部110−pおよびSNR推定部120の構成例を示す図である。
図3に示すように雑音抑圧部110−pは、STFT部112−p、雑音推定部114−p、反復SS部116−pおよびISTFT部118−pを含んでいる。STFT部112−pは、圧力センサ20の出力信号Xを所定時間長Fpのフレームに区切って短時間フーリエ変換を施し、当該信号Xのスペクトル(複素スペクトル)Xp(k,m)をフレーム毎に出力する。ここで、記号kは周波数を指定する周波数ビンインデックスであり、記号mはフレームを指定するフレームインデックスである。なお、短時間フーリエ変換のアルゴリズムについては周知のものを適宜利用するようにすれば良い。
雑音推定部114−pおよび反復SS部116−pは、車載LANを介してイグニッション指令(すなわち、エンジンの点火指示)を検出したことを契機とし、イグニッション指令の検出から所定時間が経過した時点(すなわち、エンジンの稼動が安定したアイドリング状態になったと推測される頃合)以降のフレームを処理対象として反復スペクトル減算による雑音の推定および低減を行う。雑音推定部114−pおよび反復SS部116−pが行う処理は、イグニッション指令の検出から所定時間が経過した時点を起算点とする所定時間長の雑音推定区間に属するフレームを解析して圧力センサ20の出力信号に含まれる雑音を推定する雑音推定処理と、この雑音推定処理により推定された雑音の振幅スペクトルを利用して当該雑音推定区間以降の各フレームに含まれる雑音を低減させる雑音低減処理とに大別される。
雑音推定処理では、雑音推定部114−pは、雑音推定区間に属するフレームに含まれる雑音成分の振幅スペクトル(以下、雑音振幅スペクトル)を推定する処理を予め定められた回数(本実施形態では、I(2以上の任意の自然数)回)に亘って繰り返し実行する。第1回目の処理においては、雑音推定部114−pは、数1に示す演算を行う。すなわち、雑音推定部114−pは、雑音推定区間に属する各フレームにおける圧力センサ20の出力信号Xのパワースペクトルの平均(数1右辺参照)を算出し、その算出結果を雑音振幅スペクトルの初期値N
p,1(k)として記憶する。数1において記号mτは上記雑音推定区間に属するフレームの各々を指定するフレームインデックスであり、N
p,mτは当該雑音推定区間の時間長に相当するフレーム数である。また、雑音推定部114−pは、上記の要領で算出した雑音振幅スペクトルN
p,1(k)を反復SS部116−pとSNR推定部120に与える。反復SS部116−pおよびSNR推定部120の各々は、雑音推定部114−pから与えられる雑音振幅スペクトルN
p,1(k)を記憶する。
第i(i≧2)回目の処理においては、雑音推定部114−pは、以下の数2に示す演算を行って雑音振幅スペクトルN
p,i(k)を算出し記憶するとともに、雑音振幅スペクトルN
p,i(k)を反復SS部116−pとSNR推定部120に与える。数2右辺における|Y
p,i−1(k、mτ)|は、以下の数3または数4にしたがって反復SS部116−pによって算出される。雑音推定処理における第i(i≧1)回目の処理では、反復SS部116−pは数3または数4にしたがって振幅スペクトル|Y
p,i(k、mτ)|を算出し雑音推定部114−pに与える。雑音推定部114−pは反復SS部116−pから受け取った振幅スペクトル|Y
p,i(k、mτ)|を記憶し、次回(すなわち、第i+1回目)の処理において雑音振幅スペクトルN
p,i+1(k)の算出に使用する。なお、数2および数4における記号βは0より大きな値を有する減衰係数であり、記号ηは0〜1の範囲で定められるフロアリング係数である。これら減衰係数およびフロアリング係数についても実験等により好適な値に定めるようにすれば良い。
上記I回の処理が実行される結果、雑音推定部114−p、反復SS部116−pおよびSNR推定部120には雑音振幅スペクトルNp,i(k)(i=1〜I)が記憶される。
次いで、雑音低減処理について説明する。
反復SS部116−pは、雑音推定区間以降のフレームの各々に対して反復型雑音抑圧処理を施すことにより、雑音抑圧済み信号Yのスペクトル(複素スペクトル)を順次に生成する。反復型雑音抑圧処理とは、スペクトル減算による雑音成分の抑圧処理(以下「単位抑圧処理」という)を処理対象のフレームの各々に対して反復回数Iだけ累積的に施す処理である。例えば、処理対象のフレームにおける圧力センサ20の出力信号XのスペクトルがX(k,m)である場合、第1回目の単位抑圧処理においては、反復SS部116−pは、前掲数3に示すように、処理対象フレームの振幅スペクトル|X(k,m)|を初期値|Yp,1(k,m)|として記憶する。そして、第i(i≧2)回目の単位抑圧処理においては、反復SS部116−pは、雑音推定処理にて記憶した雑音振幅スペクトルNp,i−1(k)を用いて前掲数4に示す演算を行って振幅スペクトル|Yp,i(k,m)|を生成し、当該振幅スペクトル|Yp,i(k,m)|を記憶する。
第I回目の単位抑圧処理を完了すると、反復SS部116−pは、以下の数5に示す演算を行って信号Ypのスペクトル(複素スペクトル)Y
p(k,m)を生成し、SNR推定部120とISTFT部118−pに与える。なお、数5において記号jは虚数単位であり、記号arg(X
p(k,m))は複素数X
p(k,m)の偏角である。つまり、反復SS部116−pは、第I回目の単位抑圧処理により得られた振幅スペクトル|Y
p,I(k,m)|と圧力センサ20の出力信号Xの位相スペクトルとを合成して信号YpのスペクトルY
p(k,m)を生成するのである。ISFT部118−pは反復SS部116−pから与えられるスペクトルY
p(k,m)に逆フーリエ変換を施して時間領域の信号Ypに変換して雑音抑圧済み信号生成部140に出力する。
SNR推定部120は、図3に示すように事後SNR算出部122と事前SNR算出部124を含んでいる。事後SNR算出部122は、雑音抑圧部110−p(p=1〜P)の各々からX
p(k,m)とN
p,i(k)(i=1〜I)とを受け取り、以下の数6にしたがって事後SNRγ
p(k,m)を算出する。事後SNRγ
p(k,m)は、フレームサイズをFpとして雑音推定を行った場合の圧力センサ20の出力信号Xのm番目のフレームにおける記号kで示される周波数成分についての信号/雑音比である。
そして、事後SNR算出部122は、圧力センサ20の出力信号Xのm番目のフレームにおける記号kで示される周波数成分についての信号/雑音比である事後SNRγ(k,m)を、数6に示す事後SNRγp(k,m)(p=1〜P)から生成し、雑音抑圧済み信号生成部140および信号加工部130に与える。ここで、事後SNRγ(k,m)の生成態様としては種々の態様が考えられる。例えば、事後SNRγp(k,m)(p=1〜P)のインデックスpについての平均を事後SNR(k,m)とするなど、事後SNRγp(k,m)(p=1〜P)を統合して事後SNR(k,m)を算出する態様が考えられる。ただし、各々フレームサイズの異なる処理により求めた事後SNRγp(k,m)(p=1〜P)を統合する際には、周波数分解能の整合を図る必要がある。例えば最も小さいフレームサイズを基準とし、より大きなフレームサイズでは周波数ビンインデックスで示されるよりも広い周波数帯域にてSNRを推定する(例えば、事後SNRγ(k,m)を算出する際には、周波数ビンインデックスkの表す周波数帯域に隣接する他の周波数帯域について事後SNRを統合の対象に含める)必要がある。
また、P種類の事後SNRγp(k,m)のうちの1つを事後SNRγ(k,m)とする態様が考えられる。前述したように、本実施形態における抑圧対象の雑音成分は所謂熱雑音であり、ホワイトノイズに近似した準定常的な信号成分である。したがって、当該雑音成分の時間的な変化は小さく、変化するにしても非常にゆっくりと変化する。このため、事後SNRに対するフレームサイズの依存性は小さく、P種類の事後SNRγp(k,m)のうちの何れか1つで代表させたとしても信号/雑音比の推定精度はさほど劣化しないと考えられるからである。
事前SNR算出部124は、雑音抑圧部110−p(p=1〜P)の各々からY
p(k,m)とN
p,i(k)(i=1〜I)とを受け取り、以下の数7にしたがって事前SNRξ
p(k,m)を算出する。事前SNRξ
p(k,m)は、フレームサイズをFpとして圧力センサ20の出力信号Xに雑音抑圧処理を施して得られる信号Ypのm番目のフレームにおける記号kで示される周波数成分についての信号/雑音比である。
そして、事前SNR算出部124は、雑音抑圧済み信号Yのm番目のフレームにおける記号kで示される周波数成分についての信号/雑音比である事前SNRξ(k,m)を、前掲数7の事前SNRξp(k,m)(p=1〜P)から生成して雑音抑圧済み信号生成部140および信号加工部130に与える。事前SNRξp(k,m)(p=1〜P)から事前SNRξ(k,m)を生成する際の生成態様は、事後SNRγp(k,m)(p=1〜P)から事後SNRγ(k,m)を生成する際の生成態様と同一である。
前述したように、雑音抑圧済み信号生成部140は、SNR推定部120から与えられる事後SNRγ(k,m)および事前SNRξ(k,m)に基づいてエンジンの動作状態を判定し、信号Yp(p=1〜P)をミキシングして雑音抑圧済み信号Yを生成する際のミキシング比率をその判定結果(すなわち、エンジンの動作状態)に応じて調整する。信号加工部130も同様に、事後SNRγ(k,m)および事前SNRξ(k,m)から判定されるエンジンの動作状態に応じて、ミキシング部132におけるミキシング比率、イコライザ134或いはコンプレッサ136における加工処理の内容を調整する。ここで、事後SNRγ(k,m)および事前SNRξ(k,m)に基づいてエンジンの動作状態を判定することができる理由は以下の通りである。
事前SNRと事後SNRの大小関係の組み合わせは、対象信号(エンジン音信号)と雑音信号の大きさの組み合わせにより、図4に示す4つの状態に分類される。なお、図4では、事後SNRγ(k,m)および事前SNRξ(k,m)が各々デシベル値で表現されている。対象信号と雑音信号が共に大きい、または共に小さい場合には、両信号の信号レベルを観測することで状態の判別が可能であるため、図4に示す4状態の各々をそれぞれ判別することが可能である。図4における状態4は所謂アイドリング状態であり、同状態3はエンジンの回転数の増加につれて車速が上昇した状態である。これに対して、図4の状態1或いは状態2はエンジンに何らかの故障が発生した状態である。したがって、エンジンの稼動状態は一般的には図4の状態3と状態4との間で遷移することとなる。
雑音抑圧済み信号生成部140におけるミキシング比率の調整、或いはミキシング部132におけるミキシング比率の調整やイコライザ134(或いはコンプレッサ136)における加工パラメータの制御に事前SNRおよび事後SNRを利用する場合には、以下の数8に示すように、全ての周波数ビンに渡って事前/事後SNRを平均した平均値γ(m)およびξ(m)を、図4のγ(k,m)およびξ(k,m)の代わりに用いるようにすれば良い。なお、エンジン音信号の周波数特性を考慮し、数9に示すように重み付け平均により求めたγ(m)およびξ(m)を図4のγ(k,m)およびξ(k,m)の代わりに用いても良い。数9においてw
γ(k)およびw
ξ(k)はそれぞれk番目の周波数ビンについての重み係数である。
また、イコライザ134或いはコンプレッサ136における加工パラメータの制御においては、全帯域ではなく、いくつかの周波数帯域を設定し、これらに含まれる複数の周波数ビンに渡って、事前/事後SNRを平均し、平均された推定SNRによりマルチバンドコンプレッサやイコライザのパラメータを制御することも可能である。マルチバンドコンプレッサのように、帯域ごとに制御することで一般にエフェクタの効果は高まるからである。
雑音抑圧済み信号生成部140における事後SNRγ(k,m)および事前SNRξ(k,m)に基づくミキシング比率の調整態様としては、事後SNRγ(k,m)および事前SNRξ(k,m)の値からエンジンの動作状態が状態4であると判定される場合には、フレームサイズを指定する変数pが小さいものが支配的になるようにミキシング比率を調整し、同エンジンの動作状態が状態3であると判定される場合には、フレームサイズを指定する変数pが大きいものが支配的になるようにミキシング比率を調整する態様が考えられる。その理由は以下の通りである。
前述したように、図4における状態4はアイドリング状態であり、エンジンの回転数が低い状態である。このように、エンジンの回転数が低い状態では、エンジン音の変動強度(fluctuation strength)が高いため、フレームサイズの小さい雑音抑圧部の出力信号が支配的となるようにミキシング比率を調整してアタック感の喪失を避けることが好ましい。このため、事後SNRγ(k,m)および事前SNRξ(k,m)の値からエンジンの動作状態が状態4であると判定される場合には、フレームサイズを指定する変数pが小さいもの(すなわち、フレームサイズの小さい雑音抑圧部の出力信号)が支配的になるように、信号Ypをミキシングする際のミキシング比率を調整するのである。
これに対して、図4における状態3は、エンジンの回転数の上昇に伴って車速が増加する状態である。この状態では、フレームサイズを指定する変数pが大きいもの(すなわち、フレームサイズの大きい雑音抑圧部の出力信号)が支配的となるようにミキシング比率を調整することで、ミュージカルノイズの発生を抑えつつ自然な臨場感を演出できるようにすることが好ましい。このため、エンジンの動作状態が状態3であると判定される場合には、フレームサイズを指定する変数pが大きいものが支配的になるようにミキシング比率を調整するのである。なお、事後SNRおよび事前SNRに応じて雑音抑圧済み信号生成部140におけるミキシング比率を変更する際には、変更前のミキシング比率から変更後のミキシング比率まで信号Yp(p=1〜P)のミキシング結果が滑らかに変化するように各信号Ypのクロスフェードカーブを調整するようにしても良い。雑音抑圧済み信号生成部140におけるミキシング比率の急激な変更による違和感をエンジン音の聴者(例えば、エンジン音加工システム1が搭載された車両の運転者)に感じさせないようにするためである。
また、フレームサイズの異なる雑音抑圧処理の処理結果(信号Yp)をミキシングして雑音抑圧済み信号Yを生成するということは、あるタップを持ったフィルタを圧力センサ20の出力信号Xに畳み込むことと等価である。したがって、事後SNRγ(k,m)および事前SNRξ(k,m)に応じて信号Ypのミキシング比率を調整するということは、エンジンの稼動状態に応じて合成エンジン音のリバーブ感を制御することと等価である。つまり、事後SNRγ(k,m)および事前SNRξ(k,m)に応じて信号Ypのミキシング比率を調整することで、以下の(A)〜(C)の3つの効果が得られる。
(A)合成エンジン音におけるアタック感の消失を回避すること
(B)合成エンジン音におけるミュージカルノイズ感を低減させること
(C)エンジンの動作状態に応じた合成エンジン音のリバーブ感の制御を可能にすること
信号加工部130におけるミキシング比率の調整およびそのミキシング結果に施す加工内容の調整態様は以下の通りである。例えば、ミキシング部132におけるミキシング比率を事前SNRγ(m)および事後SNRξ(m)に応じて調整する場合には、0から1の範囲の値をとるミキシング係数ζを事前SNRγ(m)および事後SNRξ(m)の関数(以下、ζ(γ(m)、ξ(m))と表記する)として定義しておき、圧力センサ20の出力信号Xのm番目のフレームと雑音抑圧済み信号Yのm番目のフレームとをミキシングする際のミキシング係数としてζ(γ(m)、ξ(m))を両フレームの何れか一方に乗算し、他方に(1−ζ(γ(m)、ξ(m)))を乗算して加算するようにすれば良い。なお、ミキシング部132におけるミキシング比率の急激な変更による違和感をエンジン音の聴者に感じさせないようにするために、変更前のミキシング比率から変更後のミキシング比率までミキシング結果が滑らかに変化するように信号Xおよび信号Yのクロスフェードカーブを調整するようにしても良い。
また、コンプレッサ136によるダイナミックレンジの調整を事前SNRγ(m)および事後SNRξ(m)に基づいて行う場合には、ダイナミックレンジの調整曲線として図5にて実線で示す調整曲線と同点線で示す調整曲線の2種類を用意しておき(図4では、横軸は調整前の信号の信号強度、縦軸は調整後の信号の信号強度)、事前SNRγ(m)および事後SNRξ(m)から状態4と判定される場合(すなわち、雑音抑圧済み信号Yの信号レベルが小さく、かつγ(k,m)<ξ(k,m)の場合)には、図5にて実線で示す調整曲線にしたがってダイナミックレンジの調整を行い、状態3と判定される場合(すなわち、γ(k,m)とξ(k,m)が略等しく、ξ(k,m)>0の場合)には、図5にて点線で示す調整曲線にしたがってダイナミックレンジの調整を行うようにすれば良い。アイドリング時(すなわち、状態4)においてはコンプレッサ136は弱く働いていて構わない一方、状態3へ遷移し車の速度が上がりエンジン音も大きくなる過程では、エンジン音が大きくなるに連れてコンプレッサ136の効きを強くすることで臨場感を高め、運転に対する運転者の満足感を高めることが好ましいからである。
また、雑音抑圧済み信号生成部140における信号Yp(p=1〜P)のミキシング比率の調整によりリバーブ感を演出するのではなく、図1の信号加工部130に遅延回路を追加し(例えば、コンプレッサ136の後段に遅延回路を追加するなど)、この遅延回路によりリバーブ感を演出する場合には、状態3においてはエンジン音が大きな時にはリバーブをオフにしてヌケの良い音を演出し、エンジン音が小さな時にはリバーブをオンにして音に包まれた印象を演出しても良い。このような態様によれば、高級感のあるエンジン音を再現し、運転者の満足感を高めることが可能となる。
前述したように、エンジンの稼動状態は図4の状態3と状態4との間で遷移すると考えられるが、エンジンに何らかの故障が発生した場合には、状態1や状態2への遷移も発生する。事前SNRγ(m)および事後SNRξ(m)から状態1或いは状態2への遷移が発生したと判定された場合には、雑音抑圧の強度を強くしつつ(例えば、雑音抑圧済み信号Yのミキシング比率を高くするなど)、イコライザ134やコンプレッサ136により付与するエフェクトを弱めることが考えられる。状態1或いは状態2においては雑音の強度が高くなるため雑音抑圧の強度を強めることは当然である。しかし、雑音抑圧処理では一般的に処理歪が発生し、この処理歪みは雑音抑圧の強度を強くするほど大きなる傾向があり、この処理歪みが所謂ミュージカルノイズとして現れるのである。このため、雑音抑圧の強度を強めた状態(処理歪が大きくなりつつある状態)でエフェクトの効きを強くすると、運転者が処理歪を知覚する可能性を高めてしまう。そこで、状態1や状態2への遷移が発生した場合には、エフェクトのパラメータが効きの弱くなるよう制御し処理歪を検知しづらくするのである。なお、状態1或いは状態2への遷移が発生した場合には、機器の故障を警告するための報知をエンジン音加工装置10に行わせるようにしても良い。
以上説明したように、本実施形態のエンジン音加工装置10によれば、圧力センサ20の出力信号Xを加工して合成エンジン音信号Zを生成する際に、ミュージカルノイズの発生を抑えつつ圧力センサ20の出力信号に含まれる雑音成分を的確に抑圧することが可能になる。また、本実施形態によれば、リバーブ感を演出するための遅延回路を信号加工部130に設けなくても、雑音抑圧済み信号生成部140における信号Yp(p=1〜P)のミキシング比率を調整することで、エンジンの動作状態に応じたエンジン音のリバーブ感を演出することが可能になる。
また、本実施形態によれば、外気をエンジンに供給するための吸気管内に設けられた圧力センサ20の出力信号Xを加工して合成エンジン音信号Zを生成する際に、車両の運転状況を的確に反映し、かつ雑音の少ない合成エンジン音信号Zを生成することが可能になる。さらに、本実施形態によれば、事前SNRと事後SNRの大小関係や事前SNRの符号に基づいてエンジンの稼動状態が判別されるため、エンジンの稼動状態(例えば、回転数や車速)を検出するためのセンサを別途設ける必要がない。このため、エンジンの稼動状態を検出するためのセンサが設けられていない車両であっても、本実施形態のエンジン音加工システム1を搭載することで、その車室内に車両の運転状況を的確に反映し、かつ雑音の少ない合成エンジン音を放音することが可能になる。
以上本発明の一実施形態について説明したが、この実施形態に以下に述べる変形を加えても勿論良い。
(1)上記実施形態では、エンジンの始動を車載LANを介して検出し、アイドリング状態における圧力センサ20の出力信号(より正確には、雑音推定区間の信号)に基づいて雑音成分の推定を行った。しかし、雑音推定方法として最小統計法を用いることも可能である。非特許文献1において説明される最小統計法は、明示的な音声/非音声区間検出を行わずとも雑音スペクトルを推定可能な手法である。最小統計法により雑音推定を行う態様によれば、圧力センサ20の出力信号のみを用いて雑音が推定可能であるため、エンジンの始動を示す情報を車載LAN経由で収集する必要はなく、季節によるエンジンの安定時間の変化などを考慮する必要がないといった利点がある。また、雑音推定部114−p(p=1〜P)に有音区間検出器を設け、この有音区間検出器により有音区間(圧力センサ20の出力信号の信号レベルが所定の閾値を上回っている区間)ではないと判定された区間を雑音区間として雑音振幅スペクトルの初期値を算出するようにしても良い。
(2)上記実施形態では、数7にしたがった事前SNRを算出したが、以下の数10にしたがった事前SNRを算出しても良い。なお、数10におけるαは0〜1の範囲内の忘却係数であり、実験等を行って好適な値を特定するようにすれば良い。
(3)上記実施形態では、圧力センサ20の出力信号Xに含まれる雑音成分を反復スペクトル減算により抑圧したが、反復スペクトル減算に換えて準ウィナーフィルタなどのウィナーフィルタ族によるフィルタ処理により雑音抑圧を実現しても良い。具体的には、反復SS部116−pに換えて以下の数11に示す演算によりX(k,m)からYp(k,m)を算出するフィルタ処理部を設けるようにすれば良い。
(4)上記実施形態では、反復スペクトル減算により雑音抑圧を実現したが、MMSE-STSA法を用いて雑音抑圧を実現しても良い。
(5)圧力センサ20の出力信号Xと雑音抑圧済み信号Yとをミキシング部132によってミキシングする際に、雑音抑圧部110−p(p=1〜P)の各々における雑音抑圧処理に要する時間に相当する遅延(より好ましくは、雑音抑圧部110(p=1〜P)の各々における雑音抑圧処理に要する時間よりも小さい遅延)を圧力センサ20の出力信号Xに付与した後にミキシングを行うようにしても良い。ここで、圧力センサ20の出力信号Xに付与する遅延を雑音抑圧部110(p=1〜P)の各々における雑音抑圧処理に要する時間よりも小さくする理由は以下の通りである。エンジンルームから車体等を介して音響的に車室内へ伝搬するエンジン音には遅延を付加することができない。このため、圧力センサ20の出力信号Xに雑音抑圧部110(p=1〜P)の各々における雑音抑圧処理に要する時間と同程度の遅延を付与すると、合成エンジン音信号Zも同程度の遅延を有することとなり、スピーカ30から放音される合成エンジン音が音響的に車室内へ伝搬するエンジン音に比較して遅れて聴こえるディレイ・エフェクトと同様の効果が顕著になってしまう。圧力センサ20の出力信号Xに雑音抑圧処理で発生する遅延よりも小さな遅延を付加して雑音抑圧済み信号Yとミキシングするようにすれば、ディレイ・エフェクトの効果を低減しつつ、圧力センサ20の出力信号Xと雑音抑圧済み信号Yとの時間差をある程度解消し、総合的な音作りの幅を拡げることが可能となる。
(6)上記実施形態では、エンジンに外気を供給するための吸気管内に設けられた圧力センサ20の出力信号Xから合成エンジン音信号Zを生成する場合について説明した。しかし、合成エンジン音信号Zの材料となる信号の出力元は、上記のような圧力センサに限定される訳ではない。例えば、エンジンの振動を検出しその検出結果を示す信号を出力するセンサであっても良く、また、エンジンの回転数やトルクを検出しその検出結果を示す信号を出力するセンサであっても良い。要は、エンジンの動作状態を検出しその動作状態を表す信号を出力する車載センサであれば良い。車載センサであれば、エンジンルーム内の過酷な動作環境にも充分に耐えられるからである。
(7)上記実施形態では、雑音抑圧済み信号生成部140における信号Yp(p=1〜P)のミキシング比率、ミキシング部132における信号Xと雑音抑圧済み信号Yのミキシング比率、イコライザ134またはコンプレッサ136における加工の内容を事後SNRおよび事前SNRの大小関係等に基づいて(すなわち、事後SNRおよび事前SNRの大小関係から推定されるエンジンの動作状態に基づいて)調整した。しかし、ミュージカルノイズの低減やアタック感の消失回避という観点から見れば、これらの調整は必ずしも必須ではなく、省略可能である。これらの調整を省略する態様においては、事前SNRおよび事後SNRを算出する必要がないため、SNR推定部120を省略しても良い。また、上記実施形態では、雑音抑圧部110−p(p=1〜P)の各々の出力信号Ypをミキシングして雑音抑圧済み信号Yを生成する雑音抑圧済み信号生成部140と、圧力センサ20の出力信号Xと雑音抑圧済み信号Yとをミキシングして信号Z1を出力するミキシング部132とを各々別個に設けたが、雑音抑圧済み信号生成部140とミキシング部132のうちの何れか一方を省略しても良い。例えばミキシング部132を省略して雑音抑圧済み信号生成部140にミキシング部132の役割を兼任させる場合には、圧力センサ20の出力信号Xと雑音抑圧部110−p(p=1〜P)の各々の出力信号Ypとを雑音抑圧済み信号生成部140に与え、これら各信号をミキシングして信号Z1を生成しイコライザ134に与える処理を雑音抑圧済み信号生成部140に実行させるようにすれば良い。
(8)上記実施形態では、エンジン音加工装置10(DSP)を制御プログラムにしたがって作動させることによって当該DSPを雑音抑圧部110−p(p=1〜P)、SNR推定部120、信号加工部130および雑音抑圧済み信号生成部140として機能させた。しかし、コンピュータを上記各部として機能させるプログラムをCD−ROMなどのコンピュータ読み取り可能な記録媒体に書き込んで配布しても良く、また、インターネットなどの電気通信回線経由のダウンロードにより配布しても良い。このようにして配布されるプログラムにしたがって一般的なコンピュータ(CPU)を作動させることによって、当該コンピュータを上記実施形態のエンジン音加工装置10として機能させることが可能になるからである。
(9)上記実施形態では車室を有する車両(例えば、乗用車などの4輪車)にエンジン音加工システム1を搭載する場合について説明したが、2輪者に搭載することも可能である。2輪車にエンジン音加工システム1を搭載する場合には、運転者が頭に被るヘルメット内にスピーカ30を設けるようにすれば良い。