蓝牙音频设备同步播放方法、系统及蓝牙音频主、从设备与流程

文档序号:22887555发布日期:2020-11-10 18:06阅读:952来源:国知局
蓝牙音频设备同步播放方法、系统及蓝牙音频主、从设备与流程

本发明涉及蓝牙通信技术领域,特别是一种蓝牙音频设备同步播放方法、蓝牙音频主设备、蓝牙音频从设备及蓝牙音频同步播放系统。



背景技术:

tws为truewirelessstereo的简称,即蓝牙真立体声技术,使得至少2个独立的蓝牙音频设备(以蓝牙耳机为例)完全摒弃了连接线,直接通过蓝牙连接,即可播放音源设备传输的立体声音频流。

tws技术的核心原理是将两只耳机分为了主耳机(twsmaster)和从耳机(twsslave)。主耳机是能够接收智能手机、笔记本电脑等音源设备传输的a2dp协议的音频,并将音频传输给其他tws设备的耳机。从耳机是指能够从主耳机接收a2dp协议音频的耳机。tws技术使得主流的a2dp协议的音频可以从主耳机传输到从耳机,实现音频在两个分离的耳机中同步播放,进而实现立体声效果。

根据拓扑结构的不同,tws方案可分为两大类:

第一类为转发模式:主耳机与音源设备建立音频连接,并且,主耳机与从耳机建立音频连接,主耳机将从音源设备得到的音频转发给从耳机。主耳机和从耳机分别缓存一定的音频后同步开始播放。

第二类为侦听模式:主耳机与音源设备建立音频连接,定义为微微网piconet1,从耳机与主耳机建立蓝牙连接,定义为微微网piconet2,主耳机将与音源设备之间的链路信息,通过piconet2传给从耳机,使得从耳机可以侦听piconet1的音频数据流。主、从耳机分别缓存一定量的音频后同步开始播放。

随着技术的不断发展,人们对音频的音质的要求也日益提高,高清晰度、高分辨率的音频不断出现,以cd音质录制的音频为例,其采样率通常是16位44.1khz,即每样本点的时长为22.6us,pono音质的采样率达到24位192khz,即每样本点的时长仅为5.2us,然而蓝牙协议规定一个蓝牙时隙的时长是625us,因此时隙为单位的传输精度还不够高,无法满足更精准的同步控制要求。



技术实现要素:

本发明克服了上述缺点,提供了一种更为精准的蓝牙音频设备同步播放方法、蓝牙音频主设备、蓝牙音频从设备及蓝牙音频同步播放系统。

本发明解决其技术问题所采取的技术方案是:

一种蓝牙音频设备同步播放方法,在蓝牙音频主设备端:

为待同步播放的音频数据包,对应地确定其播放时间;

将所述播放时间转换成时间戳,所述时间戳包含蓝牙时钟的值和微秒级时钟偏移值;

发送所述时间戳。

进一步的,所述为待同步播放的音频数据包,对应地确定其播放时间的步骤,可进一步包括,

如当前音频数据包为待同步播放的首个音频数据包,则以当前的本地蓝牙时钟与预设的固定偏移时间量之和作为起始播放时间,并将所述起始播放时间作为当前音频数据包的播放时间;

如当前音频数据包不为待同步播放的首个音频数据包,则根据自所述首个音频数据包至前一个音频数据包的音频总样本数计算播放总时长,并将所述播放总时长和所述起始播放时间之和作为当前音频数据包的播放时间。

进一步的,将所述播放时间转换成时间戳的步骤,具体可为,以所述播放时间除以蓝牙时隙的时长,将其结果的整数部分作为所述时间戳中蓝牙时钟的值,将其结果的余数部分作为所述时间戳中微秒级时钟偏移值。

进一步的,所述发送所述时间戳的步骤,具体可为:对应于每个音频数据包发送一次时间戳;或者,每间隔预设个数的音频数据包发送一次当前音频数据包的时间戳。

进一步的,所述发送所述时间戳的步骤之后,还可包括:基于所述时间戳播放音频数据包,计时至所述时间戳中的所述蓝牙时钟的值和所述微秒级时钟偏移值均到达时,播放与所述时间戳对应的音频数据包。

