W Androidzie 10 obowiązują te wymagania dotyczące przechwytywania za pomocą interfejsu VOICE_COMMUNICATION:
- Podczas nagrywania za pomocą
VOICE_COMMUNICATIONimplementacje powinny zapewniać usuwanie echa akustycznego (AEC) na ścieżce przechwytywania. - Jeśli podajesz AEC, musi być on wykrywalny i sterowany 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 instancja, a 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.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 w przypadku każdej instancji AudioSource są określone w pliku /vendor/etc/audio_effects.xml. Aby określić własne domyślne efekty 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 implementacji na Nexusie 10 znajdziesz w device/samsung/manta/audio_effects.xml.
AudioEffect instancje uzyskują i zwalniają sesję podczas tworzenia i usuwania, 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 CamcorderAudioSource. Deklarując konfigurację AudioSource w ten sposób, platforma automatycznie wysyła do HAL żądanie użycia 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 mikrofonem blisko ust: 90 dB SPL odczytuje wartość 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 100–4000 Hz)
- Wymagania dotyczące ultradźwięków o częstotliwości zbliżonej do górnej granicy słyszalności (informacje o testowaniu znajdziesz w sekcji Testy ultradźwięków o częstotliwości zbliżonej do górnej granicy słyszalności):
- 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 Hz lub 48000 Hz bez filtrów pasmowych ani antyaliasingowych.
- Obsługa
- Efekty i przetwarzanie wstępne domyślnie wyłączone
Przykłady dostosowywania różnych efektów do różnych źródeł:
- Eliminator szumu
- Dostosowane do tłumienia szumu wiatru w przypadku urządzenia
CAMCORDER - Dostosowano do stacjonarnego tłumika szumów dla:
VOICE_COMMUNICATION
- Dostosowane do tłumienia szumu wiatru w przypadku urządzenia
- Automatyczna regulacja wzmocnienia
- Dostosowane do rozmów z bliska na
VOICE_COMMUNICATIONi głównym mikrofonie telefonu - Dostosowane do rozmów z daleka w przypadku
CAMCORDER
- Dostosowane do rozmów z bliska na
Zasoby
Więcej informacji znajdziesz w tych materiałach:
- Dokumentacja Androida dotycząca pakietu audiofx
- Dokumentacja Androida dotycząca efektu dźwiękowego tłumienia szumów
/device/google/crosshatch/audio_effects.xmlplik dla Pixela 3