几天以来,我一直在努力从麦克风中获取原始音频流。我正在尝试不同的方法:使用Oboe库的低级JNI方法(AAudio和OpenSL ES实现)以及Android的AudioRecord Java类。
我面临的问题是,我无法在-/ + 1.0附近恢复幅度,同时确保以如此高的幅度将经过校准的纯音调使麦克风输入饱和。我认为问题是我无法从AndroidOS(自动增益控制或降噪)中有效禁用信号预处理。
AutomaticGainControl.create(id).setEnabled(false)
(不起作用!)
[此外,似乎也不能禁用任何其他麦克风,而不是禁用一个“选定”的麦克风(在setPreferredDevice
实例上选择AudioRecord
时完成了此操作)。用作音频源:未处理,麦克风,语音识别。
反正这样做还是我错过了什么?
谢谢
您使用哪个音频源进行录制?默认情况下,VOICE_RECOGNITION或UNPROCESSED被强制不启用任何预处理(即,请参见https://source.android.com/compatibility/10/android-10-cdd#5_11_capture_for_unprocessed),因此将允许您检查信号路径。