在我的 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 编写,所以我看不到任何其他音频编码器,但 AMR 窄带。也许这就是我在录音中听到的可怕噪音的原因。
我面临的第二个问题是音质差,噪音,所以我想减少(取消,抑制)它,因为它真的很糟糕,尤其是在我的无名中文平板电脑上。这应该是服务器端的,因为据我所知,它需要大量资源,而且并非所有现代小工具(尤其是无名中国平板电脑)都能尽快做到这一点。我可以自由选择在服务器上使用哪个平台,所以它可以是 ASP.NET、PHP、JSP 或任何有助于我改善声音的平台。谈到 ASP.NET,我遇到了一个名为 NAudio 的库,它可能在某种程度上可以帮助我。我知道,库中没有内置任何降噪解决方案,但我发现了一些关于 FFT 和使用它的自动关联的示例,所以它可能会有所帮助。
老实说,我以前从未使用过如此接近的声音,我不知道从哪里开始。我在谷歌上搜索了很多关于降噪技术、代码示例的信息,但一无所获。你们是我最后的希望。
提前致谢。