一种基于延时抖动的丢包补偿方法及系统与流程

文档序号:13743180阅读:681来源:国知局
技术领域本发明涉及数据通讯领域,特别涉及一种基于延时抖动的丢包补偿方法及系统。

背景技术:
丢包补偿(PacketLossConcealment,“PLC”)算法,也称为帧差错隐藏(FrameErasureConcealment,“FEC”)算法。在语音通信中由于网络质量的问题可能会导致语音数据丢失,出现大块的语音流数据消失。这个时候会导致语音戛然而止的听觉效应,造成语音的不连续。如果这个时候能估计出丢失的语音数据来补偿这些丢失的数据的话,那么就能消除由于语音丢失带来的语音质量损失。这也是PLC的基本功能,即估计丢失的语音信号,并填充语音流的缺失部分。丢包补偿主要用于在编码打包,然后通过网络传输,在接收端解码的音频系统,如果在该过程中存在丢包现象,则进行丢包补偿。很多基于标准的码本激励线性预测(CodeExitedLinearPrediction,“CELP”)的语音编解码器,都有丢包补偿功能。如:G.729,自适应速率编解码器(AdaptiveMulti-Rate,“AMR”),efr等。但对于一些非CELP编码的编解码器是不存在丢包补偿算法的,如:G.711、G.722等。所以这些编解码器需要使用丢包补偿算法。那么如何估计丢失的语音部分?这得益于语音具有一个短时平稳性,可以根据其邻近的信号进行估计出来。根据CELP的观点,语音的产生有两部分:声道和激励源。可以抽象为语音算法模型:语音的激励信号有两种:一种是周期激励信号源,另外一种是随机激励(白噪声)。这两者信号组成了信源激励e(n)。声道主要通过极点模型来建模,通过线性预测来提取声道参数。由激励信号通过合成滤波器最终产生语音信号。通过这个基本的发声模型和语音的短时平稳特性就可以预测丢失的语音信号部分。这里需要估计出两个部分:一、线性预测系数(Linearpredictioncoefficient);二、激励信号。这些都可以通过邻近的信号进行估计。现有的PLC算法中大部分都是采用外推法(Extrapolation),采用这种方法的好处是不会引入延时,但由于只能从丢帧之前的语音数据获得信息十分有限,很难获得未来的趋势变化,如:基音,幅度等。所以外推法能预测的帧数是非常少的,一旦预测帧数变多,会导致估计不准确影响语音质量。但也有采用内插法(Interpolation)差错隐藏算法,该算法不仅可以有效利用丢帧前的语音信息还可以利用丢帧结束后的语音信息对丢失的语音帧进行联合估计,能够更加精确的还原丢失的语音。但由于采用内插法需要缓存一定的数据,会导致语音通信声音的延时,而且延时与最大能够内插的帧数相关,随着内插帧数变多,延时会进一步增大。

