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_COMMUNICATIONimplementacje 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.CAMCORDERandroid.media.MediaRecorder.AudioSource.VOICE_COMMUNICATIONandroid.media.MediaRecorder.AudioSource.VOICE_CALLandroid.media.MediaRecorder.AudioSource.VOICE_DOWNLINKandroid.media.MediaRecorder.AudioSource.VOICE_UPLINKandroid.media.MediaRecorder.AudioSource.VOICE_RECOGNITIONandroid.media.MediaRecorder.AudioSource.MICandroid.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_ULTRASOUNDzgodnie 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;
- obsługa
- 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;
- dostrojone do eliminowania szumu wiatru w przypadku
- automatyczna kontrola wzmocnienia:
- dostrojona do bliskiego mówienia w przypadku
VOICE_COMMUNICATIONi głównego mikrofonu telefonu; - dostrojona do dalekiego mówienia w przypadku
CAMCORDER.
- dostrojona do bliskiego mówienia w przypadku
Zasoby
Więcej informacji znajdziesz w tych materiałach:
- Dokumentacja Androida dotycząca pakietu audiofx
- Dokumentacja Androida dotycząca efektu dźwiękowego eliminowania szumu
- Plik
/device/google/crosshatch/audio_effects.xmldla Pixela 3