Wdrożenie wysokiej jakości dźwięku przestrzennego i śledzenia ruchów głowy

Android 13 obsługuje dźwięk przestrzenny Interfejsy API które pozwalają deweloperom aplikacji określić, czy obecne połączenie telefonu o wdrażaniu, podłączonych słuchawkach i ustawieniach użytkownika, które umożliwiają odtwarzanie wielokanałowych treści audio w sposób, który da widzom głębię.

OEM może zapewnić efekt dźwięku przestrzennego z obsługą śledzenia ruchów głowy za pomocą wymagany poziom wydajności i opóźnień, za pomocą nowego potoku audio. architekturę i integrację platformy czujników. Protokół HID określa, jak Podłączanie urządzenia śledzącego ruch głowy przez Bluetooth i udostępnienie go jako HID i obsługuje czujniki Androida. Zobacz Dźwięk przestrzenny i śledzenie ruchów głowy .

Wskazówki na tej stronie dotyczą rozwiązania dotyczącego dźwięku przestrzennego, które wykorzystuje nowe interfejsy API do obsługi dźwięku przestrzennego i architektura dźwięku z telefonem z Androidem Android 13 lub nowszy oraz zgodne zestawy słuchawkowe z czujnik monitorowania ruchów głowy.

Wytyczne dotyczące implementacji dynamicznych i statycznych trybów dźwięku przestrzennego

Statyczny dźwięk przestrzenny nie wymaga śledzenia ruchów głowy, nie są wymagane w zestawie słuchawkowym. Wszystkie przewodowe i bezprzewodowe zestawy słuchawkowe obsługują statycznego dźwięku przestrzennego.

Implementacja interfejsu API

OEM MUSI wdrożyć Spatializer omówiono w Androidzie 12. Implementacja musi przejść testy CTS. w ramach zajęć Spatializer.

Wydajne wdrożenie interfejsu API sprawia, że deweloperzy aplikacji, w szczególności branży medialnej, mogą korzystać z spójnego działania w całym ekosystemie wybierać najlepsze treści na podstawie możliwości urządzenia, aktualne opcje renderowania, kontekst i wybory użytkowników.

Interfejs użytkownika

Po wdrożeniu interfejsu Spatializer , sprawdź, czy interfejs użytkownika działa w taki sposób:

  • Po sparowaniu zestawu słuchawkowego obsługującego dźwięk przestrzenny ustawienia tego zestawu słuchawkowego mają przełącznik Dźwięk przestrzenny:

    interfejs z dźwiękiem przestrzennym

    Rysunek 1. Ustawienie dźwięku przestrzennego.

  • Te ustawienia są dostępne po odłączeniu zestawu słuchawkowego.

  • Domyślny stan dźwięku przestrzennego po pierwszym sparowaniu zestawu słuchawkowego to ustaw jako włączone.

  • Stan wybranego przez użytkownika (włączony lub wyłączony) utrzymuje telefon ponownego uruchomienia lub rozparowania i sparowania zestawu słuchawkowego.

Działanie funkcjonalne

Formaty audio

Poniższe formaty dźwięku MUSZĄ być renderowane przez efekt przestrzenny, gdy: dźwięk przestrzenny jest włączony, a urządzenie renderujące jest przewodowe lub Bluetooth zestaw słuchawkowy:

  • AAC, 5.1 kanałów
  • Nieprzetworzony PCM, 5.1 kanał

Aby zadbać o wygodę użytkowników, zdecydowanie zalecamy obsługę tych formaty/konfiguracje kanałów:

  • Dolby Digital Plus
  • 5.1.2, 7.1, 7.1.2, 7.1.4 kanał

Odtwarzanie treści stereo