进一步的,所述为待同步播放的音频数据包,对应地确定其播放时间的步骤中,还可包括,判断其用于缓存所述音频数据包的缓存区内的缓存状况,当其中的数据缓存量低于预设的最低阈值时,为所述播放时间增加延时;当其中的数据缓存量高于预设的最高阈值时,为所述播放时间减少延时;

其中,所述延时为若干个音频样本的播放时长;所述预设的固定偏移时间量至少基于所述蓝牙音频主设备的所述缓存区的最大缓存量确定。

进一步的,所述待同步播放的音频数据包,具体可为

所述蓝牙音频主设备预先存储的音频数据,并基于预定的音频传输协议编码打包而成;或者,以有线/无线方式接收的音频数据,并基于预定的音频传输协议编码打包而成;所述预定的音频传输协议为蓝牙音频主设备与蓝牙音频从设备之间预定的音频传输协议,或音源设备与蓝牙音频主设备之间预定的音频传输协议。

一种蓝牙音频设备同步播放方法,在蓝牙音频从设备端:

接收待同步播放的音频数据包,并接收对应的时间戳,所述时间戳包含蓝牙时钟的值和微秒级时钟偏移值;

基于所述时间戳播放所述音频数据包,计时至所述时间戳中的所述蓝牙时钟的值和所述微秒级时钟偏移值均到达时,播放与所述时间戳对应的音频数据包。

进一步的,所述接收对应的时间戳的步骤之后,还可包括,比较所述时间戳与本地时钟的差值,当所述差值超过预设阈值时,调整播放速率。

进一步的,所述调整播放速率的步骤,具体可为:在播放音频数据包时,对其中的音频样本插入或丢弃至少一个样本点;或者,在播放音频数据包时,加快或减慢播放采样率。

进一步的,所述接收待同步播放的音频数据包,并接收对应的时间戳的步骤,具体可为:对应于每个音频数据包接收一次时间戳;或者,每间隔预设个数的音频数据包接收一次时间戳;基于所述时间戳,预估其后预设个数的音频数据包的播放时间,并基于预估的播放时间播放对应的音频数据包。

进一步的,所述接收待同步播放的音频数据包,并接收对应的时间戳的步骤,还可进一步包括:

在接收所述待同步播放的音频数据包时进行漏包补偿;

基于对应的时间戳,检查在接收当前音频数据包之前完成的漏包补偿,若存在错误估计的帧数,对当前音频数据包执行相应的加帧或减帧操作。

一种蓝牙音频主设备,包括通信单元和同步控制单元单元,

所述同步控制单元用于为待同步播放的音频数据包对应地确定播放时间,将所述播放时间转换成时间戳,所述时间戳包含蓝牙时钟的值和微秒级时钟偏移值;

所述通信单元用于发送所述时间戳。

进一步的,所述同步控制单元将所述播放时间转换成时间戳,是以所述播放时间除以蓝牙时隙的时长,将其结果的整数部分作为所述时间戳中蓝牙时钟的值,将其结果的余数部分作为所述时间戳中微秒级时钟偏移值。

进一步的,所述通信单元还可用于接收音频数据或/和发送待同步播放的音频数据包;所述通信单元还可用于对应于每个音频数据包、或者每间隔预设个数的音频数据包,发送一次当前音频数据包的时间戳。

进一步的,还可包括播放单元、蓝牙时钟发生器和微秒级计时器;

所述同步控制单元,还用于基于所述时间戳,当蓝牙时钟发生器和微秒级计时器计时至所述蓝牙时钟的值和所述微秒级时钟偏移值均到达时,直接或间接控制所述播放单元播放与所述时间戳对应的音频数据包。

一种蓝牙音频从设备,包括通信单元、同步单元、播放单元、本地蓝牙时钟发生器和微秒级计时器,

所述通信单元,用于接收音频数据包和时间戳,所述时间戳包含蓝牙时钟的值和微秒级时钟偏移值;

所述同步单元,用于基于所述时间戳,当所述本地蓝牙时钟发生器和微秒级计时器计时至所述蓝牙时钟的值和所述微秒级时钟偏移值均到达时,直接或间接控制所述播放单元播放与所述时间戳对应的音频数据包。

