CN118230741A - 一种基于正弦谐波模型的低速率语音编解码方法 - Google Patents

一种基于正弦谐波模型的低速率语音编解码方法 Download PDF

Info

Publication number
CN118230741A
CN118230741A CN202410397584.4A CN202410397584A CN118230741A CN 118230741 A CN118230741 A CN 118230741A CN 202410397584 A CN202410397584 A CN 202410397584A CN 118230741 A CN118230741 A CN 118230741A
Authority
CN
China
Prior art keywords
speech
signal
harmonic
frame
phase
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.)
Pending
Application number
CN202410397584.4A
Other languages
English (en)
Inventor
郑展恒
李华健
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guilin University of Electronic Technology
Original Assignee
Guilin University of Electronic Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guilin University of Electronic Technology filed Critical Guilin University of Electronic Technology
Priority to CN202410397584.4A priority Critical patent/CN118230741A/zh
Publication of CN118230741A publication Critical patent/CN118230741A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开了一种基于正弦谐波模型的低速率语音编解码方法。该方法以语音参数编码技术为基础,在语音参数提取上,特别是在清/浊音判决和基音参数提取做了改进,使合成语音具有较高的准确性和较强的鲁棒性;在合成端上,将随时间变化的参数数量减少为固定比特率所需的固定数量的参数,满足低速率语音编解码的应用情景;为了在不同的说话人和背景噪音条件下保持良好的性能,加入后置滤波算法和参数修正措施来抑制背景噪声。这种方法能够在高压缩效率、较低复杂度和低时延的同时保持较好的语音质量,并且具有一定的鲁棒性。

Description

一种基于正弦谐波模型的低速率语音编解码方法
技术领域
本发明涉及数字语音信号压缩技术领域,具体是一种基于正弦谐波模型的低速率语音编解码方法。
背景技术
低速率语音压缩的目的是在保证语音质量的前提下,尽可能地降低语音信号的编码比特率,以满足不同的应用需求。低速率语音压缩技术在移动通信、卫星通信、IP电话、多媒体、语音合成等领域有着广泛的应用。
但目前低速率语音压缩的技术存在以下局限:1)低速率语音压缩技术在降低语音信号的数据量的同时,也会造成语音信号的失真,导致语音质量的下降,降低语音的可懂度。2)低速率语音压缩技术为了提高语音信号的压缩效率,往往需要采用更复杂的算法,如基于语音产生模型的参数编码、混合编码、码激励线性预测编码等。这些算法的复杂度和延时都比波形编码要高,给语音的实时处理和传输带来了困难和挑战。3)低速率语音压缩技术往往需要对语音信号的参数特征进行提取和建模。由于语音信号具有多样性和复杂性,如不同的语言、方言、口音、性别、年龄、情感等。这给语音的参数特征提取带来了复杂性和不准确性。
发明内容
本发明的目的是针对现有技术的不足,而提供一种基于正弦谐波模型的低速率语音编解码方法。这种方法能够在编解速率低的同时保持较好的语音质量,实现了低复杂度和低时延,并且具有一定的鲁棒性。
实现本发明目的的技术方案是:
一种基于正弦谐波模型的低速率语音编解码方法,包括如下步骤:
1)首先对语音信号进行频域转换。对语音块信号做短时傅里叶变换(STFT):
其中,k为频率点位置,l为帧索引位置。w(n)为窗函数,N为帧长,M为帧移。
2)提取模型参数。
2-1)提取语音帧的基音(基频)。基音参数提取分为三阶段。初步基音提取阶段,从输入语音的帧中确定一组候选值。首先,对时域的语音帧进行平方运算得到平方的时域信号s2(n)
之后,采用陷波滤波器去除s2(n)中的直流分量。再进行低通滤波,最后对信号进行抽取因子为5的抽取。经抽取后的信号进行加窗,并且通过用448个零对经抽取信号进行零填充来计算512点DFT的频谱Z(k)。再得到平方信号的功率谱U(k)=|Z(k)|2,该局部最大值作为基音候选值ωv
后处理阶段,通过评估每个候选基频ωv处的成本函数E(ωv)来做出决策,选择最小值的E(ωv)的候选作为当前帧的基音估计。
其中,Emv)为原始语音和使用谐波模型合成的语音之间误差。
基音估计细化阶段,对ω0进一步细化,增加估计的精度。该阶段提出一种低复杂度基音细化步骤。定义一个成本函数:
其中,Sw为该帧频谱。
该函数简单地对该帧的加窗语音信号的功率谱进行采样,Sw的自变量四舍五入到最接近的整数。此步骤中,函数分两步采样。首先,在1个采样步骤中,在基音周期的正或负5个采样点的范围内对函数进行采样。然后,以0.25个采样步长,在基音周期的正负一个采样的范围内对函数进行采样。取最小的采样值即为最优估计的基音
2-2)清、浊音判决。本方法使用基于信噪比(SNR)对清/浊音进行判定,并在判定后检查优化。用谐波模型估计的模型参数对此帧拟合,其拟合的结果映射在SNR上,SNR在频域的表达式为:
通过与固定阈值进行比较,固定阈值取6dB,即10lgSNR>6时,频带中的能量被确定为浊音,反之为清音。本方法应用低频与高频能量的比率,用于检验之前确定的清、浊音判决是否正确,若错误则更正。
2-3)线性预测系数提取。谐波幅度的直接量化需要大量的比特。这里使用10阶线性预测,时域分析产生一组p个LPC系数{ak}和一个LPC增益函数G,用于在合成端生成谐波幅度,这些参数通过以下求得:
其中,s(n)为时域语音信号。
通过Levinson-Durbin算法求解出{ak}。
预测信号的能量E,可由线性预测系数ak和自相关函数R(k):
之后将线性预测系数ak转换成线谱对(LSP)形式。LSP通过求解p+1阶对称和反对称多项式的共轭复根得到。
3)对参数进行量化编码。对清浊音状态、基音ω0、各个谐波的能量E使用均匀标量量化。使用K-means矢量量化器设计算法训练出所需矢量量化器,之后对LSP参数进行量化编码。它一次量化多个值,只需一个索引即可引用这些值,并且可以考虑输入数据中的相关性。本发明还为低阶LSP分配了更多位,因为解码的语音质量对低阶LSP误差更敏感。对更高的LSP进行更粗的量化。
4)合成语音。合成语音之前需要对之前量化编码的参数进行解码。
4-1)确定用于合成语音信号的正弦幅度{Bm}。解码后的LSP参数,应用带宽扩展算法在这些线谱对上。之后对以上参数进行插值。插值后的线谱对LSPs转换为线性预测系数。对线性预测系数作傅里叶变换即可转换为频谱幅度采样然后从每个频带的平均能量E确定{Bm}。具体步骤是:首先,根据频谱/>求得功率谱/>
合成该信号的正弦曲线的第m谐波的能量之和可以表示为Em,则可求得Bm
4-2)运用基于清/浊音状态和基于规则的方法来合成相位。时域中的脉冲串等效于频域中的谐波,每个谐波的相位可以被建模为由脉冲激励的LPC滤波器的相位。因为清音的相位倾向于随机相位,以下合成相位是在该帧为浊音状态下进行。由于本方法不传输这个模型的脉冲位置,需要对其进行合成。激发脉冲以ω0的速率出现,则谐波的相位会在一个合成帧(80样本)上前进80。那么令生成第一次谐波的激励相位为:
arg(Ex[1])=ω0*80 (12),
其中,Ex[1]是第一个复数激励(频域)样本,arg(z)为求复数样本z的相位。
然后,将第m个激励谐波的相位与第一次谐波的相位关联为:
arg(Ex[m])=m*arg(Ex[1]) 1<m≤L (13),
将得到的Ex[m]通过LPC合成滤波器即可确定最终谐波相位。
为了提高在有背景噪声情况下造成错误,合成语音之前对相位参数修正。当平均能量e,低于阈值且该帧是清音,更新背景噪音估计
其中,β为背景噪音,且初始值为零。
当该帧是浊音且谐波幅度Am小于阈值τ时,扰乱相位,使任何谐波小于背景估计值。
4-3)通过使用当前帧的正弦模型参数(即以上生成的模型参数)来构建频域合成信号
其中,该信号表示合成语音信号的DFT,并且由间隔ω0的脉冲组成,ω0由复谐波振幅Am加权。
4-4)使用OM-LSA后置滤波器进一步降噪。降噪后的合成语音频谱估计值通过一个谱增益滤波器G(k,l)得到:
其中,为降噪后的信号,/>为频域合成的语音信号,G(k,l)为谱增益滤波器。谱增益计算函数公式如下:
其中,ξ(k,l)为先验信噪比,p(k,l)是语音存在概率,q(k,l)是语音不存在的概率。GH1为语音存在时的条件增益,Gmin为语音不存在时滤波器的增益下限。
4-5)重叠相加和逆傅里叶变换。为了重建连续的合成语音波形,需要平滑地连接相邻降噪后的合成语音频谱。这是通过对每个帧进行窗口化,然后使用重叠相加算法对相邻帧进行移位和叠加来执行的。三角形窗口用于该算法,并且由以下定义:
最后进行逆傅里叶变换,恢复成时域信号。
本发明的优点和有益效果:
1.本发明通过改进基音提取算法,在参数估计上特别是基音估计和清浊音判决估计具有较强的鲁棒性。
2.本发明将随时间变化的参数数量减少为固定比特率所需的固定数量的参数。
3.在不同说话人和背景噪音条件下,都能正确地编码,同时保持较好的语音质量。
附图说明
图1为实施例所述语音编解码方法流程示意图;
图2为实施例中提出的改进基音估计算法流程示意图;
图3为语音压缩前频谱和用本发明方法压缩后频谱对比图,可以看到压缩后频谱能对原频谱很好地还原,说明本发明方法压缩后保证了原语音的可懂度和语音质量。
具体实施方式
下面结合附图和实施例对本发明的内容作进一步说明,但不是对本发明的限定。
参照图1,一种基于正弦谐波模型的低速率语音编解码方法,包括如下步骤:
1)首先对语音信号进行频域转换。首先由麦克风采集语音信号,采样率设置为8kHz。为了能实时编解码,把一个个由麦克风采集语音块信号进行处理,语音块长度为320个采样点(40ms)。以下模型参数提取与估计均在该语音块上进行。
然后对语音块信号进行Ndft=512点的STFT,得到频域语音信号
其中,k为频率点的位置,l为帧索引的位置。上述的w(n)取汉明窗,离散傅里叶变换的帧长N取80,帧移M取80。
2)模型参数提取与估计。根据语音信号处理相关知识,可以把浊音语音信号构建为正弦谐波模型:
其中,{Bm},{θm}表示正弦曲线的幅度、相位。基频ω0=2πF0/Fs,谐波数量F0,Fs分别表示基音频率和采样频率。
该模型对于清音则会出现问题,但通过适当选择谐波相位,也可以使用正弦谐波模型较合适地表示清音。
为了使用正弦谐波模型合成语音,解码器端需要生成具有估计幅度{Bm}、基频ω0和相位{θm}的L个正弦波。为了降低比特率,本方法的做法是丢弃每个正弦波的相位,然后使用基于零相位模型规则的方法在解码器上重新生成。那么,需要在编码端提取的参数是可以生成幅度{Bm}信息的线性预测系数ak、预测信号能量,基音ω0和清/浊状态位和。
首先对基音ω0进行提取。基音ω0是语音分析中最困难的问题之一,也是本方法中最重要的参数。本方法提出一种改进的基音估计算法。该算法分为三步,初步基音提取阶段、后处理阶段、基音估计细化阶段。
在初步基音提取阶段,使用基于平方律非线性特性的过程,从输入语音的帧中确定一组候选值。平方律非线性效应的频谱可以通过以下等式来获得:
其中X(k)是x(n)的N点DFT,k为频率点的位置,l为帧索引的位置。
式(4)表示两个时域信号的乘积对应于两个信号的离散傅立叶变换的(圆形)卷积。因此,时域信号本身的乘法(平方)会使信号在频域中的DFT的自相关。Z(k)的的幅度将在对应于基频F0和F0的倍数处具有峰值,因此用作基音检测器是简单有效的。通过峰值拾取离散傅立叶变换(DFT),可以确定一组候选基音估计。
具体估计步骤是:首先,对时域的语音块进行平方运算得到平方的时域信号s2(n):
当m-l=1时,方括号内的第二项将在基频处引入大量分量。当m=l时,还将存在一个大的直流(DC)项。这里采用陷波滤波器去除直流分量。这防止了大幅度直流项在基频处干扰稍微较小的幅度项。特别是对于男性语音信号,因为他们可能有接近直流电流的低频分量。直流陷波滤波器应用于时域平方信号,传递函数为:
之后,对信号进行低通滤波,因为高于400Hz的平方信号中的所有能量都是多余的,并且会降低频域峰值拾取的分辨率。这里使用的阶数N为48、截止频率为600Hz的FIR低通滤波器:
然后对信号进行抽取因子为5的抽取。经抽取后的信号进行加窗,并且通过用448个零对经抽取信号进行零填充来计算512点DFT,得到Z(k)。再得到功率谱U(k)=|Z(k)|2
通常,平方信号的DFT功率谱U(k)全局最大值对应的就是基音频率F0。然而,偶尔时候全局最大值对应于伪造峰值或F0的倍数。因此,简单地选择U(k)的全局最大值作为该帧的基本估计是不合适的。所以将U(k)的局部极大值作为候选,传递到后处理阶段以进行进一步分析。
后处理阶段,后处理算法负责评估由基音提取器确定的每个候选局部最大值,选择最优的一个作为该帧的基音估计。通过评估每个候选基频ωv处的成本函数E(ωv)来做出决策。成本函数E(ωv)通过频域中的合成进行分析。对于每个可能的基频,估计谐波模型参数,并将其用于合成频域语音的全浊音估计然后将该估计与MSE(最小均方误差)意义上的原始频域语音进行比较,以确定最佳基音估计。成本函数E(ωv)定义为:
其中是第m个频带的频域合成语音。/>为原始频域语音。/>为每个谐波幅度估计。G(k)为频率加权函数,目的是降低计算复杂度,排除1000Hz以上的所有谐波。式(13)中的am,bm为:
之后在整个基音范围内对E(ωv)进行采样,选择最小值的E(ωv)的候选作为当前帧的基音估计ω0。E(ωv)在每个候选频率的正/负10Hz之间以2.5Hz的步长进行采样。
最后,基音估计细化阶段,对ω0进一步细化,增加估计的精度。一般做法是增加基音跟踪算法:使用动态编程方法评估过去和未来几个帧的基本基音估计结果。但这无疑很大地增加了计算量和延时,所以本发明对此进行改进,减少计算量和提高估计精度。该阶段在计算上非常简单。定义一个成本函数:
其中,Sw为该帧频谱。
该函数对该帧的加窗语音信号的功率谱进行采样,Sw的自变量四舍五入到最接近的整数该它明显偏向于较长的基音周期,因为它收敛于频谱中的能量。而且,在较小的频率范围内对函数进行采样,偏差并不显著。最重要的是,函数在框架的基本面附近确实表现出局部最大值。然后对函数进行采样。首先,在1个采样步骤中,在基音周期的正或负5个采样点的范围内对函数进行采样。然后,以0.25个采样步长,在基音周期的正负一个采样的范围内对函数进行采样。取最小的采样值即为该帧的最优估计基音
对于全浊音语音,所有浊音估计的模型参数将与原始语音紧密匹配。完全清音的帧更倾向于随机白噪声。所以,必须对语音信号进行清/浊音状态判定,使得在合成端正确合成语音。本方法使用基于信噪比(SNR)对清/浊音判定,并在后进行检查优化。
具体步骤为:用谐波模型估计的模型参数对此帧拟合,其拟合的结果映射在SNR上,SNR在频域的表达式为:
其中式中的由式(8)给出,且式(8)所需式G(k)取G(k)=1。
如前面所述,如果该分析帧的语音是全浊音的频谱的非周期(无声)区域不包含基音的谐波,在这些区域中,谐波模型将崩溃。所以,对于全浊音语音,因为所有浊音估计的模型参数将与原始语音紧密匹配,信噪比将很大。完全无声的帧将导致很低的SNR。
通过与固定阈值进行比较,这里阈值取6dB,即10lgSNR>6时,频带中的能量被确定为浊音,反之为清音。
之后,本方法应用低频与高频能量的比率,来对前面的判决进行检查与更正:
其中,为该帧每个谐波幅度估计,由式(12)给出。llow=L×2000/(Fs/2),lhigh=L×2000/(Fs/2)。L为谐波个数。
因为浊音语音往往由低频能量主导,而清音语音往往由高频能量。这一步,用于检验之前的二元清、浊音判决是否正确。当10lgEratio>10.0且该帧先前判定为清音时,重新判定为浊音;当10lgEratio<-10.0且该帧为浊音时,判定为浊音。
谐波幅度{Bm}的直接量化需要大量的比特,不符合本例的低速率语音编解码初衷。这里使用中阶线性预测(LPC)对频谱幅度参数进行有效建模,这些模型参数发送到合成端后可以恢复为预测的频谱,根据频谱生成谐波幅度{Bm}。
这里使用的方法是使用时域分析来获得LPC模型,时域分析产生一组p个LPC系数{ak}和一个LPC增益函数G,还有预测信号能量E。用于确定这些参数步骤如下:
激励源X(z)驱动线性预测合成滤波器H(z),以生成合成语音(时域语音S的z变换),使得:
其中,{ak}是一组p个线性预测系数,其表征滤波器的频率响应,并且G是标量增益因子。全极点滤波器中的极点数量等于LPC阶数p。
需要计算出最合适的{ak}和G,使得尽可能接近原始语音信号S(z)。这可以通过以下方式实现。在理想情况下,希望S(z)与/>相同,因此用S(z)代替/>并重新编排式(18)得到:
进行z逆变换:
如果H(z)是S(z)的良好近似,则信号x(n)中的能量将最小化,其中总能量由下式给出:
因此,{ak}可以通过将式(22)等于0,并找到关于i=1,2,…,p的ak的偏导数来找到。从这个过程中,得到了p个未知数的p个方程:
将其用自相关值R(k)表示:
其中,
则ak可由Levinson-Durbin算法求解。
那么进一步,预测信号的能量E:
由于直接对线性预测系数ak进行编码,线性预测合成滤波器H(z)的稳定性得不到保证。因此,在导出LPC模型之后,需要将线性预测系数ak转换成与线性预测等价的线谱对(LSP)形式,以进行有效的量化和传输。LSP可通过求解p+1阶对称和反对称多项式的共轭复根得到。其过程如下:
设线性预测逆滤波器则p+1阶对称和反对称多项式为:
P(z)和Q(z)分别为对称和反对称的实系数多项式,它们都有共轭复根。
其中,cosωk和cosθk(k=1,2,...,p/2)是LSP系数在余弦域的表示。
LSP系数就是求解使得式(27)等于零时的cosωk和cosθk的值。这里可以用切比雪夫(Chebyshev)多项式求解。
3)参数量化编码。本例使用矢量量化(VQ)对参数进行量化编码。VQ非常高效,因为它们可以同时量化多个值,并且可以考虑输入数据中的相关性。VQ量化噪声会很比较大,因为表条目可能与输入向量中的所有值不完全匹配。为了充分应用矢量量化的高效性和尽可能的减少它带来的量化噪声,本例使用K-means矢量量化器设计算法用于LSP的简单拆分VQ。K-means算法流程如下:
①初始化:选择合适的方法设置K个初始的码本中心zi,1≤i≤K;
②最近邻分类:将训练数据矢量Xt按照最近邻原则分配到最近的码本zi中,此步骤中可以采用欧式距离、马氏距离等。
③码本更新:将所有的训练数据分配到离其最近的码本后,生成新的质心,即新的码本。
④重复②、③直到相邻的迭代误差满足阈值要求。
我们为低阶LSP分配了更多位,因为解码的语音质量对低阶LSP误差更敏感。由于低频的能量较高,LSP往往靠得更近,这使得它们对量化更敏感。对更高的LSP进行更粗的量化。在本例所提出的方法中LSP代表所有频谱信息,可以做到37位/帧编码。最后,对于基音频率ω0和预测信号能量E参数则使用均匀标量量化。
4)合成端使用正弦谐波模型参数合成语音。合成语音之前需要对之前编码的参数进行解码。这些解码后的参数中LSPs是最重要的,由于紧密间隔的LSP表示语音频谱中的峰值。耳朵对这些峰值非常敏感,因此必须特别小心间隔很近的LSP。这里本例应用带宽扩展法在这些线谱对上,由于LSP量化误差<12.5Hz(25Hz步长)是听不见的,所以将其用作最小LSP分离,防止之前量化后任何两个LSP靠得太近。
之后将线谱对LSP系数qk(k=1,2,...p-1)转换回线性预测系数ak,k=1,2,...p,其过程如下:首先用qk(k=1,2,...p-1)在以下的递推关系计算出p′(k)
其中的q2k-1=cosω2k-1
把上面递推关系中的q2k-1替换为q2k就可以得到q′(k)。
得到q′(k)和p′(k),就可以得到P′(z)和Q′(z),P′(z)乘以(1+z-1)得到P(z),Q′(z)乘以(1+z-1)得到Q(z),即
最后得到预测系数为
线性预测系数构造一个全极点合成滤波器。这个滤波器的传递函数为:
对滤波器的传递函数进行傅里叶变换即可转换为频谱幅度采样
为了重构语音信号,需要为正弦曲线确定一个合适的振幅{Bm}。从每个频带的平均能量E确定{Bm}。具体步骤是:首先,根据频谱求得功率谱/>
其中,E为LPC预测信号能量。
那么合成该信号的正弦曲线的第m谐波的能量可以表示为Em
/>
则Bm可得:
合成相位。下面基于清/浊音状态和基于规则的方法合成相位。由于时域中的脉冲串等效于频域中的谐波,那么每个谐波的相位可以被建模为由脉冲激励的LPC滤波器的相位。因为清音的相位倾向于随机相位,以下合成相位是在该帧为浊音状态下进行。
由于本方法不传输这个模型的脉冲位置,需要对其进行合成。激发脉冲以ω0的速率出现,则谐波的相位会在一个合成帧(80样本)上前进80。例如,如果ω0为π/20,那么在10ms帧上,一次谐波的相位将前进(π/20)*80=4*π,即两个完整的周期。下面我们生成第一次谐波的激励相位:
arg(Ex[1])=ω0*80 (34),
其中,Ex[1]是第一个复数激励(频域)样本,arg(z)为求复数z的相位。
然后,将第m个激励谐波的相位与第一次谐波的相位关联为:
arg(Ex[m])=m*arg(Ex[1]) 1<m≤L (35),
由以上可以得到Ex[m],将Ex[m]通过LPC合成滤波器就可以确定最终谐波相位。
之后,进行相位参数修正,计算确定整个频谱的平均能量e:
用平均能量e与背景噪音阈值(阈值设置为40)对比,若低于阈值且该帧是清音,则更新背景噪音估计
其中,β为背景噪音,且初始值为零。
当该帧是浊音且谐波幅度Am小于阈值τ时,则扰乱相位,使任何谐波小于背景估计值。扰乱相位后的相位由下式表示:
θm=(2π/32767)*ξ (38),
其中,ξ为随机生成的0到2的随机数。
然后,通过使用当前帧的正弦模型参数(即以上生成的模型参数)来构建频域合成信号使用OM-LSA后置滤波器进一步降噪。然后用重叠相加算法对来自相邻帧合成信号进行插值。最后使用逆FFT(iFFT)将该频域信息转换到时域。为了产生连续的时域波形,使用加权重叠相加算法对来自相邻帧的IDFT进行平滑插值。合成步骤具体如下:
使用以上的正弦模型参数来构建合成语音
其中,该信号表示频域合成的语音信号,并且由间隔ω0的脉冲组成,ω0由复谐波振幅Am加权。
合成后的语音通过OMLSA后置滤波进行降噪处理。降噪后的合成语音频谱估计值由/>通过一个谱增益滤波器G(k,l)得到:
谱增益计算函数公式如下:
其中,ξ(k,l)为先验信噪比,γ(k,l)为后验信噪比,p(k,l)是语音存在概率,q(k,l)是语音不存在的概率。β是用来控制降噪和语音失真之间平衡的权重因子,β本例取0.92。GH1为语音存在时的条件增益,Gmin为语音不存在时滤波器的增益下限,λd(k,l)为噪声功率谱估计值,为时变平滑参数,αd本例取0.85。
为了重建连续的合成语音波形,需要平滑地连接相邻降噪后的合成语音频谱。这是通过对每个帧进行窗口化,然后使用重叠相加算法对相邻帧进行移位和叠加来执行的。三角形窗口用于该算法,并且由以下定义:
最后进行逆傅里叶变换,恢复成时域信号。

