AMR音频编码器概述及文件格式分析

合集下载

amr格式

amr格式

AMR格式简介AMR (Adaptive Multi-Rate) 是一种音频编码格式,主要用于移动电话和互联网通信中的语音传输。

该格式在低到中等的比特率下具有较好的音频质量。

AMR格式是由3GPP(3rd Generation Partnership Project)标准化组织开发的,其目的是为了实现在移动网络环境下进行实时语音通信。

AMR编码器能够根据语音内容的特点和需要,自动调整音频数据的比特率,以达到高质量的语音传输效果。

因此,在网络传输速度较慢或带宽有限的情况下,AMR格式可以提供较好的音质和更高的传输效率。

AMR编码AMR格式使用的是基于时域的编解码技术,这种技术可以根据许多因素,如语音频率、功率和谐波等,对音频进行压缩。

在进行编码时,AMR编码器会根据不同比特率的配置参数来确定输出数据流的大小,从而实现对音频的压缩。

AMR编码支持多个比特率,包括4.75、5.15、5.90、6.70、7.40、7.95、10.2、12.2 kbps等。

对于不同的应用场景,可以根据需求选择合适的编码比特率。

比特率越高,音质越好,但传输所需的带宽也越大。

AMR编码的原理主要包括以下几个步骤: 1. 预处理:对音频信号进行滤波和预加重等操作,以提高编码效果。

2. 分帧:将音频信号按照固定的帧长进行切分,通常为20毫秒。

3. 特征提取:对于每一帧的音频信号,计算其特征参数,例如基频、功率等。

4. 算法选择:根据特征参数,选择合适的编码算法对音频帧进行压缩。

5. 编码:对特征参数进行编码,生成输出数据流。

6. 编码器控制:在编码过程中,根据信道条件和其他因素,调整编码器的参数。

7. 数据打包:将多个音频帧的输出数据流进行打包,形成最终的AMR文件。

AMR解码AMR解码是对AMR编码过程的逆过程,将AMR文件解析为可播放的音频数据。

解码器根据AMR文件中的编码参数和数据流,进行解析和解码,生成PCM格式的音频数据,以供播放器进行播放。

AMR录音碎片重组与格式解析恢复

AMR录音碎片重组与格式解析恢复

AMR录音碎片重组与格式解析恢复目前手机数据恢复已成主流因为存在删除清零等问题导致大家恢复手机完全变成了拼运气,看人品。

手机恢复经常碰到手机需要恢复录音的且需求量较大,之前一直没对AMR 研究过,经常有同行反馈所以最近做了些测试以及研究。

因为手机录音的格式较多,3GP.AMR.OGG.WMA. WAV等格式,,目前只针对AMR 进行了研究并且成功开发出了AMR碎片的提取工具。

先看一下AMR的音频结构与编码:1.amr codec种类amr一般是指amr-nb,即8kHz采样,有8种比特率的编解码算法。

另外有amr-wb,即16kHz采样,9种比特率的编码算法。

由于amr-wb采样率高,所以复杂度大概是amr 的两倍。

amr和amr-wb都属于speech codec,对audio的编码效果并不好,为了提高对audio的编码效果,出现了amr-wb+。

amr-wb+可以支持更高的采样率,对speech 和audio采用不同的编码算法,对speech采用ACELP编码,对audio采用变换编码。

amr-wb+在低比特率上对audio的编码效果与he aac+相当。

amr-wb+包含amr-wb,但复杂度更高。

2.amr-nbThe AMR codec is a multi-mode codec that supports 8 narrow band speech encoding modes with bit rates between 4.75 and 12.2 kbps. The sampling frequency used in AMR is 8000 Hz and the speech encoding is performed on 20 ms speech frames. Therefore, each encoded AMR speech frame represents 160 samples of the original speech.amr-nb支持8种比特率,分别是4.75,5.15,5.9,6.7,7.4,7.95,10.2,12.2kbps。

amr的格式

amr的格式

amr的格式
AMR文件格式是一种音频文件格式,通常用于移动电话录音或语音备忘录。

AMR代表自适应多速率,是一种压缩音频格式,旨在提供高质量的语音录音,同时尽可能减少文件大小。

这种文件格式通常用于通过手机进行录音,并且在一些流行的音频播放器和编辑软件上也可以找到支持。

