2012-03-05 14 views
1

マイクから録音した音声の平均周波数を検出しようとしています。このサウンドはmp3形式またはwav形式であると想定できます。私の最終的な目標はこれをライブで行うことですが、mp3やwavの平均周波数を見つけるだけで十分です。マイクピッチ/周波数検出(特にActionScript 3.0)

私はこのタスクで私を助けることができるactionscript 3.0のクラスを見つけるのは信じられないほど困難です。 AS3.0でクラスを提案したり、この特定のタスクを探すためのアルゴリズムを教えてくれる人は誰でも助けてくれますか?

ありがとうございます。

+0

グーグルもっと... http://stackoverflow.com/questions/1803671/how-to-calculate-frequency-amplitude-in-flash-as3-with-flash-player-9 –

答えて

0

最適なアプローチは、分析しているオーディオによって異なります。歌手、フルート、またはトランペットのようなモノフォン入力の場合、自己相関アプローチはうまくいく可能性があります。ここでのアイデアは、波型の周期をさまざまな間隔で比較して最適なマッチを見つけることです。 400サンプルごとに開始する期間のある音波があるとします。いくつかのサンプルを繰り返し処理する場合は、インデックスiのサンプルとインデックス(i + 400)のサンプルを常に比較します。おそらく別のサンプルを減算してこの結果を合計に加算すると、ウェーブがこの間隔400で完璧にマッチした場合、合計は0になります。もちろん、400があなたのマジックナンバーであることを知らないので、可能な範囲内のさまざまな間隔をチェックする必要があります。周波数が極端に低くなるか高くなる間隔を除外することができます。明らかに完璧なマッチを見つけることは期待できませんが、一般にマッチが最も近い区間はモノフォニックピッチの頻度です。

ポリフォニック・ソース、またはバイオリンやギターのような高調波の多い音色の楽器の場合は、別の方法を使用する必要があります。オーディオセグメントを高調波ピッチコンテンツに分解するために、FFTベースのアプローチが広く使用されています。それは、FFTから出てくる周波数があなたの最善の策であるかどうかを決めるために出てくるいくつかのルールを適用することです。