如何检测 AVAudioRecorder 中的静音?

Posted

技术标签:

【中文标题】如何检测 AVAudioRecorder 中的静音?【英文标题】:How to dectect silence in AVAudioRecorder? 【发布时间】:2011-05-24 16:30:01 【问题描述】:

我使用 AVAudioRecorder 进行录音。目前我使用averagePowerForChannelpeakPowerForChannel 来显示动态仪表。

我怎样才能检测到静音(1 秒钟内没有人说话)并停止录音?

【问题讨论】:

如何在使用 AVAudiorecorder 录制音频时过滤初始静音持续时间。如果有任何可能性,请告诉我。 【参考方案1】:

好吧,如果您已经显示了仪表,那么您肯定已经知道答案了吗?

您可以简单地将最后 n 个读数相加,其中 n 是您每秒读取的读数数量,然后如果该值小于您设置的某个阈值,您可以将其声明为静音。

【讨论】:

由于在不同的环境中会有不同的背景噪音,我正在寻找一个相对阈值,而不是在我的工作台上硬编码值;-) 有什么想法吗? 那么您所需要的只是一个自适应阈值 - 您可以通过对最近 x 秒内确定的 LOWEST 功率值进行平均来获得它。

以上是关于如何检测 AVAudioRecorder 中的静音?的主要内容,如果未能解决你的问题,请参考以下文章

iPhone AVAudioRecorder,AudioQueueServices,检测到声音时如何自动录制音频

如何在 PCM 音频中使用 IMediaSample 检测静音

如何检测音量是不是设置为静音?

如何检测音频是不是无法静音?

如何检测 iOS 设备是不是处于静音模式?

AVAudioRecorder - 计量到语音检测