전처리 효과 구성

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 샘플링 레이트 중 하나 또는 둘 모두 지원
  • 효과/전처리가 기본적으로 사용 중지됨

다양한 소스의 서로 다른 효과를 조정하는 예는 다음과 같습니다.

  • 노이즈 제거기
    • CAMCORDER의 윈드 노이즈 제거기에 맞게 조정됨
    • VOICE_COMMUNICATION의 정상 노이즈 제거기에 맞게 조정됨
  • 입력 신호량 자동 조절
    • VOICE_COMMUNICATION 및 기본 스마트폰 마이크를 사용한 근거리 대화에 맞게 조정됨
    • CAMCORDER를 사용한 원거리 대화에 맞게 조정됨

리소스

자세한 내용은 다음 리소스를 참고하세요.