JP3741106B2 - 楽音波形分析方法及び楽音波形分析合成方法 - Google Patents
楽音波形分析方法及び楽音波形分析合成方法 Download PDFInfo
- Publication number
- JP3741106B2 JP3741106B2 JP2003043802A JP2003043802A JP3741106B2 JP 3741106 B2 JP3741106 B2 JP 3741106B2 JP 2003043802 A JP2003043802 A JP 2003043802A JP 2003043802 A JP2003043802 A JP 2003043802A JP 3741106 B2 JP3741106 B2 JP 3741106B2
- Authority
- JP
- Japan
- Prior art keywords
- musical sound
- waveform
- analysis
- peak
- sound waveform
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【発明の属する技術分野】
本発明は、楽音波形分析方法及び楽音波形分析合成方法に関する。
【0002】
【従来の技術】
楽音合成の一つの方法として、楽音波形を分析し、該分析することにより得られたもとの楽音波形に含まれている周波数成分の信号を発生させてこれらを加算することにより、楽音波形を合成する分析・(再)合成(Analysis & (Re)Synthesis)方式が知られている。
この楽音波形分析合成方式においては、まず、楽音波形をスペクトル解析してその楽音に含まれている基音周波数およびその倍音周波数に対応する線スペクトル成分を抽出する。通常、このスペクトル解析は、時間窓(ウインドウ)を用いたフーリエ変換による短時間スペクトル解析を用いて行われている。すなわち、分析対象となる楽音をサンプリングし、該楽音波形サンプルに窓関数を掛けてFFT(高速フーリエ変換:Fast Fourier Transform)を行い、該フーリエ変換出力の振幅データからピークを成す全ての周波数位置を検出する。
以上の処理を、前記時間窓を移動しながら行い(短時間フーリエ変換(SFFT:Short-time Fast Fourier Transform))、各フレームにおけるピークを検出し、得られたピークのうち、軌跡を成すものを追跡する。そして、得られた軌跡の中から所望のデータを選択し、その一つひとつを正弦波合成し、加算することによりもとの楽音波形のうち決定論的に得られる波形を合成する。そして、前記もとの楽音波形から前記決定論的に得られる波形(Deterministic Wave)を減算することにより残差波形(Residual Wave)を得る。
【0003】
前記決定論的に得られた波形は、前記軌跡のデータをモディファイすることによりモディファイすることができ、前記残差波形はEQ(イコライザ)やFFT他の信号処理によりモディファイすることができる。このようにしてモディファイされた決定論的に得られる波形と前記残差波形とを加算することにより、所望の楽音波形を得ることができる。
なお、上記楽音波形の分析は、上述したような楽音波形の合成のためだけではなく、楽器音の特徴と楽器の物理的性質との関連を明らかにするため、あるいは、楽器音の機械認識などのためにも用いられている。
【0004】
図20は、このような波形分析の結果得られた前記ピークデータの一例を示す図である。この図に示す例は、ピアノの中央ハ(C4,基音周波数は約261.63Hz)を分析したものであり、横軸は時間(単位はms)、縦軸は周波数(単位はHz)であり、前記時間窓に対応する各フレーム毎に検出されたピークデータが点で表されている。また、横方向の細線は、前記基音周波数およびその倍音の周波数を表している。この図において、全ての点は独立に存在しており、図において軌跡を描いている線を見てとることができるが、これがつながっているとの情報はまだ得られていない。また、線として見える部分以外はノイズであったり、非調和な成分であったり、あるいは、FFTの窓関数のサイドローブが表示されているものとみなされる。
このようなピークデータから軌跡を成すデータを抽出するためには、各フレームタイムにおける各ピーク点がどのように接続しているかを判定することが必要である。このために、一般に、各フレームで倍音関係にある成分をピッキングすることが行われている。すなわち、既知の基音周波数FBに対して、その整数倍、2×FB,3×FB,…の周波数近辺で最大の振幅を持つ点を倍音であると判断し、各フレーム毎に倍音データをピックアップしていく方法がとられている。
【0005】
【発明が解決しようとする課題】
図21は、前記図20における基音の20msecあたりを拡大した図である。この図において、時間軸を右から左へ見ると、時刻Aにおいてピークは矢印の方向へつながるとするのが正解であろう。しかしながら、上述した従来の方法では、各フレーム各々で倍音周波数に最も近いものを選択するという条件で追従が行われているため、時間Aでaのピークにつながるのか、それともbのピークへつながるのかが確定しないという問題点がある。
【0006】
また、図22は、ピアノのC1(32.703Hz)の楽音ピークを上述した従来の方法で検出した結果を示す図である。このデータは、時間窓の幅(ウインドウサイズ)をC1の基本周期30.5msの8倍、244.6msとし、ウインドウの移動時間(ウインドウホップサイズ)を基本周期の1/8(3.82ms)として得たものである。また、図23は、前記図12の高調波部分におけるのピークを拡大した図である。なお、これらの図において、横軸は時間、縦軸は周波数、横方向の細線は基音周波数およびその倍音を示している。図23をみると、高次の倍音の軌跡が倍音周波数からかなり外れていることが判る。これは、例えば、8倍音(261.62Hz)の成分では、前述のウインドウ内に64周期入ってしまうためであると考えられる。短時間高速フーリエ変換(SFFT)の不確定性として、周波数を正確に得ようとするにはある程度以上のウインドウサイズが必要である。32.703Hz付近を正確に検出するためには上述程度以上のウインドウサイズが必要である。しかしウインドウが広いと時間分解能が悪くなってしまうという問題点がある。一般に、SFFTの性質として一つのウインドウ内では周波数、振幅が変化してもその情報を得ることができない。高調波成分の方が変化が速いとするならば、8倍音は64周期内に周波数、振幅の揺らぎが生じていると考えられる。この状況はさらに高調波であればあるほど顕著となる。
【0007】
そこで、このような問題点を防止するために、被解析信号をBPFをかけることにより帯域分割し、分割された帯域毎にウインドウサイズ、ウインドウのホップサイズを決めてSFFTする方法が行なわれている。この方法は、図24に示す楽音分析合成装置のように、ローパスフィルタ(LPF)101、複数のバンドパスフィルタ(BPF)102およびハイパスフィルタ(HPF)103を用いて被解析信号を複数の周波数帯域に分割し、乗算器104を用いて帯域分割された各周波数帯の信号にそれぞれ対応する時間窓を掛け、それぞれ対応して設けられたSFFT部105により各々の帯域のスペクトル解析を実行し、各解析結果についてそれぞれ別個に設けられたピーク検出及びピーク追従処理部106で前記ピークの軌跡の追従を行い、正弦波合成部107において、前記それぞれの帯域において検出された軌跡に対応する正弦波を生成し、それらを合成して前述した決定論的波形(Deterministic Wave)を出力するものである。
【0008】
しかし、この方法では、LPF104、複数のBPF102およびHPF103の位相特性を均一に設計することが困難であり、このようにして解析した結果得られた各倍音の軌跡から正弦波合成によりDeterministic Waveを合成したとしても、被解析信号との間に位相のずれが生じてしまい、被解析信号からDeterministic Waveを減算するという方法ではResidual Waveは得られないという問題点があった。
【0009】
すなわち、従来技術においては、基音周波数が低く、高次倍音が豊富に含まれているような波形において、これを分離しようとする際、SFFTの不確定性により、基本周波数の周波数精度を上げようとしてウインドウサイズを大きくすると、高調波の変化に追従することができなくなる。また、高調波の変化に追従しようとしてウインドウサイズを小さくすると、基本周波数の周波数精度が低くなってしまい、DeterministicとResidualの分離精度が悪くなるという問題点がある。
【0010】
そこで本発明は、各フレームにおけるピークの追従を正確に行うことのできる高精度の楽音分析方法および装置を提供することを目的としている。
また、基本周波数が低く、高次倍音が豊富に含まれているような波形であっても、高精度に分離することのできる楽音波形分離方法および装置を提供することを目的としている。
【0011】
【課題を解決するための手段】
上記目的を達成するために、本発明の楽音波形分析方法は、分析対象楽音波形サンプルに対し順次シフトする時間窓を用いてフーリエ変換を行うことにより前記時間窓の位置に対応する各フレームにおけるピーク点を検出してスペクトル解析を行う楽音波形分析方法において、当該分析対象楽音の複数の倍音のグループ毎にそれぞれ対応して設定された分析条件を用いて前記スペクトル解析を行うようにしたものである。
【0012】
また、本発明の楽音波形分析合成方法は、楽音波形から線スペクトル成分を抽出し、該抽出した線スペクトル成分に対応する正弦波信号波形を生成して合成し、前記楽音波形から前記合成した信号波形を減算した残差成分と前記合成した信号波形とを加算することにより楽音を合成する楽音波形分析合成方法であって、前記楽音波形を分析するとき、当該楽音波形の複数の倍音のグループ毎にそれぞれ対応して設定された分析条件を用いて前記楽音波形の分析を行い、該分析結果に基づいて前記線スペクトル成分を抽出するようにしたものである。
さらに、前記倍音のグループに対応する前記残差成分を抽出し、該残差成分を順次さらに異なるグループ対応に分析するようにしたものである。
【0013】
【発明の実施の形態】
図1は、本発明の楽音分析方法が実行される楽音分析合成装置のハードウエア構成の一例を示すブロック図である。
この図において、1はこの楽音分析合成装置全体の制御を行うCPU、2はCPU1が実行する各種制御プログラム、楽音分析プログラムおよび楽音合成プログラムなどの各種プログラムを記憶するプログラムメモリ、3は各種制御情報、後述する各種のデータの記憶および一時記憶領域(バッファ)やワークエリアとして使用されるデータメモリ、4は表示装置、5はキーボードおよびポインティングデバイスなどの入力装置、6は鍵盤などの演奏操作子、7は楽音を合成する楽音合成部(シンセサイズユニット)、8は楽音波形サンプルをアナログ信号に変換し、図示しないサウンドシステムに出力するデジタルアナログ変換器(DAC)である。また、9は電話回線、インターネット、LANなどの通信ネットワーク11と接続するためのネットワークインターフェース回路、10はシステムバスである。
なお、この図1に示したハードウエア構成においては、楽音合成部7および演奏操作子6が設けられているが、これらは必ずしも設けることが必要ではない。また、図示していないが、CD−ROM、DVD、MO、FDなどの外部記憶媒体の駆動装置を接続してもよいことは当然である。
【0014】
図2は、前記楽音合成部7の内部構成の例を示す図であり、図2の(a)は、前述した各軌跡に対応する周波数成分の波形を発生する複数個の正弦波波形発生部を有する場合の一構成例を示す図である。図2の(a)において、71および73は前記システムバス10を介して前記CPU1に接続するためのインターフェース回路、72は正弦波波形演算部であり、図示するように複数の正弦波波形発生器SWG1〜SWGnが設けられている。この複数の正弦波波形発生器SWG1〜SWGnは、前記楽音波形を分析して検出された各ピーク点の軌跡の各々に対応した正弦波波形を生成するものである。また、74は残差波形演算部であり、前述した残差波形(Residual Wave)を生成する。さらに、75はミキサであり、前記正弦波波形演算部72の出力と前記残差波形演算部74の出力とを合成して、合成楽音を前記DAC8に出力する。
【0015】
図2の(b)は前記楽音合成部7の他の構成例を示す図である。この図において、76は前記CPU1とのインターフェース回路、77は波形メモリ、78は前記波形メモリ77から波形データの読出を制御する位相発生部、79は前記読み出された波形サンプルに対して所望の加工を行う波形加工部である。この例においては、前記楽音波形サンプルを分析して得られたピーク点の各軌跡に対応する正弦波波形の合成波形および前記残差波形の合成波形が前記CPU1によりソフトウエアにより演算生成され、前記波形メモリ77に格納されるようになされている。そして、当該楽音発生制御信号に応じて、前記位相発生部78により前記波形メモリ77から当該合成楽音信号波形が読み出され、波形加工部79を介して、前記DAC8に出力されることなる。
【0016】
以下、本発明の楽音分析方法における波形分析処理について説明する。
図3は、前記図20と同じピアノのC4打鍵音の時間波形の一例を示す図である。この波形を使ってピーク追従する場合を例にとって説明する。図4は、波形分析処理を説明するためのフローチャートである。
なお、波形分析処理を実行するときには、分析対象波形の先頭からフレームを少しずつずらして、ピークを見つけ、すべてのピークを見つけてからピークを追従することも当然可能であるが、すべてのフレームの全てのピークデータを貯えておくためには、膨大な記憶容量を必要とする場合がある。そこで、本発明においては、分析フレーム毎に追従をチェックし、追従可能なピークのみを記憶するようにしている。
【0017】
さて、波形分析処理が開始されると、まず、ステップS1において、分析対象波形のサンプリング処理が実行され、分析の対象となる楽器音のサンプリングデータが前記データメモリ3に格納される。すなわち、例えば、44.1kHzのサンプリング周波数で分析対象楽音波形がサンプリングされ、前記図3に示したような分析対象波形がデータメモリ3に格納される。
次に、ステップS2に進み、分析条件が入力されるとともに分析の前処理が行われる。すなわち、前記ステップS1において格納された分析対象データの振幅調整、イコライズ処理、フィルタリング処理などが行われ、同時に分析範囲の設定も行われる。
【0018】
続いて、ステップS3に進み、前記分析対象データのエンベロープが最大となる時点(以下、アタックマックスポイント(Attack Max Point)という)の検出が行われる。これは、振幅レベルが最大となるアタックマックスポイントでは、すべての追従が必要なピークが出揃っている可能性が大きいので、この時間波形の振幅レベルが最大振幅を示す時間が窓サイズの中央位置にくるようにして分析を開始するようにしているためである。図3の例では、アタックマックスポイントはサンプリング開始時点から42.9ms後に見つけられる。この実施の形態では、サンプリング周波数が44.1kHzであるので、42.9msは1892点目と求められる。これにより、追従が必要なピークをもらすことなく検出することが可能となる。
【0019】
次に、ステップS4に進み、分析窓の初期設定などが行われる。一般に、FFTの窓サイズは波形の基本周期の整数倍とするのが適切であり、例えば、8倍とされる。前記図3に示したC4打鍵音は基音周波数が261.63Hzであり、その1周期に含まれるサンプルポイント数は、サンプリング周波数fsを44.1kHzとしたとき、168.6点となる。したがって、窓サイズは、この8倍、1348点(小数以下四捨五入)となる。また、FFTサイズは、2のベキ数でなければならず、前述のように、このFFTサイズが大きければ大きいほど周波数分解能は向上する。しかし、あまり大きすぎても計算時間がかかってしまうので、ここでは、窓サイズを超える最少の2のベキ数を選ぶこととする。したがって、この例では、2048点と決定される。
【0020】
続いて、ステップS5に進み、フレーム位置を計数するフラグnを0に初期化する。そして、ステップS6に進み、分析窓位置の設定を行う。前述のように、アタックマックスポイントは1892点目であり、窓サイズが1348点であるため、最初のフレームは1218点目から2566点目となる。これを第0フレームとする。
続いて、ステップS7に進み、分析対象波形の分析範囲が分析対象波形の分析範囲の最大値framemaxを超過したか否かを判定する。この判定結果がNOのときは、次のステップS8に進みFFT処理が実行される。また、この判定結果がYESのときは、ステップS15に進む。
【0021】
ステップS8においてFFT処理が実行され、ステップS9において、このFFT処理の結果からピークが求められる。このピークを求めた結果の例を図5に示す。この第0フレームのそれぞれのピークをPK0-1,PK0-2,…,PK0-M0と表すこととする。ここで、それぞれのピークは、周波数(Frequency)、振幅(Magnitude)、位相(Phase)の3つの情報を有している。これをPK0-1.Frequency,PK0-1.Magnitude,PK0-1.Phase,…と表すこととする。なお、M0はフレーム0で検出されたピークの総数である。これらのピークはリファレンス(Frame n)として、前記データメモリ3中のバッファに格納される。
【0022】
続いて、ステップS10に進み、フレーム番号nが0であるか否かが判定される。
処理開始直後においてはn=0であるため、ステップS10の判定結果がYESとなり、前記ステップS11が実行される。このステップS11において、前記バッファに格納されたFrame 0のデータは、前記データメモリ3に確保された分析結果を格納するテーブル領域中の対応する個所TFrame 0に格納される。
また、nが0でないときは、ステップS12においてピーク追従処理が実行され、続いてステップS13において、前記分析結果を格納するテーブルに追従結果が格納される。この追従処理の詳細については後述する。
【0023】
図6は、分析の結果得られたピークに関する情報を格納するテーブルのイメージを示す図である。この図に示すテーブルにおいて、行は線スペクトル成分、列は解析された全フレームであり、各セルには各フレームにおいて検出されたピークの番号を示している。なお、ここでは、周波数の低い方から順に各ピーク点に番号を付している。前記ステップS11により、このテーブルのFrame 0の列に、前記ステップS9で得られた各ピーク点の情報が書き込まれる。
【0024】
前述したように、各ピーク点にそれぞれ周波数、振幅および位相の3つの要素が含まれており、実際には、この図6に示した線スペクトル成分数×総フレーム数のデータが3枚分作成されることとなる。前述した楽音合成時には、このテーブルを読み出して、各行に対応して正弦波波形発生器を割り当て、フレーム進行に伴い、各データ(周波数、振幅および位相)に基づいて正弦波波形を発生させることとなる。
なお、前後のスペクトルの発生消滅具合をみて、正弦波波形発生器のチャンネルの割り当てを柔軟に行うようにすれば、楽音合成時における処理効率を向上させることができ、また、複音発生の差異の正弦波波形発生器の有効利用を図ることができる。例えば、図6に示した例においては、第xフレームで第12番目のピークが消滅し、第yおよびy+1フレームで復活して現れているが、図6に示したように、フレーム前後の割り当て状態を参照して、ピーク成分の連続性を崩さない限り、空いているチャンネルを使用するようにしてもよい。
【0025】
さて、前記ステップS11あるいはS13の終了後に、前記フレーム番号nが1だけ増加され(ステップS14)、再び、前記ステップS6に処理が戻る。このステップS6の分析窓位置設定処理においては、第n+1フレームに対応する分析窓位置が設定される。このとき、前記フレームが時間軸に沿って時間軸の正方向に移動される。この実施の形態においては、移動するサンプルデータ数を基本周期の1/8、すなわち、21点としている。したがって、例えば、第1フレームについては、前述した第0フレームの分析窓位置(1218点目〜2566点目)を21点だけ時間軸の正方向にずらした第1239点目〜2587点目が第1フレームの分析窓位置として設定されることとなる。そして、前記ステップS7、S8、S9が実行され、第1フレームにおけるピークPK1-1,PK1-2,…,PK1-M1(M1は見つかったピークの総数)が検出される。
【0026】
そして、この場合は、前記ステップS10の判定結果がNOとなり、ステップS12のピーク追従処理が実行される。ここでは、前記第0フレームにおいて検出されたピーク(ピークのリファレンス0とこの第1フレームにおいて検出されたピークとを後述する方法によって双方向に比較し、追従結果を得る。この追従結果として得られたつながっているピークのみをメモリの前述したテーブルに格納していくと同時に、次のフレームに対するリファレンスとする。図6に示した例においては、第0フレームの11という番号が付されたピークに接続されるピークが、第1フレームになかったことが示されている。以下、このステップS6〜S14の処理を繰り返し、分析波形の分析範囲の最後までピーク追従処理を実行する。
このように、まず、第0フレームからフレームを時間軸の正方向に順次ずらしながら、分析範囲の最後の位置まで、ピーク追従処理が実行される。
【0027】
そして、分析範囲の最後まで到達すると、前記ステップS7の判定結果がYESとなり、ステップS15に進む。このステップS15においては、前記フレーム番号nを−1に設定する。以下、前記第0フレームから時間軸の負の方向に沿ってのピーク追従処理が開始される。すなわち、ステップS16において、分析窓位置が設定される。このステップS16における分析窓位置の設定処理は、前記ステップS6における処理とは異なり、時間を逆順に進めて行われる。すなわち、前述のように、第0フレーム分析窓位置が21点だけ時間軸の負の方向にずらされ、第1197点目〜第2545点目が第−1フレームの分析窓位置と設定される。そして、ステップS17において分析範囲を超過したか否かが判定され、この判定結果がNOのときはステップS18において、FFT処理が実行される。そして、前述の場合と同様にピーク検出処理が実行され(S19)、ピーク追従処理が実行される(S20)。そして、追従結果が前記テーブルに格納される(S21)。そして、ステップS22において、n−1をあらたなnとして、前記ステップS16以降の処理が繰り返し実行される。そして、前記分析範囲を超過した場合に、前記ステップS17の判定結果がYESとなり、この波形分析処理を終了する。このとき、前記図6に示したテーブル中に分析結果が得られていることとなる。
【0028】
次に、前記ステップS12およびS20におけるピーク追従処理について説明する。
互いに隣り合った第pフレームと第rフレームについてピーク追従処理を行うものとする。まず、第pフレームにおいて検出されたピークPKp-q(PKp-1,PKp-2,…,PKp-Mp)について、第rフレームのすべてのピークPKr-s(PKr-1,PKr-2,…,PKr-Mr)とつながる可能性を計算する。この可能性を示す値をCP(Connection Possibility)と名付けることとする。CP(p-q,r-s)は、フレームp側から見た、PKp-qとPKr-sとのつながる可能性を示す数値である。このCPは次の式(1)により、計算することができる。
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) …(1)。
ここで、FunkAは周波数について近いものを捜す関数(周波数比較関数)である。図7にこの周波数比較関数FuncAの一例を示す。この図において、横軸xは当該ピークの周波数、縦軸は確率であり、Fは比較対象となるピークの周波数、FBは当該楽音の基音周波数である。この例に示すように、両者が全く同一の周波数のときに1となり、全領域についての積分値が1となる関数を用いればよい。
また、FuncBは振幅について近いものを捜す振幅比較関数である。図8は、この振幅比較関数の一例を示す図であり、前記周波数比較関数と同様に、全く振幅の差がないときに1となり、全領域についての積分値が1となる関数である。楽音の場合、フレームの移動距離が短いため、この間ではそれ程急峻な変化はないと仮定している。
【0029】
さらに、FuncCは位相についての関数である。また、次の式(2)に示すように、PredictionPhaseは位相予測関数でフレームの移動方向の関数となり、フレームpの情報から予測されるフレームrでの位相を計算するものである。
PredictionPhase(sign(r-p),PKp-q,PKr-s)=PKp-q.Phase+sign(r-p)2π*PKp-q.Frequency/SamplingFrequency*HopSize …(2)。
ここで、HopSizeはフレームの移動サンプル点数であり、この例では21点となる。HopSize/SamplingFrequencyはフレームの移動サンプル時間を示しており、この例では4.76msである。この式(2)は、pフレームで周波数がPKp-q.Frequencyであったとして、隣のフレームまでこれが変わらなかったとした場合、rフレームの位相が何度であるのかを計算するものである。また、sign(r-p)はフレームの移動方向で、正の場合には位相は進み、負の場合には位相が戻ることを示している。
FuncCは位相間の距離が近いとき1となるような関数であり、例えば、次の式(3)のような形式の比較関数が用いられる。
FuncC(phase1-phase2)=(1+cos(phase1-phase2))/2 …(3)。
【0030】
フレームpでのq番目のピークについて、r側のすべてのピークに対するCP(p-q,r-1),CP(p-q,r-2),…,CP(p-q,r-Mr)を計算し、CP値が最大となるピークがp側からr側を見たときに一番つながる可能性のあるピークであるということができる。図9は、PKp-1について計算した例を示す図である。この図9に示した例においては、CP(p-1,r-1)が最大値となっているので、PKp-1はPKr-1と最もつながる可能性があると考えられる。
なお、このときに前記CPの最小値を予め決定しておき、例えば、すべてのCP値が0.001以下の場合はつながる可能性のあるピークがないとする方が現実的である。この場合のピークはフレームpで消滅したものと考えられる。
【0031】
このようにして、フレームpのすべてのピークについて最もつながる可能性のあるフレームrでのピークが見つかったとする。しかし、図10に示すような場合には、p上での2つのピークがr上での1つのピークにつながってしまう可能性がある。この図10に示した例では、PKp-3とPKp-4の2つがPKr-3に接続されてしまう。
そこで、本発明においては、今度はr側からp側を見てもっともつながる可能性のあるピークを捜すようにしている。この場合においても、前記式(1)に示したCPを用いる。ただし、この場合には、前記PredictionPhaseの計算式が異なっている。すなわち、位相予測関数PredictionPhaseは、時間的に逆方向を予測するものとなるため、sign(p-r)が負となり、次の式(4)のようになる。
PredictionPhase(sign(p-r),PKr-s,PKp-q)=PKr-s.Phase-2π*PKr-s.Frequency/SamplingFrequency*Hopsize …(4)。
【0032】
このようにして得られるCP(r-s,p-1),CP(r-s,p-2),…,CP(r-s,p-Mp)の値から最大のものを見つけて、r側からp側を見たときに一番つながる可能性のあるピークを捜す。図11はこの結果の一例を示す図である。図示した例においては、PKr-3はPKp-4とつながる可能性が高いという結果が得られる。これにより、PKp-4とPKr-3がつながっていると判断する。また、PKp-3についてはフレームpで消滅したと考えることができる。
このように双方向からのマッチングをとるようにすることにより、最適なピークの接続を見い出すことが可能となる。
【0033】
なお、前記図10において、p側からr側を見たときに、PKp-3についてはCP(p-3,r-3)が最大値をとり、PKp-4についてもCP(p-4,r-3)が最大値をとったとする。すなわち、PKp-3とPKp-4がともにPKr-3につながる可能性があるということである。この場合、r側からp側を見て再度CP(r-3,p-3)とCP(r-3,p-4)の値を計算するようにしてもよいが、これをCP(p-3,r-3)とCP(p-4,r-3)で代用し、このうち大きい方を選ぶようにしてもよい。
【0034】
なお、前記ステップS20において、第0フレーム側から第−1フレームとのCP値を計算するときには、前記PredictionPhaseは時間的に逆方向を予想することとなるため、前記式(4)で示した位相予測関数を用いる。また、第−1フレームから第0フレームをみるときには、当然、式(2)の位相予測関数を用いることとなる。
【0035】
このようにして、分析対象波形の最初から最後まで各フレームでの各ピークの接続が分かったものとする。図12は、このようにして判定された結果の一例を示す図である。この図において、一番最初にリファレンスとしたのは、前述のように、第0フレームのピークであり、このフレームのピークをすべて追従したことになる。もちろん、途中で消滅条件により消えてつながらなくなってしまったピークも含まれている。また、図12に示したピーク軌跡には、必要でないピークまで追従対象に含まれてしまっている可能性もある。例えば、aで示したピークの軌跡は、不必要なものであると考えられる。そこで、得られた結果を必要に応じてクリーニングする。このクリーニングの条件は、1.ハーモニックであること、2.全フレーム数に対してある程度以上の長さを持つこと、である。この条件のうち、いずれか一方でもよいし、あるいは、前記1と2のアンド条件であってもよい。図13に、このようにしてクリーニングした結果の一例を示す。
【0036】
また、あるピークの軌跡が途中で一部切れてしまっている場合もある。図14はこのような場合の例を示す図である。この図において、M番目のピーク軌跡はN−1フレームで消滅し、N+1フレームで生成されているように見える。しかし、1つの軌跡は1つの正弦波発振器に対応しており、軌跡が消滅した時点で対応の正弦波発振器は未使用状態あるいは出力途絶、すなわちN−1フレームとN+1フレーム間で正弦波出力がぷっつりと切れてしまうということになってしまい、クリックノイズの発生などの不都合が生じる恐れがある。このような場合は、図15に示すようにNフレームに振幅0のピークがあるように補って考え、一続きの軌跡と考えるようにすればよい。あるいは、フレームN−1のピークの情報とフレームN+1のピークの情報を補間し、フレームのピーク情報を作り出すようにすることもできる。前述した図12において、aで示した軌跡は、このようにして補間された例である。
このような補間はリファレンスピークを次のように作ることにより実現することができる。すなわち、PKN-Mは実際には見つけられなかったのであるから、振幅は0である。しかし、N-1のピークのデータから周波数と位相を予想することができる。そこで、一旦途切れてしまったピークのリファレンスとして、周波数と位相の情報のみを持つピークとして、その情報を保持しておくようにする。これにより、フレームNへ接続できなかったピークについて、さもフレームNにピークがあったかのようにリファレンスを作成しN+1の接続を行うようにすることが可能となる。
【0037】
さて、前述のように、従来のSFFT処理においては、ウインドウサイズを大きくすると基本周波数の周波数精度は向上するものの高調波の変化に追従することができなくなり、ウインドウサイズを小さくすると基本周波数の周波数精度が悪くなってしまうという問題点があった。このような問題点を解決する本発明の楽音分析および合成処理について、図16の処理の流れ図および図17の波形図を参照して説明する。
【0038】
図16において、入力される被解析信号は、第1の窓関数(Window Function 1)と第1のホップサイズ(Window Hopsize 1)に基づいて設定される分析窓(Window 1)と乗算され(ステップS32)、第1の短時間フーリエ変換(SFFT)が行われる(ステップS33)。この第1の短時間フーリエ変換においては、前述したと同様に、基本周波数から決定されるウインドウサイズ及びウインドウポップサイズによる分析が行われる。
【0039】
そして、ステップS34において、この第1のSFFTの結果から第1のピーク検出及びピーク追従処理が行われる。この第1のピーク検出及びピーク追従処理においては、前述したと同様のピーク検出及びピーク追従であるが、ここでは、基本周波数の8倍音以下の周波数のピークを対象として、処理を行う。このステップS34の出力を第1の軌道情報と呼ぶ。続いて、ステップS35に進み、該第1の軌道情報の正弦波合成を実行し、第1の決定論的波形(Deterministic Wave)を出力する。
図17における▲1▼は前記被解析信号の一例(この例では、ピアノのC1の波形)であり、▲2▼は前記第1の決定論的波形を示している。
なお、前記正弦波合成は、前述のように、離散的な正弦波波形サンプルを生成し、これらを加算することにより行ってもよいし、あるいは、複数個の正弦波波形発生器を用いて対応する正弦波波形を発生させ、それらの出力を合成するようにしてもよい。
【0040】
次に、このようにして得た第1のDeterministic Waveの極性を反転して(ステップS36)、前記被解析信号と加算する(ステップS37)。これにより、第1の残余波形(Residual Wave)を得る。図17の▲3▼は、この第1の残余波形の一例を示すものであり、この第1の残余波形は、前記被解析信号と前記8倍音以下の周波数を有するピークの軌跡から合成された第1のDeterministic Waveとの差の信号である。
次に、この第1のResidual Waveについて、第2の窓関数(Window Function 2)と第2のウインドウホップサイズ(Window Hopsize 2)とにより設定される第2の窓関数(Window 2)を乗算し(ステップS39)、第2の短時間フーリエ変換処理を実行する(S40)。この第2のSFFTは、ウインドウサイズとして8倍音の周期の8倍、すなわち、基本周期と同じサイズを用い、また、ウインドウのホップサイズは、8倍音の1/8、すなわち基本周波数の1/64として、分析を行う。このようなウインドウサイズ及びウインドウホップサイズを用いることにより、高い周波数成分についても精度のよいピーク検出及び軌跡の追従が可能となる。
そして、この第2のSFFTの出力から、8倍音以上の周波数成分について、ピーク検出及びピーク追従処理を実行し(S41)、第2の軌道情報を得る。次に、この第2の軌道情報から前述と同様に正弦波合成を行い(S42)、第2のDeterministic Waveを得る。この第2のDeterministic Waveは、8倍音以上の高調波成分についての合成信号である。
【0041】
このようにして得られた第2のDeterministic Waveと前記ステップS35で得られた第1のDeterministic Waveとを合成して(ステップS43)、最終的な決定論的波形(Deterministic Wave)を得る。図17の▲4▼は、この決定論的波形の一例を示している。
このステップS43における合成においては、前記第1の決定論的波形Deterministic Waveと前記第2の決定論的波形との加算が行われるが、前述のように、前記第1の決定論的波形は基本周期の1/8のウインドウホップサイズ間隔で得られた第1の軌道情報に基づいており、前記第2の決定論的波形は基本周期の1/64のウインドウホップサイズ間隔で得られた第2の軌道情報に基づいている。したがって、この2つのデータを加算するためには、精度の細かい間隔にデータを合わせ込むことが必要となる。すなわち、前記第1の決定論的波形のデータを8倍に補間して1/64の精度にあわせることが必要となる。
【0042】
前述のように、各ピークのデータは、それぞれ振幅、周波数および位相の3つの情報を有している。図18は振幅情報および周波数情報の補間を説明するための図であり、この図に示すように、基本周期の1/8の間隔で得られた第1の決定論的波形データのピークP1-1とP1-2との間を例えば直線補間して、P1-1-1,P1-1-2,…,P1-1-7を得ることにより1/64の精度の振幅情報あるいは周波数情報とする。なお、補間方法としては直線補間に限らず、合い前後する数点のデータをとって多項式補間をしてもよい。
また、位相情報については、基本周期の1/8の間隔で得られた第1の決定論的波形データのピークP1-1の位相及び周波数のデータと、ピークP1-2の位相及び周波数のデータを用いて、図19に示すような位相の回転を記述し、各点P1-1-1,P1-1-2,…,P1-1-7の位相を読み取るようにすればよい。
このようにして、第1のDeterministic Waveと第2のDeterministic Waveとの時間分解能を揃えてから、データの加算を行うことができる。
【0043】
また、前記第2のDeterministic Waveの極性を反転して(S44)、前記第1のResidual Waveと加算する(S45)ことにより、図17の▲5▼に示すような、最終的なResidual Waveを得ることもできる。この図17の▲5▼から明らかなように、残余波形は立ち上がり直後以外においては非常に低レベルなものとなっている。
なお、上記においては、被解析信号の周波数帯域を2分割した例を示したが、これに限られることはなく、3分割、4分割等、それぞれの場合に応じた数に分割し、上述の例と同様の方法で、実現することが可能である。
【0044】
また、上記においては、分析対象楽音波形について、まず、低次倍音グループについてSFFTを実行し、当該正弦波合成波形との残差波形について、高次倍音グループについてのSFFTを実行しているが、これに限ることはない。例えば、分析対象楽音波形について、低次倍音グループについてのSFFT処理と高次倍音グループについてのSFFT処理をそれぞれ実行し、前記低次倍音グループに関する正弦波合成波形と前記高次倍音グループに関する正弦波合成波形とを前記分析対象楽音波形から減算することにより、残差波形を求めるようにしてもよい。
【0045】
さらに、上記においては、分析時の波形演算はソフトウエア処理で実行するものとして説明したが、前記楽音合成部7における正弦波合成機能を用いて波形演算を実行させるようにしてもよい。この場合は、分析結果を正弦波合成部に与え、合成結果をその出力から受け取るようにすればよい。
さらにまた、前述した各処理の実行部および楽音合成部などは、ハードウエアあるいはソフトウエアのいずれによっても実現することが可能である。
さらにまた、上記においては前記図1に示したような構成を有する楽音分析合成装置において本発明の楽音分析方法および楽音分析合成方法が実行されるものとして説明したが、本発明の楽音分析方法及び楽音分析合成方法は、これに限られることなく、パーソナルコンピュータ等の汎用コンピュータ、電子楽器、ゲームマシン、カラオケ装置、スペクトルアナライザ等の計測器など各種の装置において実行させることができるものである。
【0046】
【発明の効果】
以上説明したように、本発明の楽音分析方法によれば、各フレームにおけるピークの追従を正確に行うことができる。また、基本周波数が低く、高次倍音が豊富に含まれているような波形であっても、精度よくスペクトル分析ができるという効果がある。
【図面の簡単な説明】
【図1】 本発明の楽音分析方法あるいは楽音分析合成方法が実行される楽音分析合成装置の一構成例を示すブロック図である。
【図2】 楽音合成部の構成例を示すブロック図である。
【図3】 ピアノのC4打鍵音の時間波形の一例を示す図である。
【図4】 波形分析処理を説明するためのフローチャートである。
【図5】 図3に示す時間波形についての分析結果の一例である。
【図6】 分析結果を格納するテーブルの一例を示す図である。
【図7】 周波数比較関数の一例を示す図である。
【図8】 振幅比較関数の一例を示す図である。
【図9】 隣接するフレーム間のピークがつながる可能性の計算結果の一例を示す図である。
【図10】 ピークのつながる可能性の計算結果の一例を示す図である。
【図11】 ピークのつながる可能性の計算結果の一例を示す図である。
【図12】 ピークのつながりを判定した結果の一例を示す図である。
【図13】 図12の判定結果をクリーニングした結果の一例を示す図である。
【図14】 ピークの軌跡が途切れている場合を説明するための図である。
【図15】 図14の場合の補間処理について説明するための図である。
【図16】 本発明における楽音分析および合成処理について説明するための流れ図である。
【図17】 図16に示した処理の各段階における波形の一例を示す図である。
【図18】 図16に示した処理における楽音合成を説明するための図である。
【図19】 図16に示した処理における楽音合成を説明するための図である。
【図20】 楽音波形の分析結果の一例を示す図である。
【図21】 図20の一部を拡大した図である。
【図22】 基音周波数が低く、高次倍音が豊富に含まれる楽音波形の分析結果の一例を示す図である。
【図23】 基音周波数が低く、高次倍音が豊富に含まれる楽音波形の分析結果の一例を示す図である。
【図24】 従来の楽音波形分析及び合成装置の一例を示す図である。
【符号の説明】
1 CPU、2 プログラムメモリ、3 データメモリ、4 表示装置、5 入力装置、6 演奏操作子、7 楽音合成部、8 デジタルアナログ変換器、9ネットワークインターフェース、10 システムバス、11 通信ネットワーク、71、73、76 CPUインターフェース回路、72 正弦波波形演算部、74 残差波形演算部、75 ミキサ、77 波形メモリ、78 位相発生部、79 波形加工部、101 ローパスフィルタ、102 バンドパスフィルタ、103 ハイパスフィルタ、104 乗算部、105 短時間FFT部、106 ピーク検出およびピーク追従処理部、107 正弦波合成部
Claims (3)
- 分析対象楽音波形サンプルに対し順次シフトする時間窓を用いてフーリエ変換を行うことにより前記時間窓の位置に対応する各フレームにおけるピーク点を検出してスペクトル解析を行う楽音波形分析方法において、
当該分析対象楽音の複数の倍音のグループ毎にそれぞれ対応して設定された分析条件を用いて前記スペクトル解析を行うようにしたことを特徴とする楽音波形分析方法。 - 楽音波形から線スペクトル成分を抽出し、該抽出した線スペクトル成分に対応する正弦波信号波形を生成して合成し、前記楽音波形から前記合成した信号波形を減算した残差成分と前記合成した信号波形とを加算することにより楽音を合成する楽音波形分析合成方法であって、
前記楽音波形を分析するとき、当該楽音波形の複数の倍音のグループ毎にそれぞれ対応して設定された分析条件を用いて前記楽音波形の分析を行い、該分析結果に基づいて前記線スペクトル成分を抽出するようにしたことを特徴とする楽音波形分析合成方法。 - 前記倍音のグループに対応する前記残差成分を抽出し、該残差成分を順次さらに異なるグループ対応に分析することを特徴とする請求項2記載の楽音波形分析合成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003043802A JP3741106B2 (ja) | 2003-02-21 | 2003-02-21 | 楽音波形分析方法及び楽音波形分析合成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003043802A JP3741106B2 (ja) | 2003-02-21 | 2003-02-21 | 楽音波形分析方法及び楽音波形分析合成方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP17437298A Division JP3433673B2 (ja) | 1998-06-22 | 1998-06-22 | 楽音波形分析方法及び楽音波形分析装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003263170A JP2003263170A (ja) | 2003-09-19 |
JP3741106B2 true JP3741106B2 (ja) | 2006-02-01 |
Family
ID=29208466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003043802A Expired - Lifetime JP3741106B2 (ja) | 2003-02-21 | 2003-02-21 | 楽音波形分析方法及び楽音波形分析合成方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3741106B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5275612B2 (ja) * | 2007-07-18 | 2013-08-28 | 国立大学法人 和歌山大学 | 周期信号処理方法、周期信号変換方法および周期信号処理装置ならびに周期信号の分析方法 |
JP5493408B2 (ja) * | 2009-03-17 | 2014-05-14 | ヤマハ株式会社 | 波形データ生成方法 |
JP5655273B2 (ja) * | 2009-03-17 | 2015-01-21 | ヤマハ株式会社 | 波形データ生成方法 |
EP3346468B1 (en) * | 2015-09-03 | 2021-11-03 | AlphaTheta Corporation | Musical-piece analysis device, musical-piece analysis method, and musical-piece analysis program |
CN112948331B (zh) * | 2021-03-01 | 2023-02-03 | 湖南快乐阳光互动娱乐传媒有限公司 | 音频文件的生成方法、解析方法、生成器及解析器 |
-
2003
- 2003-02-21 JP JP2003043802A patent/JP3741106B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2003263170A (ja) | 2003-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4829463A (en) | Programmed time-changing coefficient digital filter | |
JP2006243006A (ja) | 音響効果付与装置、基音抽出装置、及びプログラム | |
JPH026074B2 (ja) | ||
KR20070100334A (ko) | 오디오 파형처리장치, 방식 및 프로그램 | |
JP3741106B2 (ja) | 楽音波形分析方法及び楽音波形分析合成方法 | |
JPS6233599B2 (ja) | ||
JP3433673B2 (ja) | 楽音波形分析方法及び楽音波形分析装置 | |
CN112086104B (zh) | 音频信号的基频获取方法、装置、电子设备和存储介质 | |
CN112086085B (zh) | 音频信号的和声处理方法、装置、电子设备和存储介质 | |
US5691496A (en) | Musical tone control apparatus for filter processing a musical tone waveform ONLY in a transient band between a pass-band and a stop-band | |
JP3633963B2 (ja) | 楽音生成装置及び楽音生成方法 | |
JP3767236B2 (ja) | 楽音波形分析装置及び楽音波形分析方法並びに楽音波形分析プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JPH0535277A (ja) | 電子楽器 | |
JPH05119782A (ja) | 音源装置 | |
JP3304709B2 (ja) | 楽音信号分析方法 | |
JPH0715640B2 (ja) | 音響解析装置の合成装置 | |
JPS62148817A (ja) | 高調波検出装置 | |
US6235980B1 (en) | Apparatus and method for generating waveform data for musical tone signal generating apparatus | |
JP2000267671A (ja) | 楽音波形分析装置及び楽音波形分析方法並びに楽音波形分析プログラムを記録した記録媒体 | |
JP2967661B2 (ja) | 楽音合成装置 | |
JP3743356B2 (ja) | 楽音波形のスペクトルピーク軌跡追従方法および装置 | |
JPH05122069A (ja) | デジタル・アナログ変換器 | |
JP2510090Y2 (ja) | 楽音信号発生装置 | |
JPH05241597A (ja) | ピッチ周期抽出方法 | |
JP3304701B2 (ja) | 楽音合成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040421 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051007 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20051018 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051031 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081118 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091118 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101118 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101118 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111118 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111118 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121118 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121118 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131118 Year of fee payment: 8 |
|
EXPY | Cancellation because of completion of term |