Treści stereo nie mogą być renderowane za pomocą mechanizmu efektów przestrzennych, nawet jeśli włączony jest dźwięk przestrzenny. Jeśli implementacja pozwala na treści stereofoniczne przestrzenną, musi przedstawiać niestandardowy interfejs użytkownika, który pozwoli użytkownikowi włączyć tę funkcję możesz łatwo włączyć lub wyłączyć. Kiedy włączony jest dźwięk przestrzenny, musi być możliwe przejście między odtwarzaniem przestrzennych treści wielokanałowych nieprzestrzenne treści stereo bez konieczności wprowadzania zmian w ustawieniach użytkownika lub ponowne podłączenie lub ponowna konfiguracja zestawu słuchawkowego. Przejście między dźwiękiem przestrzennym materiały i stereofoniczne materiały muszą być wyświetlane z minimalnymi zakłóceniami dźwięku.

Przejścia przypadków użycia i równoczesność

Specjalne przypadki użycia należy traktować jak w ten sposób:

  • Powiadomienia muszą być wymieszane z dźwiękiem przestrzennym w tym samym jak w przypadku treści audio nieprzestrzennych.
  • Dzwonki muszą być mieszane z dźwiękiem przestrzennym. Pamiętaj jednak: domyślnie mechanizm ostrości dźwięku wstrzymuje treści dźwiękowe, gdy dostępny jest dzwonek.
  • Podczas odbierania albo rozpoczynania rozmowy telefonicznej lub wideo odtwarzanie dźwięku musi zostać wstrzymane. Odtwarzanie dźwięku przestrzennego musi być wznawiane w taki sam sposób ustawień dźwięku przestrzennego po zakończeniu rozmowy. Ponowna konfiguracja ścieżki audio przejście z trybu dźwięku przestrzennego na tryb konwersacyjny musi następować szybko i płynnie, tak by nie wpływało na jakość połączenia.

Renderowanie na głośnikach

Nie jest obsługiwana w przypadku przekształcania dźwięku w przestrzenny dźwięk na głośnikach ani w trybie transsłuchującym.

Wytyczne dotyczące implementacji śledzenia ruchów głowy

Ta sekcja dotyczy dynamicznego dźwięku przestrzennego z określonym zestawem słuchawkowym .

Interfejs użytkownika

Po wdrożeniu i sparowaniu zestawu słuchawkowego obsługującego dźwięk przestrzenny sprawdź, że Twój interfejs działa w ten sposób:

  • W ustawieniach urządzenia Bluetooth, gdy ustawienie Dźwięk przestrzenny dla są włączone, ustawienie Monitorowanie ruchów głowy jest widoczne w Dźwięk przestrzenny:

    ht-ui

    Rysunek 2. Ustawienie dźwięku przestrzennego i śledzenia ruchów głowy.

  • Ustawienie śledzenia ruchów głowy NIE jest widoczne, gdy dźwięk przestrzenny jest wyłączony.

  • Domyślny stan śledzenia ruchów głowy po pierwszym sparowaniu to ustaw jako włączone.

  • Stan wybranego przez użytkownika (włączonego lub wyłączonego) musi być widoczny przez ponownego uruchomienia telefonu lub rozparowania i sparowania zestawu słuchawkowego.

Działanie funkcjonalne

Raportowanie pozycji głowy

  • informacje o pozycji głowy we współrzędnych x, y i z, wysyłane z zestawu słuchawkowego do urządzenie z systemem Android, musi szybko odzwierciedlać ruchy głowy użytkownika dokładnie.
  • Raportowanie pozycji głowy przez link Bluetooth musi być zgodne z protokołem nad HID.
  • Gogle muszą wysyłać informacje o śledzeniu ruchów głowy do telefonu z Androidem tylko wtedy, gdy użytkownik włączy Monitorowanie ruchów głowy w ustawieniach urządzenia Bluetooth. Interfejs.

Wydajność

Opóźnienie

Czas oczekiwania na śledzenie ruchów głowy jest określony jako czas, który upływa od momentu ruchu głowy. przechwytywane przez inercyjną jednostkę miary (IMU) do przetworników słuchawek. wykrywanie zmiany dźwięku wywołanej tym ruchem. Czas oczekiwania na śledzenie ruchów głowy nie może przekraczać 150 ms.