Claims (1)

1.一种基于正弦谐波模型的低速率语音编解码方法,其特征在于,包括如下步骤:
1)首先对语音信号进行频域转换。对语音块信号做短时傅里叶变换(STFT):
其中,k为频率点的位置,l为帧索引的位置。w(n)为窗函数,N为帧长,M为帧移。
2)提取模型参数。
2-1)提取语音帧的基音(基频)。基音参数提取分为三阶段。初步基音提取阶段,从输入语音的帧中确定一组候选值。首先,对时域的语音帧进行平方运算得到平方的时域信号s2(n)
之后,采用陷波滤波器去除s2(n)中的直流分量。再进行低通滤波,最后对信号进行抽取因子为5的抽取。经抽取后的信号进行加窗,并且通过用448个零对经抽取信号进行零填充来计算512点DFT的频谱Z(k)。再得到平方信号的功率谱U(k)=|Z(k)|2,该局部最大值作为基音候选值ωv
后处理阶段,通过评估每个候选基频ωv处的成本函数E(ωv)来做出决策,选择最小值的E(ωv)的候选作为当前帧的基音估计。
其中,Emv)为原始语音和使用谐波模型合成的语音之间误差。
基音估计细化阶段,对ω0进一步细化,增加估计的精度。该阶段提出一种低复杂度基音细化步骤。定义一个成本函数:
其中,Sw为该帧频谱。
该函数简单地对该帧的加窗语音信号的功率谱进行采样,Sw的自变量四舍五入到最接近的整数。此步骤中,函数分两步采样。首先,在1个采样步骤中,在基音周期的正或负5个采样点的范围内对函数进行采样。然后,以0.25个采样步长,在基音周期的正负一个采样的范围内对函数进行采样。取最小的采样值即为最优估计的基音
2-2)清、浊音判决。本方法使用基于信噪比(SNR)对清/浊音进行判定,并在判定后检查优化。用谐波模型估计的模型参数对此帧拟合,其拟合的结果映射在SNR上,SNR在频域的表达式为:
通过与固定阈值进行比较,固定阈值取6dB,即10lgSNR>6时,频带中的能量被确定为浊音,反之为清音。本方法应用低频与高频能量的比率,用于检验之前确定的清、浊音判决是否正确,若错误则更正。
2-3)线性预测系数提取。谐波幅度的直接量化需要大量的比特。本方法使用10阶线性预测,时域分析产生一组p个LPC系数{ak}和一个LPC增益函数G,用于在合成端生成谐波幅度,这些参数通过以下求得:
其中,s(n)为时域语音信号。
通过Levinson-Durbin算法求解出{ak}。
预测信号的能量E,可由线性预测系数ak和自相关函数R(k):
之后将线性预测系数ak转换成线谱对(LSP)形式。LSP通过求解p+1阶对称和反对称多项式的共轭复根得到。
3)对参数进行量化编码。对清浊音状态、基音ω0、预测信号能量E使用均匀标量量化。使用K-means矢量量化器设计算法训练出所需矢量量化器,之后对LSP参数进行量化编码。它一次量化多个值,只需一个索引即可引用这些值,并且可以考虑输入数据中的相关性。本方法还为低阶LSP分配了更多位,因为解码的语音质量对低阶LSP误差更敏感。对更高的LSP进行更粗的量化。
4)合成语音。合成语音之前需要对之前量化编码的参数进行解码。
4-1)确定用于合成语音信号的正弦幅度{Bm}。解码后的LSP参数,应用带宽扩展算法在这些线谱对上。之后对以上参数进行插值。插值后的线谱对LSPs转换为线性预测系数。对线性预测系数作傅里叶变换即可转换为频谱幅度采样然后我们从每个频带的平均能量E确定{Bm}。具体步骤是:首先,我们根据频谱/>求得功率谱/>
那么合成该信号的正弦曲线的第m谐波的能量可以表示为Em
则Bm可得:
4-2)运用基于清/浊音状态和基于规则的方法来合成相位。时域中的脉冲串等效于频域中的谐波,每个谐波的相位可以被建模为由脉冲激励的LPC滤波器的相位。因为清音的相位倾向于随机相位,以下合成相位是在该帧为浊音状态下进行。由于本方法不传输这个模型的脉冲位置,需要对其进行合成。激发脉冲以ω0的速率出现,则谐波的相位会在一个合成帧(80样本)上前进80。那么令生成第一次谐波的激励相位为:
arg(Ex[1])=ω0*80 (12)
其中,Ex[1]是第一个复数激励(频域)样本,arg(z)为求复数样本z的相位。
然后,将第m个激励谐波的相位与第一次谐波的相位关联为:
arg(Ex[m])=m*arg(Ex[1])1<m≤L (13)
将得到的Ex[m]通过LPC合成滤波器确定最终谐波相位。
为了提高在有背景噪声情况下造成错误,合成语音之前对相位参数修正。当平均能量e,低于阈值且该帧是清音,我们更新背景噪音估计
其中,β为背景噪音,且初始值为零。
当该帧是浊音且谐波幅度Am小于阈值τ时,扰乱相位,使任何谐波小于背景估计值。
4-3)通过使用当前帧的正弦谐波模型参数(即以上生成的模型参数)来构建频域合成信号
其中,该信号表示合成语音信号的DFT,并且由间隔ω0的脉冲组成,ω0由复谐波振幅Am加权。
4-4)使用OM-LSA后置滤波器进一步降噪。降噪后的合成语音频谱估计值由/>通过一个谱增益滤波器G(k,l)得到:
其中,为降噪后的信号,/>为频域合成的语音信号,G(k,l)为谱增益滤波器。谱增益计算函数公式如下:
其中,ξ(k,l)为先验信噪比,p(k,l)是语音存在概率,q(k,l)是语音不存在的概率。GH1为语音存在时的条件增益,Gmin为语音不存在时滤波器的增益下限。
4-5)重叠相加和逆傅里叶变换。为了重建连续的合成语音波形,需要平滑地连接相邻降噪后的合成语音频谱。这是通过对每个帧进行窗口化,然后使用重叠相加算法对相邻帧进行移位和叠加来执行。三角形窗口用于该算法,并且由以下定义:
最后进行逆傅里叶变换,恢复成时域信号。
CN202410397584.4A 2024-04-03 2024-04-03 一种基于正弦谐波模型的低速率语音编解码方法 Pending CN118230741A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410397584.4A CN118230741A (zh) 2024-04-03 2024-04-03 一种基于正弦谐波模型的低速率语音编解码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410397584.4A CN118230741A (zh) 2024-04-03 2024-04-03 一种基于正弦谐波模型的低速率语音编解码方法