AMR文件格式采用变速率编码技术,这意味着它可以根据音频内容的复杂性和需求来动态调整数据传输速率。

这使得AMR文件格式非常适合用于在网络上进行实时语音通信,例如通过手机进行通话或VoIP应用程序。

AMR文件格式通常以.amr作为文件扩展名,并且可以通过多种方式进行转换和编辑。

虽然它是一种受限的音频格式,但它在特定的应用场景中具有很高的实用性。

同时,AMR文件格式也可以通过一些免费和付费的音频转换工具进行转换为其他常见的音频格式,如MP3或WAV。

总的来说,AMR文件格式是一种优秀的音频格式,特别适用于移动电话录音和实时语音通信。

它的特点是高质量的语音录音和动态调整的数据传输速率,使得它成为移动通信领域的理想选择。

如果你需要进行手机录音或者进行实时语音通信,AMR文件格式绝对是一个值得考虑的选择。

amr与wave编解码

amr与wave编解码

amr与wave编解码收藏目录1. 概述2. AMR编码3. AMR解码4. AMR帧读取算法5. 参考资料1. 概述现在很多智能手机都支持多媒体功能,特别是音频和视频播放功能,而AMR文件格式是手机端普遍支持的音频文件格式。

AMR,全称是:Adaptive Multi-Rate,自适应多速率,是一种音频编码文件格式,专用于有效地压缩语音频率。

AMR音频主要用于移动设备的音频压缩,压缩比非常高,但是音质比较差,主要用于语音类的音频压缩,不适合对音质要求较高的音乐类音频的压缩。

AMR的编解码是基于“3GPP AMR Floating-point Speech Codec”来做的,3GPP还专门开放了基于ANSI-C实现的编解码代码,便于我们在各种平台上进行移植。

#ifndef amrFileCodec_h#define amrFileCodec_h#define AMR_MAGIC_NUMBER "#!AMR\n"#define PCM_FRAME_SIZE 160 // 8khz 8000*0.02=160#define MAX_AMR_FRAME_SIZE 32#define AMR_FRAME_COUNT_PER_SECOND 50//int amrEncodeMode[] = {4750, 5150, 5900, 6700, 7400, 7950, 10200, 122 00}; // amr 编码方式typedef struct{char chChunkID[4];int nChunkSize;}XCHUNKHEADER;typedef struct{short nFormatTag;short nChannels;int nSamplesPerSec;int nAvgBytesPerSec;short nBlockAlign;short nBitsPerSample;}WAVEFORMAT;typedef struct{short nFormatTag;short nChannels;int nSamplesPerSec;int nAvgBytesPerSec;short nBlockAlign;short nBitsPerSample;short nExSize;}WAVEFORMATX;typedef struct{char chRiffID[4];int nRiffSize;char chRiffFormat[4];}RIFFHEADER;typedef struct{char chFmtID[4];int nFmtSize;WAVEFORMAT wf;}FMTBLOCK;// WAVE音频采样频率是8khz// 音频样本单元数 = 8000*0.02 = 160 (由采样频率决定)// 声道数 1 : 160// 2 : 160*2 = 320// bps决定样本(sample)大小// bps = 8 --> 8位 unsigned char// 16 --> 16位 unsigned shortint EncodeWAVEFileToAMRFile(const char* pchWAVEFilename, const char* pc hAMRFileName, int nChannels, int nBitsPerSample);// 将AMR文件解码成WAVE文件int DecodeAMRFileToWAVEFile(const char* pchAMRFileName, const char* pch WAVEFilename);#endif2. AMR编码3GPP提供了编码代码,并提供了一个encoder.c程序,该程序示范了如何对一个16位的单声道PCM数据进行压缩的。

AMR功能介绍

AMR功能介绍

AMR功能介绍一、AMR基本原理AMR是继EFR、FR、HR之后的一种新的编码技术,其核心思想是根据Um接口上下行信号质量的变化情况来不断进行语音编码模式调整和语音速率调整,达到语音质量和系统容量的最优平衡。

AMR(Adaptive Multi Rate)就是自适应多速率语音编解码算法,即协议规定的全速率语音版本3和半速率语音版本3。

