iPhone应用程序仅在特定频率以上录音

Posted

技术标签:

【中文标题】iPhone应用程序仅在特定频率以上录音【英文标题】:iPhone app audio recording only in above certain frequency 【发布时间】:2012-05-31 00:14:19 【问题描述】:

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

【问题讨论】:

仅在该频率以上记录或通过过滤器以仅在该频率以上选择 嗯,您必须通过某种数字滤波器运行数字化声音以滤除较低频率。但请注意,17KHz 是一个相当高的频率。最高的常见音频采样率(以及 iPhone 上可能的限制)是 44100,这意味着它可以处理的最高频率是 22.05KHz。 【参考方案1】:

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

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

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

关于 FFT 如何在那里工作,您可以参考这个问题 - Understanding FFT in aurioTouch2

希望对你有所帮助。

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

【讨论】:

您看过上面的 aurio Touch 2 示例了吗?【参考方案2】:

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

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

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

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

【讨论】:

【参考方案3】:

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

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

【讨论】:

以上是关于iPhone应用程序仅在特定频率以上录音的主要内容,如果未能解决你的问题,请参考以下文章

如何仅在 iphone 中显示特定的推送通知?

如何仅在中国启动我的 iOS iPhone 应用程序?

如何让我的 iPhone 收听高于某个阈值的声音频率?

仅在 iphone 11 上显示 UI 图像在其他 iphone 版本上隐藏

iphone播放和录音低音量问题

iPhone应用程序内部录音