也许有外部的第三方库(c/c++)来解决问题,但是,我只想用纯java来解决
背景:我并没有太多的关于音视频解码的知识,也不想了解音量音色等专业概念
*************************************
解决途径:
我在stackoverflow上貌似找到了答案,参见:http://stackoverflow.com/questions/7955041/voice-detection-in-android-application
帖子的问题描述:
I want to change my application in this way,
when application start work it begin to analyze sound coming from microphone,
if user keep silent application continue to analyze income sound from microphone,
if user start to talk application begin to Record sound coming from microphone
and then user finish talking application stops recording and give me back same buffer, with voice data in .wav format.
帖子的解决:
1.问题的提出者和解答者是同一个人,他贴出了源码,但是有一些变量的具体数值没有给出
2.然后,我貌似找到了那个人的主页,他又贴出了不完整的源码(但是这段代码设置了上面的参数值,虽然有download,但是链接失效)参见:http://vitosolutions.wordpress.com/tag/voice/
3.在早些时候,好心的网友给出了类似的解答,参见:http://wapiknow.baidu.com/question/416835390.html?fr=ala3&ssid=0&from=1097d&uid=wiaui_1295711782_6667&pu=usm%401%2Csz%401320_240&bd_page_type=1&tj=zhidao_2_0_10
*************************************
已经按照stackoverflow的方法,进行了实现,通过
原代码的问题:因为他的代码中,设置的是350这个阀值,而这个是比较大的,往往检测不到正常的说话,建议,将其调整至50左右
关于循环监听:
tom猫的说话监听往往是一个循环过程,而原代码只监听一次
该循环过程可能还需要在某个时刻进行阻塞,然后在某个时刻被唤醒
在下一次监听时,建议生成新的AudioRecord,而不是利用原有的,因为:他会将上一次的声音残留保存至本次监听,而这会影响:后续的录音的播放
关于变声:
我也是找了很多的资料,不过貌似,都推荐用soundtouch,他是LGPL
他是c/c++编写,所以,你需要将他编译成so
如果对变声的效果不是那么苛刻的话,另外一种推荐:使用soundpool,方法:SoundPool.play(soundid, 1, 1, 0, 0, 2f);。那将改变语速,第一次听起来,变的效果还不错
关于录音的bufferSizeInBytes
你也许通常使用以下方式,来进行监听:
int bufferSizeInBytes = AudioRecord.getMinBufferSize(SAMPLE_RATE, RECORDER_CHANNELS, RECORDER_AUDIO_ENCODING); audioRecorder = new AudioRecord(AUDIO_SOURCE, SAMPLE_RATE, RECORDER_CHANNELS, RECORDER_AUDIO_ENCODING, bufferSizeInBytes); numberOfReadBytes = audioRecorder.read(audioBuffer, 0, bufferSizeInBytes);
这种方法在某些情况下,没有错误,但是,你忽略了一些细节:
在华为u8800+和三星galaxy nexus上分别进行了实验,发现:华为上,一切正常,而,三星上,录音并不是完整的(read中的数据是不完整的)
这是android碎片化表现,因为bufferSizeInBytes小了,抛出了:RecordThread: buffer overflow异常
解决(不完美):bufferSizeInBytes*=5
---------------------华丽的连接线---------------------:
如何像talking tom那样,自动监听到外部声音,和,简单的变声_2
相关推荐
iphone 游戏Talking_Tom_2-v1.1-USCat
会说话的tom猫Talking Tom Cat是一款手机宠物类应用。没事儿玩玩儿也挺有意思,至少这个宠物猫还能和你互动一下。玩法: 1.和TOM交谈,他会用有趣的声音重复你 2.抚摸.
这次Tom带着新的升级回来了1.6版修复了一些bug问题,关联Facebook账户让您更容易得和朋友分享视频通过Outfit7简报第一时间获得有关Tom和它会说话的朋友们的新闻压缩包内附talking-tom-cat_1.6.deb解锁补丁。
我的汤姆猫 2「My Talking Tom 2」 v2.5.0.9 for Android 一款火爆全球的新游戏
我的Talking Tom New Tab扩展程序使您的Chrome浏览器焕然一新。 安装“我的说话的汤姆”新标签,享受“我的说话的汤姆”的精选高清图像。 它带有一些很酷的属性,这些属性可以改善您的“新标签页”体验,例如:-每个...
安装Talking Tom Gold Run新标签页,然后欣赏Talking Tom Gold Run的精选高清图像。 它带有一些很酷的属性,这些属性可以改善您的“新标签页”体验,例如:-每个新标签页都有高质量的壁纸-当前日期/时间-指向社交...
语言:Bahasa Indonesia,Bahasa Melayu,Deutsch,English,Filipino,Français,Kiswahili,Nederlands,Norsk,Tiếng Vi...会说话的Tom Gold Run壁纸和“新标签页”扩展程序会为您的默认Chrome“新标签页”页面带来全新的外
使用Garena进行搜索,并获取最新的Talking Tom News! 使用您喜欢的游戏在网上搜索:TALK TOM! 使用此搜索扩展程序,您可以轻松地获得最佳搜索结果,当您单击工具栏中的图标时,TALKING TOM的最新消息! 为了获得最...
目前,Blender尚没有像Voice-o-Matic这样的100%可自动运行的口型同步系统。 不,不,不,此插件也不是100%可用的工具。 这是将来要开发的基本设备。 我衷心希望也许有人会对这个主题表达兴趣,并且我们最终将为...
安装此Talking Tom and Friends扩展程序,忘了无聊的新标签页,并使其变得更加有趣。 您将获得各种质量上乘的墙纸,这些精美的网络系列将带入您的浏览器。 此外,您将能够一直享受这些背景,因为它们会在您浏览时...
Talking Translator 2.3.2,体化的解决方案适用于任何人,任何地方,凭借其即时翻译功能,应用程序将帮助你在任何多语言环境中进行沟通,如旅行、商务旅行、买方会议,或只是普通对话。 真正的沟通从尊重开始 试试...
语言:Bahasa Indonesia,Bahasa Melayu,Deutsch,English,Filipino,Français,Kiswahili,Nederlands,Norsk,Tiếng Việt,Türkçe,català,dansk,eesti,...My Talking Tom Wallpapers和New Tab扩展程序为默认的Chrome New
语言:Bahasa Indonesia,Bahasa Melayu,Deutsch,English,Filipino,Français,Kiswahili,Nederlands,Norsk,Tiếng Việt,Türkçe,...My Talking Tom Wallpapers和New Tab扩展程序为默认的Chrome New Tab页面带来了全
Talking Pocoyo是一个交互式游戏,您可以在其中进行所有这些操作:与Pocoyo一起玩:当Pocoyo触摸到他身体的任何部位时都会做出React。 尝试发现他的所有React! 此外,您可以与Pocoyo交谈,他会以有趣的方式重复您...
Talking Face Generation by Adversarially Disentangled Audio-Visual Representation 用对话解开的视听表征生成谈话人脸
信息安全_数据安全_Look Whos Talking How Fraudsters 内外威胁 安全评级 安全研究 大数据 AI
语音聊天程序源代码,模拟实现用语音聊天!