Android 10 버전에서는 VOICE_COMMUNICATION
을 사용한 캡처 시 다음과 같은 사항을 요구합니다.
VOICE_COMMUNICATION
을 사용한 캡처 구현 시에는 캡처 경로에 AEC(Acoustic Echo Canceler)를 제공해야 합니다.- 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
인스턴스는 세션이 생성 및 삭제될 때 세션을 획득 및 해제하여 세션 동안 효과(예: Loudness Enhancer)를 유지합니다.
다음 예는 VoIP AudioSource
와 캠코더 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
)을 제외하면 오디오 입력 신호량 또는 오디오 처리에 관한 명시적인 요구사항은 없습니다. 음성 인식 요구사항은 다음과 같습니다.
- 100Hz~4kHz의 균일한 주파수 응답(+/-3dB)
- 근거리 대화 구성: 90dB SPL에서 2500RMS를 읽음(16비트 샘플)
- -18dB ~ +12dB의 선형적 트랙 레벨링(90dB SPL 기준)
- THD < 1%(100 ~ 4000Hz 범위에서 90dB SPL)
- 근초음파 요구사항(테스트의 경우 근초음파 테스트 참고):
- CDD의 7.8.3 섹션에 정의된
SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUND
지원 - 대역 필터 또는 안티에일리어싱 필터가 없는 44,100 또는 48,000 샘플링 레이트 중 하나 또는 둘 모두 지원
- CDD의 7.8.3 섹션에 정의된
- 효과/전처리가 기본적으로 사용 중지됨
다양한 소스의 서로 다른 효과를 조정하는 예는 다음과 같습니다.
- 노이즈 제거기
CAMCORDER
의 윈드 노이즈 제거기에 맞게 조정됨VOICE_COMMUNICATION
의 정상 노이즈 제거기에 맞게 조정됨
- 입력 신호량 자동 조절
VOICE_COMMUNICATION
및 기본 스마트폰 마이크를 사용한 근거리 대화에 맞게 조정됨CAMCORDER
를 사용한 원거리 대화에 맞게 조정됨
리소스
자세한 내용은 다음 리소스를 참고하세요.
- audiofx 패키지에 관한 Android 문서
- 노이즈 제거 오디오 효과에 관한 Android 문서
- Pixel 3용
/device/google/crosshatch/audio_effects.xml
파일