对丢失的语音业务数据帧进行补偿的方法

文档序号:7960147阅读:178来源:国知局
专利名称:对丢失的语音业务数据帧进行补偿的方法
技术领域
本发明涉及通讯领域,尤其涉及一种对丢失的语音业务数据帧进行补偿的方法。
背景技术
在VOIP(IP协议上传送语音)系统中,会话双方所发出的话音被封装成IP数据包,并通过IP网络进行传输,然后,在接收端对该IP数据包进行解包并还原成语音,从而实现发送端、接收端双方的实时会话。
在VOIP系统中,为了保证会话尽量以实时的方式进行,通常使用RTP(实时传输协议)传输协议,而不使用TCP(传送控制协议)协议。由于RTP协议是一个面向无连接、不可靠的数据传输协议,语音业务数据帧在传输的过程中会由于各种原因而丢失,而丢失的语音业务数据帧将严重影响系统的通话质量。因此,以合适的技术手段尽量重新生成与数据传输过程中丢失的语音业务数据帧相近似的语音帧,是VOIP系统中的一个重要问题。同时,VOIP系统同时还通过RTCP协议反馈会话过程中的会话质量,RTCP协议反馈的典型会话质量参数有丢包率及时延和抖动。
在VOIP系统中,语音通常按ITU-T(国际电信联盟-电信标准部)建议的G.711、G.723或G.729标准进行编码,然后再进行传输。在G.723和G.729的标准建议中,已经内建了丢帧补偿/丢帧隐藏技术,但G.711标准建议本身并不提供丢帧补偿/丢帧隐藏的支持,而是在APPENDIX I中提供了一种丢帧补偿/丢帧隐藏的参考实现方案。
上述现有技术的G.711 APPENDIX I的丢帧补偿/丢帧隐藏方案的基本原理为G.711 APPENDIX I的丢帧补偿/丢帧隐藏算法在接收端产生合成语音,以补偿因为丢帧而失去的语音数据。该算法采用了“基音波形重复”的方法,丢失的帧重复上一帧信号的一个基音周期的数据,同时采用“相位匹配”技术保证原始信号和合成信号之间的平滑过渡,减少了因数据简单重复而造成的语音失真。
由于语音信号是准平稳的时变序列,该方案对于10ms以内的语音数据丢失比较有效,但如果丢失的语音业务数据帧长度>10ms,仅仅采用“基音波形重复”生成的语音终究还是有一定的准周期性,生成的语音带有明显的beep(嘟嘟响)声,因此,G.711 APPENDIX I还进一步对合成的语音帧进行衰减、混合和平滑处理。
G.711 APPENDIX I的丢帧补偿/丢帧隐藏算法还通过将最近的一个基音周期和它之前的1/4基音周期数据从基音缓冲区中取出,用于对丢帧数据的补偿。其中前1/4基音周期数据用于与丢帧前的语音信号进行重叠相加,以保证原始信号和补偿信号间的平滑过渡。补偿数据简单重复取出的基音周期数据,直到全部覆盖丢失的帧为止。如果下一帧数据也没有丢失,则再延拓1/4基音周期数据与准确接收的数据进行重叠相加,以保证合成的语音与其前后两帧的平滑过渡。
上述G.711 APPENDIX I的丢帧补偿/丢帧隐藏方案的缺点为该方案采用了基音波形重复的方法,必须要求能够正确地提取输入信号的基音周期,因此,该方案并不能正确地处理如乐音之类的输入信号,在丢帧环境下的语音通话质量往往达不到预定的要求。

