2010-09-27 115 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开始。