Android 10 版本包含以下使用VOICE_COMMUNICATION
進行捕獲的要求。
- 當使用
VOICE_COMMUNICATION
進行捕獲時,實現應在捕獲路徑上提供聲學迴聲消除器 (AEC)。 - 如果提供 AEC,它必須是可通過 SDK API 的
AcousticEchoCanceler
發現和控制的。
Android平台在audiofx
包中提供了支持設備的音效,可供開發者訪問。例如,Nexus 10 支持以下預處理效果:
與音頻源配對
預處理效果與請求預處理的用例模式配對。在 Android 應用程序開發中,用例稱為AudioSource
實例;並且應用程序開發人員要求使用AudioSource
抽象而不是實際的音頻硬件設備。 Android Audio Policy Manager 根據產品特定的規則將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>
源調優
除了語音識別 ( VOICE_RECOGNITION
) 之外, AudioSource
調整對音頻增益或音頻處理沒有明確要求。語音識別的要求包括:
- 100 Hz 至 4 kHz 的平坦頻率響應 (+/- 3 dB)
- 近距離通話配置:90 dB SPL 讀取 2500 的 RMS(16 位樣本)
- 相對於 90 dB SPL,從 -18 dB 到 +12 dB 線性跟踪電平
- THD < 1%(100 至 4000 Hz 範圍內為 90 dB SPL)
- 近超聲要求(有關測試,請參閱近超聲測試):
- 支持 CDD 第 7.8.3 節中定義的
SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUND
。 - 支持 44100 或 48000 採樣率中的一種或兩種,無需帶通或抗混疊濾波器。
- 支持 CDD 第 7.8.3 節中定義的
- 默認情況下禁用效果/預處理
針對不同來源調整不同效果的示例如下:
- 噪音抑制器
- 為
CAMCORDER
調整風噪聲抑制器 - 針對
VOICE_COMMUNICATION
的固定噪聲抑制器進行了調整
- 為
- 自動增益控制
- 針對
VOICE_COMMUNICATION
和主電話麥克風進行了近距離通話調整 - 為
CAMCORDER
調整遠距離通話
- 針對
資源
有關詳細信息,請參閱以下資源: