Konfigurowanie efektów wstępnego przetwarzania

W Androidzie 10 obowiązują te wymagania dotyczące przechwytywania za pomocą VOICE_COMMUNICATION.

  • Podczas nagrywania za pomocą VOICE_COMMUNICATION implementacje powinny zapewniać usuwanie echa akustycznego (AEC) na ścieżce przechwytywania.
  • Jeśli dostarczasz AEC, musi być on wykrywalny i sterowalny za pomocą interfejsu API pakietu SDK AcousticEchoCanceler.

Platforma Android udostępnia efekty dźwiękowe na obsługiwanych urządzeniach w pakiecie audiofx, do którego deweloperzy mają dostęp. Na przykład Nexus 10 obsługuje te efekty przetwarzania wstępnego:

Parowanie z instancjami AudioSource

Efekty przetwarzania wstępnego są powiązane z trybem przypadku użycia, w którym jest wymagane przetwarzanie wstępne. W przypadku tworzenia aplikacji na Androida przypadek użycia jest określany jako AudioSource. Deweloperzy aplikacji proszą o użycie abstrakcji AudioSource zamiast rzeczywistego urządzenia audio. Menedżer zasad audio na Androidzie mapuje instancję AudioSource na daną konfigurację ścieżki przechwytywania (w tym urządzenie, wzmocnienie i wstępne przetwarzanie) zgodnie z zasadami dotyczącymi konkretnego produktu. Deweloperzy mają dostęp do tych źródeł:

  • 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

Domyślne efekty przetwarzania wstępnego stosowane w przypadku każdej instancji AudioSource są określone w pliku /vendor/etc/audio_effects.xml. Aby określić własne efekty domyślne dla każdej instancji AudioSource, utwórz plik /vendor/etc/audio_effects.xml i określ efekty wstępnego przetwarzania, które mają być włączone. Przykład znajdziesz w device/samsung/manta/audio_effects.xml w przypadku Nexusa 10. Instancje AudioEffect uzyskują i zwalniają sesję podczas tworzenia i niszczenia, dzięki czemu efekty (takie jak wzmacniacz głośności) utrzymują się przez całą sesję.

W przykładzie poniżej włączamy wstępne przetwarzanie w przypadku instancji VoIPAudioSource i kameryAudioSource. Deklarując AudioSource konfigurację w ten sposób, framework automatycznie wysyła do HAL prośbę o użycie tych efektów.

<preprocess>
        <stream type="voice_communication">
            <apply effect="aec"/>
            <apply effect="ns"/>
        </stream>
        <stream type="camcorder">
            <apply effect="agc"/>
        </stream>
    </preprocess>

Dostrajanie źródła

AudioSource nie ma wyraźnych wymagań dotyczących wzmocnienia dźwięku ani przetwarzania dźwięku, z wyjątkiem rozpoznawania głosu (VOICE_RECOGNITION). Wymagania dotyczące rozpoznawania głosu obejmują:

  • Płaska charakterystyka częstotliwościowa (+/- 3 dB) w zakresie od 100 Hz do 4 kHz
  • Konfiguracja z bliskiej odległości: 90 dB SPL odczytuje RMS na poziomie 2500 (próbki 16-bitowe)
  • Poziom zmienia się liniowo od -18 dB do +12 dB w stosunku do 90 dB SPL.
  • THD < 1% (90 dB SPL w zakresie 100–4000 Hz)
  • Wymagania dotyczące ultradźwięków o częstotliwości zbliżonej do słyszalnej (informacje o testowaniu znajdziesz w sekcji Testy ultradźwięków o częstotliwości zbliżonej do słyszalnej):
    • Obsługa SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUND zgodnie z definicją w sekcji 7.8.3 dokumentu CDD.
    • Obsługa jednej lub obu częstotliwości próbkowania 44100 Hz lub 48000 Hz bez filtrów pasmowych ani antyaliasingowych.
  • Efekty i przetwarzanie wstępne domyślnie wyłączone

Przykłady dostosowywania różnych efektów do różnych źródeł:

  • Eliminator szumu
    • Dostosowano do tłumienia szumu wiatru w przypadku urządzenia CAMCORDER
    • Dostosowano do stacjonarnego tłumika szumów dla: VOICE_COMMUNICATION
  • Automatyczna regulacja wzmocnienia
    • Dostosowane do rozmów z bliskiej odległości na VOICE_COMMUNICATION i głównym mikrofonie telefonu
    • Dostosowane do rozmów z daleka w przypadku urządzenia CAMCORDER

Materiały

Więcej informacji znajdziesz w tych materiałach: