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

В 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. Настройка пространственного звука.

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

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

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

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

Аудио форматы

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

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

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

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

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

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

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

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

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

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

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

Рекомендации по реализации отслеживания положения головы

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

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

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

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

    ht-ui

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

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

  • Состояние по умолчанию для отслеживания положения головы после первоначального сопряжения гарнитуры установлено на «включено» .

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

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

Отчет о позе головы

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

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

Задержка

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

Частота отчетов о позе головы

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

Оптимизация энергопотребления

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

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

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

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

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

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

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

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

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

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

См. Отслеживание головы через звук LE , чтобы узнать о настройках режима задержки для звука LE.