android - Android 开发人员:三星 Galaxy S6 上的录音本底噪声很高
问题描述
我正在构建一个应用程序来分析语音质量。用户制作了一个录音,该录音存储在设备上,然后发送到服务器进行分析。
我最近注意到三星 Galaxy S6 (G920-F)的所有录音都比其他经过测试的 Android 设备噪音大得多。我需要支持 Galaxy S6,因为我在这款手机上有很多用户。
我试图解决这个问题,我尝试使用不同的音频源测试MediaRecorder,例如:DEFAULT、MIC、VOICE_RECOGNITION 和 VOICE_COMMUNICATION。这些选项都不会对噪声产生重大影响。
然后,我使用带有上面列出的相同 AudioSources 的AudioRecorder进行了测试。没提升。
最后,我尝试在 AudioRecorder 中添加一个NoiseSuppressor,但几乎没有改善。
我正在设置 AudioRecorder 和 NoiseSuppressor,如下所示:
public void startRecording(String fileNameIn) {
bufferSize = AudioRecord.getMinBufferSize (
RECORDER_SAMPLERATE,
RECORDER_CHANNELS,
RECORDER_AUDIO_ENCODING);
aRecorder = new AudioRecord(
MediaRecorder.AudioSource.VOICE_RECOGNITION,
RECORDER_SAMPLERATE,
RECORDER_CHANNELS,
RECORDER_AUDIO_ENCODING,
bufferSize);
int audioSession = aRecorder.getAudioSessionId();
enableNoiseSuppressor(audioSession);
aRecorder.startRecording();
......
和
public void enableNoiseSuppressor(int microphoneId) {
if (NoiseSuppressor.isAvailable() && noiseSuppressor == null) {
noiseSuppressor = NoiseSuppressor.create(microphoneId);
noiseSuppressor.setEnabled(true);
Log.i(TAG, "NoiseSuppressor enabled");
} else {
Log.e(TAG, "This device don't support NoiseSuppressor");
}
}
我还在Galaxy S6上测试了第 3 方录音应用程序,并注意到这些录音的噪音水平也很高。对于旗舰(几年前)手机来说,这似乎是一个奇怪的问题。我是否缺少任何 Android 技巧或核心概念?
寻找任何建议或意见。
解决方案
推荐阅读
- discord - 在嵌入 Discord.js 中发送 Canvas
- ios - 带有 PageTabViewStyle 的 TabView 上的edgesIgnoringSafeArea 不起作用
- powerbi - 在 DAX CALCULATE 函数中引用多个日期字段
- mysql - 如何加入 3 个单独的表并获取用户?
- sql - 将 SQL 函数设置为变量
- angular - Angular - HTTP-Post -> 响应无法识别
- python - 谷歌翻译 api 超时
- c - C 中带有 pipe()、dup2() 和 fork() 的错误文件描述符
- wpf - IsChecked="false" 时更改 ToogleButton 的颜色
- ios - CocoaPods 未安装或未处于有效状态