首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >适当的音频捕获和降噪

适当的音频捕获和降噪
EN

Stack Overflow用户
提问于 2012-06-19 01:07:15
回答 3查看 5.8K关注 0票数 2

在我的android应用程序中,我需要从麦克风捕获用户的语音,然后将其传递给服务器。目前,我使用MediaRecorder类。然而,它不能满足我的需求,因为我想根据当前输入声音的音量来制作发光效果,所以我想我需要一个AudioStream,或者类似的东西。目前,我使用以下方法:

代码语言:javascript
复制
    this.recorder = new MediaRecorder();
    this.recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    this.recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
    this.recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    this.recorder.setOutputFile(FILENAME);

我是使用API7编写的,所以我看不到任何其他的AudioEncoders,除了AMR窄带。也许这就是我在录音中听到的可怕噪音的原因。

我面临的第二个问题是音质差,噪音,所以我想减少(取消,抑制)它,因为它真的很糟糕,特别是在我的无名中文平板电脑上。这应该是服务器端的,因为据我所知,需要大量的资源,并不是所有的现代小工具(特别是noname中文平板电脑)都能尽可能快地做到这一点。我可以自由选择在服务器上使用哪种平台,所以它可以是ASP.NET、PHP、JSP或任何可以帮助我使声音更好的平台。谈到ASP.NET,我遇到了一个名为NAudio的库,它可能在某种程度上对我有帮助。我知道,库中没有任何降噪解决方案,但我找到了一些使用它的FFT和自动相关的示例,所以它可能会有所帮助。

老实说,我以前从来没有用过这么近的声音,我不知道从哪里开始。我在谷歌上搜索了很多关于降噪技术和代码示例,但什么也没找到。你们是我最后的希望。

提前谢谢。

EN

回答 3

Stack Overflow用户

发布于 2015-06-19 14:18:28

看看this article吧。

长话短说,它使用MediaRecorder.AudioSource.VOICE_RECOGNITION而不是AudioSource.MIC,这给了我非常好的效果,背景中的噪音也减少了很多。

这个解决方案的伟大之处在于,它可以与AudioRecord和MediaRecorder类一起使用。

票数 8
EN

Stack Overflow用户

发布于 2012-06-20 00:30:57

对于音频捕获,您可以使用AudioRecord类。这使您可以录制原始音频,即您不受“窄带”的限制,您还可以测量音量。

票数 1
EN

Stack Overflow用户

发布于 2013-01-27 07:37:22

许多智能手机都有两个麦克风,一个是你正在使用的MIC,另一个是摄像头附近的视频拍摄,称为CAMCORDER。您可以从这两个数据中获取数据来进行降噪。有许多论文都在讨论使用多个麦克风降低音频噪声。

参考:http://developer.android.com/reference/android/media/MediaRecorder.AudioSource.html

https://www.google.com/search?q=noise+reduction+algorithm+with+two+mic

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11087672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档