Skonfiguruj efekty wstępnego przetwarzania

Wersja Androida 10 zawiera te wymagania dotyczące rejestrowania za pomocą VOICE_COMMUNICATION:

  • W przypadku rejestrowania za pomocą VOICE_COMMUNICATION implementacje powinny zawierać systemowe usuwanie echa (AEC) na ścieżce przechwytywania.
  • Jeśli udostępniasz AEC, musi on być wykrywalny i kontrolowany za pomocą interfejsu AcousticEchoCanceler API pakietu SDK.

Platforma Android udostępnia efekty dźwiękowe na obsługiwanych urządzeniach w pakiecie audiofx, który jest dostępny dla deweloperów. Nexus 10 obsługuje na przykład te efekty wstępnego przetwarzania:

Parowanie z obiektowi AudioSource

Efekty wstępnego przetwarzania są łączone z trybem przypadku użycia, w którym wymagane jest wstępne przetwarzanie. W przypadku tworzenia aplikacji na Androida przypadek użycia jest określany jako instancja AudioSource, a deweloperzy aplikacji proszą o używanie abstrakcji AudioSource zamiast rzeczywistego urządzenia z układem audio. Menedżer zasad dotyczących dźwięku w Androidzie mapuje instancję AudioSource na daną konfigurację ścieżki przechwytywania (w tym urządzenie, wzmocnienie i wstępna obróbka) zgodnie z zasadami dotyczącymi danej usługi. Deweloperom udostępnione są te źródła:

  • 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 wstępnej obróbki danych stosowane w przypadku każdego wystąpienia AudioSource są określone w pliku /vendor/etc/audio_effects.xml. Aby określić własne efekty domyślne dla każdego wystąpienia AudioSource, utwórz plik /vendor/etc/audio_effects.xml i określ efekty wstępnego przetwarzania, które chcesz włączyć. Przykładem jest implementacja na Nexusie 10 w device/samsung/manta/audio_effects.xml. Instancje AudioEffect pozyskują i uwalniają sesję po utworzeniu i zniszczeniu, dzięki czemu efekty (np. wzmacniacz głośności) utrzymują się przez całą sesję.

W tym przykładzie włączamy przetwarzanie wstępne dla instancji VoIPAudioSource i KameraAudioSource. Dzięki zadeklarowaniu konfiguracji AudioSource w taki sposób framework automatycznie prosi o użycie tych efektów w HAL.

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

Dostosowanie ź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:

  • Stała częstotliwość (+/– 3 dB) od 100 Hz do 4 kHz
  • Konfiguracja Zbliżeniowa rozmowy: 90 dB SPL oznacza odczyt RMS 2500 (próbki 16-bitowe)
  • Poziom śledzi liniowo od -18 dB do +12 dB w stosunku do wartości SPL wynoszącej 90 dB
  • THD < 1% (90 dB SPL w zakresie 100–4000 Hz)
  • Wymagania dotyczące testów z użyciem dźwięku o zbliżonej częstotliwości do ultradźwięków (informacje o testach znajdziesz w sekcji Testy z użyciem dźwięku o zbliżonej częstotliwości do ultradźwięków):
    • 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 44 100 lub 48 000 bez filtrów przepustowości i antyaliasingu.
  • Efekty i przetwarzanie wstępne są domyślnie wyłączone

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

  • Redukcja szumów
    • Ustawienie redukcji szumu wiatru dla CAMCORDER
    • Wyciszanie szumów w przypadku stacjonarnego wyciszenia szumów dla VOICE_COMMUNICATION
  • Automatyczna kontrola wzmocnienia
    • Dostosowany do zbliżenia na VOICE_COMMUNICATION i główny mikrofon telefonu
    • Dostrojenie CAMCORDER do mówienia na odległość

Materiały

Więcej informacji znajdziesz w tych materiałach:

  • Dokumentacja Androida dotycząca pakietu audiofx
  • Dokumentacja Androida dotycząca tłumienia szumów
  • Plik /device/google/crosshatch/audio_effects.xml dotyczący telefonu Pixel 3