CN102693728A - 一种手机跨平台语言传输解码方法 - Google Patents

一种手机跨平台语言传输解码方法 Download PDF

Info

Publication number
CN102693728A
CN102693728A CN201210186035XA CN201210186035A CN102693728A CN 102693728 A CN102693728 A CN 102693728A CN 201210186035X A CN201210186035X A CN 201210186035XA CN 201210186035 A CN201210186035 A CN 201210186035A CN 102693728 A CN102693728 A CN 102693728A
Authority
CN
China
Prior art keywords
frame
amr
audio file
file
audio
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201210186035XA
Other languages
English (en)
Inventor
方鸿灏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHENZHEN LUYOU NETWORK TECHNOLOGY CO LTD
Original Assignee
SHENZHEN LUYOU NETWORK TECHNOLOGY CO LTD
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHENZHEN LUYOU NETWORK TECHNOLOGY CO LTD filed Critical SHENZHEN LUYOU NETWORK TECHNOLOGY CO LTD
Priority to CN201210186035XA priority Critical patent/CN102693728A/zh
Publication of CN102693728A publication Critical patent/CN102693728A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明提供了一一种手机跨平台语言传输解码方法,ios客户端接收到Andorid客户端amr格式音频文件,并将amr格式音频文件转换成生成wav格式的音频文件,然后,在ios平台上通过播放器重放wav格式的音频文件。本发明中,ios客户端接收到Andorid客户端amr格式音频数据,调用解码方法,返回wav格式音频数据,实现ios客户端和Andriod客户端之间音频的传输。

Description

一种手机跨平台语言传输解码方法
技术领域
本发明涉及手机平台文件格式领域,特别涉及苹果的ios平台与Andriod平台之间进行语音传输的数据解码问题,具体的就是一种在ios平台上将amr格式的文件转换成wav格式的文件,供ios平台上的播放器重放。
背景技术
随着移动互联网的发展,人与人的距离越来越近,交流的方式不仅仅局限于文字和图片,直接通过声音传递信息的需求越来越普遍。目前,智能手机被ios和Andriod两大平台长期占据着,苹果iOS是由苹果公司开发的手持设备操作系统。iOS与苹果的Mac OS X操作系统一样,iOS已经占据了全球智能手机系统市场份额的30%,在美国的市场占有率为43%。Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设备。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2012年2月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为68.4%。Andriod的MediaRecorder只支持amr,wav,acc,其中amr,全称是:Adaptive Multi-Rate,自适应多速率,是一种音频编码文件格式,专用于有效地压缩语音频率。WAV为微软公司(Microsoft)开发的一种声音文件格式,它符合RIFF(Resource Interchange File Format)文件规范,用于保存Windows平台的音频信息资源,被Windows平台及其应用程序所广泛支持,该格式也支持MSADPCM,CCITT A LAW等多种压缩运算法,支持多种音频数字,取样频率和声道,标准格式化的WAV文件和CD格式一样,也是44.1K的取样频率,16位量化数字,因此在声音文件质量和CD相差无几! WAV打开工具是WINDOWS的媒体播放器。而ios4.3之后不再支持回放amr格式的音频,但wav格式的音频文件过大不便于网络传输,而amr由于压缩比比较大,虽然相对其他的压缩格式质量一般,但是音频文件很小,有利于传输,另外,amr格式的数据人声,通话,效果还是很不错的,所以主要用于移动设备的音频。目前,类似的应用主要是使用第三方的库或者是通过服务器端实现解码,前者的可扩展性差,后者无疑会增加服务器的工作量,影响响应速度。因此必须找到一个在客户端就能实现的短小精干的方式进行解码。
发明内容
为解决ios在ios4.3之后不再支持回放amr格式的音频所带来的不便。本发明提供一种手机跨平台语言传输解码方法,在ios平台客户端实现音频amr格式解码成wav格式。
本发明为了完成其技术目的所采用的技术方案是:一种手机跨平台语言传输解码方法, ios客户端接收到Andorid客户端amr格式音频文件,并将amr格式音频文件转换成生成wav格式的音频文件,然后,在ios平台上通过播放器重放wav格式的音频文件。
进一步的,上述的手机跨平台语言传输解码方法中:在ios平台客户端上将amr格式音频文件转换成wav格式的音频文件包括以下步骤:
A、读取amr格式音频文件中标准帧,根据标准帧帧关计算标准帧的大小;
B、创建并初始化一个wave格式的音频文件;
C、读取amr格式音频文件中其它帧;
D、判断这些帧是否为坏帧,如果是坏帧,则丢弃,否则转向步骤E;
E、读取该帧的音频数据块,并将该音频数据块转换成PCM数据,根据wave格式的音频文件的要求生成帧头,形成wave格式的音频文件的数据帧,依次写入到步骤B中创建的wave格式的音频文件中。
进一步的,上述的手机跨平台语言传输解码方法中:步骤D中坏帧的判断是根据被判断的帧是否与标准帧大小一致,如果不一致则为坏帧。
本发明中,ios客户端接收到Andorid客户端amr格式音频数据,调用解码方法,返回wav格式音频数据,实现ios客户端和Andriod客户端之间音频的传输。
下面通过结合具体实施例和附图对本发明进行进一步的说明。
附图说明
附图1是本发明流程图。
具体实施方式
如图1所示,本实施例是一种手机跨平台语言传输解码方法,解决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 0 - AMR 4.75 - Encodes at 4.75kbit/s
  Mode 1 - AMR 5.15 - Encodes at 5.15kbit/s
  Mode 2 - AMR 5.9 - Encodes at 5.9kbit/s
  Mode 3 - AMR 6.7 - Encodes at 6.7kbit/s
  Mode 4 - AMR 7.4 - Encodes at 7.4kbit/s
  Mode 5 - AMR 7.95 - Encodes at 7.95kbit/s
  Mode 6 - AMR 10.2 - Encodes at 10.2kbit/s
  Mode 7 - AMR 12.2 - Encodes at 12.2kbit/s
  8~15位一些 noise frames 和保留位的定义。
