1

MP3 ファイルがあり、この再生中の MP3 ファイルの Hz 値を常に検出して表示する必要があります。少しグーグルで調べると、FFT を使用するか、Apple Accelerate フレームワークを使用するという 2 つの機会があることがわかります。残念ながら、どちらも使いやすいサンプルは見つかりませんでした。AurioTouch などのすべてのサンプルは、サンプル バッファの単純な番号を取得するために大量のコードを必要とします。iOS のピッチ検出の簡単な例はありますか?

たとえば、 https://github.com/clindsey/pkmFFTを見つけましたが、作成者が削除したファイルがいくつかありません。そのように機能するものはありますか?

4

3 に答える 3

1

ここから始めるのが良いでしょう:

http://blog.bjornroche.com/2012/07/frequency-detection-using-fft-aka-pitch.html

SOに関する他の質問もあります。

ただし、他の回答で示されているように、これは単に「魔法のように」実行できるものではありません。誰かからコードのライセンスを取得したとしても (たとえば、iZotope と z-plane はどちらも、やりたいことを実行するための優れたコードを作成します)、ライブラリにデータを出し入れするために何が起こっているのかを理解する必要があります。

于 2013-02-19T16:54:50.277 に答える
1

そうではないと思います。サウンドの操作は一般的に難しく、Core Audio も例外ではありません。では本題に入ります。

FFT は、入力を時間ドメインから周波数ドメインに変換するアルゴリズムです。必ずしもサウンド処理とリンクしているわけではなく、サウンド以外にも使用できます。

Accelerate は Apple が提供するフレームワークであり、とりわけ FFT 実装を提供します。したがって、実際には 2 つのオプションはありません。1 つとその実装だけです。

ここで、何をしたいのか (例えば、正確さよりも速度を優先する場合、シンプルさよりも堅牢性を優先する場合など) と、使用している波形のタイプ (単純、複雑、人間の音声、音楽) によっては、FFT だけでは十分でない場合や、あなたの仕事にとって正しい選択でさえありません。他のオプション、自己相関、ゼロクロッシング、ケプストラム分析、いくつかを言及する最尤法があります。しかし、ゼロクロスを除いて、簡単なことはありません。ゼロクロスも最も悪い結果をもたらし、複雑な波形では機能しません。

于 2013-02-17T15:38:58.773 に答える
0

高速ピッチ検出が必要な場合は、http://www.schmittmachine.com/dywapitchtrack.html を使用してください

内部に IOS サンプル コードがあります。

FFT が必要な場合は、Apple Accelerate フレームワークを使用する必要があります。

この助けを願っています

于 2013-02-18T18:13:59.803 に答える