该算法允许BTS和MS根据无线环境干扰状况在规定的速率集合中自动选择合适的编解码速率,为了进行编码模式的调整,接收端不断进行链路质量的测量,测量的结果我们称其为“质量指示”(Quality Indicator),质量指示的来源可以是对当前载干比的评估或对当前原始误比特率的评估。

使用AMR有助于提高无线通信系统的抗干扰性和语音质量。

需要注意的是,AMR只适用于无线通信系统中的语音业务,与数据业务和信令业务无关。

AMR 语音编码模式(速率) :全速率AMR支持8种语音编码模式;半速率AMR支持5种语音编码模式。

目前华为GSM BSS设备在Abis接口采用TDM传输的时候不支持HR AMR模式5,即7.95Kbit/s速率的HR AMR编码;如果Abis接口传输使用IP或者HDLC的情况下,则7.95Kbit/s也支持。

AMR 编码模式激活集(ACS):编码模式激活集ACS定义了通话时语音编码速率变化的集和。

这个集合包含1个到4个编码模式编码模式调整原理:语音编码模式转换的判决依据是与ACS中1-4个编码模式(CODEC_MODE 1-4)对应的1-3个门限值(THR_1-3)和磁滞值(HYST1-3)假设当前编码模式为CODEC_MODE_3,当C/I大于(THR_3+HYST_3)时调整到CODEC_MODE_4,当C/I小于THR_2时调整到CODEC_MODE_2根据AMR的速率调整算法,实际语音编码速率的调整只能逐级变化。

不会因为C/I的突变而产生编码速率的突变。

amr的格式

amr的格式

AMR的格式AMR(Abstract Meaning Representation)是一种用于表示自然语言句子语义的形式化表示。

它旨在捕捉句子的抽象意义,而不受特定语言的限制。

AMR的格式提供了一种清晰、简洁的方式来表示句子的含义,并可以用于自然语言处理任务,如机器翻译、问答系统和信息抽取等。

AMR的基本结构AMR由一组有向无环图(Directed Acyclic Graph,DAG)构成,其中每个节点代表一个词或短语,每个边代表节点之间的关系。

AMR的节点和边都有唯一的标识符,以便进行引用。

AMR的节点由以下三个部分组成:1.概念(Concept):表示节点的语义概念,通常是一个单词或短语,用小写字母和下划线表示(如:person)。

2.实体(Entity):表示节点对应的具体实体,可以是一个词或短语,用双引号括起来(如:“John”)。

3.属性(Property):表示节点的附加属性,以冒号开头,后面跟随一个概念或实体(如::age 30)。

AMR的边由以下两个部分组成:1.关系(Relation):表示两个节点之间的语义关系,通常是一个动词或介词短语,用小写字母和下划线表示(如::arg0-of)。

2.角色(Role):表示关系的角色,用冒号开头,后面跟随一个概念或实体(如::arg0 person)。

AMR的例子下面是一个简单的例子,展示了一个AMR句子的表示:(e / eat-01:arg0 (b / boy):arg1 (a / apple))在这个例子中,AMR表示了一个句子“一个男孩吃了一个苹果”。

句子中的“吃”是动词,对应AMR中的一个节点,标识符为“e”,概念为“eat-01”。

节点“e”的两个边表示了它与其他节点的关系。

边“:arg0”表示节点“e”是动作的执行者,对应节点“b”,概念为“boy”。

边“:arg1”表示节点“e”是动作的目标,对应节点“a”,概念为“apple”。

AMR编解码格式介绍

AMR编解码格式介绍
Frame Quality Indicator: 0表示bad frame或者corrupted frame;1表示good frame
每一帧的数据有分为三个部分:Class A/B/C
Class A:一帧中最敏感、最重要的数据。一旦这一部份数据有损坏,整个帧就无法解码,就损坏了。所以,一般在无线传输的时候要使用各种冗余的方式对这部分数据加以保护。
-
-
二、AMR帧格式:
AMR有两种类型的帧格式:AMR IF1和AMR IF2
1. AMR IF1:
IF1的帧格式如下图所示:
FrameType, Mode Indication, Mode Request对应上面两个表格里的数。从上面的表格里我们可以看出,这三个域的值是相同的。所以在IF2中省略了Mode Indication, Mode Request两个域。
图3列举了AMR-NB 5.9Kbit的一个帧的格式,
对于5.9kbit一帧的有118bit的数据,15*8=120=118+2,所以在最后有2个bit的填充位。
参考文献:
RFC3267 RTP Payload Format for AMR and AMR-WB
3GPP TS 26.201 V6.0.0
4
1
253
6
33
3
AMR-WB 14.25 kbit/s
4
1
285
6
37
4
AMR-WB 15.85 kbit/s
4
1
317
6
41
5
AMR-WB 18.25 kbit/s
4
1
365
6
47
6
AMR-WB 19.85 kbit/s