进一步的,所述同步单元,还可用于比较所述时间戳与本地时钟的差值,当所述差值超过预设阈值时,调整播放速率。

进一步的,所述通信单元,与所述蓝牙音频主设备通信,接收待同步播放的音频数据包;或者基于蓝牙音频主设备与音源设备之间的链路信息,侦听其通信链路,接收待同步播放的音频数据包;

所述同步单元,还用于在间隔预设个数的音频数据包接收到一次当前音频数据包的时间戳时,基于所述时间戳,预估其后预设个数的音频数据包的播放时间,并基于预估的播放时间播放对应的音频数据包;和/或,所述同步单元,还用于在对接收的音频数据包进行漏包补偿时,基于当前音频数据包的时间戳,检查在接收当前音频数据包之前完成的漏包补偿,若存在错误估计的帧数,对当前音频数据包执行相应的加帧或减帧操作。

一种蓝牙音频同步播放系统,包括上述的蓝牙音频主设备和至少一个上述的蓝牙音频从设备,并采用上述的方法进行数据传输及音频同步播放。

本发明通过在实现同步播放时,基于微秒级时钟偏移值,确定播放时间,使各个蓝牙音频从设备间或者蓝牙音频主、从设备间,基于更精准的播放时间开始和进行音频同步播放,且播放延迟精确到微秒级。

进一步的,还在蓝牙音频主设备端和蓝牙音频从设备端分别考虑晶振偏差、漏包等情况对于精准同步的影响,在蓝牙音频主设备端检测缓冲区状况,微调播放时间;在蓝牙音频从设备端检测时间戳与本地时钟的差值超过预设阈值时,调整播放速率;在蓝牙音频从设备端根据时间戳修正漏包补偿的结果。由此可使得本发明获得更加精准的同步效果。

附图说明

图1为本发明实施例一的流程图;

图2为本发明实施例一的时序图;

图3为本发明实施例二的时序图;

图4为本发明实施例四的原理框图;

图5为本发明实施例五的原理框图。

具体实施方式

本发明实施例提供了一种蓝牙音频设备同步播放方法:在蓝牙音频主设备端,为待同步播放的音频数据包确定其播放时间;将所述播放时间转换成时间戳,所述时间戳包含蓝牙时钟的值和微秒级时钟偏移值;所述蓝牙音频主设备发送所述时间戳。

本发明实施例还提供了一种蓝牙音频设备同步播放方法:在蓝牙音频从设备端,接收时间戳,并接收待同步播放的音频数据包,其中,所述时间戳包含蓝牙时钟的值和微秒级时钟偏移值;所述蓝牙音频从设备基于所述时间戳播放音频数据包,所述蓝牙音频从设备计时至所述蓝牙时钟的值和所述微秒级时钟偏移值均到达时,播放与所述时间戳对应的音频数据包。

以下将结合具体实施例对本发明的技术方案做进一步的详细描述。需要说明的是,为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

同时,本领域内技术人员应当理解,本发明的蓝牙音频主设备、蓝牙音频从设备包括但不限于蓝牙耳机、蓝牙音箱、具有蓝牙音频播放功能的手机、平板电脑、游戏机等各种蓝牙电子设备,音源设备包括但不限于提供蓝牙音频输出的手机、电视机、音响设备、平板电脑、游戏机等各种蓝牙电子设备。

实施例一:

如图1中所示,为本实施例的流程图。为了便于描述和理解,图1中既包含了在蓝牙音频主设备端实现的蓝牙音频设备同步播放方法,也包含了在蓝牙音频从设备端实现的蓝牙音频设备同步播放方法。

s101:所述蓝牙音频主设备接收来自音源设备的音频数据,确定待同步播放的音频数据包。

所述音频数据是基于所述音源设备与蓝牙音频主设备之间预定的音频传输协议,由音源设备采用无线方式发送至蓝牙音频主设备的。

在一种具体实施例中,音源设备可以采用a2dp(advancedaudiodistributionprofile,蓝牙音频传输协议)协议规定的编码格式sbc(sub-bandcoding,子带编码)发送音频数据流,其中包括一帧或多帧音频数据。当然,亦可是其它可用于本申请实施例的音频编码格式,如高级音频编码aac等。

