`

手机录音-amr

 
阅读更多

 

 

Android的音频采集

主要使用AudioTrack和AudioRecord两个类进行操作


可参考webrtc源码:\ver789\src\modules\audio_device\main\source\android\org\webrtc\voiceengine\AudioDeviceAndroid.java


参考百度资料

http://wenku.baidu.com/view/da8fc2fb0242a8956bece4a0.html

 

转: ios与android语音互通方案,类微信

AudioRecord和AudioTrack类的使用(音频录制与播放)  

什么是音频的采样率和采样大小  

android中AudioRecord采集音频的参数说明

会说话的TOM猫的原理是什么

作者: Android开发网原创 时间: 2011-08-04

   很多网友对会说话的TOM猫的原理比较感兴趣,这里Android123就实现做一个简单的分析:

  1. 音频采集

   这点主要是通过Android设备的麦克风实时采集音频,由于Android平台的MediaRecorder类录制音频到文件,虽然可以通过空设备回调获得实时的音频流,不过为了降低开发者的难度,Android开发网推荐使用正统的AudioRecord和AudioTrack,首先我们仍然需要加入android.permission.RECORD_AUDIO这个权限。

  android.media.AudioRecord类的read方法主要有3种重载形式:

int  read(short[] audioData, int offsetInShorts, int sizeInShorts)   //short在java中占用两个字节
int  read(byte[] audioData, int offsetInBytes, int sizeInBytes)  //byte在java中占用一个字节
int  read(ByteBuffer audioBuffer, int sizeInBytes)  //基于NIO的ByteBuffer类型

  我们可以看到从麦克风中获取的音频无需经过文件系统直接通过AudioRecord类的read方法读入到我们预定的缓冲区中,这里需要注意的是采样率的大小必须有足够的缓冲区空间处理、

  2. 变声处理

  这点需要一些基本的音频处理方式,比如移调、变速,Android开发网推荐大家参考Adobe Audition的早期Cool Editi泄露的代码,当然音频处理算法比较多,大家可以自己实现。

  3. 播放原始音频流

  同样,处理完后考虑到效率我们仍然直接从内存流中播放,最简单的就是AudioTrack类,通过android.media.AudioTrack类的write方法,让Android声卡播放原始音频流。两种重载方法如下

int  write(short[] audioData, int offsetInShorts, int sizeInShorts)
int  write(byte[] audioData, int offsetInBytes, int sizeInBytes) 

 

 

Android本身的MediaRecorder肯定是不行的,只支持amr,wav,acc,如果要做到Android,Iphone,pc通用的话,这些格式是行不通的只能找第三方编解码库

talkbox Android版用的是ilbc 的第三方编解码库,在iPhone上用的是caf

  微信  Android版估计是amr估计转码的是交给腾讯强大的服务器了。

  米聊  Android版和Iphone版用的都是speex

  搜了下,目前支持的开源第三方库也就只有 ilbc和speex了

http://www.speex.org/downloads/      speex的官网

  http://www.badlogicgames.com/wordpress/?p=1726&utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+PlanetAndroidCom+%28Planet+Android%29      在Android上编译的方法

  http://bbs.rosoo.net/thread-5956-1-1.html    speex音频编解码的示例

http://code.google.com/p/android-recorder/      源码,不过它又转了一次码,弄成flv了。

 

----------------------------------

 

避免链接失效,拷贝一份:

 --------------------------------------------------------------

Ios实现amr编解码

Feb 5th , 2012

介绍

学习ios第一个练手功能就是给已有产品加上语音通信功能,能够互通ios与android。这里给出自己的一些心得,希望能给他人一些参考。

资料搜集与参考

  1. 类似产品使用的技术

    • talkbox Android版用的是ilbc的第三方编解码库,在iPhone上用的是caf
    • 微信   Android版估计是amr估计转码的是交给腾讯强大的服务器了。
    • 米聊   Android版和Iphone版用的都是speex

    目前支持的开源第三方库也就只有 ilbc和speex了

  2. 考虑采用的方案

    speex需要Android和ios都进入转码,工作量太大,不采用。剩下的方案就是在amr和ilbc上选择了,android支持amr,低版本不支持ilbc, ios高版本(4.3)只支持ilbc,不能支持amr。刚开始的测试方案使用的是android将语音转ilbc, 由于我对于android开发不是太熟悉,在同事的帮助下一直没有转换成功,现在想想可能是处理问题,如果能转换成或,这种方案应该是最方便的。

ios实现amr编解码

录制

  1. 将语音录成原始pcm码

    注意这里,虽然录制是pcm码,但出来的文件ios依然会封装一层,将其包装成pcf格式。所以就有了第二步。

  2. 将pcf中的pcm码取出来

  3. 使用libopencore库将其编成amr格式,这时可以发送给android端播放了。

播放

  1. 将android版本发送过来的amr解码出来

  2. 播放原始pcm即可

代码文件都放在github上了,有需要的可以参考一下。 https://github.com/hhuai/ios_util

分享到:
评论
7 楼 喧嚣求静 2015-05-17  
sunshaoqun 写道
二次元 写道
希望能分享下.so文件编译源码!

求.so源码。。。


以上统一回复,此篇文章是我之前学习时转载的,我也没源码了,抱歉,最好找原作者
6 楼 sunshaoqun 2015-03-09  
二次元 写道
希望能分享下.so文件编译源码!

求.so源码。。。
5 楼 blocker205 2014-01-07  
哥们,用你的demo。android 端录制的amr格式这边播放不了。这是为什么呢?
4 楼 Qi_Wenbin 2013-04-15  
3 楼 二次元 2013-03-14  
希望能分享下.so文件编译源码!

相关推荐

    libopencore-amrnb.a libopencore-armwb.a 支持arm64

    在Android系统中,录音通常涉及使用MediaRecorder类或其他音频API来捕获音频数据,而这些底层的库文件则负责实际的编码过程,将原始的音频信号转化为AMR-NB或AMR-WB格式,以便存储和传输。 对于开发者来说,了解...

    录音文件amr转MP3

    可以将录音文件amr转为MP3方便使用,官网【http://www.sauronsoftware.it/projects/jave/jave-1.0.2.zip?PHPSESSID=rs8aq1fber3ivi1f1ff70oht15】,但是下载非常慢,没有资源分的私我就好...

    AMR播放器(AMRPlayer)v1.3免费绿色版手机录音Amr格式转换为Mp3格式的工具

    免费AMR转文件软件–AMR Player,不仅可以播放使用手机所录制的*.amr音乐文件,最重要的是它能够将AMR转成MP3、WAV档,或者是将MP3、WAV档转成AMR檔。 AMR Player转出来的文件是低音质,所以文件会稍微小一点点。AMR...

    amrplayer手机录音播放器

    AMRPlayer是一款专为处理AMR格式音频文件而设计的手机录音播放器。AMR全称为Adaptive Multi-Rate Codec,是一种广泛应用于移动通信设备上的音频编码标准,尤其在语音通话记录和手机录音中应用广泛。本文将深入探讨...

    AMR_NB_COVER_amr-nb_

    在实际应用中,AMR_NB编码技术不仅局限于手机通话,也常用于VoIP(Voice over IP)服务、录音应用以及需要高效语音压缩的其他场景。AMR_NB编码文件通常以".amr"为扩展名,可以通过特定的软件或API进行编码、解码和...

    录音amr格式播放js.zip

    AMR(Adaptive Multi-Rate)是一种音频编码格式,常用于语音通信,因其高效压缩和良好的语音质量而被广泛应用于手机录音、VoIP等场景。本压缩包包含的资源是针对AMR格式录音的JavaScript播放解决方案,适用于网页...

    一款手机录音软件!可以在NOKIA手机上应用

    首先,这款手机录音软件是一款专为NOKIA手机设计的应用程序,它可能支持各种型号的NOKIA设备,包括Symbian操作系统或其他早期的诺基亚智能手机平台。NOKIA手机以其坚固耐用和广泛的用户基础而闻名,因此,针对这一...

    amr-if2格式说明

    在实际应用中,AMR文件常用于手机之间的语音通话,以及VoIP服务。它们可以通过电子邮件、短信或彩信进行发送,并在兼容的设备上播放。由于AMR格式的压缩效率高,它也常用于电话录音和语音识别软件中。 理解AMR IF2...

    安卓手机录音系统源码

    "安卓手机录音系统源码" 提供了一个完整的解决方案,让开发者能够深入理解录音机制并进行定制化开发。源码由奥创软件研究院提供,旨在促进学习和交流,但不应用于商业目的。 首先,我们需要了解安卓录音的基本原理...

    把手机AMR声音转换为WAV格式

    在IT领域,音频格式转换是一项常见的任务,尤其对于...总之,AMR到WAV的转换是一个实用的技巧,尤其对于需要在电脑上编辑或播放手机录音的用户。了解这个过程并掌握合适的工具,能帮助你更好地管理和利用你的音频资源。

    Android调用手机系统自带录音功能实现语音录制与播放

    在手机自带录音场景中,通常选择`MediaRecorder.AudioSource.MIC`,表示使用麦克风作为录音源。 3. **编码格式(OutputFormat)**:`setOutputFormat()`方法用于设置录音文件的编码格式。常见的有AMR_NB(窄带AMR)...

    java版amr文件转mp3

    AMR(Adaptive Multi-Rate)是主要用于语音编码的一种高效压缩格式,常见于手机录音和其他移动通信设备。然而,由于其格式的特殊性,AMR文件在大多数网页浏览器和在线平台不支持直接播放。 MP3,全称MPEG-1 Audio ...

    塞班S60-V3 嘟嘟录音

    - 录音文件通常保存为特定格式,可能是常见的WAV、AMR或MP3等音频格式,具体取决于软件设置和设备的兼容性。 - 在此案例中,应用名为“DuDuRecorderv5.3.sis”,这是一个Symbian系统的安装文件,用于将软件安装到...

    转换 AMR 文件的应用程序

    AMR(Adaptibve Multi-Rate)是被各大手机厂商广泛认可的一种保存手机录音的格式。 由于AMR文件的容量很小——每秒钟的AMR音频大小可控制在1K左右,因此即便是长达1分钟的音频文件,也能符合中国移动现行的彩信不...

    amr音频格式文件下载

    amr格式的音频文件,是当年步步高手机广告音乐,可以用来测试微信公众号被动回复语音信息.

    Android实现录音完整代码

    在Android平台上,录音和播放音频是一项常见的功能,广泛应用于各种应用程序,如社交应用、教育软件、游戏等。本文将深入探讨如何使用Android的MediaRecorder类实现录音功能,并通过MediaPlayer类播放录制的音频资源...

    前端amr示例资源html版本

    AMR格式通常与手机通话录音、语音识别等场景关联,但在Web开发中,为了在浏览器中播放AMR音频,我们需要一些额外的技术支持。在这个压缩包中,包含了以下几个关键文件: 1. `681.amr`:这是一个实际的AMR音频文件,...

    phonegap录音以及上传下载

    “下载到手机客户端”则是相反的过程,使用FileTransfer的download方法,指定远程文件的URL和本地存储的路径。PhoneGap会处理下载过程,并在完成时触发相应的回调函数。 在提供的文件名列表中,`download.html`可能...

    安卓对讲机录音机相关-android录音格式转码成MP3格式的.rar

    1. **Android 录音格式**:在Android系统中,录音默认格式通常是AMR或AAC。AMR(Adaptive Multi-Rate)是3GPP标准的音频编码格式,适用于节省存储空间,而AAC(Advanced Audio Coding)则提供了更高的音质。这两种...

Global site tag (gtag.js) - Google Analytics