Konfigurowanie efektów wstępnego przetwarzania

W wersji Androida 10 wprowadziliśmy te wymagania dotyczące przechwytywania dźwięku za pomocą VOICE_COMMUNICATION.

  • W przypadku przechwytywania dźwięku za pomocą VOICE_COMMUNICATION implementacje powinny zapewniać eliminowanie echa akustycznego (AEC) na ścieżce przechwytywania, gdy przechwytują.
  • Jeśli zapewniasz AEC, musi być on wykrywalny i sterowany za pomocą interfejsów API pakietu SDK AcousticEchoCanceler.

Platforma Androida 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 instancja AudioSource. Deweloperzy aplikacji proszą o użycie abstrakcji AudioSource zamiast rzeczywistego urządzenia audio. Menedżer zasad audio Androida mapuje instancję AudioSource na daną konfigurację ścieżki przechwytywania (w tym urządzenie, wzmocnienie i przetwarzanie wstępne) zgodnie z regułami 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 do 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 przetwarzania wstępnego, które mają być włączone. Przykład znajdziesz w implementacji dla Nexusa 10 w pliku device/samsung/manta/audio_effects.xml. Instancje AudioEffect uzyskują i zwalniają sesję podczas tworzenia i niszczenia, co umożliwia utrzymanie efektów (takich jak wzmacniacz głośności) przez całą sesję.

Ten przykład włącza przetwarzanie wstępne dla instancji AudioSource VoIP i AudioSource kamery. Dzięki zadeklarowaniu konfiguracji AudioSource w ten sposób framework automatycznie prosi HAL 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

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

  • płaska charakterystyka częstotliwościowa (+/- 3 dB) od 100 Hz do 4 kHz,
  • konfiguracja bliskiego mówienia: 90 dB SPL odczytuje RMS 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 od 100 do 4000 Hz),
  • wymagania dotyczące bliskiego ultradźwięku (na potrzeby testowania zapoznaj się z sekcją Testy bliskiego ultradźwięku):
    • 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 lub 48000 bez filtrów pasmowych ani filtrów antyaliasingowych;
  • efekty/przetwarzanie wstępne domyślnie wyłączone.

Przykłady dostrajania różnych efektów dla różnych źródeł:

  • eliminowanie szumu:
    • dostrojone do eliminowania szumu wiatru w przypadku CAMCORDER;
    • dostrojone do eliminowania szumu stacjonarnego w przypadku VOICE_COMMUNICATION;
  • automatyczna kontrola wzmocnienia:
    • dostrojona do bliskiego mówienia w przypadku VOICE_COMMUNICATION i głównego mikrofonu telefonu;
    • dostrojona do dalekiego mówienia w przypadku CAMCORDER.

Zasoby

Więcej informacji znajdziesz w tych materiałach: