基于低能耗蓝牙的半双工语音通信
器向客户机发送数据,数据以属性的形式保存在服务器内,每个属性都含有GATT管理的数据,而且该数据被分配一个通用唯一标识符(UUID)。通过一个L2CAP专用通道,属性协议在服务器属性与客户机之间建立一条通信通道。通用属性配置文件(GATT)在属性协议层添加一个数据抽象模型,负责搜索属性协议保存的数据,在两个设备之间交换特征。每个低能耗蓝牙设备都有一套可能属性(存储服务)和特征(与存储服务相关的属性)。如果在低能耗蓝牙栈上建立一个新应用,则必须定义属性和特征。某一特定应用的特征、属性和底层规范合称配置文件,标准配置文件可保证不同品牌的产品能够互联互通。
III. BLUEVOICE应用
下面我们介绍BlueVoice应用,首先定义语音通信低能耗蓝牙配置文件,然后讨论所涉及设备的通信角色、音频处理和压缩选择、数据分组问题和带宽要求。我们提出两个在音频采集和功耗方面不同的系统配置,以满足不同的应用要求。本章最后一部分介绍在一个实际硬件设备上实现的BlueVoice应用,然后比较并讨论实际测量到的应用性能,例如,功耗、存储器占用、处理性能要求和自动语音识别(ASR)性能。
A. 服务定义
考虑到音频流用例不属于低能耗蓝牙标准配置文件,为实现语音流服务,BlueVoice应用在低能耗蓝牙协议栈上,定义了一个叫做BlueVoice Service(BVS)的"厂商专用配置文件",指定了服务器与客户机之间交换语音数据的方式。此外,考虑到半双工通信需要特别的设计选择,本章稍后详细讨论这个问题。
如前文所述,属性协议ATT是通用属性配置文件GATT在不同设备之间交换数据的传输协议,属性是ATT定义的最小的实体,是可寻址的信息段(内置UUID标识码),可能含有用户数据或关于属性本身架构的元信息,例如,权限、加密和授权属性。GATT服务器属性按特定顺序组成一个服务序列,序列开始部分是服务声明属性,后面跟一个或多个特征和可能的描述符。每个特征都是一个被披露的属性。除标准配置文件UUID外,在定制应用中,开发人员可使用独有的和厂商专用的UUID开发有自己特征的新服务,BlueVoice应用就是这种情况。考虑到单向音频流系统不对称性,服务器通过BVS配置文件向客户机披露数据类型和格式以及访问方式。BVS服务包含下列属性,如图2所示。
服务声明(Handle 0x0010)
– UUID: 标准16位UUID,用于主服务声明(0x2800).
– 权限:读
– 数值: 独有128位BVS UUID.
特征声明 (Handle 0x0011)
– UUID: 标准16位UUID,用于特征声明 (0x2803).
– 权限: 读
– 数值: 独有128位音频UUID, 仅用于通知, Handle: 0x012.
特征数据 (Handle 0x0012)
– UUID: 独有128位音频UUID.
– 权限: 无
– 数值: 实际音频数据
特征声明 (Handle 0x0014)
– UUID: 标准16位UUID,用于特征声明 (0x2803).
– 权限:读
– 数值: 独有128位同步UUID,仅用于通知,Handle: 0x0015.
特征数据 (Handle 0x0015)
– UUID: 独有128位同步UUID.
– 权限: 无
– 数值: 实际同步数据
根据该标准,主服务声明是服务的第一个属性,其数值域包含该声明引入的UUID定义。BlueVoice应用声明使用一个128位独有的UUID(BVS UUID)。BVS包含两个特征,分别叫做音频(Audio)和同步(Sync) 特征。在低能耗蓝牙规范中,每个特征至少包含两个属性,分别是特征声明和特征数值。特征声明以元数据的形式定义其属性,特征数值则是包含实际特征数据。在BlueVoice情况中,音频和同步特征都包含一个单一的由独有128位UUID定义 (AudioData和SyncData UUID) 的属性,分别含有实际音频数据和边信息同步数值。音频和同步特征声明将AudioData和SyncData属性定义为"仅通知",未取得客户机的读写权限,表示音频数据和同步数据只以通知的形式传输,服务器不答复客户机。为与低能耗蓝牙服务的分层架构一致,其它特征可能会增加到未来发布的BlueVoice应用。
图2. BlueVoice服务(BVS)定义
B. 应用设计
本章主要介绍BlueVoice应用设计的(i)低能耗蓝牙通信(ii)音频处理。
(1) 低能耗蓝牙通信
按照低能耗蓝牙协议,通信可以是多点广播,也可以是点对点连接。BlueVoice应用链路层使用连接通信模式,在两个设备之间建立永久性的点对点连接,这两个设备扮演两个不同的角色:中央设备和周边设备。中央设备又称主设备,支持与周边设备(从设备)相关的复杂功能。中央设备是发起通信连接,执行自适应跳频,数