公开/公告号CN101807400A
专利类型发明专利
公开/公告日2010-08-18
原文格式PDF
申请/专利权人 中国科学院软件研究所;
申请/专利号CN201010033846.7
申请日2010-01-08
分类号
代理机构北京君尚知识产权代理事务所(普通合伙);
代理人余长江
地址 100190 北京市海淀区中关村南四街4号
入库时间 2023-12-18 00:39:50
法律状态公告日
法律状态信息
法律状态
2019-12-27
未缴年费专利权终止 IPC(主分类):G10L19/00 授权公告日:20120425 终止日期:20190108 申请日:20100108
专利权的终止
2012-04-25
授权
授权
2010-10-06
实质审查的生效 IPC(主分类):G10L19/00 申请日:20100108
实质审查的生效
2010-08-18
公开
公开
技术领域
本发明涉及语音多播传输,尤其涉及一种面向传感器网络的基于擦除编码的自适应语音多播传输方法,属于无线传感器网络技术领域。
背景技术
近年来,随着传感器网络的深入应用,语音传输逐步成为传感器网络的一个重要应用,适用于如灾难应急、自然生态监控、安全防卫等领域。无线网络与有线网络不同,具有低可靠、高延迟、低带宽等特点,使得在无线传感器网络中传输高质量语音流存在极大的挑战。
根据语音质量评估模型E-Model(International Telecommunication Union.The E-model,acomputational model for use in transmission planning,G.107.Technical report,2005),语音流传输过程中的丢包是造成语音质量下降的主要原因,因此为了保证语音质量需要减少语音流在传输路径上的丢包率。在无线网络中减少丢包的一种重要手段是对丢失的数据包进行恢复,其中典型的数据包恢复机制包括以下两种:
(1)自动重传机制(Automatic Retransmission Request,简称ARQ);
(2)前向纠错机制(Forward Error Correction,简称FEC)。
自动重传机制ARQ是指由数据包接收者向发送者反馈确认信息,当接收者成功接收到从发送者发出的一个数据包后,由接收者向发送者返回一个确认信息,通常称为ACK。如果发送者接收到ACK,则表示上一个数据包发送成功,否则,发送者重新将上一个数据包发送一遍。ARQ在有线和无线网络可靠传输中被广泛应用,但是,由于无线网络的丢包率非常高,导致ACK发生丢失,从而造成发送者重复发送一个已经被接收的包,这个现象在多播传输中尤其严重(J.Gemmell and E.Schooler.Using Multicast FEC to Solve theMidnight Madness Problem.Technical Report MSR-TR-97-25,Microsoft Research Tech,EastLansing,Michigan,1997.)。因此,ARQ不适用于语音流在无线传感器网络中的多播传输。
前向纠错机制FEC(C.Perkins and O.Hodson.RFC2354:Options for repair of streamingmedia,1998.)分为两种策略,第一种策略称为内容相关的前向纠错(media-dependent FEC),每个数据包中附带前一个数据包的内容,当前一个数据包丢失而后一个正确接收后,可以利用携带的前一个数据包内容对其进行恢复。这种机制被广泛应用于有线网络语音流传输(B.Sat and B.Wah.Analysis and evaluation of the Skype and Google-Talk VoIP systems.InMultimedia and Expo,2006.),但是它不适用于传输带宽低、数据包长度受限的传感器网络。另一种策略称为内容无关的前向纠错(media-independent FEC),这种方法在原始的语音数据流中加入冗余信息,即使在传输过程中一部分原始语音数据丢失了,在接收端仍然可以根据冗余信息将原始数据恢复。这种方法虽然适用于传感器网络(S.Kim,R.Fonseca,and D.Culler.Reliable transfer on wireless sensor networks.In SECON,pages 449-459,Oct.2004.),但现有的方法只针对路径质量不发生动态变化的网络,此外,也没有考虑语音流在多跳的无线传感器网络中的多播传输。
发明内容
本发明的目的在于克服现有技术中存在的问题,提出一种基于擦除编码的自适应语音传输方法,该方法特别适用于传感器网络的语音多播。
概括地说,本发明方法包括:基于擦除编码由源节点按设定的编码系数产生语音流,所述语音流经中继节点发送到多个汇聚节点;
该方法还包括:
所述汇聚节点按设定的反馈周期计算丢包率,并据此计算使语音质量符合要求的最小编码系数;
所述汇聚节点将所述最小编码系数经中继节点发送到所述源节点;
所述源节点根据收到的所述最小编码系数中数值最大的编码系数产生语音流。
本发明方法利用语音质量评估模型E-Model对语音质量进行实时在线评估。根据E-Model,语音质量由语音传输过程中语音流的数据丢失率决定,可表示为下式(1-1):
>
其中,R表示计算得到的语音质量;R0-Is为一个常数93.2;A通常取值为0;Ie和Bpl表示两个与语音压缩编码算法相关的常数,当使用ADPCM 24Kbps的压缩编码时,可根据实验测得Ie=25,而Bpl=38%;Pl表示语音传输过程中语音流的数据丢失率。将这些定值代入式(1-1),则该式可简化为:
>
(1-2)
当R大于等于Rmin时,语音质量符合要求。本发明发明人经过实验测试发现,当R值小于50时语音将无法被正确辨别,因此,本发明设定Rmin=50,即R值在50以上时语音质量符合要求。
按照上式(1-2),当R=Rmin时可以得到Plmax=13.35%,为了使R≥Rmin,则Pl≤Plmax。
在本发明方法所针对的语音流多播传输系统中,存在唯一的源节点(称为source)和多个汇聚节点(称为sink),语音流由source产生并发送到所有sink节点,本发明的目标在于保障所有sink节点接收到的语音质量都高于所述阈值。
本发明方法基于擦除编码(Erasure Coding)技术,擦除编码属于背景技术中提到的内容无关的前向纠错机制。该机制在原始的语音数据流中加入冗余信息,即使在传输过程中一部分原始语音数据丢失了,在接收端仍然可以根据冗余信息将原始数据恢复。
在擦除编码技术中,先将由source产生的语音流进行缓存,当缓存数据达到k个数据包后进行编码,产生一共n个编码包,其中满足n≥k,n表示编码组长度。在这n个编码包中,包含原始的k个数据包和额外的n-k个冗余编码包,组成一个编码组(称为block)。在这n个编码包中,只要任意接收到其中k个就能够将原始的k个数据包恢复。在后面的讨论中将n称为编码系数。编码系数越大则加入的冗余信息越多,而Pl就越小。由于无线带宽受限,引入大量的冗余数据会导致网络带宽拥塞,所以,在设计目标中应该减少过量的冗余,即选择尽量小的编码系数。
在语音流的传输过程中,如果丢包率为p,那么语音流的数据丢失率:
>
丢包率为p相对容易测得,k为预设值,则根据上面的公式,在满足Pl≤Plmax的前提下,可以计算得到最小的编码系数nmin。
在本发明方法中,sink按照设定的反馈周期计算nmin,并经中继节点将它发送到Source,如图1所示。
在本发明方法中,中继节点优选进行反馈融合。
具体来说,在sink向source反馈最小编码系数的过程中,数据从sink经过中继节点通过多跳传输到source,在传输途中,每个中继节点优选根据其接收到的多个反馈进行数据融合,只将来自语音质量最差的sink的反馈,即数值最大的最小编码系数,向上游继续汇报。如图2所示,假设sink2上测量到的语音质量低于sink1的,则相比而言,sink2的最小编码系数n2min大于sink1的最小编码系数n1min。那么当1号中继节点同时接收到n2min和n1min时,反馈融合的结果是,中继1将n2min发送往source节点。
source节点收到来自各个sink节点的最小编码系数后,根据收到的最小编码系数中数值最大的编码系数产生语音流。由于上述处理过程旨在使网络中语音质量最差的sink节点的语音质量符合要求,那么对于其它语音质量稍微好一些的sink节点也同样能满足它们的语音质量需求。
根据前面的讨论,source节点根据网络中语音质量最差的sink选择编码系数,对于其它质量稍好的sink节点而言,它们将接收到过量的冗余数据,从而导致网络带宽的浪费。为了解决这个问题,中继节点优选在从source到sink转发语音流数据的过程中进行冗余过滤。具体来说,位于汇聚节点上游的中继节点仅将来自源节点的编码组内的前x个编码包发送给汇聚节点,而将编码组中位于这x个编码包之后的其余编码包丢弃,所述x表示所述汇聚节点的最小编码系数。
如图3所示,假设sink2的最小编码系数n2min=10,sink1的最小编码系数n1min=5,则在上述反馈融合的机制下,source选择的编码系数是两者中的较大值10。此后,source以包含10个编码包的编码组向sink多播语音数据。在从source到sink1的路径之中的某个中继2节点上,该节点按照n1min仅将前5个编码包发送给sink1,而主动丢弃第6-10个编码包以免浪费带宽。与之相反,在从source到sink2的路径中的某个中继3节点则将1-10个编码包全部发送。若还有sink3,并假设n3min=7,则自然地,位于source和sink3之间的中继节点只需发送前7个编码包。
和现有技术相比,本发明的优势在于:
1、本发明设计了语音传输技术,根据语音质量对编码系数周期性反馈,自适应无线通信质量的动态变化,特别适用于无线传感器网络;
2、本发明针对语音多播过程中一对多的语音传输模式,设计了基于擦除编码的丢包恢复机制,相比现有的基于重传的方式减少了网络数据传输开销;
3、本发明同时考虑多个汇聚节点上同时满足语音质量的需求,并且设计了中间节点上基于主动丢包的冗余过滤机制,防止网络资源浪费。
附图说明
图1表示sink周期性向source反馈最小编码系数的示意图。
图2表示中继节点的反馈融合示意图,其中虚线表示多跳传输。
图3表示中继节点的冗余过滤示意图,其中虚线表示多跳传输。
图4表示本发明实施例语音多播过程示意图。
具体实施方式
以下结合附图通过最佳实施例详细说明本发明,但不构成对本发明的限制。
本实施例提供一个采用本发明方法的语音流多播传输系统实例。
在本实施例中,硬件平台是一种低成本语音采集节点。节点支持高带宽语音传输,使用32-bit Atmel AT91SAM7S256微控制器,该微控制器上带有256KB flash存储和64KBRAM存储。无线收发芯片采用Chipcon CC1100,该芯片带有64-byte FIFO缓存,最高数据收发速率为500Kbps。CC1100芯片支持基于硬件的低能耗监听模式,支持低功耗唤醒机制。节点上装置了驻极体电容麦克风用于语音数据采集,由于人声频率范围为340Hz到3400Hz,所以语音采样频率设置为8KHz,保障语音无损采集。此外,平台上实现了340Hz到3400Hz的带通滤波器,进一步减弱人声频率以外的其它频段带来的噪音,优化采样效果。为减少传输语音带宽,对原始数据进行数据压缩,节点软件上实现了ADPCM语音压缩算法。
参考图4,本实施例语音多播过程包括:
1)汇聚节点根据一定的反馈周期Tf,测量该周期内从source发出的语音流在传输过程中的丢包率p,并根据该丢包率以及预设的擦除编码参数k通过公式(2)计算当前sink上的最小编码系数。
2)每个汇聚节点均将其对应的最小编码系数作为反馈借助于中继节点发送到source。
3)在各个中继节点上,若某个中继收到多个反馈信息(最小编码系数)n1min,n2min,n3min...,则中继节点将其中最大者(max(n1min,n2min,n3min...))继续向上反馈至source节点;
4)source节点收到来自各个汇聚节点的最小反馈系数后,选择其中最大的数值作为其擦除编码的反馈系数,向汇聚节点发送语音流。
5)中继节点在转发数据过程中进行冗余过滤,当它发现冗余过量后主动丢弃不必要的编码包,以免浪费带宽。
机译: 信号例如语音信号,一种在移动网络中使用的传输方法,涉及将语音和音乐信号混合以获得组合信号,对组合信号进行编码以获得编码信号,然后将编码信号发送到接收器
机译: 基于语音波形外推的用于预测语音编码的帧擦除隐藏方法和系统
机译: 基于语音波形外推的预测语音编码帧擦除隐藏