(57)【特許請求の範囲】
【請求項１】
分析対象楽音波形サンプルに対し順次シフトする時間窓を用いてフーリエ変換を行うことにより前記時間窓の位置に対応する各フレームにおけるピーク点を検出してスペクトル解析を行う楽音波形分析方法において、
当該分析対象楽音の複数の倍音のグループ毎にそれぞれ対応して設定された分析条件を用いて前記スペクトル解析を行うようにしたことを特徴とする楽音波形分析方法。
【請求項２】
楽音波形から線スペクトル成分を抽出し、該抽出した線スペクトル成分に対応する正弦波信号波形を生成して合成し、前記楽音波形から前記合成した信号波形を減算した残差成分と前記合成した信号波形とを加算することにより楽音を合成する楽音波形分析合成方法であって、
前記楽音波形を分析するとき、当該楽音波形の複数の倍音のグループ毎にそれぞれ対応して設定された分析条件を用いて前記楽音波形の分析を行い、該分析結果に基づいて前記線スペクトル成分を抽出するようにしたことを特徴とする楽音波形分析合成方法。
【請求項３】
前記倍音のグループに対応する前記残差成分を抽出し、該残差成分を順次さらに異なるグループ対応に分析することを特徴とする請求項２記載の楽音波形分析合成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、楽音波形分析方法及び楽音波形分析合成方法に関する。
【０００２】
【従来の技術】
楽音合成の一つの方法として、楽音波形を分析し、該分析することにより得られたもとの楽音波形に含まれている周波数成分の信号を発生させてこれらを加算することにより、楽音波形を合成する分析・（再）合成（Analysis & (Re)Synthesis）方式が知られている。
この楽音波形分析合成方式においては、まず、楽音波形をスペクトル解析してその楽音に含まれている基音周波数およびその倍音周波数に対応する線スペクトル成分を抽出する。通常、このスペクトル解析は、時間窓（ウインドウ）を用いたフーリエ変換による短時間スペクトル解析を用いて行われている。すなわち、分析対象となる楽音をサンプリングし、該楽音波形サンプルに窓関数を掛けてＦＦＴ（高速フーリエ変換：Fast Fourier Transform）を行い、該フーリエ変換出力の振幅データからピークを成す全ての周波数位置を検出する。
以上の処理を、前記時間窓を移動しながら行い（短時間フーリエ変換（ＳＦＦＴ：Short-time Fast Fourier Transform））、各フレームにおけるピークを検出し、得られたピークのうち、軌跡を成すものを追跡する。そして、得られた軌跡の中から所望のデータを選択し、その一つひとつを正弦波合成し、加算することによりもとの楽音波形のうち決定論的に得られる波形を合成する。そして、前記もとの楽音波形から前記決定論的に得られる波形（Deterministic Wave）を減算することにより残差波形（Residual Wave）を得る。
【０００３】
前記決定論的に得られた波形は、前記軌跡のデータをモディファイすることによりモディファイすることができ、前記残差波形はＥＱ（イコライザ）やＦＦＴ他の信号処理によりモディファイすることができる。このようにしてモディファイされた決定論的に得られる波形と前記残差波形とを加算することにより、所望の楽音波形を得ることができる。
なお、上記楽音波形の分析は、上述したような楽音波形の合成のためだけではなく、楽器音の特徴と楽器の物理的性質との関連を明らかにするため、あるいは、楽器音の機械認識などのためにも用いられている。
【０００４】
図２０は、このような波形分析の結果得られた前記ピークデータの一例を示す図である。この図に示す例は、ピアノの中央ハ（Ｃ４，基音周波数は約２６１．６３Ｈｚ）を分析したものであり、横軸は時間（単位はｍｓ）、縦軸は周波数（単位はＨｚ）であり、前記時間窓に対応する各フレーム毎に検出されたピークデータが点で表されている。また、横方向の細線は、前記基音周波数およびその倍音の周波数を表している。この図において、全ての点は独立に存在しており、図において軌跡を描いている線を見てとることができるが、これがつながっているとの情報はまだ得られていない。また、線として見える部分以外はノイズであったり、非調和な成分であったり、あるいは、ＦＦＴの窓関数のサイドローブが表示されているものとみなされる。
このようなピークデータから軌跡を成すデータを抽出するためには、各フレームタイムにおける各ピーク点がどのように接続しているかを判定することが必要である。このために、一般に、各フレームで倍音関係にある成分をピッキングすることが行われている。すなわち、既知の基音周波数ＦＢに対して、その整数倍、２×ＦＢ，３×ＦＢ，…の周波数近辺で最大の振幅を持つ点を倍音であると判断し、各フレーム毎に倍音データをピックアップしていく方法がとられている。
【０００５】
【発明が解決しようとする課題】
図２１は、前記図２０における基音の２０ｍｓｅｃあたりを拡大した図である。この図において、時間軸を右から左へ見ると、時刻Ａにおいてピークは矢印の方向へつながるとするのが正解であろう。しかしながら、上述した従来の方法では、各フレーム各々で倍音周波数に最も近いものを選択するという条件で追従が行われているため、時間Ａでａのピークにつながるのか、それともｂのピークへつながるのかが確定しないという問題点がある。
【０００６】
また、図２２は、ピアノのＣ１（３２．７０３Ｈｚ）の楽音ピークを上述した従来の方法で検出した結果を示す図である。このデータは、時間窓の幅（ウインドウサイズ）をＣ１の基本周期３０．５ｍｓの８倍、２４４．６ｍｓとし、ウインドウの移動時間（ウインドウホップサイズ）を基本周期の１／８（３．８２ｍｓ）として得たものである。また、図２３は、前記図１２の高調波部分におけるのピークを拡大した図である。なお、これらの図において、横軸は時間、縦軸は周波数、横方向の細線は基音周波数およびその倍音を示している。図２３をみると、高次の倍音の軌跡が倍音周波数からかなり外れていることが判る。これは、例えば、８倍音（２６１．６２Ｈｚ）の成分では、前述のウインドウ内に６４周期入ってしまうためであると考えられる。短時間高速フーリエ変換（ＳＦＦＴ）の不確定性として、周波数を正確に得ようとするにはある程度以上のウインドウサイズが必要である。３２．７０３Ｈｚ付近を正確に検出するためには上述程度以上のウインドウサイズが必要である。しかしウインドウが広いと時間分解能が悪くなってしまうという問題点がある。一般に、ＳＦＦＴの性質として一つのウインドウ内では周波数、振幅が変化してもその情報を得ることができない。高調波成分の方が変化が速いとするならば、８倍音は６４周期内に周波数、振幅の揺らぎが生じていると考えられる。この状況はさらに高調波であればあるほど顕著となる。
【０００７】
そこで、このような問題点を防止するために、被解析信号をＢＰＦをかけることにより帯域分割し、分割された帯域毎にウインドウサイズ、ウインドウのホップサイズを決めてＳＦＦＴする方法が行なわれている。この方法は、図２４に示す楽音分析合成装置のように、ローパスフィルタ（ＬＰＦ）１０１、複数のバンドパスフィルタ（ＢＰＦ）１０２およびハイパスフィルタ（ＨＰＦ）１０３を用いて被解析信号を複数の周波数帯域に分割し、乗算器１０４を用いて帯域分割された各周波数帯の信号にそれぞれ対応する時間窓を掛け、それぞれ対応して設けられたＳＦＦＴ部１０５により各々の帯域のスペクトル解析を実行し、各解析結果についてそれぞれ別個に設けられたピーク検出及びピーク追従処理部１０６で前記ピークの軌跡の追従を行い、正弦波合成部１０７において、前記それぞれの帯域において検出された軌跡に対応する正弦波を生成し、それらを合成して前述した決定論的波形（Deterministic Wave）を出力するものである。
【０００８】
しかし、この方法では、ＬＰＦ１０４、複数のＢＰＦ１０２およびＨＰＦ１０３の位相特性を均一に設計することが困難であり、このようにして解析した結果得られた各倍音の軌跡から正弦波合成によりDeterministic Waveを合成したとしても、被解析信号との間に位相のずれが生じてしまい、被解析信号からDeterministic Waveを減算するという方法ではResidual Waveは得られないという問題点があった。
【０００９】
すなわち、従来技術においては、基音周波数が低く、高次倍音が豊富に含まれているような波形において、これを分離しようとする際、ＳＦＦＴの不確定性により、基本周波数の周波数精度を上げようとしてウインドウサイズを大きくすると、高調波の変化に追従することができなくなる。また、高調波の変化に追従しようとしてウインドウサイズを小さくすると、基本周波数の周波数精度が低くなってしまい、DeterministicとResidualの分離精度が悪くなるという問題点がある。
【００１０】
そこで本発明は、各フレームにおけるピークの追従を正確に行うことのできる高精度の楽音分析方法および装置を提供することを目的としている。
また、基本周波数が低く、高次倍音が豊富に含まれているような波形であっても、高精度に分離することのできる楽音波形分離方法および装置を提供することを目的としている。
【００１１】
【課題を解決するための手段】
上記目的を達成するために、本発明の楽音波形分析方法は、分析対象楽音波形サンプルに対し順次シフトする時間窓を用いてフーリエ変換を行うことにより前記時間窓の位置に対応する各フレームにおけるピーク点を検出してスペクトル解析を行う楽音波形分析方法において、当該分析対象楽音の複数の倍音のグループ毎にそれぞれ対応して設定された分析条件を用いて前記スペクトル解析を行うようにしたものである。
【００１２】
また、本発明の楽音波形分析合成方法は、楽音波形から線スペクトル成分を抽出し、該抽出した線スペクトル成分に対応する正弦波信号波形を生成して合成し、前記楽音波形から前記合成した信号波形を減算した残差成分と前記合成した信号波形とを加算することにより楽音を合成する楽音波形分析合成方法であって、前記楽音波形を分析するとき、当該楽音波形の複数の倍音のグループ毎にそれぞれ対応して設定された分析条件を用いて前記楽音波形の分析を行い、該分析結果に基づいて前記線スペクトル成分を抽出するようにしたものである。
さらに、前記倍音のグループに対応する前記残差成分を抽出し、該残差成分を順次さらに異なるグループ対応に分析するようにしたものである。
【００１３】
【発明の実施の形態】
図１は、本発明の楽音分析方法が実行される楽音分析合成装置のハードウエア構成の一例を示すブロック図である。
この図において、１はこの楽音分析合成装置全体の制御を行うＣＰＵ、２はＣＰＵ１が実行する各種制御プログラム、楽音分析プログラムおよび楽音合成プログラムなどの各種プログラムを記憶するプログラムメモリ、３は各種制御情報、後述する各種のデータの記憶および一時記憶領域（バッファ）やワークエリアとして使用されるデータメモリ、４は表示装置、５はキーボードおよびポインティングデバイスなどの入力装置、６は鍵盤などの演奏操作子、７は楽音を合成する楽音合成部（シンセサイズユニット）、８は楽音波形サンプルをアナログ信号に変換し、図示しないサウンドシステムに出力するデジタルアナログ変換器（ＤＡＣ）である。また、９は電話回線、インターネット、ＬＡＮなどの通信ネットワーク１１と接続するためのネットワークインターフェース回路、１０はシステムバスである。
なお、この図１に示したハードウエア構成においては、楽音合成部７および演奏操作子６が設けられているが、これらは必ずしも設けることが必要ではない。また、図示していないが、ＣＤ−ＲＯＭ、ＤＶＤ、ＭＯ、ＦＤなどの外部記憶媒体の駆動装置を接続してもよいことは当然である。
【００１４】
図２は、前記楽音合成部７の内部構成の例を示す図であり、図２の（ａ）は、前述した各軌跡に対応する周波数成分の波形を発生する複数個の正弦波波形発生部を有する場合の一構成例を示す図である。図２の（ａ）において、７１および７３は前記システムバス１０を介して前記ＣＰＵ１に接続するためのインターフェース回路、７２は正弦波波形演算部であり、図示するように複数の正弦波波形発生器ＳＷＧ１〜ＳＷＧｎが設けられている。この複数の正弦波波形発生器ＳＷＧ１〜ＳＷＧｎは、前記楽音波形を分析して検出された各ピーク点の軌跡の各々に対応した正弦波波形を生成するものである。また、７４は残差波形演算部であり、前述した残差波形（Residual Wave）を生成する。さらに、７５はミキサであり、前記正弦波波形演算部７２の出力と前記残差波形演算部７４の出力とを合成して、合成楽音を前記ＤＡＣ８に出力する。
【００１５】
図２の（ｂ）は前記楽音合成部７の他の構成例を示す図である。この図において、７６は前記ＣＰＵ１とのインターフェース回路、７７は波形メモリ、７８は前記波形メモリ７７から波形データの読出を制御する位相発生部、７９は前記読み出された波形サンプルに対して所望の加工を行う波形加工部である。この例においては、前記楽音波形サンプルを分析して得られたピーク点の各軌跡に対応する正弦波波形の合成波形および前記残差波形の合成波形が前記ＣＰＵ１によりソフトウエアにより演算生成され、前記波形メモリ７７に格納されるようになされている。そして、当該楽音発生制御信号に応じて、前記位相発生部７８により前記波形メモリ７７から当該合成楽音信号波形が読み出され、波形加工部７９を介して、前記ＤＡＣ８に出力されることなる。
【００１６】
以下、本発明の楽音分析方法における波形分析処理について説明する。
図３は、前記図２０と同じピアノのＣ４打鍵音の時間波形の一例を示す図である。この波形を使ってピーク追従する場合を例にとって説明する。図４は、波形分析処理を説明するためのフローチャートである。
なお、波形分析処理を実行するときには、分析対象波形の先頭からフレームを少しずつずらして、ピークを見つけ、すべてのピークを見つけてからピークを追従することも当然可能であるが、すべてのフレームの全てのピークデータを貯えておくためには、膨大な記憶容量を必要とする場合がある。そこで、本発明においては、分析フレーム毎に追従をチェックし、追従可能なピークのみを記憶するようにしている。
【００１７】
さて、波形分析処理が開始されると、まず、ステップＳ１において、分析対象波形のサンプリング処理が実行され、分析の対象となる楽器音のサンプリングデータが前記データメモリ３に格納される。すなわち、例えば、４４．１ｋＨｚのサンプリング周波数で分析対象楽音波形がサンプリングされ、前記図３に示したような分析対象波形がデータメモリ３に格納される。
次に、ステップＳ２に進み、分析条件が入力されるとともに分析の前処理が行われる。すなわち、前記ステップＳ１において格納された分析対象データの振幅調整、イコライズ処理、フィルタリング処理などが行われ、同時に分析範囲の設定も行われる。
【００１８】
続いて、ステップＳ３に進み、前記分析対象データのエンベロープが最大となる時点（以下、アタックマックスポイント（Attack Max Point）という）の検出が行われる。これは、振幅レベルが最大となるアタックマックスポイントでは、すべての追従が必要なピークが出揃っている可能性が大きいので、この時間波形の振幅レベルが最大振幅を示す時間が窓サイズの中央位置にくるようにして分析を開始するようにしているためである。図３の例では、アタックマックスポイントはサンプリング開始時点から４２．９ｍｓ後に見つけられる。この実施の形態では、サンプリング周波数が４４．１ｋＨｚであるので、４２．９ｍｓは１８９２点目と求められる。これにより、追従が必要なピークをもらすことなく検出することが可能となる。
【００１９】
次に、ステップＳ４に進み、分析窓の初期設定などが行われる。一般に、ＦＦＴの窓サイズは波形の基本周期の整数倍とするのが適切であり、例えば、８倍とされる。前記図３に示したＣ４打鍵音は基音周波数が２６１．６３Ｈｚであり、その１周期に含まれるサンプルポイント数は、サンプリング周波数ｆｓを４４．１ｋＨｚとしたとき、１６８．６点となる。したがって、窓サイズは、この８倍、１３４８点（小数以下四捨五入）となる。また、ＦＦＴサイズは、２のベキ数でなければならず、前述のように、このＦＦＴサイズが大きければ大きいほど周波数分解能は向上する。しかし、あまり大きすぎても計算時間がかかってしまうので、ここでは、窓サイズを超える最少の２のベキ数を選ぶこととする。したがって、この例では、２０４８点と決定される。
【００２０】
続いて、ステップＳ５に進み、フレーム位置を計数するフラグｎを０に初期化する。そして、ステップＳ６に進み、分析窓位置の設定を行う。前述のように、アタックマックスポイントは１８９２点目であり、窓サイズが１３４８点であるため、最初のフレームは１２１８点目から２５６６点目となる。これを第０フレームとする。
続いて、ステップＳ７に進み、分析対象波形の分析範囲が分析対象波形の分析範囲の最大値framemaxを超過したか否かを判定する。この判定結果がＮＯのときは、次のステップＳ８に進みＦＦＴ処理が実行される。また、この判定結果がＹＥＳのときは、ステップＳ１５に進む。
【００２１】
ステップＳ８においてＦＦＴ処理が実行され、ステップＳ９において、このＦＦＴ処理の結果からピークが求められる。このピークを求めた結果の例を図５に示す。この第０フレームのそれぞれのピークをPK0-1，PK0-2，…，PK0-M0と表すこととする。ここで、それぞれのピークは、周波数(Frequency)、振幅(Magnitude)、位相(Phase)の３つの情報を有している。これをPK0-1.Frequency，PK0-1.Magnitude，PK0-1.Phase，…と表すこととする。なお、Ｍ０はフレーム０で検出されたピークの総数である。これらのピークはリファレンス（Frame n）として、前記データメモリ３中のバッファに格納される。
【００２２】
続いて、ステップＳ１０に進み、フレーム番号ｎが０であるか否かが判定される。
処理開始直後においてはｎ＝０であるため、ステップＳ１０の判定結果がＹＥＳとなり、前記ステップＳ１１が実行される。このステップＳ１１において、前記バッファに格納されたFrame 0のデータは、前記データメモリ３に確保された分析結果を格納するテーブル領域中の対応する個所TFrame 0に格納される。
また、ｎが０でないときは、ステップＳ１２においてピーク追従処理が実行され、続いてステップＳ１３において、前記分析結果を格納するテーブルに追従結果が格納される。この追従処理の詳細については後述する。
【００２３】
図６は、分析の結果得られたピークに関する情報を格納するテーブルのイメージを示す図である。この図に示すテーブルにおいて、行は線スペクトル成分、列は解析された全フレームであり、各セルには各フレームにおいて検出されたピークの番号を示している。なお、ここでは、周波数の低い方から順に各ピーク点に番号を付している。前記ステップＳ１１により、このテーブルのFrame 0の列に、前記ステップＳ９で得られた各ピーク点の情報が書き込まれる。
【００２４】
前述したように、各ピーク点にそれぞれ周波数、振幅および位相の３つの要素が含まれており、実際には、この図６に示した線スペクトル成分数×総フレーム数のデータが３枚分作成されることとなる。前述した楽音合成時には、このテーブルを読み出して、各行に対応して正弦波波形発生器を割り当て、フレーム進行に伴い、各データ（周波数、振幅および位相）に基づいて正弦波波形を発生させることとなる。
なお、前後のスペクトルの発生消滅具合をみて、正弦波波形発生器のチャンネルの割り当てを柔軟に行うようにすれば、楽音合成時における処理効率を向上させることができ、また、複音発生の差異の正弦波波形発生器の有効利用を図ることができる。例えば、図６に示した例においては、第ｘフレームで第１２番目のピークが消滅し、第ｙおよびｙ＋１フレームで復活して現れているが、図６に示したように、フレーム前後の割り当て状態を参照して、ピーク成分の連続性を崩さない限り、空いているチャンネルを使用するようにしてもよい。
【００２５】
さて、前記ステップＳ１１あるいはＳ１３の終了後に、前記フレーム番号ｎが１だけ増加され（ステップＳ１４）、再び、前記ステップＳ６に処理が戻る。このステップＳ６の分析窓位置設定処理においては、第ｎ＋１フレームに対応する分析窓位置が設定される。このとき、前記フレームが時間軸に沿って時間軸の正方向に移動される。この実施の形態においては、移動するサンプルデータ数を基本周期の１／８、すなわち、２１点としている。したがって、例えば、第１フレームについては、前述した第０フレームの分析窓位置（１２１８点目〜２５６６点目）を２１点だけ時間軸の正方向にずらした第１２３９点目〜２５８７点目が第１フレームの分析窓位置として設定されることとなる。そして、前記ステップＳ７、Ｓ８、Ｓ９が実行され、第１フレームにおけるピークPK1-1，PK1-2，…，PK1-M1（Ｍ１は見つかったピークの総数）が検出される。
【００２６】
そして、この場合は、前記ステップＳ１０の判定結果がＮＯとなり、ステップＳ１２のピーク追従処理が実行される。ここでは、前記第０フレームにおいて検出されたピーク（ピークのリファレンス０とこの第１フレームにおいて検出されたピークとを後述する方法によって双方向に比較し、追従結果を得る。この追従結果として得られたつながっているピークのみをメモリの前述したテーブルに格納していくと同時に、次のフレームに対するリファレンスとする。図６に示した例においては、第０フレームの１１という番号が付されたピークに接続されるピークが、第１フレームになかったことが示されている。以下、このステップＳ６〜Ｓ１４の処理を繰り返し、分析波形の分析範囲の最後までピーク追従処理を実行する。
このように、まず、第０フレームからフレームを時間軸の正方向に順次ずらしながら、分析範囲の最後の位置まで、ピーク追従処理が実行される。
【００２７】
そして、分析範囲の最後まで到達すると、前記ステップＳ７の判定結果がＹＥＳとなり、ステップＳ１５に進む。このステップＳ１５においては、前記フレーム番号ｎを−１に設定する。以下、前記第０フレームから時間軸の負の方向に沿ってのピーク追従処理が開始される。すなわち、ステップＳ１６において、分析窓位置が設定される。このステップＳ１６における分析窓位置の設定処理は、前記ステップＳ６における処理とは異なり、時間を逆順に進めて行われる。すなわち、前述のように、第０フレーム分析窓位置が２１点だけ時間軸の負の方向にずらされ、第１１９７点目〜第２５４５点目が第−１フレームの分析窓位置と設定される。そして、ステップＳ１７において分析範囲を超過したか否かが判定され、この判定結果がＮＯのときはステップＳ１８において、ＦＦＴ処理が実行される。そして、前述の場合と同様にピーク検出処理が実行され（Ｓ１９）、ピーク追従処理が実行される（Ｓ２０）。そして、追従結果が前記テーブルに格納される（Ｓ２１）。そして、ステップＳ２２において、ｎ−１をあらたなｎとして、前記ステップＳ１６以降の処理が繰り返し実行される。そして、前記分析範囲を超過した場合に、前記ステップＳ１７の判定結果がＹＥＳとなり、この波形分析処理を終了する。このとき、前記図６に示したテーブル中に分析結果が得られていることとなる。
【００２８】
次に、前記ステップＳ１２およびＳ２０におけるピーク追従処理について説明する。
互いに隣り合った第ｐフレームと第ｒフレームについてピーク追従処理を行うものとする。まず、第ｐフレームにおいて検出されたピークPKp-q（PKp-1，PKp-2，…，PKp-Mp）について、第ｒフレームのすべてのピークPKr-s（PKr-1，PKr-2，…，PKr-Mr）とつながる可能性を計算する。この可能性を示す値をCP（Connection Possibility）と名付けることとする。CP(p-q,r-s)は、フレームｐ側から見た、PKp-qとPKr-sとのつながる可能性を示す数値である。このCPは次の式（１）により、計算することができる。
CP(p-q,r-s)＝FuncA(|PKp-q.Frequency-PKr-s.Frequency|)*FunkB(|PKp-q.Magnitude-PKr-s.Magnitude|)*FuncC(PredictionPhase(sign(r-p),PKp-q,PKr-s)-PKr-s.Phase)    …（１）。
ここで、FunkAは周波数について近いものを捜す関数（周波数比較関数）である。図７にこの周波数比較関数FuncAの一例を示す。この図において、横軸ｘは当該ピークの周波数、縦軸は確率であり、Ｆは比較対象となるピークの周波数、ＦＢは当該楽音の基音周波数である。この例に示すように、両者が全く同一の周波数のときに１となり、全領域についての積分値が１となる関数を用いればよい。
また、FuncBは振幅について近いものを捜す振幅比較関数である。図８は、この振幅比較関数の一例を示す図であり、前記周波数比較関数と同様に、全く振幅の差がないときに１となり、全領域についての積分値が１となる関数である。楽音の場合、フレームの移動距離が短いため、この間ではそれ程急峻な変化はないと仮定している。
【００２９】
さらに、FuncCは位相についての関数である。また、次の式（２）に示すように、PredictionPhaseは位相予測関数でフレームの移動方向の関数となり、フレームｐの情報から予測されるフレームｒでの位相を計算するものである。
PredictionPhase(sign(r-p),PKp-q,PKr-s)＝PKp-q.Phase+sign(r-p)2π*PKp-q.Frequency／SamplingFrequency*HopSize    …（２）。
ここで、HopSizeはフレームの移動サンプル点数であり、この例では２１点となる。HopSize／SamplingFrequencyはフレームの移動サンプル時間を示しており、この例では４．７６ｍｓである。この式（２）は、ｐフレームで周波数がPKp-q.Frequencyであったとして、隣のフレームまでこれが変わらなかったとした場合、ｒフレームの位相が何度であるのかを計算するものである。また、sign(r-p)はフレームの移動方向で、正の場合には位相は進み、負の場合には位相が戻ることを示している。
FuncCは位相間の距離が近いとき１となるような関数であり、例えば、次の式（３）のような形式の比較関数が用いられる。
FuncC(phase1-phase2)＝(1+cos(phase1-phase2))／2    …（３）。
【００３０】
フレームｐでのｑ番目のピークについて、ｒ側のすべてのピークに対するCP(p-q,r-1)，CP(p-q,r-2)，…，CP(p-q,r-Mr)を計算し、CP値が最大となるピークがｐ側からｒ側を見たときに一番つながる可能性のあるピークであるということができる。図９は、PKp-1について計算した例を示す図である。この図９に示した例においては、CP(p-1,r-1)が最大値となっているので、PKp-1はPKr-1と最もつながる可能性があると考えられる。
なお、このときに前記CPの最小値を予め決定しておき、例えば、すべてのCP値が０．００１以下の場合はつながる可能性のあるピークがないとする方が現実的である。この場合のピークはフレームｐで消滅したものと考えられる。
【００３１】
このようにして、フレームｐのすべてのピークについて最もつながる可能性のあるフレームｒでのピークが見つかったとする。しかし、図１０に示すような場合には、ｐ上での２つのピークがｒ上での１つのピークにつながってしまう可能性がある。この図１０に示した例では、PKp-3とPKp-4の２つがPKr-3に接続されてしまう。
そこで、本発明においては、今度はｒ側からｐ側を見てもっともつながる可能性のあるピークを捜すようにしている。この場合においても、前記式（１）に示したCPを用いる。ただし、この場合には、前記PredictionPhaseの計算式が異なっている。すなわち、位相予測関数PredictionPhaseは、時間的に逆方向を予測するものとなるため、sign(p-r)が負となり、次の式（４）のようになる。
PredictionPhase(sign(p-r),PKr-s,PKp-q)＝PKr-s.Phase-2π*PKr-s.Frequency／SamplingFrequency*Hopsize    …（４）。
【００３２】
このようにして得られるCP(r-s,p-1)，CP(r-s,p-2)，…，CP(r-s,p-Mp)の値から最大のものを見つけて、ｒ側からｐ側を見たときに一番つながる可能性のあるピークを捜す。図１１はこの結果の一例を示す図である。図示した例においては、PKr-3はPKp-4とつながる可能性が高いという結果が得られる。これにより、PKp-4とPKr-3がつながっていると判断する。また、PKp-3についてはフレームｐで消滅したと考えることができる。
このように双方向からのマッチングをとるようにすることにより、最適なピークの接続を見い出すことが可能となる。
【００３３】
なお、前記図１０において、ｐ側からｒ側を見たときに、PKp-3についてはCP(p-3,r-3)が最大値をとり、PKp-4についてもCP(p-4,r-3)が最大値をとったとする。すなわち、PKp-3とPKp-4がともにPKr-3につながる可能性があるということである。この場合、ｒ側からｐ側を見て再度CP(r-3,p-3)とCP(r-3,p-4)の値を計算するようにしてもよいが、これをCP(p-3,r-3)とCP(p-4,r-3)で代用し、このうち大きい方を選ぶようにしてもよい。
【００３４】
なお、前記ステップＳ２０において、第０フレーム側から第−１フレームとのCP値を計算するときには、前記PredictionPhaseは時間的に逆方向を予想することとなるため、前記式（４）で示した位相予測関数を用いる。また、第−１フレームから第０フレームをみるときには、当然、式（２）の位相予測関数を用いることとなる。
【００３５】
このようにして、分析対象波形の最初から最後まで各フレームでの各ピークの接続が分かったものとする。図１２は、このようにして判定された結果の一例を示す図である。この図において、一番最初にリファレンスとしたのは、前述のように、第０フレームのピークであり、このフレームのピークをすべて追従したことになる。もちろん、途中で消滅条件により消えてつながらなくなってしまったピークも含まれている。また、図１２に示したピーク軌跡には、必要でないピークまで追従対象に含まれてしまっている可能性もある。例えば、ａで示したピークの軌跡は、不必要なものであると考えられる。そこで、得られた結果を必要に応じてクリーニングする。このクリーニングの条件は、１．ハーモニックであること、２．全フレーム数に対してある程度以上の長さを持つこと、である。この条件のうち、いずれか一方でもよいし、あるいは、前記１と２のアンド条件であってもよい。図１３に、このようにしてクリーニングした結果の一例を示す。
【００３６】
また、あるピークの軌跡が途中で一部切れてしまっている場合もある。図１４はこのような場合の例を示す図である。この図において、Ｍ番目のピーク軌跡はＮ−１フレームで消滅し、Ｎ＋１フレームで生成されているように見える。しかし、１つの軌跡は１つの正弦波発振器に対応しており、軌跡が消滅した時点で対応の正弦波発振器は未使用状態あるいは出力途絶、すなわちＮ−１フレームとＮ＋１フレーム間で正弦波出力がぷっつりと切れてしまうということになってしまい、クリックノイズの発生などの不都合が生じる恐れがある。このような場合は、図１５に示すようにＮフレームに振幅０のピークがあるように補って考え、一続きの軌跡と考えるようにすればよい。あるいは、フレームＮ−１のピークの情報とフレームＮ＋１のピークの情報を補間し、フレームのピーク情報を作り出すようにすることもできる。前述した図１２において、ａで示した軌跡は、このようにして補間された例である。
このような補間はリファレンスピークを次のように作ることにより実現することができる。すなわち、PKN-Mは実際には見つけられなかったのであるから、振幅は０である。しかし、N-1のピークのデータから周波数と位相を予想することができる。そこで、一旦途切れてしまったピークのリファレンスとして、周波数と位相の情報のみを持つピークとして、その情報を保持しておくようにする。これにより、フレームＮへ接続できなかったピークについて、さもフレームＮにピークがあったかのようにリファレンスを作成しＮ＋１の接続を行うようにすることが可能となる。
【００３７】
さて、前述のように、従来のＳＦＦＴ処理においては、ウインドウサイズを大きくすると基本周波数の周波数精度は向上するものの高調波の変化に追従することができなくなり、ウインドウサイズを小さくすると基本周波数の周波数精度が悪くなってしまうという問題点があった。このような問題点を解決する本発明の楽音分析および合成処理について、図１６の処理の流れ図および図１７の波形図を参照して説明する。
【００３８】
図１６において、入力される被解析信号は、第１の窓関数（Window Function 1）と第１のホップサイズ（Window Hopsize 1）に基づいて設定される分析窓（Window 1）と乗算され（ステップＳ３２）、第１の短時間フーリエ変換（ＳＦＦＴ）が行われる（ステップＳ３３）。この第１の短時間フーリエ変換においては、前述したと同様に、基本周波数から決定されるウインドウサイズ及びウインドウポップサイズによる分析が行われる。
【００３９】
そして、ステップＳ３４において、この第１のＳＦＦＴの結果から第１のピーク検出及びピーク追従処理が行われる。この第１のピーク検出及びピーク追従処理においては、前述したと同様のピーク検出及びピーク追従であるが、ここでは、基本周波数の８倍音以下の周波数のピークを対象として、処理を行う。このステップＳ３４の出力を第１の軌道情報と呼ぶ。続いて、ステップＳ３５に進み、該第１の軌道情報の正弦波合成を実行し、第１の決定論的波形（Deterministic Wave）を出力する。
図１７における▲１▼は前記被解析信号の一例（この例では、ピアノのＣ１の波形）であり、▲２▼は前記第１の決定論的波形を示している。
なお、前記正弦波合成は、前述のように、離散的な正弦波波形サンプルを生成し、これらを加算することにより行ってもよいし、あるいは、複数個の正弦波波形発生器を用いて対応する正弦波波形を発生させ、それらの出力を合成するようにしてもよい。
【００４０】
次に、このようにして得た第１のDeterministic Waveの極性を反転して（ステップＳ３６）、前記被解析信号と加算する（ステップＳ３７）。これにより、第１の残余波形（Residual Wave）を得る。図１７の▲３▼は、この第１の残余波形の一例を示すものであり、この第１の残余波形は、前記被解析信号と前記８倍音以下の周波数を有するピークの軌跡から合成された第１のDeterministic Waveとの差の信号である。
次に、この第１のResidual Waveについて、第２の窓関数（Window Function 2）と第２のウインドウホップサイズ（Window Hopsize 2）とにより設定される第２の窓関数（Window 2）を乗算し（ステップＳ３９）、第２の短時間フーリエ変換処理を実行する（Ｓ４０）。この第２のＳＦＦＴは、ウインドウサイズとして８倍音の周期の８倍、すなわち、基本周期と同じサイズを用い、また、ウインドウのホップサイズは、８倍音の１／８、すなわち基本周波数の１／６４として、分析を行う。このようなウインドウサイズ及びウインドウホップサイズを用いることにより、高い周波数成分についても精度のよいピーク検出及び軌跡の追従が可能となる。
そして、この第２のＳＦＦＴの出力から、８倍音以上の周波数成分について、ピーク検出及びピーク追従処理を実行し（Ｓ４１）、第２の軌道情報を得る。次に、この第２の軌道情報から前述と同様に正弦波合成を行い（Ｓ４２）、第２のDeterministic Waveを得る。この第２のDeterministic Waveは、８倍音以上の高調波成分についての合成信号である。
【００４１】
このようにして得られた第２のDeterministic Waveと前記ステップＳ３５で得られた第１のDeterministic Waveとを合成して（ステップＳ４３）、最終的な決定論的波形（Deterministic Wave）を得る。図１７の▲４▼は、この決定論的波形の一例を示している。
このステップＳ４３における合成においては、前記第１の決定論的波形Deterministic Waveと前記第２の決定論的波形との加算が行われるが、前述のように、前記第１の決定論的波形は基本周期の１／８のウインドウホップサイズ間隔で得られた第１の軌道情報に基づいており、前記第２の決定論的波形は基本周期の１／６４のウインドウホップサイズ間隔で得られた第２の軌道情報に基づいている。したがって、この２つのデータを加算するためには、精度の細かい間隔にデータを合わせ込むことが必要となる。すなわち、前記第１の決定論的波形のデータを８倍に補間して１／６４の精度にあわせることが必要となる。
【００４２】
前述のように、各ピークのデータは、それぞれ振幅、周波数および位相の３つの情報を有している。図１８は振幅情報および周波数情報の補間を説明するための図であり、この図に示すように、基本周期の１／８の間隔で得られた第１の決定論的波形データのピークP1-1とP1-2との間を例えば直線補間して、P1-1-1，P1-1-2，…，P1-1-7を得ることにより１／６４の精度の振幅情報あるいは周波数情報とする。なお、補間方法としては直線補間に限らず、合い前後する数点のデータをとって多項式補間をしてもよい。
また、位相情報については、基本周期の１／８の間隔で得られた第１の決定論的波形データのピークP1-1の位相及び周波数のデータと、ピークP1-2の位相及び周波数のデータを用いて、図１９に示すような位相の回転を記述し、各点P1-1-1，P1-1-2，…，P1-1-7の位相を読み取るようにすればよい。
このようにして、第１のDeterministic Waveと第２のDeterministic Waveとの時間分解能を揃えてから、データの加算を行うことができる。
【００４３】
また、前記第２のDeterministic Waveの極性を反転して（Ｓ４４）、前記第１のResidual Waveと加算する（Ｓ４５）ことにより、図１７の▲５▼に示すような、最終的なResidual Waveを得ることもできる。この図１７の▲５▼から明らかなように、残余波形は立ち上がり直後以外においては非常に低レベルなものとなっている。
なお、上記においては、被解析信号の周波数帯域を２分割した例を示したが、これに限られることはなく、３分割、４分割等、それぞれの場合に応じた数に分割し、上述の例と同様の方法で、実現することが可能である。
【００４４】
また、上記においては、分析対象楽音波形について、まず、低次倍音グループについてＳＦＦＴを実行し、当該正弦波合成波形との残差波形について、高次倍音グループについてのＳＦＦＴを実行しているが、これに限ることはない。例えば、分析対象楽音波形について、低次倍音グループについてのＳＦＦＴ処理と高次倍音グループについてのＳＦＦＴ処理をそれぞれ実行し、前記低次倍音グループに関する正弦波合成波形と前記高次倍音グループに関する正弦波合成波形とを前記分析対象楽音波形から減算することにより、残差波形を求めるようにしてもよい。
【００４５】
さらに、上記においては、分析時の波形演算はソフトウエア処理で実行するものとして説明したが、前記楽音合成部７における正弦波合成機能を用いて波形演算を実行させるようにしてもよい。この場合は、分析結果を正弦波合成部に与え、合成結果をその出力から受け取るようにすればよい。
さらにまた、前述した各処理の実行部および楽音合成部などは、ハードウエアあるいはソフトウエアのいずれによっても実現することが可能である。
さらにまた、上記においては前記図１に示したような構成を有する楽音分析合成装置において本発明の楽音分析方法および楽音分析合成方法が実行されるものとして説明したが、本発明の楽音分析方法及び楽音分析合成方法は、これに限られることなく、パーソナルコンピュータ等の汎用コンピュータ、電子楽器、ゲームマシン、カラオケ装置、スペクトルアナライザ等の計測器など各種の装置において実行させることができるものである。
【００４６】
【発明の効果】
以上説明したように、本発明の楽音分析方法によれば、各フレームにおけるピークの追従を正確に行うことができる。また、基本周波数が低く、高次倍音が豊富に含まれているような波形であっても、精度よくスペクトル分析ができるという効果がある。
【図面の簡単な説明】
【図１】  本発明の楽音分析方法あるいは楽音分析合成方法が実行される楽音分析合成装置の一構成例を示すブロック図である。
【図２】  楽音合成部の構成例を示すブロック図である。
【図３】  ピアノのＣ４打鍵音の時間波形の一例を示す図である。
【図４】  波形分析処理を説明するためのフローチャートである。
【図５】  図３に示す時間波形についての分析結果の一例である。
【図６】  分析結果を格納するテーブルの一例を示す図である。
【図７】  周波数比較関数の一例を示す図である。
【図８】  振幅比較関数の一例を示す図である。
【図９】  隣接するフレーム間のピークがつながる可能性の計算結果の一例を示す図である。
【図１０】  ピークのつながる可能性の計算結果の一例を示す図である。
【図１１】  ピークのつながる可能性の計算結果の一例を示す図である。
【図１２】  ピークのつながりを判定した結果の一例を示す図である。
【図１３】  図１２の判定結果をクリーニングした結果の一例を示す図である。
【図１４】  ピークの軌跡が途切れている場合を説明するための図である。
【図１５】  図１４の場合の補間処理について説明するための図である。
【図１６】  本発明における楽音分析および合成処理について説明するための流れ図である。
【図１７】  図１６に示した処理の各段階における波形の一例を示す図である。
【図１８】  図１６に示した処理における楽音合成を説明するための図である。
【図１９】  図１６に示した処理における楽音合成を説明するための図である。
【図２０】  楽音波形の分析結果の一例を示す図である。
【図２１】  図２０の一部を拡大した図である。
【図２２】  基音周波数が低く、高次倍音が豊富に含まれる楽音波形の分析結果の一例を示す図である。
【図２３】  基音周波数が低く、高次倍音が豊富に含まれる楽音波形の分析結果の一例を示す図である。
【図２４】  従来の楽音波形分析及び合成装置の一例を示す図である。
【符号の説明】
１  ＣＰＵ、２  プログラムメモリ、３  データメモリ、４  表示装置、５  入力装置、６  演奏操作子、７  楽音合成部、８  デジタルアナログ変換器、９ネットワークインターフェース、１０  システムバス、１１  通信ネットワーク、７１、７３、７６  ＣＰＵインターフェース回路、７２  正弦波波形演算部、７４  残差波形演算部、７５  ミキサ、７７  波形メモリ、７８  位相発生部、７９  波形加工部、１０１  ローパスフィルタ、１０２  バンドパスフィルタ、１０３  ハイパスフィルタ、１０４  乗算部、１０５  短時間ＦＦＴ部、１０６  ピーク検出およびピーク追従処理部、１０７  正弦波合成部
【図１】
0003741106.tif 000002
【図２】
0003741106.tif 000003
【図３】
0003741106.tif 000004
【図４】
0003741106.tif 000005
【図５】
0003741106.tif 000006
【図６】
0003741106.tif 000007
【図７】
0003741106.tif 000008
【図８】
0003741106.tif 000009
【図９】
0003741106.tif 000010
【図１０】
0003741106.tif 000011
【図１１】
0003741106.tif 000012
【図１２】
0003741106.tif 000013
【図１３】
0003741106.tif 000014
【図１４】
0003741106.tif 000015
【図１５】
0003741106.tif 000016
【図１６】
0003741106.tif 000017
【図１７】
0003741106.tif 000018
【図１８】
0003741106.tif 000019
【図１９】
0003741106.tif 000020
【図２０】
0003741106.tif 000021
【図２１】
0003741106.tif 000022
【図２２】
0003741106.tif 000023
【図２３】
0003741106.tif 000024
【図２４】
0003741106.tif 000025