【发布时间】:2016-09-26 12:35:04
【问题描述】:
Android App中MediaRecorder录制的音频有这么多噪音。如何在录制时使用噪音抑制来消除噪音。
【问题讨论】:
标签: android
Android App中MediaRecorder录制的音频有这么多噪音。如何在录制时使用噪音抑制来消除噪音。
【问题讨论】:
标签: android
我在使用 MediaRecorder 时遇到了同样的音频质量低的问题,最终找到了正确的工作解决方案。为了获得高质量的录音,您需要进行以下一些修改:
使用 .m4a 扩展名保存文件。 和
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);
mRecorder.setAudioEncodingBitRate(16*44100);
mRecorder.setAudioSamplingRate(44100);
stackoverflow 上的许多解决方案会建议 .setAudioEncodingBiteRate(16),但 16 太低而无法被视为无意义。
来源:@Grant 在 stackoverflow 上的回答 very poor quality of audio recorded on my droidx using MediaRecorder, why?
【讨论】:
您是使用模拟器还是在实际设备上进行测试(如果是,是哪个设备)?声学调整(包括增益控制、降噪等)将特定于给定平台和产品,您无法更改。
Jellybean 包含 API,可让应用程序在录音上应用某些声学过滤器,噪声抑制器就是其中之一。但是,通过使用该 API,您将您的应用程序限制为只能在运行 Jellybean 或更高版本的设备上正常运行(甚至并非所有这些设备都可能真正实现此功能)。
另一种可能性是在您的应用中包含噪声抑制器。我认为例如Speex 包含噪声抑制功能,但它面向低比特率语音编码。
https://developer.android.com/reference/android/media/audiofx/NoiseSuppressor.html
【讨论】: