专利名称::一种基于语音前向包络预测的差错隐藏方法
技术领域:
:本发明涉及一种接收端的差错隐藏方法,尤其适用于VoIP中波形编码方式下传输语音丢包的情况。技术背景由于VoIP技术与传统公共交换电话网络(PSTN)相比,具有设备低廉、建网方便、投资降低并可提供新的服务项目从而扩大运营商盈利空间的诸多优点,VoIP得到了高速发展,并对固定语音业务形成了挑战。但是由于因特网协议(IP)是一种尽力而为的服务,而语音业务则要求为实时服务,服务质量(QoS)成为VoIP应用的一个主要问题。网络中的延时、抖动和丢包都会显著降低语音的质量,在无线网络中这些影响更加严重。为了减小抖动和丢包对语音质量的影响,不同的抖动缓存技术和丢包恢复技术被提出并应用。抖动缓存算法包括固定缓存和自适应缓存算法,自适应缓存算法又分为语音峰(talkspurt)内和语音峰间自适应算法。而丢包恢复技术则分为发送端丢包恢复技术和接收端差错隐藏技术。发送端的方法包括主动式方法(如重传)和被动式方法(如交织和前向纠错)。前向纠错方法又进一步包括媒体相关和媒体无关方法。基于发送端的丢包恢复技术的优点是,它们几乎可以恢复任何形式的错误和丢包;其缺点是,这些方法均会增加时延或占用更多的传输带宽。对于语音这种实时业务,丢包恢复更多地采用基于接收端的差错隐藏技术。基于接收端的差错隐藏方法主要包括插入隐藏方法,如拼接,静默替代和包重复;插值方法,如波形插值替代,基音波形复制及时长调整(time-scaling)方法;再生方法,如传输状态插值与基于模型的恢复方法。基于接收端的差错隐藏方法与基于发送端的方法相比,它们可以恢复的错误情况减少,但是它们更加简单而且不要求额外的带宽。因此,在各种语音编解码技术中,基于接收端的差错隐藏方法应用更为广泛。例如,3GPPTS26.190第五版本规定的第三代移动通信中自适应多速率宽带语音编码中,差错隐藏方法使用重复好帧的参数或对前几帧的参数进行外推替换来恢复丢失语音帧。在多帧连续丢失的情况下,帧替换恢复的时候使输出信号的能量逐渐减小,即加入衰减,使输出信号逐渐减弱直至无声。又如,在VoIP中广泛采用的iLBC编码器,其差错(丢包)隐藏机制也是非常简单有效的。GlobalIPSound公司提出的iLBC编码器中的差错隐藏方法为如果上一包正常收到而当前包丢失,则采用上一包的激励信号的基音同步重复,并在产生的激励上叠加一个随机激励来避免产生嗡嗡声(buzzy-soimding)。具体做法是,采用相关分析来得到上一包激励信号的基音周期和浊音度,从而产生当前替代包的激励信号。利用新产生的激励信号与线性预测滤波器的系数产生语音并替代当前丢失包;如果出现连续丢包的情况,则采用同样的方法来恢复当前包,但这时替代的激励信号的能量是逐渐衰减的,以体现前面各包对当前包影响逐渐减小的事实;如果当前包正常收到,而前一包数据丢失了,那么并不是直接采用当前包语音,因为上一包恢复的语音可能与本包产生不连续从而导致失真。这时可以采用相似度搜索来寻求语音的最佳连接点。现有的差错隐藏方法考虑了语音的相关性(如连续丢包情况下重复前几包时加入衰减效应以体现后续包与前面包相关性的减小)、平滑连接性(如采用相似度搜索来寻求最佳连接点)、短时平稳特性(如采用前几包的参数加上一个随机参数来恢复当前丢失包)等。本发明中的差错隐藏方法的基本思想不同于这些现有方法,它的出发点是考虑语音的包络特性,它不是上一包的简单重复或基音同步重复,而是通过计算前两个语音包的幅度变化趋势,来预测当前包包络变化的趋势,从而利用前一包的不同处理后的形式来对当前丢失包进行恢复。本方法计算非常简单,另外可以通过调整窗函数的形式、状态判断阈值、波形拼接点等参数来更好地符合语音特性,达到更好的差错隐藏效果。
发明内容本发明涉及一种基于语音前向包络预测的差错隐藏方法。该方法属于在通信接收端的差错隐藏方法,可应用于VoIP中传输语音包丢失的情况,并可结合任何形式的抖动缓存算法使用。本发明是基于对语音特性的合理假设的,这个假设是语音波形是连续的,且具有短时平稳性,因此相邻语音包之间的幅度变化趋势也具有一定的连续性,语音幅度变化一般包括上升,保持和下降三个过程。为了简便有效地恢复当前丢失包,达到更好的恢复语音质量,本发明是通过以下方法实现的,其步骤为a)在给定的抖动缓存条件下,确定当前包是否迟于其预定播放时间,如果是,则认为当前包丢失;b)判断前两包语音是否都已收到;根据前两包语音的收到和丢失情况,对当前语音包采用不同的恢复方法。若前两包语音均正常收到,则执行步骤C、d,否则执行步骤e。c)计算前两包语音的幅度变化趋势,从而预测当前包语音的包络变化趋势。具体预测方法见下面基于语音包络前向预测的方法的各个步骤;d)根据所预测的当前包语音包络变化趋势,采用对前一包语音不同的加窗处理来得到当前包语音的替代,并进行播放。窗函数包括上升窗,下降窗或者几种窗函数的组合,甚至置零窗,即当前包用静默替代;e)如果前两包语音并未全部正常收到,即其中一包或两包丢失,则不再预测幅度趋势;根据包的接收情况,若前一包语音收到而更前一包语音丢失,则采用上一包的全部或部分重复来对当前包进行替代;若前一包语音丢失而更前一包语音收到,则重复前一个收到包的全部或部分来恢复当前包;若前两包均丢失,则当前包用静默替代;基于对语音包络特性的合理假设,本发明提出了一种基于语音包络前向预测的方法,其步骤为a)分别计算前两包语音的平均幅度,并对两包语音的平均幅度进行比较,根据预设阈值,得出前两包总体变化趋势;b)分别计算前两包语音内部的幅度变化趋势,比如将每包语音分为前后两部分,对其前后两部分的幅度进行计算,并根据预设阈值,得出每包语音的幅度变化趋势;c)根据前两包语音的总体和内部趋势,基于语音特性的合理假设,判断当前语音应处于上升、保持、下降状态还是某几种状态的组合。根据本发明基于语音包络前向预测的方法的思想,语音包络变化情况一般可分为以下六种,不同的包络趋势情况对应不同的当前包恢复处理方法,结合附图2进行说明a)对于图2中第一种情况,前两包语音幅度处于初步上升阶段,则当前包包络应呈上升趋势,且上升速度逐渐变缓,当前包丢失时,应采用各种形式的上升窗对前一包语音进行处理以恢复当前包。窗函数的形式有多种选择,如线性上升窗(1),sigmoid上升窗(2)的一部分,升余弦窗,或其它形式的窗函数及不同窗函数的组合等,<formula>formulaseeoriginaldocumentpage7</formula>(1)长度为N的线性上升窗;w2w(")=——in^7,"〉0,"^0,1,…2^-1(2)长度为2N的sigmoid上升窗。l+e。("b)对于图2中第二种情况,前两包语音幅度一直处于上升阶段,则当前包包络应先基本保持后下降,且下降速度逐渐变快,当前包丢失时,应采用相应形式的窗函数对前一包语音进行处理以恢复当前包,比如矩形窗与下降窗的组合,而符合条件的窗函数又可选择多种形式。c)对于图2中第三种情况,前两包语音幅度经过上升和保持两个阶段,则当前包包络应呈下降趋势,且下降速度逐渐变快,当前包丢失时,应采用相应形式的下降窗对前一包语音进行处理以恢复当前包,而符合条件的窗函数又可选择多种形式。d)对于图2中第四种情况,前两包语音幅度经过保持和下降两个阶段,则当前包包络应呈下降趋势,且下降速度逐渐变缓,当前包丢失时,应采用相应形式的下降窗对前一包语音进行处理以恢复当前包,而符合条件的窗函数又可选择多种形式。e)对于图2中第五种情况,前两包语音幅度一直处于下降阶段,则当前包包络应逐渐下降直至静默,当前包丢失时,应采用相应形式的窗函数对前一包语音进行处理以恢复当前包,比如下降窗与置零窗的组合,而符合条件的窗函数又可选择多种形式。f)对于图2中第六种情况,前两包语音幅度经过下降、保持和上升二个阶段,则当前包包络应呈上升趋势,且上升速度逐渐变缓,当前包丢失时,应采用相应形式的上升窗对前一包语音进行处理以恢复当前包,而符合条件的窗函数又可选择多种形式。应该注意的是,语音的包络趋势可能不只是这六种情况,若对各种情况细化并相应做更详细的分析,则恢复语音质量可达到更佳的效果。本发明有益的效果是这种基于语音包络前向预测的差错隐藏方法是基于接收端的,不占用额外的传输带宽;该方法仅利用前面已接收语音包来恢复当前包,因此不引入额外延时;该方法基于语音包络固有特性,对不同语言均适用,并可调整参数来适应不同语种达到更好效果;该方法计算简单有效,极易实现。图1为根据本发明一个实施例的基于语音前向包络预测的差错隐藏方法的流程图;图2示出了基于前面两个语音包预测得到的当前包包络的六种可能情况第一种情况,当前包包络应呈上升趋势;第二种情况,当前包包络应先基本保持后下降;第三种情况,当前包包络应呈下降趋势;第四种情况,当前包包络应呈下降趋势;第五种情况,当前包包络应逐渐下降直至静默;第六种情况,当前包包络应呈上升趋势。六种不同情况的处理将在本发明实施例中具体介绍。具体实施方式下面结合附图和实施例对本发明作进一步的介绍为了更好地说明该方法的实施过程,先定义一些数学表示如下N表示每包语音中语音样点数。比如包长为40ms,采样率为16kHz时,N二640。p(i),p(i-l),p(i-2)分别表示当前语音包,前一个语音包和更前一个语音包。它们的长度为N。PF(i),PF(i-l),PF(i-2),分别表示当前语音包,前一个语音包和更前一个语音包的前半部分。它们的长度为N/2。PE(i),PE(i-l),PE(i-2)分别表示当前语音包,前一个语音包和更前一个语音包的后半部分。它们的长度为N/2。M表示平均幅度算子。例如,^—2)的N个样点表示为X(1),X(2),…,X(N),那么k2)|=IW力T7z是一个大于1的阈值。w,f^)是长度为2N的上升型sigmoid函数,即=l+e—':(,">o,"=o,i,j—1同理,w/"J是长度为2N的下降型sigmoid函数,艮卩w()=-V"^,"o,"-o,u-i本发明实施的具体步骤如下(以sigmoid窗函数为例)a)在给定的抖动缓存条件下,确定当前包是否迟于其预定播放时间,如果是,则认为当前包丢失;b)确定前两个语音包是否均已正常收到。若前两个语音包均已正常收到,则执行步骤c,否则执行步骤d。c)如果当前包丢失且前两个语音包均已正常收到,则计算前两个语音包内的幅度变化趋势及两个语音包之间的幅度总体变化趋势,从而预测当前包的包络变化情况。根据语音特性,可能有六种不同的语音包络变化情况〔附阁2):cl)对于图2中第一种情况,当前包包络应呈上升趋势,且上升速度逐渐变缓,因此对前一包语音加窗时采用上升sigmoid函数的后半部分形式,数学表达为若M^M^,I尸邵-2)l<77;,l,-i)l>77;2)i1)1贝'JPF(i)=PE(i-l)*—+().5),"=TV,TV+1,..JV+TV/2-1PE(i)=PE(i-l)*—i(n)+0.5),w=iV+A/72,W+W/2+1,…2W-1c2)对于图2中第二种情况,当前包包络应先基本保持后下降,且下降速度逐渐变快,因此对前一包语音后半部分加窗时采用下降sigmoid函数的前半部分形式,数学表达为若<formula>formulaseeoriginaldocumentpage11</formula>c3)对于图2中第三种情况,当前包包络应呈下降趋势,且下降速度逐渐变快,因此对前一包语音加窗时采用下降sigmoid函数的前半部分形式,数学表达为若<formula>formulaseeoriginaldocumentpage11</formula>c4)对于图2中第四种情况,当前包包络应呈下降趋势,且下降速度逐渐变缓,因此对前一包语音加窗时采用下降sigmoid函数的后半部分形式,数学表达为若<formula>formulaseeoriginaldocumentpage11</formula>c5)对于图2中第五种情况,当前包包络应逐渐下降直至静默,因此恢复当前包的前半部分时,对前一包语音后半部分加窗时采用下降sigmoid函数的后半部分形式,而令当前包的后半部分为静默,数学表达为<formula>formulaseeoriginaldocumentpage11</formula>(静默)c6)对于图2中第六种情况,当前包包络应呈上升趋势,且上升速度逐渐变缓,因此对前一包语音加窗时采用上升sigmoid函数的后半部分形式,数学表达为若Dl〈,岡-2)l掘,—W-2)|I,-2)||,-1)|贝廿PF(i)=PE(i-l)*(Wl(n)+0.5),"=W,iV+l,..JV+iV/2-lPE(i)=PE(i-1)、(n)+0.5),"=+iV/2,W+iV/2+1,…2iV-1d)如果前两包语音并未全部正常收到,即其中一包或两包丢失,则不再预测幅度趋势;根据包的接收情况,若前一包语音收到而更前一包语音丢失,则采用上一包的后半部分重复来对当前包进行替代;若前一包语音丢失而更前一包语音收到,则重复前一个收到包的后半部分来恢复当前包;若前两包均丢失,则当前包用静默替代。以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解,依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换(如加窗不是采用sigmoid窗而是采用线性窗函数或者升余弦等);而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。具体实施例11.实验设计搭建一个真实的无线局域网,在有线终端和无线终端之间传输语音,并采集其网络延时和丢包数据。语音16kHz采样,16bit量化,包长40ms,采用PCM编码方式。原始的语音材料来自NTT&AT语音数据库,包括汉语,英语和日语,每条语音样本8s长,包含两个短句。在本实验中,每种语言的语音样本是在四男四女的语音中随机选出的IO条样本,每条语音样本采用三种网络传输条件来处理。为了与其它方法比较,本实验采用了三种抖动缓存的大小(5ms,10ms禾口20ms)与各种差错隐藏方法相结合的方法。差错隐藏方法包括算法l,静默替代;算法2,重复前一语音包;算法3,重复前一语音包的后半部分,并加入衰减特性;算法4,前后两包平均插值;算法5,基于波形相似度搜索的前一包后半部分拼接替代;算法6,即本发明提出的基于语音前向包络预测的差错隐藏方法。2.系统性能评价指标各种差错隐藏方法的性能采用宽带PESQ分数来评价。PESQ是ITU-TP.862建议的估计主观测听实验得分的一种客观度量方法。它的输入为原始语音和处理后的语音,采用感知模型与认知模型,通过复杂的非线性运算,预测出处理后语音的感知主观得分。PESQ分数越高,则语音质量越好。宽带PESQ是PESQ的一种改进,适合宽带语音的质量度量。3.实验结果实验结果如表1所示表1采用不同差错隐藏方法时的宽带PESQ分数<table>tableseeoriginaldocumentpage13</column></row><table>其中,算法l,静默替代;算法2,重复前一语音包;算法3,重复前一语音包的后半部分,并加入衰减特性;算法4,前后两包平均插值;算法5,基于波形相似度搜索的前一包后半部分拼接替代;算法6,即本发明提出的基于语音前向包络预测的差错隐藏方法。由实验结果可以看出,在本实验条件下,本发明提出的方法不仅显著优于静默替代、重复前一包等单边差错隐藏方法(即仅采用当前包之前各包来恢复),甚至还优于某些双边插值差错隐藏方法,但它具有比双边插值差错隐藏方法具有更小的延时。本发明实现简单,性能优良,是一种简单有效的差错隐藏方法。权利要求1.一种基于语音前向包络预测的差错隐藏方法,包括以下步骤a)在给定的抖动缓存条件下,确定当前包是否迟于其预定播放时间,如果是,则认为当前包丢失;b)判断前两包语音是否都已收到;根据前两包语音的收到和丢失情况,对当前语音包采用不同的恢复方法。若前两包语音均正常收到,则执行步骤c、d,否则执行步骤e;c)计算前两包语音的幅度变化趋势,从而预测当前包语音的包络变化趋势;d)根据所预测的当前包语音包络变化趋势,采用对前一包语音不同的加窗处理来得到当前包语音的替代,并进行播放;e)如果前两包语音并未全部正常收到,即其中一包或两包丢失,则不再预测幅度趋势;根据包的接收情况,若前一包语音收到而更前一包语音丢失,则采用上一包的全部或部分重复来对当前包进行替代;若前一包语音丢失而更前一包语音收到,则重复前一个收到包的全部或部分来恢复当前包;若前两包均丢失,则当前包用静默替代。2.如权利要求1所述的方法,其特征在于所述的预测方法包括以下步骤a)分别计算前两包语音的平均幅度,并对两包语音的平均幅度进行比较,根据预设阈值,得出前两包总体变化趋势;b)分别计算前两包语音内部的幅度变化趋势,比如将每包语音分为前后两部分,对其前后两部分的幅度进行计算,并根据预设阈值,得出每包语音的幅度变化趋势;C)根据前两包语音的总体和内部趋势,基于语音特性的合理假设,判断当前语音应处于上升、保持、下降状态还是某几种状态的组合。3.如权利要求2所述的方法,其特征在于所述窗函数包括上升窗,下降窗或者几种窗函数的组合,甚至置零窗,即当前包用静默替代。全文摘要本发明涉及一种可应用于VoIP的差错隐藏方法。本发明所涉及的差错隐藏的方法是基于语音前向包络预测的,具体方法为如果当前语音包丢失,或晚于该包的预定播放时间,则通过计算前两个语音包的幅度变化趋势来预测当前包的包络变化趋势,预测方法是基于对语音特性合理的假设得出的。根据预测的当前包包络变化的不同趋势,采用对前一包语音进行不同形式的处理后的语音来代替当前包进行播放。这种基于语音包络前向预测的差错隐藏方法不占用额外的传输带宽,不引入额外延时,对不同语言均适用,计算简单有效,极易实现。文档编号G10L19/00GK101221765SQ20081005706公开日2008年7月16日申请日期2008年1月29日优先权日2008年1月29日发明者匡镜明,辉尹,湘谢申请人:北京理工大学