Publications (1)

Publication Number Publication Date
CN118230741A true CN118230741A (zh) 2024-06-21

Family

ID=91500530

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410397584.4A Pending CN118230741A (zh) 2024-04-03 2024-04-03 一种基于正弦谐波模型的低速率语音编解码方法

Country Status (1)

Country Link
CN (1) CN118230741A (zh)

Similar Documents

Publication Publication Date Title
US10381020B2 (en) Speech model-based neural network-assisted signal enhancement
AU656787B2 (en) Auditory model for parametrization of speech
Shrawankar et al. Techniques for feature extraction in speech recognition system: A comparative study
Srinivasan et al. Codebook-based Bayesian speech enhancement for nonstationary environments
JP2002516420A (ja) 音声コーダ
Milner et al. Speech reconstruction from mel-frequency cepstral coefficients using a source-filter model
JPH07271394A (ja) 確実な電話音声認識のための信号バイアスの除去
CN103503061A (zh) 在一频谱域中用以处理已解码音频信号的装置及方法
Pannala et al. Robust Estimation of Fundamental Frequency Using Single Frequency Filtering Approach.
Yoneyama et al. Unified source-filter GAN: Unified source-filter network based on factorization of quasi-periodic parallel WaveGAN
WO2003083833A1 (en) Method for modeling speech harmonic magnitudes
Saeki et al. SelfRemaster: Self-supervised speech restoration with analysis-by-synthesis approach using channel modeling
Srivastava Fundamentals of linear prediction
Chong et al. A new waveform interpolation coding scheme based on pitch synchronous wavelet transform decomposition
Honda Speech coding using waveform matching based on LPC residual phase equalization
CN112270934B (zh) 一种nvoc低速窄带声码器的语音数据处理方法
US5937374A (en) System and method for improved pitch estimation which performs first formant energy removal for a frame using coefficients from a prior frame
CN118230741A (zh) 一种基于正弦谐波模型的低速率语音编解码方法
Giacobello et al. Speech coding based on sparse linear prediction
US6438517B1 (en) Multi-stage pitch and mixed voicing estimation for harmonic speech coders
Demuynck et al. Synthesizing speech from speech recognition parameters
Kawahara et al. Beyond bandlimited sampling of speech spectral envelope imposed by the harmonic structure of voiced sounds.
Park et al. Unsupervised noise reduction scheme for voice-based information retrieval in mobile environments
Zavarehei et al. Interpolation of lost speech segments using LP-HNM model with codebook post-processing
US20220277754A1 (en) Multi-lag format for audio coding

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination