Android 10 版本包含以下关于使用 VOICE_COMMUNICATION
进行捕获的要求。
- 使用
VOICE_COMMUNICATION
进行捕获时,实现应在捕获路径上提供声学回声消除器 (AEC)。 - 如果提供 AEC,则必须通过 SDK API 的
AcousticEchoCanceler
使其可被发现和控制。
Android 平台在受支持设备上的 audiofx
软件包中提供了音频效果,开发者可以访问该软件包。例如,Nexus 10 支持以下预处理效果
与 AudioSource 实例配对
预处理效果与请求预处理的使用场景模式配对。在 Android 应用开发中,使用场景被称为 AudioSource
实例;应用开发者请求使用 AudioSource
抽象,而不是实际的音频硬件设备。Android 音频政策管理器根据产品特定的规则将 AudioSource
实例映射到给定的捕获路径配置(包括设备、增益和预处理)。以下来源向开发者公开
android.media.MediaRecorder.AudioSource.CAMCORDER
android.media.MediaRecorder.AudioSource.VOICE_COMMUNICATION
android.media.MediaRecorder.AudioSource.VOICE_CALL
android.media.MediaRecorder.AudioSource.VOICE_DOWNLINK
android.media.MediaRecorder.AudioSource.VOICE_UPLINK
android.media.MediaRecorder.AudioSource.VOICE_RECOGNITION
android.media.MediaRecorder.AudioSource.MIC
android.media.MediaRecorder.AudioSource.DEFAULT
每个 AudioSource
实例应用的默认预处理效果在 /vendor/etc/audio_effects.xml
文件中指定。要为每个 AudioSource
实例指定您自己的默认效果,请创建 /vendor/etc/audio_effects.xml
文件并指定要开启的预处理效果。有关示例,请参阅 device/samsung/manta/audio_effects.xml
中 Nexus 10 的实现。AudioEffect
实例在创建和销毁时获取和释放会话,从而使效果(例如响度增强器)在整个会话期间持续存在。
以下示例为 VoIP AudioSource
和 Camcorder AudioSource
实例启用了预处理。通过以这种方式声明 AudioSource
配置,框架会自动请求 HAL 使用这些效果。
<preprocess> <stream type="voice_communication"> <apply effect="aec"/> <apply effect="ns"/> </stream> <stream type="camcorder"> <apply effect="agc"/> </stream> </preprocess>
来源调整
AudioSource
调整对音频增益或音频处理没有明确要求,但语音识别 (VOICE_RECOGNITION
) 除外。语音识别的要求包括
- 100 Hz 至 4 kHz 范围内的平坦频率响应(+/- 3 分贝)
- 近距离通话配置:90 分贝 SPL 读取 2500 的 RMS(16 位样本)
- 电平在线性轨道中,相对于 90 分贝 SPL,从 -18 分贝到 +12 分贝
- THD < 1%(在 100 至 4000 Hz 范围内的 90 分贝 SPL)
- 近超声波要求(对于测试,请参阅 近超声波测试)
- 支持 CDD 的 7.8.3 节中定义的
SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUND
。 - 支持 44100 或 48000 采样率中的一种或两种,且不带通带或抗混叠滤波器。
- 支持 CDD 的 7.8.3 节中定义的
- 默认情况下禁用效果/预处理
针对不同来源调整不同效果的示例包括
- 噪声抑制器
- 针对
CAMCORDER
调整的风噪抑制器 - 针对
VOICE_COMMUNICATION
调整的固定噪声抑制器
- 针对
- 自动增益控制
- 针对
VOICE_COMMUNICATION
和主手机麦克风的近距离通话进行了优化 - 针对
CAMCORDER
的远距离通话进行了优化
- 针对
资源
如需了解详情,请参阅以下资源
- Android audiofx 软件包文档
- Android 噪声抑制音频效果文档
- Pixel 3 的
/device/google/crosshatch/audio_effects.xml
文件