Реализация высококачественного пространственного звука и отслеживания положения головы.

В Android 13 реализована поддержка пространственного звука за счет предоставления API-интерфейсов , которые позволяют разработчикам приложений определять, позволяет ли текущая комбинация реализации телефона, подключенной гарнитуры и пользовательских настроек воспроизводить многоканальный аудиоконтент с эффектом погружения.

OEM-производители могут предоставить эффект пространственного аудио с поддержкой отслеживания головы с требуемым уровнем производительности и задержки, используя новую архитектуру аудиоконвейера и интеграцию сенсорной инфраструктуры. Протокол HID определяет, как подключить устройство отслеживания головы через Bluetooth и сделать его доступным как устройство HID через сенсорную инфраструктуру Android. Дополнительные требования и валидацию см. в разделе Пространственное аудио и отслеживание головы .

Рекомендации на этой странице применимы к решению для пространственного звука, которое использует новые API-интерфейсы пространственного звука и аудиоархитектуру с использованием телефона Android под управлением Android 13 и более поздних версий и совместимых гарнитур с датчиком отслеживания положения головы.

Рекомендации по реализации динамических и статических пространственных аудиорежимов

Статический пространственный звук не требует отслеживания головы, поэтому в гарнитуре не требуется определенная функциональность. Все проводные и беспроводные гарнитуры могут поддерживать статический пространственный звук.

Реализация API

OEM-производители ДОЛЖНЫ реализовать класс Spatializer , представленный в Android 12. Реализация должна пройти тесты CTS , представленные для класса Spatializer .

Надежная реализация API гарантирует, что разработчики приложений, в частности сервисов потоковой передачи мультимедиа, могут рассчитывать на единообразное поведение во всей экосистеме и выбирать лучший контент в соответствии с возможностями устройства, текущим контекстом рендеринга и предпочтениями пользователя.

Пользовательский интерфейс

После реализации класса Spatializer убедитесь, что ваш пользовательский интерфейс имеет следующее поведение:

  • При сопряжении гарнитуры с поддержкой пространственного звука в настройках устройства Bluetooth для этой гарнитуры отображается переключатель пространственного звука :

    spatial-audio-ui

    Рисунок 1. Пространственная настройка звука.

  • Настройки доступны при отключенной гарнитуре.

  • По умолчанию после первоначального сопряжения гарнитуры функция пространственного звука включена .

  • Выбранное пользователем состояние (включено или выключено) сохраняется после перезагрузки телефона или отключения и повторного подключения гарнитуры.

Функциональное поведение

Форматы аудио

Следующие аудиоформаты ДОЛЖНЫ воспроизводиться эффектом Spatializer, когда включен пространственный звук, а устройство рендеринга представляет собой проводную или Bluetooth-гарнитуру:

  • AAC, 5.1 каналов
  • Необработанный PCM, 5.1 каналов

Для лучшего пользовательского опыта мы настоятельно рекомендуем поддерживать следующие форматы/конфигурации каналов:

  • Долби Диджитал Плюс
  • Каналы 5.1.2, 7.1, 7.1.2, 7.1.4

Воспроизведение стереоконтента

Стереоконтент не должен визуализироваться через механизм эффектов spatializer, даже если включен пространственный звук. Если реализация допускает пространственную локализацию стереоконтента, она должна представлять пользовательский интерфейс, который позволяет пользователю легко включать и выключать эту функцию. Когда включен пространственный звук, должен быть возможен переход между воспроизведением пространственного многоканального контента к непространственному стереоконтенту без необходимости внесения каких-либо изменений в настройки пользователя или повторного подключения или перенастройки гарнитуры. Переход между пространственным аудиоконтентом и стереоконтентом должен происходить с минимальным прерыванием звука.

Переходы между вариантами использования и параллелизм

Особые случаи использования обрабатываются следующим образом:

  • Уведомления должны смешиваться с пространственным аудиоконтентом таким же образом, как и с непространственным аудиоконтентом.
  • Мелодии звонков должны быть разрешены для смешивания с пространственным аудиоконтентом. Однако по умолчанию механизм аудиофокуса приостанавливает пространственный аудиоконтент, когда есть рингтон.
  • При ответе на телефонный звонок или при совершении видеоконференции воспроизведение пространственного звука должно приостанавливаться. Воспроизведение пространственного звука должно возобновляться с теми же настройками пространственного звука после завершения вызова. Перенастройка аудиотракта для переключения из режима пространственного звука в режим разговора должна происходить достаточно быстро и плавно, чтобы не влиять на качество вызова.

