2

まあ、これはスタックオーバーフローに関する私の最初の質問なので、ちょっと興奮しています:) これが私の入力です:私の入力はwaveファイルです。今のところ、ギターを使って曲を録音しています。したがって、wave ファイルにはこの楽器の録音が含まれています。私がやりたいことは、演奏されている各音符の楽譜 (A、B、C など) を取得することです。FFT のような手法については聞いたことがありますが、FFT の使用方法に関する知識が乏しいことを考慮して、aubioライブラリを使用することを考えました。

そのため、aubio では、ピッチ候補を抽出する aubiopitch と、オンセットを抽出する aubiocut を提供しています。

私が立ち往生しているところは次のとおりです: aubio を使用して再生されたノートの特定の時間に周波数を取得するにはどうすればよいですか? 私によると、 aubiopitch と aubiocut が役立ちますが、それらの間のマッピングを行う方法がわかりません。どんな助けでも大歓迎です:)


こんにちはピエム: ご回答ありがとうございます。この出力を分析していただけますか?

aubiopitch -i Reverse_Open.wav

1.408 68.9486465454

1.536 81.7372512817

1.664 164.290893555

1.792 164.464691162

1.92 82.6862487793

2.048 328.539306641

2.176 218.885116577

2.304 219.06237793

2.432 219.042160034

2.56 219.133621216

2.688 145.751785278

2.816 146.437744141

2.944 146.199829102

3.072 195.059829712

3.2 194.912689209

3.328 195.724975586

3.456 195.517547607

3.584 247.317428589

3.712 246.764221191

3.84 246.857452393

3.968 145.454727173

4.096 328.569610596

4.224 329.625823975

4.352 329.16619873

4.48 328.906402588

4.608 328.96786499

4.736 329.187835693

4.864 145.741394043

周波数を含む私のノートは次のとおりです。E(82 approx),A(110),D(147),G(197),B(247),E(329.2) これは resp で再生され1.344,1.888,2.4,2.88,3.36,3.872ます (正しいと思われる aubiopitch によると)。上記の出力からこれらの 6 つのノートとその時間を抽出するにはどうすればよいですか?

4

1 に答える 1

4

aubiopitch はタプルのリストを出力します。各タプルには 2 つの float が含まれます。

  • 秒単位のタイムスタンプ
  • ヘルツ単位の基本周波数

以下はギターサウンドの例です。

$ aubiopitch -i guitar_Cold_Blood_-_Baby_I_Love_You.wav | head
0.000000 0.000000
0.005805 293.884338
0.011610 386.387207
0.017415 0.000000
0.023220 551.689758
0.029025 3608.569336
0.034830 3588.231201
0.040635 416.824066
0.046440 3606.715576
0.052245 417.116425

興味のある方は (どうぞ)、最新の git バージョンを入手して、デモ スクリプトを試してみてくださいdemo_pitch.py

$ ./python/demos/demo_pitch.py bass_Don_Ellis_-_Conquistador.wav

次のプロットが得られます。

aubio ピッチ デモ プロット

  • 最初の行は波形を表します。
  • 2 行目は、抽出されたピッチ トラック (MIDI 周波数)。
  • 3 つ目は、これらのピッチ候補の信頼度 (yinfft アルゴリズムを使用)。

このベース ラインのサンプルでは、​​トランジエント アタック中にピッチを抽出することは、定常状態よりも困難です。任意のしきい値 (ここでは 0.8) 未満で見つかったピッチ候補は破棄でき (緑の破線)、その他は保持できます (青の実線)。

于 2013-06-24T23:38:59.217 に答える