从 AVAudioRecorder 录制的音频中去除静音

Posted

技术标签:

【中文标题】从 AVAudioRecorder 录制的音频中去除静音【英文标题】:Stripping silence from AVAudioRecorder recorded audio 【发布时间】:2011-04-26 20:06:41 【问题描述】:

我正在开发一个允许用户录制音频的 ios 应用。音频使用 AVAudioRecorder 录制,然后保存到文件中。

我想从录制的音频的开头和结尾去除静音。

有什么想法吗?

【问题讨论】:

【参考方案1】:

我目前没有从事类似的工作。这绝不是微不足道的。因为沉默不会是一条直截了当的零线。会有一些波动。

如果保证信号干净,那么在第一个样本上设置一个绝对值大于 0.001 的标记将是相当简单的。

您可以设置结束标记,而无需向后浏览文件。您所做的就是,每个大于此阈值的样本,您都为此样本设置结束标记。

如果您的输入在正确启动之前可能包含 blips 和 squips,您将需要更高级的技术。在下面发表评论,我会扩展答案。

【讨论】:

【参考方案2】:

当我为 iOS 构建音频应用程序时,音频最终会在服务器上结束。我不知道您的应用在这方面是否相似。如果是这样,你可以做我做的:

在后端使用SoX 对音频进行后处理,使用阈值消除静音。

如果您需要在手机上完成所有操作,那就更难了。您应该使用OpenAL 或OpenAL wrapper library 构建功率电平过滤器

【讨论】:

以上是关于从 AVAudioRecorder 录制的音频中去除静音的主要内容,如果未能解决你的问题,请参考以下文章

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

iOS音频与视频的开发- 使用AVAudioRecorder进行录制音频

使用AVAudioRecorder录制音频

Swift AVAudioPlayer 不会播放用 AVAudioRecorder 录制的音频

在使用 AVAudioRecorder 在为导航栏设置动画的同时录制音频时发生中断时,我们如何停止并保存录制?

录制语音的正确 AVAudioRecorder 设置?