5

フレームのFFTから得られたパワースペクトルから基本周波数を抽出するピッチ検出プログラムを作成しています。これは私がこれまでに持っているものです:

  • 入力オーディオ信号をフレームに分割します。
  • フレームにハミング ウィンドウを掛ける
  • フレームの FFT と大きさを計算します sqrt(real^2 + img^2)
  • 高調波積スペクトルから基本周波数 (ピーク) を見つける
  • ピークの周波数 (ビン周波数) をメモに変換します (例: ~440 Hz は A4 です)。

これで、プログラムは各フレームに対して 0 から 87 までの値を持つ整数を生成します。ここで見つけた式に従って、各整数はピアノの音符に対応します。私は現在、計算された音符に基づいて音を合成することにより、入力信号のメロディーを模倣しようとしています。基本周波数に対応する大き​​さと周波数を持つ正弦波を単純に生成しようとしましたが、結果は元の音のようには聞こえませんでした (ほとんどランダムなビープ音のように聞こえました)。

私は音楽をよく理解していないので、私が持っているものに基づいて、基本周波数から取得した情報に基づいて、入力 (楽器、声、楽器 + 声) に似たメロディーの音を生成できますか? そうでない場合は、現在持っているコードを使用して他にどのようなアイデアを試すことができますか?

ありがとう!

4

4 に答える 4

5

これは、使用する音楽コンテンツに大きく依存します。モノラル録音 (つまり、単一の楽器または声) のピッチを抽出することは、ポリフォニック混合物から単一の楽器のピッチを抽出することと同じではありません (たとえば、単一の楽器のピッチを抽出する)。ポリフォニック録音からのメロディー)。

モノフォニック ピッチ抽出には、時間領域と周波数領域の両方で実装できるさまざまなアルゴリズムがあります。いくつかの例には、Yin (時間ドメイン) と HPS (周波数ドメイン) が含まれます。両方の詳細へのリンクは、ウィキペディアで提供されています。

ただし、ポリフォニック素材からメロディーを抽出する場合は、どちらもうまく機能しません。ポリフォニック音楽からのメロディ抽出はまだ研究課題であり、従うことができる一連の簡単な手順はありません。研究コミュニティから提供されているいくつかのツールを試すことができます (ただし、非営利目的でのみ使用できます)。

最後に、出力を合成するときは、抽出した連続的なピッチ カーブを合成することをお勧めします (これを行う最も簡単な方法は、X ミリ秒 (たとえば 10) ごとにピッチを推定し、10 ごとに周波数が変化する正弦波を合成することです)。 ms、連続位相を保証します)。これにより、結果のサウンドがより自然になり、連続したピッチ カーブを個別の音符に量子化する際に発生する余分なエラーを回避できます (これは別の問題です)。

于 2013-01-24T13:58:56.637 に答える
3

おそらく、ピッチを計算するために FFT からピークを選びたくないでしょう。おそらく自己相関を使用したいと思うでしょう。ここに非常によく似た質問に対する長い回答を書きました:ピッチ検出のためのケプストラル分析

于 2012-04-01T06:05:05.680 に答える
3

この方法は、fft フレームのタイミングと長さに合わせて同期されたノートを使用し、完全なスペクトルが HPS ピッチ推定器と互換性のあるノート サウンドのみを使用する合成音楽で機能する場合があります。それは一般的な音楽には当てはまりません。

より一般的なケースでは、音楽の自動トランスクリプションは依然として研究課題のようであり、簡単な 5 ステップの解決策はありません。ピッチは人間の心理音響現象です。人々は、ローカルスペクトルに存在するかもしれないし、存在しないかもしれない音を聞くでしょう。HPS ピッチ推定アルゴリズムは、FFT ピークを使用するよりもはるかに信頼性がありますが、多くの種類の楽音では失敗する可能性があります。また、ノート境界またはトランジェントをまたぐフレームの FFT には、推定する明確な単一のピッチが含まれていない場合があります。

于 2011-11-28T05:44:53.597 に答える
1

次の理由により、あなたのアプローチは一般的な音楽の例では機能しません。

  1. 音楽は本質的にダイナミックです。つまり、音楽に存在するすべてのサウンドは、サウンドのエンベロープとしても知られる、沈黙、アタック、サステイン、減衰、そして再び沈黙の明確な期間によって変調されます。

  2. 楽器の音と人間の声の音は、単一の音では正しく合成できません。これらの音は、基音と多くの倍音によって合成されなければなりません。

  3. ただし、楽器の音や声の音の基音と倍音を合成するだけでは十分ではなく、上記の 1 で説明したように、音のエンベロープも合成する必要があります。

  4. さらに、楽器であれ声楽であれ、音楽の旋律的なパッセージを合成するには、パッセージのすべての音符に対して上記の項目 1 ~ 3 を合成する必要があります。

  5. 最終的なミックス録音から個々の楽器や人間の声を分析的に抽出することは非常に難しい問題であり、あなたのアプローチはその問題に対処していないため、あなたのアプローチは問題 1 ~ 4 に適切に対処できません。

要するに、厳密な分析方法を使用して、音楽レコーディングの最終ミックスからほぼ完璧な音楽のトランスクリプションを抽出しようとするアプローチは、最悪の場合、ほぼ確実に失敗する運命にあり、せいぜい高度な研究の領域に落ちる.

この行き詰まりからどのように進むかは、OP が言及していない作業の目的によって異なります。

この作品は商用製品で使用されますか、それとも趣味のプロジェクトですか?

商業的な作品の場合は、さらにさまざまなアプローチ (費用がかかるものや非常に費用がかかるもの) が必要ですが、これらのアプローチの詳細は作品の目的によって異なります。

最後に、次の理由により、シンセシスがランダムなビープ音のように聞こえます。

  1. 基音検出器は、ローリング FFT フレームのタイミングに関連付けられています。これは、実際には、ローリング FFT フレームごとの開始時に偽の基音を生成する可能性があります。

  2. 検出された基音が偽物である可能性が高いのはなぜですか? 音楽サンプルを(FFT)フレームに任意にクリッピングしているため、おそらく同時に鳴っている多くの音符を音符の途中で切り捨てているため、音符のスペクトルシグネチャが歪んでいます。

  3. 分析に基づいてエンベロープ情報を取得する方法がないため、検出されたノートのエンベロープを合成しようとしているわけではありません。

  4. したがって、合成された結果は、おそらく一連の純粋なサイン チャープであり、ローリング FFT フレームのデルタ t によって時間間隔が空けられています。各チャープは、異なる周波数、異なるエンベロープ マグニチュード、エンベロープの形状がおそらく長方形である可能性があります。

音符の複雑な性質については、次の参考文献をご覧ください。

102.4 KHzまでの楽器スペクトル

楽器音のスペクトルとその時間領域エンベロープ

特に、各ノートを構成する多くの純粋なトーンと、各ノートのタイム ドメイン エンベロープの複雑な形状を観察してください。相互に関連する複数の音符の可変タイミングは、典型的な音楽におけるポリフォニー (複数の声が同時に鳴る) と同様に、音楽の追加の重要な側面です。

音楽のこれらすべての要素が共謀して、自律的な音楽のトランスクリプションへの厳密な分析的アプローチを非常に困難なものにしています。

于 2013-02-08T09:07:39.390 に答える