AMR功能应用

AMR功能应用

AMR功能应用一、应用概述1.AMR(Adaptive Multi Rate)功能1.1 AMR功能AMR(Adaptive Multi Rate)自适应话音与信道编解码技术,可根据无线环境进行自适应调节。

1.2功能描述AMR(AdaptiveMultiRate)是一种新的话音与信道编解码技术,支持全速率与半速率信道。

AMR的编码速率可根据无线环境进行自适应调节,在低C/I情况下,采用较多的信道编码和较少的话音编码,牺牲话音质量以增强纠错能力;在高C/I 情况下,采用较少的信道编码和较多的话音编码,以提高话音质量。

2.应用介绍AMR的开通需要所有网络节点的支持,包括MSC、BSC、BTS和MS。

在通话过程中BTS(上行)和MS(下行)会对无线链路质量进行不间断的测量,并根据测量结果动态调节编码速率。

在干扰恶劣的环境下,应用AMRFR可增强抗干扰能力改善用户感知;在干扰较好的情况下,应用AMRHR可在增加网络容量的同时保持较佳的话音质量。

3.应用效果AMR功能应用后,广州全网SQI约提升3.4%,全网语音评估MOS值提升0.1分,MOS值大于(或等于)3的占比由74.77%提升到77.89%。

二、部署条件1.版本支持BSS:R9以上版本TRAU:R5B或R6以上版本BTS:除RBS200系列基站外,2000系列的基站全部支持AMR功能。

2.组网架构不涉及3.部署代价3.1本应用所属类别AMR功能属于端局新功能,需向设备厂家申请购买相应的功能。

3.2本应用需做的部署代价现网端局需购买AMR,功能打开后需按开启AMR载波数量收费。

三、原理及方案在网络资源不足的情况下,用户使用传统半速率信道虽然增大了网络容量,但感知度明显下降,该矛盾可通过AMR(Adaptive Multi Rate)自适应话音与信道编解码技术有效解决,AMR支持全速率与半速率信道,现网具备该能力的手机已达7成以上,是该技术大力推广的时候。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

AMR音频编码器概述及文件格式分析
全称Adaptive Multi-Rate,自适应多速率编码,主要用于移动设备的音频,压缩比比较大,但相对其他的压缩格式质量比较差,由于多用于人声,通话,效果还是很不错的。

AMR-WB应用于EDGE、3G可充分体现其优势。

足够的传输带宽保证AMR-WB可采用从
6.6kb/s到23.85kb/s共九种编
一、分类
1. AMR: 又称为AMR-NB,相对于下面的WB而言,
语音带宽范围:300-3400Hz,8KHz抽样
2. AMR-WB:AMR Wide Band,
语音带宽范围: 50-7000Hz , 16KHz 抽样
“AMR-WB”全称为“Adaptive Multi-rate - Wideband”,即“自适应多速率宽带编码”,采样频
率为16kHz,是一种同时被国际标准化组织ITU-T和3GPP采用的宽带语音编码标准,也
称为G722.2标准。

AMR-WB提供语音带宽范围达到50~7000Hz,用户可主观感受到话
音比以前更加自然、舒适和易于分辨。

与之作比较,现在GSM用的EFR(Enhanced Full Rate,增强型全速率编码)采样频率为
8kHz,语音带宽为200~3400Hz。

AMR-WB应用于窄带GSM(全速信道16k,GMSK)的优势在于其可采用从6.6kb/s,
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固定电话。

