作为一个个人项目,我正在编写一个 Android 应用程序,我打算用它来记录我们第一个婴儿的声音。我对 Android 开发和声音处理的世界有点陌生,所以如果这个问题很幼稚,请多多包涵:)
我正在尝试做的是不断地保存我们婴儿房中的声音,以 2 小时的间隔分割录音。我计划保留这些数据以供将来分析(例如,绘制哭泣时间,我会将其与其他事件相关联,并且可能会哭泣识别)。
到目前为止,该应用程序运行良好。但是,考虑到 90% 的时间会保持沉默,我想知道是否有可以使用的高效编解码器。我尝试在输入编解码器设置之前修改 PCM 原始数据,将低于特定阈值的任何值归零,但这并没有显着减小文件大小。这是一个疯狂的猜测,以防万一这会“帮助”编解码器(我试过 AAC/HE 和 MP3,还没有 AMR)。
你能指出我正确的方向吗?...
我不介意使用需要对文件进行后处理的解决方案。例如,我查看了http://sox.sourceforge.net,但它去除了减少记录长度的静音期(我想保持时间戳和长度不变)。
注意:使用 SoX 使用命名方案将文件拆分为多个部分,该命名方案允许我重新构建原始时间,这是一个选项......但我无法使用该脚本,但是)。
额外的问题:如果我想稍后运行一些处理,AMR-NB 是否足以编码婴儿哭声?(例如this或this)或者...我应该坚持使用 AMR-WB 吗?
谢谢,
7月22日更新:
感谢大家到目前为止的回复。仅使用 WAV 注入零,然后使用 bzip2 等来压缩重复数据的想法非常好(感谢@MBaz)。
@Fat32:我已经删除了文件,但我记得大小约为 20Mb/hr,在用零替换低 PCM 值(大约 50% 的流)后没有实质性变化。
另一个更新:AMR-WB 给我的结果比 AAC/HE 更好,~6 Mb/hr。所以我可能会坚持下去,但是我不确定如果稍后我决定稍后运行一些婴儿识别分析,低比特率 + 采样率会如何影响事情(即,如果信息丢失会删除对神经网络)。