专利名称:一种手机跨平台语言传输解码方法
技术领域:
本发明涉及手机平台文件格式领域,特别涉及苹果的ios平台与Andriod平台之间进行语音传输的数据解码问题,具体的就是ー种在ios平台上将amr格式的文件转换成wav格式的文件,供ios平台上的播放器重放。
背景技术:
随着移动互联网的发展,人与人的距离越来越近,交流的方式不仅仅局限于文字和图片,直接通过声音传递信息的需求越来越普遍。目前,智能手机被ios和Andriod两大平台长期占据着,苹果iOS是由苹果公司开发的手持设备操作系统。iOS与苹果的Mac
OSX操作系统一祥,iOS已经占据了全球智能手机系统市场份额的30%,在美国的市场占有率为43%。Android是ー种以Linux为基础的开放源代码操作系统,主要使用于便携设备。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。2012年2月数据,Android占据全球智能手机操作系统市场52. 5%的份额,中国市场占有率为 68. 4%。Andriod 的 MediaRecorder 只支持 amr, wav, acc,其中 amr,全称是AdaptiveMulti-Rate,自适应多速率,是ー种音频编码文件格式,专用于有效地压缩语音频率。WAV为微软公司(Microsoft)开发的一种声音文件格式,它符合RIFF (Resource InterchangeFile Format)文件规范,用于保存Windows平台的音频信息资源,被Windows平台及其应用程序所广泛支持,该格式也支持MSADPCM,CCITT A LAW等多种压缩运算法,支持多种音频数字,取样频率和声道,标准格式化的WAV文件和⑶格式一祥,也是44. IK的取样频率,16位量化数字,因此在声音文件质量和⑶相差无几! WAV打开工具是WINDOWS的媒体播放器。而ios4. 3之后不再支持回放amr格式的音频,但wav格式的音频文件过大不便于网络传输,而amr由于压缩比比较大,虽然相对其他的压缩格式质量一般,但是音频文件很小,有利于传输,另外,amr格式的数据人声,通话,效果还是很不错的,所以主要用于移动设备的音频。目前,类似的应用主要是使用第三方的库或者是通过服务器端实现解码,前者的可扩展性差,后者无疑会増加服务器的工作量,影响响应速度。因此必须找到ー个在客户端就能实现的短小精干的方式进行解码。
发明内容
为解决ios在ios4. 3之后不再支持回放amr格式的音频所带来的不便。本发明提供一种手机跨平台语言传输解码方法,在ios平台客户端实现音频amr格式解码成wav格式。
本发明为了完成其技术目的所采用的技术方案是一种手机跨平台语言传输解码方法,ios客户端接收到Andorid客户端amr格式音频文件,并将amr格式音频文件转换成生成wav格式的音频文件,然后,在ios平台上通过播放器重放wav格式的音频文件。进ー步的,上述的手机跨平台语言传输解码方法中在ios平台客户端上将amr格式音频文件转换成■格式的音频文件包括以下步骤A、读取amr格式音频文件中标准帧,根据标准帧帧关计算标准帧的大小;
B、创建并初始化ー个wave格式的音频文件;
C、读取amr格式音频文件中其它帧;
D、判断这些帧是否为坏帧,如果是坏帧,则丢弃,否则转向步骤E;
E、读取该帧的音频数据块,并将该音频数据块转换成PCM数据,根据wave格式的音频文件的要求生成帧头,形成wave格式的音频文件的数据帧,依次写入到步骤B中创建的wave格式的音频文件中。进ー步的,上述的手机跨平台语言传输解码方法中步骤D中坏帧的判断是根据被判断的帧是否与标准帧大小一致,如果不一致则为坏帧。
本发明中,ios客户端接收到Andorid客户端amr格式音频数据,调用解码方法,返回wav格式音频数据,实现ios客户端和Andriod客户端之间音频的传输。下面通过结合具体实施例和附图对本发明进行进一步的说明。
附图I是本发明流程图。
具体实施例方式如图I所示,本实施例是ー种手机跨平台语言传输解码方法,解决ios平台的客户端接收由Andorid客户端amr格式音频文件,并进行重放的任务。在ios客户端接收到Andorid客户端amr格式音频文件,并将amr格式音频文件转换成生成wav格式的音频文件,然后,在ios平台上通过播放器重放wav格式的音频文件,包括以下步骤
A、读取amr格式音频文件中标准帧,根据标准帧帧头计算标准帧的大小;
B、创建并初始化ー个wave格式的音频文件;
C、读取amr格式音频文件中其它帧;
D、判断这些帧是否与标准帧大小一致,如果不一致则为坏帧,则丢弃,否则转向步骤
E ;
E、读取该帧的音频数据块,并将该音频数据块转换成PCM数据,根据wave格式的音频文件的要求生成帧头,形成wave格式的音频文件的数据帧,依次写入到步骤B中创建的wave格式的音频文件中。本实施例首先通过帧读取算法,读取amr数据,因为可能存在异常帧,所以不一定所有的语音帧大小一致,对于跟正常帧大小不一致的,或者帧头跟正常帧头不一致的,就不交给解码器,直接抛弃该坏巾贞。交给解码器后先创建并初始化ー个wave文件,然后读取amr数据的第一帧作为參考帧,解码ー个amr音频帧成为PCM数据,逐帧解码amr并写到wave文件里面,最后重写wave文件头,打包成为wav格式的音频数据。本实施例是根据AMR数据与wav格式的音频数据的各自特点而将AMR数据转换成wav格式的音频数据。AMR全称Adaptive Multi-Rate,自适应多速率编码,主要用于移动设备的音频,压缩比比较大,但相对其他的压缩格式质量比较差,由于多用于人声,通话,效果还是很不错的。AMR:又称为AMR-NB,相对于WB而言,语音带宽范围300 — 3400Hz, 8KHz抽样。AMR有以下一些编码方式
Mode O - AMR 4.75 - Encodes at 4. 75kbit/sMode I - AMR 5. 15 - Encodes at 5.15kbit/sMode 2 - AMR 5. 9 - Encodes at 5. 9kbit/sMode 3 - AMR 6. 7 - Encodes at 6.7kbit/sMode 4 - AMR 7. 4 - Encodes at 7. 4kbit/s Mode 5 - AMR 7. 95 - Encodes at 7. 95kbit/sMode 6 - AMR 10. 2 - Encodes at 10. 2kbit/sMode 7 - AMR 12.2 - Encodes at 12. 2kbit/s8 15位一些noise frames和保留位的定义。每种格式对应的帧的大小如下CMR Mode Frame size (bytes)
0AMR4. 75 13
1AMR 5. 15 14
2AMR 5. 9 16
3AMR 6. 7 18
4AMR 7. 4 20
5AMR 7. 95 21
6AMR 10. 2 27
7AMRl2. 2 32
WAVE文件数据块包含以脉冲编码调制(PCM)格式表示的样本。WAVE文件是由样本组织而成的。在单声道WAVE文件中,声道O代表左声道,声道I代表右声道。在多声道WAVE文件中,样本是交替出现的。WAVE文件的每个样本值包含在ー个整数i中,i的长度为容纳指定样本长度所需的最小字节数。首先存储低有效字节,表示样本幅度的位放在i的高有效位上,剩下的位置为0,这样8位和16位的PCM波形样本的数据格式。WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。RIFF 是英文 Resource Interchange File Format 的缩写,姆个 WAVE 文件的头四个字节便是“RIFF”。WAVE文件是由若干个Chunk组成的。按照在文件中的出现位置包括RIFF WAVE Chunk, Format Chunk, Fact Chunk (可选),Data Chunk。
权利要求
1.一种手机跨平台语言传输解码方法,其特征在于ios客户端接收到Andorid客户端amr格式音频文件,并将amr格式音频文件转换成生成wav格式的音频文件,然后,在ios平台上通过播放器重放wav格式的音频文件。
2.根据权利要求I所述的手机跨平台语言传输解码方法,其特征在于在ios平台客户端上将amr格式音频文件转换成wav格式的音频文件包括以下步骤 A、读取amr格式音频文件中标准帧,根据标准帧帧头计算标准帧的大小; B、创建并初始化ー个wave格式的音频文件; C、读取amr格式音频文件中其它帧; D、判断这些帧是否为坏帧,如果是坏帧,则丢弃,否则转向步骤E; E、读取该帧的音频数据块,并将该音频数据块转换成PCM数据,根据wave格式的音频文件的要求生成帧头,形成wave格式的音频文件的数据帧,依次写入到步骤B中创建的wave格式的音频文件中。
3.根据权利要求2所述的手机跨平台语言传输解码方法,其特征在于步骤D中坏帧的判断是根据被判断的帧是否与标准帧大小一致,如果不一致则为坏帧。
全文摘要
本发明提供了一一种手机跨平台语言传输解码方法,ios客户端接收到Andorid客户端amr格式音频文件,并将amr格式音频文件转换成生成wav格式的音频文件,然后,在ios平台上通过播放器重放wav格式的音频文件。本发明中,ios客户端接收到Andorid客户端amr格式音频数据,调用解码方法,返回wav格式音频数据,实现ios客户端和Andriod客户端之间音频的传输。
文档编号H04M1/725GK102693728SQ20121018603
公开日2012年9月26日 申请日期2012年6月7日 优先权日2012年6月7日
发明者方鸿灏 申请人:深圳市路友网络科技有限公司