android amr编解码

转载 2012年03月23日 14:00:03
关于android中的语音压缩编码,今天算是好好的研究了一下,有了小小的心得:

首先关于采集到得声音源的格式是PCM-16bit的格式,什么是PCM格式,大家看下面的这篇文章:

http://blog.csdn.net/tkboy/archive/2009/12/19/5038947.aspx

PCM就是无压缩的声音源,PCM信号是由[1]、[0]等符号构成的数字信号,android设备采取的声音源也就是这种格式,我们也正是对这种格式进行的压缩编码。

编码库不是我自己写的,是用bambuser中提取出来的,测试发现,这个库还真是他妈的强大,强大到无以复加的地步,每次编码的时候是这样的:

read= mAudioRecorder.read(arrayOfByte1,0,320);
encodeLength = mAmrEncoder.encode(arrayOfByte1,0,read,arrayOfByte2,AmrEncoder.MR475);

为什么是320呢?

请教了一位做SIP的朋友,是这样说的:

每320个字节或他的倍数的字节打包一次

可能这个就是原因吧,但是其实我对这个还是不是很理解,然后我们技术总监是这样说的:

传统是MS的,语音帧的最小单位是20m,每20ms对应的数据就是320字节,当然这是对应16bit,8Khz.

怎么计算出来的,有高手的指点下.

好,给大家说下编码后的情况,加深大家对这方面的了解:

这320字节的PCM-16语音经过编码后,编程的长度就是13个字节,也就是amr nb的语音格式,如果我们要通过AudioTrack来播放的话,就得用AmrDecoder来进行解码,将这13个字节还原成为320字节的PCM来进行播放。

AMR目前来说效率是比较高的,压缩比为:320:13 ,320字节压缩成为13字节

GSM也可以考虑: 320:33,320字节给你压缩成33字节

暂时就知道这么多了,后面学到了新东东再补充


附注:

320个字节是这么算出来的:
8Khz=8000个采样/秒
那么20毫秒就是160个采样,又因为每个采样16bit=2byte,所以160个采样就是320字节。


android pcm转amr格式

引言 项目中需要将科大讯飞生成的录音传递到服务器上,因为amr格式的文件大小最小,而讯飞生成的文件是pcm格式的,所以需要将pcm转换成amr格式。在网上找了半天资料,发现android系统的源...
  • hyb4600
  • hyb4600
  • 2015年09月25日 17:00
  • 2641

android录音将pcm转换为amr

  • 2015年07月16日 14:40
  • 161KB
  • 下载

Android PCM音频的采集和编码成AAC

Android原生的视频录制是不能做到分段不漏秒的,所以需要定制一套录制系统。 该系统的核心步骤如下: (A)同步采集视频帧数据(YV12)和音频帧数据(PCM); (B)通过硬件编码器对所述视...
  • zhoumushui
  • zhoumushui
  • 2016年07月12日 09:51
  • 2706

android手机pcm转amr格式示例代码工程

  • 2015年09月11日 10:21
  • 161KB
  • 下载

Android录音、WAV、AMR

简单介绍Android提供了两个API用于实现录音功能:android.media.AudioRecord、android.media.MediaRecorder。AudioRecord录音主要是实现...
  • wu_liao_de_ren_sheng
  • wu_liao_de_ren_sheng
  • 2016年06月04日 19:14
  • 3123

Android音频实时传输与播放:AMR硬编码与硬解码 .

转载请注明出处! 原文链接:http://blog.csdn.net/zgyulongfei/article/details/7753163 在Android中我所知道的音频编解码有两种方...
  • hellofeiya
  • hellofeiya
  • 2013年04月28日 14:30
  • 7236

PCM转AMR文件

  • 2014年04月08日 14:26
  • 269KB
  • 下载

android 两种调用系统资源实现录音

 在移动APP开发中,每逢APP应用设计到多媒体开发的时候,都会让很多的程序员头疼不已,而且项目的开发进度会放慢、项目 的难度也会加大蛮多,同时APP的测试也会增加。Android中的多媒体开...
  • qq_26336495
  • qq_26336495
  • 2015年05月05日 16:33
  • 2210

Android音频实时传输与播放(三):AMR硬编码与硬解码

转载请注明出处! 原文链接:http://blog.csdn.net/zgyulongfei/article/details/7753163 在Android中我所知道的音频编解码有两种方式: (...
  • zgyulongfei
  • zgyulongfei
  • 2012年07月16日 22:17
  • 61264

Android AMR格式录音和播放,仿微信

首先申请应用权限 录音播放实现代码 public class AudioRecordTest extends Activity { private static final S...
  • Aaren_Jiang
  • Aaren_Jiang
  • 2013年12月12日 10:01
  • 4655
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android amr编解码
举报原因:
原因补充:

(最多只允许输入30个字)