铜陵58同城做网站,线上营销的方式,物流行业网站建设,要建设一个网站需要什么目录1. 概述2. AMR编码方式3. AMR文件结构示范图4. AMR帧头格式分析5. 异常帧分析6. AMR帧读取算法7. 参考资料1. 概述 现在很多智能手机都支持多媒体功能#xff0c;特别是音频和视频播放功能#xff0c;而AMR文件格式是手机端普遍支持的音频文件… 目录 1. 概述 2. AMR编码方式 3. AMR文件结构示范图 4. AMR帧头格式分析 5. 异常帧分析 6. AMR帧读取算法 7. 参考资料 1. 概述 现在很多智能手机都支持多媒体功能特别是音频和视频播放功能而AMR文件格式是手机端普遍支持的音频文件格式。 AMR全称是Adaptive Multi-Rate自适应多速率是一种音频编码文件格式专用于有效地压缩语音频率。 AMR音频主要用于移动设备的音频压缩压缩比非常高但是音质比较差主要用于语音类的音频压缩不适合对音质要求较高的音乐类音频的压缩。 下面是两个AMR示范文件一个是新闻类一个是歌曲可以听出来音乐类压缩成AMR格式后音质大大降低。 编号 文件名 文件长度 时长 1 h.amr 歌曲 409KB 04:21 2 zbc1217.amr 242KB 02:36 2. AMR编码方式 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播放器最佳设定值 112kbpsFM调频立体声广播 128kbps磁带手机立体声MP3播放器最佳设定值、低档MP3播放器最佳设定值 160kbpsHIFI高保真中高档MP3播放器最佳设定值 192kbpsCD高档MP3播放器最佳设定值 256kbpsStudio音乐工作室音乐发烧友适用 l 音频数据帧大小的计算 amr 一帧对应20ms那么一秒有50帧的音频数据。由于比特率不同每帧的数据大小也不同。 如果比特率是12.2kbs那么每秒采样的音频数据位数为 12200 / 50 244bit 30.5byte取整为31字节。 取整要四舍五入。 再加上一个字节的帧头这样数据帧的大小为32字节。 3. AMR文件结构示范图 下面是一个AMR文件示范 从图中可以看出所有AMR文件头标志是6个字节。最后一个字节是换行符“/n” 后面就紧跟的是音频帧。这个文件是每帧32字节。 文件头 语音帧 1 语音帧 2 … 4. AMR帧头格式分析 AMR语音帧格式为帧头和语音数据组成。 帧头 语音数据 AMR语音帧头占1个字节如下图所示 0 1 2 3 4 5 6 7 P FT Q P P 0 0 0 0 其中 P 0 FTFrame Type对应不同编码模式。参见“2. AMR编码方式”中表格中的说明 Q帧质量指示器0表示为坏帧。 后面的P补0。 5. 异常帧分析 下图是一个出现异常帧的示例zbc1217.amr 从上图可以看见本amr音频帧头都是0x3C但是在0x000091e6处帧头字节为0x44。与0x3C不一致。而在0x00009243处才恢复到0x3C。 对异常帧的简单处理办法是遇到异常帧就跳过异常帧。后面的读帧算法有描述。 6. AMR帧读取算法 因为可能存在异常帧所以不一定所有的语音帧大小一致对于跟正常帧大小不一致的或者帧头跟正常帧头不一致的就不交给解码器直接抛弃该坏帧。 读取帧的算法用C语言来编写readAMRFrame.cJAVA可以用类似的方法。 下面是算法描述流程图。 7. 参考资料 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 l 转载于:https://www.cnblogs.com/songtzu/archive/2013/03/15/2961519.html