在一种具体实施例中,所述蓝牙音频主设备在接收到来自音源设备的所述音频数据后,可以进一步将其解码,以获得每帧音频数据的音频样本,并基于所述蓝牙音频主设备与蓝牙音频从设备之间预定的音频传输协议编码打包,确定待同步播放的音频数据包,并在后续步骤中相应地为所述待同步播放的音频数据包确定其播放时间。

s102:当前音频数据包是否为蓝牙音频主设备待同步播放的首个音频数据包,若当前音频数据包是待播放的首个音频数据包,则执行步骤s103,否则执行步骤s104。

应当理解,由于在音频数据处理过程中,一般是顺序处理每个音频数据包,因此,本文中所述的“当前音频数据包”是相对概念,一般是指当前正被用于执行相关处理的音频数据包,从而与前一个已被执行相关处理的音频数据包和后一个将被执行相关处理的音频数据包区分开来。比如待同步播放的音频数据包有p0、p1、p2、p3……pn等若干个,本步骤中当前为p1确定播放时间,则p1为当前音频数据包,p0为前一个音频数据包,p2为后一个音频数据包。相应的,当需要为p2确定播放时间时,则p2为“当前音频数据包”,p1为前一个音频数据包,p3为后一个音频数据包。

s103:确定起始播放时间,并将所述起始播放时间作为当前音频数据包(即首个音频数据包)的播放时间。

具体的,可以以当前的本地蓝牙时钟与预设的固定时钟偏移时间之和作为起始的播放时间。其中,所述固定时钟偏移时间,可以基于用于缓存所述音频数据包的缓存区的最大缓存量、发送延迟时间、接收延迟时间,主/从设备中音频数据处理延迟时间等一种或多种因素确定。

s104:确定当前音频数据包的播放时间;

具体的,可以将所述起始播放时间加上音频数据的播放总时长的和作为所述当前音频数据包的播放时间。

在一种具体实施例方式中,可以根据自所述首个音频数据包至前一个音频数据包的音频总样本数计算播放总时长,并将所述播放总时长和所述起始播放时间之和作为当前音频数据包的播放时间。

s105:所述蓝牙音频主设备将所述播放时间转换为时间戳,并发送所述时间戳。所述时间戳包含蓝牙时钟的值和微秒级时钟偏移值。

一般地,可以将播放时间除以蓝牙时隙的时长(625us)的结果向上取整或向下取整,而获得时间戳中的蓝牙时钟的值。再将一个微秒级的固定值作为所述微秒级时钟偏移值。

在一种较优实施例中,为了提高同步播放的精准度,所述播放时间转换成时间戳,是以所述播放时间除以蓝牙时隙的时长,将其结果的整数部分作为所述时间戳中蓝牙时钟的值,将其结果的余数部分作为所述时间戳中微秒级时钟偏移值。

更为具体的:所述蓝牙音频主设备在为首个音频数据包确定播放时间时,例如,当前本地蓝牙时钟是1,预设的固定偏移时间是1250us,而一个蓝牙时钟时长为625us,则确定起始播放时间ttp是1*625+1250=1875us。将1875us转换为时间戳的两个部分,一个是蓝牙时钟的值,称之为timestamp,timestamp=ttp/625,另一个是微秒级的时钟偏移值,称之为timestampus,timestampus=ttp%625,因此,第一个音频数据包的时间戳是:timestamp=1875/625=3,timestampus=1875%625=0。

所述蓝牙音频主设备在为第二个音频数据包确定播放时间时,例如每个音频包有音频样本数1000个,每个样本点的播放时长是22.6us,则播放时间为1875us+22.6us*100022.6ms=24475us,第二个音频数据包的时间戳是:timestamp=24475/625=39,timestampus=24475%625=100。

依此类推。

所述蓝牙音频主设备可以将所述时间戳加载在对应待同步播放的音频数据包中,如为音频数据包包头的一部分,将音频数据包和时间戳一并发送。或者,所述蓝牙音频主设备还可以将所述时间戳加载在部分待同步播放的音频数据包中,如在蓝牙音频主设备被用作左声道耳机,并向被用作右声道耳机的蓝牙音频从设备转发右声道音频数据时,其可将时间戳加载在需要发送给蓝牙音频从设备的右声道音频数据包中。所述蓝牙音频主设备还可以单独发送所述时间戳。另外所述蓝牙音频主设备还可以对应于每个音频数据包发送一次所确定的每个时间戳,或者每间隔预设个数的音频数据包发送一次当前音频数据包的时间戳,比如,每间隔10个音频数据包发送一次时间戳,以节省带宽。所述预设个数可以根据具体应用场景设置。

s106:所述蓝牙音频从设备获取所述音频数据包和时间戳;

所述蓝牙音频主设备将所述时间戳,以有线通信、无线点对点通信或无线点对多点广播通信方式发送给蓝牙音频从设备,所述蓝牙音频从设备亦是以有线或无线方式接收所述时间戳。

作为一种较佳实施例,所述蓝牙音频主设备可以与蓝牙音频从设备基于蓝牙技术规范通信。根据蓝牙网络拓扑结构的不同,所述蓝牙音频从设备获取音频数据包及时间戳的方式可以有所不同。本实施例中,所述蓝牙音频从设备获取待同步播放的音频数据包,是采用转发模式。

在一种优选实施例中,为了节省带宽,所述蓝牙音频从设备可以每间隔预设个数的音频数据包接收一次当前音频数据包的时间戳。

s107:所述蓝牙音频从设备从所述时间戳中获取蓝牙时钟的值和微秒级时钟偏移值,判断所述时间戳和蓝牙音频从设备本地蓝牙时钟的差值。

作为一种具体实施例方式,所述蓝牙音频从设备获取音频数据包和时间戳后,可以计时至所述蓝牙时钟的值和所述微秒级时钟偏移值均到达时,播放与所述时间戳对应的音频数据包。作为另一种较优实施方式,考虑到音频数据播放开始后,因为晶振的偏差,会导致播放产生偏差且随着播放时间的积累,偏差加大,因此,所述蓝牙音频从设备实时检查接收到的时间戳和本地当前蓝牙时钟的差值,例如,收到时间戳(39,100)时,蓝牙音频从设备的本地蓝牙时钟和微秒级偏移可能是(31,100),如果差值大于设定阈值,则执行步骤s109,调整播放速率,在播放的同时克服晶振偏差的影响,否则执行步骤s108,基于所述时间戳播放音频数据包。所述的预设阈值可以根据经验和具体实施场景设置。

s108:所述蓝牙音频从设备基于所述时间戳播放所述音频数据包。

所述蓝牙音频从设备中,设置有本地蓝牙时钟和微秒级计时器,以收到的第二个时间戳(39,100)为例时,当本地蓝牙时钟到达39后,再根据所述时钟偏移值,开启微秒级计时器,当所述微秒级计时器计数到100时,即所述蓝牙时钟的值和所述微秒级时钟偏移值均到达时,即到达播放时间,开启播放与所述时间戳对应的音频数据包。由此则实现了蓝牙音频从设备在蓝牙音频主设备的时间管理下,精准播放,特别是存在多个蓝牙音频从设备时,所有蓝牙音频从设备可以精准到微秒级的同步播放。另外,于此同时,所述蓝牙音频主设备也可以基于相同的蓝牙时钟和时钟偏移,在到达所述播放时间时,播放所述音频数据,实现蓝牙音频主设备与蓝牙音频从设备播放的微秒级精准同步。

s109:调整播放速率。

所述调整播放速率的步骤,根据具体实施场景和软硬件环境的不同,包括但不限于下列方法:

(1)在播放音频数据包时,对其中的音频样本插入或丢弃至少一个样本点。

以44.1khz的采样率为例,每丢弃一个样本点或插入一个样本点,就能平衡22.6us的偏差。

(2)在播放音频数据时,加快或减慢播放采样率。

可以利用硬件src(采样率转换)模块,加快减慢播放采样率,不会破坏原音频数据,不产生轻微的pop声,且调整幅度很小,对听感不会有影响。

需要说明的是,在具体实施时,上述步骤s108和步骤s109可以是同时执行、交替执行、先后执行的关系,具体根据实际情况而定。

此外,在一种具体实施方式中,所述蓝牙音频主设备在用于存储所述音频数据包的缓存区的缓存量低于或高于设定阈值时,还可以在所述时间戳中增加或减少时钟偏移。

在具体实施时,蓝牙音频主设备通过蓝牙通信方式接收来自音源设备的音频数据时,一般会将音频数据进行纠错、解码、漏包补偿、编码打包、加时间戳等等处理后,将最终获得的音频数据包缓存到缓存区后,再顺序转发或播放。而蓝牙音频主设备的晶振和音源设备的晶振也可能存在微小偏差,长期播放后,会导致蓝牙音频主设备的音频数据包的缓存区趋向于空或者满。这种情况下,可以通过判断所述蓝牙音频主设备用于缓存音频数据包的缓存区内的缓存状况,当其中的数据缓存量低于预设的最低阈值时,为所述播放时间增加延时;当其中的数据缓存量高于预设的最高阈值时,为所述播放时间减少延时;其中,所述增加和减少的延时为若干个音频样本的播放时长。即通过蓝牙音频主设备主动调整播放时间及时钟偏移,维持缓冲区的相对稳定。具体来说,比如当蓝牙音频主设备发现缓冲区逐渐播空,缓存量低于某个阈值的时候,在步骤104中,计算和确定播放时间的时候,可以主动加上若干个样本的延时,使得播放速率有个减慢的微调;而当蓝牙音频主设备发现缓冲区逐渐趋向于满,缓存量高于某个阈值的时候,在步骤104中,计算和确定播放时间的时候,可以主动减掉若干个样本的延时,使得播放速率有个加快的微调。

如图2中所示,为本实施例的时序图。(本图为简洁清楚地说明音源设备、蓝牙音频主设备、蓝牙音频从设备之间的数据收发,故相对于图1省略了部分步骤)。

步骤s101中,所述蓝牙音频主设备收到来自音源设备发送的音频数据,进而确定待同步播放的音频数据包;

步骤s103/s104中确定当前待同步播放的音频数据包的所述播放时间,之后,再转换为包含有所述蓝牙时钟的值和所述微秒级时钟偏移值的时间戳;

步骤s106中,所述蓝牙音频从设备采用转发模式,自蓝牙音频主设备获取所述待同步播放的音频数据包。所述待同步播放的音频数据包,是蓝牙音频主设备基于所述蓝牙音频主设备与蓝牙音频从设备之间预定的音频传输协议将音频数据编码打包而成;

所述蓝牙音频主设备可以将所述时间戳加载到待同步播放的音频数据包中,转发给蓝牙音频从设备,或是将待同步播放的音频数据包和所述时间戳分别发送给蓝牙音频从设备。相应的,所述蓝牙音频从设备与所述蓝牙音频主设备通信,以接收所述时间戳和音频数据包。

步骤s108中,所述蓝牙音频主设备和蓝牙音频从设备,在所述蓝牙时钟的值和所述微秒级时钟偏移值均到达时,分别、同步播放与所述时间戳对应的音频数据包。

步骤s109中,所述蓝牙音频从设备在接收到的时间戳和当前蓝牙时钟的差值大于设定阈值时,调整播放速率进行播放。

实施例二:

本实施例与实施例一大体相同,主要区别在于:步骤s105中,所述蓝牙音频从设备获取所述待同步播放的音频数据包,是采用侦听模式。

如图3中所示,为本实施例的时序图。(本图为简洁清楚地说明音源设备、蓝牙音频主设备、蓝牙音频从设备之间的数据收发,故相对于图1省略了部分步骤)。

结合图1可知:

步骤s101中,所述蓝牙音频主设备收到来自音源设备发送的音频数据,进而确定待同步播放的音频数据包;

步骤s103/s104中,所述蓝牙音频主设备确定当前音频数据包的所述播放时间,之后,再转换为包含有所述蓝牙时钟的值和所述微秒级时钟偏移值的时间戳。其中,所述蓝牙音频主设备为每个音频数据包确定播放时间,亦可为若干个音频数据包确定播放时间。

