从 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进行录制音频
Swift AVAudioPlayer 不会播放用 AVAudioRecorder 录制的音频