(57)【特許請求の範囲】
【請求項１】
オーディオ信号を複数バンドに帯域分割した各バンド成分の振幅と位相を波形データとして持ち、この波形データに基づいて各バンドのバンド成分を必要に応じ時間圧縮／伸長しつつ再生して合成することでオーディオ信号波形を復元するオーディオ信号波形処理装置であって、
帯域分割によりオーディオ信号波形中に発生するプリエコーの区間に対して、該プリエコー区間の始めにて、再生する各バンド成分の位相を、上記波形データで示されるそれぞれに対応する元のバンド成分の位相となるように位相リセットをするように構成したオーディオ信号波形処理装置。
【請求項２】
該プリエコーの区間にては、復元する波形の時間圧縮／伸長を行わないようにした請求項１記載のオーディオ信号波形処理装置。
【請求項３】
上記の位相リセットは、それまで再生していた波形の位相と上記波形データに基づく置き換えるべき位相の値とをクロスフェードにより置き換えるようにした請求項１または２記載のオーディオ信号波形処理装置。
【請求項４】
波形再生にピッチ変換が伴う場合には、ピッチ変換に基づく位相変化の度合いと、波形データを読み出すための読出しアドレスの歩進度合いとを合わせるようにした請求項１〜３のいずれかに記載のオーディオ信号波形処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、位相ボコーダ方式によりタイムストレッチ（時間圧縮／伸長）やピッチシフト（ピッチ変換）を行うオーディオ信号波形処理装置に関するものである。
【０００２】
位相ボコーダ方式においては、分析系では、原音のオーディオ信号波形を帯域フィルタを用いて複数の周波数帯域（バンド）に分割し、各帯域のバンド成分をそれぞれ分析してその出力振幅と位相を特徴パラメータとして抽出して保持しておき、合成系では、各帯域についてその出力振幅と位相を用いて元のバンド成分を再生し、それら各帯域のバンド成分を加算合成して、元のオーディオ信号波形を復元する。
【０００３】
図１０はこの位相ボコーダ方式によるオーディオ信号波形処理装置の概念を説明する。図示するように、オーディオ信号波形Ｘ(n) を複数の分析部６０に入力する。この例では、分析部６０はオーディオ信号波形の周波数を１００に帯域分割した各帯域対応に設ける。各分析部６０は図１１に示すようにオーディオ信号波形の概略基本周波数をそれぞれ中心周波数とするバンド０〜９９を持つもので、図１３に示すごとくの構成を持つ。すなわち、例えばバンドｋの分析部は、入力したオーディオ信号波形Ｘ(n) をその中心の複素周波数sin(ωｋ）、cos(ωｋ) にて乗算（同期検波）してバンドｋの出力振幅値を得るとともに、その検波出力の位相値を微分等して瞬間周波数の情報を得る。この瞬間周波数は、各時点（波形の時間軸上の各位置）における単位時間あたりの位相の変化量（微分値）であり、中心周波数からの周波数偏差を示す情報である。
【０００４】
図１０の波形処理装置では、このオーディオ信号波形Ｘ(n) の各バンドの波形データ（出力振幅と瞬間周波数）は波形メモリ６１に格納される。波形メモリ６１への波形データ格納の態様は、図１２に示すごとく、オーディオ信号波形ｘ(n) の時間軸上の各アドレスaddr(0) 〜addr(n) に対して、各バンド０〜９９毎に、振幅データＡと瞬間周波数データｆとが格納されるものである。
【０００５】
合成系は、各バンド毎に設けられたバンド成分再生部６２からなり、各バンド成分再生部６２は時間周波数変換処理部３１と余弦発振器３３と乗算器３３とからなる。時間周波数変換処理部３１は、図１４に示すような構成からなる。すなわち、入力した出力振幅の値に対しては、タイムストレッチ比（時間圧縮／伸長比）に応じてサンプル点を補間部で飛越し／追加補間してその振幅エンベロープ（振幅値の経時的変化を示すエンベロープ）を圧縮／伸長した振幅値を出力する。また、入力した瞬間周波数の値に対しては、その瞬間周波数値に中心の角周波数ωk を加算するとともに、ピッチ変換を行う場合にはこの瞬間周波数値に周波数変換比（ピッチシフトの度合いに応じた比）を乗算し、タイムストレッチ比に応じてサンプル点を補間部で飛越し／追加補間してその周波数エンベロープ（見なし周波数値の経時的変化を示すエンベロープ）を圧縮／伸長した瞬間周波数の値を出力する。
【０００６】
図１５はこの振幅値と瞬間周波数の補間処理の様子を示す図である。時間伸長する場合には、図１５（ａ）に示すように、元の振幅エンベロープと周波数エンベロープをともに引き伸ばして、時間軸を伸長した振幅値と瞬間周波数とを生成する。また、時間圧縮する場合には、図１５（ｂ）に示すように、元の振幅エンベロープと周波数エンベロープをともに縮めて、時間軸を圧縮した振幅値と瞬間周波数とを生成する。この補間処理により、元のオーディオ信号波形の時間軸を任意に圧縮／伸長することができる。
【０００７】
時間周波数変換処理部３１で処理された瞬間周波数値（適宜、タイムストレッチされたもの）は余弦発振器に供給され、それにより余弦発振器はそのバンドの周波数の余弦波を発生し、その余弦波に、時間周波数変換処理部３１で処理された振幅エンベロープを付加して出力する。これにより、当該バンドの成分信号が再生される。さらに、これら各バンド０〜９９のバンド成分を加算合成することで、元のオーディオ信号波形を復元できる。
【０００８】
【発明が解決しようとする課題】
上記の位相ボコーダ方式で楽音のオーディオ信号波形を再生するにあたり、ピアノなどのオーディオ信号波形はそのアタック部分で時間的にレベルが大きく変化する。このようなオーディオ信号波形をディジタルフィルタを用いて帯域分割すると、一つ一つのバンドには、アタックに先行してその痕跡、いわゆる「プリエコー」が現れる。
【０００９】
図９はこのプリエコー現象を説明する図である。簡単のために、図９では、元のオーディオ信号波形を高周波帯域と低周波帯域に２分した場合について示してある。典型的なアタックの波形（ａ）を、低周波成分の波形（ｂ）と高周波成分の波形（ｃ）に分離し、プリエコーの発生する様子を示している。低周波成分波形（ｂ）と高周波成分波形（ｃ）では、元のアタック波形（ａ）に先行している無音部分にプリエコーが生じる様子が分かる。低周波成分波形（ｂ）のプリエコーと高周波成分波形（ｃ）のプリエコーは互いに逆相となっており、したがって、最終的に低周波成分波形（ｂ）と高周波成分波形をそのままの位相で合成すると、両者のプリエコーは互いに相殺され、無音部分が復元する。このことは、分割する帯域（バンド）数が多い場合も同じであり、各バンドの成分波形を再生後に加算合成すれば、プリエコーは相殺し合って無音部分となる。
【００１０】
かかるプリエコーは、使用するディジタルフィルタ（ＦＩＲフィルタ）のタップ数が大きいほど甚だしく発生するようになり、その発生限界はフィルタのタップ数そのものになり、一般にフィルタの遅延量からプリエコーの大きさを見積もることができる。
【００１１】
ところで、位相ボコーダ方式を用いてタイムストレッチやピッチシフトを行うと、一般に各バンドの波形は元波形の位相には戻らず、位相が変化してしまう。このため、各バンドのバンド成分を再生した後に加算合成しても、各バンドの波形のプリエコー部分も位相が変化しているため、これらプリエコー部分が互いに相殺し合うことにならず、この結果、合成後の信号にアタッフに先行するプリエコーが残ってしまう。
【００１２】
このため、通常、位相ボコーダを用いた波形再生では、アタックの直前にプリエコーによる雑音が生じることになり、アタック音が歯切れのよいものにならず、いわゆるアタック感が著しく損なわれてしまう。
【００１３】
本発明はかかる問題点に鑑みてなされたものであり、位相ボコーダ方式を用いつつも、帯域分割により発生するプリエコーに起因する雑音の発生を防止することを目的とする。
【００１４】
【課題を解決するための手段および作用】
本発明が適用されるオーディオ信号波形処理装置では、オーディオ信号を複数バンドに帯域分割した各バンド成分の振幅と位相を波形データとして持ち、この波形データに基づいて各バンドのバンド成分を必要に応じ時間圧縮／伸長しつつ再生して合成することでオーディオ信号波形を復元する。
このオーディオ信号波形処理装置において、上述の課題を解決するために、本発明では、帯域分割によりオーディオ信号波形中に発生するプリエコーの区間に対して、該プリエコー区間の始めにて、復元する各バンド成分の位相を、上記波形データで示されるそれぞれに対応する元のバンド成分の位相となるように位相リセットをするように構成する。
このプリエコーの区間にては、復元する波形の時間圧縮／伸長を行わないようにすることが望ましい。
このようにすると、プリエコーが発生する時点で位相リセットが行われ、その時点での各バンドの再生波形の位相が原音のそれと同じものにセットされるので、これらのバンド成分を合成すると、復元したオーディオ信号波形においてプリエコーが相殺される。
【００１５】
また、上記の位相リセットでは、それまで再生していた波形の位相と上記波形データに基づく置き換えるべき位相の値とをクロスフェードにより置き換えるように構成すると一層望ましい。
このようにすると、位相リセットの際に、再生波形の位相が連続的に変化するようにあるから、突然位相値を変えてしまうことによる位相の不連続的変化に起因した雑音の発生を防止できる。
【００１６】
また、波形再生にピッチ変換が伴う場合には、ピッチ変換に基づく位相変化の度合いと、波形データを読み出すための読出しアドレスの歩進度合いとを合わせるように構成すると望ましい。
これにより、ピッチ変換された波形の位相は元波形と同じになり、バンド成分の再生波形において元の位相が再現され、各バンド成分を合成することでプリエコーを相殺することができる。
【００１７】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
図１には本発明の一実施例としてのオーディオ信号波形処理装置が示される。この実施例は鍵盤型の電子楽器に本発明を適用したものである。図中、２は装置全体の制御を行うＣＰＵ（中央処理装置）、３は各種テーブルデータやＣＰＵ用の制御プログラムなどを格納するＲＯＭ（リード・オンリー・メモリ）、４は複数のオーディオ信号波形の波形データを格納したりＣＰＵの作業用メモリとして用いられるＲＡＭ（ランダム・アクセス・メモリ）である。５は各種の操作子からなる操作子群であり、この操作子としては各種波形から再生波形を選択するための選択ボタンや後述する柔軟度を設定したり波形再生を開始・終了指示するなどの各種の操作子などがある。６は鍵盤装置であり、再生速度を調整するためのレバー６１をそのパネル上に持つ。１は波形合成部であり、波形メモリ１０と各バンドに対応して設けたバンド成分再生部１１-0〜１１-99 とからなり、再生のために選択した波形データに基づいて元のオーディオ信号波形を復元して出力する。
【００１８】
波形合成部１の波形メモリ１０は、オーディオ信号波形の波形データを格納する領域とリセットアドレス情報を格納する領域とを有する。
【００１９】
オーディオ信号波形の波形データは出力振幅値と位相値とからなる。出力振幅値は前述の従来技術で説明したものと同じである。位相値は前述の従来技術の瞬間周波数値に代わるもので、位相ボコーダの本来の特徴パラメータである。本実施例装置では、複数種類のオーディオ信号波形について上記波形データ（振幅値と位相値）を予め分析して求めておいて、ＲＡＭ４に格納してある。そして、波形選択用の選択ボタンで再生用に選択したオーディオ信号波形の波形データが上記波形メモリ１０の波形データ領域に格納される。
【００２０】
図２にはオーディオ信号波形を分析して各バンドの波形の出力振幅値と位相値の波形データを抽出する分析部の概念構成が示される。図示するように、オーディオ信号波形Ｘ(n) に対して、バンド中心の複素周波数cos(ωｋ,n) 、sin(ωｋ,n) をそれぞれ乗じてインパルス応答Ｗ(n) の分析フィルタを通し、その出力を二乗演算した後に加算して平方根を計算することで振幅値を得る。また、分析フィルタの出力Ｘcos 、Ｘsin を演算部に通して位相値を得る。演算部では、分析フィルタの出力Ｘcos 、Ｘsin に応じて、
Ｘcos ＞０の時には Arctan(Xsin/Xcos)
Ｘcos ＜０の時には Arctan(Xsin/Xcos)＋π
を演算し、その結果を位相値として出力する。
【００２１】
また、波形メモリ１０のリセットアドレス情報領域には、選択したオーディオ信号波形のリセットアドレス情報（位相リセット情報）が格納される。このリセットアドレス情報は、オーディオ信号波形のアタックを表すアドレスよりもプリエコーが発生する分だけ前の位置のアドレスが設定されており、オーディオ信号波形中に時系列的に存在する各アタック波形毎に設定されて、RstAdr(0) 、RstAdr(1) 、RstAdr(2) ・・・のように連続的に付番され、その大きさの順に整列させておく。なお、プリエコーがアタックよりどれだけ先行するかは帯域分割するフィルタの遅延量から推し量ることができる。
【００２２】
本実施例装置では、複数種類のオーディオ信号波形について上記リセットアドレス情報を予め分析して求めておいて、ＲＡＭ４に格納しておく。そして、波形選択用の選択ボタンで再生用に選択したオーディオ信号波形のリセットアドレス情報が上記波形メモリ１０のリセットアドレス情報領域に格納される。
【００２３】
バンド成分再生部１１-0〜１１-99 には波形メモリ１０からは振幅値と位相値と、さらにリセットアドレスとが入力され、またＣＰＵ２側から時間位置情報（読出しアドレスDataAdr)とピッチ情報が入力されており、これらのデータに基づいて該当バンドのバンド成分を再生し出力する。この各バンド成分再生部１１-0〜１１-99 から出力されたバンド成分は互いに加算合成されてオーディオ信号波形として復元されて出力される。
【００２４】
図３にはバンド成分再生部１１の構成例が示される。図示するごとく、波形メモリ１０から読み出された位相値は２分岐されて一方は直接に余弦発振器３２に、もう一方は微分部３０にそれぞれ入力される。微分部３０に入力された位相値は微分されることで瞬間周波数に変換されて時間周波数変換処理部３１に入力される。また、波形メモリ１０から読み出された振幅値は時間周波数変換処理部３１に入力される。この時間周波数変換処理部３１は従来技術の項で説明したものと同じ構成を持っており、従来構成同様、その振幅値を乗算器３３に、瞬間周波数の値を余弦発振器３２にそれぞれ送出する。
【００２５】
また、波形メモリ１０から読み出されたリセットアドレス情報は、位相リセット信号発生部３４に入力される。この位相リセット信号発生部３４には波形メモリ１０から波形データを読み出すための読出しアドレスDataAdr （時間位置情報）が入力されている。位相リセット信号発生部３４は、波形メモリ１０から読み出したリセットアドレスRstAdrと読出しアドレスDataAdr とを比較し、読出しアドレスDataAdr がリセットアドレスRstAdrを超えた時点で位相リセット信号を生成して余弦発振器３２に送出する。
【００２６】
図４にはこの位相リセット信号発生部３４での位相リセット信号送出手順のフローチャートが示される。図示するように、波形の再生にともない読出しアドレスDataAdr が更新されると（ステップＳ１）、その読出しアドレスがリセットアドレスRstAdr(k) を超えたか、すなわち、
RstAdr(k) ＜DataAdr
かを判定し（ステップＳ２）、超えていなければ処理を終了して、次の読出しアドレスの更新まで待ち、超えていれば、リセットアドレスの順番を示すパラメータｋの更新、すなわちｋ＝ｋ＋１を行うとともに、位相リセット信号を発生して送出する（ステップＳ３）。
【００２７】
図５には余弦発振器３２の構成例が示される。波形メモリ１０からの位相値データは加算器４２に入力され、ここで当該ブロックの中心周波数の回転分（角周波数）ωｋが加算されてその結果値が和分器４０に入力される。この和分器４０には時間周波数変換処理部３１からの瞬間周波数値が入力されており、和分することで瞬間位相値に変換して、この瞬間位相値を余弦演算器４１に供給することで、当該ブロックの成分信号の周波数と見なされる周波数を持つ余弦波を発生し出力する。また、和分器には位相リセット信号が入力されており、位相リセット信号が到来すると、その瞬間周波数の位相を加算器４２からの絶対位相に置き換える。
【００２８】
次に、この実施例装置では、オーディオ信号波形のタイムストレッチ（時間の圧縮／伸長）を行うために、時間の圧縮伸長率と柔軟度を用いているので、これらについて説明する。圧縮伸長率は、オーディオ信号波形に対する時間圧縮伸長量を圧縮／伸長前後の時間長の比率で表わすものである。一方、柔軟度は、オーディオ信号波形の各区間において圧縮伸長率をどのように修正するかの修正度合を表わしたものである。
【００２９】
〔柔軟度〕
例えば図６に示すように、楽音波形を時間的に複数の区間（その総区間数をｍとする）に区切り、それらの各区間毎に柔軟度Ｅ(i) を設定する。この区間は例えばプリエコーの区間、アタックの区間、ディケイの区間、サスティンの区間、リリースの区間、無音の区間などに一致するよう設定すると望ましい。
【００３０】
ここで、柔軟度Ｅ(i) が「０」である場合は、その区間についてはその再生速度はレバー６１の設定状態や圧縮伸長率の値いかんにかかわらず元波形のままに保つことになる。また、柔軟度が「１」である場合、レバー６１で設定された再生速度となる。また、柔軟度が「１」よりも小さくなれば、レバー６１で設定された再生速度よりも低くなり、柔軟度が「１」よりも大きくなれば、レバー６１で設定された再生速度よりも高くなる。
【００３１】
この柔軟度は、楽音波形の各区間の長さとその区間における柔軟度との積の総和が全区間の長さとなるように、各区間の柔軟度が設定される。これは数式で表わすと、
ΣＥ(i) ×Ｌ(i) ＝ΣＬ(i)                       ・・・（１）
但し、Σはｉ＝０から（ｍ−１）までの加算
Ｌ(i) は各区間の長さ
Ｅ(i) は各区間における柔軟度
ｍは総区間数
ｉは０からｍまでの区間のうちの再生中の区間を示す区間カウンタ
となる。従って、柔軟度によって各区間の圧縮伸長率が修正されても、波形データの全体の圧縮または伸長された時間は、圧縮伸長率に元の波形データの時間を乗算した値、即ち波形データ全体を単に圧縮伸長率に基づいて圧縮／伸長したときの時間となる。
【００３２】
なお、後述するが、本発明では、プリエコー区間の柔軟度Ｅ(i) を「０」に設定することで本発明による処理を可能ならしめている。
【００３３】
〔圧縮伸長率〕
圧縮伸長率は、再生する波形の時間長を元波形の時間長に比べて圧縮したり伸長したりするための係数である。すなわち、この実施例装置では、鍵盤６に設けたレバー６１を操作することによって波形の再生速度が可変できる。このレバー６１は、自動復帰点である中点位置では再生速度は元波形と同じになり、前後に揺動することで再生速度を速めたり遅らしたりできる。この再生速度は、圧縮伸長率とは逆数の関係にある。例えば、或る波形を２倍の再生速度で再生すると、再生にかかる時間はｌ／２倍となるが、これは、即ち圧縮伸長率がｌ／２であることに他ならない。また、この波形をｌ／２倍の再生速度で再生すると、再生にかかる時間は２倍となるが、同様に、これは圧縮伸長率が２であることを示している。
【００３４】
上記の再生速度は歩進量（tcomp, tcomp', tcomp")に基づいて決まる。歩進量は、オーディオ信号波形を再生するための時間位置（読出しアドレスDataAdr)を歩進させる量であり、言い換えれば波形再生の速さ、すなわち時間伸長圧縮率の逆数になる。この歩進量は、レバー６１の操作によって設定される。
【００３５】
この歩進量には、レバー６１の設定位置により決まる基本となる基本歩進量tcomp 、この基本歩進量tcomp を柔軟度を考慮して修正した柔軟度修正歩進量tcomp'、この柔軟度修正歩進量tcomp'を更にピッチ変換を考慮して修正したピッチ修正歩進量tcomp"がある。
【００３６】
まず、基本歩進量tcomp は、具体的にはレバー６１が中点位置にある時に「１」、前後に倒された時に例えば「＋２」〜「０」の間で変化する値である。この基本歩進量tcomp で読出しアドレスDataAdr を更新する場合、基本歩進量tcomp が「１」であればオーディオ信号波形は元の時間長のまま再生され、基本歩進量tcomp が「２」であればオーディオ信号波形は元の時間長の半分で再生され、基本歩進量tcomp が「０」であればオーディオ信号波形は同じ位置を繰り返し再生される。
【００３７】
柔軟度修正歩進量tcomp'は、上記基本歩進量tcomp を対応区間の柔軟度Ｅ(i) に基づいて下式により修正したものである。
tcomp'＝１／［Ｅ(i) ×｛ (１／tcomp ）−１｝＋１］
ここで柔軟度Ｅ(i) を１とすると、柔軟度修正歩進量tcomp'は基本歩進量tcomp となり、レバー６１で設定された再生速度となる。また柔軟度Ｅ(i) をｌよりも小さくすると、柔軟度修正歩進量tcomp'の値は基本歩進量tcomp よりも小さくなり、レバー６１によって設定された再生速度よりも低くなる。また柔軟度Ｅ(i) を１よりも大きくすると、柔軟度修正歩進量tcomp'の値は基本歩進量tcomp よりも大きくなり、レバー６１で設定された再生速度よりも高くなる。また柔軟度Ｅ(i) を「０」に設定すると、柔軟度修正歩進量tcomp'は「ｌ」となり、元波形の再生遠度となる。従って、柔軟度Ｅ(i) を「０」に設定することによって圧縮伸長を行っているにもかかわらず、その区間Ｍ(i) を元波形の再生速度で再生することができる。この場合、レバー６１によって設定される基本歩進量tcomp の値が再生の途中で変更されても、柔軟度修正歩進量tcomp'は「１」を維持する。このようにＣＰＵ２が基本歩進量tcomp の修正を行っている。
【００３８】
ピッチ修正歩進量tcomp"については、詳しくは後述するが、柔軟度修正歩進量tcomp'を更に修正して、
tcomp"＝Ｗ×tcomp'
により求める。ここに、Ｗは修正度であり、
Ｗ＝（Ｌ／tcomp −Ｌ０）／（Ｌ／tcomp −Ｌ０／Ｐ）
である。ここで、「Ｌ０」はリセットアドレスから始まる柔軟度０の区間、「Ｌ」は注目しているリセットアドレスから次のリセットアドレスまでの長さである。
【００３９】
〔読出しアドレスDataAdr の生成〕
時間の圧縮／伸長やピッチシフトを行っていない場合、読出しアドレスDataAdr はオーディオ信号波形のアドレス順に歩進されて発生される。その速度は、オーディオ信号波形データのサンプリング周波数が４４．ｌｋＨｚであると、４４．１ｋＨｚとなる。レバー６１により再生速度が変えられている場合には、レバー６１により決定される基本歩進量tcomp により読出しアドレスDataAdr は歩進される。例えば、基本歩進量tcomp が「２」であれば、元のオーディオ信号波形のサンプリング点（アドレスAddr) を一つ置きに飛び越す読出しアドレスDataAdr が生成される（すなわち時間圧縮される）。また、例えば基本歩進量tcomp が「１／２」であれば、元のオーディオ信号波形のサンプリング点間の中間点においても読出しアドレスDataAdr が生成される（すなわち時間伸長される）。
【００４０】
以下、この実施例装置の動作を説明する。
前述したように、複数のオーディオ信号波形について、それぞれのオーディオ信号波形中の各プリエコー部分の先頭がリセットアドレスとして予め設定されており、これらのリセットアドレスは対応するオーディオ信号波形の波形データとともにＲＡＭ４に予め格納されている。また、これらのオーディオ信号波形については、柔軟度Ｅ(i) の情報も各オーディオ信号波形に対応付けてＲＡＭ４に格納されている。本実施例では、上記各プリエコーの区間に対しては柔軟度Ｅ(i) として「０」が設定されている。
【００４１】
操作子群５中の波形選択ボタンを用いて任意のオーディオ信号波形を選択すると、当該オーディオ信号波形の波形データとリセットアドレス情報が波形合成部１の波形メモリ１０に転送されて格納される。また、柔軟度の情報が読出しアドレスDataAdr を作成するためにＣＰＵ２によって参照される。
【００４２】
波形再生の開始を指示すると、ＣＰＵ２ではその時のレバー６１の設定状態や波形再生位置の柔軟度情報、ピッチ情報などを参照して読出しアドレスDataAdr を生成し、これをバンド成分再生部１１-0〜１１-99 に時間位置情報として供給する。
【００４３】
バンド成分再生部１１-0〜１１-99 では、この読出しアドレスDataAdr に従って波形メモリ１０から各バンドの波形データを読み出して、各バンド成分再生部１１-0〜１１-99 でバンド成分を再生する。バンド成分再生部１１における時間周波数変換処理部３１での処理は、波形メモリ１０から読み出した位相値を微分部３０で微分することにより瞬間周波数に変換して時間周波数変換処理部３１に送出している点を除けば、従来技術で説明したと同様の処理である。
【００４４】
また、波形メモリ１０からはリセットアドレスRstAdr(n) が読み出されて位相リセット信号発生部３４に入力され、この位相リセット信号発生部３４において読出しアドレスDataAdr がこのリセットアドレスRstAdr(n) と比較され、両者が一致したら、位相リセット信号を発生して余弦発振器３２に送出される。余弦発振器３２では、位相リセット信号を受信すると、発生する余弦波の位相を、その時点で波形メモリ１０から入力される波形データの位相値（すなわち原音波形の位相）になるようリセットする。
【００４５】
これにより、リセットアドレスRstAdr(n) の時間位置、すなわちプリエコー区間の先頭位置で、各バンド成分再生部１１-0〜１１-99 で再生される各バンド成分信号の位相は、元のオーディオ信号波形を帯域分割した各バンド成分信号のそれと一致することになるので、これらを加算合成すれば、各バンド成分信号のプリエコー波形は互いに相殺し合って、復元したオーディオ信号波形中から無くなる。プリエコー区間では柔軟度が「０」に設定されているため同区間を通して時間圧縮／伸長が行われないので、再生信号中に時間圧縮／伸長処理に起因する位相シフトは生じない。よって、上記の再生される各バンド成分信号のプリエコー波形が互いに相殺し合う状態は、上記プリエコー区間全体わたり続くことになる。
【００４６】
なお、余弦発振器３２中での動作は、位相リセット信号が入力されると、和分器４０において、保持している位相をリセットし、波形メモリ１０から直接に送られている位相値に中心周波数の回転分ωｋｎを加えたものに置き換える。そして、この位相を置き換えた瞬間周波数の値を余弦演算器４１に与えて、その位相と周波数の余弦波を演算で発生し出力する。上述したように、予め少なくとも各リセットアドレスRstAdr(n) からアタック区間の先頭アドレスまでは柔軟度が０の区間になるように設定してあるので、アタックが開始されるまでの区間では、時間位置情報（読出しアドレス）は原音が忠実に再現されるような値になり、この区間では、初めに帯域分割したままのプリエコー波形がそのまま再現され、よって合成時にプリエコーが相殺される。
【００４７】
以上の動作はピッチ変換（ピッチシフト）を伴わない場合について説明したものであり、この発明は、このようなピッチ変換を伴わない場合に最も効果的に用いられるものであるが、しかし、ピッチ変換を伴う場合にも、以下のような処理を行うことでこの発明を適用することができる。
【００４８】
まず、リセットアドレスに続く柔軟度０の区間を仮にリジット区間と呼ぶ。便宜上、リジット区間の長さを「Ｌ０」、注目しているリセットアドレスから次のリセットアドレスまでの長さを「Ｌ」とする。先に説明した柔軟度修正歩進量tcomp'に更に修正を加える。すなわち、リセットアドレスに続く柔軟度「０」の区間では、
tcomp"＝Ｐ
とする。ここに、Ｐはバンド成分再生部に供給されるピッチ情報Ｐ（ピッチシフトさせる量を示す情報）である。
【００４９】
さらに、次のリセットアドレスまでの各区間では、歩進量として、柔軟度修正歩進量tcomp'を更に修正した再修正ピッチ修正歩進量tcomp"、
tcomp"＝Ｗ×tcomp'
を用いる。ここに、Ｗは修正度であり、
Ｗ＝（Ｌ／tcomp −Ｌ０）／（Ｌ／tcomp −Ｌ０／Ｐ）
である。
【００５０】
これは、リジッド区間においては、ピッチ変換がなされるために位相の進み方がＰ倍になる。そこで、基本歩進量tcomp のほうも同じ値に設定すれば、位相の進みは元波形と同じになり、ピッチ変換した波形においても元の位相が再現される。さらに、それに伴いリジッド区間の長さは１／Ｐになるので、次のリセットアドレスが来るまでの残りの区間のアドレスの歩進量を修正度Ｗで調整することで、リセットアドレスから次のリセットアドレスまでの長さを所望の時間長に修正する。図７はこの様子を示したもので、黒い部分がリジッド区間である。
このピッチ修正歩進量tcomp"により時間位置情報が計算される。
【００５１】
本発明の実施にあたっては種々の変形形態が可能である。例えば、上述した実施例では、余弦発振器で位相リセットするときに一般に位相は不連続になり、そのために雑音が発生する可能性がある。一般に、位相リセットはアタックの少し前になされ、そのときの振幅は通常きわめて小さなものであるため、この部分の位相が不連続であるとしても、雑音は発生しないか発生したとしても問題にならないくらい小さなものであるが、しかし、この小さな雑音発生の可能性をさらに低減するよう改良することも可能である。
【００５２】
すなわち、余弦発振器において、位相リセット信号の到来のタイミングでいきなり位相リセットするのではなく、位相リセット信号の到来から、周波数値の和分の値と絶対位相（波形メモリ１０の波形データの位相に応じたもの）との割合を徐々に変えながら加えていく、いわゆるクロスフェードにより位相を連続的に絶対位相に近づけていくように構成する。クロスフェードの時間はリセットアドレスからプリエコーの長さに比べて短い時間で十分であるが、リセットアドレスをその分だけさらに前になるように予め設定しておくこともできる。
【００５３】
図８は、このクロスフェードをするときの余弦発振器の構成例を示すものである。この構成例では、クロスフェード演算器４３を新たに設け、位相リセット信号、絶対位相、和分器４０の出力（瞬間位相値）を入力するとともに、和分器４０に対してクロスフェード終了通知を送出するよう構成する。クロスフェード演算器４３は、通常のとき、和分器４０からのデータをそのまま出力し、位相リセット信号が到来すると、クロスフェードを開始する。このクロスフェードは、位相リセット後、このクロスフェード演算器４３の出力信号を、和分器４０の瞬間位相値から時間経過とともに絶対位相値の比率がだんだん大きくなるようにする。クロスフェードの終了時点でクロスフェード終了通知を和分器４０に送出し、和分器４０の位相を絶対位相値に書き換えるとともに、この和分器４０からの出力信号を瞬間位相値として出力するよう切換えを行う。
【００５４】
また、上述の実施例では、位相リセット信号をプリエコー区間の開始位置で発生することでプリエコーの除去を可能ならしめるものであった。しかし、この位相リセット信号は、例えば、再生するオーディオ信号波形を原音を忠実に再現するものにするような場合（すなわち時間圧縮／伸長を行わない場合）には、波形再生の開始時点や再生途中の任意の時点にて発生するようにしてもよい。このようにすると、その位相リセット時点で、復元するオーディオ信号波形の各バンドの成分信号の各位相が原音のそれと一致されるので、再生波形が原音に一層忠実なものになる。
【００５５】
また、上述の実施例では、柔軟度「０」の区間をプリエコーの区間に設定することで、プリエコーの除去を可能ならしめていたが、この柔軟度「０」の区間を例えばアタック区間に設定することもできる。このようにアタック区間を柔軟度「０」とすると、オーディオ信号波形の時間圧縮／伸長を行った場合にも、アタック部分は原音どうりの波形（すなわち時間圧縮／伸長されていない波形）で再生されることになる。一般に、アタック部分はその楽音の特徴を最もよく表現するので、このアタック部分を時間圧縮／伸長してしまうと、原音と異なった音色のように聞こえてしまうが、上記のようにアタック部分を柔軟度「０」に設定することで、波形全体を時間圧縮／伸長する場合にも、アタック部分により表現されるその楽音の特徴をよく保存することができる。
【００５６】
【発明の効果】
以上に説明したように、本発明によれば、プリエコーが発生する時点で位相リセット信号が発生し、その時点での位相が原音と同じものにセットされるので、プリエコーに起因して生じる雑音の発生を防止し、それによりアタック音の歯切れをよいものにしてアタック感が損なわれることを防止できる。
【図面の簡単な説明】
【図１】本発明にかかる一実施例としてのオーディオ信号波形処理装置を示す図である。
【図２】実施例装置におけるオーディオ信号波形から位相値、振幅値を抽出する分析部の概念を説明する図である。
【図３】実施例装置におけるバンド成分再生部の構成例を示す図である。
【図４】実施例装置のバンド成分再生部における位相リセット信号発生部による位相リセット信号送出の処理手順を示すフローチャートである。
【図５】実施例装置のバンド成分再生部における余弦発振器の構成例を示す図である。
【図６】実施例装置における柔軟度の概念を説明するための図である。
【図７】実施例装置におけるピッチ変換を伴う場合の波形形状を説明する図である。
【図８】実施例装置におけるバンド成分再生部における余弦発振器の他の構成例を示す図である。
【図９】帯域分割されたオーディオ信号波形におけるアタック波形とプリエコーとの関係を説明するための図である。
【図１０】位相ボコーダ方式による従来のオーディオ信号波形処理装置の全体構成概念を説明するための図である。
【図１１】原音のオーディオ信号波形の成分と帯域分割した各バンドとの関係を説明する図である。
【図１２】原音のオーディオ信号波形についての波形データを説明する図である。
【図１３】実施例装置におけるオーディオ信号波形を分析して振幅値と位相値を抽出する概念を説明するための図である。
【図１４】従来のオーディオ信号波形処理装置における時間周波数変換処理部の構成例を示す図である。
【図１５】従来のオーディオ信号波形処理装置の時間周波数変換処理部における信号波形の処理例を示す図である。
【符号の説明】
１  波形合成部
２  ＣＰＵ（中央処理装置）
３  ＲＯＭ〔リード・オンリー・メモリ〕
４  ＲＡＭ（ランダム・アクセス・メモリ）
５  操作子群
６  鍵盤装置
６１  速度調整用のレバー
１０  波形メモリ
１１  バンド成分再生部
３０  微分部
３１  時間周波数変換処理部
３２  余弦発振器
３３  乗算器
３４  位相リセット信号発生部
４０  和分器
４１  余弦演算部
４２  加算器
４３  クロスフェード演算器
【図１】
0004344438.tif 000002
【図２】
0004344438.tif 000003
【図３】
0004344438.tif 000004
【図４】
0004344438.tif 000005
【図５】
0004344438.tif 000006
【図６】
0004344438.tif 000007
【図７】
0004344438.tif 000008
【図８】
0004344438.tif 000009
【図９】
0004344438.tif 000010
【図１０】
0004344438.tif 000011
【図１１】
0004344438.tif 000012
【図１２】
0004344438.tif 000013
【図１３】
0004344438.tif 000014
【図１４】
0004344438.tif 000015
【図１５】
0004344438.tif 000016