每种格式对应的帧的大小如下
  CMR Mode Frame size (bytes)
  0 AMR4.75   13
  1 AMR 5.15   14
  2 AMR 5.9   16
  3 AMR 6.7   18
  4 AMR 7.4   20
  5 AMR 7.95   21
  6 AMR 10.2   27
  7 AMR12.2   32
WAVE文件数据块包含以脉冲编码调制(PCM)格式表示的样本。WAVE文件是由样本组织而成的。在单声道WAVE文件中,声道0代表左声道,声道1代表右声道。在多声道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。
------------------------------------------------
  | RIFF WAVE Chunk |
  | ID = 'RIFF' |
  | RiffType = 'WAVE' |
------------------------------------------------
  | Format Chunk |
  | ID = 'fmt ' |
------------------------------------------------
| Fact Chunk(optional) |
| ID = 'fact' |
------------------------------------------------
| Data Chunk |
| ID = 'data' |
------------------------------------------------
 Data Chunk是真正保存wav数据的地方,以'data'作为该Chunk的标示。然后是数据的大小。紧接着就是wav数据。根据Format Chunk中的声道数以及采样bit数,wav数据的bit位置可以分成以下几种形式:
对于8位单声道,每个样本数据由8位(bit)表示;
对于8位立体声,每个声道的数据由一个8位(bit)数据表示,且第一个8位(bit)数据表示0声道(左)数据,紧随其后的8位(bit)数据表示1声道(右)数据;
对于16位单声道,每个样本数据由16位(bit)表示;其中低字节存放高位,高字节存放低位
对于16位立体声,每个声道的数据由一个16位(bit)数据表示,且第一个16位(bit)数据表示0声道(左)数据,紧随其后的16位(bit)数据表示1声道(右)数据。
---------------------------------------------------------------------
| 单声道 | 取样1 | 取样2 | 取样3 | 取样4 |
| |--------------------------------------------------------
| 8bit量化 | 声道0 | 声道0 | 声道0 | 声道0 |
---------------------------------------------------------------------
| 双声道 | 取样1 | 取样2 |
| |--------------------------------------------------------
| 8bit量化 | 声道0(左) | 声道1(右) | 声道0(左) | 声道1(右) 
---------------------------------------------------------------------
| | 取样1 | 取样2 |
| 单声道 |--------------------------------------------------------
| 16bit量化 | 声道0 | 声道0 | 声道0 | 声道0 |
| | (低位字节) | (高位字节) | (低位字节) | (高位字节) |
---------------------------------------------------------------------
| | 取样1 |
| 双声道 |--------------------------------------------------------
| 16bit量化 | 声道0(左) | 声道0(左) | 声道1(右) | 声道1(右)
| | (低位字节) | (高位字节) | (低位字节) | (高位字节) |
---------------------------------------------------------------------
这里我们主要讨论如何将amr音频进行成一个wave 8khz 16位单声道文件。
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音频格式转化成成一个wave文件时,我们先要判断AMR文件的模式确定速率,再根据相应模式下的帧的大小确定一帧数据的大小,再根据帧头个数确定整个音频数据的大小,音频数据的大小就是wava文件数据块大小,根据wava数据块的格式将音频数据写入wava数据块,加上文件头RIFF得到wav格式的数据。