二、编码方式
1. AMR-NB:
10 - - TDMA-EFR SID
11 - - PDC-EFR SID
12-14 - - For future use
15 - - No Data (No transmission/No reception) 2. AMR-WB:
Frame Type Index Mode
Indication
Mode
Request
Frame content (AMR-WB mode,
comfort noise, or other)
0 0 0 AMR-WB 6.60 kbit/s
1 1 1 AMR-WB 8.85 kbit/s
2 2 2 AMR-WB 12.65 kbit/s
3 3 3 AMR-WB 14.25 kbit/s
4 4 4 AMR-WB 15.8
5 kbit/s
5 5 5 AMR-WB 18.25 kbit/s
6 6 6 AMR-WB 19.85 kbit/s
7 7 7 AMR-WB 23.05 kbit/s
8 8 8 AMR-WB 23.85 kbit/s
9 - - AMR-WB SID (Comfort Noise Frame)
10-13 - - For future use
14 - - speech lost
15 - - No Data (No transmission/No
reception)
- -
二、AMR 帧格式:
AMR 有两种类型的帧格式:AMR IF1 和 AMR IF2
1. AMR IF1:
IF1 的帧格式如下图所示:
FrameType, Mode Indication, Mode Request 对应上面两个表格里的数。

从上面的表格里我们可以看出,这三个域的值是相同的。

所以在IF2中省略了Mode Indication, Mode Request 两个域。

Frame Quality Indicator: 0表示bad frame 或者corrupted frame; 1表示 good frame
每一帧的数据有分为三个部分:Class A/B/C
Class A:一帧中最敏感、最重要的数据。

一旦这一部份数据有损坏,整个帧就无法解码,就损坏了。

所以,一般在无线传输的时候要使用各种冗余的方式对这部分数据加以保护。

Class B:相对于Class A不那么重要的数据。

Class C:比Class B还不重要的数据。

2. AMR IF2:
IF2的帧格式如下图所示:
相对于IF1, IF2 省去了Frame Quality Indicator, Mode Indication, Mode Request 和CRC 校验。

但是增加了bit 填充。

因为AMR帧中数据的长度并不是字节(8bit)的整数倍,所以在有些帧的末尾需要增加bit填充,以使整个帧的长度达到字节的整数倍。

有关IF2帧中各个域的信息请参考下面的帧大小节的表格。

三、帧大小
1. AMR-NB
Frame Type Index Frame content Number of bits
in Frame Type
Number of Bits in
AMR Core Frame
Number of Bits in
Bit Stuffing
Number of
octets (N)
0AMR 4,75 4 95 5 13 1AMR 5,15 4 103 5 14 2AMR 5,90 4 118 6 16 3AMR 6,70 4 134 6 18 4AMR 7,40 4 148 0 19 5AMR 7,95 4 159 5 21 6AMR 10,2 4 204 0 26 7AMR 12,2 4 244 0 31 8AMR SID 4 39 5 6 9GSM-EFR SID 4 43 1 6
四、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 文件的存储格式(RFC 3267):
AMR IF1, IF2定义了 AMR的帧格式,用于无线传输用。

RFC 3267定义了把AMR数据存成文件的文件格式。

AMR的文件格式如下图1所示:
它包含一个文件头,然后就是一帧一帧的AMR数据了。

<!--[if !supportLists]-->1. <!--[endif]-->文件头格式:
AMR 文件支持单声道和多声道。

单声道和多声道的文件头是不同的。

单声道:
AMR-NB文件头: "#!AMR\n" (or 0x2321414d520a in hexadecimal)(引号内的部分)
AMR-WB 文件头:"#!AMR-WB\n" (or 0x2321414d522d57420a in hexadecimal).(引号内)多声道:
多声道的文件头包含一个magic number和32bit channle description域。

AMR-NB 的magic number:"#!AMR_MC1.0\n"
(or 0x2321414d525F4D43312E300a in hexadecimal).
AMR-WB的magic number:"#!AMR-WB_MC1.0\n"
(or 0x2321414d522d57425F4D43312E300a in hexadecimal).
32bit的channel description域的定义如下:
其中 reserved bits必须为0, CHAN:表示当前文件中含有几个声道。

帧头的格式:
帧头的格式如图2 所示,它占1个字节(8个bit)
P为填充为设置为0
FT为编码模式,即上面提到的16中编码模式。

Q为帧质量指示器,如果为0表明帧被损坏。

图3 列举了AMR-NB 5.9Kbit的一个帧的格式,
对于5.9kbit一帧的有118bit的数据,15*8=120=118+2, 所以在最后有2个bit的填充位。

相关文档
最新文档