蓝牙低功耗音频 Le audio音量偏移控制协议(VOCS)剖析

在无线音频的世界里,一场静默却深刻的革命正在进行。

它,就是LE Audio。

这不仅仅是一次技术迭代,而是从底层重新定义声音如何被创造、传输和体验的范式转移。其复杂性令人敬畏------它并非单一技术,而是一套精密的生态系统:全新的LC3编解码器以超凡效率重塑音质与功耗的平衡,多重串流音频让真无线立体声达到前所未有的稳定与同步,而音频广播功能则打破了"一对一"连接的百年窠臼,让声音如电台般自由播撒。

然而,正是这种复杂性,构成了我们必须深入学习它的不可辩驳的理由。未来的声音图景将由它绘制:从下一代真无线耳机、无障碍助听设备到公共场所的沉浸式音频导览、多语言广播,乃至元宇宙中清晰无缝的语音交互。不了解LE Audio,将意味着在即将到来的音频浪潮中失去对话的基石。

这不仅仅关乎技术本身,更关乎我们如何连接彼此,如何感知世界。让我们共同开启这段探索之旅,揭开LE Audio的复杂面纱,看清它为何必将成为未来数年里,每一个科技从业者、音频爱好者乃至普通用户都无法忽视的关键命题。

接下来的系列文章,我们将逐步拆解这座精妙的技术大厦。

同时我也录制了一系列的Le audio视频,有兴趣的可以咨询,我会带领你们入门Le audio!翻过大山,眼下皆是风景!!!


视频链接: https://item.taobao.com/item.htm?id=1001969040805&mi_id=000032T4qZX9WZoRwX6YbxlNUaZOfOI6XoxDx0jxsfnwlEc&spm=a21xtw.29178619.0.0


一. 概念

1. 概念

VOCS(Volume Offset Control Service )服务使设备能够公开音频输出的音量偏移量。

该配置文件定义了两个角色:音量渲染器 角色和音量控制器角色。

音量渲染器(Volume Renderer) 是接收一个或多个音频输入并对音频输出设备进行控制的设备。
**音量控制器(Volume Controller)**是控制此音频的音量及相关状态的设备。

  • 音量渲染器应作为GATT服务器。
  • 音量控制器应作为GATT客户端。

对应的关系如下:

其中Volume Controller对应设备的协议就是VCP(Volume Control Profile)协议

其中音频渲染器**(Volume Renderer)**设备包含VCS/AICS/VOCS协议,整个音频渲染器的架构如下:

一个设备上可能存在一个或多个音量偏移控制服务(VOCS)实例

VOCS在整个le audio的架构如下:

2. 特征属性

|---------------------------------------|--------|---------------------|-------------------------------------------|----------|
| 特征名称 (Characteristic Name) | 要求 | 必选属性 | 可选属性 | 安全权限 |
| 音量偏移状态 (Volume Offset State) | 必须 (M) | 读、通知 (Read, Notify) | 无 (None) | 需加密 |
| 音频位置 (Audio Location) | 必须 (M) | 读、通知 (Read, Notify) | 无响应写入、通知 (Write Without Response, Notify) | 需加密 |
| 音量偏移控制点 (Volume Offset Control Point) | 必须 (M) | 写 (Write) | 无 (None) | 需加密 |
| 音频输出描述 (Audio Output Description) | 必须 (M) | 读、通知 (Read, Notify) | 无响应写入、通知 (Write Without Response, Notify) | 需加密 |

其中VOCS的primary service的UUID为

VOCS包含的服务属性的UUID为:

二. 特征介绍

1. Volume Offset State

音量偏移状态特征应用于反映此服务所对应的音频音量状态,音量偏移状态特征的值应使用表中描述的格式。

Volume_Offset

音量偏移字段的值用于控制服务器所控制的独立音频输出(例如左扬声器或右扬声器)的偏移量。该字段可用于调整声道平衡或其他电平调节。

音量偏移字段是一个无量纲的数值,它将叠加在音频输出的音量上。因此,正的音量偏移值将提升音频输出音量,而负的音量偏移值则会降低音频输出音量。

Change_Counter

服务器应将变更计数器字段初始化为一个任意值。当音量偏移字段的值发生改变时,变更计数器字段的值应递增 1,否则不应变动。当变更计数器字段的值达到 255 时,其下一次递增将回到 0。

2. Audio Location

音频位置特征值是一个位掩码,其值应设为反映与VOCS实例关联的音频输出位置(例如左声道或右声道)的标志。例如,服务器可能拥有左、右两个扬声器用于控制平衡,在这种情况下,服务器应为每个扬声器实例化一个VOCS。客户端可以利用该值向用户传达服务器的音频信息