步骤s106中,所述蓝牙音频从设备获取所述音频数据包的步骤,采用侦听模式。所述待同步播放的音频数据包,是基于来源于音源设备的音频数据,并采用音源设备与蓝牙音频主设备之间预定的音频传输协议编码打包而成。所述蓝牙音频从设备与所述蓝牙音频主设备通信,以接收蓝牙音频主设备发送的链路信息和时间戳,所述链路信息是所述蓝牙音频主设备与音源设备建立蓝牙无线通信连接所依据的信息;所述蓝牙音频从设备基于所述链路信息,侦听蓝牙音频主设备与音源设备之间的通信链路,接收采用音源设备与蓝牙音频主设备之间预定的音频传输协议编码打包的音频数据包,从而基于来源于音源设备的音频数据获得所述待同步播放的音频数据包。

在侦听模式中,可以出于带宽的考虑,蓝牙音频主设备不必把每个待同步播放的音频数据包的时间戳发送给蓝牙音频从设备。本实施例中,所述蓝牙音频主设备可以每间隔预设个数(比如每间隔10个)音频数据包发送一次当前音频数据包的时间戳;相应的,所述蓝牙音频从设备基于所述时间戳,根据每个音频数据包的样本数,预估其后10个的音频数据包的播放时间,并基于预估的播放时间播放对应的音频数据包。

步骤s108中,所述蓝牙音频主设备和蓝牙音频从设备,在所述蓝牙时钟的值和所述微秒级时钟偏移值均到达时,分别、同步播放与所述时间戳对应的音频数据包。

步骤s109中,所述蓝牙音频从设备在接收到的时间戳和当前蓝牙时钟的差值大于设定阈值时,调整播放速率,并进行播放。

此外,在无线传输音频数据时,特别是在侦听模式中,所述蓝牙音频从设备可能存在漏包的情况,此时,可以是根据上下文经验值估计漏包的帧数,进行插值补偿播放,所以有可能存在自行计算时间戳错误的情况,因此,可以通过接收到的蓝牙音频主设备定时发过来的时间戳,反向推导出漏包补偿所错误估计的帧数,如果多一帧,则从之后的数据包中去掉一帧,如果少一帧,则从之后的数据包中加一帧进行插值补偿,从而维持同步的效果。

实施例三:

本实施例与实施例一大体相同,主要区别在于:所述蓝牙音频主设备预先存储有用作同步播放的音频数据,因此步骤s101中,蓝牙音频主设备不再接收和缓存音频数据,而是自其存储单元中直接提取所述音频数据。

步骤106中,蓝牙音频主设备发出的待同步播放的音频数据包,是基于所述蓝牙音频主设备与蓝牙音频从设备之间预定的音频传输协议,将上述音频数据编码打包而成,并将所述时间戳加载到所述音频数据包中,发送给蓝牙音频从设备。

本发明实施例还提供了蓝牙音频主设备和蓝牙音频从设备:

实施例四:

本实施例公开了一种蓝牙音频主设备,包括供电单元、通信单元和同步控制单元,还可包括存储单元或/和缓存单元。

所述同步控制单元用于为待播放的音频数据包确定播放时间,将所述播放时间转换成时间戳,所述时间戳包含蓝牙时钟的值和微秒级时钟偏移值;可以是以所述播放时间除以蓝牙时隙的时长,将其结果的整数部分作为所述时间戳中蓝牙时钟的值,将其结果的余数部分作为所述时间戳中微秒级时钟偏移值。

所述通信单元可以为有线通信单元或无线通信单元;所述无线通信单元用于根据预定的无线广播通信协议与外部设备通信以实现数据交互。

所述通信单元还可以为插接外部音源设备的有线信号传输接口,如usb接口、音频输入输出专用接口等。

所述存储单元可以为蓝牙音频主设备内部设置的存储器,也可以为可插拔式的存储设备,如sd卡等。所述缓存单元用于缓存音频数据包。

所述供电单元用于提供本装置工作时的所需电源,其可以是通过纽扣电池或可充电电池供电的供电电路模组,如其可以是锂电池及其控制电路。

此外,本实施例还包括蓝牙时钟发生器、微秒级计时器和播放单元,所述播放单元可以为扬声器,使得所述蓝牙音频主设备也可以基于相同的蓝牙时钟和时钟偏移,在到达所述播放时间时,直接或间接控制所述播放单元播放所述音频数据包,实现蓝牙音频主设备与蓝牙音频从设备播放的微秒级精准同步。

