配置预处理效果

本文最后更新于 2022年11月1日 晚上

对于使用 VOICE_COMMUNICATION 进行捕获,Android 10 版本存在下列要求。

  • 当使用 VOICE_COMMUNICATION 进行捕获时,实现应在捕获路径上提供回声消除器 (AEC)。
  • 如果提供 AEC,它必须可以通过 SDK API 的 AcousticEchoCanceler 进行检测和控制。

Android 平台向 audiofx 软件包(可供开发者访问)中支持的设备提供音频效果。例如,Nexus 10 支持以下预处理效果:

与 AudioSources 配对

预处理效果与在其下请求预处理的用例模式配对。在 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 实例在创建和销毁时获取和释放会话,因此效果(如音量增强器)能够在整个会话期间持续存在。

警告:对于 VOICE_RECOGNITION 用例,请勿启用降噪预处理效果。从此音频来源录制时,该效果应默认处于停用状态,您不得在自己的 audio_effects.xml 文件中启用它。无论该效果处于默认启用状态的原因在于配置文件,还是音频 HAL 实现的默认行为,都将导致设备无法满足兼容性要求

以下示例为 VoIP AudioSource 和摄像机 AudioSource 实例启用了预处理。通过以这种方式声明 AudioSource 配置,框架会自动向 HAL 请求使用这些效果。

1
2
3
4
5
6
7
8
9
<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 dB)

  • 近距离通话配置:90 dB SPL 读取值为 2500 的 RMS(16 位样本)

  • 在 -18 dB 至 +12 dB 范围内相对于 90 dB SPL 的呈线性的电平轨道

  • THD < 1%(100 Hz 至 4000 Hz 范围内的 90 dB SPL)

  • 近超声要求(有关测试,请参阅近超声测试):

    • 支持 CDD 中第 7.8.3 节中定义的 SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUND
    • 支持 44100 或 48000 采样率中的一个,或者两者都支持(无带通或抗混叠滤波器的情况下)。
  • 效果/预处理默认处于停用状态

关于调谐不同来源的不同效果,示例如下:

  • 噪音抑制器
    • 调谐 CAMCORDER 的风噪抑制器
    • 调谐 VOICE_COMMUNICATION 的静态噪音抑制器
  • 自动增益控制
    • 调谐 VOICE_COMMUNICATION 和手机主麦克风的近距离通话
    • 调谐 CAMCORDER 的远距离通话

资源

有关详情,请参阅以下资源:


配置预处理效果
https://www.shangyexin.com/2024/09/02/audio-implement-pre-processing/
作者
Yasin
发布于
2024年9月2日
许可协议