(57)【要約】【課題】揺らぎを再現し、より実音に近いエンジン音を合成可能なエンジン音合成装置を提供する。【解決手段】２種類のエンジン音データＤ１，Ｄ２を記憶する音データメモリと、音データメモリからエンジン音データＤ１，Ｄ２を読み出すアドレスコントローラと、読み出されたエンジン音データＤ１，Ｄ２を合成する加算器とを備え、合成されるエンジン音データＤ１とエンジン音データＤ２との間の位相をエンジンの爆発ごとに変動させる。【選択図】図１２
2008003267.tif 000002
【特許請求の範囲】
【請求項１】
第１のエンジン音と第２のエンジン音とを記憶する記憶手段と、
前記記憶手段から第１のエンジン音と第２のエンジン音とを読み出す読出手段と、
前記読出手段により読み出された第１のエンジン音と第２のエンジン音とを合成する合成手段と、
前記合成手段により合成される第１のエンジン音と第２のエンジン音との間の位相をエンジンの爆発ごとに変動させる位相変動手段とを備えたことを特徴とするエンジン音合成装置。
【請求項２】
請求項１に記載のエンジン音合成装置であって、
前記記憶手段は、前記第１のエンジン音を時分割した複数の第１のエンジン音データをアドレス順に記憶し、前記第２のエンジン音を時分割した複数の第２のエンジン音データをアドレス順に記憶し、
前記位相変動手段は、
乱数を生成する乱数生成手段と、
前記乱数生成手段により生成された乱数分の差を有する第１の開始アドレスと第２の開始アドレスとを生成する開始アドレス生成手段とを含み、
前記読出手段は、
前記開始アドレス生成手段により生成された第１の開始アドレスから順に変化する第１の読出アドレスを生成して前記記憶手段に与える第１の読出アドレス生成手段と、
前記開始アドレス生成手段により生成された第２の開始アドレスから順に変化する第２の読出アドレスを生成して前記記憶手段に与える第２の読出アドレス生成手段とを含むことを特徴とするエンジン音合成装置。
【請求項３】
請求項２に記載のエンジン音合成装置であって、
前記記憶手段は、前記第１のエンジン音データのアドレスよりも前のアドレスに第１の無音データを記憶し、前記第２の音データのアドレスよりも前のアドレスに第２の無音データを記憶することを特徴とするエンジン音合成装置。
【請求項４】
請求項３に記載のエンジン音合成装置であって、
前記乱数生成手段により生成される乱数は０から所定の最大値までの値を取り、
前記第１の無音データは前記乱数の最大値の２分の１に相当する長さを有し、前記第２の無音データは前記乱数の最大値に相当する長さを有することを特徴とするエンジン音合成装置。
【請求項５】
請求項１に記載のエンジン音合成装置であってさらに、
スロットル開度及び／又はエンジン回転数を示す運転状態を生成する運転状態生成手段を備え、
前記記憶手段は、実際のエンジン音をスロットル開度及び／又はエンジン回転数ごとに収録してなる複数通りの第１及び第２のエンジン音を記憶し、
前記読出手段は、前記記憶手段から読み出すべき第１及び第２のエンジン音として、前記運転状態生成手段により生成された運転状態に応じて前記複数通りの第１及び第２のエンジン音の中から少なくとも２通りの第１及び第２のエンジン音を選択し、
前記エンジン音合成装置はさらに、
前記読出手段により読み出された少なくとも２通りの第１及び第２のエンジン音を補間する補間手段を備えたことを特徴とするエンジン音合成装置。
【請求項６】
第１のエンジン音と第２のエンジン音とを記憶手段から読み出す読出ステップと、
前記読み出された第１のエンジン音と第２のエンジン音とを合成する合成ステップと、
前記合成される第１のエンジン音と第２のエンジン音との間の位相をエンジンの爆発ごとに変動させる位相変動ステップとを備えたことを特徴とするエンジン音合成方法。
【請求項７】
請求項６に記載のエンジン音合成方法であって、
前記記憶手段は、前記第１のエンジン音を時分割した複数の第１のエンジン音データをアドレス順に記憶し、前記第２のエンジン音を時分割した複数の第２のエンジン音データをアドレス順に記憶し、
前記位相変動ステップは、
乱数を生成するステップと、
前記生成された乱数分の差を有する第１の開始アドレスと第２の開始アドレスとを生成するステップとを含み、
前記読出ステップは、
前記開始アドレス生成手段により生成された第１の開始アドレスから順に変化する第１の読出アドレスを生成して前記記憶手段に与えるステップと、
前記開始アドレス生成手段により生成された第２の開始アドレスから順に変化する第２の読出アドレスを生成して前記記憶手段に与えるステップとを含むことを特徴とするエンジン音合成方法。
【請求項８】
エンジンと、
前記エンジンのスロットル開度及び／又はエンジン回転数を示す運転状態を生成する運転状態生成手段と、
第１のエンジン音と第２のエンジン音とを記憶する記憶手段と、
前記記憶手段から第１のエンジン音と第２のエンジン音とを読み出す読出手段と、
前記読出手段により読み出された第１のエンジン音と第２のエンジン音とを合成する合成手段と、
前記合成手段により合成される第１のエンジン音と第２のエンジン音との間の位相を前記運転状態生成手段により生成された運転状態に応じてエンジンの爆発ごとに変動させる位相変動手段とを備えたことを特徴とする輸送機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンジン音合成装置及びその方法に関し、さらに詳しくは、実音を模したエンジン音を合成するためのエンジン音合成装置及びその方法に関する。
【背景技術】
【０００２】
四輪自動車や自動二輪車に代表される車両のエンジン音は、沿道の住民にとっては騒音に過ぎない場合が多い。そこで、近年の騒音規制を契機として、エンジン音の低減のための改良が重ねられ、現在では、著しく静音化されたエンジンが実用化されている。
【０００３】
ところが、車両の運転者にとっては、車両に搭載されたエンジン音には捨てがたい魅力があり、運転時の楽しみの一つでもある。そのため、静音化されたエンジンを搭載した車両は、運転者に十分な満足をもたらすことができず、車両の購買意欲の低下の原因となりかねない。
【０００４】
そこで、下記の特許文献１に記載されているように、四輪自動車の車室内や二輪自動車の運転者が装着するヘルメット内で、合成エンジン音を発生することにより、周囲に対しては静粛性を維持しながら、運転者には十分な音量のエンジン音を感じさせることができる構成が提案されている。特許文献１には、エンジン音データを記憶手段から読み出してエンジン音を合成するエンジン音合成装置が開示されている。この装置では、複数の異なるエンジン運転状態に対して、それぞれ１燃焼サイクル分のエンジン音データを記憶手段に記憶させておき、実際のエンジンの運転状態に応じたエンジン音データを合成するようにしている。そして、合成された１燃焼サイクル分のエンジン音データがエンジン回転速度に応じて繰り返し再生されるようになっている。
【０００５】
また、下記の特許文献２及び３には、各運転状態に対応して複数のエンジン音データを記憶しておき、これらを重み付けして合成するエンジン模擬音形成装置が記載されている。しかしながら、この装置では、合成されるいずれのエンジン音も同じような周波数成分を有しているため、大きいエンジン音が小さいエンジン音をかき消し、同じような音が繰り返されることにより、ブザーのような単調な音になってしまう。
【０００６】
ところで、実際のエンジンは、爆発ごと燃焼圧力や爆発間隔が変化しており、それに応じて、エンジン音には音圧の揺らぎが生じ、かつ、発音間隔の揺らぎが生じている。したがって、より実音に近いエンジン音を合成するためには、爆発ごとにエンジン音を変えて揺らぎを再現する必要がある。下記の特許文献４及び５には、このような揺らぎを再現したエンジン音合成装置が記載されている。
【特許文献１】特開２０００−００１１４２号公報
【特許文献２】特開２００５−１２８２６２号公報
【特許文献３】特開２００５−１３４８８５号公報
【特許文献４】特願２００５−１３０１６９号（未公開先願）
【特許文献５】特願２００５−１４７００４号（未公開先願）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、揺らぎを再現し、より実音に近いエンジン音を合成可能なエンジン音合成装置及びその方法を提供することである。
【課題を解決するための手段及び発明の効果】
【０００８】
本発明によるエンジン音合成装置は、第１のエンジン音と第２のエンジン音とを記憶する記憶手段と、記憶手段から第１のエンジン音と第２のエンジン音とを読み出す読出手段と、読出手段により読み出された第１のエンジン音と第２のエンジン音とを合成する合成手段と、合成手段により合成される第１のエンジン音と第２のエンジン音との間の位相をエンジンの爆発ごとに変動させる位相変動手段とを備える。本発明によるエンジン音合成方法は上記エンジン音合成装置の使用に相当する。本発明における合成対象は少なくとも２つのエンジン音であるから、３つ以上のエンジン音を合成してもよい。
【０００９】
本発明によれば、第１のエンジン音と第２のエンジン音とがその間の位相をエンジンの爆発ごとに変動させながら合成されるので、合成されたエンジン音の音色は爆発ごとに変動し、揺らぎを再現し、より実音に近いエンジン音を合成することができる。
【００１０】
ある実施の形態において、上記記憶手段は、第１のエンジン音を時分割した複数の第１のエンジン音データをアドレス順に記憶し、第２のエンジン音を時分割した複数の第２のエンジン音データをアドレス順に記憶する。位相変動手段は、乱数を生成する乱数生成手段と、乱数生成手段により生成された乱数分の差を有する第１の開始アドレスと第２の開始アドレスとを生成する開始アドレス生成手段とを含む。読出手段は、開始アドレス生成手段により生成された第１の開始アドレスから順に変化（増加又は減少）する第１の読出アドレスを生成して記憶手段に与える第１の読出アドレス生成手段と、開始アドレス生成手段により生成された第２の開始アドレスから順に変化（増加又は減少）する第２の読出アドレスを生成して記憶手段に与える第２の読出アドレス生成手段とを含む。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。
【００１２】
図１を参照して、自動二輪車１は、たとえば電子制御式４サイクル４気筒エンジンからなるエンジン２を動力源とし、このエンジン２からの駆動力を車輪３に伝達して走行するものである。本発明の実施の形態によるエンジン音合成装置１０は、たとえば、運転者４が着座するシート５の下方に配置されている。一方、運転者４が装着するヘルメット６には、アンプ７、スピーカ８及び赤外線受信器９が内蔵されている。アンプ７及び赤外線受信器９は、たとえば、ヘルメット６の顎ガード部（運転者４の顎に対向する部分）に配置され、スピーカ８は、ヘルメット６の耳部（運転者４の耳に対向する部分）に配置されている。赤外線受信器９は、運転者４がヘルメット６を装着した状態で運転者の前方に受信方向が向くように取り付けられている。
【００１３】
運転者４よりも車体の前方部、たとえば燃料タンク１２の上部には、赤外線発信器１４が配設されている。この赤外線発信器１４が発生する赤外線信号がヘルメット６に設けられた赤外線受信器９によって受信されることになる。赤外線発信器１４には、エンジン音合成装置１０から、合成エンジン音データに対応した音声信号が与えられるようになっている。
【００１４】
このような構成により、エンジン音合成装置１０が生成した合成エンジン音データに対応する音声信号が、赤外線発信器１４から赤外線受信器９へと送られ、アンプ７で増幅された後に、スピーカ８によって音響化されて出力される。
【００１５】
エンジン２には、スロットル開度を検出するスロットル開度センサ１１と、エンジン２の回転パルス信号を生成する回転パルス生成器１３とが装備されており、これらの出力信号は、エンジン音合成装置１０に入力されている。回転パルス生成器１３は、たとえば、クランクシャフトの１回転ごとに１パルスを出力するものである。４サイクル単気筒エンジンの場合には、クランクシャフトの２回転（７２０度の回転）に１回のタイミングで爆発が生じるので、回転パルス生成器１３が生成する回転パルス信号の２周期分が爆発間隔に等しくなる。
【００１６】
エンジン２のスロットル開度は、ハンドルに設けられたアクセルグリップ（通常は右側グリップ）の操作量に対応するので、スロットル開度センサ１１の代わりに、アクセルグリップの操作量を検出するアクセル操作量センサの出力信号をエンジン音合成装置１０に入力することもできる。
【００１７】
このような構成により、エンジン音合成装置１０は、エンジン２のスロットル開度等に対応した合成エンジン音信号を発生し、これに対応した合成エンジン音がスピーカ８から出力される。これにより、エンジン２が極めて静粛性の高いものであったとしても、運転者４はエンジン音を感じながら、自動二輪車１の運転を楽しむことができる。
【００１８】
図２を参照して、エンジン音合成装置１０は、スロットル開度センサ１１又はアクセル操作量センサの出力信号に基づいてスロットル開度データＴｈｒを生成するスロットル開度検出部２１と、回転パルス生成器１３が生成する回転パルス信号Ｒｏｔの時間間隔を検出してパルス間隔データＩｎｔを生成するパルス間隔検出部２２と、合成エンジン音データ生成部２４と、この合成エンジン音データ生成部２４が生成した合成エンジン音データをアナログ音声信号に変換するディジタル／アナログ変換機能を備えた出力処理部２５とを備える。合成エンジン音データ生成部２４には、スロットル開度データＴｈｒ、回転パルス信号Ｒｏｔ及びパルス間隔データＩｎｔが入力されており、合成エンジン音データ生成部２４は、これらに基づいて合成エンジン音データを生成する。スロットル開度検出部２１及びパルス間隔検出部２２は、エンジンの運転状態を検出する運転状態検出部２０を構成している。パルス間隔データＩｎｔは、エンジン回転速度に１対１に対応するデータであるから、結局、エンジン回転速度を表すデータであるとも言える。
【００１９】
パルス間隔検出部２２は、基準クロック信号ＣＬＫ（たとえば周波数４４．１ｋＨｚ）を計数するとともに、回転パルス信号Ｒｏｔが与えられるたびに計数値を出力してリセットされるカウンタで構成することができる。すなわち、回転パルス信号Ｒｏｔの入力間隔の間の基準クロック数がパルス間隔データＩｎｔとなる。
【００２０】
図３を参照して、合成エンジン音データ生成部２４は、タイミングコントローラ２６と、開始・終了アドレステーブル２８と、乱数生成部３０と、開始・終了アドレス生成部３２と、回転数比率算出部３４と、加減速音比率算出部３６と、バッファ音生成部４１〜４４と、加算器４６とを備える。
【００２１】
タイミングコントローラ２６は、回転パルス信号Ｒｏｔ、パルス間隔データＩｎｔ及び基準クロック信号ＣＬＫに応答して、開始パルス信号ＳＴ１〜ＳＴ４及び開始気筒番号データＳＮを順番に繰り返し生成する。開始パルス信号ＳＴ１〜ＳＴ４は、それぞれバッファ音生成部４１〜４４に与えられる。開始気筒番号データＳＮは、開始・終了アドレス生成部３２に与えられる。
【００２２】
タイミングコントローラ２６は、エンジン回転速度に対応して、後述するバッファ音生成部４１〜４４からの音データの出力タイミングを制御する。タイミングコントローラ２６は、図４に具体的に示すように、カウンタ２６１と、分周器２６２と、比較器２６３と、開始パルス生成器２６４とを含む。図４及び図５を参照して、カウンタ２６１は、回転パルス信号Ｒｏｔに応答してゼロにリセットされ、基準クロック信号ＣＬＫに応答してインクリメントされる。分周器２６２は、パルス間隔データＩｎｔを２分の１倍にする。比較器２６３は、カウンタ２６１の出力値を分周器２６２の出力値と比較し、出力値が同じ場合に遅延回転パルス信号Ｒｏｔｄを生成する。この遅延回転パルス信号Ｒｏｔｄは、回転パルス信号ＲｏｔよりもＩｎｔ／２だけ遅れている。開始パルス生成器２６４は、最初の回転パルス信号Ｒｏｔに応答して開始パルス信号ＳＴ１を立ち上げ、開始気筒番号データＳＮを「１」に設定する。開始パルス生成器２６４はまた、次の遅延回転パルス信号Ｒｏｔｄに応答して回転パルス信号ＳＴ２を立ち上げ、開始気筒番号データＳＮを「２」に設定する。開始パルス生成器２６４はまた、次の回転パルス信号Ｒｏｔに応答して回転パルス信号ＳＴ３を立ち上げ、開始気筒番号データＳＮを「３」に設定する。開始パルス生成器２６４はまた、次の遅延回転パルス信号Ｒｏｔｄに応答して回転パルス信号ＳＴ４を立ち上げ、開始気筒番号データＳＮを「４」に設定する。
ここで例示したタイミングコントローラ２６は４気筒用であるため、パルス間隔データＩｎｔを２分の１倍にしているが、単気筒の場合は２倍、２気筒の場合は１倍、８気筒の場合は４分の１倍にすればよい。また、開始気筒番号データＳＮは、単気筒の場合は「１」が繰り返し設定され、２気筒の場合は「１」及び「２」が繰り返し設定され、８気筒の場合は「１」〜「８」が順番に繰り返し設定されるようにすればよい。
【００２３】
開始・終了アドレステーブル２８は、図６に具体的に示すように、加速音アドレステーブル２８１と、減速音アドレステーブル２８２とに分割される。アドレステーブル２８１及び２８２は気筒ごとに１つずつ設けられる。本例は４気筒であるから、アドレステーブル２８１及び２８２は４つずつ設けられる。ちなみに、アドレステーブル２８１及び２８２は単気筒の場合は１つずつ、２気筒の場合は２つずつ、８気筒の場合は８つずつ設けられる。
【００２４】
加速音アドレステーブル２８１には、加速音が格納されている音データメモリ（図８中の４１０）の開始アドレスＳａ及び終了アドレスＥａが登録されている。具体的には、Ｎ個のパルス間隔データＩｎｔａ１〜ＩｎｔａＮに対応付けて、Ｎ個の加速エンジン音データＤａ１（音識別情報＝＃１）が格納されている開始アドレスＳａ１１〜ＳａＮ１及び終了アドレスＥａ１１〜ＥａＮ１と、Ｎ個の加速エンジン音データＤａ２（音識別情報＝＃２）が格納されている開始アドレスＳａ１２〜ＳａＮ２及び終了アドレスＥａ１２〜ＥａＮ２とが登録されている。
【００２５】
減速音アドレステーブル２８２には、減速音が格納されている音データメモリ（図８中の４１０）の開始アドレスＳｄ及び終了アドレスＥｄが登録されている。具体的には、Ｎ個のパルス間隔データＩｎｔｄ１〜ＩｎｔｄＮに対応付けて、Ｎ個の減速エンジン音データＤｄ１（音識別情報＝＃１）が格納されている開始アドレスＳｄ１１〜ＳｄＮ１及び終了アドレスＥｄ１１〜ＥｄＮ１と、Ｎ個の減速エンジン音データＤｄ２（音識別情報＝＃２）が格納されている開始アドレスＳｄ１２〜ＳｄＮ２及び終了アドレスＥｄ１２〜ＥｄＮ２とが登録されている。
【００２６】
図７を参照して、開始・終了アドレス生成部３２は、タイミングコントローラ２６から出力される開始気筒番号データＳＮに応じて、対応する１対の加速音アドレステーブル２８１及び減速音アドレステーブル２８２を選択する（３２１）。
【００２７】
開始・終了アドレス生成部３２は、パルス間隔データＩｎｔ（Ｉｎｔａ（Ｘ−１）<Ｉｎｔ<ＩｎｔａＸ）が与えられた場合、選択した加速音アドレステーブル２８１の中から、パルス間隔データＩｎｔａ（Ｘ−１）に対応する加速エンジン音データＤａ１の開始アドレスＳａ（Ｘ−１）１及び終了アドレスＥａ（Ｘ−１）１と、パルス間隔データＩｎｔａ（Ｘ−１）に対応する加速エンジン音データＤａ２の開始アドレスＳａ（Ｘ−１）２及び終了アドレスＥａ（Ｘ−１）２と、パルス間隔データＩｎｔａＸに対応する加速エンジン音データＤａ１の開始アドレスＳａＸ１及び終了アドレスＥａＸ１と、パルス間隔データＩｎｔａＸに対応する加速エンジン音データＤａ２の開始アドレスＳａＸ２及び終了アドレスＥａＸ２とを回転パルス信号Ｒｏｔに応答して読み出す（３２２）。
【００２８】
開始・終了アドレス生成部３２はまた、パルス間隔データＩｎｔ（Ｉｎｔｄ（Ｙ−１）<Ｉｎｔ<ＩｎｔｄＹ）が与えられた場合、選択した減速音アドレステーブル２８２の中から、パルス間隔データＩｎｔｄ（Ｙ−１）に対応するエンジン音データＤｄ１の開始アドレスＳｄ（Ｙ−１）１及び終了アドレスＥｄ（Ｙ−１）１と、パルス間隔データＩｎｔｄ（Ｙ−１）に対応する減速エンジン音データＤｄ２の開始アドレスＳｄ（Ｙ−１）２及び終了アドレスＥｄ（Ｙ−１）２と、パルス間隔データＩｎｔｄＹに対応するエンジン音データＤｄ１の開始アドレスＳｄＹ１及び終了アドレスＥｄＹ１と、パルス間隔データＩｎｔｄＸに対応する減速エンジン音データＤｄ２の開始アドレスＳｄＹ２及び終了アドレスＥｄＹ２とを回転パルス信号Ｒｏｔに応答して読み出す（３２２）。
【００２９】
開始・終了アドレス生成部３２はさらに、エンジン音データＤａ１，Ｄｄ１の開始アドレスＳａ（Ｘ−１）１，ＳａＸ１，Ｓｄ（Ｙ−１）１，ＳｄＹ１及び終了アドレスＥａ（Ｘ−１）１，ＥａＸ１，Ｅｄ（Ｙ−１）１，ＥｄＹ１をそのまま出力するとともに、エンジン音データＤａ２，Ｄｄ２の開始アドレスＳａ（Ｘ−１）２，ＳａＸ２，Ｓｄ（Ｙ−１）２，ＳｄＹ２に、乱数生成部３０で生成された乱数αを加算して出力する（３２３）。
【００３０】
本例は４気筒であるから、４つの開始・終了アドレステーブル２８に基づいて開始及び終了アドレスが生成され、それぞれ４つのバッファ音生成部４１〜４４に与えられる。ちなみに、単気筒の場合は、１つの開始・終了アドレステーブル２８に基づいて開始及び終了アドレスが生成され、図３に示した全てのバッファ音生成部４１〜４４に与えられる。２気筒の場合は、２つの開始・終了アドレステーブル２８のうち一方に基づいて開始及び終了アドレスが生成され、奇数のバッファ音生成部４１及び４３に与えられ、他方の開始・終了アドレステーブル２８に基づいて開始及び終了アドレスが生成され、偶数のバッファ音生成部４２及び４４に与えられる。８気筒の場合は、８つの開始・終了アドレステーブル２８に基づいて開始及び終了アドレスが生成され、順番に４つのバッファ音生成部４１〜４４に与えられる。すなわち、バッファ音生成部４１は第１及び第５の開始・終了アドレステーブル２８を交互に使用し、バッファ音生成部４２は第２及び第６の開始・終了アドレステーブル２８を交互に使用し、バッファ音生成部４３は第３及び第７の開始・終了アドレステーブル２８を交互に使用し、バッファ音生成部４４は第４及び第８の開始・終了アドレステーブル２８を交互に使用する。
【００３１】
バッファ音生成部４１〜４４の各々は、図８に具体的に示すように、アドレスコントローラ４０１〜４０８と、音データメモリ４１０と、加算器４１１〜４１４と、補間回路４８とを備える。
【００３２】
アドレスコントローラ４０１〜４０８は、対応する開始パルス信号ＳＴｉ（ｉ：１〜４）及び基準クロック信号ＣＬＫを共通に受ける。アドレスコントローラ４０１は、開始・終了アドレス生成部３２で生成された開始アドレスＳａ（Ｘ−１）１及び終了アドレスＥａ（Ｘ−１）１を受ける。アドレスコントローラ４０２は、開始・終了アドレス生成部３２で生成された開始アドレスＳａ（Ｘ−１）２＋α及び終了アドレスＥａ（Ｘ−１）２＋αを受ける。アドレスコントローラ４０３は、開始・終了アドレス生成部３２で生成された開始アドレスＳａＸ１及び終了アドレスＥａＸ１を受ける。アドレスコントローラ４０４は、開始・終了アドレス生成部３２で生成された開始アドレスＳａＸ２＋α及び終了アドレスＥａＸ２＋αを受ける。アドレスコントローラ４０５は、開始・終了アドレス生成部３２で生成された開始アドレスＳｄ（Ｙ−１）１及び終了アドレスＥｄ（Ｙ−１）１を受ける。アドレスコントローラ４０６は、開始・終了アドレス生成部３２で生成された開始アドレスＳｄ（Ｙ−１）２＋α及び終了アドレスＥｄ（Ｙ−１）２＋αを受ける。アドレスコントローラ４０７は、開始・終了アドレス生成部３２で生成された開始アドレスＳｄＹ１及び終了アドレスＥｄＹ１を受ける。アドレスコントローラ４０８は、開始・終了アドレス生成部３２で生成された開始アドレスＳｄＹ２＋α及び終了アドレスＥｄＹ２＋αを受ける。
【００３３】
アドレスコントローラ４０１〜４０８の各々はカウンタで構成され、図９に示すように、対応する開始パルス信号ＳＴｉ（ｉ：１〜４）に応答して読出アドレスＲＡを与えられた開始アドレスＳにセットし、その後、基準クロック信号ＣＬＫに応答して読出アドレスＲＡを開始アドレスＳから与えられた終了アドレスＥまでインクリメントし、その読出アドレスＲＤを出力する。
【００３４】
エンジン音は一般に、エンジンの運転状態、つまりエンジン回転数及びスロットル開度に応じて変化する。図１０にエンジンの運転状態を示す。図１０中、縦軸はスロットル開度を示し、横軸はエンジン回転数を示す。スロットル開度は全閉（０％）から全開（１００％）まで連続的に変化する。エンジン回転数はアイドリング時の最低回転数から最高回転数まで連続的に変化する。アイドリング時にスロットル開度を全閉から全開まで急激に開くと、エンジン回転数は最低回転数から最高回転数まで上昇し、その間にエンジンから加速音が生じる。続いて、スロットル開度を全開から全閉まで急激に閉じると、エンジン回転数は最高回転数から最低回転数まで下降し、その間にエンジンから減速音が生じる。図１０に示した運転領域ＤＲ内にある無数の運転状態ごとにエンジン音は異なるが、全運転状態のエンジン音を収録することは不可能である。
【００３５】
そこで、本実施の形態では、全開時における実際の加速音と全閉時における実際の減速音とを収録し、その中間のスロットル開度時における加速音や減速音は収録しない。また、Ｎ通りのエンジン回転数に対し、Ｎ個の実際の加速音とＮ個の実際の減速音とを離散的に収録する。任意のエンジン回転数及び任意のスロットル開度におけるエンジン音は、そこから最も近い４個のエンジン音を補間することにより合成する。詳細は前掲の特許文献４及び５に記載されている。
【００３６】
ただし、特許文献４及び５と異なり本実施の形態では、１組のエンジン回転数及びスロットル開度に対応して２種類のエンジン音データが割り当てられる。具体的には、エンジン回転数（パルス間隔Ｉｎｔａ（Ｘ−１）に相当）及びスロットル全開に対応してエンジン音データＤａ（Ｘ−１）１及びＤａ（Ｘ−１）２が割り当てられる。また、エンジン回転数（パルス間隔ＩｎｔａＸに相当）及びスロットル全開に対応してエンジン音データＤａＸ１及びＤａＸ２が割り当てられる。また、エンジン回転数（パルス間隔Ｉｎｔｄ（Ｙ−１）に相当）及びスロットル全閉に対応してエンジン音データＤｄ（Ｙ−１）１及びＤｄ（Ｙ−１）２が割り当てられる。また、エンジン回転数（パルス間隔ＩｎｔｄＹに相当）及びスロットル全閉に対応してエンジン音データＤｄＹ１及びＤｄＹ２が割り当てられる。本例は４気筒であるから、これら（Ｎ×２×２）個のエンジン音データが音データメモリ４１０にあらかじめ格納されている。なお、本実施の形態では、Ｉｎｔａ（Ｘ−１）＝Ｉｎｔｄ（Ｙ−１）、ＩｎｔａＸ＝ＩｎｔｄＹであり、同じエンジン回転数で全開時の加速音と全閉時の減速音とが収録されている。
【００３７】
再び図８を参照して、アドレスコントローラ４０１〜４０８は読出アドレスＲＤを音データメモリ４１０に提供することにより、エンジン音データＤａ（Ｘ−１）１，Ｄａ（Ｘ−１）２，ＤａＸ１，ＤａＸ２，Ｄｄ（Ｙ−１）１，Ｄｄ（Ｙ−１）２，ＤｄＹ１，ＤｄＹ２をそれぞれ読み出す。
【００３８】
加算器４１１は、エンジン音データＤａ（Ｘ−１）１とエンジン音データＤａ（Ｘ−１）２とを合成してエンジン音データＤａ（Ｘ−１）を出力する。加算器４１２は、エンジン音データＤａＸ１とエンジン音データＤａＸ２とを合成してエンジン音データＤａＸを出力する。加算器４１３は、エンジン音データＤｄ（Ｙ−１）１とエンジン音データＤｄ（Ｙ−１）２とを合成してエンジン音データＤｄ（Ｙ−１）を出力する。加算器４１４は、エンジン音データＤｄＹ１とエンジン音データＤｄＹ２とを合成してエンジン音データＤｄＹを出力する。
【００３９】
補間回路４８は、乗算器４６１〜４６４と、加算器４７１及び４７２と、乗算器４８１及び４８２と、加算器４９０とを含み、加算器４１１〜４１４で合成されたエンジン音データＤａ（Ｘ−１），ＤａＸ，Ｄｄ（Ｙ−１），ＤｄＹを補間して合成エンジン音データＤを出力する。
【００４０】
再び図３及び図１０を参照して、回転数比率算出部３４は、回転パルス信号Ｒｏｔが与えられるたびに、パルス間隔検出部２２から与えられるパルス間隔データＩｎｔの前後のパルス間隔データＩｎｔａ（Ｘ−１），ＩｎｔａＸを開始・終了アドレステーブル２８から読み出し、補間回路４８による補間処理に必要な回転数比率Ａａ（Ｘ−１）及びＡａＸを次の式（１）及び（２）に従い算出する。
【数１】
2008003267.tif 000003
【００４１】
回転数比率算出部３４はまた、回転数比率Ａａ（Ｘ−１）及びＡａＸの代わりに、回転数比率Ａｄ（Ｘ−１）及びＡｄＸを次の式（３）及び（４）に従い算出するようにしてもよい。本実施の形態では上述した通り、Ｉｎｔａ（Ｘ−１）＝Ｉｎｔｄ（Ｙ−１）、ＩｎｔａＸ＝ＩｎｔｄＹだからである。
【数２】
2008003267.tif 000004
【００４２】
図８に示した乗算器４６１〜４６４及び加算器４７１，４７２は、回転数比率算出部３４で算出された回転数比率Ａａ（Ｘ−１）及びＡａＸに従ってエンジン音データＤａ（Ｘ−１）及びＤａＸ並びにＤａ（Ｙ−１）及びＤｄＹをエンジン回転数方向において線形補間を行い、加速エンジン音データＤａ及び減速エンジン音データＤｄを生成する。
【００４３】
再び図３及び図１０を参照して、加減速音比率算出部３６は、回転パルス信号Ｒｏｔが与えられるたびに、スロットル開度検出部２１から与えられるスロットル開度Ｔｈｒ（＝０〜１）に基づいて、補間回路４８による補間処理に必要な加減速音比率Ｒａ（＝Ｔｈｒ）及びＲｄ（＝１−Ｔｈｒ）を算出する。
【００４４】
図８に示した乗算器４８１，４８２及び加算器４９０は、加減速音比率算出部３６で算出された加減速音比率Ｒａ及びＲｄに従って加速エンジン音データＤａ及び減速エンジン音データＤｄをスロットル開度方向において線形補間を行い、合成エンジン音データＤを生成する。ここでは乗算器４８１，４８２及び加算器４９０は線形補間を行っているが、図１１に示すような非線形係数を用いて加減速音比率Ｒａ及びＲｄを算出すれば、非線形補間を行うことも可能である。
【００４５】
次に、上述した１組のエンジン回転数及びスロットル開度に対応して音データメモリ４１０に格納される２種類のエンジン音データについて詳細に説明する。
【００４６】
２種類のエンジン音データの一例を図１２に示す。どちらのエンジン音データＤ１，Ｄ２も実際に収録したエンジン音データの中から数燃焼サイクル分を切り出したものである。ただし、エンジン音データＤ１は図１２（ａ）に示すように、先頭にαｍａｘ／２分の無音データが追加される。ここでαｍａｘは、乱数生成部３０で生成される乱数αの最大値である。一方、エンジン音データＤ２は図１２（ｂ）に示すように、先頭にαｍａｘ分の無音データが追加される。したがって、エンジン音データＤ１は０からαｍａｘ／２まで無音で、αｍａｘ／２以降は有音であるのに対し、エンジン音データＤ２は０からαｍａｘまで無音で、αｍａｘ以降は有音である。
【００４７】
このような２種類のエンジン音データを作成するに際しては、実際に収録したエンジン音データの中から同じ数燃焼サイクル分を切り出してもよいが、後述するようにこれらを位相をずらしながら合成すると、反響音のように不自然なエンジン音になってしまうおそれがある。そこで、異なる数燃焼サイクル分を切り出すのが好ましい。
【００４８】
図１３を参照して、エンジン音データＤ１及びＤ２は所定のサンプリング周波数（たとえば４４．１ｋＨｚ）で時分割され、音データメモリ４１０に開始アドレスＳから終了アドレスＥまでアドレス順に格納される。
【００４９】
エンジン音データＤ１は図１３（ａ）に示すように、時分割されたｎ個のエンジン音データＤ１＿１〜Ｄ１＿ｎがアドレス順に音データメモリ４１０に格納される。ここで、Ｄ１＿１〜Ｄ１＿αｍａｘ／２は無音データであり、Ｄ１＿αｍａｘ／２＋１〜Ｄ１＿ｎは有音データである。一方、エンジン音データＤ２は図１３（ｂ）に示すように、時分割されたｍ個のエンジン音データＤ２＿１〜Ｄ２＿ｍがアドレス順に音データメモリ４１０に格納される。ここで、Ｄ２＿１〜Ｄ２＿αｍａｘは無音データであり、Ｄ２＿αｍａｘ＋１〜Ｄ２＿ｍは有音データである。
【００５０】
アドレスコントローラ４０１，４０３，４０５，４０７は読出アドレスＲＡを開始アドレスＳから終了アドレスＥまで順番に音データメモリ４１０に与え、これによりエンジン音データＤ１を読み出す。エンジン音データＤ１の読出開始アドレスは常に一定のＳである。一方、アドレスコントローラ４０２，４０４，４０６，４０８は読出アドレスＲＡを開始アドレスＳ＋αから終了アドレスＥまで順番に音データメモリ４１０に与え、これによりエンジン音データＤ２を読み出す。αは乱数生成部３０により０からαｍａｘまでの範囲内で生成される乱数であるから、エンジン音Ｄ２の読出開始アドレスはＳからＳ＋αｍａｘまでの範囲内で変動する。
【００５１】
以上のように本発明の実施の形態によれば、２種類のエンジン音データＤ１，Ｄ２があらかじめ収録されており、エンジン音データＤ１は常に一定の開始アドレスＳから読み出され、エンジン音データＤ２は燃焼サイクルごとに変動する開始アドレスＳ＋αから読み出され、それらエンジン音データＤ１及びＤ２が合成されるので、合成されるエンジン音の音色が爆発ごとに変動し、実音に近似した揺らぎを実現することができる。
【００５２】
また、エンジン音データＤ１，Ｄ２の先頭に無音部分を追加し、無音部分から再生を開始するようにしているため、エンジン音が突然に発生せず、滑らかで自然な合成エンジン音を再現できる。また、エンジン音データＤ２の先頭にαｍａｘ分の無音部分を追加し、読出開始アドレスが変動しても常に無音部分から再生を開始するようにしているため、同様に、滑らかで自然な合成エンジン音を再現できる。また、エンジン音データＤ１の先頭に追加する無音部分をαｍａｘ／２分にしているため、エンジン音データＤ１及びＤ２は平均してαｍａｘ／２分の位相だけずれて合成される。よって、偏りのない自然な合成エンジン音を再現できる。
【００５３】
上記実施の形態では２種類のエンジン音をずらして合成しているが、３種類以上のエンジン音をずらして合成するようにしてもよい。また、上記実施の形態ではバッファ音生成部内で２種類のエンジン音を合成しているが、ある１つのバッファ音合成部である１つのエンジン音を生成し、もう１つ別のバッファ音生成部でもう１つ別のエンジン音を生成し、それらを加算器４６で合成するようにしてもよい。また、上記実施の形態ではバッファ音生成部は４つ設けられているが、この数は特に限定されるものではなく、１つでも２つ以上でもよい。
【００５４】
また、上記実施の形態では補間処理は４通りのエンジン音データで行っているが、少なくとも２通りのエンジン音データで行えばよい。また、上記実施の形態では実際のエンジン音を収録してエンジン音データを作成しているが、人工的にエンジン音データを作成することも可能である。また、上記実施の形態ではエンジン音合成装置を自動二輪車に搭載しているが、自動四輪車、水上滑走艇その他の輸送機器に搭載してもよい。また、エンジン音合成装置をゲーム機器に搭載してもよい。
【００５５】
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
【図面の簡単な説明】
【００５６】
【図１】本発明の実施の形態によるエンジン音合成装置を備えた自動二輪車等の概略構成を示す側面図である。
【図２】図１中のエンジン音合成装置の構成を示す機能ブロック図である。
【図３】図２中の合成エンジン音データ生成部の構成を示す機能ブロック図である。
【図４】図３中のタイミングコントローラの構成を示す機能ブロック図である。
【図５】図４に示したタイミングコントローラの動作を示すタイミング図である。
【図６】図３中の開始・終了アドレステーブルの詳細を示す機能ブロック図である。
【図７】図３中の開始・終了アドレス生成部の詳細を示す機能ブロック図である。
【図８】図３中の各バッファ音生成部の構成を示す機能ブロック図である。
【図９】図８中のアドレスコントローラの動作を示すタイミング図である。
【図１０】図８中の音データメモリに収録されているエンジン音の運転状態を示す状態図である。
【図１１】図３中の加減速音比率算出部で算出する非線形補間に必要な加減速音比率の説明図である。
【図１２】図８中の音データメモリに格納されている２種類のエンジン音データの波形図である。
【図１３】図９に示した２種類のエンジン音データのアドレスマップである。
【符号の説明】
【００５７】
２    エンジン
１４    赤外線発信器
２０    運転状態検出部
２１    スロットル開度検出部
２２    パルス間隔検出部
２４    合成エンジン音データ生成部
２８    開始・終了アドレステーブル
３０    乱数生成部
３２    開始・終了アドレス生成部
３４    回転数比率算出部
３６    加減速音比率算出部
４１-４４    バッファ音生成部
４６，４１１-４１４，４７１，４７２，４９０    加算器
４８    補間回路
２６４    開始パルス生成器
２８１    加速音アドレステーブル
２８２    減速音アドレステーブル
４０１-４０８    アドレスコントローラ
４１０    音データメモリ
４６１-４６４，４８１，４８２    乗算器
【図１】
2008003267.tif 000005
【図２】
2008003267.tif 000006
【図３】
2008003267.tif 000007
【図４】
2008003267.tif 000008
【図５】
2008003267.tif 000009
【図６】
2008003267.tif 000010
【図７】
2008003267.tif 000011
【図８】
2008003267.tif 000012
【図９】
2008003267.tif 000013
【図１０】
2008003267.tif 000014
【図１１】
2008003267.tif 000015
【図１２】
2008003267.tif 000016
【図１３】
2008003267.tif 000017