(57)【要約】【課題】  複数の音響信号を合成した場合に、合成前の音響信号の影響を残しつつも、新規な音響信号を創作することが可能な音響信号の合成装置、および合成すると同時に再生することが可能な音響信号の合成再生装置を提供する。【解決手段】  音響信号記憶部６１から、ブロック読込手段１０が複数の音響信号を所定のサンプル数から成る音響ブロック単位で読み込み、周波数変換手段２０が各音響信号から読み込んだ音響ブロックにフーリエ変換を施してスペクトルブロックを得る。ブロック読込手段３０は、各音響信号から得られたスペクトルブロックを合成して合成スペクトルブロックを生成し、周波数逆変換手段４０がフーリエ逆変換により合成音響ブロックを生成する。生成された合成音響ブロックは、出力手段５０により順次出力され、合成音響信号記憶部６０に合成音響信号が記録される。【選択図】  図１
2006139158.tif 000002
【特許請求の範囲】
【請求項１】
時系列のサンプル列で構成される複数の音響信号を合成して、合成音響信号を生成する装置であって、
複数の音響信号から、それぞれ所定数のサンプルを音響ブロックとして読み込むブロック読込手段と、
前記読み込んだ音響ブロックに対してフーリエ変換を行い、スペクトルブロックを生成する周波数変換手段と、
前記各音響信号から得られたスペクトルブロックの互いに対応する成分同士を積演算することにより、スペクトルブロックを合成して合成スペクトルブロックを生成するブロック合成手段と、
前記生成された合成スペクトルブロックに対してフーリエ逆変換を行い、合成音響ブロックを生成する周波数逆変換手段と、
前記生成された合成音響ブロックを時系列順に出力する出力手段と、
を有することを特徴とする音響信号の合成装置。
【請求項２】
請求項１において、
前記ブロック読込手段は、音響信号において時間軸上で所定数のサンプルを重複させて音響ブロックを読み込み、所定の重み関数により読み込んだ音響ブロックにおけるサンプルの値を変更するものであることを特徴とする音響信号の合成装置。
【請求項３】
請求項１において、
前記ブロック合成手段は、前記各音響信号から得られたスペクトルブロックより時間的に過去に位置する１以上のスペクトルブロックの対応する成分同士の平均値を利用してスペクトルブロックの合成を行うものであることを特徴とする音響信号の合成装置。
【請求項４】
請求項１において、
前記ブロック読込手段は、各音響信号についてブロック数が同数となるように、音響信号ごとに異なる数のサンプルを１つの音響ブロックとして当該音響ブロックを読み込んだ後、複数の音響信号のうち１つを基準音響信号とし、他の音響信号を基準音響信号の音響ブロックのサンプル数に一致させるために音響ブロック内の一部のサンプルを削除する処理を行うものであり、
前記周波数変換手段は、一部のサンプルが削除された前記音響ブロックに対してフーリエ変換を行い、得られたスペクトルブロックに対して周波数軸方向に変倍処理を施すものであり、
前記ブロック合成手段は、周波数軸方向に変倍処理が施されたスペクトルブロックに対して処理を行うものであることを特徴とする音響信号の合成装置。
【請求項５】
請求項１において、
前記ブロック合成手段は、あらかじめ各音響信号に設定された重みに基づいて、各音響信号から得られたスペクトルブロックの周波数成分に変倍をかけて合成するものであることを特徴とする音響信号の合成装置。
【請求項６】
請求項５において、
前記ブロック合成手段は、各音響信号が複数のチャンネルで構成されている場合、
各チャンネルごとに得られたスペクトルブロックの周波数成分に、チャンネルごとに異なる重みで変倍をかけるものであることを特徴とする音響信号の合成装置。
【請求項７】
時系列のサンプル列で構成される複数の音響信号を合成して、音響再生する装置であって、
複数の音響信号から、それぞれ所定数のサンプルを音響ブロックとして読み込むブロック読込手段と、
前記読み込んだ音響ブロックに対してフーリエ変換を行い、スペクトルブロックを生成する周波数変換手段と、
前記各音響信号から得られたスペクトルブロックの互いに対応する成分同士を積演算することにより、スペクトルブロックを合成して合成スペクトルブロックを生成するブロック合成手段と、
前記生成された合成スペクトルブロックに対してフーリエ逆変換を行い、合成音響ブロックを生成する周波数逆変換手段と、
前記合成音響ブロックを２つ以上蓄積する合成ブロック蓄積手段と、
前記生成された合成音響ブロックを前記合成ブロック蓄積手段に投入する合成ブロック投入手段と、
前記合成ブロック蓄積手段内に存在する合成音響ブロックのうち最初に投入された合成音響ブロックを音響再生し、再生終了後に当該合成音響ブロックを前記合成ブロック蓄積手段から削除させることで、新規に合成音響ブロックを投入できる余地を前記合成ブロック蓄積手段に設けるとともに、次に蓄積されている合成音響ブロックが存在する場合に、前記最初に投入された合成音響ブロックに連続して次の合成音響ブロックを音響再生する合成ブロック再生手段と、
を備えていることを特徴とする音響信号の合成再生装置。
【請求項８】
請求項７において、
前記合成ブロック投入手段が合成音響ブロックを投入する際に、
前記合成ブロック蓄積手段が新規に合成音響ブロックを受け入れる余裕がない場合、前記ブロック読込手段、前記周波数変換手段、前記ブロック合成手段、前記周波数逆変換手段に対して、各動作を中断するメッセージを送り、前記各手段は、現在の状態で中断する制御を行っていることを特徴とする音響信号の再生装置。
【請求項９】
請求項７において、
前記合成ブロック再生手段が、１つの合成音響ブロックを再生終了する度に、前記ブロック読込手段、前記周波数変換手段、前記ブロック合成手段、前記周波数逆変換手段に対して、前記各手段に中断している動作を再開させる制御を行うことを特徴とする音響信号の再生装置。
【請求項１０】
コンピュータに、
複数の音響信号から、それぞれ所定数のサンプルを音響ブロックとして読み込むブロック読込手段と、
前記読み込んだ音響ブロックに対してフーリエ変換を行い、スペクトルブロックを生成する周波数変換手段、
前記各音響信号から得られたスペクトルブロックの互いに対応する成分同士を積演算することにより、スペクトルブロックを合成して合成スペクトルブロックを生成するブロック合成手段、
前記生成された合成スペクトルブロックに対してフーリエ逆変換を行い、合成音響ブロックを生成する周波数逆変換手段、
前記生成された合成音響ブロックを時系列順に出力する出力手段を実行させるためのコンピュータプログラム。
【請求項１１】
コンピュータに、
複数の音響信号から、それぞれ所定数のサンプルを音響ブロックとして読み込むブロック読込手段、
前記読み込んだ音響ブロックに対してフーリエ変換を行い、スペクトルブロックを生成する周波数変換手段、
前記各音響信号から得られたスペクトルブロックの互いに対応する成分同士を積演算することにより、スペクトルブロックを合成して合成スペクトルブロックを生成するブロック合成手段、
前記生成された合成スペクトルブロックに対してフーリエ逆変換を行い、合成音響ブロックを生成する周波数逆変換手段、
前記合成音響ブロックを２つ以上蓄積する合成ブロック蓄積手段、
前記生成された合成音響ブロックを前記合成ブロック蓄積手段に投入する合成ブロック投入手段、
前記合成ブロック蓄積手段内に存在する合成音響ブロックのうち最初に投入された合成音響ブロックを音響再生し、再生終了後に当該合成音響ブロックを前記合成ブロック蓄積手段から削除させることで、新規に合成音響ブロックを投入できる余地を前記合成ブロック蓄積手段に設けるとともに、次に蓄積されている合成音響ブロックが存在する場合に、前記最初に投入された合成音響ブロックに連続して次の合成音響ブロックを音響再生する合成ブロック再生手段を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＤ・ＤＶＤ等を用いた民生・業務用途における鑑賞用のパッケージ音楽再生分野、放送事業者・公共施設の事業者等が商業目的で配信するＢＧＭ分野において好適な音響信号の合成および再生技術に関する。
【背景技術】
【０００２】
従来より、一般の音楽制作においては、複数の音響信号を波形上で重ね合わせることがしばしば行われている。（例えば、特許文献１、２参照）。
【特許文献１】特許第２６７１８２５号
【特許文献２】特許第３０９２５９２号
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来の手法では、合成後に得られる音響信号は、元の音響信号を単に足し合わせたようなものになる。すなわち、別々の楽器で演奏された音響信号を合成した場合、２つの楽器で合奏したような状態の音響信号が得られるものであり、新規な音楽を創作するということはできない。
【０００４】
そこで、本発明は、複数の音響信号を合成した場合に、合成前の音響信号の影響を残しつつも、新規な音響信号を創作することが可能な音響信号の合成装置、および合成すると同時に再生することが可能な音響信号の合成再生装置を提供することを課題とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するため、本発明では、時系列のサンプル列で構成される複数の音響信号を合成して、合成音響信号を生成する装置として、複数の音響信号から、それぞれ所定数のサンプルを音響ブロックとして読み込むブロック読込手段と、前記読み込んだ音響ブロックに対してフーリエ変換を行い、スペクトルブロックを生成する周波数変換手段と、前記各音響信号から得られたスペクトルブロックの互いに対応する成分同士を積演算することにより、スペクトルブロックを合成して合成スペクトルブロックを生成するブロック合成手段と、前記生成された合成スペクトルブロックに対してフーリエ逆変換を行い、合成音響ブロックを生成する周波数逆変換手段と、前記生成された合成音響ブロックを時系列順に出力する出力手段を有する構成としたことを特徴とする。
【発明の効果】
【０００６】
本発明によれば、複数の音響信号に対して、各音響信号を所定の単位で周波数解析した後、得られた周波数成分同士を合成し、合成後の周波数成分を周波数逆変換することにより、音響信号に戻すようにしたので、合成後の音響信号は、合成前の各音響信号の影響を残しつつも新規なものとなるという効果を奏する。
【発明を実施するための最良の形態】
【０００７】
以下、本発明の実施形態について図面を参照して詳細に説明する。
（１．合成装置の構成）
図１は、本発明に係る音響信号合成装置の構成を示す機能ブロック図である。図１において、１０はブロック読込手段、２０は周波数変換手段、３０はブロック合成手段、４０は周波数逆変換手段、５０は出力手段、６０は記憶手段、６１は音響信号記憶部、６２は合成音響信号記憶部である。
【０００８】
ブロック読込手段１０は、合成対象とする元の各音響信号から所定数のサンプルを１ブロックとして読み込む機能を有している。周波数変換手段２０は、ブロック読込手段１０が読み込んだ音響信号のブロックをフーリエ変換してスペクトルブロックを生成する機能を有している。ブロック合成手段３０は、各音響信号について得られたスペクトルブロックを合成して１つの合成スペクトルブロックを生成する機能を有している。周波数逆変換手段４０は、得られた合成スペクトルブロックをフーリエ逆変換することにより、１つの合成音響ブロックを生成する機能を有している。出力手段５０は、得られた合成音響ブロックを順次出力する機能を有している。記憶手段６０は、合成の対象となる複数の音響信号を記憶した音響信号記憶部６１と、合成後の合成音響信号を記憶する合成音響信号記憶部６２を有しており、その他処理に必要な各種情報を記憶するものである。図１に示した各構成手段は、現実にはコンピュータおよびその周辺機器等のハードウェアに専用のプログラムを搭載することにより実現される。すなわち、コンピュータが、専用のプログラムに従って各手段の内容を実行することになる。
【０００９】
（２．１．合成装置の処理動作）
次に、図１に示した音響信号合成装置の処理動作について説明する。本発明は、２以上の音響信号を合成するものであるが、以下の例では、最も単純な例として、２つの音響信号を合成する場合について説明する。まず、ブロック読込手段１０は、外部から指定された２つの音響信号からそれぞれ所定数のサンプルを１音響ブロックとして読み込む。作業者は、複数の音響信号を読み込ませる際に、１つを基準音響信号として指定する。ブロック読込手段１０が読み込む１音響ブロックのサンプル数は、適宜設定することができるが、サンプリング周波数が４４．１ｋＨｚの場合、４０９６サンプル程度とすることが望ましい。したがって、ブロック読込手段１０は、基準音響信号Ｐ、音響信号Ｑについてそれぞれ４０９６サンプルずつ、順次音響ブロックとして読み込んでいくことになる。音響ブロックは、隣接する音響ブロックとサンプルが重複するように読み込んで行く。例えば、先頭の音響ブロックがサンプル番号１から４０９６までとしたら、２番目の音響ブロックはサンプル番号２０４９から６１４４までとし、３番目の音響ブロックはサンプル番号４０９７から８１９２までとする。この場合、隣接する音響ブロックにおいて、２０４８サンプルづつ重複して符号化することになる。このように音響ブロックを、区間を重複させて設定するのは、音響ブロックの変わり目で、ノイズが発生するのを防ぐためである。重複したサンプルについて、合成後に信号レベルが不連続にならないようにするために、後述するようにフーリエ変換する際には、窓関数を乗じるようにしている。
【００１０】
続いて、周波数変換手段２０は、読み込んだ各音響ブロックに対して、フーリエ変換を行いスペクトルブロックを得る。具体的には、音響信号ｘ（ｉ）に対して、以下の〔数式１〕に従った処理を行い、変換データの実部Ａ（ｊ）、虚部Ｂ（ｊ）を得る。
【００１１】
〔数式１〕
Ａ（ｊ）＝Σi=0,…,N-1ｘ（ｉ）・ｃｏｓ（２πｉｊ／Ｎ）
Ｂ（ｊ）＝Σi=0,…,N-1ｘ（ｉ）・ｓｉｎ（２πｉｊ／Ｎ）
【００１２】
〔数式１〕において、ｉは、音響ブロック内のＮ個のサンプルに付した通し番号であり、ｉ＝０，１，２，…Ｎ−１の整数値をとる。また、ｊは周波数の値について、値の小さなものから順に付した通し番号であり、ｉと同様に、ｊ＝０，１，２，…Ｎ−１の整数値をとる。この際、音響信号ｘ（ｉ）には、Ｗ（ｉ）＝０．５−０．５・ｃｏｓ（２πｉ／Ｎ）で表現される窓関数（ハニング窓）を重みとして乗じる。このような窓関数は、フーリエ変換を行う際に、周波数成分に波形を分断することにより発生する高周波ノイズを低減するためと、フーリエ逆変換を行う際に解析区間の間で信号レベルが不連続にならないように連結させるために用いられるものであり、周知の技術である。
【００１３】
上記〔数式１〕に従った処理を実行することにより、周波数に対応した成分であるスペクトルで表現されたスペクトルブロックが得られる。続いて、ブロック合成手段３０が、基準音響信号Ｐから得られたスペクトルブロックと音響信号Ｑから得られたスペクトルブロックを合成する処理を行う。この合成処理は、スペクトルブロック同士の積演算により行われる。具体的には、上記〔数式１〕により得られた基準音響信号Ｐの実部Ａｐ（ｊ）、虚部Ｂｐ（ｊ）音響信号Ｑの実部Ａｑ（ｊ）、虚部Ｂｑ（ｊ）を用いて、以下の〔数式２〕により、合成値として実部Ａ´（ｊ）、虚部Ｂ´（ｊ）を算出する。
【００１４】
〔数式２〕
Ａ´（ｊ）＝Ａｐ（ｊ）・Ｃ｛Ｅｑ（ｊ）／Ｅｐ（ｊ）｝1/4
Ｂ´（ｊ）＝Ｂｐ（ｊ）・Ｃ｛Ｅｑ（ｊ）／Ｅｐ（ｊ）｝1/4
ただし、Ｅｐ（ｊ）＝Ａｐ（ｊ）2＋Ｂｐ（ｊ）2，Ｅｑ（ｊ）＝Ａｑ（ｊ）2＋Ｂｑ（ｊ）2
【００１５】
上記〔数式２〕において、Ｃは、振幅補正のための比例係数であり、適宜設定される。〔数式２〕の第１、第２式における｛Ｅｑ（ｊ）／Ｅｐ（ｊ）｝は、通常、１より小さい値となるので、乗算することにより、信号レベルが小さくなってしまう。その補正を行うために比例係数Ｃを乗算するのである。従って、Ｃは１より大きい値とすることが必要となる。なお、スペクトルブロック同士の積演算とは、基準音響信号Ｐの周波数成分である実部Ａｐ（ｊ）、虚部Ｂｐ（ｊ）に、音響信号Ｑのスペクトル強度Ｅｑ（ｊ）が乗算されることを示している。
【００１６】
また、上記Ｅｑ（ｊ）は、各ブロック単位で算出されるものであるが、対象とする音響信号によっては、後のスペクトル合成処理に伴い粒状ノイズが発生する場合がある。これは、時間軸方向にスペクトルの不連続が発生するためである。この対策として、対象とするブロックの近傍の数ブロックにおいて算出されたＥｑ（ｊ）の平均値を用いることが望ましい。本実施形態では、対象とするブロックの２ブロック過去までのブロックで算出されたＥｑ（ｊ）との３つのＥｑ（ｊ）の平均値をＥｑ（ｊ）として、上記〔数式２〕の第１式、第２式で用いている。
【００１７】
次に、周波数逆変換手段４０が、合成により得られた合成スペクトルブロックをフーリエ逆変換して合成音響ブロックを得る処理を行う。具体的には、上記〔数式２〕により得られたスペクトルの実部Ａ´（ｊ）、虚部Ｂ´（ｊ）を用いて、以下の〔数式３〕に従った処理を行い、ｘ´（ｉ）を算出する。
【００１８】
〔数式３〕
ｘ´（ｉ）＝１／Ｎ・｛Σj=0,…,N-1Ａ´（ｊ）・ｃｏｓ（２πｉｊ／Ｎ）−Σj=0,…,N-1Ｂ´（ｊ）・ｓｉｎ（２πｉｊ／Ｎ）｝
【００１９】
上記〔数式３〕により合成音響ブロックの各サンプルｘ´（ｉ）が得られることになる。出力手段５０は、得られた合成音響ブロックを出力ファイルに記録していく。以上のような処理を音響信号の全サンプルに渡って実行していくことにより、全ての合成音響ブロックが出力ファイルに記録されて、合成音響信号として得られる。得られた合成音響信号は、記憶手段６０内の合成音響信号記憶部６２に出力され、記憶される。
【００２０】
上記の例では、２つの音響信号を合成する場合について説明したが、３以上の音響信号を合成する場合には、上記〔数式１〕〜〔数式３〕を一般化した式として以下の〔数式４〕〜〔数式６〕を用いて実行することになる。以下の〔数式４〕〜〔数式６〕においては、合成対象とするＫ個の各音響信号に番号ｋ（ｋ＝０，１，２，…Ｋ−１）を付し、基準音響信号はｋ＝０とする。
【００２１】
〔数式４〕
Ａ（ｋ，ｊ）＝Σi=0,…,N-1ｘ（ｋ，ｉ）・ｃｏｓ（２πｉｊ／Ｎ）
Ｂ（ｋ，ｊ）＝Σi=0,…,N-1ｘ（ｋ，ｉ）・ｓｉｎ（２πｉｊ／Ｎ）
【００２２】
上記〔数式４〕において、ｉ、ｊ、Ｎについては、上記〔数式１〕において用いたものと同じである。
【００２３】
〔数式５〕
Ａ´（ｊ）＝Ａ（０，ｊ）・Ｃ｛Ｓ（ｊ）／Ｅ（０，ｊ）｝1/4
Ｂ´（ｊ）＝Ｂ（０，ｊ）・Ｃ｛Ｓ（ｊ）／Ｅ（０，ｊ）｝1/4
ただし、Ｓ（ｊ）＝｛Ｅ（１，ｊ）・Ｅ（２，ｊ）・…・Ｅ（Ｋ−１，ｊ）｝1/K-1    Ｅ（ｋ，ｊ）＝Ａ（ｋ，ｊ）2＋Ｂ（ｋ，ｊ）2
【００２４】
上記〔数式５〕においては、上記〔数式４〕により得られた各音響信号の実部Ａ（ｋ，ｊ）、虚部Ｂ（ｋ，ｊ）を用いて、合成値として実部Ａ´（ｊ）、虚部Ｂ´（ｊ）を算出する。〔数式５〕において、補正係数Ｃは、〔数式２〕において用いたものと同じである。
【００２５】
また、上記Ｓ（ｊ）は、各ブロック単位で算出されるものであるが、対象とする音響信号によっては、後のスペクトル合成処理に伴い粒状ノイズが発生する場合がある。これは、時間軸方向にスペクトルの不連続が発生するためである。この対策として、対象とするブロックの近傍の数ブロックにおいて算出されたＳ（ｊ）の平均値を用いることが望ましい。本実施形態では、対象とするブロックの２ブロック過去までのブロックで算出されたＳ（ｊ）との３つのＳ（ｊ）の平均値をＳ（ｊ）として、上記〔数式５〕の第１式、第２式で用いている。
【００２６】
次に、音響信号合成装置は、合成により得られた合成スペクトルブロックをフーリエ逆変換して合成音響ブロックを得る処理を行う。具体的には、上記〔数式５〕により得られたスペクトルの実部Ａ´（ｊ）、虚部Ｂ´（ｊ）を用いて、以下の〔数式６〕に従った処理を行い、ｘ´（ｉ）を算出する。
【００２７】
〔数式６〕
ｘ´（ｉ）＝１／Ｎ・｛Σj=0,…,N-1Ａ´（ｊ）・ｃｏｓ（２πｉｊ／Ｎ）−Σj=0,…,N-1Ｂ´（ｊ）・ｓｉｎ（２πｉｊ／Ｎ）｝
【００２８】
上記〔数式６〕においては、上記〔数式５〕により得られたスペクトルの実部Ａ´（ｊ）、虚部Ｂ´（ｊ）を用いて、合成音響信号を構成する各サンプルであるｘ´（ｉ）を算出する。
【００２９】
（２．２．各音響信号の演奏時間が異なる場合の処理）
合成対象とする各音響信号ｋ（ｋ＝０，１，２，…Ｋ−１）の演奏時間が互いに異なる場合、基準音響信号の演奏時間が短い場合は支障がないが、基準音響信号の演奏時間が長い場合や、互いに時間軸を同調させたい場合は、以下のような処理を行う。
【００３０】
まず、基準音響信号（ｋ＝０）における１ブロックのサンプル数を高速フーリエ変換を適用するため２の累乗となる値Ｎ（０）（例えば４０９６）に設定し、解析を行うブロック数Ｂを算出する。基準音響信号以外の他の音響信号（以下、非基準音響信号という）については、ブロック数がＢとなるように、１回あたり解析を行う必要があるサンプル数Ｎ（ｋ）を求める。非基準音響信号において、フーリエ解析を行う場合は、音響ブロックとしてＮ（ｋ）個のサンプルを抽出して、Ｎ（０）個になるようにリサンプリング処理（時間軸スケーリング）を施す。リサンプリングの具体的な処理は、ｋ≧１の非基準音響信号の各サンプルｘ（ｋ，ｉ）（ｉ＝０，…，Ｎ−１）に対して、以下の〔数式７〕に従ってｘ″（ｋ，ｉ）を求めることにより実行する。この処理は、ブロック読込手段１０が行うことになる。
【００３１】
〔数式７〕
ｘ″（ｋ，ｉ）＝ｘ（ｋ，ＩＮＴ｛ｉ・Ｎ（ｋ）／Ｎ（０）｝）
【００３２】
上記〔数式７〕において、ＩＮＴ｛｝は、｛｝内の小数点以下を切り捨てた整数値を示すものである。このｘ″（ｋ，ｉ）がリサンプリングされたサンプルとなる。
【００３３】
続いて、リサンプリングされたＮ（０）個のサンプルに対してフーリエ変換を施する。これは、前記〔数式４〕において、ｘ（ｋ，ｉ）の代わりに上記ｘ″（ｋ，ｉ）を代入することにより行う。その後、得られたＡ（ｋ，ｊ）およびＢ（ｋ，ｊ）からなる周波数の次元の要素に対してＮ（０）／Ｎ（ｋ）だけスケーリングを施し、音響信号の時間軸変倍に伴って生じる周波数の変倍分を補正する。補正は、ｋ≧１、ｊ＝０，…，Ｎ（０）／２−１の実部、虚部の成分に対して、以下の〔数式８〕に従った処理を実行することにより行う。
【００３４】
〔数式８〕
Ａ″（ｋ，ｊ）＝Ａ（ｋ，ｊ・Ｎ（０）／Ｎ（ｋ））
Ｂ″（ｋ，ｊ）＝Ｂ（ｋ，ｊ・Ｎ（０）／Ｎ（ｋ））
【００３５】
上記〔数式８〕により、補正された周波数成分Ａ″（ｋ，ｊ）、Ｂ″（ｋ，ｊ）の集合であるスペクトルが得られることになる。この処理は、周波数変換手段２０が行うことになる。スペクトルを合成する際には、各非音響信号について求められたＡ″（ｋ，ｊ）、Ｂ″（ｋ，ｊ）を、上記〔数式５〕において、Ａ（ｋ，ｊ）、Ｂ（ｋ，ｊ）に代入することにより合成後のスペクトルブロックの各周波数成分が求められることになる。
【００３６】
本発明に係る音響信号の合成装置は、各音響信号が１つのチャンネルで構成されていても、複数のチャンネルで構成されていても各チャンネルに対して処理を行うことができる。また、元の音響信号において、各チャンネルの信号レベルが異なる場合は、各チャンネルごとに得られたスペクトルブロックの周波数成分に、チャンネルごとに異なる重みで変倍をかけて、対応するチャンネル同士で他の音響信号と合成することになる。具体的には、上記〔数式５〕において算出されるＥ（ｋ，ｊ）に変倍を行うことになる。
【００３７】
（３．１再生装置の構成）
次に、本発明に係る音響信号の再生装置について説明する。図２は、本発明に係る音響信号の再生装置の一実施形態を示す構成図である。図２において、７０は合成ブロック蓄積手段、８０はサウンドデバイスドライバ、８１はサウンドデバイス、８２はタイマー、９０は合成比率設定手段である。
【００３８】
ブロック読込手段１０〜周波数逆変換手段４０は、図１に示した音響信号合成装置におけるものと全く同じである。合成ブロック投入手段５１は、合成音響ブロックを出力する先が図１に示した出力手段５０とは異なり、合成音響信号記憶部６２ではなく、合成ブロック蓄積手段７０となっている。ただし、合成ブロック投入手段５１は、単純に合成音響ブロックを投入するだけでなく、後述するように、合成ブロック蓄積手段７０に空きが無い場合は、合成音響ブロックの投入を制御する機能も有している。合成ブロック蓄積手段７０は、合成音響ブロックを蓄積するバッファメモリを複数有しており、これらのバッファメモリに蓄積された合成音響ブロックを、ＦＩＦＯ（ファーストイン・ファーストアウト）方式、すなわち、先に入ってきた情報が、先に出ていく方式で処理する機能を有している。すなわち、合成ブロック蓄積手段７０は、合成ブロック投入手段５１から投入された合成音響ブロックを投入された順序で蓄積し、その順序でサウンドデバイスドライバ８０に渡す機能を有することとなる。サウンドデバイスドライバ８０は、サウンドデバイス８１を駆動させて合成音響ブロックを音響再生する機能を有しており、サウンドデバイス８１は、デジタルデータである合成音響ブロックをＤ／Ａ変換して音声として再生する機能を有している。すなわち、サウンドデバイスドライバ８０およびサウンドデバイス８１は合成音響ブロック再生手段として機能することになる。タイマー８２は、サウンドデバイスによる音響信号の再生と、外部機器の音響信号の再生とのタイミングをとるために利用するタイマーであり、コンピュータにおいて時刻管理を行うタイマーと共用されている。合成比率設定手段９０は、複数の音響信号をどの程度の比率で合成するかを設定する機能を有している。
【００３９】
（３．２再生装置の処理動作）
続いて、図２に示した再生装置の処理動作について説明する。まず、再生装置の利用者は、合成比率設定手段９０により複数の音響信号の合成比率を設定する。具体的には、上記〔数式２〕における比例係数Ｃに相当するものを設定することになる。設定された合成比率は、合成比率設定手段９０からブロック合成手段３０に与えられることになる。
【００４０】
設定後、音響信号再生装置は処理を開始する。まず、ブロック読込手段１０が複数の音響信号をブロック単位で読み込む。続いて、周波数変換手段２０が音響ブロックをスペクトルブロックに変換する。
【００４１】
次に、ブロック合成手段３０が上記〔数式５〕に従ってスペクトルブロックの合成を行う。この際、合成比率が設定されている場合には、上記Ｓ（ｊ）を算出するに当たって、各音響信号のスペクトル強度Ｅ（ｋ、ｊ）に設定された比率を乗じる。
【００４２】
続いて、得られた複数のスペクトルブロックを、周波数逆変換手段４０がフーリエ逆変換し、合成音響ブロックを生成する。周波数逆変換手段４０により得られた合成音響ブロックは、合成ブロック投入手段５１により合成ブロック蓄積手段７０に蓄積されていく。本実施形態では、合成ブロック蓄積手段７０に４ブロックまで蓄積可能となっているため、４ブロック蓄積されるまでは、サウンドデバイスドライバ８０による処理は開始されない。図３に示すように、合成ブロック蓄積手段７０に合成音響ブロックが４ブロック蓄積されると、サウンドデバイスドライバ８０が、合成ブロック蓄積手段７０に蓄積された合成音響ブロックのうち先頭のブロックを音響再生する。具体的には、サウンドデバイス８１が合成音響ブロックのデータをＤ／Ａ変換してスピーカに出力することになる。音響再生された合成音響ブロックは、合成ブロック蓄積手段７０から削除される。
【００４３】
合成音響ブロックが削除されて、合成ブロック蓄積手段７０内に余裕ができると、合成ブロック投入手段５１から合成音響ブロックが合成ブロック蓄積手段７０に投入される。これにより、合成ブロック蓄積手段７０内は再び最大容量まで蓄積されることになる。合成された合成音響ブロックは、現実には、ＣＰＵが合成ブロック投入手段５１として機能することにより、合成ブロック蓄積手段７０内に投入される。この合成ブロック投入手段５１は、合成音響ブロックを合成ブロック蓄積手段７０に単純に投入するだけでなく、合成ブロック蓄積手段７０に空きが無い場合は、ブロック読込手段１０、周波数変換手段２０、ブロック合成手段３０、周波数逆変換手段４０に対して処理を中断するメッセージを送り、合成ブロック蓄積手段７０への合成音響ブロックの投入を制御している。
【００４４】
一方、サウンドデバイスドライバ８０は、合成ブロック蓄積手段７０に蓄積された合成音響ブロックのうち先頭のブロックを順次音響再生していく。この際、サウンドデバイスドライバ８０は、１つの合成音響ブロックの音響再生を終了する度に、ブロック読込手段１０、周波数変換手段２０、ブロック合成手段３０、周波数逆変換手段４０、合成ブロック投入手段５１に対して各処理の実行を許可するメッセージを送る。
【００４５】
ここで、上記再生装置における処理の概要を整理して図４のフローチャートに示す。まず、合成ブロック投入手段５１が、合成ブロック蓄積手段７０内に空いているバッファメモリが存在するかどうかを探索する（ステップＳ１）。空いているバッファメモリが存在しない場合は、ブロック読込手段１０、周波数変換手段２０、ブロック合成手段３０、周波数逆変換手段４０、合成ブロック投入手段５１に対して処理を中断するメッセージを送り、サウンドデバイスドライバ８０からの再生終了メッセージの受信待ちとする（ステップＳ２）。サウンドデバイスドライバ８０からの再生終了メッセージがあった場合には、再生が終了した合成音響ブロックを格納していたバッファメモリから削除して再生終了バッファを空きバッファに設定する（ステップＳ３）。サウンドデバイスドライバ８０からの再生終了メッセージは、同時にブロック読込手段１０、周波数変換手段２０、ブロック合成手段３０、周波数逆変換手段４０、合成ブロック投入手段５１にも送信されるため、ブロック読込手段１０、周波数変換手段２０、ブロック合成手段３０、周波数逆変換手段４０、合成ブロック投入手段５１が処理を再開し、音響信号の合成が行われる（ステップＳ４）。続いて、空いているバッファメモリに合成音響ブロックが格納される（ステップＳ５）。一方、サウンドデバイス８１では、常に、合成ブロック蓄積手段７０内のバッファメモリを探索しており（ステップＳ６）、合成音響ブロックが存在する場合には、合成音響ブロックを再生する（ステップＳ７）。１つの合成音響ブロックの再生を待ち（ステップＳ８）、再生が終了したら、再生終了メッセージをブロック読込手段１０、周波数変換手段２０、ブロック合成手段３０、周波数逆変換手段４０、合成ブロック投入手段５１に送信する（ステップＳ９）。
【図面の簡単な説明】
【００４６】
【図１】本発明に係る音響信号の合成装置の機能ブロック図である。
【図２】本発明に係る音響信号の合成再生装置の機能ブロック図である。
【図３】合成音響ブロックが蓄積された状態の音響信号の合成再生装置を示す図である。
【図４】音響信号の合成再生装置の処理動作を示すフローチャートである。
【符号の説明】
【００４７】
１０・・・ブロック読込手段
２０・・・周波数変換手段
３０・・・ブロック合成手段
４０・・・周波数逆変換手段
５０・・・出力手段
５１・・・合成ブロック投入手段
６０・・・記憶手段
６１・・・音響信号記憶部
６２・・・合成音響信号記憶部
７０・・・合成ブロック蓄積手段
８０・・・サウンドデバイスドライバ
８１・・・サウンドデバイス
８２・・・タイマー
９０・・・合成比率設定手段
【図１】
2006139158.tif 000003
【図２】
2006139158.tif 000004
【図３】
2006139158.tif 000005
【図４】
2006139158.tif 000006