在一种较优实施例中,所述无线通信单元可以为蓝牙通信单元,其用于分别与音源设备和蓝牙音频从设备建立蓝牙链路,并通过所述蓝牙链路,从音源设备接收音频数据包,将时间戳、音频数据包和/或链路信息发送给蓝牙音频从设备。所述通信单元还用于对应于每个音频数据包、或者每间隔预设个数的音频数据包,发送一次当前音频数据包的时间戳。

在另一种较优实施例中,所述无线通信单元可以为蓝牙通信单元,且其以时分复用方式实现两种无线通信协议通信,即,基于标准蓝牙通信协议与音源设备实现点对点的蓝牙通信,以接收音频数据包;或基于预定的专有无线广播通信协议广播发送所述时间戳和/或音频数据包。

显然,本实施例提供的蓝牙音频主设备可以用于实现本发明的蓝牙音频设备同步播放方法。

实施例五:

一种蓝牙音频从设备,包括通信单元、同步单元、本地蓝牙时钟发生器、微秒级计时器、播放单元和供电单元。

所述通信单元,还用于接收加载有时间戳的音频数据包,或者单独接收所述时间戳;或者基于蓝牙音频主设备与音源设备之间的链路信息,侦听其通信链路,接收所述音频数据;

所述同步单元,用于根据所获取的时间戳,基于本地蓝牙时钟发生器和微秒级计时器,计时至所述蓝牙时钟的值和所述微秒级时钟偏移值均到达时,直接或间接控制所述播放单元播放与所述时间戳对应的音频数据包;还用于比较所述时间戳与本地时钟的差值,当所述差值超过预设阈值时,调整播放速率;还用于在间隔预设个数的音频数据包接收到一次当前音频数据包的时间戳时,基于所述时间戳,预估其后预设个数的音频数据包的播放时间,并基于预估的播放时间播放对应的音频数据包。

显然,本实施例提供的蓝牙音频从设备可以用于实现本发明的蓝牙音频设备同步播放方法。

应当可以理解的是,上述实施例四的蓝牙音频主设备的结构及功能,和实施例五的蓝牙音频从设备的结构及功能,可以分别在两个独立的设备中实现,亦可被集成在同一个设备中,从而使得该设备在用作蓝牙音频主设备时执行蓝牙音频主设备的功能,而在被用作蓝牙音频从设备时执行蓝牙音频从设备的功能。例如对于由多个蓝牙音箱组成的播放系统,其中的每一个蓝牙音箱都具有用作所述蓝牙音频主设备和所述蓝牙音频从设备的功能,当其中的任意一个蓝牙音箱被用作主设备时,其它蓝牙音箱则被用作从设备。

本发明实施例还提供了一种蓝牙音频同步播放系统:

实施例六:

一种蓝牙音频同步播放系统,包括如实施例四的蓝牙音频主设备和实施例五的蓝牙音频从设备,所述系统采用上述蓝牙音频设备同步播放方法进行数据传输。

所述系统可以由所述蓝牙音频主设备和若干个蓝牙音频从设备构成,实现若干蓝牙音频从设备的同步播放,如环绕式音箱。所述系统可以由一个蓝牙音频主设备与一个蓝牙音频从设备构成,实现二者之间同步播放,如立体声蓝牙耳机。

实施例四、五的设备及实施例六的系统的工作原理及过程可以参照前述实施例一、二、三中的原理和方法,因此不再赘述。

本发明可以应用于多个同种类蓝牙音频设备,也可以应用于多个不同蓝牙音频设备,例如,本发明所述第一蓝牙音频设备和第二蓝牙音频设备分别为一对分体式蓝牙耳机的左右两声道(正如上述实施例中的描述),或分别为两个独立的蓝牙耳机;或者,所述第一蓝牙音频设备和第二蓝牙音频设备分别为蓝牙耳机、蓝牙音箱等设备,实现同步播放。利用本发明方法,亦可进行第三、第四甚至更多诸如手机、平板电脑、笔记本电脑等蓝牙终端的同步播放。此外,本发明中“第一”、“第二”只用作区分不同的设备、终端、链路等名称的作用,不具有计数上的意义,不应认为是对本发明技术方案的限制。

以上对本发明所提供的蓝牙音频设备同步播放方法、蓝牙音频主设备、蓝牙音频从设备及蓝牙音频同步播放系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执轨道,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执轨道的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1