技术实现要素:
本发明的目的在于提供一种基于延时抖动的丢包补偿方法及系统,通过语音缩放技术,解决采用内插技术的差错隐藏算法中的延时过长问题。为解决上述技术问题,本发明的实施方式提供了一种基于延时抖动的丢包补偿方法,包含以下步骤:接收端判断接收的语音数据是否存在丢帧,并在丢帧时发出丢帧指示;所述接收端根据所述丢帧指示在丢帧前缓存的语音数据中填充N帧冗余帧,并获取丢帧后缓存的语音数据;所述接收端根据所述丢帧前缓存的语音数据及丢帧后缓存的语音数据进行丢帧补偿;所述接收端丢弃缓存中的N帧非语音帧,其中,N为自然数。本发明的实施方式还提供了一种基于延时抖动的丢包补偿系统,包含:判断模块、缓存管理模块、冗余帧填充模块、丢帧补偿模块及延时恢复模块。所述判断模块用于判断接收的语音数据是否存在丢帧,并在丢帧时向所述缓存管理模块发出丢帧指示;所述缓存管理模块用于接收所述丢帧指示,根据所述丢帧指示控制所述冗余帧填充模块在丢帧前缓存的语音数据中填充N帧冗余帧,并获取丢帧后缓存的语音数据;所述丢帧补偿模块用于根据丢帧前缓存的语音数据及丢帧后缓存的语音数据进行丢帧补偿;所述延时恢复模块用于在丢帧补偿后,丢弃缓存中的N帧非语音帧,其中,N为自然数。本发明实施方式相对于现有技术而言,通过在丢帧前缓存的语音数据中填充N帧冗余帧,使缓存延时增加,从而获取丢帧后缓存的语音数据,再通过结合丢帧前、后缓存的语音数据对丢失的语音数据进行补偿还原,使得补偿还原的语音更加精确。同时,在对丢帧部分的语音数据进行补偿还原后,丢弃缓存中的N帧非语音帧,从而减去缓存中增加的延时,达到延时恢复的目的。进一步地,所述缓存包括初始状态、结束状态及N种转移状态;所述冗余帧的填充只在转移状态中进行。由于缓存可能会出现各种缓存状态,因此将缓存可能出现的各种状态进行分类,即有利于简化缓存状态的管理,也保证了缓存状态不发散成无限的可能性。进一步地,所述每种转移状态分别对应一种生成状态;所述丢帧补偿只在生成状态或结束状态中进行。有利于简化缓存状态的管理。进一步地,在所述接收端根据所述丢帧指示在丢帧前缓存的语音数据中填充N帧冗余帧的步骤中,包括以下子步骤:对填充冗余帧的位置的前一帧语音数据进行语音类型Classp的判断,并输出判断结果;对所述填充冗余帧的位置的前一帧语音数据进行长时预测LTP,计算基音周期TP;对所述填充冗余帧的位置的前一帧语音数据进行线性预测LP,计算线性预测滤波器的系数,并通过分析所述线性预测滤波器计算出残差信号e(n);根据对所述填充冗余帧的位置的前一帧语音数据的语音类型判断结果和基音周期TP对残差信号e(n)进行修改,生成新的残差信号e′(n);将所述新的残差信号e′(n)通过综合滤波器,生成补偿信号p′(n);将所述补偿信号p′(n)通过信号同步器,获得与下一帧同步的补偿信号p(n),所述补偿信号p(n)为填充的冗余帧。由于不同的语音类型,其稳态的时间不一样,因此对语音进行精确的分类,有助于提高丢帧补偿的效果。信号同步器的使用可以防止填充的冗余帧由于是非整数基音周期而导致与填充之后的语音数据不同步的现象。进一步地,在所述接收端根据所述丢帧前缓存的语音数据及丢帧后缓存的语音数据进行丢帧补偿的步骤中,包含以下子步骤:根据所述丢帧前缓存的语音数据x(n),生成后向估计信号y1(n);根据所述丢帧后缓存的语音数据z(n),生成前向估计信号y2(n);对所述后向估计信号y1(n)及前向估计信号y2(n)进行交叉衰减,获取缓存中丢帧部分的语音数据y(n),对缓存中的丢帧部分进行填充。在补偿还原衔接的地方由于基音周期的变动会导致衔接处的语音数据出现不同步现象,容易出现“click”音。本发明的实施方式中采用交叉衰减技术,可以对抗衔接融合的时候出现“click”音。附图说明图1是根据本发明第一实施方式的一种基于延时抖动的丢包补偿方法的流程图;图2是根据本发明第一实施方式的一种基于延时抖动的丢包补偿方法的结构示意图;图3是根据本发明第一实施方式的冗余帧填充处理器进行冗余帧填充的流程图;图4是根据本发明第一实施方式的冗余帧填充处理器进行冗余帧填充的结构示意图;图5是根据本发明第一实施方式的信号分类器进行语音类型判断的流程图;图6是根据本发明第一实施方式的丢帧恢复处理子系统进行丢帧补偿的结构示意图;图7是根据本发明第一实施方式的缓存状态转移的示意图;图8是根据本发明第二实施方式的一种基于延时抖动的丢包补偿系统的结构示意图;图9是根据本发明第二实施方式的冗余帧填充模块的结构示意图;图10是根据本发明第二实施方式的丢帧补偿模块的结构示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。如图1所示,本发明的第一实施方式涉及一种基于延时抖动的丢包补偿方法,其具体流程如图1所示。在步骤101中,接收端判断接收的语音数据是否存在丢帧。如果没有丢帧,则返回本步骤。如果有丢帧,则进入步骤102。在步骤102中,接收端发出丢帧指示,并进入步骤103,在步骤103中,接收端根据丢帧指示在丢帧前缓存的语音数据中填充N帧冗余帧,并获取丢帧后缓存的语音数据,其中N为自然数。音频系统的接收端包括缓存管理器、冗余帧填充处理器及丢帧恢复处理子系统。其中,缓存管理器用于接收丢帧指示,并控制冗余帧填充处理器在丢帧前缓存的语音数据中插入冗余帧(如图2所示,即在缓存头插入冗余帧)。下面对冗余帧填充处理器获取冗余帧的过程作具体地说明。如图3所示,在步骤201中,冗余帧填充处理器对填充冗余帧的位置的前一帧语音数据进行语音类型Classp的判断,并输出判断结果。具体地说,比如丢帧前缓存的语音中有5帧,前2帧是已经播放的语音帧,后面3帧是没有播放的语音帧,在本实施方式中,按照从前到后的顺序,依次把这3帧没有播放的语音帧,称为第一帧、第二帧及第三帧。冗余帧可选择填充在第一帧的前面、第一帧与第二帧之间或第二帧与第三帧之间。若冗余帧填充在第一帧的前面,即第一帧与相邻的已播放的语音帧之间,则冗余帧填充处理器通过信号分类器对该相邻的已播放的语音帧进行语音类型的判断,同样地,若冗余帧填充在第一帧与第二帧之间,则冗余帧填充处理器通过信号分类器对第一帧进行语音类型的判断。如图4所示,本实施方式以冗余帧填充在第一帧与第二帧之间为例进行说明,其它情况与此类似,本实施方式不再赘述。在本实施方式中,语音共有4种类型,分别为TRANSIENT(出现能量急剧变化的语音)、UNVOICED(清音态的语音)、WEAKLY_VOICED(弱元音态的语音)、VOICED(元音态的语音)。下面将对语音类型的判断过程作具体的说明。如图5所示,在步骤301中,信号分类器先默认该语音为弱元音态的语音,在步骤302中,信号分类器判断该语音的归一化最大相关Rmax是否大于或等于0.7。具体地说,信号分类器先将该语音的初始信号f(n)(其中,n=-288,…,-1,288个样点为最大2倍基音周期)通过低通滤波器并进行4倍的降采样,获得带宽为2khz的降采样后的信号t(n)(其中,n=-72,…,-1),再根据信号t(n)进行归一化互相关计算:即根据r(i)=Σj=-35-1t(j)t(j-i)max{Σj=-35-1t2(j),Σj=-35-1t2(j-i)
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1