我正在开发一个Android应用程序,该应用程序需要向服务器发送短(小于60秒)的语音消息。
文件大小非常重要,因为我们不想吃光数据计划。声音质量对于需要识别消息很重要,但是与音乐文件相比,它需要的带宽/质量要低得多。
哪种标准Android音频编码器(http://developer.android.com/reference/android/media/MediaRecorder.AudioEncoder.html)和文件格式(http://developer.android.com/reference/android/media/MediaRecorder.OutputFormat.html)最适合此应用程序?
也欢迎任何关于比特率等良好起点的暗示。
我们最终需要能够在Windows和iOS上播放它们,但是也可以进行一些后端转换。似乎没有有效的跨平台格式/编码器,因此我们将在这里进行工作。
最佳答案
AMR专门针对语音压缩,是普通电路交换语音 call 最常用的编解码器。窄带变体(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 - Android编码器和语音邮件的文件格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15857482/