Raportowanie pozycji głowy

Gdy monitorowanie ruchów głowy jest włączone, zestaw słuchawkowy musi zgłaszać pozycję głowy na co ok. 20 ms, Aby uniknąć aktywowania nieaktualnych plików logikę wykrywania wejścia w telefonie podczas zakłóceń transmisji Bluetooth: maksymalny czas między 2 aktualizacjami nie może przekraczać 40 ms.

Optymalizacja zużycia

Aby zoptymalizować moc, zalecamy implementację przełączanie kodeków Bluetooth oraz mechanizmy wyboru trybu oczekiwania udostępniane przez dźwięk HAL oraz HAL Audio Bluetooth i interfejsów.

Implementacje platformy audio i stosu Bluetooth w AOSP obsługują sygnały sterujące przełączaniem kodeka. Jeśli implementacja OEM używa główny dźwięk HAL dla dźwięku Bluetooth, nazywany trybem odciążania kodeka, OEM musi dopilnować, że HAL audio przekazuje te sygnały między HAL audio. i stos Bluetooth.

Przełączanie kodeka

Przy włączonym dynamicznym dźwięku przestrzennym i monitorowaniu ruchów głowy użyj kodeka z małym opóźnieniem. Na przykład Opus. Podczas gry w trybie nieprzestrzennym materiałów audio, używaj kodeka o niskim zużyciu energii, takiego jak Zaawansowane kodowanie audio (AAC).

Podczas przełączania kodeka przestrzegaj tych zasad:

  • Śledzenie tylko aktywności w następujących strumieniach audio HAL:
    • Dedykowane wyjście przestrzenne
    • strumienie związane z multimediami, takie jak głęboki bufor lub skompresowane odciążanie; odtwarzanie
  • Gdy wszystkie istotne strumienie są nieaktywne i rozpoczyna się strumień spacjalny, strumień Bluetooth z ustawieniem isLowLatency ustawionym na true, który określa kodek niskiego opóźnienia.

  • Gdy wszystkie istotne strumienie są nieaktywne i rozpoczyna się strumień multimediów, Strumień Bluetooth z ustawieniem isLowLatency ustawionym na false określającym kodek o niskim zużyciu energii.

  • Jeśli strumień multimediów jest aktywny i rozpocznie się strumień spatializer, uruchom ponownie Strumień Bluetooth z urządzeniem isLowLatency ustawionym na true.

Po stronie zestawu słuchawkowego musi on obsługiwać zarówno tryb małego opóźnienia, jak i tryb niskiego opóźnienia. za pomocą dekoderów i wdrożyć standardowy protokół wyboru kodeków.

Korekta trybu opóźnienia

Korekta trybu oczekiwania następuje po wybraniu kodeka małego opóźnienia.

W zależności od tego, czy monitorowanie ruchów głowy jest włączone, regulacja trybu opóźnienia wykorzystuje dostępne mechanizmy ograniczające lub zwiększające opóźnienia w celu dotarcia do między czasem oczekiwania, zasilaniem i jakością dźwięku. Gdy dźwięk przestrzenny jest i monitorowanie ruchów głowy jest włączone, wybrany jest tryb małego opóźnienia. Kiedy włączony jest dźwięk przestrzenny, śledzenie ruchów głowy wyłączone, tryb bezpłatnego opóźnienia zaznaczono. Korekcja czasu oczekiwania zapewnia znaczną oszczędność energii i zwiększa solidność łącza audio Bluetooth, gdy dostępny jest tylko statyczny dźwięk przestrzenny. poproszono o dostęp. Najczęstszym mechanizmem korygowania czasu oczekiwania jest redukcja lub zwiększenie rozmiaru bufora zakłóceń w zestawie słuchawkowym Bluetooth.