10

私は現在、音楽の自動転写->楽譜を含む4年目のプロジェクト(コンピューターサイエンス)に取り組んでいます。現在、Matlabで実行していますが、いずれかの段階でJavaに変換する必要があります。

私の問題:プログラムが純粋な正弦音の正しい音を返すようにしていますが、自然の楽器で演奏された音から基本周波数を取得する際に問題が発生しました。特定の音符では、音符の基本を表すピークが完全に欠落しているように見えます。たとえば、ガレージバンドからG3ノートを再生すると、1次、3次、5次、7次の倍音のみがプロットに表示されるため、G4として表示されます。画像を追加しようとしましたが、これが私の最初の投稿であるため、許可されませんでした。正しい方向へのポインタをいただければ幸いです。

4

4 に答える 4

17

これは珍しいことではありません。男性の声、大きな弦楽器、および他の多くのピッチのある音源では、ファンダメンタルズが欠落しているか、ほぼ欠落していることが非常に一般的です。

そのため、正弦波関数発生器とは対照的に、FFTピーク結果だけを使用すると、実際の楽器から音符を決定するのが非常に困難になります。これは、ピッチがピークスペクトル周波数と異なるためです。ピッチは心理音響的な知覚現象です。だから、それはあなたが読む必要があるものです。このテーマに関する研究論文はたくさんあります。

したがって、完全に異なるアルゴリズムのセットを調べる必要があります。ケプストラム(ケプストラム分析)、調和積スペクトル、自己相関など(AMDF、ASDFなどのラグ)、RAPT(ピッチ追跡のためのロバストアルゴリズム)、YAAPTなどを試してください。

追加:ファンダメンタルズが欠落しているピッチサウンドのより詳細な説明をブログ投稿に書きました。

于 2010-11-20T05:04:45.657 に答える
1

楽器の音の基本周波数が高調波 (倍音とも呼ばれます) に比べて減衰することは珍しくありません。

G3 ノートを演奏する本物のファゴット (合成されたファゴットではない) のこの周波数/大きさのプロットを見てください。最初の高調波に対して減衰した基本波 (196.39 Hz) を観察します。しかし、すべての整数倍高調波が 10 次高調波まで見えることにも注意してください。実際には、さらに多くの高調波が存在しますが、この線形マグニチュード プロットには表示されません。

ファゴットG3周波数マグニチュード

あなたの場合、G3 音符のスペクトルが 1 番目、3 番目、5 番目、7 番目の高調波のみを示しているという追加の事実は、何かが間違っていることを示唆しています。テスト サウンドは合成されているように見えるため、サウンドの合成方法に問題がある可能性があります。

上に見られるように、実際の楽器のスペクトルは通常、基本周波数と、1、2、3 などの多くの整数倍の高調波を示します。また、ハーモニクスは通常、ほとんどの楽器で演奏されるほとんどのノートで 6KHz をはるかに上回ります。

G3 ノートを演奏する本物のファゴット (合成されたファゴットではない) のこの周波数/デシベル_マグニチュード プロットを見てください。-104 dB 近くのノイズ フロアで消えるまで、合計 37 の整数倍の高調波が存在することを観察します。

ファゴットG3周波数デシベルマグニチュード

このファゴットのサンプルを聴いて、そのスペクトルをここで見ることができます: ファゴット楽器のスペクトル

自律的な音楽のトランスクリプションへの分析的アプローチに関するこの詳細な投稿もお読みください

于 2013-02-08T21:20:36.150 に答える
0

何が起こっているのかを特定するために、スペクトログラム (MATLAB の関数スペクトログラム) を実行してみましたか?

どのアルゴリズムを使用しているかはわかりません。その情報がなければ、何が問題なのかわかりません。私が心配しているのは、2 番目の 3 次高調波 (プロットの 2 番目のピーク) が 2 番目の高調波 (プロットの最初のピーク) よりもはるかに大きいことです。

すべてのサンプリングが正しく行われていますか?つまり、DFT にはサンプリング周波数の半分までの周波数しかありません (正と負の周波数範囲の両方)? また、信号の一時的な部分をどのように抑制しますか?

于 2010-11-19T23:10:47.013 に答える
0

2f、4f、6f、および 8f にピークが見られるという事実は、入力データが実際にはあなたが考えているよりも 1 オクターブ高いか、結果の周波数スケールを誤解していることを強く示唆しています。基本周波数が欠落している場合は、3f、5f、および 7f も表示されます。

提案:

  • 入力データを FT する前にプロットします。優勢語の頻度を目で確認できるはずです。
  • ガレージバンドが作った音を聞いてください。ミドルCより上ですか、それとも下ですか?
  • プロットの周波数スケールの値がどこから来たのかを理解していることを確認してください。
于 2010-11-21T13:35:57.750 に答える