2010-09-27 53 views

回答

2

如果您通過AudioRecord類獲得音頻,那麼您將獲得原始音頻數據,您可以使用您擁有的任何音頻濾波算法進行過濾。或者你在尋找一個音頻過濾庫?

+0

我不是Android專家,但我還補充說,Android本身不太可能具有這樣的特定功能。 – 2010-11-10 04:34:00

+0

謝謝你的回答。這是我使用的方法。我用AudioRecord類獲取音頻,然後使用不同的算法來操縱音頻 – user422688 2010-11-10 08:30:56

+0

可以請您提供更多詳細信息,我想要做類似的任務。 – 2012-06-06 08:46:26

2

正如戴夫所說,AudioRecord類是最簡單的方法。通常情況下,我將擴展一個實現AudioRecord的AsyncTask來讀取音頻緩衝區,並將緩衝區推回UI線程進行可視化(如果需要)。

關於音頻的過濾,Android不提供任何內置的方式。您可以濾除某些頻率的方法是對採樣音頻進行傅里葉變換,然後提取感興趣的頻率。

如果您想了解更多關於過濾的細節,您應該可以發佈一個新的SO問題或維基快速傅里葉變換(FFT)。您也可以查看JTransforms這是一款在Android上運行非常好的開源FFT庫。

+0

你能幫我嗎我想過濾從Audiorecord使用JTransforms返回的原始數據的頻率範圍,我怎麼能做到這一點,任何好的例子或教程appriciate d? – 2012-06-06 08:49:48

2

do NOT use the FFT for this。這是業餘時間。 (FFT是一個很好的工具,有很多很好的用例,但這不是其中之一。)你很可能想用時域濾波器來解決這個問題。 Here's a post讓你開始在時間域寫你自己的過濾器儘可能簡單。然而,很多人都會遇到這種情況,因爲它有點專業化,所以如果你想使用android內置的東西,請從equalizer audio effect開始。