论文部分内容阅读
摘要:提出了一种基于网络反馈的无线多终端音频同步实现方法。该方法对连接到同一个无线局域网的多个无线音频系统进行分组管理,并由移动终端实现控制,通过比较主从设备之间的播放进度时间差来做出调整,直接修改声卡RAM缓冲区里的音频数据,实现音乐的同步播放。仿真实验表明,该方法能通过移动终端同时控制无线局域网内多个音频系统,并同一时间同步播放同一首音乐,且同步误差时间可以控制在50毫秒范围以内,人耳基本无法区别,提高了用户体验。
关键词:移动终端;DLNA协议;无线多终端音频系统;网络反馈;同步机制ASynchronization Scheme for the Wireless
Multi-terminal Audio System Based on Network Feedback
Yong-jian Xu1 Jian-yu Liao2 Wei Xu1 Hong-zhou Tan1(1.Sun Yat-Sen University,Guangzhou 510006,Guangdong,China;2. Instiute ofDongguan-Sun Yat-Sen University,Dongguan 523808,Guangdong,China)
Abstract:A novel synchronization scheme was proposed for the wireless multi-terminal audio system based on network feedback. The wireless audio systems connecting to the same WLAN were managed in groups and controlled by mobile terminal. Compared with the master equipment in a song’s playing progress, the slave equipments made some adjustments by directly modifying the audio data in the RAM’s buffer of the sound card to synchronize with the master equipment. Experimental results show that the proposed synchronization mechanism can be applied to control multiple audio systems in the same WLAN to synchronously play the same music at the same time, and the time error can be limited within the scope of 50 milliseconds, which nearly can’t be recognized by human’s ears. The proposed method is certain to improve users’ experience.
Key words:mobile terminal;DLNA Protocol;wireless multi-terminal audio system;network feedback;synchronization mechanism表的移动智能终端正在掀起一场席卷全球的指尖革命[1]。与此同时,用于组建家庭内部无线通信网络系统的技术逐步成熟,被广泛的应用于智能家居系统中[2],多媒体设备的无线组网已经成为智能家居的重要内容,传统的娱乐方式也正在一步步发生着变化。这主要得益于移动带宽传输速率的改善,以音乐欣赏为例,目前存在着很多无线音箱,这些音箱可以连接到家庭里的无线网络,只要音箱设备满DLNA(Digital Living Network Alliance)协议,就可以使用手机控制音箱的播放和暂停[3]。目前的音乐同步播放系统主要是通过缓冲媒体流,各播放设备预存好缓冲数据和播放列表,通过时间戳校准机制实现同步[4]。当在多个房间不同地点用不同的音箱播放同一首音乐时,用户希望在一个控制器的控制下不同位置的音箱设备可以同步播放同一首音乐。但是目前的音乐系统很难做到同步,每个音箱上播放的速度很大程度上取决于当前的网络状态,可控性差,当移动终端进行快进或倒退时,无线音箱需要较长的缓冲时间,对网络依赖性强[5]。针对上述存在的技术问题,本文提出了一种基于DLNA/UPnP(Universal Plug and Play)协议下的无线多终端音频系统下的一种同步机制,以解决无线多终端音频系统下播放同一首音乐时不同的音箱播放不同步的问题。
本文接下来的结构如下。第1节介绍了无限多终端音频系统,第2节详细介绍所提出的同步机制原理,第3节给出同步机制的实现,第4节是综合及仿真结果,最后第5节总结全文。
1无线多终端音频系统
无线音频系统包括移动终端、带有WiFi功能的音频处理芯片、无线路由器和外接音箱[6]。移动终端可以是手机、平板电脑、个人PC机等有WiFi发射功能的设备。对需要同步播放的无线音箱进行分组管理,让所有的音箱设备加入到同一组并且连接到同一个无线局域网,以实现通过移动终端来控制播放和暂停所有的音箱设备。将无线音频系统中响应最快的一个设备选定为主设备,其他设备设定为从设备。移动终端下达播放的命令,所有设备开始播放同一首音乐,与此同时主设备需要每隔一段时间间隔将自身的播放信息通过广播的形式发送出去。主设备作为广播的发送端,从设备作为广播的接收端,通过socket网络编程的方法来实现广播[7]。从设备接收到主设备发出的进度信息之后和自身的进度进行比较,如果播放进度差的绝对值大于某一个设定范围,则对设备进行相应的调整;否则不进行任何操作继续播放。无线多终端音乐系统同步机制框图如下图1所示。
2同步机制原理
通过比较两个设备之间的播放进度时间差来决定做出何种调整。当两个设备都处于播放状态下,如果两播放设备时间差的绝对值在某一范围内,则从设备继续播放,不进行任何操作;如果时间差的绝对值超出某一范围,则要对从设备加以修正以达到和主设备同步播放的效果。由于音频解码数据是移动终端(控制点)通过TCP传送出去的,接收端(音频芯片)接收到音频解码数据之后再通过声卡将声音播放出来,所以采用直接修改声卡RAM缓冲区里音频数据的方法来达到快速快进和倒退的功能。假设上述时间差的比较结果显示从设备比主设备快,那么就需要在这一小段慢的时间差内插入一些数据以达到暂时减慢播放速度的效果;反之,如果从设备比主设备慢则需要丢弃部分缓冲数据来达到同步的效果。
假设两播放设备的时间差为T,广播时间为Tbd,△t表示判断时间差的精度值,具体实现同步的步骤如下:
(1)当设备处于播放状态时,在每个广播时间Tbd内,设备将接受到的进度信息Tmain和自身的进度Tslave进行比较,如果两者之间的时间差值绝对值小于设定的范围(△t),则从设备不做任何变化继续播放;如果两者之间的差值绝对值大于设定的范围,即当|Tmain-Tslave|≥△t时,对其进行下一步的处理。
(2)计算Tmain-slave。当上述差值为正时,说明主设备播放速度要比从设备快,每隔m位就丢弃一位数据,丢弃之后设备原来需要播放t秒的数据将变为(m/m+1)×t秒。此时主从设备的播放时间差将从T变为,其中:
(1)
经过一次丢值之后再重复步骤(1)过程,直至两播放设备同步达到预期精度。当上述差值为负时,主设备的播放速度比从设备慢,则从设备需要对缓冲区数据进行插值运算。假设X[N]表示某一时刻音频数值的幅度值,每隔m位就插入一位数值,即在m和m+1处插入T=(X[n]+X[n+1])/2,则经过1次插值后两播放设备的时间差为(T-Tbd/m),再重复(1)过程,直至两播放设备同步达到预期精度。
其中△t可以根据需要自行调整,为了达到更好的同步精度可选取小于50ms的合适值。广播的时间间隔Tbd和m的选取可根据实际需求进行选择。一般的如果广播时间间隔选取过大则可能同步效果不明显;如果选取过小则需要较长时间才能达到同步。对于m的取值则可相应的取较小的值,如1和2等,因为要处理的数据毕竟是要在较短时间内完成的,取值过大可能需要较长时间才能完成同步要求。
对音频数据的处理具体框图如图2所示。
其中X[n]表示音频解码数据,Xs[n]表示插值(抽样)后的音频数据,H[n]为低通滤波器,不管是经过上述插值还是抽样运算都要对数据进行滤波再播放,我们可以选用低通滤波器对Xs[n]进行滤波,Y[n]是经过滤波后的音频数据,可直接传送给声卡播放。
3多终端音频系统同步播放的实现
基于UPnP协议的无线多房间音乐的音乐系统主要包含三个模块:控制点(CP)、数字媒体渲染器(DMR)和数字媒体服务器(DMS)[8]。其中控制点一般是手机、平板电脑等智能终端。数字媒体渲染器(DMR)是指具有无线WiFi功能的开发板,本文使用的是MIPS处理器的君正开发板。数字媒体服务器(DMS)既可以是家庭电脑,也可以是我们的智能终端。各模块连接示意图如图3所示。
控制点(移动终端)首先加入到和无线音频芯片同一个局域网上,然后打开自行开发的软件,移动终端会发现在该局域网上所有可用的UPnP设备,可以选取几个设备加入到同一个分组中,加入分组之后就可以选择手机端或者其他服务器上的音频资源进行播放。同步机制包括控制端、主设备和从设备三个部分。其中控制端即上所述控制点,主设备是所有设备中通过广播比较之后选定的一个反应最快的设备,从设备是除主设备之外的所有其他设备。主从设备具体操作流程图如图4所示。
主设备的选定可以采用“发送-响应“的方式来选取反应最快的设备。所谓发送-响应方式是指系统中存在若干个音频播放设备时,当所有设备都加入到同一个分组之后,可在控制端向所有设备发送一个简单的播放开始信号,然后选定最先开始播放(即对播放信号响应最快,缓冲效果最好)的设备为主设备,其他所有设备为从设备。
主设备主要包括获取设备广播地址、获取设备当前进度信息和广播通信三个模块。广播地址可通过socket网络编程的方式获得,可先获得设备的IP地址和子网掩码再逐位相与。因为主设备播放时要一边获取进度信息又要一边广播,所以设备当前进度信息需要采用多线程编程的方法。当检测到设备处于播放状态时,就将设备的位置信息(Tmain)存储在一个寄存器中并且每隔一段时间隔广播当前设备进度信息。广播的时间间隔可根据不同的情况进行选取,假定时间间隔为Tbd。同步算法流程图如下图5所示:
4同步算法仿真验证
为了进一步验证算法的可行性,可充分利用PC机的硬件资源优势,在电脑环境下仿真无线多房间音乐系统。为此以播放简单的MP3文件为例,利用mpg123作为MP3音频解码库,以PortAudio对音频设备进行操作和控制。其中mpg123是一个快速、可移植的解码器和播放器,具有高质量和低CPU占用率的特点,PortAudio是一个免费、跨平台、开源的音频输入输出库,利用PortAudio的回调函数可轻松实现音频设备的调用[9]。再配合socket网络编程以及上述的差值和抽样算法即可仿真所需环境。经过代码的编译和运行,部分仿真结果如下图6所示:
上图中左边部分为主设备播放时间,右边部分为从设备播放时间。主设备和从设备播放时间之差,即为同步播放时间的时延。
对大量仿真数据结果进行统计,主从设备同步播放时间时延统计结果如下表一所示:
表一主从设备同步播时延时间统计表(单位:ms)
最大时延时间 36
最小时延时间 17
平均时延时间 26
仿真结果表明,主从播放设备播放时间的时延始终保持在50毫秒以内,达到算法需求,进一步证明了该算法的可行性。
5结束语
本文提出了一种基于DLNA/UPnP协议下的无线多终端音频系统同步方案。通过对连接到同一个无线局域网的多个无线音频系统进行分组管理,实现了移动终端对不同位置的多个无线音频系统的控制,通过无线音频系统之间的通信,比较主从设备之间的播放进度时间差来做出调整,直接修改声卡RAM缓冲区里的音频数据,实现音乐的同步播放。实验表明,本方法可解决目前存在的多音箱播放时不同步的问题,进一步完善了用户在多房间音乐系统下的播放功能,提高了用户体验。并且该方法实现简单,同步效果明显,能有效提高产品竞争力。
[参考文献]
[1]彭国军,邵如玉,郑祎.移动智能终端安全威胁分析与防护研究[J].技术研究,2012,1:58-63.
[2]任荣.基于B/S结构的智能家居系统的研究和实现[J].广东通信技术,2012,12:25-29.
[3]Yeon-Joo Oh,Hoon-Ki Lee,Jung-Tae Kim,EuiHyun Paik,Kwang-Roh Park.Design of an Extended Architecture for Sharing DLNA Compliant Home Media from Outside the Home [J].Consumer Electronics,IEEE Transactions on,vol.53,no.2,542-547,May 2007.
[4]韩玉辉.多域无线广播组播网络中的同步技术研究[D].北京:北京邮电大学,2010.
[5]Jae-Woo Chang,Yong-Ki Kim.Context-aware application system for music playing services [A].In Proc.KES 2006 [C].Springer, 76-83.
[6]陈汝全.音响发展新方向——家庭多房间无线音频系统[J].实用影音技术,2005,10:30-34.
[7]卡尔弗特著,周恒民,译.Java TCP/IP Socket编程[M].北京:机械工业出版社,2009.
[8]Henrik Sorensen,Mathies G.Kristensen,Jesper Kjeldskov and Mikael B.Skov Proxemic Interaction in a Multi-Room Music System [A].In Proc.the 25th Australian Computer-Human Interaction Conference [C],2013, 153-162.
[9]Ross bencina,Phil Burk.PortAudio:an Open Source Cross Platform Audio API [A].Proceedings of the International Computer Music Conference 2001[C].International Computer Music Association,San Francisco.
关键词:移动终端;DLNA协议;无线多终端音频系统;网络反馈;同步机制ASynchronization Scheme for the Wireless
Multi-terminal Audio System Based on Network Feedback
Yong-jian Xu1 Jian-yu Liao2 Wei Xu1 Hong-zhou Tan1(1.Sun Yat-Sen University,Guangzhou 510006,Guangdong,China;2. Instiute ofDongguan-Sun Yat-Sen University,Dongguan 523808,Guangdong,China)
Abstract:A novel synchronization scheme was proposed for the wireless multi-terminal audio system based on network feedback. The wireless audio systems connecting to the same WLAN were managed in groups and controlled by mobile terminal. Compared with the master equipment in a song’s playing progress, the slave equipments made some adjustments by directly modifying the audio data in the RAM’s buffer of the sound card to synchronize with the master equipment. Experimental results show that the proposed synchronization mechanism can be applied to control multiple audio systems in the same WLAN to synchronously play the same music at the same time, and the time error can be limited within the scope of 50 milliseconds, which nearly can’t be recognized by human’s ears. The proposed method is certain to improve users’ experience.
Key words:mobile terminal;DLNA Protocol;wireless multi-terminal audio system;network feedback;synchronization mechanism表的移动智能终端正在掀起一场席卷全球的指尖革命[1]。与此同时,用于组建家庭内部无线通信网络系统的技术逐步成熟,被广泛的应用于智能家居系统中[2],多媒体设备的无线组网已经成为智能家居的重要内容,传统的娱乐方式也正在一步步发生着变化。这主要得益于移动带宽传输速率的改善,以音乐欣赏为例,目前存在着很多无线音箱,这些音箱可以连接到家庭里的无线网络,只要音箱设备满DLNA(Digital Living Network Alliance)协议,就可以使用手机控制音箱的播放和暂停[3]。目前的音乐同步播放系统主要是通过缓冲媒体流,各播放设备预存好缓冲数据和播放列表,通过时间戳校准机制实现同步[4]。当在多个房间不同地点用不同的音箱播放同一首音乐时,用户希望在一个控制器的控制下不同位置的音箱设备可以同步播放同一首音乐。但是目前的音乐系统很难做到同步,每个音箱上播放的速度很大程度上取决于当前的网络状态,可控性差,当移动终端进行快进或倒退时,无线音箱需要较长的缓冲时间,对网络依赖性强[5]。针对上述存在的技术问题,本文提出了一种基于DLNA/UPnP(Universal Plug and Play)协议下的无线多终端音频系统下的一种同步机制,以解决无线多终端音频系统下播放同一首音乐时不同的音箱播放不同步的问题。
本文接下来的结构如下。第1节介绍了无限多终端音频系统,第2节详细介绍所提出的同步机制原理,第3节给出同步机制的实现,第4节是综合及仿真结果,最后第5节总结全文。
1无线多终端音频系统
无线音频系统包括移动终端、带有WiFi功能的音频处理芯片、无线路由器和外接音箱[6]。移动终端可以是手机、平板电脑、个人PC机等有WiFi发射功能的设备。对需要同步播放的无线音箱进行分组管理,让所有的音箱设备加入到同一组并且连接到同一个无线局域网,以实现通过移动终端来控制播放和暂停所有的音箱设备。将无线音频系统中响应最快的一个设备选定为主设备,其他设备设定为从设备。移动终端下达播放的命令,所有设备开始播放同一首音乐,与此同时主设备需要每隔一段时间间隔将自身的播放信息通过广播的形式发送出去。主设备作为广播的发送端,从设备作为广播的接收端,通过socket网络编程的方法来实现广播[7]。从设备接收到主设备发出的进度信息之后和自身的进度进行比较,如果播放进度差的绝对值大于某一个设定范围,则对设备进行相应的调整;否则不进行任何操作继续播放。无线多终端音乐系统同步机制框图如下图1所示。
2同步机制原理
通过比较两个设备之间的播放进度时间差来决定做出何种调整。当两个设备都处于播放状态下,如果两播放设备时间差的绝对值在某一范围内,则从设备继续播放,不进行任何操作;如果时间差的绝对值超出某一范围,则要对从设备加以修正以达到和主设备同步播放的效果。由于音频解码数据是移动终端(控制点)通过TCP传送出去的,接收端(音频芯片)接收到音频解码数据之后再通过声卡将声音播放出来,所以采用直接修改声卡RAM缓冲区里音频数据的方法来达到快速快进和倒退的功能。假设上述时间差的比较结果显示从设备比主设备快,那么就需要在这一小段慢的时间差内插入一些数据以达到暂时减慢播放速度的效果;反之,如果从设备比主设备慢则需要丢弃部分缓冲数据来达到同步的效果。
假设两播放设备的时间差为T,广播时间为Tbd,△t表示判断时间差的精度值,具体实现同步的步骤如下:
(1)当设备处于播放状态时,在每个广播时间Tbd内,设备将接受到的进度信息Tmain和自身的进度Tslave进行比较,如果两者之间的时间差值绝对值小于设定的范围(△t),则从设备不做任何变化继续播放;如果两者之间的差值绝对值大于设定的范围,即当|Tmain-Tslave|≥△t时,对其进行下一步的处理。
(2)计算Tmain-slave。当上述差值为正时,说明主设备播放速度要比从设备快,每隔m位就丢弃一位数据,丢弃之后设备原来需要播放t秒的数据将变为(m/m+1)×t秒。此时主从设备的播放时间差将从T变为,其中:
(1)
经过一次丢值之后再重复步骤(1)过程,直至两播放设备同步达到预期精度。当上述差值为负时,主设备的播放速度比从设备慢,则从设备需要对缓冲区数据进行插值运算。假设X[N]表示某一时刻音频数值的幅度值,每隔m位就插入一位数值,即在m和m+1处插入T=(X[n]+X[n+1])/2,则经过1次插值后两播放设备的时间差为(T-Tbd/m),再重复(1)过程,直至两播放设备同步达到预期精度。
其中△t可以根据需要自行调整,为了达到更好的同步精度可选取小于50ms的合适值。广播的时间间隔Tbd和m的选取可根据实际需求进行选择。一般的如果广播时间间隔选取过大则可能同步效果不明显;如果选取过小则需要较长时间才能达到同步。对于m的取值则可相应的取较小的值,如1和2等,因为要处理的数据毕竟是要在较短时间内完成的,取值过大可能需要较长时间才能完成同步要求。
对音频数据的处理具体框图如图2所示。
其中X[n]表示音频解码数据,Xs[n]表示插值(抽样)后的音频数据,H[n]为低通滤波器,不管是经过上述插值还是抽样运算都要对数据进行滤波再播放,我们可以选用低通滤波器对Xs[n]进行滤波,Y[n]是经过滤波后的音频数据,可直接传送给声卡播放。
3多终端音频系统同步播放的实现
基于UPnP协议的无线多房间音乐的音乐系统主要包含三个模块:控制点(CP)、数字媒体渲染器(DMR)和数字媒体服务器(DMS)[8]。其中控制点一般是手机、平板电脑等智能终端。数字媒体渲染器(DMR)是指具有无线WiFi功能的开发板,本文使用的是MIPS处理器的君正开发板。数字媒体服务器(DMS)既可以是家庭电脑,也可以是我们的智能终端。各模块连接示意图如图3所示。
控制点(移动终端)首先加入到和无线音频芯片同一个局域网上,然后打开自行开发的软件,移动终端会发现在该局域网上所有可用的UPnP设备,可以选取几个设备加入到同一个分组中,加入分组之后就可以选择手机端或者其他服务器上的音频资源进行播放。同步机制包括控制端、主设备和从设备三个部分。其中控制端即上所述控制点,主设备是所有设备中通过广播比较之后选定的一个反应最快的设备,从设备是除主设备之外的所有其他设备。主从设备具体操作流程图如图4所示。
主设备的选定可以采用“发送-响应“的方式来选取反应最快的设备。所谓发送-响应方式是指系统中存在若干个音频播放设备时,当所有设备都加入到同一个分组之后,可在控制端向所有设备发送一个简单的播放开始信号,然后选定最先开始播放(即对播放信号响应最快,缓冲效果最好)的设备为主设备,其他所有设备为从设备。
主设备主要包括获取设备广播地址、获取设备当前进度信息和广播通信三个模块。广播地址可通过socket网络编程的方式获得,可先获得设备的IP地址和子网掩码再逐位相与。因为主设备播放时要一边获取进度信息又要一边广播,所以设备当前进度信息需要采用多线程编程的方法。当检测到设备处于播放状态时,就将设备的位置信息(Tmain)存储在一个寄存器中并且每隔一段时间隔广播当前设备进度信息。广播的时间间隔可根据不同的情况进行选取,假定时间间隔为Tbd。同步算法流程图如下图5所示:
4同步算法仿真验证
为了进一步验证算法的可行性,可充分利用PC机的硬件资源优势,在电脑环境下仿真无线多房间音乐系统。为此以播放简单的MP3文件为例,利用mpg123作为MP3音频解码库,以PortAudio对音频设备进行操作和控制。其中mpg123是一个快速、可移植的解码器和播放器,具有高质量和低CPU占用率的特点,PortAudio是一个免费、跨平台、开源的音频输入输出库,利用PortAudio的回调函数可轻松实现音频设备的调用[9]。再配合socket网络编程以及上述的差值和抽样算法即可仿真所需环境。经过代码的编译和运行,部分仿真结果如下图6所示:
上图中左边部分为主设备播放时间,右边部分为从设备播放时间。主设备和从设备播放时间之差,即为同步播放时间的时延。
对大量仿真数据结果进行统计,主从设备同步播放时间时延统计结果如下表一所示:
表一主从设备同步播时延时间统计表(单位:ms)
最大时延时间 36
最小时延时间 17
平均时延时间 26
仿真结果表明,主从播放设备播放时间的时延始终保持在50毫秒以内,达到算法需求,进一步证明了该算法的可行性。
5结束语
本文提出了一种基于DLNA/UPnP协议下的无线多终端音频系统同步方案。通过对连接到同一个无线局域网的多个无线音频系统进行分组管理,实现了移动终端对不同位置的多个无线音频系统的控制,通过无线音频系统之间的通信,比较主从设备之间的播放进度时间差来做出调整,直接修改声卡RAM缓冲区里的音频数据,实现音乐的同步播放。实验表明,本方法可解决目前存在的多音箱播放时不同步的问题,进一步完善了用户在多房间音乐系统下的播放功能,提高了用户体验。并且该方法实现简单,同步效果明显,能有效提高产品竞争力。
[参考文献]
[1]彭国军,邵如玉,郑祎.移动智能终端安全威胁分析与防护研究[J].技术研究,2012,1:58-63.
[2]任荣.基于B/S结构的智能家居系统的研究和实现[J].广东通信技术,2012,12:25-29.
[3]Yeon-Joo Oh,Hoon-Ki Lee,Jung-Tae Kim,EuiHyun Paik,Kwang-Roh Park.Design of an Extended Architecture for Sharing DLNA Compliant Home Media from Outside the Home [J].Consumer Electronics,IEEE Transactions on,vol.53,no.2,542-547,May 2007.
[4]韩玉辉.多域无线广播组播网络中的同步技术研究[D].北京:北京邮电大学,2010.
[5]Jae-Woo Chang,Yong-Ki Kim.Context-aware application system for music playing services [A].In Proc.KES 2006 [C].Springer, 76-83.
[6]陈汝全.音响发展新方向——家庭多房间无线音频系统[J].实用影音技术,2005,10:30-34.
[7]卡尔弗特著,周恒民,译.Java TCP/IP Socket编程[M].北京:机械工业出版社,2009.
[8]Henrik Sorensen,Mathies G.Kristensen,Jesper Kjeldskov and Mikael B.Skov Proxemic Interaction in a Multi-Room Music System [A].In Proc.the 25th Australian Computer-Human Interaction Conference [C],2013, 153-162.
[9]Ross bencina,Phil Burk.PortAudio:an Open Source Cross Platform Audio API [A].Proceedings of the International Computer Music Conference 2001[C].International Computer Music Association,San Francisco.