Claims (3)

1.一种手机跨平台语言传输解码方法,其特征在于:ios客户端接收到Andorid客户端amr格式音频文件,并将amr格式音频文件转换成生成wav格式的音频文件,然后,在ios平台上通过播放器重放wav格式的音频文件。
2.根据权利要求1所述的手机跨平台语言传输解码方法,其特征在于:在ios平台客户端上将amr格式音频文件转换成wav格式的音频文件包括以下步骤:
A、读取amr格式音频文件中标准帧,根据标准帧帧头计算标准帧的大小;
B、创建并初始化一个wave格式的音频文件;
C、读取amr格式音频文件中其它帧;
D、判断这些帧是否为坏帧,如果是坏帧,则丢弃,否则转向步骤E;
E、读取该帧的音频数据块,并将该音频数据块转换成PCM数据,根据wave格式的音频文件的要求生成帧头,形成wave格式的音频文件的数据帧,依次写入到步骤B中创建的wave格式的音频文件中。
3.根据权利要求2所述的手机跨平台语言传输解码方法,其特征在于:步骤D中坏帧的判断是根据被判断的帧是否与标准帧大小一致,如果不一致则为坏帧。
CN201210186035XA 2012-06-07 2012-06-07 一种手机跨平台语言传输解码方法 Pending CN102693728A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210186035XA CN102693728A (zh) 2012-06-07 2012-06-07 一种手机跨平台语言传输解码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210186035XA CN102693728A (zh) 2012-06-07 2012-06-07 一种手机跨平台语言传输解码方法

Publications (1)

Publication Number Publication Date
CN102693728A true CN102693728A (zh) 2012-09-26

Family

ID=46859112

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210186035XA Pending CN102693728A (zh) 2012-06-07 2012-06-07 一种手机跨平台语言传输解码方法

Country Status (1)

Country Link
CN (1) CN102693728A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102857833A (zh) * 2012-10-15 2013-01-02 深圳市佳创软件有限公司 一种适配android stagefright 多媒体框架的音频解码系统及方法
CN105931655A (zh) * 2016-04-22 2016-09-07 浙江工业大学 一种苹果mov格式音频转成windows音频的方法
CN107370717A (zh) * 2016-05-13 2017-11-21 上海神计信息系统工程有限公司 一种跨平台音频传输方法
CN107852357A (zh) * 2015-12-14 2018-03-27 松下电器(美国)知识产权公司 安全装置、网络系统以及攻击检测方法
CN109410967A (zh) * 2017-08-15 2019-03-01 武汉斗鱼网络科技有限公司 iOS系统向安卓系统传输音频数据的方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101232542A (zh) * 2007-01-23 2008-07-30 乐金电子(中国)研究开发中心有限公司 移动终端实现语音备忘功能的方法及应用其的移动终端
CN101312460A (zh) * 2007-05-25 2008-11-26 上海美通无线网络信息有限公司 将多种格式的媒体文件转换成目标设备支持的媒体文件的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101232542A (zh) * 2007-01-23 2008-07-30 乐金电子(中国)研究开发中心有限公司 移动终端实现语音备忘功能的方法及应用其的移动终端
CN101312460A (zh) * 2007-05-25 2008-11-26 上海美通无线网络信息有限公司 将多种格式的媒体文件转换成目标设备支持的媒体文件的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JINLKING: "amr与wave编解码", 《CSDN博客_HTTP://BLOG.CSDNNET/JINLKING/ARTICLE/DETAILS/4256311》, 10 June 2009 (2009-06-10), pages 1 *
SHOUJIFENG: "IOS与Android语音互通方案", 《新浪博客_HTTP://BLOG.SINA.COM.CN/U/1737391584》, 9 February 2012 (2012-02-09), pages 1 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102857833A (zh) * 2012-10-15 2013-01-02 深圳市佳创软件有限公司 一种适配android stagefright 多媒体框架的音频解码系统及方法
CN102857833B (zh) * 2012-10-15 2015-02-18 深圳市佳创软件有限公司 一种适配android stagefright 多媒体框架的音频解码系统及方法
CN107852357A (zh) * 2015-12-14 2018-03-27 松下电器(美国)知识产权公司 安全装置、网络系统以及攻击检测方法
CN107852357B (zh) * 2015-12-14 2020-11-20 松下电器(美国)知识产权公司 安全装置、网络系统以及攻击检测方法
CN105931655A (zh) * 2016-04-22 2016-09-07 浙江工业大学 一种苹果mov格式音频转成windows音频的方法
CN105931655B (zh) * 2016-04-22 2018-10-23 浙江工业大学 一种苹果mov格式音频转成windows音频的方法
CN107370717A (zh) * 2016-05-13 2017-11-21 上海神计信息系统工程有限公司 一种跨平台音频传输方法
CN109410967A (zh) * 2017-08-15 2019-03-01 武汉斗鱼网络科技有限公司 iOS系统向安卓系统传输音频数据的方法及系统
CN109410967B (zh) * 2017-08-15 2022-03-25 武汉斗鱼网络科技有限公司 iOS系统向安卓系统传输音频数据的方法及系统

Similar Documents

Publication Publication Date Title
FI119533B (fi) Audiosignaalien koodaus
JP4724452B2 (ja) デジタルメディア汎用基本ストリーム
CN103258541B (zh) 音频解码方法
CN101208740B (zh) 背景噪声信息的非连续传输和准确再现的方法
CN103109321B (zh) 估计音调滞后
JP3354863B2 (ja) ビット率の調節可能なオーディオデータ符号化/復号化方法及び装置
JP5174027B2 (ja) ミックス信号処理装置及びミックス信号処理方法
TWI459377B (zh) 用於編碼及解碼一暫態訊框之電子器件、裝置、方法及電腦程式產品
KR101548846B1 (ko) 워터마킹된 신호의 적응적 인코딩 및 디코딩을 위한 디바이스
US20080281602A1 (en) Coding Reverberant Sound Signals
US20030215013A1 (en) Audio encoder with adaptive short window grouping
CN102693728A (zh) 一种手机跨平台语言传输解码方法
KR101590239B1 (ko) 워터마킹된 신호를 인코딩 및 디코딩하는 디바이스들
CN102385864B (zh) 一种音频数据解码方法、装置及音频播放器
CN105407225A (zh) 一种数据传输方法及蓝牙设备
CN105247610B (zh) 编码装置和方法、解码装置和方法以及记录介质
CN105745703A (zh) 信号编码方法和装置以及信号解码方法和装置
BR112016022764B1 (pt) Aparelho e métodos de comutação de tecnologias de codificação em um dispositivo
ES2898281T3 (es) Control de ancho de banda en codificadores y/o decodificadores
CN101645967A (zh) 一种以自定义格式处理多媒体数据的移动终端及实现方法
CN115223577A (zh) 音频处理方法、芯片、装置、设备和计算机可读存储介质
CN115206352A (zh) 音频处理方法、装置、芯片、电子设备及存储介质
ES2963219T3 (es) Método y aparato de codificación de señales estéreo, método y aparato de decodificación de señales estéreo
JP2006106475A (ja) 圧縮オーディオデータ処理方法
Mohdar et al. Audio compression testing tool for multimedia applications

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20120926