CN103854649B - 一种变换域的丢帧补偿方法及装置 - Google Patents
一种变换域的丢帧补偿方法及装置 Download PDFInfo
- Publication number
- CN103854649B CN103854649B CN201210498677.3A CN201210498677A CN103854649B CN 103854649 B CN103854649 B CN 103854649B CN 201210498677 A CN201210498677 A CN 201210498677A CN 103854649 B CN103854649 B CN 103854649B
- Authority
- CN
- China
- Prior art keywords
- frame
- lost frames
- current lost
- signal
- pitch period
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Noise Elimination (AREA)
Abstract
本发明公开了一种变换域的丢帧补偿方法及装置,包括:使用当前丢失帧的前一帧或前若干帧的频域系数,计算当前丢失帧的频域系数,进行频域‑时域变换得到初始补偿信号;进行波形调整,得到补偿信号,以较低运算复杂度,达到了更好的补偿效果。或对当前丢失帧的全部或部分频点,利用前若干帧的相应频点的相位和幅值,外推得到当前丢失帧相应频点的相位和幅值,进而得到相应频点的频域系数,通过频域‑时域变换得到补偿信号,大大提高了音调帧的补偿效果。可通过判断算法选择上述方法补偿当前丢失帧,达到更好的补偿效果。对语音信号帧和音乐信号帧差异化处理,在各种场景下都能获得良好的补偿效果。通过增益调整,平稳补偿能量,减小补偿噪声。
Description
技术领域
本发明涉及语音频编解码领域,尤其涉及一种变换域的丢帧补偿方法及装置。
背景技术
在网络通信中,分组技术应用十分广泛,各种形式的信息如语音或者音频等数据通过编码后采用分组技术在网络上传输,如VoIP(网络电话)等。由于信息发送端发送容量的限制,或在指定延迟时间内分组信息帧没有到达接收端缓冲区,或是网络拥挤堵塞等造成帧信息的丢失,引起解码端合成音质的急剧下降,因此需要采用补偿技术对丢失帧的数据进行补偿。丢帧补偿技术就是一种减轻这种由于丢帧导致的音质下降的技术。
相关的变换域语音频丢帧补偿方法最为简单的是采用重复前一帧的变换域信号或者使用静音替代的方法。该方法虽然实现简单且没有延迟,但是补偿效果一般;其他的补偿方式如GAPES(缺口数据幅值相位估计技术)需要先将MDCT系数转化成DSTFT(离散短时傅里叶变换)系数再进行补偿,该方法运算复杂度高,消耗内存多;另一种方法采用整形噪声***技术进行语音频丢帧补偿,该方法对类噪声信号的补偿效果较好,对谐波音频信号的补偿效果甚差。
综上所述,相关的变换域丢帧补偿技术多数效果不明显,运算复杂度高和延迟时间过长,或是对某些信号补偿效果较差。
发明内容
本发明要解决的技术问题是提供一种变换域的丢帧补偿方法及装置,能够以较低的运算复杂度,实现无延时的,更好的补偿效果。
为解决上述技术问题,本发明的一种变换域的丢帧补偿方法,所述方法包括:
使用当前丢失帧的前一帧或前若干帧的频域系数,计算当前丢失帧的频域系数,对计算得到的当前丢失帧的频域系数进行频域-时域变换,得到当前丢失帧的初始补偿信号;
对所述初始补偿信号进行波形调整,得到当前丢失帧的补偿信号。
进一步地,对所述初始补偿信号进行波形调整,得到当前丢失帧的补偿信号,包括:
对当前丢失帧进行基音周期估计,判断基音周期估计得到的基音周期值是否可用,如果基音周期值不可用,则将当前丢失帧的初始补偿信号作为当前丢失帧的补偿信号;如果基音周期值可用,则使用当前丢失帧的前一帧的时域信号对初始补偿信号进行波形调整。
进一步地,对当前丢失帧进行基音周期估计,包括:
对当前丢失帧之前的最后一个正确接收帧的时域信号进行基音搜索,得到当前丢失帧之前的最后一个正确接收帧的基音周期值和最大归一化自相关值,将得到的基音周期值作为当前丢失帧的基音周期值。
进一步地,还包括:
在对当前丢失帧之前的最后一个正确接收帧的时域信号进行基音搜索之前,对当前丢失帧之前的最后一个正确接收帧的时域信号进行低通滤波或降采样处理,对低通滤波或降采样处理后的当前丢失帧之前的最后一个正确接收帧的时域信号进行基音搜索。
进一步地,对当前丢失帧进行基音周期估计,包括:
计算出当前丢失帧之前的最后一个正确接收帧的基音周期值,将计算得到的基音周期值作为当前丢失帧的基音周期值,利用计算得到的基音周期值计算出当前丢失帧的最大归一化自相关值。
进一步地,判断基音周期估计得到的基音周期值是否可用,包括:
判断是否满足下面条件中的任意一个,如果满足任意一个,则认为基音周期值不可用,包括:
(1)第一丢失帧的初始补偿信号的过零率大于第一阈值Z1,其中,Z1>0;
(2)当前丢失帧之前的最后一个正确接收帧的低频能量与整帧能量的比值小于第二阈值ER1,其中,ER1>0;
(3)当前丢失帧之前的最后一个正确接收帧的谱倾斜小于第三阈值TILT,其中,0<TILT<1;
(4)当前丢失帧之前的最后一个正确接收帧的后半帧的过零率超过前半帧的过零率若干倍。
进一步地,还包括:
在判断不满足所述条件(1)~条件(4)中的任意一个时,按照以下原则进行基音周期值是否可用的判断:
(a)在当前丢失帧位于静音段时,认为基音周期值不可用;
(b)在当前丢失帧不位于静音段,且所述最大归一化自相关值大于第四阈值R2时,认为基音周期值可用,其中,0<R2<1;
(c)在不符合原则(a)和原则(b),且当前丢失帧之前的最后一个正确接收帧的过零率大于第五阈值Z3,认为基音周期值不可用,其中,Z3>0;
(d)在不符合原则(a)、(b)和(c),且此时的长时对数能量与当前丢失帧之前的最后一个正确接收帧的对数能量的差大于第六阈值E4时,认为基音周期值不可用,其中,E4>0;
(e)在不符合原则(a)、(b)、(c)和(d)且当前丢失帧之前的最后一个正确接收帧的对数能量与此时的长时对数能量的差超过第七阈值E5,并且所述最大归一化自相关值大于第八阈值R3时,认为基音周期值可用,其中,E5>0,0<R3<1;
(f)在不符合原则(a)、(b)、(c)、(d)和(e)时,检查当前丢失帧之前的最后一个正确接收帧的谐波特性,当表示谐波特性的值小于第九阈值H时,认为基音周期值不可用;当表示谐波特性的值大于等于第九阈值H时,认为基音周期值可用,其中,H<1。
进一步地,使用当前丢失帧的前一帧的时域信号对初始补偿信号进行波形调整,包括:
(i)建立长度为L+L1的缓存区,L为帧长,L1>0;
(ii)对缓存区的前L1个单元进行初始化,所述初始化包括:在当前丢失帧为第一丢失帧时,配置缓存区的前L1个单元为当前丢失帧的初始补偿信号的前L1长度的信号;在当前丢失帧不为第一丢失帧时,配置缓存区的前L1个单元为对当前丢失帧的前一个丢失帧的初始补偿信号进行波形调整时所用缓存区中的最后L1长度的信号;
(iii)将当前丢失帧的前一帧的最后一个基音周期的时域信号连同缓存区中的L1长度的信号一起,不断重复复制到缓存区中,直至填满缓存区,在进行每次复制时,如果缓存区中已有的信号的长度为l,那么此次复制将信号复制到缓存区的l-L1到l+T-1的位置上,其中l>0,T为基音周期,对于形成的长度为L1的交叠区,交叠区中的信号由两部分信号加窗后对应点相加而得到;
(iv)将缓存区中的前L长度的信号作为当前丢失帧的补偿信号。
进一步地,还包括:
为当前丢失帧之后的第一个正确接收帧,构建长度为L的缓存区,按照步骤(ii)和步骤(iii)相应的方法填满缓存区,将缓存区中的信号与对所述当前丢失帧之后的第一个正确接收帧解码得到的时域信号做加窗交叠相加,将得到的信号作为所述当前丢失帧之后的第一个正确接收帧的时域信号。
进一步地,使用当前丢失帧的前一帧的时域信号对初始补偿信号进行波形调整,包括:
构建长度为kL的缓存区,L为帧长,k>0;
对缓存区的前L1个单元进行初始化,其中,L1>0,所述初始化包括:在当前丢失帧为第一丢失帧时,配置缓存区的前L1个单元为当前丢失帧的初始补偿信号的前L1长度的信号;在当前丢失帧不为第一丢失帧时,配置缓存区的前L1个单元为对当前丢失帧的前一个丢失帧的初始补偿信号进行波形调整时所用缓存区中的最后L1长度的信号;
将当前丢失帧的前一帧的最后一个基音周期的时域信号连同缓存区中的L1长度的信号一起,不断重复复制到缓存区中,直至填满缓存区得到长度为kL的时域信号,在进行每次复制时,如果缓存区中已有的信号的长度为l,那么此次复制将信号复制到缓存区的l-L1到l+T-1的位置上,其中l>0,T为基音周期,对于形成的长度为L1的交叠区,交叠区中的信号由两部分信号加窗后对应点相加而得到;
按照时序顺序将缓存区中的信号依次作为当前丢失帧到第q丢失帧的补偿信号,在q小于k时,将缓存区中的第q+1帧信号与对当前丢失帧之后的第一个正确接收帧解码得到的时域信号做交叠相加,将得到的信号作为当前丢失帧之后的第一个正确接收帧的时域信号;或者,
按照时序顺序将缓存区中的前k-1帧信号依次作为当前丢失帧到第k-1丢失帧的补偿信号,缓存区中的第k帧信号用于与第k丢失帧的初始补偿信号做交叠相加,将得到的信号作为第k丢失帧的补偿信号。
进一步地,还包括:
在对初始补偿信号进行波形调整后,还将波形调整后的信号乘以一个增益,将乘以增益后的信号作为当前丢失帧的补偿信号。
进一步地,在进行基音搜索时,对于语音信号帧和音乐信号帧使用不同的基音搜索上下限。
进一步地,在当前丢失帧之前的最后一个正确接收帧为语音信号帧时,使用上述方法判断当前丢失帧的基音周期值是否可用。
进一步地,在当前丢失帧之前的最后一个正确接收帧为音乐信号帧时,使用以下方法判断当前丢失帧的基音周期值是否可用,包括:
如果当前丢失帧位于静音段,认为基音周期值不可用;或者,
如果当前丢失帧不位于静音段,最大归一化自相关值大于第十九阈值R4,0<R4<1,认为基音周期值可用;最大归一化自相关值不大于R4,认为基音周期值不可用。
进一步地,还包括:在得到当前丢失帧的补偿信号后,在补偿信号中添加噪声。
进一步地,在补偿信号中添加噪声,包括:
将历史信号或初始补偿信号本身,通过一个高通滤波器或者频谱倾斜滤波器得到噪声信号;
估计当前丢失帧的噪声增益值;
将得到的噪声信号乘以估计得到的当前丢失帧的噪声增益值,将乘噪声增益值后的噪声信号加入所述补偿信号中。
进一步地,还包括:
在得到当前丢失帧的补偿信号之后,还将补偿信号乘以尺度因子。
进一步地,还包括:
在得到当前丢失帧的补偿信号之后,根据当前丢失帧的帧类型,确定是否将当前丢失帧的补偿信号乘以尺度因子,如果确定乘以尺度因子,则进行所述将补偿信号乘以尺度因子的操作。
进一步地,一种变换域的丢帧补偿方法,所述方法包括:
获得当前丢失帧之前若干帧的各频点的相位和幅值;
对获得的当前丢失帧之前若干帧的各频点的相位和幅值进行线性或非线性外推,得到当前丢失帧的各频点的相位和幅值;
通过当前丢失帧的各频点的相位和幅值得到当前丢失帧的各频点的频域系数,通过频域-时域变换得到当前丢帧的补偿信号。
进一步地,获得当前丢失帧之前若干帧的各频点的相位和幅值;对获得的当前丢失帧之前若干帧的各频点的相位和幅值进行线性或非线性外推,得到当前丢失帧的各频点的相位和幅值;通过当前丢失帧的各频点的相位和幅值得到当前丢失帧的各频点的频域系数,包括:
在当前丢失帧为第p帧时,对当前丢失帧之前的若干帧时域信号,采用改进的离散正弦变换MDST算法得到第p-2帧和第p-3帧的MDST系数,将得到的第p-2帧和第p-3帧的MDST系数与第p-2帧和第p-3帧的MDCT系数组成MDCT-MDST域的复数信号;
将第p-2帧和第p-3帧的相位线性外推得到第p帧各频点的MDCT-MDST域的复数信号的相位;
使用第p-2帧相应频点的幅值代替第p帧各频点的幅值;
根据第p帧各频点的MDCT-MDST域的复数信号的相位和第p帧各频点的幅值推断第p帧在各频点的MDCT系数。
进一步地,还包括:
根据当前丢失帧之前的最近c个正确接收帧的帧类型,选择是否对当前丢失帧的各频点均利用当前丢失帧之前若干帧的各频点处的相位和幅值,进行线性或非线性外推得到当前丢失帧的各频点的相位和幅值。
进一步地,还包括:
在得到当前丢失帧的补偿信号之后,还将补偿信号乘以尺度因子。
进一步地,还包括:
在得到当前丢失帧的补偿信号之后,根据当前丢失帧的帧类型,确定是否将当前丢失帧的补偿信号乘以尺度因子,如果确定乘以尺度因子,则进行所述将补偿信号乘以尺度因子的操作。
进一步地,一种变换域的丢帧补偿方法,所述方法包括:
通过判断算法,选择使用上述的第一种方法或者上述的第二种方法补偿当前丢失帧。
进一步地,通过判断算法,选择使用上述的第一种方法或者上述的第二种方法补偿当前丢失帧,包括:
判断帧类型,如果当前丢失帧为音调帧,则使用上述的第二种方法补偿当前丢失帧;如果当前丢失帧为非音调帧,则使用上述的第一种方法补偿当前丢失帧。
进一步地,判断帧类型,包括:
获取当前丢失帧的前n个正确接收帧的帧类型标识,如果前n个正确接收帧中音调帧的数目大于第十一阈值n0,则认为当前丢失帧为音调帧;否则认为当前丢失帧为非音调帧,其中,0≤n0≤n,n≥1。
进一步地,包括:
计算帧的谱平坦度,判断谱平坦度的值是否小于第十阈值K,如果小于K则认为该帧为音调帧;否则,认为该帧为非音调帧,其中,0≤K≤1。
进一步地,在计算谱平坦度时,用于计算的频域系数是时域-频域变化后原始的频域系数,或是将原始频域系数经过频谱整形后的频域系数。
进一步地,判断帧类型,包括:
使用时域-频域变化后原始的频域系数以及将原始频域系数经过频谱整形后的频域系数分别计算帧的谱平坦度,得到帧对应的两个谱平坦度;
根据得到的其中一个谱平坦度的值是否小于第十阈值K,设定该帧是否为音调帧;根据得到的其中另一个谱平坦度的值是否小于另一阈值K’,重新设定该帧是否为音调帧;
其中,在谱平坦度的值小于K时,则设定帧为音调帧;否则,设定帧为非音调帧,在另一个谱平坦度的值小于K’时,重新设定该帧为音调帧;其中,0≤K≤1,0≤K’≤1。
进一步地,一种变换域的丢帧补偿装置,所述装置包括:频域系数计算单元、变换单元和波形调整单元,其中:
所述频域系数计算单元,用于使用当前丢失帧的前一帧或前若干帧的频域系数,计算当前丢失帧的频域系数;
所述变换单元,用于对所述频域系数计算单元计算得到的当前丢失帧的频域系数进行频域-时域变换,得到当前丢失帧的初始补偿信号;
所述波形调整单元,用于对所述初始补偿信号进行波形调整,得到当前丢失帧的补偿信号。
进一步地,所述波形调整单元,具体用于对当前丢失帧进行基音周期估计,判断基音周期估计得到的基音周期值是否可用,如果基音周期值不可用,则将当前丢失帧的初始补偿信号作为当前丢失帧的补偿信号;如果基音周期值可用,则使用当前丢失帧的前一帧的时域信号对初始补偿信号进行波形调整。
进一步地,所述波形调整单元包括基音周期子单元,其中:
所述基音周期子单元,用于对当前丢失帧之前的最后一个正确接收帧的时域信号进行基音搜索,得到当前丢失帧之前的最后一个正确接收帧的基音周期值和最大归一化自相关值,将得到的基音周期值作为当前丢失帧的基音周期值;或者,
计算出当前丢失帧之前的最后一个正确接收帧的基音周期值,将计算得到的基音周期值作为当前丢失帧的基音周期值,利用计算得到的基音周期值计算出当前丢失帧的最大归一化自相关值。
进一步地,所述基音周期子单元,还用于在对当前丢失帧之前的最后一个正确接收帧的时域信号进行基音搜索之前,对当前丢失帧之前的最后一个正确接收帧的时域信号进行低通滤波或降采样处理,对低通滤波或降采样处理后的当前丢失帧之前的最后一个正确接收帧的时域信号进行基音搜索。
进一步地,所述波形调整单元包括基音周期值判断子单元,其中:
所述基音周期值判断子单元,用于判断是否满足下面条件中的任意一个,如果满足任意一个,则认为基音周期值不可用,包括:
(1)第一丢失帧的初始补偿信号的过零率大于第一阈值Z1,其中,Z1>0;
(2)当前丢失帧之前的最后一个正确接收帧的低频能量与整帧能量的比值小于第二阈值ER1,其中,ER1>0;
(3)当前丢失帧之前的最后一个正确接收帧的谱倾斜小于第三阈值TILT,其中,0<TILT<1;
(4)当前丢失帧之前的最后一个正确接收帧的后半帧的过零率超过前半帧的过零率若干倍。
进一步地,所述基音周期值判断子单元,还用于在判断不满足所述条件(1)~条件(4)中的任意一个时,按照以下原则进行基音周期值是否可用的判断:
(a)在当前丢失帧位于静音段时,认为基音周期值不可用;
(b)在当前丢失帧不位于静音段,且所述最大归一化自相关值大于第四阈值R2时,认为基音周期值可用,其中,0<R2<1;
(c)在不符合原则(a)和原则(b),且当前丢失帧之前的最后一个正确接收帧的过零率大于第五阈值Z3,认为基音周期值不可用,其中,Z3>0;
(d)在不符合原则(a)、(b)和(c),且此时的长时对数能量与当前丢失帧之前的最后一个正确接收帧的对数能量的差大于第六阈值E4时,认为基音周期值不可用,其中,E4>0;
(e)在不符合原则(a)、(b)、(c)和(d)且当前丢失帧之前的最后一个正确接收帧的对数能量与此时的长时对数能量的差超过第七阈值E5,并且所述最大归一化自相关值大于第八阈值R3时,认为基音周期值可用,其中,E5>0,0<R3<1;
(f)在不符合原则(a)、(b)、(c)、(d)和(e)时,检查当前丢失帧之前的最后一个正确接收帧的谐波特性,当表示谐波特性的值小于第九阈值H时,认为基音周期值不可用;当表示谐波特性的值大于等于第九阈值H时,认为基音周期值可用,其中,H<1。
进一步地,所述波形调整单元包括调整子单元,其中:
所述调整子单元,用于(i)建立长度为L+L1的缓存区,L为帧长,L1>0;
(ii)对缓存区的前L1个单元进行初始化,所述初始化包括:在当前丢失帧为第一丢失帧时,配置缓存区的前L1个单元为当前丢失帧的初始补偿信号的前L1长度的信号;在当前丢失帧不为第一丢失帧时,配置缓存区的前L1个单元为对当前丢失帧的前一个丢失帧的初始补偿信号进行波形调整时所用缓存区中的最后L1长度的信号;
(iii)将当前丢失帧的前一帧的最后一个基音周期的时域信号连同缓存区中的L1长度的信号一起,不断重复复制到缓存区中,直至填满缓存区,在进行每次复制时,如果缓存区中已有的信号的长度为l,那么此次复制将信号复制到缓存区的l-L1到l+T-1的位置上,其中l>0,T为基音周期,对于形成的长度为L1的交叠区,交叠区中的信号由两部分信号加窗后对应点相加而得到;
(iv)将缓存区中的前L长度的信号作为当前丢失帧的补偿信号。
进一步地,所述调整子单元,还用于为当前丢失帧之后的第一个正确接收帧,构建长度为L的缓存区,按照步骤(ii)和步骤(iii)相应的方法填满缓存区,将缓存区中的信号与对所述当前丢失帧之后的第一个正确接收帧解码得到的时域信号做加窗交叠相加,将得到的信号作为所述当前丢失帧之后的第一个正确接收帧的时域信号。
进一步地,所述波形调整单元包括调整子单元,其中:
所述调整子单元,用于构建长度为kL的缓存区,L为帧长,k>0;
对缓存区的前L1个单元进行初始化,其中,L1>0,所述初始化包括:在当前丢失帧为第一丢失帧时,配置缓存区的前L1个单元为当前丢失帧的初始补偿信号的前L1长度的信号;在当前丢失帧不为第一丢失帧时,配置缓存区的前L1个单元为对当前丢失帧的前一个丢失帧的初始补偿信号进行波形调整时所用缓存区中的最后L1长度的信号;
将当前丢失帧的前一帧的最后一个基音周期的时域信号连同缓存区中的L1长度的信号一起,不断重复复制到缓存区中,直至填满缓存区得到长度为kL的时域信号,在进行每次复制时,如果缓存区中已有的信号的长度为l,那么此次复制将信号复制到缓存区的l-L1到l+T-1的位置上,其中l>0,T为基音周期,对于形成的长度为L1的交叠区,交叠区中的信号由两部分信号加窗后对应点相加而得到;
按照时序顺序将缓存区中的信号依次作为当前丢失帧到第q丢失帧的补偿信号,在q小于k时,将缓存区中的第q+1帧信号与对当前丢失帧之后的第一个正确接收帧解码得到的时域信号做交叠相加,将得到的信号作为当前丢失帧之后的第一个正确接收帧的时域信号;或者,
按照时序顺序将缓存区中的前k-1帧信号依次作为当前丢失帧到第k-1丢失帧的补偿信号,缓存区中的第k帧信号用于与第k丢失帧的初始补偿信号做交叠相加,将得到的信号作为第k丢失帧的补偿信号。
进一步地,所述波形调整单元还包括增益子单元,其中:
所述增益子单元,用于在对初始补偿信号进行波形调整后,还将波形调整后的信号乘以一个增益,将乘以增益后的信号作为当前丢失帧的补偿信号。
进一步地,所述基音周期子单元在进行基音搜索时,对于语音信号帧和音乐信号帧使用不同的基音搜索上下限。
进一步地,所述基音周期值判断子单元在当前丢失帧之前的最后一个正确接收帧为语音信号帧时,使用上述方法判断当前丢失帧的基音周期值是否可用。
进一步地,所述基音周期值判断子单元,还用于在当前丢失帧之前的最后一个正确接收帧为音乐信号帧时,使用以下方法判断当前丢失帧的基音周期值是否可用,包括:
如果当前丢失帧位于静音段,认为基音周期值不可用;或者,
如果当前丢失帧不位于静音段,最大归一化自相关值大于第十九阈值R4,0<R4<1,认为基音周期值可用;最大归一化自相关值不大于R4,认为基音周期值不可用。
进一步地,所述波形调整单元还包括噪声添加子单元,其中:
所述噪声添加子单元,用于在得到当前丢失帧的补偿信号后,在补偿信号中添加噪声。
进一步地,所述噪声添加子单元,具体用于将历史信号或初始补偿信号本身,通过一个高通滤波器或者频谱倾斜滤波器得到噪声信号;
估计当前丢失帧的噪声增益值;
将得到的噪声信号乘以估计得到的当前丢失帧的噪声增益值,将乘噪声增益值后的噪声信号加入所述补偿信号中。
进一步地,所述装置还包括尺度因子单元,其中:
所述尺度因子单元,用于在所述波形调整单元得到当前丢失帧的补偿信号之后,将补偿信号乘以尺度因子。
进一步地,所述尺度因子单元,具体用于在所述波形调整单元得到当前丢失帧的补偿信号之后,根据当前丢失帧的帧类型,确定是否将当前丢失帧的补偿信号乘以尺度因子,如果确定乘以尺度因子,则进行所述将补偿信号乘以尺度因子的操作。
进一步地,一种变换域的丢帧补偿装置,所述装置包括:第一相位幅值获取单元、第二相位幅值获取单元和补偿信号获取单元,其中:
所述第一相位幅值获取单元,用于获得当前丢失帧之前若干帧的各频点的相位和幅值;
所述第二相位幅值获取单元,用于对获得的当前丢失帧之前若干帧的各频点的相位和幅值进行线性或非线性外推,得到当前丢失帧的各频点的相位和幅值;
所述补偿信号获取单元,用于通过当前丢失帧的各频点的相位和幅值得到当前丢失帧的各频点的频域系数,通过频域-时域变换得到当前丢帧的补偿信号。
进一步地,所述第一相位幅值获取单元,具体用于在当前丢失帧为第p帧时,对当前丢失帧之前的若干帧时域信号,采用改进的离散正弦变换MDST算法得到第p-2帧和第p-3帧的MDST系数,将得到的第p-2帧和第p-3帧的MDST系数与第p-2帧和第p-3帧的MDCT系数组成MDCT-MDST域的复数信号;
所述第二相位幅值获取单元,具体用于将第p-2帧和第p-3帧的相位线性外推得到第p帧各频点的MDCT-MDST域的复数信号的相位;使用第p-2帧相应频点的幅值代替第p帧各频点的幅值;
所述补偿信号获取单元,具体用于根据第p帧各频点的MDCT-MDST域的复数信号的相位和第p帧各频点的幅值推断第p帧在各频点的MDCT系数
进一步地,所述装置还包括频点选择单元,其中:
所述频点选择单元,用于根据当前丢失帧之前的最近c个正确接收帧的帧类型,选择是否对当前丢失帧的各频点均利用当前丢失帧之前若干帧的各频点处的相位和幅值,进行线性或非线性外推得到当前丢失帧的各频点的相位和幅值。
进一步地,所述装置还包括尺度因子单元,其中:
所述尺度因子单元,用于在所述补偿信号获取单元得到当前丢失帧的补偿信号之后,将补偿信号乘以尺度因子。
进一步地,所述尺度因子单元,具体用于在所述补偿信号获取单元得到当前丢失帧的补偿信号之后,根据当前丢失帧的帧类型,确定是否将当前丢失帧的补偿信号乘以尺度因子,如果确定乘以尺度因子,则进行所述将补偿信号乘以尺度因子的操作。
进一步地,一种变换域的丢帧补偿装置,所述装置包括:判断单元,其中:
所述判断单元,用于通过判断算法,选择使用上述的第一种装置或者上述的第二种装置补偿当前丢失帧。
进一步地,所述判断单元,具体用于判断帧类型,如果当前丢失帧为音调帧,则使用上述的第二种装置补偿当前丢失帧;如果当前丢失帧为非音调帧,则使用上述的第一种装置补偿当前丢失帧。
进一步地,所述判断单元,具体用于获取当前丢失帧的前n个正确接收帧的帧类型标识,如果前n个正确接收帧中音调帧的数目大于第十一阈值n0,则认为当前丢失帧为音调帧;否则认为当前丢失帧为非音调帧,其中,0≤n0≤n,n≥1。
进一步地,所述判断单元,具体用于计算帧的谱平坦度,判断谱平坦度的值是否小于第十阈值K,如果小于K则认为该帧为音调帧;否则,认为该帧为非音调帧,其中,0≤K≤1。
进一步地,所述判断单元在计算谱平坦度时,用于计算的频域系数是时域-频域变化后原始的频域系数,或是将原始频域系数经过频谱整形后的频域系数。
进一步地,所述判断单元,具体用于使用时域-频域变化后原始的频域系数以及将原始频域系数经过频谱整形后的频域系数分别计算帧的谱平坦度,得到帧对应的两个谱平坦度;
根据得到的其中一个谱平坦度的值是否小于第十阈值K,设定该帧是否为音调帧;根据得到的其中另一个谱平坦度的值是否小于另一阈值K’,重新设定该帧是否为音调帧;
其中,在谱平坦度的值小于K时,则设定帧为音调帧;否则,设定帧为非音调帧,在另一个谱平坦度的值小于K’时,重新设定该帧为音调帧;其中,0≤K≤1,0≤K’≤1。
综上所述,本发明使用当前丢失帧的前一帧或前若干帧的频域系数计算当前丢失帧的频域系数,对计算得到的当前丢失帧的频域系数进行频域-时域变换,得到当前丢失帧的初始补偿信号;对初始补偿信号进行波形调整,得到当前丢失帧的补偿信号,能够以较低运算复杂度,达到更好的语音频信号的丢帧补偿效果,并且大大缩短了延迟时间。
附图说明
图1是本发明中对丢失帧名称定义的示意图;
图2(A)是本发明实施例1的变换域的丢帧补偿方法的流程图;
图2(B)是本发明实施例1中计算当前丢失帧的频域系数的方法的示意图;
图3是本发明实施例1中对初始补偿信号进行波形调整方法的流程图;
图4是本发明实施例1中波形调整方法的示意图;
图5本发明实施例2中得到当前丢失帧各频点的频域系数方法的流程图;
图6是本发明实施例3中的判断算法的流程图;
图7是本发明实施例4中基音搜索的示意图;
图8是本发明实施例4中判断搜索得到的当前丢帧的基音周期是否可用的示意图;
图9是本发明实施例5的流程图;
图10是本发明实施方式的一种变换域的丢帧补偿装置的架构图;
图11是本发明实施方式的装置中的波形调整单元的架构图;
图12是本发明实施方式的另一种变换域的丢帧补偿装置的架构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
如图1所示,紧随正确接收帧的第一个丢失帧被称为第一丢失帧,紧随第一丢失帧的连续的第二个丢失帧被称为第二丢失帧,以此类推。
实施例1:
如图2(A)所示,本实施方式的变换域的丢帧补偿方法,包括:
步骤101:使用当前丢失帧的前一帧或若干帧的频域系数,计算得到当前丢失帧的频域系数,对计算得到的频域系数进行频域-时域变换得到当前丢失帧的初始补偿信号;
若干帧为两帧或两个以上帧。
步骤102:对初始补偿信号进行波形调整,得到当前丢失帧的补偿信号;
下面结合附图分别对步骤101和步骤102进行具体说明。
如图2(B)所示,计算得到当前丢失帧的频域系数的具体方法包括:
步骤一:将当前丢失帧的前一帧的频域系数作适当衰减,然后作为当前丢失帧的频域系数,即:
当前丢失帧为第p帧时,
cp(m)=α*cp-1(m),m=0,...,M-1;
其中cp(m)表示第p帧在频点m处的频域系数,M为频点总数,α为衰减系数,0≤α≤1,α可以对于每个丢失帧采用固定值,也可以对第一丢失帧,第二丢失帧,...,第k丢失帧等采用不同的值。
也可以将当前丢失帧前若干帧的频域系数的加权平均作适当衰减,然后作为当前丢失帧的频域系数。
步骤二:优选地,也可以将上述得到的当前丢失帧的各频点的频域系数分别乘以一个随机符号,得到新的当前丢失帧的各频点的频域系数,即:
cp(m)=sgn(m)*cp(m),m=0,...,M-1,
其中,sgn(m)为频点m处的随机符号。
如图3所示,步骤102中对初始补偿信号进行波形调整的方法包括:
102a:对当前丢失帧进行基音周期估计,具体基音周期估计的方法如下:
首先,使用自相关方法对当前丢失帧之前的最后一个正确接收帧的时域信号进行基音搜索,得到当前丢失帧之前的最后一个正确接收帧的基音周期值和最大归一化自相关值,将得到的基音周期值作为当前丢失帧的基音周期值;
即寻找t∈[Tmin,Tmax],0<Tmin<Tmax<L使得达到最大值,该最大值即为最大归一化自相关值,此时的t即为基音周期值,其中Tmin,Tmax分别为基音搜索的下限和上限,L为帧长,s(i),i=0,...,L-1为待基音搜索的时域信号;
特别地,在进行基音周期估计的过程中,在对当前丢失帧之前的最后一个正确接收帧的时域信号进行基音搜索之前,还可以先进行以下处理:先对当前丢失帧之前的最后一个正确接收帧的时域信号做低通滤波或降采样处理,然后使用低通滤波或降采样后的时域信号代替原有的当前丢失帧之前最后一个正确接收帧的时域信号进行基音周期估计。低通滤波或降采样处理可以减小信号高频分量对基音搜索的影响或降低基音搜索的复杂度。
本步骤中也可以使用其他方法计算出当前丢失帧之前的最后一个正确接收帧的基音周期值,再利用该基音周期值计算出最大归一化自相关值,例如:
寻找t∈[Tmin,Tmax],0<Tmin<Tmax<L使得达到最大值,此时的t即为基音周期值T,最大归一化自相关值为
102b:判断步骤102a中搜索得到的基音周期是否可用;
虽然步骤102a中估计了当前丢失帧的基音周期值,但该基音周期值未必可用,采用以下条件判断该基音周期值是否可用:
i.满足下面条件中的任意一个则认为该基音周期值不可用:
(1)第一丢失帧的初始补偿信号的过零率大于第一阈值Z1,其中Z1>0;
在当前丢失帧为正确接收帧后的第一个丢失帧时,条件(1)中的第一丢失帧即为当前丢失帧;在当前丢失帧不是正确接收帧后的第一个丢失帧时,条件(1)中的第一丢失帧为紧随当前丢失帧之前的最后一个正确接收帧的第一个丢失帧。
(2)当前丢失帧之前的最后一个正确接收帧的低频能量与整帧能量的比值小于第二阈值ER1,其中ER1>0;
其中,低频能量与整帧能量的比值可定义为:
(3)当前丢失帧之前的最后一个正确接收帧的谱倾斜小于第三阈值TILT,其中0<TILT<1;
其中,谱倾斜可以定义为:
(4)当前丢失帧之前的最后一个正确接收帧的后半帧的过零率超过前半帧的过零率若干倍。
ii上述条件都不满足时,再进行如下判断:
(a)如果当前丢失帧位于静音段时,认为该基音周期值不可用;
可以使用并不限于使用如下方法判断当前丢失帧是否位于静音段:
若当前丢失帧之前的最后一个正确接收帧的对数能量小于十二阈值E1,或者同时满足以下两个条件:
(1)步骤102中的最大归一化自相关值小于十三阈值R1,其中0<R1<1;
(2)此时的长时对数能量与当前丢失帧之前的最后一个正确接收帧的对数能量的差大于十四阈值E2时;
则认为当前丢失帧位于静音段。
其中对数能量定义为:
长时对数能量定义为:由一个初始值e0开始,e0≥0,当每一帧满足下述条件时进行更新:emean=a*emean+(1-a)*e。
更新条件为:该帧的对数能量e超过十五阈值E3并且该帧的过零率小于十六阈值Z2。
(b)如果丢失帧不位于静音段,且步骤102中的最大归一化自相关值大于第四阈值R2时,其中0<R2<1,认为该基音周期值可用;
(c)如果上述两个条件都不满足,且当前丢失帧之前的最后一个正确接收帧的过零率大于第五阈值Z3,其中Z3>0,认为该基音周期值不可用;
(d)如果上述三个条件都不满足,且此时的长时对数能量与当前丢失帧之前的最后一个正确接收帧的对数能量的差大于第六阈值E4时,其中E4>0,认为该基音周期值不可用;
(e)如果上述四个条件都不满足,且当前丢失帧之前的最后一个正确接收帧的对数能量与此时的长时对数能量的差超过第七阈值E5并且步骤102中的最大归一化自相关值大于第八阈值R3时,认为该基音周期值可用,其中E5>0,0<R3<1;
(f)如果上述五个条件都不满足,则检查当前丢失帧之前的最后一个正确接收帧的谐波特性,当表示谐波特性的值harm小于第九阈值H时,则认为该基音周期值不可用;否则认为该基音周期值可用,其中H<1;
其中,h1为基频频点,hi,i=2,...l为h1的i次谐波频点,c(hi)为频点hi所对应的频域系数。由于基音周期值与基因频率存在固定的数量关系,因此hi,i=1,...l的值可以由步骤102中得到的基音周期值获得,当hi不为整数时,可以采用取整的方法使用与hi邻近的一个或几个整数频点参与harm的计算。
102c:如果基音周期值不可用,则直接将当前丢失帧的初始补偿信号作为当前丢失帧的补偿信号;如果基音周期值可用,则执行步骤102d;
102d:使用当前丢失帧的前一帧的时域信号对初始补偿信号进行波形调整;
如图4所示,调整的方法包括:
(i)为得到当前丢失帧波形调整后的时域信号,首先建立一个长度为L+L1的缓存区,L为帧长,L1>0;
(ii)然后对缓存区的前L1个单元进行初始化:如果当前丢失帧为第一丢失帧时,缓存区的前L1个单元初始为当前丢失帧初始补偿信号的前L1长度的数据;如果当前丢失帧不为第一丢失帧时,缓存区的前L1个单元初始为对当前丢失帧的前一个丢失帧做波形调整时所用缓存区的最后L1长度的数据;初始化之后缓存区中已有数据长度为L1;
(iii)将当前丢失帧的前一帧的时域信号的最后一个基音周期的时域信号连同缓存区中的L1长度的信号一起,不断重复复制到缓存区中指定的位置上,直至填满缓存区。所述缓存区中指定的位置是指:如果现在缓存区中已有的数据长度为l,那么此次复制将数据复制到缓存区的l-L1到l+T-1的位置上,复制后缓存区中的已有数据长度变为l+T,其中l>0,T为基音周期。复制时,由于缓存区中l-L1到l-1的位置上已存在数据,从而形成了一个长度为L1的交叠区,交叠区中的信号由两部分信号加窗后对应点相加而得到;
(iv)将缓存区中的信号的前L长度的数据作为当前丢失帧的补偿信号。
优选地,为保证补偿后时域波形的平滑,也可以在丢失帧之后遇到第一个正确接收帧时,仍然构建一个长度为L的缓存区,然后使用上述(ii)和(iii)的方法填满缓存区,缓存区的信号用于与该帧实际解码得到的时域信号做加窗交叠相加,即渐入渐出处理,将处理后的信号作为该帧的时域信号。
在本步骤中,也可以在遇到第一丢失帧时直接构建长度为kL的缓存区,然后使用上述(ii)和(iii)的方法填满缓存区从而直接得到长度为kL的时域信号,k>0。由于k是在遇到第一丢失帧时设定好的,而实际的连续丢帧的个数可能小于或者大于等于k。当实际连续丢帧的个数q小于k时,缓存区的信号将按照时序顺序依次成为第一丢失帧,第二丢失帧,...,第q丢失帧的补偿信号,缓存区中的第q+1帧信号用于与丢失帧后第一个正确接收帧实际解码得到的时域信号做渐入渐出处理;当实际连续丢帧的个数q大于等于k时,缓存区中的前k-1帧信号按照时序顺序依次成为第一丢失帧,第二丢失帧,...,第k-1丢失帧的补偿信号;缓存区中的第k帧信号用于与第k丢失帧的初始补偿信号做渐入渐出处理,将处理后的信号做为第k丢失帧的补偿信号;对第k丢失帧之后的丢失帧不做波形调整。
优选地,也可以将波形调整后的信号再乘以一个增益之后的信号作为丢失帧的补偿信号。可以对丢失帧每个数据点使用相同的增益值,也可以对丢失帧的每个数据点使用不同的增益值。
所述102d的波形调整方法还可以包括:在补偿信号中添加适量噪声的过程,具体添加噪声的方法如下:
将初始补偿信号之前的信号,即历史信号,或初始补偿信号本身,通过一个高通滤波器或者频谱倾斜滤波器得到噪声信号;估计当前丢失帧的噪声增益值;将噪声信号乘以噪声增益值后与补偿信号相加得到新的补偿信号。其中,可以对丢失帧每个数据点使用相同的噪声增益值,也可以对于丢失帧的每个数据点使用不同的噪声增益值。
在实施例1中使用当前丢失帧的前一帧或前若干帧的频域系数计算当前丢失帧的频域系数,对计算得到的当前丢失帧的频域系数进行频域-时域变换,得到当前丢失帧的初始补偿信号;对初始补偿信号进行波形调整,得到当前丢失帧的补偿信号,能够以较低运算复杂度,达到更好的丢帧补偿效果,并且无附加延迟。
实施例2:
步骤201:获得当前丢失帧之前若干帧各频点的相位和幅值,利用当前丢失帧之前若干帧各频点的相位和幅值,线性或非线性外推得到当前丢失帧各频点的相位和幅值,通过当前丢失帧各频点的相位和幅值得到当前丢失帧各频点的频域系数;
步骤202:通过频域-时域变换得到当前丢帧的补偿信号。
如图5,在步骤201中,如果编解码器中各信息帧的频域表示是MDCT域的,则需要使用MDST(改进的离散正弦变换)构造出当前丢失帧之前若干帧的MDCT-MDST域的复数信号,步骤201的方法具体包括:
步骤A:当第p帧丢失时,对当前丢失帧之前的若干帧时域信号,采用MDST算法得到第p-2帧和第p-3帧的MDST系数sp-2(m)和sp-3(m),把得到的第p-2帧和第p-3帧的MDST系数和第p-2帧和第p-3帧的MDCT系数cp-2(m)和cp-3(m)组成MDCT-MDST域的复数信号:
vp-2(m)=cp-2(m)+jsp-2(m)(1)
vp-3(m)=cp-3(m)+jsp-3(m)(2)
其中j为虚数符号。
步骤B:根据下面式(3)-(8)求得第p帧各频点的MDCT-MDST域复数信号的相位和幅值:
Ap-2(m)=|vp-2(m)|(5)
Ap-3(m)=|vp-3(m)|(6)
其中A分别表示相位和幅值。例如,为第p帧在频点m处的相位的估计值,为第p-2帧在频点m处的相位,为第p-3帧在频点m处的相位,是第p帧在频点m处的幅值的估计值,Ap-2(m)为第p-2帧在频点m处的幅值,其余类似。
步骤C:因此补偿得到的第p帧在频点m的MDCT系数为:
在步骤201中,也可以只对当前丢失帧的部分频点,利用当前丢失帧之前若干帧的该频点处的相位和幅值,线性或非线性外推得到当前丢失帧这些频点的相位和幅值,从而获得这些频点的频域系数;而对这些频点以外的频点,可以使用步骤101中的方法得到频点的频域系数;从而得到当前丢失帧每个频点的频域系数。也可以将得到的当前丢失帧的频域系数衰减后再进行频域-时域变换。
优选地,在使用实施例2的方法补偿当前丢失帧时,可以根据当前丢失帧之前的最近的c个正确接收帧的帧类型,选择对当前丢失帧的全部频点,利用当前丢失帧之前若干帧的各频点的相位和幅值,线性或非线性外推得到当前丢失帧各频点的相位和幅值;或者是只对部分频点进行上述操作。例如:仅在当前丢失帧的前三个正确接收帧全部为音调帧时,才选择对当前丢失帧的全部频点进行上述操作。
在实施例2中,对全部频点,或者根据当前丢失帧之前的最近的c个正确接收帧的帧类型,选择对当前丢失帧的全部频点或只对部分频点,利用当前丢失帧之前若干帧的相应频点的相位和幅值,线性或非线性外推得到当前丢失帧相应频点的相位和幅值,大大提高了音调帧的补偿效果。
实施例3:
通过判断算法,选择使用实施例1或者实施例2的方法补偿当前丢失帧。
如图6所示,所述判断算法包括:
步骤301:计算每一帧的谱平坦度,判断谱平坦度的值是否小于第十阈值K,如果小于K则认为该帧为音调帧,设置帧类型标识位为音调类型(例如为1);如果不小于K,则认为该帧为非音调帧,设置帧类型标识位为非音调类型(例如为0),其中0≤K≤1;
具体谱平坦度的计算方法如下:
任意第i帧的谱平坦度SFMi定义为第i帧信号的变换域下信号的幅值的几何平均值与算术平均值之比:
其中,为第i帧信号幅值的几何平均,为第i帧信号幅值的算术平均,ci(m)为第i帧在频点m的频域系数,M为频域信号频点个数。
频域系数可以是时域-频域变化后原始的频域系数,也可以将原始频域系数经过频谱整形后的频域系数。
优选地,可以将时域-频域变化后原始的频域系数和将原始的频域系数经过频谱整形后的频域系数一并考虑,判断当前帧的类型,例如:
将使用将原始的频域系数经过频谱整形后的频域系数计算的谱平坦度记为SFM,将使用时域-频域变化后原始的频域系数计算的谱平坦度记为SFM’;
如果SFM小于第十阈值K,则设置帧类型标识位为音调类型;如果SFM不小于阈值K,则设置帧类型标识位为非音调类型;
另外,如果SFM’小于另一阈值K’,则重新设置帧类型标识位为音调类型;如果SFM’不小于阈值K’,则不重新设置帧类型标识位,其中,0≤k≤1,0≤K’≤1。
优选地,可以使用频域系数的全部频点中的一部分计算谱平坦度。
步骤302:步骤301可以在编码端进行,然后将得到的帧类型标识连同编码码流一起发送到解码端;
步骤301也可以在解码端进行,这时由于丢失帧的频域系数已经丢失,无法计算谱平坦度,从而只对正确接收帧进行该步骤。
步骤303:获取当前丢失帧的前n个正确接收帧的帧类型标识,如果前n帧中音调信号帧的数目大于第十一阈值n0(0≤n0≤n),则认为当前丢失帧为音调帧;否则认为当前丢失帧为非音调帧,其中n≥1;
步骤304:如果当前丢失帧为音调帧,则使用实施例2的方法补偿当前丢失帧;如果当前丢失帧为非音调帧,则使用实施例1的方法补偿当前丢失帧。
当编码器编码时区分长帧和短帧时,可以仅在当前丢失帧之前的三帧全部为长帧或者全部为短帧时才使用实施例2的方法补偿当前丢失帧。
在实施例3中结合音调帧和非音调帧的特点,通过判断算法选择适合自身特点的补偿方法补偿当前丢失帧,能够达到更好的补偿效果。
实施例4:
在实施例3的基础上可以加入一个语音/音乐信号分类器,当选择使用实施例1的方法补偿当前丢失帧时,语音/音乐信号分类器的输出标识,将影响实施例1中步骤102a和步骤102b所述的方法,其他步骤同实施例3。
如图7所示,在实施例4中可以将实施例1中的步骤102a修改为:
步骤401:首先判断当前丢失帧之前最后一个正确接收帧为语音信号帧或者为音乐信号帧;
步骤402:然后对当前丢失帧使用如同102a所述的方法进行基音周期估计,唯一不同的是,对于语音信号帧和音乐信号帧可以使用不同的基音搜索上下限,例如:
对于语音信号帧,
对于音乐信号帧,
如图8所示,在实施例4中可以将实施例1中的步骤102b修改为:
步骤501:判断当前丢失帧之前的最后一个正确接收帧为语音信号帧或者为音乐信号帧;
步骤502:如果当前丢失帧之前最后一个正确接收帧为语音信号帧,则使用步骤102b的方法判断搜索得到的当前丢帧的基音周期是否可用;如果当前丢失帧之前最后一个正确接收帧为音乐信号帧,则使用以下方法判断搜索得到的当前丢帧的基音周期是否可用:
如果丢失帧位于静音段时,认为该基音周期值不可用;
如果丢失帧不位于静音段,同时最大归一化自相关值大于第十九阈值R4时,0<R4<1,认为该基音周期值可用;最大归一化自相关值不大于R4时,认为该基音周期值不可用。
在实施例4中在补偿当前丢失帧时,充分考虑语音信号帧和音乐信号帧的特征,大大提高了补偿方法的通用性,使得该方法能够在各种场景下都获得良好的补偿效果。
实施例5:
使用实施例1至实施例4中的任何一个实施例算法补偿得到当前丢失帧的补偿信号之后,还可以将该补偿信号乘以尺度因子,将乘以尺度因子后的补偿信号作为当前丢失帧的补偿信号,如图9,具体方法包括:
步骤601:使用实施例1-4补偿得到当前丢失帧的补偿信号;
步骤602:寻找当前丢失帧的补偿信号中的最大振幅值b,和当前丢失帧前一帧的后半帧的时域信号的最大振幅值a;
步骤603:计算a与b的比值scale=a/b,并限制scale的值在一定的范围之内,比如当scale大于第十七阈值Sh时,取scale为Sh;当scale小于第十八阈值Sl时,取scale为Sl;
步骤604:将使用实施例1-4得到的当前丢失帧的补偿信号逐点乘以一个尺度因子,尺度因子g的初值为1,并逐点更新,更新方式为:
g=βg+(1-β)scale,0≤β≤1;
优选地,在实施例5中,也可以根据当前丢失帧的帧类型,只将一些帧的补偿信号乘以尺度因子,而其他帧的补偿信号则不乘以尺度因子而直接得到补偿信号。
需要乘以尺度因子的帧可以包括:音调帧,
或者,基音周期不可用的非音调的语音帧,并且当前丢失帧的前一帧的前半帧能量超过当前丢失帧的前一帧的后半帧能量的若干倍。
在实施例5中,在补偿方法中增加增益调整,以平稳补偿能量,减小补偿噪声。
如图10所示,本实施方式还提供了一种变换域的丢帧补偿装置,包括:频域系数计算单元、变换单元和波形调整单元,其中:
频域系数计算单元,用于使用当前丢失帧的前一帧或前若干帧的频域系数,计算当前丢失帧的频域系数;
变换单元,用于对频域系数计算单元计算得到的当前丢失帧的频域系数进行频域-时域变换,得到当前丢失帧的初始补偿信号;
波形调整单元,用于对初始补偿信号进行波形调整,得到当前丢失帧的补偿信号。
波形调整单元,具体用于对当前丢失帧进行基音周期估计,判断基音周期估计得到的基音周期值是否可用,如果基音周期值不可用,则将当前丢失帧的初始补偿信号作为当前丢失帧的补偿信号;如果基音周期值可用,则使用当前丢失帧的前一帧的时域信号对初始补偿信号进行波形调整。
如图11所示,波形调整单元包括基音周期子单元,其中:
基音周期子单元,用于对当前丢失帧之前的最后一个正确接收帧的时域信号进行基音搜索,得到当前丢失帧之前的最后一个正确接收帧的基音周期值和最大归一化自相关值,将得到的基音周期值作为当前丢失帧的基音周期值;或者,
计算出当前丢失帧之前的最后一个正确接收帧的基音周期值,将计算得到的基音周期值作为当前丢失帧的基音周期值,利用计算得到的基音周期值计算出当前丢失帧的最大归一化自相关值。
基音周期子单元,还用于在对当前丢失帧之前的最后一个正确接收帧的时域信号进行基音搜索之前,对当前丢失帧之前的最后一个正确接收帧的时域信号进行低通滤波或降采样处理,对低通滤波或降采样处理后的当前丢失帧之前的最后一个正确接收帧的时域信号进行基音搜索。
波形调整单元包括基音周期值判断子单元,其中:
基音周期值判断子单元,用于判断是否满足下面条件中的任意一个,如果满足任意一个,则认为基音周期值不可用,包括:
(1)第一丢失帧的初始补偿信号的过零率大于第一阈值Z1,其中,Z1>0;
(2)当前丢失帧之前的最后一个正确接收帧的低频能量与整帧能量的比值小于第二阈值ER1,其中,ER1>0;
(3)当前丢失帧之前的最后一个正确接收帧的谱倾斜小于第三阈值TILT,其中,0<TILT<1;
(4)当前丢失帧之前的最后一个正确接收帧的后半帧的过零率超过前半帧的过零率若干倍。
基音周期值判断子单元,还用于在判断不满足条件(1)~条件(4)中的任意一个时,按照以下原则进行基音周期值是否可用的判断:
(a)在当前丢失帧位于静音段时,认为基音周期值不可用;
(b)在当前丢失帧不位于静音段,且最大归一化自相关值大于第四阈值R2时,认为基音周期值可用,其中,0<R2<1;
(c)在不符合原则(a)和原则(b),且当前丢失帧之前的最后一个正确接收帧的过零率大于第五阈值Z3,认为基音周期值不可用,其中,Z3>0;
(d)在不符合原则(a)、(b)和(c),且此时的长时对数能量与当前丢失帧之前的最后一个正确接收帧的对数能量的差大于第六阈值E4时,认为基音周期值不可用,其中,E4>0;
(e)在不符合原则(a)、(b)、(c)和(d)且当前丢失帧之前的最后一个正确接收帧的对数能量与此时的长时对数能量的差超过第七阈值E5,并且最大归一化自相关值大于第八阈值R3时,认为基音周期值可用,其中,E5>0,0<R3<1;
(f)在不符合原则(a)、(b)、(c)、(d)和(e)时,检查当前丢失帧之前的最后一个正确接收帧的谐波特性,当表示谐波特性的值小于第九阈值H时,认为基音周期值不可用;当表示谐波特性的值大于等于第九阈值H时,认为基音周期值可用,其中,H<1。
波形调整单元包括调整子单元,其中:
调整子单元,用于(i)建立长度为L+L1的缓存区,L为帧长,L1>0;
(ii)对缓存区的前L1个单元进行初始化,初始化包括:在当前丢失帧为第一丢失帧时,配置缓存区的前L1个单元为当前丢失帧的初始补偿信号的前L1长度的信号;在当前丢失帧不为第一丢失帧时,配置缓存区的前L1个单元为对当前丢失帧的前一个丢失帧的初始补偿信号进行波形调整时所用缓存区中的最后L1长度的信号;
(iii)将当前丢失帧的前一帧的最后一个基音周期的时域信号连同缓存区中的L1长度的信号一起,不断重复复制到缓存区中,直至填满缓存区,在进行每次复制时,如果缓存区中已有的信号的长度为l,那么此次复制将信号复制到缓存区的l-L1到l+T-1的位置上,其中l>0,T为基音周期,对于形成的长度为L1的交叠区,交叠区中的信号由两部分信号加窗后对应点相加而得到;
(iv)将缓存区中的前L长度的信号作为当前丢失帧的补偿信号。
调整子单元,还用于为当前丢失帧之后的第一个正确接收帧,构建长度为L的缓存区,按照步骤(ii)和步骤(iii)相应的方法填满缓存区,将缓存区中的信号与对当前丢失帧之后的第一个正确接收帧解码得到的时域信号做加窗交叠相加,将得到的信号作为当前丢失帧之后的第一个正确接收帧的时域信号。
或者,调整子单元,用于构建长度为kL的缓存区,L为帧长,k>0;
对缓存区的前L1个单元进行初始化,其中,L1>0,初始化包括:在当前丢失帧为第一丢失帧时,配置缓存区的前L1个单元为当前丢失帧的初始补偿信号的前L1长度的信号;在当前丢失帧不为第一丢失帧时,配置缓存区的前L1个单元为对当前丢失帧的前一个丢失帧的初始补偿信号进行波形调整时所用缓存区中的最后L1长度的信号;
将当前丢失帧的前一帧的最后一个基音周期的时域信号连同缓存区中的L1长度的信号一起,不断重复复制到缓存区中,直至填满缓存区得到长度为kL的时域信号,在进行每次复制时,如果缓存区中已有的信号的长度为l,那么此次复制将信号复制到缓存区的l-L1到l+T-1的位置上,其中l>0,T为基音周期,对于形成的长度为L1的交叠区,交叠区中的信号由两部分信号加窗后对应点相加而得到;
按照时序顺序将缓存区中的信号依次作为当前丢失帧到第q丢失帧的补偿信号,在q小于k时,将缓存区中的第q+1帧信号与对当前丢失帧之后的第一个正确接收帧解码得到的时域信号做交叠相加,将得到的信号作为当前丢失帧之后的第一个正确接收帧的时域信号;或者,
按照时序顺序将缓存区中的前k-1帧信号依次作为当前丢失帧到第k-1丢失帧的补偿信号,缓存区中的第k帧信号用于与第k丢失帧的初始补偿信号做交叠相加,将得到的信号作为第k丢失帧的补偿信号。
波形调整单元还包括增益子单元,其中:
增益子单元,用于在对初始补偿信号进行波形调整后,还将波形调整后的信号乘以一个增益,将乘以增益后的信号作为当前丢失帧的补偿信号。
基音周期子单元在进行基音搜索时,对于语音信号帧和音乐信号帧使用不同的基音搜索上下限。
基音周期值判断子单元在当前丢失帧之前的最后一个正确接收帧为语音信号帧时,使用上述方式判断当前丢失帧的基音周期值是否可用。
基音周期值判断子单元,还用于在当前丢失帧之前的最后一个正确接收帧为音乐信号帧时,使用以下方法判断当前丢失帧的基音周期值是否可用,包括:
如果当前丢失帧位于静音段,认为基音周期值不可用;或者,
如果当前丢失帧不位于静音段,最大归一化自相关值大于第十九阈值R4,0<R4<1,认为基音周期值可用;最大归一化自相关值不大于R4,认为基音周期值不可用。
波形调整单元还包括噪声添加子单元,其中:
噪声添加子单元,用于在得到当前丢失帧的补偿信号后,在补偿信号中添加噪声。
噪声添加子单元,具体用于将历史信号或初始补偿信号本身,通过一个高通滤波器或者频谱倾斜滤波器得到噪声信号;
估计当前丢失帧的噪声增益值;
将得到的噪声信号乘以估计得到的当前丢失帧的噪声增益值,将乘噪声增益值后的噪声信号加入补偿信号中。
装置还包括尺度因子单元,其中:
尺度因子单元,用于在波形调整单元得到当前丢失帧的补偿信号之后,将补偿信号乘以尺度因子。
尺度因子单元,具体用于在波形调整单元得到当前丢失帧的补偿信号之后,根据当前丢失帧的帧类型,确定是否将当前丢失帧的补偿信号乘以尺度因子,如果确定乘以尺度因子,则进行将补偿信号乘以尺度因子的操作。
如图12所示,本实施方式提供的另一种变换域的丢帧补偿装置,包括:第一相位幅值获取单元、第二相位幅值获取单元和补偿信号获取单元,其中:
第一相位幅值获取单元,用于获得当前丢失帧之前若干帧的各频点的相位和幅值;
第二相位幅值获取单元,用于对获得的当前丢失帧之前若干帧的各频点的相位和幅值进行线性或非线性外推,得到当前丢失帧的各频点的相位和幅值;
补偿信号获取单元,用于通过当前丢失帧的各频点的相位和幅值得到当前丢失帧的各频点的频域系数,通过频域-时域变换得到当前丢帧的补偿信号。
第一相位幅值获取单元,具体用于在当前丢失帧为第p帧时,对当前丢失帧之前的若干帧时域信号,采用改进的离散正弦变换MDST算法得到第p-2帧和第p-3帧的MDST系数,将得到的第p-2帧和第p-3帧的MDST系数与第p-2帧和第p-3帧的MDCT系数组成MDCT-MDST域的复数信号;
第二相位幅值获取单元,具体用于将第p-2帧和第p-3帧的相位线性外推得到第p帧各频点的MDCT-MDST域的复数信号的相位;使用第p-2帧相应频点的幅值代替第p帧各频点的幅值;
补偿信号获取单元,具体用于根据第p帧各频点的MDCT-MDST域的复数信号的相位和第p帧各频点的幅值推断第p帧在各频点的MDCT系数。
装置还包括频点选择单元,其中:
频点选择单元,用于根据当前丢失帧之前的最近c个正确接收帧的帧类型,选择是否对当前丢失帧的各频点均利用当前丢失帧之前若干帧的各频点处的相位和幅值,进行线性或非线性外推得到当前丢失帧的各频点的相位和幅值。
装置还包括尺度因子单元,其中:
尺度因子单元,用于在补偿信号获取单元得到当前丢失帧的补偿信号之后,将补偿信号乘以尺度因子。
尺度因子单元,具体用于在补偿信号获取单元得到当前丢失帧的补偿信号之后,根据当前丢失帧的帧类型,确定是否将当前丢失帧的补偿信号乘以尺度因子,如果确定乘以尺度因子,则进行将补偿信号乘以尺度因子的操作。
本实施方式的另一种变换域的丢帧补偿装置,包括:判断单元,其中:
判断单元,用于通过判断算法,选择使用图10或者图12的装置补偿当前丢失帧。
判断单元,具体用于判断帧类型,如果当前丢失帧为音调帧,则使用图12中的装置补偿当前丢失帧;如果当前丢失帧为非音调帧,则使用图10中的装置补偿当前丢失帧。
判断单元,具体用于获取当前丢失帧的前n个正确接收帧的帧类型标识,如果前n个正确接收帧中音调帧的数目大于第十一阈值n0,则认为当前丢失帧为音调帧;否则认为当前丢失帧为非音调帧,其中,0≤n0≤n,n≥1。
判断单元,具体用于计算帧的谱平坦度,判断谱平坦度的值是否小于第十阈值K,如果小于K则认为该帧为音调帧;否则,认为该帧为非音调帧,其中,0≤K≤1。
判断单元在计算谱平坦度时,用于计算的频域系数是时域-频域变化后原始的频域系数,或是将原始频域系数经过频谱整形后的频域系数。
判断单元,具体用于使用时域-频域变化后原始的频域系数以及将原始频域系数经过频谱整形后的频域系数分别计算帧的谱平坦度,得到帧对应的两个谱平坦度;
根据得到的其中一个谱平坦度的值是否小于第十阈值K,设定该帧是否为音调帧;根据得到的其中另一个谱平坦度的值是否小于另一阈值K’,重新设定该帧是否为音调帧;
其中,在谱平坦度的值小于K时,则设定帧为音调帧;否则,设定帧为非音调帧,在另一个谱平坦度的值小于K’时,重新设定该帧为音调帧;其中,0≤K≤1,0≤K’≤1。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
Claims (51)
1.一种变换域的丢帧补偿方法,其特征在于,所述方法包括:
使用当前丢失帧的前一帧或前若干帧的频域系数,计算当前丢失帧的频域系数,对计算得到的当前丢失帧的频域系数进行频域-时域变换,得到当前丢失帧的初始补偿信号;
对所述初始补偿信号进行波形调整,得到当前丢失帧的补偿信号,包括:
对当前丢失帧进行基音周期估计,判断基音周期估计得到的基音周期值是否可用,如果基音周期值不可用,则将当前丢失帧的初始补偿信号作为当前丢失帧的补偿信号;如果基音周期值可用,则使用当前丢失帧的前一帧的时域信号对初始补偿信号进行波形调整。
2.如权利要求1所述的方法,其特征在于,对当前丢失帧进行基音周期估计,包括:
对当前丢失帧之前的最后一个正确接收帧的时域信号进行基音搜索,得到当前丢失帧之前的最后一个正确接收帧的基音周期值和最大归一化自相关值,将得到的基音周期值作为当前丢失帧的基音周期值。
3.如权利要求2所述的方法,其特征在于,还包括:
在对当前丢失帧之前的最后一个正确接收帧的时域信号进行基音搜索之前,对当前丢失帧之前的最后一个正确接收帧的时域信号进行低通滤波或降采样处理,对低通滤波或降采样处理后的当前丢失帧之前的最后一个正确接收帧的时域信号进行基音搜索。
4.如权利要求1所述的方法,其特征在于,对当前丢失帧进行基音周期估计,包括:
计算出当前丢失帧之前的最后一个正确接收帧的基音周期值,将计算得到的基音周期值作为当前丢失帧的基音周期值,利用计算得到的基音周期值计算出当前丢失帧的最大归一化自相关值。
5.如权利要求1、2、3或4所述的方法,其特征在于,判断基音周期估计得到的基音周期值是否可用,包括:
判断是否满足下面条件中的任意一个,如果满足任意一个,则认为基音周期值不可用,包括:
(1)第一丢失帧的初始补偿信号的过零率大于第一阈值Z1,其中,Z1>0;
(2)当前丢失帧之前的最后一个正确接收帧的低频能量与整帧能量的比值小于第二阈值ER1,其中,ER1>0;
(3)当前丢失帧之前的最后一个正确接收帧的谱倾斜小于第三阈值TILT,其中,0<TILT<1;
(4)当前丢失帧之前的最后一个正确接收帧的后半帧的过零率超过前半帧的过零率若干倍。
6.如权利要求5所述的方法,其特征在于,还包括:
在判断不满足所述条件(1)~条件(4)中的任意一个时,按照以下原则进行基音周期值是否可用的判断:
(a)在当前丢失帧位于静音段时,认为基音周期值不可用;
(b)在当前丢失帧不位于静音段,且最大归一化自相关值大于第四阈值R2时,认为基音周期值可用,其中,0<R2<1;
(c)在不符合原则(a)和原则(b),且当前丢失帧之前的最后一个正确接收帧的过零率大于第五阈值Z3,认为基音周期值不可用,其中,Z3>0;
(d)在不符合原则(a)、(b)和(c),且此时的长时对数能量与当前丢失帧之前的最后一个正确接收帧的对数能量的差大于第六阈值E4时,认为基音周期值不可用,其中,E4>0;
(e)在不符合原则(a)、(b)、(c)和(d)且当前丢失帧之前的最后一个正确接收帧的对数能量与此时的长时对数能量的差超过第七阈值E5,并且所述最大归一化自相关值大于第八阈值R3时,认为基音周期值可用,其中,E5>0,0<R3<1;
(f)在不符合原则(a)、(b)、(c)、(d)和(e)时,检查当前丢失帧之前的最后一个正确接收帧的谐波特性,当表示谐波特性的值小于第九阈值H时,认为基音周期值不可用;当表示谐波特性的值大于等于第九阈值H时,认为基音周期值可用,其中,H<1。
7.如权利要求1所述的方法,其特征在于,使用当前丢失帧的前一帧的时域信号对初始补偿信号进行波形调整,包括:
(i)建立长度为L+L1的缓存区,L为帧长,L1>0;
(ii)对缓存区的前L1个单元进行初始化,所述初始化包括:在当前丢失帧为第一丢失帧时,配置缓存区的前L1个单元为当前丢失帧的初始补偿信号的前L1长度的信号;在当前丢失帧不为第一丢失帧时,配置缓存区的前L1个单元为对当前丢失帧的前一个丢失帧的初始补偿信号进行波形调整时所用缓存区中的最后L1长度的信号;
(iii)将当前丢失帧的前一帧的最后一个基音周期的时域信号连同缓存区中的L1长度的信号一起,不断重复复制到缓存区中,直至填满缓存区,在进行每次复制时,如果缓存区中已有的信号的长度为l,那么此次复制将信号复制到缓存区的l-L1到l+T-1的位置上,其中l>0,T为基音周期,对于形成的长度为L1的交叠区,交叠区中的信号由两部分信号加窗后对应点相加而得到;
(iv)将缓存区中的前L长度的信号作为当前丢失帧的补偿信号。
8.如权利要求7所述的方法,其特征在于,还包括:
为当前丢失帧之后的第一个正确接收帧,构建长度为L的缓存区,按照步骤(ii)和步骤(iii)相应的方法填满缓存区,将缓存区中的信号与对所述当前丢失帧之后的第一个正确接收帧解码得到的时域信号做加窗交叠相加,将得到的信号作为所述当前丢失帧之后的第一个正确接收帧的时域信号。
9.如权利要求1所述的方法,其特征在于,使用当前丢失帧的前一帧的时域信号对初始补偿信号进行波形调整,包括:
构建长度为kL的缓存区,L为帧长,k>0;
对缓存区的前L1个单元进行初始化,其中,L1>0,所述初始化包括:在当前丢失帧为第一丢失帧时,配置缓存区的前L1个单元为当前丢失帧的初始补偿信号的前L1长度的信号;在当前丢失帧不为第一丢失帧时,配置缓存区的前L1个单元为对当前丢失帧的前一个丢失帧的初始补偿信号进行波形调整时所用缓存区中的最后L1长度的信号;
将当前丢失帧的前一帧的最后一个基音周期的时域信号连同缓存区中的L1长度的信号一起,不断重复复制到缓存区中,直至填满缓存区得到长度为kL的时域信号,在进行每次复制时,如果缓存区中已有的信号的长度为l,那么此次复制将信号复制到缓存区的l-L1到l+T-1的位置上,其中l>0,T为基音周期,对于形成的长度为L1的交叠区,交叠区中的信号由两部分信号加窗后对应点相加而得到;
按照时序顺序将缓存区中的信号依次作为当前丢失帧到第q丢失帧的补偿信号,在q小于k时,将缓存区中的第q+1帧信号与对当前丢失帧之后的第一个正确接收帧解码得到的时域信号做交叠相加,将得到的信号作为当前丢失帧之后的第一个正确接收帧的时域信号;或者,
按照时序顺序将缓存区中的前k-1帧信号依次作为当前丢失帧到第k-1丢失帧的补偿信号,缓存区中的第k帧信号用于与第k丢失帧的初始补偿信号做交叠相加,将得到的信号作为第k丢失帧的补偿信号。
10.如权利要求7~9任意之一所述的方法,其特征在于,还包括:
在对初始补偿信号进行波形调整后,还将波形调整后的信号乘以一个增益,将乘以增益后的信号作为当前丢失帧的补偿信号。
11.如权利要求2所述的方法,其特征在于,在进行基音搜索时,对于语音信号帧和音乐信号帧使用不同的基音搜索上下限。
12.如权利要求6所述的方法,其特征在于,在当前丢失帧之前的最后一个正确接收帧为语音信号帧时,使用权利要求5或6的方法判断当前丢失帧的基音周期值是否可用。
13.如权利要求12所述的方法,其特征在于,在当前丢失帧之前的最后一个正确接收帧为音乐信号帧时,使用以下方法判断当前丢失帧的基音周期值是否可用,包括:
如果当前丢失帧位于静音段,认为基音周期值不可用;或者,
如果当前丢失帧不位于静音段,最大归一化自相关值大于第十九阈值R4,0<R4<1,认为基音周期值可用;最大归一化自相关值不大于R4,认为基音周期值不可用。
14.如权利要求7~9任意之一所述的方法,其特征在于,还包括:在得到当前丢失帧的补偿信号后,在补偿信号中添加噪声。
15.如权利要求14所述的方法,其特征在于,在补偿信号中添加噪声,包括:
将历史信号或初始补偿信号本身,通过一个高通滤波器或者频谱倾斜滤波器得到噪声信号;
估计当前丢失帧的噪声增益值;
将得到的噪声信号乘以估计得到的当前丢失帧的噪声增益值,将乘噪声增益值后的噪声信号加入所述补偿信号中。
16.如权利要求1所述的方法,其特征在于,还包括:
在得到当前丢失帧的补偿信号之后,还将补偿信号乘以尺度因子。
17.如权利要求16所述的方法,其特征在于,还包括:
在得到当前丢失帧的补偿信号之后,根据当前丢失帧的帧类型,确定是否将当前丢失帧的补偿信号乘以尺度因子,如果确定乘以尺度因子,则进行所述将补偿信号乘以尺度因子的操作。
18.一种变换域的丢帧补偿方法,其特征在于,所述方法包括:
获得当前丢失帧之前若干帧的各频点的相位和幅值;
对获得的当前丢失帧之前若干帧的各频点的相位和幅值进行线性或非线性外推,得到当前丢失帧的各频点的相位和幅值;
通过当前丢失帧的各频点的相位和幅值得到当前丢失帧的各频点的频域系数,通过频域-时域变换得到当前丢帧的补偿信号;根据当前丢失帧的帧类型,确定是否将当前丢失帧的补偿信号乘以尺度因子,如果确定乘以尺度因子,则进行将补偿信号乘以尺度因子的操作。
19.如权利要求18所述的方法,其特征在于,获得当前丢失帧之前若干帧的各频点的相位和幅值;对获得的当前丢失帧之前若干帧的各频点的相位和幅值进行线性或非线性外推,得到当前丢失帧的各频点的相位和幅值;通过当前丢失帧的各频点的相位和幅值得到当前丢失帧的各频点的频域系数,包括:
在当前丢失帧为第p帧时,对当前丢失帧之前的若干帧时域信号,采用改进的离散正弦变换MDST算法得到第p-2帧和第p-3帧的MDST系数,将得到的第p-2帧和第p-3帧的MDST系数与第p-2帧和第p-3帧的MDCT系数组成MDCT-MDST域的复数信号;
将第p-2帧和第p-3帧的相位线性外推得到第p帧各频点的MDCT-MDST域的复数信号的相位;
使用第p-2帧相应频点的幅值代替第p帧各频点的幅值;
根据第p帧各频点的MDCT-MDST域的复数信号的相位和第p帧各频点的幅值推断第p帧在各频点的MDCT系数。
20.如权利要求19所述的方法,其特征在于,还包括:
根据当前丢失帧之前的最近c个正确接收帧的帧类型,选择是否对当前丢失帧的各频点均利用当前丢失帧之前若干帧的各频点处的相位和幅值,进行线性或非线性外推得到当前丢失帧的各频点的相位和幅值。
21.一种变换域的丢帧补偿方法,其特征在于:
通过判断算法,选择使用权利要求1~17任一或者权利要求18~20任一的方法补偿当前丢失帧。
22.如权利要求21所述的方法,其特征在于,通过判断算法,选择使用权利要求1~17任一或者权利要求18~20任一的方法补偿当前丢失帧,包括:
判断帧类型,如果当前丢失帧为音调帧,则使用权利要求18~20任一的方法补偿当前丢失帧;如果当前丢失帧为非音调帧,则使用权利要求1~17任一的方法补偿当前丢失帧。
23.如权利要求22所述的方法,其特征在于,判断帧类型,包括:
获取当前丢失帧的前n个正确接收帧的帧类型标识,如果前n个正确接收帧中音调帧的数目大于第十一阈值n0,则认为当前丢失帧为音调帧;否则认为当前丢失帧为非音调帧,其中,0≤n0≤n,n≥1。
24.如权利要求22所述的方法,其特征在于,判断帧类型,包括:
计算帧的谱平坦度,判断谱平坦度的值是否小于第十阈值K,如果小于K则认为该帧为音调帧;否则,认为该帧为非音调帧,其中,0≤K≤1。
25.如权利要求24所述的方法,其特征在于,在计算谱平坦度时,用于计算的频域系数是时域-频域变化后原始的频域系数,或是将原始频域系数经过频谱整形后的频域系数。
26.如权利要求22所述的方法,其特征在于,判断帧类型,包括:
使用时域-频域变化后原始的频域系数以及将原始频域系数经过频谱整形后的频域系数分别计算帧的谱平坦度,得到帧对应的两个谱平坦度;
根据得到的其中一个谱平坦度的值是否小于第十阈值K,设定该帧是否为音调帧;根据得到的其中另一个谱平坦度的值是否小于另一阈值K’,重新设定该帧是否为音调帧;
其中,在谱平坦度的值小于K时,则设定帧为音调帧;否则,设定帧为非音调帧,在另一个谱平坦度的值小于K’时,重新设定该帧为音调帧;其中,0≤K≤1,0≤K’≤1。
27.一种变换域的丢帧补偿装置,其特征在于,所述装置包括:频域系数计算单元、变换单元和波形调整单元,其中:
所述频域系数计算单元,用于使用当前丢失帧的前一帧或前若干帧的频域系数,计算当前丢失帧的频域系数;
所述变换单元,用于对所述频域系数计算单元计算得到的当前丢失帧的频域系数进行频域-时域变换,得到当前丢失帧的初始补偿信号;
所述波形调整单元,用于对所述初始补偿信号进行波形调整,得到当前丢失帧的补偿信号,具体用于对当前丢失帧进行基音周期估计,判断基音周期估计得到的基音周期值是否可用,如果基音周期值不可用,则将当前丢失帧的初始补偿信号作为当前丢失帧的补偿信号;如果基音周期值可用,则使用当前丢失帧的前一帧的时域信号对初始补偿信号进行波形调整。
28.如权利要求27所述的装置,其特征在于,所述波形调整单元包括基音周期子单元,其中:
所述基音周期子单元,用于对当前丢失帧之前的最后一个正确接收帧的时域信号进行基音搜索,得到当前丢失帧之前的最后一个正确接收帧的基音周期值和最大归一化自相关值,将得到的基音周期值作为当前丢失帧的基音周期值;或者,
计算出当前丢失帧之前的最后一个正确接收帧的基音周期值,将计算得到的基音周期值作为当前丢失帧的基音周期值,利用计算得到的基音周期值计算出当前丢失帧的最大归一化自相关值。
29.如权利要求28所述的装置,其特征在于:
所述基音周期子单元,还用于在对当前丢失帧之前的最后一个正确接收帧的时域信号进行基音搜索之前,对当前丢失帧之前的最后一个正确接收帧的时域信号进行低通滤波或降采样处理,对低通滤波或降采样处理后的当前丢失帧之前的最后一个正确接收帧的时域信号进行基音搜索。
30.如权利要求27、28或29所述的装置,其特征在于,所述波形调整单元包括基音周期值判断子单元,其中:
所述基音周期值判断子单元,用于判断是否满足下面条件中的任意一个,如果满足任意一个,则认为基音周期值不可用,包括:
(1)第一丢失帧的初始补偿信号的过零率大于第一阈值Z1,其中,Z1>0;
(2)当前丢失帧之前的最后一个正确接收帧的低频能量与整帧能量的比值小于第二阈值ER1,其中,ER1>0;
(3)当前丢失帧之前的最后一个正确接收帧的谱倾斜小于第三阈值TILT,其中,0<TILT<1;
(4)当前丢失帧之前的最后一个正确接收帧的后半帧的过零率超过前半帧的过零率若干倍。
31.如权利要求30所述的装置,其特征在于:
所述基音周期值判断子单元,还用于在判断不满足所述条件(1)~条件(4)中的任意一个时,按照以下原则进行基音周期值是否可用的判断:
(a)在当前丢失帧位于静音段时,认为基音周期值不可用;
(b)在当前丢失帧不位于静音段,且最大归一化自相关值大于第四阈值R2时,认为基音周期值可用,其中,0<R2<1;
(c)在不符合原则(a)和原则(b),且当前丢失帧之前的最后一个正确接收帧的过零率大于第五阈值Z3,认为基音周期值不可用,其中,Z3>0;
(d)在不符合原则(a)、(b)和(c),且此时的长时对数能量与当前丢失帧之前的最后一个正确接收帧的对数能量的差大于第六阈值E4时,认为基音周期值不可用,其中,E4>0;
(e)在不符合原则(a)、(b)、(c)和(d)且当前丢失帧之前的最后一个正确接收帧的对数能量与此时的长时对数能量的差超过第七阈值E5,并且所述最大归一化自相关值大于第八阈值R3时,认为基音周期值可用,其中,E5>0,0<R3<1;
(f)在不符合原则(a)、(b)、(c)、(d)和(e)时,检查当前丢失帧之前的最后一个正确接收帧的谐波特性,当表示谐波特性的值小于第九阈值H时,认为基音周期值不可用;当表示谐波特性的值大于等于第九阈值H时,认为基音周期值可用,其中,H<1。
32.如权利要求27所述的装置,其特征在于,所述波形调整单元包括调整子单元,其中:
所述调整子单元,用于(i)建立长度为L+L1的缓存区,L为帧长,L1>0;
(ii)对缓存区的前L1个单元进行初始化,所述初始化包括:在当前丢失帧为第一丢失帧时,配置缓存区的前L1个单元为当前丢失帧的初始补偿信号的前L1长度的信号;在当前丢失帧不为第一丢失帧时,配置缓存区的前L1个单元为对当前丢失帧的前一个丢失帧的初始补偿信号进行波形调整时所用缓存区中的最后L1长度的信号;
(iii)将当前丢失帧的前一帧的最后一个基音周期的时域信号连同缓存区中的L1长度的信号一起,不断重复复制到缓存区中,直至填满缓存区,在进行每次复制时,如果缓存区中已有的信号的长度为l,那么此次复制将信号复制到缓存区的l-L1到l+T-1的位置上,其中l>0,T为基音周期,对于形成的长度为L1的交叠区,交叠区中的信号由两部分信号加窗后对应点相加而得到;
(iv)将缓存区中的前L长度的信号作为当前丢失帧的补偿信号。
33.如权利要求32所述的装置,其特征在于:
所述调整子单元,还用于为当前丢失帧之后的第一个正确接收帧,构建长度为L的缓存区,按照步骤(ii)和步骤(iii)相应的方法填满缓存区,将缓存区中的信号与对所述当前丢失帧之后的第一个正确接收帧解码得到的时域信号做加窗交叠相加,将得到的信号作为所述当前丢失帧之后的第一个正确接收帧的时域信号。
34.如权利要求27所述的装置,其特征在于,所述波形调整单元包括调整子单元,其中:
所述调整子单元,用于构建长度为kL的缓存区,L为帧长,k>0;
对缓存区的前L1个单元进行初始化,其中,L1>0,所述初始化包括:在当前丢失帧为第一丢失帧时,配置缓存区的前L1个单元为当前丢失帧的初始补偿信号的前L1长度的信号;在当前丢失帧不为第一丢失帧时,配置缓存区的前L1个单元为对当前丢失帧的前一个丢失帧的初始补偿信号进行波形调整时所用缓存区中的最后L1长度的信号;
将当前丢失帧的前一帧的最后一个基音周期的时域信号连同缓存区中的L1长度的信号一起,不断重复复制到缓存区中,直至填满缓存区得到长度为kL的时域信号,在进行每次复制时,如果缓存区中已有的信号的长度为l,那么此次复制将信号复制到缓存区的l-L1到l+T-1的位置上,其中l>0,T为基音周期,对于形成的长度为L1的交叠区,交叠区中的信号由两部分信号加窗后对应点相加而得到;
按照时序顺序将缓存区中的信号依次作为当前丢失帧到第q丢失帧的补偿信号,在q小于k时,将缓存区中的第q+1帧信号与对当前丢失帧之后的第一个正确接收帧解码得到的时域信号做交叠相加,将得到的信号作为当前丢失帧之后的第一个正确接收帧的时域信号;或者,
按照时序顺序将缓存区中的前k-1帧信号依次作为当前丢失帧到第k-1丢失帧的补偿信号,缓存区中的第k帧信号用于与第k丢失帧的初始补偿信号做交叠相加,将得到的信号作为第k丢失帧的补偿信号。
35.如权利要求32、33或34所述的装置,其特征在于,所述波形调整单元还包括增益子单元,其中:
所述增益子单元,用于在对初始补偿信号进行波形调整后,还将波形调整后的信号乘以一个增益,将乘以增益后的信号作为当前丢失帧的补偿信号。
36.如权利要求28所述的装置,其特征在于:
所述基音周期子单元在进行基音搜索时,对于语音信号帧和音乐信号帧使用不同的基音搜索上下限。
37.如权利要求31所述的装置,其特征在于:
所述基音周期值判断子单元在当前丢失帧之前的最后一个正确接收帧为语音信号帧时,使用权利要求34或35判断当前丢失帧的基音周期值是否可用。
38.如权利要求37所述的装置,其特征在于:
所述基音周期值判断子单元,还用于在当前丢失帧之前的最后一个正确接收帧为音乐信号帧时,使用以下方法判断当前丢失帧的基音周期值是否可用,包括:
如果当前丢失帧位于静音段,认为基音周期值不可用;或者,
如果当前丢失帧不位于静音段,最大归一化自相关值大于第十九阈值R4,0<R4<1,认为基音周期值可用;最大归一化自相关值不大于R4,认为基音周期值不可用。
39.如权利要求32、33或34所述的装置,其特征在于,所述波形调整单元还包括噪声添加子单元,其中:
所述噪声添加子单元,用于在得到当前丢失帧的补偿信号后,在补偿信号中添加噪声。
40.如权利要求39所述的装置,其特征在于:
所述噪声添加子单元,具体用于将历史信号或初始补偿信号本身,通过一个高通滤波器或者频谱倾斜滤波器得到噪声信号;
估计当前丢失帧的噪声增益值;
将得到的噪声信号乘以估计得到的当前丢失帧的噪声增益值,将乘噪声增益值后的噪声信号加入所述补偿信号中。
41.如权利要求27所述的装置,其特征在于,所述装置还包括尺度因子单元,其中:
所述尺度因子单元,用于在所述波形调整单元得到当前丢失帧的补偿信号之后,将补偿信号乘以尺度因子。
42.如权利要求41所述的装置,其特征在于:
所述尺度因子单元,具体用于在所述波形调整单元得到当前丢失帧的补偿信号之后,根据当前丢失帧的帧类型,确定是否将当前丢失帧的补偿信号乘以尺度因子,如果确定乘以尺度因子,则进行所述将补偿信号乘以尺度因子的操作。
43.一种变换域的丢帧补偿装置,其特征在于,所述装置包括:第一相位幅值获取单元、第二相位幅值获取单元、补偿信号获取单元和尺度因子单元,其中:
所述第一相位幅值获取单元,用于获得当前丢失帧之前若干帧的各频点的相位和幅值;
所述第二相位幅值获取单元,用于对获得的当前丢失帧之前若干帧的各频点的相位和幅值进行线性或非线性外推,得到当前丢失帧的各频点的相位和幅值;
所述补偿信号获取单元,用于通过当前丢失帧的各频点的相位和幅值得到当前丢失帧的各频点的频域系数,通过频域-时域变换得到当前丢帧的补偿信号;
所述尺度因子单元,用于在所述补偿信号获取单元得到当前丢失帧的补偿信号之后,根据当前丢失帧的帧类型,确定是否将当前丢失帧的补偿信号乘以尺度因子,如果确定乘以尺度因子,则进行将补偿信号乘以尺度因子的操作。
44.如权利要求43所述的装置,其特征在于:
所述第一相位幅值获取单元,具体用于在当前丢失帧为第p帧时,对当前丢失帧之前的若干帧时域信号,采用改进的离散正弦变换MDST算法得到第p-2帧和第p-3帧的MDST系数,将得到的第p-2帧和第p-3帧的MDST系数与第p-2帧和第p-3帧的MDCT系数组成MDCT-MDST域的复数信号;
所述第二相位幅值获取单元,具体用于将第p-2帧和第p-3帧的相位线性外推得到第p帧各频点的MDCT-MDST域的复数信号的相位;使用第p-2帧相应频点的幅值代替第p帧各频点的幅值;
所述补偿信号获取单元,具体用于根据第p帧各频点的MDCT-MDST域的复数信号的相位和第p帧各频点的幅值推断第p帧在各频点的MDCT系数。
45.如权利要求44所述的装置,其特征在于,所述装置还包括频点选择单元,其中:
所述频点选择单元,用于根据当前丢失帧之前的最近c个正确接收帧的帧类型,选择是否对当前丢失帧的各频点均利用当前丢失帧之前若干帧的各频点处的相位和幅值,进行线性或非线性外推得到当前丢失帧的各频点的相位和幅值。
46.一种变换域的丢帧补偿装置,其特征在于,所述装置包括:判断单元,其中:
所述判断单元,用于通过判断算法,选择使用权利要求27~42任一或者权利要求43~45任一的装置补偿当前丢失帧。
47.如权利要求46所述的装置,其特征在于:
所述判断单元,具体用于判断帧类型,如果当前丢失帧为音调帧,则使用权利要求43~45任一的装置补偿当前丢失帧;如果当前丢失帧为非音调帧,则使用权利要求27~42任一的装置补偿当前丢失帧。
48.如权利要求47所述的装置,其特征在于:
所述判断单元,具体用于获取当前丢失帧的前n个正确接收帧的帧类型标识,如果前n个正确接收帧中音调帧的数目大于第十一阈值n0,则认为当前丢失帧为音调帧;否则认为当前丢失帧为非音调帧,其中,0≤n0≤n,n≥1。
49.如权利要求47所述的装置,其特征在于:
所述判断单元,具体用于计算帧的谱平坦度,判断谱平坦度的值是否小于第十阈值K,如果小于K则认为该帧为音调帧;否则,认为该帧为非音调帧,其中,0≤K≤1。
50.如权利要求49所述的装置,其特征在于:
所述判断单元在计算谱平坦度时,用于计算的频域系数是时域-频域变化后原始的频域系数,或是将原始频域系数经过频谱整形后的频域系数。
51.如权利要求47所述的装置,其特征在于:
所述判断单元,具体用于使用时域-频域变化后原始的频域系数以及将原始频域系数经过频谱整形后的频域系数分别计算帧的谱平坦度,得到帧对应的两个谱平坦度;
根据得到的其中一个谱平坦度的值是否小于第十阈值K,设定该帧是否为音调帧;根据得到的其中另一个谱平坦度的值是否小于另一阈值K’,重新设定该帧是否为音调帧;
其中,在谱平坦度的值小于K时,则设定帧为音调帧;否则,设定帧为非音调帧,在另一个谱平坦度的值小于K’时,重新设定该帧为音调帧;其中,0≤K≤1,0≤K’≤1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210498677.3A CN103854649B (zh) | 2012-11-29 | 2012-11-29 | 一种变换域的丢帧补偿方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210498677.3A CN103854649B (zh) | 2012-11-29 | 2012-11-29 | 一种变换域的丢帧补偿方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103854649A CN103854649A (zh) | 2014-06-11 |
CN103854649B true CN103854649B (zh) | 2018-08-28 |
Family
ID=50862220
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210498677.3A Active CN103854649B (zh) | 2012-11-29 | 2012-11-29 | 一种变换域的丢帧补偿方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103854649B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104301064B (zh) | 2013-07-16 | 2018-05-04 | 华为技术有限公司 | 处理丢失帧的方法和解码器 |
CN106683681B (zh) | 2014-06-25 | 2020-09-25 | 华为技术有限公司 | 处理丢失帧的方法和装置 |
FR3024582A1 (fr) * | 2014-07-29 | 2016-02-05 | Orange | Gestion de la perte de trame dans un contexte de transition fd/lpd |
US9978400B2 (en) | 2015-06-11 | 2018-05-22 | Zte Corporation | Method and apparatus for frame loss concealment in transform domain |
CN107742521B (zh) | 2016-08-10 | 2021-08-13 | 华为技术有限公司 | 多声道信号的编码方法和编码器 |
CN108922551B (zh) * | 2017-05-16 | 2021-02-05 | 博通集成电路(上海)股份有限公司 | 用于补偿丢失帧的电路及方法 |
CN107808655B (zh) * | 2017-10-27 | 2021-02-12 | 广州酷狗计算机科技有限公司 | 音频信号处理方法、装置、电子设备及存储介质 |
CN108111702B (zh) * | 2017-12-07 | 2020-07-07 | 杭州闪目科技有限公司 | 一种对voip***语音包丢失自动补偿的方法 |
CN111402904B (zh) * | 2018-12-28 | 2023-12-01 | 南京中感微电子有限公司 | 音频数据恢复方法、装置及蓝牙设备 |
CN110010145B (zh) * | 2019-02-28 | 2021-05-11 | 广东工业大学 | 一种消除电子听诊器摩擦声的方法 |
CN109994127B (zh) * | 2019-04-16 | 2021-11-09 | 腾讯音乐娱乐科技(深圳)有限公司 | 音频检测方法、装置、电子设备及存储介质 |
CN113539278B (zh) * | 2020-04-09 | 2024-01-19 | 同响科技股份有限公司 | 音频数据重建方法及*** |
CN111653285B (zh) * | 2020-06-01 | 2023-06-30 | 北京猿力未来科技有限公司 | 丢包补偿方法及装置 |
CN113035207B (zh) * | 2021-03-03 | 2024-03-22 | 北京猿力未来科技有限公司 | 音频处理方法及装置 |
CN113488068B (zh) * | 2021-07-19 | 2024-03-08 | 歌尔科技有限公司 | 音频异常检测方法、装置及计算机可读存储介质 |
CN113612808B (zh) * | 2021-10-09 | 2022-01-25 | 腾讯科技(深圳)有限公司 | 音频处理方法、相关设备、存储介质及程序产品 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101231849A (zh) * | 2007-09-15 | 2008-07-30 | 华为技术有限公司 | 对高带信号进行帧错误隐藏的方法及装置 |
CN101437009A (zh) * | 2007-11-15 | 2009-05-20 | 华为技术有限公司 | 丢包隐藏的方法及其*** |
CN101471073A (zh) * | 2007-12-27 | 2009-07-01 | 华为技术有限公司 | 一种基于频域的丢包补偿方法、装置和*** |
CN101588341A (zh) * | 2008-05-22 | 2009-11-25 | 华为技术有限公司 | 一种丢帧隐藏的方法及装置 |
CN101958119A (zh) * | 2009-07-16 | 2011-01-26 | 中兴通讯股份有限公司 | 一种改进的离散余弦变换域音频丢帧补偿器和补偿方法 |
CN103065636A (zh) * | 2011-10-24 | 2013-04-24 | 中兴通讯股份有限公司 | 语音频信号的丢帧补偿方法和装置 |
-
2012
- 2012-11-29 CN CN201210498677.3A patent/CN103854649B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101231849A (zh) * | 2007-09-15 | 2008-07-30 | 华为技术有限公司 | 对高带信号进行帧错误隐藏的方法及装置 |
CN101437009A (zh) * | 2007-11-15 | 2009-05-20 | 华为技术有限公司 | 丢包隐藏的方法及其*** |
CN101471073A (zh) * | 2007-12-27 | 2009-07-01 | 华为技术有限公司 | 一种基于频域的丢包补偿方法、装置和*** |
CN101588341A (zh) * | 2008-05-22 | 2009-11-25 | 华为技术有限公司 | 一种丢帧隐藏的方法及装置 |
CN101958119A (zh) * | 2009-07-16 | 2011-01-26 | 中兴通讯股份有限公司 | 一种改进的离散余弦变换域音频丢帧补偿器和补偿方法 |
EP2442304A1 (en) * | 2009-07-16 | 2012-04-18 | ZTE Corporation | Compensator and compensation method for audio frame loss in modified discrete cosine transform domain |
CN103065636A (zh) * | 2011-10-24 | 2013-04-24 | 中兴通讯股份有限公司 | 语音频信号的丢帧补偿方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103854649A (zh) | 2014-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103854649B (zh) | 一种变换域的丢帧补偿方法及装置 | |
JP6321734B2 (ja) | 音声信号の符号化と復号化の方法および装置 | |
US7930176B2 (en) | Packet loss concealment for block-independent speech codecs | |
EP2357649B1 (en) | Method and apparatus for decoding audio signal | |
KR101770237B1 (ko) | 오디오 데이터 처리 방법, 장치 및 시스템 | |
JP5300861B2 (ja) | 雑音抑圧装置 | |
KR101648290B1 (ko) | 컴포트 노이즈의 생성 | |
WO2000045379A2 (en) | Enhancing perceptual performance of sbr and related hfr coding methods by adaptive noise-floor addition and noise substitution limiting | |
WO2013060223A1 (zh) | 语音频信号的丢帧补偿方法和装置 | |
KR101661868B1 (ko) | 오디오 신호를 위한 비트 할당 방법 및 장치 | |
JP6289507B2 (ja) | エネルギー制限演算を用いて周波数増強信号を生成する装置および方法 | |
Soong et al. | Optimal quantization of LSP parameters using delayed decisions | |
WO2013066244A1 (en) | Bandwidth extension of audio signals | |
US7363231B2 (en) | Coding device, decoding device, and methods thereof | |
RU2742739C1 (ru) | Выбор задержки основного тона | |
JP5539992B2 (ja) | レート制御装置、レート制御方法及びレート制御プログラム | |
CN108831497A (zh) | 一种回声压缩方法及装置、存储介质、电子设备 | |
WO2006055354A2 (en) | Adaptive time-based noise suppression | |
CN112365897B (zh) | Lc3编码器自适应调节帧间传输码率的方法、装置和介质 | |
CN103065636B (zh) | 语音频信号的丢帧补偿方法和装置 | |
JP6677110B2 (ja) | 音声信号処理装置及び音声信号処理プログラム | |
CN117037808A (zh) | 语音信号处理方法、装置、设备及存储介质 | |
TWI544482B (zh) | 用於使用能量限制操作產生頻率增強信號之裝置及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |