Android的音频采集
主要使用AudioTrack和AudioRecord两个类进行操作
可参考webrtc源码:\ver789\src\modules\audio_device\main\source\android\org\webrtc\voiceengine\AudioDeviceAndroid.java
参考百度资料
http://wenku.baidu.com/view/da8fc2fb0242a8956bece4a0.html
会说话的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。这里给出自己的一些心得,希望能给他人一些参考。
资料搜集与参考
-
类似产品使用的技术
- talkbox Android版用的是ilbc的第三方编解码库,在iPhone上用的是caf
- 微信 Android版估计是amr估计转码的是交给腾讯强大的服务器了。
- 米聊 Android版和Iphone版用的都是speex
目前支持的开源第三方库也就只有 ilbc和speex了
-
考虑采用的方案
speex需要Android和ios都进入转码,工作量太大,不采用。剩下的方案就是在amr和ilbc上选择了,android支持amr,低版本不支持ilbc,
ios高版本(4.3)只支持ilbc,不能支持amr。刚开始的测试方案使用的是android将语音转ilbc,
由于我对于android开发不是太熟悉,在同事的帮助下一直没有转换成功,现在想想可能是处理问题,如果能转换成或,这种方案应该是最方便的。
ios实现amr编解码
录制
-
将语音录成原始pcm码
注意这里,虽然录制是pcm码,但出来的文件ios依然会封装一层,将其包装成pcf格式。所以就有了第二步。
-
将pcf中的pcm码取出来
-
使用libopencore库将其编成amr格式,这时可以发送给android端播放了。
播放
-
将android版本发送过来的amr解码出来
-
播放原始pcm即可
代码文件都放在github上了,有需要的可以参考一下。 https://github.com/hhuai/ios_util
分享到:
相关推荐
可以将录音文件amr转为MP3方便使用,官网【http://www.sauronsoftware.it/projects/jave/jave-1.0.2.zip?PHPSESSID=rs8aq1fber3ivi1f1ff70oht15】,但是下载非常慢,没有资源分的私我就好...
免费AMR转文件软件–AMR Player,不仅可以播放使用手机所录制的*.amr音乐文件,最重要的是它能够将AMR转成MP3、WAV档,或者是将MP3、WAV档转成AMR檔。 AMR Player转出来的文件是低音质,所以文件会稍微小一点点。AMR...
把手机AMR声音转换为WAV格式,使之可以在电脑上方便播放手机中的AMR格式录音或铃声文件,小巧好用。
AMR(Adaptibve Multi-Rate)是被各大手机厂商广泛认可的一种保存手机录音的格式。 由于AMR文件的容量很小——每秒钟的AMR音频大小可控制在1K左右,因此即便是长达1分钟的音频文件,也能符合中国移动现行的彩信不...
该例子主要简单的使用phonegap录音,并实现上传到服务器已经下载到手机客户端下
手机AMR格式转换成WAV的小工具,手机录音需要用此转换后转换。
(安卓手机中的录音文件转换成MP3)AMR 转换 mp3
索爱的专业转换软件,无需注册,完全转换,实现amr与wav音频格式的互转,适用于手机录音后的amr格式文件,转成wav后,即可转成mp3、aac等主流音频格式
用手机录音转mp3
不支持:UC系内核(典型的支付宝),大部分国产手机厂商自研套壳娱乐浏览器,低版本IOS(11.0-14.2)上除Safari外的其他任何形式的浏览器(含PWA、WebClip、任何App内网页)。 Recorder H5 : [ ] [ ] [ ] 工具集 : ...
ios 开发 手机录音 amr格式,一个很好地demo。找的很辛苦只要1分。。
1 手机平台体系结构研究 (1)硬件系统结构 硬件平台主要包括射频模块、基带模块、电源管理模块和外围设备。文中采用了数字基带、模拟基带和电源管理模块集于单芯片的基带解决方案,这种解决方案具有较高的集成度,...
ALAW, ULAW) Raw PCM LPCM AC3 AMR AWB (AMR-WB) AAC M4A M4R eAAC AAC FLAC AU AIFF VOC APE TTA MPC G721 G726 VYF MOV 3GP VOB (DVD) MP4 M4V RM RMVB WMV ASF MPG DAT (VCD) FLV AVI 转换成 MP3 WAV AU ...
AMR转MP3可实现将手机上的AMR录音转换成流行的MP3格式,以适用更广泛的应用。AMR的体积非常小,适用于存储在手机中,当我们想将在手机上的音频上传到网络,就需要将其转换成MP3等流行的格式,本文就是介绍asp.net...
不支持: UC系内核(典型的支付宝),大部分国产手机厂商自研套壳娱乐浏览器,IOS上除Safari外的其他任何形式的浏览器(包括PWA,WebClip,任何App内网页) 。 记录仪H5 :[ ] [ ] [ ] RecordApp :[ ] [ ] [ ] [ ]...
测试录音文件使用手机录音机录制即可,适用于pcm,wav,amr,m4a文件,所需key在百度ai平台注册即可,百度语音识别技术测试案例,适合个人学习研究
是把amr格式转换mp3格式的一个软件。当你用手机录音时,没办法弄到酷狗什么,就可以用到这了。