Hochwertiges Spatial Audio und Erfassung von Kopfbewegungen

Mit Android 13 wird Spatial Audio unterstützt, APIs mit denen App-Entwickler feststellen können, ob die aktuelle Kombination die Implementierung, das angeschlossene Headset und die Nutzereinstellungen ermöglichen die Wiedergabe von über mehrere Kanäle hinweg auf immersive Weise präsentieren.

OEMs können einen Spatializer-Audioeffekt mit Unterstützung für die Erfassung von Kopfbewegungen mit das erforderliche Leistungs- und Latenzniveau mit der neuen Audiopipeline. Integration von Architektur und Sensor-Framework. Die HID-Protokoll gibt an, wie ein Headtracking-Gerät über Bluetooth anbringen und als HID verfügbar machen Android Sensor-Framework zu testen. Weitere Informationen finden Sie unter Spatial Audio und Erfassung von Kopfbewegungen. für weitere Anforderungen und die Validierung.

Die Richtlinien auf dieser Seite gelten für Spatial Audio-Lösungen, die die Neue Spatial Audio APIs und Audioarchitektur mit einem Android-Smartphone Android 13 und höher sowie kompatible Headsets mit Sensor zur Erfassung von Kopfbewegungen.

Richtlinien für die Implementierung von dynamischen und statischen Spatial Audio-Modi

Für statisches Spatial Audio ist keine Erfassung von Kopfbewegungen erforderlich. im Headset nicht erforderlich. Alle kabelgebundenen und kabellosen Headsets unterstützen statisches Spatial Audio.

API-Implementierung

OEMs MÜSSEN die Spatializer implementieren. mit Android 12 eingeführt. Die Implementierung muss die CTS-Tests bestehen. Spatializer vorgestellt.

Eine robuste API-Implementierung sorgt dafür, dass App-Entwickler, insbesondere Medien, Streamingdienste auf ein einheitliches Verhalten im gesamten System verlassen können. Auswahl der besten Inhalte entsprechend den Gerätefunktionen, dem aktuellen Rendering und die Entscheidungen der Nutzenden.

Benutzeroberfläche

Nach der Implementierung von Spatializer , überprüfen Sie, ob Ihre UI das folgende Verhalten aufweist:

  • Wenn das Spatial Audio-fähige Headset gekoppelt ist, in den Einstellungen dieses Headsets wird die Ein/Aus-Schaltfläche Spatial Audio angezeigt:

    Spatial Audio UI

    Abbildung 1: Spatial Audio-Einstellung.

  • Die Einstellungen sind verfügbar, wenn das Headset getrennt ist.

  • Die Standardeinstellung für Spatial Audio nach der ersten Kopplung des Headsets ist: auf enabled gesetzt ist.

  • Der vom Nutzer ausgewählte Status – ob aktiviert oder deaktiviert – behält ein Smartphone das Headset neu starten oder entkoppeln und koppeln.

Funktionale Funktionsweise

Audioformate

Die folgenden Audioformate MÜSSEN mit dem Raumklang-Effekt gerendert werden, wenn Spatial Audio ist aktiviert und das Renderinggerät ist kabelgebunden oder per Bluetooth Headset:

  • AAC, 5.1-Kanäle
  • Roh-PCM, 5.1-Kanäle

Für eine bessere Nutzererfahrung empfehlen wir dringend, Folgendes zu unterstützen: Formate/Kanalkonfigurationen:

  • Dolby Digital Plus
  • 5.1.2, 7.1, 7.1.2, 7.1.4 Kanäle

Wiedergabe von Stereoinhalten

Stereoinhalte dürfen nicht mit der Spatializer-Effekt-Engine gerendert werden, auch nicht wenn Spatial Audio aktiviert ist. Wenn eine Implementierung Stereoinhalte zulässt Verräumlichung nicht zu erkennen ist, muss eine benutzerdefinierte UI angezeigt werden, mit der Nutzende diese Funktion aktivieren können. ein- oder ausschalten. Wenn Spatial Audio aktiviert ist, muss es möglich sein, Wiedergabe von Inhalten aus mehreren Kanälen Stereoinhalte ohne Räumlichkeiten, ohne dass Änderungen an den Nutzereinstellungen oder Verbindung und Konfiguration des Headsets neu herstellen. Der Übergang zwischen Spatial Audio und Stereo-Inhalte müssen mit minimalen Audiounterbrechungen wiedergegeben werden.

Übergänge und Nebenläufigkeit von Anwendungsfällen

Gehen Sie bei besonderen Anwendungsfällen so vor:

  • Benachrichtigungen müssen mit den Raumklanginhalten in derselben wie bei nicht raumbezogenen Audioinhalten.
  • Klingeltöne müssen mit Spatial Audio-Inhalten kombiniert werden dürfen. Sie können jedoch wird der Spatial Audio-Inhalt durch den Audiofokussierungsmechanismus standardmäßig pausiert, wenn es einen Klingelton gibt.
  • Wenn Sie einen Anruf oder eine Videokonferenz starten oder annehmen, muss die Audiowiedergabe pausiert werden. Die Spatial Audio-Wiedergabe muss mit denselben Spatial Audio-Einstellungen, wenn der Anruf endet. Neukonfiguration eines Audiopfads vom Raumklang-Modus in den Unterhaltungsmodus wechseln, und nahtlos genug, damit der Anruf nicht beeinträchtigt wird.

Rendering über Lautsprecher

Die Unterstützung der Raumklangung über Lautsprecher oder des Transauralmodus ist nicht möglich. erforderlich.

Richtlinien für die Implementierung der Erfassung von Kopfbewegungen

In diesem Abschnitt geht es um dynamisches Spatial Audio. Anforderungen.

Benutzeroberfläche

