AMR音频结构

  1. 编码方式

    AMR有多种编码方式,每种编码方式的采样频率不同:

     

     

    规格

    比特率(kbps

    音频帧大小(字节)

    帧头(字节)

    FT

     0 

     AMR 4.75 

     

     13

     04 00000100 

     0000 

     1

     AMR 5.15

     

     14

     0C 00001100

     0001

     2

     AMR 5.9

     

     16

     14 00010100

     0010

     3

     AMR 6.7

     

     18

     1C 00011100

     0011

     4

     AMR 7.4

     

     20

     24 00100100

     0100

     5

     AMR 7.95

     

     21

     2C 00101100

     0101

     6

     AMR 10.2

     

     27

     34 00110100

     0110

     7

     AMR 12.2

     

     32

     3C 00111100

     0111

     

    说明:

    l         比特率是指将数字声音由模拟格式转化成数字格式的采样率,采样率越高,还原后的音质就越好。

     

    l         比特率值与现实音频对照:

    16kbps=电话音质

    24kbps=增加电话音质、短波广播、长波广播、欧洲制式中波广播

    40kbps=美国制式中波广播

    56kbps=话音

    64kbps=增加话音(手机铃声最佳比特率设定值、手机单声道MP3播放器最佳设定值)

    112kbps=FM调频立体声广播

    128kbps=磁带(手机立体声MP3播放器最佳设定值、低档MP3播放器最佳设定值)

    160kbps=HIFI高保真(中高档MP3播放器最佳设定值)

    192kbps=CD(高档MP3播放器最佳设定值)

    256kbps=Studio音乐工作室(音乐发烧友适用)

     

    l         音频数据帧大小的计算:

    amr 一帧对应20ms,那么一秒有50帧的音频数据。由于比特率不同,每帧的数据大小也不同。

    如果比特率是12.2kbs,那么每秒采样的音频数据位数为:

    12200 / 50 = 244bit = 30.5byte,取整为31字节。

    取整要四舍五入。

    再加上一个字节的帧头,这样数据帧的大小为32字节。


  2. AMR文件结构

    下面是一个AMR文件示范:

    从图中可以看出,所有AMR文件头标志是6个字节。(最后一个字节是换行符“/n”)

    后面就紧跟的是音频帧。这个文件是每帧32字节。

     

    文件头

    语音帧 1

    语音帧 2

     


  3. AMR帧头格式分析

    AMR语音帧格式为帧头和语音数据组成。

    帧头

    语音数据

     

    AMR语音帧头占1个字节,如下图所示:

    0

    1

    2

    3

    4

    5

    6

    7

    P

    FT

    Q

    P

    P

    0

     

     

     

     

    0

    0

    0

     

    其中:

    P = 0;

    FT:Frame Type,对应不同编码模式。(参见“2. AMR编码方式”中表格中的说明)

    Q:帧质量指示器,0:表示为坏帧。

    后面的P补0。


  4. 异常帧分析

    下图是一个出现异常帧的示例:(zbc1217.amr)

     

    从上图可以看见,本amr音频帧头都是0x3C,但是在0x000091e6处,帧头字节为0x44。与0x3C不一致。而在0x00009243处,才恢复到0x3C。

     

    对异常帧的简单处理办法是,遇到异常帧就跳过异常帧。后面的读帧算法有描述。


  5. 参考资料

    l         rfc3267

    http://www.rfc-editor.org/rfc/rfc3267.txt

    http://ietfreport.isoc.org/rfc/PDF/rfc3267.pdf

    l         3GPP TS 26.104 V 6.1.0 (2004-03)

    http://www.3gpp.org/ftp/Specs/html-info/26104-CRs.htm

    l         3GPP AMR Floating-point Speech Codec

    http://www.3gpp.org/ftp/Specs/html-info/26104.htm

    l         “amr编程汇总”

    http://blog.csdn.net/windcao/archive/2006/01/04/570348.aspx

    l         关于AMR文件格式的解释

    http://www.mcublog.com/blog/user1/11409/archives/2006/16832.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值