配置预处理效果

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 采样率中的一种或两种,且不带通带或抗混叠滤波器。
  • 默认情况下禁用效果/预处理

针对不同来源调整不同效果的示例包括

  • 噪声抑制器
    • 针对 CAMCORDER 调整的风噪抑制器
    • 针对 VOICE_COMMUNICATION 调整的固定噪声抑制器
  • 自动增益控制
    • 针对 VOICE_COMMUNICATION 和主手机麦克风的近距离通话进行了优化
    • 针对 CAMCORDER 的远距离通话进行了优化

资源

如需了解详情,请参阅以下资源