基于 LE Audio 的头部追踪

蓝牙 (BT) 低功耗 (LE) 音频 引入了面向头部追踪 (HT) 数据的异步连接导向逻辑通道 (LE-ACL) 和等时 (LE-ISO) 逻辑传输机制。

Android 15 提供了针对 HT 的延迟模式调整支持,具体取决于使用的是 LE-ACL 还是 LE-ISO 传输机制。

本页面介绍了音频框架、音频 HAL 和蓝牙堆栈如何交互以发现和选择主机和耳机支持的 LE-ACL 或 LE-ISO 传输机制。

对 LE-ACL 和 LE-ISO 的支持

Android 15 通过使用供应商定义的系统属性、音频 HAL 延迟模式空间音频器连接模式,纳入了对 LE-ACL 和 LE-ISO 传输机制的支持。

系统属性

手机供应商实现在 bluetooth.core.le.dsa_transport_preference 系统属性中列出了受支持的传输机制。该值是以逗号分隔的字符串列表,列出了首选顺序的受支持的传输方式

  • le-acl:LE-ACL 传输,当惯性测量单元 (IMU) 数据通过传感器堆栈报告时。
  • iso-hw:ISO 传输,能够将 HT 数据直接从蓝牙控制器隧道传输到音频 DSP 中的空间音频器。
  • iso-sw:不具备隧道传输功能的 ISO 传输,当 IMU 数据通过传感器堆栈报告时。

延迟模式

在 BT LE 音频的情况下,BT 堆栈向音频 HAL 和音频框架指示受支持的延迟模式的机制与为 BT Classic (A2DP) 定义的机制相同。音频 HAL 根据当前选定的音频设备报告受支持的延迟模式。

A2DP 实现仅支持 FREELOW_LATENCY 模式。

相比之下,对于 BT LE 音频,音频 HAL 中定义了以下延迟模式,以支持添加 LE-ACL 和 LE-ISO 传输机制

  • FREE:此值表示延迟没有特定约束。当 HAL 指示不支持低延迟,或者框架指示 HT 未激活时,将使用此模式。

  • LOW:此值表示与 HT 操作兼容的相对低延迟(例如,小于 100 毫秒)。当支持低延迟并且 HID 通过 ACL 协议传输(由 HAL 指示),或者当 HT 处于活动状态且没有其他低延迟模式可用时(由框架指示),将使用此模式。

  • DYNAMIC_SPATIAL_AUDIO_SOFTWARE:满足以下条件之一时,将使用此模式

    • 当支持低延迟时,HID 通过 ISO 协议传输,并且 HID 无法隧道传输到空间音频器效果引擎(由 HAL 指示)。
    • 当 HT 处于活动状态并且使用 ISO 协议时,音频框架会将 HID 数据提供给空间音频器效果引擎(由框架指示)。

    在此模式下,框架中的 HT 计算库对 IMU 数据执行所有预处理,并与手机传感器指示的手机移动进行协调。

  • DYNAMIC_SPATIAL_AUDIO_HARDWARE:满足以下条件之一时,将使用此模式

    • 当支持低延迟时,HID 通过 ISO 协议传输,并且 HID 可以隧道传输到空间音频器效果引擎(由 HAL 指示)。
    • 当 HT 处于活动状态并且使用 ISO 协议时,HID 数据会隧道传输到空间音频器效果引擎(由框架指示)。

    在此模式下,空间音频器效果引擎直接从 BT 堆栈或 BT 控制器接收未经处理的 IMU 数据。空间音频器效果实现对 IMU 数据执行所有预处理,并与手机传感器指示的手机移动进行协调。

延迟模式枚举映射到 bluetooth.core.le.dsa_transport_preference 系统属性,位于 Spatializer.cpp 中。

空间音频器支持

音频策略服务中的空间音频器控制器控制通过 LE 音频选择 HT 传输协议。空间音频器效果引擎通过 HeadTracking.ConnectionMode 功能指示对 HT 数据隧道传输的支持。

受支持的 HT 连接模式如下:

  • FRAMEWORK_PROCESSED:音频框架以头对舞台向量格式向 HAL 提供预处理的 IMU 数据。此默认模式对应于当前使用 BT classic 的模式。
  • DIRECT_TO_SENSOR_SW:空间音频器效果引擎通过传感器软件堆栈直接连接到传感器。音频框架仅控制传感器的启用状态。不使用 AOSP libheadtracking IMU 数据预处理或 DSP 卸载空间音频器实现的软件实现可以使用 DIRECT_TO_SENSOR_SW 模式。
  • DIRECT_TO_SENSOR_TUNNEL:空间音频器效果引擎通过硬件隧道传输直接连接到传感器。音频框架仅控制传感器的启用状态。DSP 卸载空间音频器实现可以使用 DIRECT_TO_SENSOR_TUNNEL 模式。

延迟模式选择

框架从 HAL 报告的受支持延迟模式列表中选择延迟模式。延迟模式根据当前的 HT 启用状态、当前的空间音频器支持以及供应商指定的系统属性设置,该属性确定传输机制之间的优先级顺序。

框架在 selectHeadtrackingConnectionMode_l 中使用以下流程来选择延迟模式

  1. 框架从 bluetooth.core.le.dsa_transport_preference 系统属性加载传输首选项。
  2. 根据步骤 1 中加载的列表,对音频 HAL 报告的受支持延迟模式进行过滤和排序。
  3. 如果优先级最高的低延迟模式是 iso-hw 并且空间音频器实现支持直接传感器连接(即,空间音频器中设置了 DIRECT_TO_SENSOR_SWDIRECT_TO_SENSOR_TUNNEL),则延迟模式设置为 DYNAMIC_SPATIAL_AUDIO_HARDWARE
  4. 如果优先级最高的低延迟模式是 iso-hw 并且空间音频器实现不支持直接传感器连接(空间音频器中未设置 DIRECT_TO_SENSOR_SWDIRECT_TO_SENSOR_TUNNEL),则下一个首选模式(iso-swle-acl)确定延迟模式(DYNAMIC_SPATIAL_AUDIO_SOFTWARELOW)。

    如果未指定下一个首选模式,则系统会报告产品配置错误。