语音消息的 Android 编码器和文件格式

Posted

技术标签:

【中文标题】语音消息的 Android 编码器和文件格式【英文标题】:Android encoder and file format for voice messages 【发布时间】:2013-04-07 00:21:09 【问题描述】:

我正在开发一个需要向服务器发送短(

文件大小非常重要,因为我们不想耗尽数据计划。声音质量对于信息需要被识别很重要,但它需要的带宽/质量应该比音乐文件少得多。

哪种标准 android 音频编码器 (http://developer.android.com/reference/android/media/MediaRecorder.AudioEncoder.html) 和文件格式 (http://developer.android.com/reference/android/media/MediaRecorder.OutputFormat.html) 可能最适合此应用程序?

也欢迎任何关于比特率等良好起点的提示。

我们最终需要能够在 Windows 和 ios 上播放它们,但如果需要一些后端转换也没关系。似乎没有有效的跨平台格式/编码器,所以我们将在这方面投入工作。

【问题讨论】:

【参考方案1】:

AMR 专门针对语音压缩,是最常用于普通电路交换语音呼叫的编解码器。窄带变体(AMR-NB,8kHz 采样率)仍然是使用最广泛的编解码器,并且几乎所有你能找到的手机都应该支持。 宽带变体(AMR-WB,16kHz 采样率)提供更好的质量,如果目标设备支持它并且你可以节省带宽,则首选它。 AMR 的典型比特率范围约为 6 到 14 kbit/s。 我不确定是否有任何适用于 Windows 的媒体播放器直接处理带有 AMR 音频的 .3GP 文件(VLC 可能)。不过也有可以使用的转换器。

HE-AAC (v1) 也可用于语音编码,但this page 建议 Android 上的编码支持仅限于 Android 4.1 及更高版本。合适的速率可能是 16 kHz / 64 kbps。

【讨论】:

以上是关于语音消息的 Android 编码器和文件格式的主要内容,如果未能解决你的问题,请参考以下文章

移动端短语音消息音频格式选择

wav格式编码dsd转换pcm编码

Android麦克风数据采集格式和常见的编码格式

Android 语音通话录音无法在系统上播放

protobufs 格式的原始解码器

语音文件的格式、字节计算、PCM头信息 2019-04-26