|---------------|-----------------------------------------------------------|
| 值 (Value) | 音频位置 (Audio Location) |
| 0x00000000 | 单声道音频(无指定音频位置) (Mono Audio (no specified Audio Location)) |
| 0x00000001 | 前左 (Front Left) |
| 0x00000002 | 前右 (Front Right) |
| 0x00000004 | 前中 (Front Center) |
| 0x00000008 | 低频效果 1 (Low Frequency Effects 1) |
| 0x00000010 | 后左 (Back Left) |
| 0x00000020 | 后右 (Back Right) |
| 0x00000040 | 前中左 (Front Left of Center) |
| 0x00000080 | 前中右 (Front Right of Center) |
| 0x00000100 | 后中 (Back Center) |
| 0x00000200 | 低频效果 2 (Low Frequency Effects 2) |
| 0x00000400 | 侧左 (Side Left) |
| 0x00000800 | 侧右 (Side Right) |
| 0x00001000 | 前左上 (Top Front Left) |
| 0x00002000 | 前右上 (Top Front Right) |
| 0x00004000 | 前中上 (Top Front Center) |
| 0x00008000 | 顶部中央 (Top Center) |
| 0x00010000 | 后左上 (Top Back Left) |
| 0x00020000 | 后右上 (Top Back Right) |
| 0x00040000 | 侧左上 (Top Side Left) |
| 0x00080000 | 侧右上 (Top Side Right) |
| 0x00100000 | 后中上 (Top Back Center) |
| 0x00200000 | 前下中央 (Bottom Front Center) |
| 0x00400000 | 前下左 (Bottom Front Left) |
| 0x00800000 | 前下右 (Bottom Front Right) |
| 0x01000000 | 前左宽 (Front Left Wide) |
| 0x02000000 | 前右宽 (Front Right Wide) |
| 0x04000000 | 左环绕 (Left Surround) |
| 0x08000000 | 右环绕 (Right Surround) |

3. Volume Offset Control Point

音量偏移控制点特征用于在向其中写入一个数值时,请求服务器执行特定的操作。

表列出了在此 VOCS 中,针对请求操作码和操作数的音量偏移控制点操作要求。

|----------|----------------------------|-----------|---------------------------------------------|
| 操作码值 | 操作码 (Opcode) | 操作码要求 | 操作数 (Operand) |
| 0x01 | 设置音量偏移 (Set Volume Offset) | M (必需) | 变更计数器, 音量偏移 (Change_Counter, Volume_Offset) |

若向音量偏移控制点特征写入"设置音量偏移"操作码,且所附的变更计数器操作数与音量偏移状态特征值中的变更计数器字段相匹配,则服务器应将音量偏移字段的值设置为所附的音量偏移操作数值。如果此设置音量偏移操作导致音量偏移字段的值发生变化,将新的音量偏移状态值通知客户端。

如果音量操作数的值小于 -255 或大于 255,则服务器应返回一个属性协议错误响应

用于执行设置音量偏移操作的音量偏移控制点特征值应按照表 所列的格式进行设置。

4. Audio Output Description

音频输出描述特征应设置为对该 VOCS 实例所描述的音频输出的文字说明,例如"左扬声器"或"右仓库扬声器"。该特征值为一个零个或多个字符的 UTF-8 字符串。

音频输出描述特征值可由客户端读取,并可选择性地写入。当音频输出描述值发生改变时,如果服务器支持该特征的通知功能,则应向已启用客户端特征配置描述符以接收通知的客户端发送新的值。

相关推荐
Wireless_Link4 天前
蓝牙低功耗音频 Le audio音量控制协议(VCS)剖析
le audio vcs·le audio 音量控制·蓝牙低功耗音频·lea vcs·volume control
Wireless_Link4 天前
Android Le audio hardware native接口
le audio·le audio安卓·安卓le audio api
Wireless_Link8 天前
蓝牙低功耗音频 Le audio音频输入控制协议(AICS)剖析
le audio·le audio aics·低功耗蓝牙音频aics·低功耗音频aics·lea aics
Wireless_Link14 天前
蓝牙低功耗音频 Le audio麦克风控制协议(MICP/MICS)剖析
le audio·低功耗蓝牙音频·le audio micp·le audio mics·micp/mics
byte轻骑兵14 天前
【LE Audio】BAP协议精讲[1]: 开启低功耗音频新纪元
人工智能·音视频·蓝牙·le audio·bap
Wireless_Link21 天前
Le audio也有通话功能了!Le audio之通话控制介绍,涵盖CCP/TBS的技术细节
le audio·le audio通话·lea tbs·lea ccp·低功耗音频通话
Wireless_Link23 天前
Le audio之媒体控制(Media control)介绍,涵盖MCP/MCS的技术细节
le audio·le audio mcp·le audio mcs·le audio媒体控制·mcp/mcs
墨染倾城殇2 个月前
蓝牙模块低功耗革命:LE Audio多通道音频技术详解(TWS同步/家庭影院/VR音效)
蓝牙模块·低功耗蓝牙模块·le audio
jiang_bluetooth1 年前
Bluetooth LE AUDIO架构概述
架构·蓝牙·ble audio·le audio