发明内容
鉴于上述现有技术所存在的问题,本发明的目的是提供一种对丢失的语音业务数据帧进行补偿的方法,从而可以提高在丢帧环境下的语音通话质量。
本发明的目的是通过以下技术方案实现的一种对丢失的语音业务数据帧进行补偿的方法,包括步骤A、当接收端没有正确接收到当前的语音业务数据帧时,判断接收到的该当前的语音业务数据帧的前一个语音业务数据帧和后一个语音业务数据帧是否是活跃语音信号,根据判断结果进行相应的操作分别生成语音数据;B、对所述生成的前一个语音业务数据帧和后一个语音业务数据帧的语音数据进行合成处理,生成所述当前的语音业务数据帧的补偿语音业务数据帧。
所述的步骤A具体包括接收端采取活跃语音检测算法检测所述前一个语音业务数据帧和后一个语音业务数据帧是否是活跃语音信号,如果是,根据该前一个语音业务数据帧和后一个语音业务数据帧采取阶线性预测方法生成预测语音数据;否则,采取舒适噪声生成算法生成舒适噪音数据。
所述的步骤A具体包括A1、接收端对接收到的所述前一个语音业务数据帧进行解码、规格化处理,将处理后的所述前一个语音业务数据帧进行缓存,并判断是否在系统设定的时延内正确接收到当前的语音业务数据帧;A2、当接收端没有在系统设定的时延内正确接收到当前的语音业务数据帧,并且接收到所述后一个语音业务数据帧后,对该后一个语音业务数据帧进行解码、规格化处理;A3、接收端采取活跃语音检测算法检测所述缓存的规格化后的前一个语音业务数据帧是否是活跃语音信号,如果是,根据该前一个语音业务数据帧采取阶线性预测方法生成预测语音数据;否则,根据该前一个语音业务数据帧采取舒适噪声生成算法生成舒适噪音数据;接收端采取活跃语音检测算法检测所述规格化后的后一个语音业务数据帧是否是活跃语音信号,如果是,根据该后一个语音业务数据帧采取阶线性预测方法生成预测语音数据;否则,根据该后一个语音业务数据帧采取舒适噪声生成算法生成舒适噪音数据。
所述的阶线性预测方法采用林文孙-杜宾Levinson-Durbin算法进行求解。
所述的步骤B具体包括接收端对所述根据前一个语音业务数据帧和后一个语音业务数据帧生成的预测语音数据或舒适噪音数据,进行混合加权平滑内插过渡处理,生成所述当前的语音业务数据帧的补偿语音业务数据帧。
所述的方法适用于基于G.711的IP协议上传送语音VOIP系统。
一种对丢失的语音业务数据帧进行补偿的方法,包括步骤C、当接收端没有正确接收到当前的语音业务数据帧和该当前的语音业务数据帧的前一个语音业务数据帧时,判断接收到的该当前的语音业务数据帧的后一个语音业务数据帧是否是活跃语音信号,根据判断结果生成相应的语音数据;D、接收端采用所述生成的语音数据作为所述当前的语音业务数据帧的补偿语音业务数据帧。
所述的步骤C具体包括接收端采取活跃语音检测算法检测规格化后的后一个语音业务数据帧是否是活跃语音信号,如果是,根据该后一个语音业务数据帧采取阶线性预测方法生成预测语音数据;否则,根据该后一个语音业务数据帧采取舒适噪声生成算法生成舒适噪音数据。
一种对丢失的语音业务数据帧进行补偿的方法,包括步骤E、当接收端没有正确接收到当前的语音业务数据帧和该当前的语音业务数据帧的后一个语音业务数据帧时,判断接收到的该当前的语音业务数据帧的前一个语音业务数据帧是否是活跃语音信号,根据判断结果生成相应的语音数据;F、接收端采用所述生成的语音数据作为所述当前的语音业务数据帧的补偿语音业务数据帧。
所述的步骤E具体包括接收端采取活跃语音检测算法检测规格化后的前一个语音业务数据帧是否是活跃语音信号,如果是,根据该前一个语音业务数据帧采取阶线性预测方法生成预测语音数据;否则,根据该前一个语音业务数据帧采取舒适噪声生成算法生成舒适噪音数据。
由上述本发明提供的技术方案可以看出,本发明通过区分丢失语音帧前后两帧语音的活跃/不活跃类型,然后按不同情况结合采用线性预测法或舒适噪音生成算法,以及通过双向混合加权平滑内插来合成丢失的语音帧。和现有的G.711 APPENDIX I的丢帧补偿/丢帧隐藏方案相比较,可以提高在丢帧环境下的语音通话质量,具备了更优秀的补偿质量、更好的生成语音质量,并对如背景音乐信号等具备更强的顽健性。