Рендеринг через динамики

Поддержка пространственного звучания звука через динамики или трансаурального режима не требуется.

Руководство по внедрению отслеживания положения головы

В этом разделе основное внимание уделяется динамическому пространственному звуку, который предъявляет особые требования к гарнитуре.

Пользовательский интерфейс

После внедрения и сопряжения гарнитуры с поддержкой пространственного звука убедитесь, что ваш пользовательский интерфейс имеет следующее поведение:

  • В настройках устройства Bluetooth, когда для гарнитуры включен параметр «Пространственный звук» , в разделе «Пространственный звук» отображается параметр «Отслеживание положения головы» :

    ht-ui

    Рисунок 2. Настройка пространственного звука и отслеживания положения головы.

  • Настройка отслеживания положения головы НЕ видна, если отключен пространственный звук.

  • По умолчанию после первоначального сопряжения гарнитуры функция отслеживания положения головы включена .

  • Выбранное пользователем состояние (включено или выключено) должно сохраняться после перезагрузки телефона или отключения и повторного подключения гарнитуры.

Функциональное поведение

Отчет о положении головы

  • Информация о положении головы в координатах x, y и z, отправляемая с гарнитуры на устройство Android, должна быстро и точно отражать движения головы пользователя.
  • Передача данных о положении головы по каналу Bluetooth должна соответствовать протоколу, определенному в HID .
  • Гарнитура должна отправлять информацию об отслеживании положения головы на телефон Android только в том случае, если пользователь включил функцию отслеживания положения головы в пользовательском интерфейсе настроек устройства Bluetooth.

Производительность

Задержка

Задержка отслеживания головы определяется как время, которое проходит от момента движения головы, зафиксированного инерциальным измерительным блоком (IMU), до обнаружения преобразователями наушников изменения звука, вызванного этим движением. Задержка отслеживания головы не должна превышать 150 мс.

Скорость сообщения о положении головы

При активном отслеживании головы гарнитура должна сообщать о положении головы с рекомендуемой периодичностью примерно 20 мс. Чтобы избежать срабатывания логики обнаружения устаревшего ввода на телефоне во время дрожания передачи Bluetooth, максимальное время между двумя обновлениями не должно превышать 40 мс.

Оптимизация мощности

Для оптимизации энергопотребления мы рекомендуем использовать в реализации механизмы переключения кодеков Bluetooth и выбора режима задержки, предоставляемые интерфейсами аудио HAL и Bluetooth-аудио HAL .

Реализации AOSP аудиофреймворка и стека Bluetooth уже поддерживают сигналы для управления переключением кодеков. Если реализация OEM использует первичный аудио HAL для аудио Bluetooth, известный как режим разгрузки кодека , OEM должен гарантировать, что аудио HAL ретранслирует эти сигналы между аудио HAL и стеком Bluetooth.

Переключение кодеков

При включенном динамическом пространственном звуке и отслеживании головы используйте кодек с низкой задержкой, например Opus . При воспроизведении непространственного аудиоконтента используйте маломощный кодек, например Advanced Audio Coding (AAC) .

При переключении кодеков соблюдайте следующие правила:

  • Отслеживайте только активность следующих выходных аудиопотоков HAL:
    • Выделенный выход пространственного преобразователя
    • Специфические медиапотоки, такие как глубокая буферизация или сжатое воспроизведение с выгрузкой

Что касается гарнитуры, она должна поддерживать как декодеры с малой задержкой, так и маломощные декодеры, а также реализовывать стандартный протокол выбора кодека.

Регулировка режима задержки

Регулировка режима задержки происходит при выборе кодека с низкой задержкой.

В зависимости от того, включено или выключено отслеживание головы, настройка режима задержки использует доступные механизмы для уменьшения или увеличения задержки, чтобы достичь наилучшего компромисса между задержкой, мощностью и качеством звука. Когда включено пространственное аудио и включено отслеживание головы, выбирается режим с низкой задержкой. Когда включено пространственное аудио и выключено отслеживание головы, выбирается режим со свободной задержкой. Настройка задержки обеспечивает значительную экономию энергии и повышенную надежность аудиоканала Bluetooth, когда запрашивается только статическое пространственное аудио. Наиболее распространенным механизмом настройки задержки является уменьшение или расширение размера буфера джиттера в гарнитуре Bluetooth.

Информацию о настройках режима задержки для звука LE см. в разделе Отслеживание положения головы при использовании звука LE.