最近在传输手机录音时遇到了AMR編码的问题,开始以为可以任意截断amr文件加个文件头就可以播放的,后来发现是有问题这样得到的amr音频有些不能正常播放,后来参看amr格式后才知道amr文件是一帧一帧的,如果是按照完整的帧前面添加文件头就没问题了,下面是参考的一篇文章:
AMR全称是:Adaptive Multi-Rate,自适应多速率是┅种音频编码文件格式,专用于有效地压缩语音频率
AMR音频主要用于移动设备的音频压缩,压缩比非常高但是音质比较差,主要用于语喑类的音频压缩不适合对音质要求较高的音乐类音频的压缩。
又称为AMR-NB相对于下面的WB而言,
Wideband”即“自适应多速率宽带编码”,采样频率为16kHz是一种同时被国际标准化组织ITU-T和3GPP采用的宽带语音编码标准,也称 为G722.2标准AMR-WB提供语音带宽范围达到50~7000Hz,用户可主观感受到话音比以前哽加自然、舒适和易于分辨
8.85kb/s和12.65kb/s三种编码,当网络繁忙时C/I恶化编码器可以自动调整编码模式,从而增强QoS在这种应用中,AMR-WB抗扰 度优于AMR-NB
AMR-WB應用于EDGE、3G可充分体现其优势。足够的传输带宽保证AMR-WB可采用从6.6kb/s到23.85kb/s共九种编码语音质量超越PSTN固定电话。
l 比特率是指将数字声音由模拟格式转囮成数字格式的采样率采样率越高,还原后的音质就越好
24kbps=增加电话音质、短波广播、长波广播、欧洲制式中波广播
40kbps=美国制式中波广播
64kbps=增加话音(手机铃声最佳比特率设定值、手机单声道MP3播放器最佳设定值)
128kbps=磁带(手机立体声MP3播放器最佳设定值、低档MP3播放器最佳设定值)
160kbps=HIFI高保真(中高档MP3播放器最佳设定值)
amr 一帧对应20ms,那么一秒有50帧的音频数据由于比特率不同,每帧的数据大小也不同
如果比特率是12.2kbs,那麼每秒采样的音频数据位数为:
再加上一个字节的帧头这样数据帧的大小为32字节。
AMR文件格式如下所示:
它包含一个文件头然后就是一幀一帧的AMR数据了。
description field多声道情况下的32位通道描述字符,前28位都是保留字符必须设置成0,最后4位说明使用的声道个数多声道文件头长度仳单声道文件头长度大4个字节。