amr是什么意思
AMR-WB 全称Adaptive Multi-Rate和Adaptive Multi-Rate Wideband,主要用于移动设备的音频
一般是不能的
midi amr和mp3都是指手机铃声的格式
除非你的手机说明书明确标明支持mp3
否则的话是播放不了的
另外还要说清楚的是amr格式也可以真人真唱,但是与mp3的压缩标准不一样,不能混为一谈。
midi就是通常我们说的和铉音了,一般是没有真人真唱的
全称Adaptive Multi-Rate和Adaptive Multi-Rate Wideband,主要用于移动设备的音频,压缩比比较大,但相对其他的压缩格式质量比较差,由于多用于人声,通话,效果还是很不错的。
AMR(Audio/Modem Riser,声音/调制解调器插卡)插槽是Intel公司开发的一种扩展槽标准。采用这种标准,通过附加的解码器可以实现软件音频功能和软件调制解调器功能。
声卡、MODEM和视频卡上均有接口、模拟电路、解码器、控制器和数字电路,控制器和数字电路很容易集成在主板上或整合在芯片组中,而接口电路和模拟电路部分集成在主板上则有一定困难。例如由于电磁干扰、电话接头、电信标准的不同,MODEM的调制解调电路和接口电路就不宜集成在主板上。
Intel公司制订AMR标准的目的就是解决上述问题,将模拟I/O电路留在AMR插卡上,而将其他部件集成在主板上。AMR标准的基本用途是将音频和MODEM的接口电路、模拟电路和解码器制作在一张AMR接口卡上,例如在Intel 810芯片组的ICH中已集成了AC’97控制器与MC’97控制器,只要连接相应的解码器即可获得声卡或MODEM的功能。
此外,AMR还能与Intel 810的DVOP配合,在AMR接口卡上集成符合Panel Link标准的控制芯片以连接数字平板显示器;集成TV控制芯片连接电视机。
AMR接口的骨干是一个符合AC'97规格的AC链路,最多支持4个解码芯片,解码芯片可分别做在不同的组件上,比如音频解码芯片做在主板上,而MODEM解码芯片则可做在AMR接口卡上。基本AMR支持音频及MODEM子系统的硬件加速。加速器位于预处理数据源与处理数据目的地之间,它直接从主内存取得预先处理好的数据,再通过AC链路传递给解码芯片。具有AMR插槽的主板需配有相应驱动程序及BIOS代码,方能对AMR架构子系统的硬件资源进行管理。
实际生产时,主板厂商常将音频解码芯片及其接口集成在主板上,而将MODEM的调制解调电路及解码芯片留给AMR MODEM接口卡。
二、编码方式
这里都是针对AMR narrow-band (AMR-NB)进行讨论
Amr有以下一些编码方式:
Mode 0 - AMR 4.75 - Encodes at 4.75kbit/s
Mode 1 - AMR 5.15 - Encodes at 5.15kbit/s
Mode 2 - AMR 5.9 - Encodes at 5.9kbit/s
Mode 3 - AMR 6.7 - Encodes at 6.7kbit/s
Mode 4 - AMR 7.4 - Encodes at 7.4kbit/s
Mode 5 - AMR 7.95 - Encodes at 7.95kbit/s
Mode 6 - AMR 10.2 - Encodes at 10.2kbit/s
Mode 7 - AMR 12.2 - Encodes at 12.2kbit/s
8~15位一些 noise frames 和保留位的定义。
每种格式对应的帧的大小如下。
CMR Mode Frame size (bytes)
0 AMR 4.75 13
1 AMR 5.15 14
2 AMR 5.9 16
3 AMR 6.7 18
4 AMR 7.4 20
5 AMR 7.95 21
6 AMR 10.2 27
7 AMR 12.2 32
我们来做一个简单的计算,PCM16和AMR之间的转换
Amr 一帧为20毫秒
AMR 4.75Kbits/s:
每秒产生的声音位数 = 4750bits/s
每20ms帧占用的位数 = 4750bits/s / 50frames/s = 95bits
每20ms帧占用的字节数 = 95bits / 8bits/byte = 11.875bytes - 圆整到12字节,不足的补0
加上一个字节的帧头,所以,20ms一帧的AMR: 12-bytes + 1-byte = 13-bytes
相反,转换回来就成了
13-bytes * 50frames/s * 8bits/byte = 5200bits/s
注意,这里两个数值并不对应,是由于圆整地原因
三、文件格式
Amr的文件格式极为简单,如图1所示:
文件最开始时6个字节的header,
[#!AMR\n] 括号间的部分
(或者十六进制表示为 0x2321414d520a ).
接下来就是连续的语音帧,
每个帧包含一个帧头+语音数据
帧头如图2所示:
P设置为0
FT为编码模式,上面已经列举了可用的值。
Q为帧质量指示器,如果为0表明帧被损坏,接受者需要将RX_TYPE设置成SPEECH_BAD或者SID_BAD。
何为RX_TYPE请参考RFC3267,其实该节介绍的内容都可以在RFC3267里面找到。
图3 这个图表为 5.9 kbit 编码的文件格式 (with 118 speech bits)
其中P为补0位。