图1为本发明所述方法的实施例的处理流程。
具体实施例方式
本发明提供了一种对丢失的语音业务数据帧进行补偿的方法,本发明的核心为通过区分丢失语音帧前后两帧语音的活跃/不活跃类型,然后按不同情况结合采用线性预测法或舒适噪音生成算法,以及通过双向混合加权平滑内插来合成丢失的语音帧。
下面结合附图来详细描述本发明所述方法,本发明所述方法的实施例的处理流程如图1所示,包括如下步骤步骤1-1、接收端将接收到的“当前帧”的“前一个语音业务数据帧”的语音数据进行缓存,判断是否已经正确接收到“当前帧”。
在基于G.711的VOIP系统中,语音业务的发送方使用ITUT G.711标准建议进行编码,然后通过RTP协议传送到接收方。
下面以语音业务按每帧10ms进行分帧为例来说明本发明所述方法,按每帧10ms进行分帧基本保证了在整个语音帧是平稳的。在实际应用中,可根据系统总体时延要求,以及根据RTCP(实时传输控制协议)反馈的丢包率、时延等通话质量参数对该参数进行动态调整,如动态调整为每帧按5ms进行分帧,以使整个系统具备更细的业务损伤的粒度。
在基于G.711的VOIP系统中,接收端不断接收系统发送过来的语音业务数据帧,然后,将接收到的数据帧解码。在8000Hz、16位比特的采样条件下,每10ms的帧长将产生每帧160个字节的语音数据,即接收到的数据帧将被规格化成80个[-1,1]之间的浮点数,规格化后的语音数据每帧长度为80。
在基于G.711的VOIP系统中,接收端要求缓存一帧规格化后的历史语音业务数据帧,即将接收到的规格化后的“当前帧”的“前一个语音业务数据帧”的语音数据进行缓存。该“当前帧”的“前一个语音业务数据帧”也称为“前一帧”。
然后,在系统设定的最大能接受的时延之前,接收端检测是否已经正确接收到下一帧,这个下一帧即为“当前帧”,如果接收端正确接收到“当前帧”,将该“当前帧”解码,并将解码后的“当前帧”的语音数据进行缓存。此时,并不需要进行“当前帧”的丢帧补偿操作。
上述系统设定的最大能接受的时延应不少于20ms,这20ms的延时包括了“当前帧”由于10ms的分帧所带来的延时,以及等待后一帧到来所带来的延时。在实际应用中,如果由于抖动的原因,在系统设置的最大能接受的时延之前没有接收到语音业务数据帧,这些语音业务数据帧也等同于丢失。
如果接收端没有正确接收到“当前帧”,则执行步骤1-2。
步骤1-2当没有正确接收到当前帧后,根据“前一帧”和“后一帧”是否是活跃语音信号,生成相应的语音数据,对生成的“前一帧”和“后一帧”的语音数据进行混合加权平滑内插过渡,产生最终的补偿语音帧。
如果由于数据帧丢失或者抖动等原因,接收端没有在设定的最大能接受的时延内正确接收到“当前帧”,接收端继续等待“后一帧”的到来,当接收端能够正确接收到“后一帧”时。则接收端进行如下的操作接收端采用ITUT G.729B标准建议所附带的VAD(活跃语音检测)检测算法,检测数据缓冲区中的规格化后的“前一帧”是否是活跃语音信号,如果不是,则采用ITUT G.729B标准建议所附带的CNG(舒适噪声生成)算法,生成10ms的舒适噪音数据,记作a[i],i=0,...,79;如果是活跃语音,则采用50阶线性预测方法,生成10ms的预测语音数据,也记作a[i],i=0,...,79。
接收端在进行上述对“前一帧”的处理的同时,将接收到的“后一帧”解码及规格化,然后采用ITUT G.729B标准建议所附带的VAD检测算法,检测规格化后的“后一帧”是否是活跃语音信号,如果不是,则采用G.729B标准建议所附带的CNG算法,生成10ms的舒适噪音数据,记作c[i],i=0,...,79。如果是活跃语音,则采用50阶线性预测方法,生成-10ms的预测语音数据,也记作c[i],i=0,...,79。
上述50阶线性预测方法可以采用经典的Levinson-Durbin(林文孙-杜宾)算法进行求解。
之后,接收端对上述根据“前一帧”产生的合成数据a[i],i=0,...,79,以及根据“后一帧”所产生的合成数据c[i],i=0,...,79进行混合加权平滑内插过渡,产生平滑后的最终的补偿语音帧b[i],b[i]=(a[i]*(80-i)+c[i]*i)/80,i=0,...,79。
在上述方案中,如果当前帧丢失,并且“后一帧”也丢失,但“当前帧”的“前一帧”没有丢失,则接收端直接采用上述根据“前一帧”产生的a[i],i=0,...,79,作为最终的补偿语音帧。
在上述方案中,如果当前帧丢失,并且“当前帧”的“前一帧”也已经丢失,但“当前帧”的“后一帧” 没有丢失,则接收端直接采用上述根据“后一帧”所产生的c[i],i=0,...,79,作为最终的补偿语音帧。
在上述方案中,如果连续多帧丢失(当前帧丢失,并且“当前帧”的“前一帧”、“后一帧”也丢失),此时,由于连续多帧丢失,接收端已经没有足够多的数据进行有意义的补偿操作,则接收端根据数据缓冲区中保存的语音数据,采用G.729B标准建议所附带的CNG算法生成10ms的舒适噪音数据作为“当前帧”,并在数据缓冲区中保存的“前一帧”的语音信号能量基础上对该“当前帧”进行衰减。
上述本发明所述方案采用了50阶的高阶线性预测器,这种高阶线性预测器能够同时适用于语音中的清音部份和浊音部份,而不必进行清、浊音判决,以及分别进行相应的清、浊音处理。并且,由于使用了50阶的高阶线性预测器,避免使用了长期预测器,也较好地支持纯净语音之外的其它声音信号,使得补偿后的数据具有更好的顽健性。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种对丢失的语音业务数据帧进行补偿的方法,其特征在于,包括步骤A、当接收端没有正确接收到当前的语音业务数据帧时,判断接收到的该当前的语音业务数据帧的前一个语音业务数据帧和后一个语音业务数据帧是否是活跃语音信号,根据判断结果进行相应的操作分别生成语音数据;B、对所述生成的前一个语音业务数据帧和后一个语音业务数据帧的语音数据进行合成处理,生成所述当前的语音业务数据帧的补偿语音业务数据帧。
2.根据权利要求1所述的方法,其特征在于,所述的步骤A具体包括接收端采取活跃语音检测算法检测所述前一个语音业务数据帧和后一个语音业务数据帧是否是活跃语音信号,如果是,根据该前一个语音业务数据帧和后一个语音业务数据帧采取阶线性预测方法生成预测语音数据;否则,采取舒适噪声生成算法生成舒适噪音数据。
3.根据权利要求2所述的方法,其特征在于,所述的步骤A具体包括A1、接收端对接收到的所述前一个语音业务数据帧进行解码、规格化处理,将处理后的所述前一个语音业务数据帧进行缓存,并判断是否在系统设定的时延内正确接收到当前的语音业务数据帧;A2、当接收端没有在系统设定的时延内正确接收到当前的语音业务数据帧,并且接收到所述后一个语音业务数据帧后,对该后一个语音业务数据帧进行解码、规格化处理;A3、接收端采取活跃语音检测算法检测所述缓存的规格化后的前一个语音业务数据帧是否是活跃语音信号,如果是,根据该前一个语音业务数据帧采取阶线性预测方法生成预测语音数据;否则,根据该前一个语音业务数据帧采取舒适噪声生成算法生成舒适噪音数据;接收端采取活跃语音检测算法检测所述规格化后的后一个语音业务数据帧是否是活跃语音信号,如果是,根据该后一个语音业务数据帧采取阶线性预测方法生成预测语音数据;否则,根据该后一个语音业务数据帧采取舒适噪声生成算法生成舒适噪音数据。
4.根据权利要求3所述的方法,其特征在于,所述的阶线性预测方法采用林文孙-杜宾Levinson-Durbin算法进行求解。
5.根据权利要求1、2、3或4所述的方法,其特征在于,所述的步骤B具体包括接收端对所述根据前一个语音业务数据帧和后一个语音业务数据帧生成的预测语音数据或舒适噪音数据,进行混合加权平滑内插过渡处理,生成所述当前的语音业务数据帧的补偿语音业务数据帧。
6.根据权利要求1所述的方法,其特征在于,所述的方法适用于基于G.711的IP协议上传送语音VOIP系统。
7.一种对丢失的语音业务数据帧进行补偿的方法,其特征在于,包括步骤C、当接收端没有正确接收到当前的语音业务数据帧和该当前的语音业务数据帧的前一个语音业务数据帧时,判断接收到的该当前的语音业务数据帧的后一个语音业务数据帧是否是活跃语音信号,根据判断结果生成相应的语音数据;D、接收端采用所述生成的语音数据作为所述当前的语音业务数据帧的补偿语音业务数据帧。
8.根据权利要求7所述的方法,其特征在于,所述的步骤C具体包括接收端采取活跃语音检测算法检测规格化后的后一个语音业务数据帧是否是活跃语音信号,如果是,根据该后一个语音业务数据帧采取阶线性预测方法生成预测语音数据;否则,根据该后一个语音业务数据帧采取舒适噪声生成算法生成舒适噪音数据。
9.一种对丢失的语音业务数据帧进行补偿的方法,其特征在于,包括步骤E、当接收端没有正确接收到当前的语音业务数据帧和该当前的语音业务数据帧的后一个语音业务数据帧时,判断接收到的该当前的语音业务数据帧的前一个语音业务数据帧是否是活跃语音信号,根据判断结果生成相应的语音数据;F、接收端采用所述生成的语音数据作为所述当前的语音业务数据帧的补偿语音业务数据帧。
10.根据权利要求9所述的方法,其特征在于,所述的步骤E具体包括接收端采取活跃语音检测算法检测规格化后的前一个语音业务数据帧是否是活跃语音信号,如果是,根据该前一个语音业务数据帧采取阶线性预测方法生成预测语音数据;否则,根据该前一个语音业务数据帧采取舒适噪声生成算法生成舒适噪音数据。
全文摘要
本发明提供了一种对丢失的语音业务数据帧进行补偿的方法,该方法主要包括当接收端没有正确接收到当前的语音业务数据帧时,判断接收到的该当前的语音业务数据帧的前一个语音业务数据帧和后一个语音业务数据帧是否是活跃语音信号,根据判断结果进行相应的操作分别生成语音数据;对所述生成的前一个语音业务数据帧和后一个语音业务数据帧的语音数据进行合成处理,生成所述当前的语音业务数据帧的补偿语音业务数据帧。利用本发明,可以提高在丢帧环境下的语音通话质量,对如背景音乐信号等具备更强的顽健性。
文档编号H04L29/06GK1984203SQ200610075700
公开日2007年6月20日 申请日期2006年4月18日 优先权日2006年4月18日
发明者李立雄 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1