使用 MediaRecorder 录制时的音频质量问题

Posted

技术标签:

【中文标题】使用 MediaRecorder 录制时的音频质量问题【英文标题】:Audio quality issue when recorded with MediaRecorder 【发布时间】:2016-09-26 12:35:04 【问题描述】:

android App中MediaRecorder录制的音频有这么多噪音。如何在录制时使用噪音抑制来消除噪音。

【问题讨论】:

【参考方案1】:

我在使用 MediaRecorder 时遇到了同样的音频质量低的问题,最终找到了正确的工作解决方案。为了获得高质量的录音,您需要进行以下一些修改:

使用 .m4a 扩展名保存文件。 和

mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);
mRecorder.setAudioEncodingBitRate(16*44100);
mRecorder.setAudiosamplingRate(44100);

*** 上的许多解决方案会建议 .setAudioEncodingBiteRate(16),但 16 太低而无法被视为无意义。

来源:@Grant 在 *** 上的回答 very poor quality of audio recorded on my droidx using MediaRecorder, why?

【讨论】:

【参考方案2】:

您是使用模拟器还是在实际设备上进行测试(如果是,是哪个设备)?声学调整(包括增益控制、降噪等)将特定于给定平台和产品,您无法更改。

Jellybean 包含 API,可让应用程序在录音上应用某些声学过滤器,噪声抑制器就是其中之一。但是,通过使用该 API,您将您的应用程序限制为只能在运行 Jellybean 或更高版本的设备上正常运行(甚至并非所有这些设备都可能真正实现此功能)。

另一种可能性是在您的应用中包含噪声抑制器。我认为例如Speex 包含噪声抑制功能,但它面向低比特率语音编码。

https://developer.android.com/reference/android/media/audiofx/NoiseSuppressor.html

android voice recording - voice with background noice issue

【讨论】:

以上是关于使用 MediaRecorder 录制时的音频质量问题的主要内容,如果未能解决你的问题,请参考以下文章

使用MediaRecorder录制音频

android MediaRecorder录制音频

Android 音频相关

使用 AudioRecord 录制音频

Android:使用 MediaRecorder 录制音频 - 文件不播放

在 Android 中使用 AudioRecorder/MediaRecorder 录制 FLAC 音频