首页 文章

适当的音频捕获和降噪

提问于
浏览
1

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

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);

我正在使用API级别7编写,因此我没有看到任何其他AudioEncoders,而是AMR Narrow Band . 也许这就是我在录音中听到的可怕噪音的原因 .

我面临的第二个问题是声音质量差,噪音很大,所以我想减少(取消,抑制)它,因为它真的很糟糕,特别是在我的noname中文平板电脑上 . 这应该是服务器端的,因为据我所知,需要大量的资源,而不是所有的现代小工具(特别是noname中文平板电脑)都可以尽快完成 . 我可以自由选择在服务器上使用哪个平台,因此它可以是ASP.NET,PHP,JSP,或任何帮助我改善声音的东西 . 谈到ASP.NET,我遇到了一个名为NAudio的图书馆,它可能会以某种方式帮助我 . 我知道,库中没有内置任何降噪解决方案,但我已经找到了一些关于FFT和使用它的自动关联的例子,所以它可能有所帮助 .
说实话,我以前从未接触过声音,我不知道从哪里开始 . 我搜索了很多关于降噪技术,代码示例并没有发现任何内容 . 你们是我最后的希望 .
提前致谢 .

3 回答

相关问题