2

我目前正在从事基于 iPhone 和 iPad 的录音应用程序。在这里,我自己完成了基本的音频录制功能,但我不知道如何录制高于特定频率的音频,比如高于 17,000 Hz。那么,任何人都可以帮助我实现这一目标吗?这真的对我的职业生涯有很大帮助。

4

3 回答 3

2

我认为您需要使用加速框架,里面有一个可以进行 FFT(快速傅里叶变换)的 vDSP API。它将数据从时域转换为频域。根据 bin 大小信息,您可以提取特定 bin 大小后的幅度/幅度。

我认为这可以解决您的问题。

对于 vDSP,您可以参考 Apple 网站上的aurioTouch 2

关于 FFT 如何在那里工作,您可以参考这个问题 -了解 aurioTouch2 中的 FFT

我希望这会有所帮助。

PS AurioTouch 或 AurioTouch 1 未使用 vDSP API。我记得在 iOS 4 之前有一个 FFT 函数可以做类似的事情但速度较慢。所以你可能认为vDSP只有iOS4.0以后才有

于 2012-05-31T01:11:21.737 回答
1

我在互联网上研究我发现这两种墨水..

查找频率的库https://github.com/jkells/sc_listener

使用上述库的示例https://github.com/jkells/sc_listener_sample

我希望通过获取频率数字并设置条件,您可以实现这一目标..希望这会有所帮助......

于 2012-05-31T05:03:33.020 回答
0

与简单的滤波器解决方案相比,使用 FFT 的计算成本高且过于复杂。除非你真的需要在频域工作,否则你应该避免它。

相反,通过高通滤波器运行您的 PCM。相关的维基百科页面将帮助您选择合适的过滤器。如果您的最小频率限制是一个常数,此页面将为您的滤波器生成常数。否则,动态生成这些常量并不难。或者您可以将源代码用于所述滤波器系数生成页面

于 2013-08-15T17:09:08.080 回答