频率分析 - Novocaine 和麦克风播放:如何禁用扬声器输出?
Posted
技术标签:
【中文标题】频率分析 - Novocaine 和麦克风播放:如何禁用扬声器输出?【英文标题】:Frequency analysis - Novocaine and playthrough by mic: how to disable speaker output? 【发布时间】:2015-04-11 13:54:34 【问题描述】:我正在使用 Novocaine 进行频率检测 - 效果很好。 我非常欣赏 Novocaine 框架,因为它性能卓越且易于使用。
无论如何,只有一个问题: 从 iPhone/iPad 麦克风捕捉声音,我想禁用扬声器输出以防止声反馈(噪音)。我怎样才能做到这一点?到目前为止,我一直在徒劳地尝试更改音频输出路线。任何想法都非常感谢!
当然,我发现独立于 Novocaine 框架,我可以禁用硬件声音 - 但是当我这样做时,用户会得到一种工具提示(“声音禁用”),这可能会让用户感到烦恼.我更喜欢在用户点击“捕获声音”按钮时暂时禁用声音而不注意它。
【问题讨论】:
【参考方案1】:解决方案很简单,我几乎是偶然发现的:
在输出块中
[audioManager setOutputBlock:^(float *data, UInt32 numFrames, UInt32 numChannels)
...
我只是将输出数据设置为零 - 在分析(使用 FFT 或卷积或互相关或其他什么)数据之后:
// silence the sound in order to disable sound feedback
for(int i=0; i<numFrames; i++)
data[i] = 0.0;
就是这样!
【讨论】:
以上是关于频率分析 - Novocaine 和麦克风播放:如何禁用扬声器输出?的主要内容,如果未能解决你的问题,请参考以下文章