姚引娣
(西安邮电学院通信与信息工程学院,西安 710121)
我国是一个地质灾难频发的国家。地质灾难发生频率、强度不仅直接对人民生命财产造成巨大损失,而且造成的二次灾难影响不可忽略,例如,因供电网络瘫痪造成的大面积停电事故进而造成社会的巨大损失[1]。因此,在出现地质灾难时,建立一套紧急通信系统是非常必要和紧迫的。由于地质灾难往往导致常规通信网络设备失效,目前应急通信主要依靠卫星电话或对讲机系统。然而,卫星电话设备费用及日常资费均偏高,因此一般单位很少配备。而对讲机[2]只能实现半双工通信,即发起方在说话时听不到其它人的语音,而且通信双方时常因为抢话而难以顺利沟通。如果多人同时抢话,将造成系统无法正常通信。因此需要一种更好的应急通信方案来解决目前的困境。文献[3]提出一种基于Ad Hoc的语音多播系统,文献[4]提出一种基于SIP协议的实时语音通信,但是它们均需要中心服务器进行处理,系统设计复杂,灵活性差。
针对以上问题,本文提出一种采用无线Ad Hoc网络的嵌入式系统[4-6]。该系统以TI公司的OMAP5912芯片作为核心处理器,以Linux系统作为软件开发平台,通过G729a[7]语音编码算法节省频带需求,通过动态语音解码算法实现多人同时进行通话的目的。
考虑到系统的便携性,系统采用嵌入式方式进行设计,选用TI公司的OMAP5912作为核心处理器,它在满足系统处理能力的同时具有低功耗特点。为了实现应急无线多方通话系统,系统重点考虑两个关键问题:支持随时随地通信功能和无线多方话音通信功能。
针对第一个问题,一般可以采用无线WiFi模块的嵌入式话音通信方式来实现随时随地通信需求。采用WiFi模块组网的系统支持两种组网模式:基于AP方式的组网模式和基于Ad Hoc方式的组网模式。由于基于AP的组网模式需要一个中心节点负责转发和处理系统内部各成员之间语音信息,一旦该节点失效,整个系统将无法工作。而基于Ad Hoc组网模式的用户进行语音通信不需要中心节点转发,相互之间地位平等,可以直接进行通信。因此,本系统采用基于Ad Hoc的组网模式进行无线组网。
针对第二个问题,系统需要采用组播方式进行设计。考虑到在环境恶劣的条件下系统的带宽有限,为了容纳更多的用户,需要采用合适的语音编解码算法以进一步降低单个用户的带宽需求,从而提高系统用户的容量。结合系统的话音质量以及算法的复杂度设计,本系统采用G729a语音编码算法,同时提出动态多用户语音解码算法以满足多用户话音通信。
根据上面的分析,本文分别从系统硬件和软件进行设计,以达到多方话务应急通信的目的。
系统结构如图1所示,包括OMAP5912处理器、耳麦模块、WiFi网卡、键盘和显示器。其中,OMAP5912负责运行处理语音编解码算法、混音技术、无线组网;耳麦模块负责对话音数据的采集和播放;WiFi网卡负责完成通信双方的数据交换;小键盘负责对系统的控制。显示屏提供系统状态信息。
图1 系统结构原理图Fig.1 Schematic diagram of system
耳麦模块主芯片选用TI公司的AIC23芯片,它提供语音信息模数转换和数模转换。本系统采用16位的话音数据格式,采样频率采用8 KHz。如图2所示,通过OMAP5912的I2C接口完成对AIC23的可编程设置。OMAP5912与AIC23的音频数据通过OMAP5912的MCBSP接口完成。
图2 AIC23基本电路图Fig.2 Basic circuit of AIC23
LCD显示器选用SHARP公司的LQ035Q7DB03,OMAP5912通过专用LCD接口与其连接。考虑到LCD控制模块输出的信号时序与LQ035Q7DB03的接口不匹配,故用SHARP公司与之配套的LCD驱动芯片LZ9FC22进行转换,从而实现OMAP5912与实现与LQ035Q7DB03的无缝连接,硬件电路如图3所示。
图3 OMAP5912与LCD接口电路图Fig.3 Interface circuit of OMAP5912 and LCD
系统的无线通信模块采用基于RT73芯片的无线WiFi网卡,它工作在2.4 GHz的 ISM频段,负责完成各用户之间语音和数据信息的交换。它与CPU之间通信通过USB接口实现。
系统小键盘通过OMAP5912专用8×8 I/O接口与OMAP5912连接,通过微处理器输入输出单元(Microprocessor Unit Input/Output,MPUIO)控制完成键盘输入。其中,MPUIO的KBR-LATCH为键盘行输入,KBC-REG为键盘列输出,通过对这两个寄存器进行读写,可以进行行/列的扫描。本设计采用中断和扫描相结合的方法实现4×5键盘驱动,从而有效节省系统资源,提高使用效率。
本系统软件平台采用Linux2.6.29操作系统。系统主程序结构图如图4所示。在完成系统初始化设置后,先建立基于Ad Hoc的无线组播网络,然后利用QT界面控制技术实现整个系统的控制和管理。系统按功能模块可以划分为语音处理模块、无线通信模块、键盘处理模块和图像显示模块。
图4 系统主程序结构图Fig.4 Structure of system main program
由于无线通信模块、键盘处理模块和图像显示模块相对简单,这里不一一分析,本文重点研究语音处理模块的实现。语音处理包括语音编码及发送处理部分和多用户语音解码及混音回放两部分,如图5所示。语音编码及发送处理部分首先将AIC23声卡采集到的数据缓存到buffer单元,然后采用G729a语音编码算法进行语音编码处理,它以每10 ms(80个语音样本)为一个处理语音帧,对语音信号分析并提取各种参数(线性预测滤波器参数、自适应码本和固定码本的索引、自适应码本增益和固定码本增益),最后把这些参数编码输出到WiFi发送缓存空间,由WiFi发送模块将数据发送出去。考虑到G729a语音解码算法在处理每帧语音数据时,需要前视后一帧的数据,如果某个话路前视的是别的话路的数据,将影响本话路的编码,从而破坏每个话路帧与帧之间的联系。故G729a算法一般只适合单一用户数据处理。因此,在实现多用户语音解码及混音回放时需要改进原有G729a语音解码算法。
图5 语音编解码处理流程Fig.5 Flow of voice encoding/decoding processing
考虑到实际多人语音通信时,同时说话的人并不多,否则大家都听不清楚谁说的话。如果系统在语音解码设计部分对每一个人都建立解码通道并进行实时译码,一方面会增加系统资源开销,另一方面也会增加系统CPU的处理负担,因此本文提出一种动态多用户语音解码算法来达到支持多用户实时语音解码目的。
动态多用户语音解码算法首先建立多用户话音处理通道,并完成初始化多通道话音处理参数工作,然后对接收到的WiFi数据包提取用户ID信息和语音信息。根据输入用户ID信息判断当前帧是否与前一帧用户一致,如果一致,则继续进行语音解码;如果不一致,先判断是老用户信息还是新用户信息。如果收到语音信息包属于已创建的用户,则调出对应老用户参数信息表进行解码;如果属于新用户的,则创建新用户话音解码通道,然后进行话音解码。完成语音处理后对现存语音通信用户进行判决处理,如果占用语音译码处理通道的用户一段时间没有通话,就释放该用户信息,以便接纳新的语音通话用户。
对于G729a多用户解码器输出的多用户语音信息,采用混音处理算法进行处理,然后通过AIC23声卡回放,从而实现多用户语音通信功能。
系统无线网络采用基于Ad Hoc的MOLSR协议进行组网。系统的AIC23声卡采用16 bit单声道采样。这里主要验证系统的组网能力以及语音通信的效果。
为了验证系统的组网能力,先测试系统的吞吐率,它是多用户语音通信得以实现的前提。这里采用Netperf软件进行分析,测试表明基于UDP的传输速度,两点间的平均速度可达3.4 Mbit/s。对于语音通信而言,基于AIC23芯片的语音通信采样频率是8 KHz,采用16 bit单声道采样,所需带宽为128 KHz。而G729a的压缩率为16∶1,故所需带宽仅为8 KHz。因此,该无线网卡支持多用户通信。
然后对语音音质进行测试,这里利用由Cooledit2000软件进行分析,如图6所示,原始语音和采用G729a语音编解码处理后的语音波形基本一样,从音质效果上看,语音清晰,达到MOS=4的语音测试水平。
图6 多用户G729a语音解码处理流程图Fig.6 Flowchart of multi-user G729a voice decoding processing
最后对系统语音延迟进行测试,无线传输时语音数据每次发送4帧数据,每帧包含10 ms语音数据,系统整体延时约为60 ms,听者基本感觉不到延迟效应。
本文设计了一套多用户实时语音通信系统。通过动态多用户语音解码算法有效解决了多用户话音处理与用户容量关联较大的问题,实现了系统多点对多点语音实时处理。利用WiFi模块实现Ad Hoc组网有效地发挥系统组网快捷、灵活等特点,提高了系统的灵活性。利用OMAP5912嵌入式平台发挥了系统低功耗的特点,为应急通信提供了可靠的保障,系统具有重大的研究价值与广阔的应用前景。
[1]赵建青,尹项根.广东110kV电网大面积停电问题的分析及解决方案[J].电力自动化设备,2003,23(8):82-84.ZHAO Jian-qing,YIN Xiang-gen.Analysis and solution to wider area outage of Guangdong 110kV power grid[J].Electric Power Automation Equipment,2003,23(8):82-84.(in Chinese)
[3]Lu Han,Smaldone S,Shankar P,et al.Ad-hoc voicebased group communication[C]//Proceedings of 2010 IEEE International Conference on Pervasive Computing and Communications.[S.l.]:IEEE,2010:190-198.
[4]李振宇,李思敏.一种移动Ad hoc网络中实时语音通信方案的研究[J].电子测量与仪器学报,2009,23(5):40-45.LI Zhen-yu,LI Si-min.Research of solution for realtime speech communication over mobile Ad hoc network[J].Journal of Electronic Measurement and Instrument,2009,23(5):40-45.(in Chinese)
[5]林小茶,李光,金爽.嵌入式可信计算机研究[J].计算机工程与设计,2009,30(16):3730-3734.LIN Xiao-cha,LI Guang,JIN Shuang.Study of embedded trusted computer[J].Computer Engineering and Design,2009,30(16):3730-3734.(in Chinese)
[6]孙延岭,赵雪飞,张红芳,等.基于AR M 嵌入式系统的微型智能可编程控制器[J].电力系统自动化,2010,34(10):101-104.SUN Yan-ling,ZHAO Xue-fei,ZHANG Hong-fang,et al.Micro Intelligent Programmable Logic Controller with AR M Embedded System[J].Automation of Electric Power Systems,2010,34(10):101-104.(in Chinese)
[7]辛杰,鲍长春,贾懋王申,等.改进的符合EV-VBR标准的嵌入式宽带语音编码器[J].通信学报,2010,31(6):7-13.XIN Jie,BAO Chang-chun,JIA Mao-shen,et al.Improved embedded wideband speech codec fitting EV-VBR standard[J].Journal on Communications,2010,31(6):7-13.(in Chinese)