Prüfen Sie nach der Implementierung und Kopplung des Spatial Audio-fähigen Headsets, ob dass Ihre UI folgendes Verhalten aufweist:

  • Wenn in den Bluetooth-Geräteeinstellungen die Einstellung Spatial Audio für die aktiviert ist, wird die Einstellung Erfassung von Kopfbewegungen Spatial Audio:

    ht-ui

    Abbildung 2: Spatial Audio und Erfassung von Kopfbewegungen.

  • Die Einstellung für die Erfassung von Kopfbewegungen ist NICHT sichtbar, wenn Spatial Audio deaktiviert ist.

  • Der Standardstatus für die Erfassung von Kopfbewegungen nach der ersten Kopplung des Headsets ist: auf enabled gesetzt ist.

  • Der vom Nutzer ausgewählte Status, ob aktiviert oder deaktiviert, muss durch eine Smartphone startet oder entkoppelt und kopple das Headset.

Funktionale Funktionsweise

Berichte zur Kopfposition

  • Informationen zur Kopfposition in x-, y- und z-Koordinaten, die vom Headset an auf dem Android-Gerät, müssen die Kopfbewegungen des Nutzers schnell und genau.
  • Die Berichterstellung zur Kopfposition über den Bluetooth-Link muss dem festgelegten Protokoll entsprechen. über HID.
  • Das Headset muss Informationen zur Erfassung von Kopfbewegungen an das Android-Smartphone senden. Nur, wenn der Nutzer in den Bluetooth-Geräteeinstellungen die Erfassung von Kopfbewegungen aktiviert UI.

Leistung

Latenz

Die Latenz für die Erfassung von Kopfbewegungen ist definiert als die Zeit, die von einer Kopfbewegung benötigt wird. die von der Trägheitsmaßeinheit (IMU) erfasst wurden, an die Erkennung der durch diese Bewegung verursachten Geräuschänderung. Head-Tracking-Latenz darf 150 ms nicht überschreiten.

Rate der Kopfpositionen

Wenn die Erfassung von Kopfbewegungen aktiviert ist, muss das Headset die Kopfposition auf einem empfohlenen regelmäßigen Intervalls von etwa 20 ms. Um zu verhindern, dass veraltete Eingabeerkennungslogik auf dem Telefon während eines Übertragungsjitters des Bluetooth darf die maximale Zeit zwischen zwei Updates 40 ms nicht überschreiten.

Leistungsoptimierung

Zur Optimierung der Energie empfehlen wir, für die Implementierung die Methode Bluetooth-Codec-Wechsel und Auswahl des Latenzmodus des Audio-HAL und Bluetooth Audio HAL Schnittstellen.

Die AOSP-Implementierungen des Audio-Frameworks und des Bluetooth-Stacks sind bereits unterstützen Signale zur Steuerung des Codec-Wechsels. Wenn die Implementierung des OEMs dem primären Audio-HAL für Bluetooth-Audio, auch als Codec-Auslagerungsmodus bezeichnet, den Der OEM muss sicherstellen, dass der Audio-HAL diese Signale zwischen den Audio-HAL weiterleitet. und den Bluetooth-Stack.

Codec-Wechsel

Wenn dynamisches Spatial Audio und die Erfassung von Kopfbewegungen aktiviert sind, verwende wie Opus. Beim Spielen eines nicht räumlichen Audioinhalten enthält, verwenden Sie einen Codec mit geringem Stromverbrauch, z. B. Advanced Audio Coding (AAC):

Befolge beim Codec-Switch folgende Regeln:

  • Verfolgen Sie nur die Aktivität auf den folgenden Audio-HAL-Ausgabestreams:
    • Dedizierte Spatializer-Ausgabe
    • Medienspezifische Streams, z. B. Deep-Buffer oder komprimierte Auslagerung Wiedergabe
  • Wenn alle relevanten Streams inaktiv sind und der Spatializer-Stream gestartet wird, starte den Bluetooth-Stream, wobei isLowLatency auf true gesetzt ist, um einen Codec mit niedriger Latenz anzugeben.

  • Wenn alle relevanten Streams inaktiv sind und ein Mediastream gestartet wird, starten Sie den Bluetooth-Stream, wobei isLowLatency auf false gesetzt ist, um einen Codec mit geringem Stromverbrauch anzugeben.

  • Wenn ein Medienstream aktiv ist und der Spatializer-Stream startet, starte den Bluetooth-Stream mit isLowLatency auf true eingestellt.

Auf der Headset-Seite muss das Headset sowohl eine niedrige Latenz als auch einen geringen Stromverbrauch unterstützen. -Decodierer an und implementieren das Standard-Codec-Auswahlprotokoll.

Anpassung des Latenzmodus

Die Anpassung des Latenzmodus erfolgt, wenn der Codec mit niedriger Latenz ausgewählt wird.

Je nachdem, ob die Erfassung von Kopfbewegungen aktiviert oder deaktiviert ist, verwendet die Latenzmodusanpassung der verfügbaren Mechanismen zur Verringerung oder Erhöhung der Latenz, Kompromiss zwischen Latenz, Leistung und Audioqualität. Wenn Spatial Audio aktiviert und die Erfassung von Kopfbewegungen aktiviert ist, wird der Modus mit niedriger Latenz ausgewählt. Wann? Spatial Audio ist aktiviert und die Erfassung von Kopfbewegungen ist deaktiviert, der Free-Latenz-Modus ausgewählt ist. Die Latenzanpassung sorgt für erhebliche Energieeinsparungen und Stabilität der Bluetooth-Audioverbindung, wenn nur statisches Spatial Audio aktiviert ist angefordert. Der am häufigsten verwendete Mechanismus zur Anpassung der Latenz ist die Erweiterung der Puffergröße für Jitter im Bluetooth-Headset.