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

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

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

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

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

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

реализация API

Производители оборудования ОБЯЗАНЫ реализовать класс Spatializer представленный в Android 12. Реализация должна пройти тесты CTS , введенные для класса Spatializer .

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

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

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

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

    spatial-audio-ui

    Рисунок 1. Настройки пространственного звука.

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

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

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

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

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

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

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

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

  • Dolby Digital Plus
  • 5.1.2, 7.1, 7.1.2, 7.1.4 каналов

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

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

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

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

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

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

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

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

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

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

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

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

    ht-ui

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

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

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

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

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

Сообщение о положении головы

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

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

Задержка

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

частота регистрации положения головы

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

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

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

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

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

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

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

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

  • Когда все соответствующие потоки находятся в режиме ожидания и начинается поток мультимедиа, запустите поток Bluetooth , установив параметр isLowLatency в значение false , чтобы указать кодек с низким энергопотреблением.

  • Если активен медиапоток и запускается поток пространственного позиционирования, перезапустите поток Bluetooth , установив параметр isLowLatency в true .

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

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

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

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

См. раздел «Отслеживание положения головы при передаче звука LE» для настройки режима задержки при передаче звука LE.