### AMR 文件格式详解
#### 一、AMR与AMR-WB简介
**AMR**(Adaptive Multi-Rate) 和 **AMR-WB**(Adaptive Multi-Rate Wideband) 是两种广泛应用于移动通信领域的音频编码标准。这两种格式主要用于移动设备上的语音通信,因其高效的压缩比而在无线网络中特别受欢迎。然而,相比于其他音频压缩格式,AMR格式的音质略显逊色。
- **AMR**: 专为窄带音频设计,主要应用在2G和3G网络中的电话语音传输上。
- **AMR-WB**: 为宽带音频设计,支持更宽的频率范围,能够提供更好的语音清晰度和自然度,适用于高质量语音通信场合。
#### 二、AMR帧结构
AMR帧由多个部分组成,包括帧类型、模式指示、模式请求等字段,以及关键的数据部分。
- **帧类型(Frame Type)**: 定义了该帧的编码方式。
- **模式指示(Mode Indication)** 和 **模式请求(Mode Request)**: 这两个字段在IF2格式中被省略,因为它们与帧类型字段中的值相同。
- **帧质量指示器(Frame Quality Indicator)**: 用来标识该帧是否完好或损坏。
#### 三、AMR帧分类
AMR帧被分为三个类别(Class A、Class B、Class C),每类数据的重要性依次递减。
- **Class A**: 帧中最敏感且重要的数据,一旦这部分数据受损,整个帧将无法解码。
- **Class B**: 相对于Class A来说不太重要的数据。
- **Class C**: 比Class B更加不重要的数据。
例如,在4.75kbit/s的AMR编解码模式下,Class A bits 为 d(0)..d(41),Class B bits 为 d(42)..d(94),此时没有Class C bits。
#### 四、AMR文件存储格式
AMR文件的存储格式由 **IF1** 和 **IF2** 定义,主要用于无线传输。此外,**RFC 3267** 规定了AMR数据如何存储成文件。
- **AMR文件头**: 包含一个固定的头部信息,后跟一系列的AMR帧数据。
- **单声道**:
- **AMR-NB** 文件头: `"#!AMR\n"` (十六进制表示为 `0x2321414d520a`)。
- **AMR-WB** 文件头: `"#!AMR-WB\n"` (十六进制表示为 `0x2321414d522d57420a`)。
- **多声道**:
- 头部包含一个魔法数字(magic number)和32位通道描述域(channel description field)。
- **AMR-NB** 的魔法数字: `"#!AMR_MC1.0\n"` (十六进制表示为 `0x2321414d525f4d43312e300a`)。
- **AMR-WB** 的魔法数字: `"#!AMR-WB_MC1.0\n"` (十六进制表示为 `0x2321414d522d57425f4d43312e300a`)。
#### 五、语音帧结构
每个AMR语音帧都包含一个帧头(header),该帧头占用1个字节(8比特)。
- **P**: 填充位,通常设置为0。
- **FT**: 帧类型,指示当前帧采用的16种编码模式之一。
- **Q**: 帧质量指示器,如果为0,则表明该帧已损坏。
#### 六、示例: AMR-NB 5.9Kbit帧
以AMR-NB 5.9Kbit为例,一个帧包含118比特数据,因此在帧尾会有2个比特作为填充位。
#### 七、AMR相关术语
为了更好地理解AMR格式,以下是一些与AMR相关的术语解释:
- **AMR**: Adaptive Multi-Rate Codec
- **AMR-WB**: Adaptive Multi-Rate Wideband Codec
- **CMR**: Codec Mode Request
- **CN**: Comfort Noise
- **DTX**: Discontinuous Transmission
- **ETSI**: European Telecommunications Standards Institute
- **FEC**: Forward Error Correction
- **SCR**: Source Controlled Rate Operation
- **SID**: Silence Indicator (仅包含CN参数的帧)
- **VAD**: Voice Activity Detection
- **UED**: Unequal Error Detection
- **UEP**: Unequal Error Protection
以上术语和概念涵盖了AMR文件格式的主要方面,有助于深入理解这种音频格式的特点和应用场景。