语音编码器的制作方法

文档序号:2821941阅读:408来源:国知局
专利名称:语音编码器的制作方法
技术领域
本发明涉及语音编码器。
本发明探讨电信系统中特定的,而非全面的应用。
本发明的一方面提供了一种语音编码器,包括一个编码器用来将分割成帧的输入语音信号进行编码,其中每一帧由预定数目的数字抽样构成。
编码器包括用来分析抽样并为每帧生成至少一组线性预测参数的线性预测编码装置LPC;用来为每帧决定至少一个基音值的基音判决装置,基音判决装置包括利用频域技术(频域分析)来分析抽样的第一估计装置,利用时域技术(时域分析)来分析抽样的第二估计装置以及使用所述时域和频域分析结果来产生基音值的基音估计装置;用来在每帧中定义测量浊音和清音信号的发音装置;用来为每帧生成幅度信息的幅度决定装置,和用来将该组线性预测系数,所述的基音值,所述的浊音和清音信号的量度和所述的幅度信息量化为每帧的一组量化指标的量化装置,在其中所述的第一估计装置为一组候选基音值中的每一个生成以个第一基音量度,第二估计装置为该组候选基音值中的每一个生成以个第二基音量度,所述的估计装置组合了第一量度中的每一值和其对应的第二量度,并参考合并的结果选择一个候选基音值。
本发明的另一方面提供了一种语音编码器,包括一个编码器用来将输入语音信号进行编码,编码器包括用来抽样输入语音信号生成数字抽样的装置和将抽样分割成帧的装置,其中每一帧由预定数目的数字抽样构成。分析抽样并为每帧生成至少一组线性预测参数的线性预测编码装置LPC;用来为每帧决定至少一个基音值的基音判决装置,用来在每帧中定义测量浊音和清音信号的语音装置;用来为每帧生成幅度信息的幅度决定装置,和用来将该组线性预测系数,所述的基音值,所述的浊音和清音信号的量度和所述的幅度信息量化为每帧的一组量化指标的量化装置,在其中所述的基音决定装置包括为基音值生成以个估计值的额基音估计装置和从估计值中得到基音值的基音精细化装置,基音精细化装置定义了一组候选基音值,包括分布在该估计基音值周围的分数值,前者由基音估计装置得到,帧的频谱的确认峰,与每个所述的候选基音值相关的该峰,其在帧的频谱上具有不同的谐频(kω0),其中ω0=2π/P,P是该候选基音值,k是一个整数,并且选作该基音值,候选基音值得到最大相关性。
本发明的另一方面提供了一种语音编码器,包括一个编码器用来将输入语音信号进行编码,编码器包括用来抽样输入语音信号生成数字抽样的装置和将抽样分割成帧的装置,其中每一帧由预定数目的数字抽样构成。分析抽样并为每帧生成至少一组线性预测参数的线性预测编码(LPC)装置;用来为每帧决定至少一个基音值的基音判决装置,用来在每帧中确定一个发音截止频率的发音装置,从而无需估计单独谐波频带的浊音和清音状态,就可以将帧中的频谱分离乘以个浊音部分和一个清音部分,用来为每帧生成幅度信息的幅度决定装置,和用来将该组线性预测系数,所述的基音值,所述的浊音和清音信号的量度和所述的幅度信息量化为每帧的一组量化指标的量化装置,。
本发明的另一深入方面提供了一种语音编码器,包括一个编码器用来将输入语音信号进行编码,编码器包括用来抽样输入语音信号生成数字抽样的装置和将抽样分割成帧的装置,其中每一帧由预定数目的数字抽样构成。分析抽样并为每帧生成至少一组线性预测参数的线性预测编码(LPC)装置;用来为每帧决定至少一个基音值的基音判决装置,用来在每帧中定义测量浊音和清音信号的语音装置;用来为每帧生成幅度信息的幅度决定装置,和用来将该组线性预测系数,所述的基音值,所述的浊音和清音信号的量度和所述的幅度信息量化为每帧的一组量化指标的量化装置,在其中的幅度决定装置为每帧产生一组频谱幅度,后者以与基音值成谐波相关的频率为中心,其中基音值由基音决定装置决定,用来量化标准化后的频谱幅度进而产生幅度量化指标的第一部分的量化装置。
本发明的再深入方面提供了一种语音编码器,包括一个编码器用来将输入语音信号进行编码,编码器包括用来抽样输入语音信号生成数字抽样的装置和将抽样分割成帧的装置,其中每一帧由预定数目的数字抽样构成。分析抽样并为每帧的起始部分和结尾部分生成以组线性频谱频率(LSF)参数的线性预测编码装置;用来为每帧决定至少一个基音值的基音判决装置,用来在每帧中定义测量浊音和清音信号的语音装置;用来为每帧生成幅度信息的幅度决定装置,和用来将该组LSF系数,所述的基音值,所述的浊音和清音信号的量度和所述的的幅度信息量化为每帧生成以组量化指标的量化装置,在其中所述的量化装置为当前帧的起始部分定义了一组量化LSF参数(LSF’2),所使用的表达式是LSF′2=αLSF′1+(1-α)LSF′3,其中LSF’3和LSF’1分别是当前帧的结尾部分和当前帧上一帧的的量化LSF参数,α是第一矢量量化码本中的一个矢量,为当前帧的起始和结尾部分分别定义了一组量化LSF参数LSF’2,LSF’3,作为第二矢量量化码本的各自LSF量化矢量Q2和Q3与各自的预测值P2和P3的组合,λ其中P2=λQ1和P3=λQ3,λ是一个常量,Q1是当前帧上一帧结尾部分的LSF量化矢量,并从第一和第二矢量量化码本中选择矢量Q3和矢量α来减小在LSF参数中的误差,该LSF参数由线性预测编码装置(LSF2,LSF3)为当前帧和相关量化的LSF参数(LSF2,LSF3)来产生。
本发明的再深入方面提供了一种语音编码器,用来解码代表LSF参数的一组量化指标,基音值,浊音和清音信号的量度和幅度信息,包括处理器装置用来从索引中产生激励信号,该索引代表基音值,浊音和清音信号的量度以及幅度信息,一个LPC合成滤波器用来滤除对应LSF参数的激励信号,用来比较LPC合成滤波器输出的基音周期能量和对应激励信号中的基音周期能量的装置,用来改正激励信号进而减小比较中的基音周期能量间差异的装置,和另一个LPC合成滤波器用来过滤改正后的激励信号。
根据本发明的实施例在此描述,除实施例之外,请参考附图。


图1是一般化的语音编码器描述。
图2为依据发明描述语音编码器的编码部分的框图。
图3描述了一个模拟输入语音信号的波形。
图4为描述了在图2编码器中使用的一种基音检测算法的框图。
图5描述了发音截止频率的判决装置。
图6A显示了一帧的LPC频谱。
图6B显示了有图6A中LPC频谱中生成的频谱幅度。
图6C显示了由图6B中频谱幅度生成的量化矢量。
图7显示了语音编码器的解码器。
图8显示了LSF参数中的一个与能量有关的内插因子。
图9描述了一个知觉增强的LPC频谱用来测量非量化的频谱幅度。
建议描述的编码器和解码器以及附图按照算法来实现,软件指令在一个合适的指定信号处理器中执行。附图中的框图用来简化处理器产生的每个处理步骤功能的描述,而不是用来代表语音编码器中分离的硬件模块。当然,编码器和解码器可以通过使用硬件来实现。
图1是一个一般化的语音编码器的描述,由编码器1和解码器2构成。在使用中,一个模拟输入语音信号Si(T)在编码器1被接收并抽样,通常抽样频率是8kHZ。抽样后的语音信号被分割成帧,每帧被编码并产生一组量化指标代表输入语音信号的波形,但是包含比较少的位。连续帧的量化指标经通信信道3发送到解码器2,解码输出语音信号器2处理接收到的量化指标来合成对应于原始输入语音信号的模拟输出语音信号S0(T)。在使用语音编码器的电信连接里,语音信道需要一个编码器在语音信号输入端,一个解码器在接收端。因此,与电信连接的一端相连的语音编码器需要编码器和解码器,在双工的情况下,它们可以连接在不同的信道上,在单工的情况下,它们在同一信道上。
图2描述了根据本发明的一个语音编码器实施例的编码器,下文中称之为频带分割LPC语音编码器(SB-LPC)。此语音编码器使用分析和合成机制。
描述的语音编码器设计使用2.4kb/s速率;但是,较高或较低速率也是可行的。(例如,在1.2到6.8kb/s的范围),这取决于量化电平和量化指标更新的速率。
开始,模拟输入语音信号经低通滤波除去超出人类语音范围的频率部分。经过低通滤波的信号以8kHz抽样频率抽样。得到的数字信号di(t)经高通滤波器10进行预处理,高通滤波器的传输函数H(z)是H1(z)=1-z-11-0.9183z-1]]>高通滤波器10的作用是除去可能出现的DC电平。
经过预处理的数字信号再经过一个汉明窗(汉明窗)11来将信号分割为帧。此例中,每帧是160个抽样长,对应于一帧的更新时间间隔20ms。汉明窗11的参数WHamm(i)定义为WHamm(i)=0.54-0.46cos(2Πi159)for0≤i≤159.]]>然后每帧的频谱在一个线性时变滤波器的输出模式化,进一步一个全极线性预测LPC滤波器12具有LPC参数的一个预置数L,LPC参数由已知的Levinson-Durbin算法获得。LPC滤波器12试图在当前帧的每个输入抽样和之前L个抽样间建立线性关系。因此,如果第i抽样表述为ai并且LPC参数表述为LPC(j),则LPC(j)的值应选为能够最小话下列表达式的值∈=Σi=0N[ai-Σj=1LLPC(j-1)ai-j]2]]>此例中N=160并且L=10。
LPC参数LPC(0),...LPC(9)然后经过变换为每帧产生相关的线性频谱序列(LSF)参数LSF(0),...LSF(9)这步由LPC-LSF变换器13利用一个已知的根搜索方法实现。
LSF参数传递给一个矢量量化器14,经过一个矢量量化处理过程为导向到编码器第一个输出O1的帧产生一个LSF量化指标L。另外,LSF参数可以使用标量量化器来量化。
一般,LSF参数经常是单调的,这使得量化比使用LPC参数情况时更简单。进一步,LSF参数有利于解码器中必须的帧间内插过程。
矢量量化过程考虑到LSF参数的相对频率,给予频率上相对接近的参数以更大的权重,因此代表输入语音信号在频谱上的峰值。
在本发明的这个实施例中,LSF参数采用24位量化。参数LSF(0),LSF(1),LSF(2)形成第一组用8位量化的G1,参数LSF(3),LSF(4),LSF(5)形成第二组用8位量化的G2,参数LSF(6),LSF(7),LSF(8)形成第三组用8位量化的G3。
每组参数单独量化,通过描述,量化过程将参考组G1详细描述,此过程也同样适用于组G2和G3。
矢量量化过程采用包括28个条目的码本,标号为1到256。码本中的第r条目由三元素Vr(0),Vr(1),Vr(2)的矢量VR构成,三元素对应于LSF(0),LSF(1),LSF(2)的参数。量化过程的目的在于选出与实际LSF参数最佳匹配的一个矢量Vr。
对应于码本中的每个条目,矢量量化器14形成求和Σi=0i=2[(Vr(i)-LSF(i)W(i))]2,]]>其中W(i)为加权因子,给出最小求和的条目为组G1中的LSF参数定义8位的量化指标。
加权因子的作用是在上面求和中强调LSF参数相对接近的重要峰的重要性。
当前帧N中160个抽样的RMS能量E0在背景信号估计框15中计算,根据下列公式此值用来更新一个背景能量估计EBGn的值。
其中EBGn-1是近邻上一帧的背景能量估计,如果EBGn小于1,那么EBGn置为1。
然后E0和EBGn的值用来更新NRGS和NRGB的值,根据下面公式,它们分别代表输入信号语音和背景成分的RMS能量的期望值。
如果NRGBn<0.05,则NRGBn设置为0.05。
和,如果NRGSn<2.0,则NRGSn设置为2.0而如果NRGBn>NRGSn,则NRGSn设置为NRGBn。
通过描述,图3表述了包含在当前帧F0的20ms长间隔里的模拟输入语音信号Si(t)的波形。波形展示了比较大的幅度基音脉冲Pu,后者是人类语音的一个重要特征。帧的基音或基音值P定义为定义为帧中连续基音脉冲间的实际间隔,表述为间隔里包含抽样数目的形式。基音值P与基本基音频率ω0成反比,ω0=2π/P。
对于8kHz抽样的语音,考虑基音值从15到150个抽样的基音期间比较合理,对应于50Hz到535Hz范围里的一个基本基音频率。当然,基本基音频率ω0伴随有一组谐频。
正如已经解释的,基音期间P是语音信号的一个重要特征因此成为另一个量化指标P的基础,P被导向到编码器的第二个输出O2。进一步,基音期间P对编码器产生的其他量化指标起到决定性的作用。因此,必须以可靠的装置和以需要的精度来仔细估计基音间隔P。为此,基音检测器16在时域和频域分析每一帧,所采用的基音检测算法参照图4详细描述。
为了有利于频域的分析,在DFT模块17中使用512点快速傅立叶变换(FFT)算法执行一个离散傅立叶变换。样本经由以当前帧为中心的221点凯塞窗18提供给DFT模块17,而对样本填充零以使它们的数目增加到512。
参照图4,在模块401中使用该变换的实部和虚部SWR(i)和SWI(i)来计算所得的频率频谱的量值M(i),为了减少复杂性,在直到预定截止频率(Cut)的每一频率i执行所述操作,其中i表示为由0到255的FFT输出样本的项。在此实施例中,在i=90时,截止频率对应于远远超过最大期望基础基音频率的1.5kHz。
量值M(i)如下公式计算M(i)=(SWR(i)2+SWr(i)2)for 0≤i≤Cut-1和M(i)的RMS值,Mmax在模块402中计算,如下Mmax=[1CutΣi=0i=Cut-1M(i)2]1/2]]>为了改善基音估算算法的性能,在模块404到407中对量值M(i)进行预处理。
开始,404图中,使用偏离来去加重频谱的主峰。如果任何幅度M(i)超过Mmax,它将被由(M(i)Mmax)1/2给定的新值取代,然后采用进一步的偏离来加重低频部分,由于其语音内容,它们更为重要,并且,每个幅度由因子(1-iCut+5)]]>来加权。
为了清除背景噪声,提高性能,一种噪声消除算法被使用在图405中的权重幅度上,为此,在非语音帧上,每个幅度M(i)被追踪来获取一个背景噪声的统计值,Mmem(i),如E0<1.5EBGn,Mmem(i)的值被更新并产生一个新的值M′mem(i),由下面给定M′mem(i)=0.9Mmem(i)+0.1M(i)如果比值
小于一个阈值(一般位于5到20之间),并且当前帧未发生Mmem的更新,显示帧包含除语音外大量的背景噪声,那么值kM′mem(i)(其中K是常量,一般为6.9)在每个频率由M(i)得到,来降低背景噪声的影响,如果差异为负或接近0,小于一阈值,例如0.0001,则M(i)设为阈值。
所得的最终量值然后被在框图406分析监测峰值。具体的做法是将每个量值M(i)与其相邻的M(i+1)和M(i-1)相比较,如果它比两者都大,则其成为一个峰值。每一个检测到的峰值,其量值存为amppk(1),频率存为freqpk(1),其中1是峰值的书。
然后在框图407中对量值M’(i)采用平滑算法来产生一个相对平滑的频谱包络。此平滑算法分两阶段来实现。在第一个阶段中,一个变量x在0被初始化,然后再从0开始,在Cut-1结束的i的每一个至于量值M’(i)相比较。如果x是小于M’(i),x于是设为那个制;反之,M’(i)的值设置为x,x乘以一个包络衰减因子,本例子中为0.85.然后再次执行同样步骤,但在相反的方向,即,为i从Cut-1开始,到0结束。
此步骤的结果是为0≤i≤Cut-1产生一系列的量值a(i)代表一个平滑的,指数衰减的频谱包络;特别是,此过程可以有效的去除与较大峰相邻的相对小峰。
很明显在框图406种采用的峰监测过程会识别所有的峰。为了减少算法中下面阶段的处理量,框图408将丢去一个峰,如果他的量值amppk小于一个因子c乘以同频量值a(i)。在此例中,c设为0.5。
在框图407里生成的量值a(i),及其剩下的在406和408中产生的幅度和频率之amppk和freqpk会用在409中确定基音期间的第一估计。
为此,采用函数Met1在范围15到150之间为每一个候选基音间隔p进行估计。为降低复杂性,这可以用0.5到75的补偿来实现。Met1用下面表达式来估计。Met1(ω0)=Σk=1k=K(ω0)a(kω0)e(kω0)-12Σk=1k=K(ω0)a(kω0)2→EQ1,]]>这里,e(k,ω0)=Max1(amppk(1)D(freqpk(1)-kω0)),ω0=2Πp,]]>K(ω0)是在截止频率以下的谐波个数,并且D(freqpk(1)-kω0)=sinc(freqpk(1)-kwo)。
实际上,此表达是可以被想为一个梳状滤波器的频率响应之间的互相关函数,此滤波器由候选基音p的谐波幅度a(kω0)和优化峰幅度E(kω0)来定义。函数D(freqpk(1)-kω0)为与在频谱中第1个峰与在特定搜索距离中的候选基音P的第k个谐波频率之间的频率间隔有关的距离度量。由于e(kω0)依赖于距离度量及峰值幅度,则最优值e(kω0)可能不对应于在谐波频率kω0与峰值频率之间的最小间隔。
假如对于每一个候选基音P有一个估计的Met1(ω0),则所获得的值乘以加权因子b1=(1-0.1P/150),使得有利于较小候选基音地稍微偏移该值。
Met1(ω0)的值越高,则相应的候选基音是实际候选基音的可能性越大。而且,如果该候选基音是实际基音值的两倍(即,基音加倍),则Met1(ω0)的值将很小;如下所述,这导致在处理过程的稍后阶段消除了这些不希望的候选基音。
为了识别最有保证的候选基音,在模块410中检测Met1(ω0)的峰值。该检测通过处理在模块409中产生的Met1(ω0)的值来检测在基音的五个相邻范围,即,在基音范围15到27.5,28到49.5,50到94.5,95到124.5,125到150中的一个最大值和在有轨基音trP的范围±5中的一个最大值(随后将要描述)来实施。这样选择该五个相邻基音范围,使得消除在每一范围中的基音加倍或基音对分;也即,在一个范围中检测到的一个基音不可能由在相同范围中任何其他基音的两倍或一半。用此装置,六个峰值Met1(1),Met1(2),Met1(3),Met1(4),Met1(5),Met1(6)将与它们相应的基音值P1,P2,P3,P4,P5,P6一起保持到另一个处理过程。虽然使Met1(ω0)最大的ω0值提供了基音值的一个合理估计,但有容易导致错误;具体地,有时可能识别出一个为实际基音值的一半的基音值(即,基音对分)。
为了消除这个问题,在模块411中为由第一估计导出的六个候选基音值P1,P2,P3,P4,P5,P6估算第二基音估计。
该第二估计使用通过形成在单个基音周期P上的输入抽样的绝对值|d(i)|的不同求和的一种时域分析技术来进行估算。为此,对于在N-80和N+80之间的每个k值形成求和f(k,p)=Σi=ki=k+p|d(i)|]]>这里N为在当前帧的中心处的抽样数目。从而,对于每一候选基音值P1,P2,P3,P4,P5,P6相应地产生一组160个求和,在该组中的每一个求和开始于帧的不同位置。
果候选基音接近于实际基音值,则在对应组中的求和之间的差别应很小或没有。然而,如果候选的和实际的基音值非常不同(例如,如果候选基音值为实际基音值的一半),在该组求和中将有显著的变化。为了检测任何这种变化,每组求和通过高通滤波而经过高通滤波所得值的平方和用于估算第二估计Met2。当语音极其周期性时,加入一个小偏差值以降低基音的倍数误差。对于利用第一估计所选择的每一候选基音值P1,P2,P3,P4,P5,P6估算各自的第二估算Met2(1),Met2(2),Met2(3),Met2(4),Met2(5),Met2(6)。显然,Met2的值越小,相应的候选基音越可能是实际基音值。在基音对分的情况下,Met2的值将很大,这有利与消除所不希望的该候选基音。
可选的,为了进一步改善第一和第二估计Met1和Met2的可靠性,当前帧的输入抽样可以在模块412中自相关。检查该规一化的自相关以发现两个最高值(V1,V2),同样也检查在这些值的相继出现之间的相应延迟L1,L2(表示为在一定数量的抽样)。如果在V1和V2之间的比值超过阈值(典型为1.1),则值L1,L2接近正确的基音值的确信度很高。如果是,则接近于L1或L2的候选基音值的Met1和Met2值乘以相应的加权因子b2和b3以改善在基音值的最后估算中它们的选中机率。
Met1和Met2的值在模块413中根据一个跟踪的基音值进一步加权。假设当前帧包含语音,即,如果E0>1.5EBGn,则trP的值用为将要到来的帧估计的基音值来更新,语音能量越高,则更新的内容越大。为每一个候选基音P1,P2,P3,P4,P5,P6估计该比率γ=P-trPtrP,]]>在此例中,如果γ小于0.5,即,候选基音接近于由前面帧的基音值估计得来的跟踪的基音值,则Met1和1Met2的值还要分别乘以各自的加权因子b4和b5。b4和b5的值依赖于在该帧中背景噪声的级别。果该背景噪声确定为高,例如,NRGS/NRGB<10,则b4设为1.25,而b5设为0.85。然而,如果γ<0.3(即,候选基音更接近于所跟踪的基音值),则b4设为1.56,而b5设为0.72。如果确定背景噪声不明显,例如,NRGS/NRCB>10,则偏置的内容减少-如果γ<0.5,则b4设为1.1,而b5设为0.9,如果γ<0.3,则b4设为1.21,而b5设为0.8。
然后,Met2的加权值用于丢弃任何明显无希望的候选基音值。为此,在模块414中对Met2的加权值进行分析以检测出最小值而如果任何其他值比该最小值超过多于一个预设因子(例如2.0)加一个常数(例如0.1)的值,则它随着相应的Met1(ω0)和P值一起被丢弃。
如上所述,如果该候选基音接近与正确值,则Met1将非常大而Met2将很小;因此,由Met1和Met2所得的一个比率为正确性或候选基音的其他方面提供了一个非常灵敏的检测手段。
因此,在模块415中,对于所余的每一候选基音估算比率R=Met′1Met′20.25,]]>其中,Met’1和Met’2为Met1和Met2的加权值,而对应于最大比率R的该候选基音值作为当前帧的估计基音值P0而被选择。一个检查被执行以确认所估计的基音值P0不是实际基音值的系数。参照图4详细描述的基音算法是极其稳健的并包括频域及时域的组合以消除基音加倍和基音对分。
虽然根据候选值所落于其中的范围,基音值P0可被估计到0.5或1个样本的精确度,而这种精确度对于在编码器的后续阶段需要实施的处理过程可能还不够,所以需要更好的精确度。因此,在基音精细化模块19中估计了一个精细化基音值。
为了有利于此,在DFT模块20中执行第二离散傅立叶变换,再次使用512点快速傅立叶变换算法。如前所述的,样本经由221点凯塞窗18提供给DFT模块17。这种窗口对于现在要求的处理技术太宽,所以需要更窄的窗口。然而,该窗应仍具有至少3个基音周期宽。因此,输入样本经由一个对于在基音检测器16中检测到的基音值P0敏感的可变长窗21提供给DFT模块20。在此例子中,三个不同的窗口尺寸为221,181和161,分别对于与P0≥70,70>P0≥55和55>P0。其次,这些窗口是以当前帧为中心的凯塞窗。
基音精细化模块19产生一组包括分布于所估计的基音值P0两端的分数值的新候选基音值。在此实施例中,使用求和为50个的候选基音值(包括P0)。对于这些候选基音值的每一个计算Met1的一个新值,而给出最大Met1值的候选基音值作为所以后续处理所要基于的精细化基音值Pref而被选择。
Met1的新值在基音精细化模块19中随后使用与前面参照图4描述的相同但具有某些重要修正的过程来计算。首先,对于由DFT模块20所产生的整个频域,而非仅仅该频谱的低频范围(即,i直至Cut-1的值)来计算大小M(i)。第二,上面在公式1中所表示的求和以两部分来实施;对于kω0直至1.5kHz(对应于i=90)的值的第一(低频)部分,和对于kω0的剩余值的第二(高频)部分和这两部分的求和分别用不同的因子,0.25,1.0来加权。
如上所述,所估计的基音值P0仅仅基于低频范围的分析,因此在此估计中的任何不精确性很大程度上可归于被排除在该分析外的高频影响。为了矫正这一疏忽,在模块19中实施的分析包括了更高的频率,通过提供给各自部分求和的加权因子的相对大小来强调它们的影响。此外,最初在模块404中施加于幅值M(i),并具有强调更低频率影响(现在不希望)的偏置由分析中忽略,因此也不要求该值Mmax(最初在模块402中计算)。
在模块19中产生的精细化基音值Pref通过矢量量化器22,在这里,它被量化以产生基音量化指标P。
在此实施例中,基音量化指标P用7比特来来定义(对应于128级),而考虑到人眼对于在更大的基音值出的基音不精确性较不敏感,故矢量量化器22是一个指数量化器。量化的基音级Lp(i)定义为Lp(i)=15(15015)i127,]]>for 0≤i≤127。
如所希望的,在8kHz的抽样率下,多至80个谐波频率可以包含在DFT模块20的4kHz带宽中。显然,将需要一个很大数目的比特来对所有谐波分别编码,而这在一个要求相对低比特率的语音编码器中不太行得通。需要一个更经济的编码模式。
如参照图5所描述的,由DFT 20所导出的实际频谱在发音模块23中进行分析以设置一个发音截止频率Fc,截止频率Fc将频谱分为两部分;一个在发音截止频率Fc以下的浊音部分,它是语音的周期性分量,和一个为语音的随机分量的清音部分。
一旦频谱的浊音和清音部分以这种装置分开,则它们可以在解码器中独立地进行处理而无需产生和传输有关每一单独谐波频带的浊音/清音状态的信息。
每一谐波频带以基频ω0的k倍为中心,由公式
给出。
最初,对于由可变长窗2l的傅立叶变换给出的频带(假定它是浊音),每一谐波频带的形状用理想谐波形状进行校正。这可以通过为每一谐波频带产生一个校正因子S1来进行。对于第k个谐波频带,S1(k)=Σa=aka=bkM(a)W(m),→2]]>这里M(a)为在FFT中位置a处的频谱复数。
ak和bk是频带的求和界限。
W(m)是由所选窗所得的频带的理想谐波形状的对应大小,m为定义在理想谐波形状中相应于在实际谐波频带中位置a的位置的整数,它可以由下面公式给出m=|integer(Sbt•a(a-kSFPref))|,→3]]>其中,SF为FFT的大小而Sbt为上抽样率,即在窗中点数与在FFT中点数的比率。
除了S1,还产生两个归一化函数S2和S3,这里,S2(k)=Σa=aka=bk[M](a)]2,]]>S3(k)=Σa=aka=bk[W(m)]2,]]>和然后,这三个函数S1(k),S2(k)和S3(k)被组合以产生一个归一化校正函数V(k),如下所示V(k)=[S12(k)S2(k)•S3(k)]]]>这里,k为谐波频带数。V(k)通过将其提高到1+3(k-10)/40的幂来进一步偏置。
如果在实际和理想谐波形状之间有一个精确的校正,则V(k)的值将是一致的。图5显示了一个对于其中总的谐波频带数为25(即,k=1到25)的频谱而言,典型的校正函数V(k)的形式。如图所示,在频谱的低频端的谐波频带相对更接近于一致,因此可能是浊音。
为了对于Fc设置一个值,函数V(k)在每一k值与相应的阈值函数THRES(k)进行比较。一个典型的阈值函数THRES(k)的形式如图所示。
为了计算THRES(k),使用下面的值E-lf,E-hf,tr-E-lf,tr-E-hf,ZC,L1,L2,PKY1,PKY2,T1,T2。这些如下面公式定义E-1f=Σi=01/2SF-1M2(i)]]>E-hf=Σi=SF/2SF-1M2(i)]]>如果(E0n<2EBGn)和帧计数器小于20,则trn-E-lf=0.9trn-1-E-lf+0.1 En-lf,andtrn-E-hf=0.9trn-1-E-lf+0.1 En-hf.否则,如果(E0n<1.5EBGn)
trn-E-lf=0.97trn-1-E-lf+0.03 En-lf,andtrn-E-hf=0.97trn-1-E-hf+0.03 En-hf.
还有,tr0-E-lf=108和tr0-E-hf=107.
ZC设置为零,对于每一个在N/2到N/2之间的iZC=ZC+1ifip[i]xip[i-1]<O,其中,ip是输入语音基准的,这样ip
对应于位于由于获取当前帧的频谱的窗中心的输入抽样。L1=1NΣi=-N/2N/2-1|residual(i)|,]]>和L2=[1NΣi=N/2N/2-1(residual(i))2]1/2,]]>其中residual(i)为一个在LPC反向滤波器28的输出处产生的LPC残余信号,并是有基准的,所以residual(0)对应于ip(0)。
PKY1=L2/L1和PKY2=L2′L1′,]]>这里L1’,L2’是分别作为L1和L2计算的,但是不包括在一个对应的减少项数目上平均的最大残余值两端的一个预定数目数值。PKY1和PKY2都是残余语音的“峰”的表示,但是PKY2对于异常大的峰较不敏感。T1=Σi=-N/2N/2-1|ip[i]-ip[i-1]|,]]>T2=Σi=-N/2N/2-1|ip[i]|]]>如果(NRGS<30xNRGB)即,噪声背景条件占优势,和如果(E-lf>tr-E-lf)和如果(E-hf>tr-Ehf),则低到高频能量比率(LH-Ratio)由下面公式给出LH-Ratio=E-lf-0.9tr-E-lfE-hf-0.9tr-E-hf,]]>和,如果(E-rf<trE-lf),则LH-Ratio=0.02和,如果E-rf<tr-E-hf,则LH-Ratio=1.0和LH-Ratio钳位于0.02和1.0之间。
在这种噪声背景条件中,存在两种不同情况,情形1中,在将要到来的帧中的阈值THRES(k)位于该帧的截止频率Fc以下,而情形2中,在将要到来的帧中的阈值THRES(k)位于该帧的截止频率Fc以上。
如果(LH-Ratio<0.2),则对于情形1,THRES(k)=1.0-(1.0-1/π(k-1)ω0),对于情形2THRES(k)=1.0-1(1.0-1/π(k-1)ω0),这些值修改如下THRES(k)=1.0-(1.0-THRES(k))(LH-Ratio×5).
如果LH-Ratio>0.2,则对于情形1,THRES(k)=1.0-(1.0-1/π(k-1)ω0×0.125),和对于情形2THRES(k)=1.0-(1.0-1/π(k-1)0×0.125)如果LH-Ratio≥10,则这些值修正如下THRES(k)=1-(1-THRES(k)).
确定一个能量比率,ER=2.0EOEO+Emax,]]>这里EO是整个频谱的能量,由下式给出EO=Σi=0SF-1(M(i))2]]>而Emax为在最近的帧中所遇到的最大能量估计(这里,如果ER<0.1,则ER设置为0.1),则如果(ER<0.4),上述阈值还可以修改如下THRES(k)=1.0-(1.0-THRES(k))(2.5 ER),如果(ER>0.6),上述阈值还可以修改如下
THRES(k)=1.0-(1.0-THRES(k)).
此外,如果(THRES(k)>0.85),则这些修改值将进行如下进一步的修改THRES(k)=0.85+(THRES(k)-0.85).
最后,如果3/4K≤k≤K,则THRES(k)还要进行如下修改THRES(k)=1.0-(1.0-THRES(k)).
在干净背景条件下(即,NRGS≤30.0NRGB)则对于情形1,THRES(k)=1.0-0.6(1.0-1/π(k-1)×0.25),而对于情形2,THRES(k)=1.0-0.45(1.0-1/π(k-1)×0.25).
然后,这些值根据下述条件经受连续修改(i)如果(E-lf/E-hf<2.0),则THRES(k)=1-(1-THRES(k))(E-lf2.0E-hf)]]>(ii)如果(T2/T1<1),则THRES(k)=1-(1-THRES(k))(T2T1)2]]>(iii)如果(T2/T1>1.5),则THRES(k)=1-(1-THRES(k)),(iv)如果(ZC>60),则THRES(k)=1-(1-THRES(k))(60ZC)2]]>(v)如果(ER>0.6),则THRES(k)=1-2.5 ER(1-THRES(k))(vi)如果(ER>0.6),则THRES(k)=1-(THRES(k)),(vii)如果(THRES(k)>0.5),则THRES(k)=1-1.6(1-THRES(k)),否则THRES(k)=0.4 THRES(K).
输入语音被低通滤波,然后对于整数延迟值Pref-3到Pref+3计算归一化互相关,并确定互相关CM的最大值。
然后,如上对于噪声和干净背景条件所得到的THRES(k)值根据满足下面分层条件的第一条件进一步修改(1)如果(PKY1>1.8)和(PKY2>1.7),
THRES(k)=0.5 THRES(k).
(2)如果(PKY1>1.7)和(CM>0.35),THRES(k)=0.45 THRES(k).
(3)如果(PKY1>1.6)和(CM>0.2),THRES(k)=0.55 THRES(k).
(4)如果(CM>0.85)或(PKY1>1.4和CM>0.5)或(PKY1>1.5和CM>0.35),THRES(k)=0.75 THRES(k).
(5)如果(CM<0.55)和(PKY1<1.25),THRES(k)=1-0.25(1-THRES(k))(6)如果(CM<0.7)和PKY<1.4,THRES(k)=1-0.75(1-THRES(k)).
最后,如果(E-OR>0.7)和(ER<0.11)或如果(ZC>90),则E-OR=Σi=-N/2N/2-1residual2(i)Σi=-N/2N/2-1ip2(i)]]>Sv=Σk=1K(V(k)-THRES(k))(2tvoice(k)-1)xB(k)]]>这里如果V(k)>THRES(k),则B(k)=5S3,否则B(k)=S3,而tvoice(k)取“1”值或“0”值。
有效地,该值tvoice(k)确定了一个试验发音截止频率Fc,使得tvoice(k)在所有低于Fc的k值为“1”而在所有高于Fc的k值为“0”。图5显示了确定第一试验截止频率F1c的第一组值t1voice(k)和确定第二试验截止频率F2c的第二组值t2voice(k)。在此实施例中,对于八个不同组数值t1voice(k),t2voice(k),t3voice(k),t4voice(k),t5voice(k),t6voice(k),t7voice(k),t8voice(k)形成求和,其中每一组值定义一个不同的试验截止频率F1c,F2c,…,F8c。给出最大综合Sv的一组值将确定该帧的发音截止频率。
如所期望的,函数(2tvoice(k)-1)在上面求和中的影响是当tvoice(k)具有值“0”,即在高于截止频率的k值的无论何时,使差值(V(k)-THRES(k))相反。在图5所示的例子中,函数(2tvoice(k)-1)的影响是确定发音截止频率是否应设在低于在相关函数V(k)中的dip D的值F1c处,或设在高于在相关函数V(k)中的dip D的值F2c处。在图5中以N为基准的k值范围中,值V(k)小于值THRES(k),于是求和Sv中差值(V(k)-THRES(k))为负。如果使用第一组值t1voice(k),则它们的影响是使在范围N中的(V(k)-THRES(k))的符号相反,这导致在整个求和中所做的贡献为正。
相反,如果使用第二组值t2voice(k),则它们的影响是使在范围N中的(V(k)-THRES(k))的符号维持不变,这导致在整个求和中所做的贡献为负。在图5中以为基准的k值范围中,情形相反;也即,第一组值t1voice(k)将导致在整个求和中所做的贡献为负;而第二组值t2voice(k)将导致在整个求和中所做的贡献为正。然而,如由图5中交叉阴影区域的相对面积可以明显看到的,差值(V(k)-THRES(k))在范围N中的影响远比在范围P中的大,在此狸子中,第一组值t1voice(k)将给出最大求和Sv,并可以确定该帧的发音截止频率(F1c)。
通过由八个可能值中选择了一个Fc值,相应的系数(1到8)提供了经由发音量化器24传输的第三输出O3的发音量化指标V。该量化指标V由对应于八个可能频率级的三个比特来定义。
通过为基音确立数值,Pref和为当前帧确立发音截止频率Fc,每一谐波的频谱幅度可以在幅度确定模块25中估算。该频谱幅度由通过在模块27中对在LPC反向滤波器28的输出端产生的开窗LPC残余信号执行离散傅立叶变换(可以一个快速傅立叶变换的形式来实现)产生的频率频谱来获得。滤波器28被提供有原始语音信号和通过在LSF去量化器29中对该LSF量化指标去量化并在LSF-LPC转换器30中对去量化的LSF数值进行转化而获得的一组再建的LPC系数。
如果一个谐波频带(就说第k个频带)位于频率频谱的清音部分;也即,它位于发音截止频率Fc之上,该频带的频谱幅度amp(k)由在该频带中的RMS能量给出,公式如下amp(k)=[Σa=aka=bk|Mr(a)|2bk-ak]1/2β]]>这里Mr(a)是在由LPC残余信号所导出的频谱中的a位置的复数,而该LPC残余信号是前面由FFT的实部和虚部计算得到的,而ak和bk是第k个频带的求和的界限,而β是作为窗口函数的归一化因子。
如果,在另一方面,该谐波频带位于频率频谱的浊音部分;也即,它位于发音截止频率Fc之下,则对于第k个频带的频谱幅度amp(k)由下面公式给出amp(k)=[|Σa=aka=bkMr(a)W(m)|Σa=aka=bk[W(m)]2]1/2]]>这里W(m)是参照上述公式2和3而定义的。
以此装置获得的该频谱幅度被归一化以具有一致的平均值。
然后,被归一化的频谱幅度在幅度量化器26中被量化。如所期望的,该过程可以根据可用比特数目,使用各种量化机制实现。在一个特定实施例中,使用一个矢量量化过程并为该帧的LPC频率频谱P(ω)取得基准。该LPC频率频谱P(ω)表示LPC滤波器12的频率响应并具有形式P(ω)=11-ΣL=1LLPC(1)e-jω1]]>这里LPC(1)为LPC系数。在此实施例中,具有10个LPC系数,即,L=10。
该LPC频率频谱P(ω)如图6a所示而相应的频率幅度amp(k)如图6b所示。在此例子中,只显示了10个谐波频带(k=1到10)。
该LPC频率频谱被检查以发现包括最高幅度的四个谐波频带,在这种例子中,具有k=1,2,3和5的谐波频带。如图6c所示,对应的频谱幅度amp(1),amp(2),amp(3),amp(5)形成八个矢量元素的第一组四个元素V(1),V(2),V(3),V(4),最后四个矢量元素(V(5)到V(8)由六个剩余频谱幅度amp(4)和amp(6)到amp(10)通过适当的平均形成。为此,元素V(5)由amp(4)形成,元素V(6)有amp(6)和amp(7)的平均值形成,元素V(7)由amp(8)形成而元素V(8)由amp(9)和amp(10)的平均值形成。
该矢量量化过程参照一个码本的条目(entry)实施,而与所组合的矢量最匹配的条目(使用一个由LPC频谱形状加权的均方误差度量)作为该帧的一个幅度量化指标S的第一部分S1而被选择。
另外,幅度量化指标S的第二部分S2作为该帧的原始语音输入的RSM能量Rm被计算。
幅度量化指标的第一部分S1表示该频率频谱的“形状”,同时第二部分S2表示与语音音量有关的比例因子。在此实施例中,系数的第一部分S1包括6个比特(对应于包括64个条目的码本,每一条目代表一个不同的频谱“形状”)和系数的第二部分S2包括5个比特。两个部分S1和S2组合以形乘以个11比特的幅度量化指标S,该系数S向前传送到编码器的第四输出端O4。
根据可用比特数,可以使用各种机制来对频谱幅度进行量化。例如,量化码本可以包括更大或更少的条目,而每一条目可以包括一个半更大或更小数目的幅度数值的矢量。
如以后将要描述的,解码器基于系数S,P,V而工作以合成残余信号,从而产生一个将提供给解码器LPC合成滤波器的激励信号。
总之,该编码器为输入语音信号的每一帧产生一组量化的系数LPC,P,V,S1和S2。
编码器的(编码)速率依赖于定义量化指标的比特数和量化指标更新的速率。
在前述描述的例子中,每个量化指标更新周期为20毫秒(与帧更新周期相同),编码速率为2.4kb/s。上例中用于每个量化指标的比特数总结如下表1。
表1<
>*另外3个比特(累计共48个比特)可用于进一步优化对参数的量化或同步及纠错保护。
表1还总结了另外5个例子中每个量化指标中比特数目的分布,这些例子中,编码器分别工作于1.2kb/s,3.9kb/s,4.0kb/s,5.2kb/s和6.8kb/s.
在上述部分例子中,部分或全部量化指标以10ms为间隔被更新,即每帧两次。可以看出,在这些情况下,每帧第一个10ms更新周期导出的基音量化指标P比每帧第二个10ms更新周期导出的基音量化指标P要用更多比特数定义。这是因为第一个更新周期导出的基音值被用作第二个更新周期导出的基音值基础,所以后续基音值可用更少比特数定义。
在1.2kb/s速率情况下,帧长度为40ms。在此情况下,基音和发音量化指标P和V由每帧的一半确定,另外一半帧的指数通过相邻半帧对应参数的外推得到。
当前40ms帧的前导和结尾半帧的LSF系数(LSF2,LSF3)的量化通过相互引用和引用紧邻其前的半帧LSF系数(LSF1)和相应LSF量化矢量实现。
每半帧的量化的目标LSF参数(LSF’1,LSF’2,LSF 3)通过对该半帧相应的预期值(P1,P2,P3)和一矢量量化码表中相应的LSF量化矢量(Q1,Q2,Q3)求和得到。此处LSF’1=P1+Q1,LSF’2=P2+Q2,LSF’3=P3+Q3。
每个预期值P2,P3由紧邻其前半帧的相应的LSF量化矢量Q1,Q2得到,所以有P2=λQ1和P3=λQ2,其中λ为一常数预期因子,典型值在0.5到0.7范围内。
为降低编码速率,用相邻半帧的目标量化LSF系数(LSF’1,LSF’3)定义(当前帧的前导半部的)目标量化LSF系数LSF’2是有益的。于是,LSF’2=αLSF’1+(1-α)LSF’3---→ (式-4)其中α为一用4比特系数表征的16条目码表中的一个10元素的矢量。
代入前式,可以得到LSF’3(1-λ-λα)=Q3+λαLSF’1-λ2Q1---→ (式-5)上述式-4和式-5中变量值有α和Q3,变化两矢量以减小下式给出的误差函数E(可依经验加权)ε=(LSF’3-LSF3)2+(LSF’2-LSF2)2,该式表征了当前帧中实际LSF系数和量化LSF系数之间失真的一个量度。
通过搜索相应码表找出求得最小误差函数E的矢量α和Q3,选择码表中相应的条目可分别定义一个当前帧的28位LSF量化指标的4位和24为元素。参考前文2.4kbs/s编码器描述的类似的装置,量化矢量码表中的LSF量化矢量包含了3组每组从1到256的28个条目,它们分别对应于第一组3个,第二组3个和最后一组4个LSF系数。每组中选中的条目定义了一个8位的量化指标,3组共给出24位。
如图3到图6所描述的语音编码器可工作于单一编码速率。另外,该语音编码器也可以是一个适应多速率(AMR)编码的编码器,它可选择性的工作于两种或多种不同编码速率之一。在一个具体实现中,该AMR编码器可选择工作于前述提到编码速率中的任意速率,再一次,各编码速率下码元数对每个量化指标的分别总结如表1。
在语音编码器输出端O1,O2,O3,O4生成的量化指标通过通信信道发送给解码器,如图7所示。在解码器中,量化指标被重新生成并分别输送给量化模块30,31,32,33的输入端I1,I2,I3,I4。
量化模块30为每帧输出一组解量化的LSF系数,它们被用来重新生成相应的LPC系数以提供给LPC合成滤波器34。
量化模块31,32和33分别输出解量化的基音(Pref),发音截止频率(Fc)和带有RMS能量值的频域幅值(amp(k))这些值被一起用来生成以个供给LPC合成滤波器34的激励信号EX。至此,Pref,Fc,amp(k)和Rm值被提供给了合成激励信号浊音部分(即低于FC频率的部分)的第一激励发生器35和合成激励信号清音部分(即高于FC频率的部分)的第二激励发生器36。
第一激励信号发生器35在基础基音频率ω0=2π/Pref的整数倍直至发音截止频率FC的每个谐波频段的(中心)频率处产生各自正弦波。至此,第一激励信号发生器35生成了一组形式为Akcos(kθ)的正弦波,其中K为整数。
利用量化复原的基音值(Pref),每个合成帧内基音周期的起止值将被确定,并且每个基音周期的新的一组参数可由内插法得到。
在任意样本I处的相位θ(I)可由下列表达式给出θ(i)=θ(i-1)+2π[ωlast(1-x)+ω0x],其中ωlast为所确定的紧邻前一帧的基带基音频率。x=k/F,其中F为一帧中样本的总数,k为在当前帧的正在被合成的当前基音周期的中点的取样位置。
上式中表达项ωlast(1-x)+ω0x引起相位逐个基音周期的逐渐移动以保证在帧边界处的相位的平滑过渡。每个正弦波的幅值Ak与当前帧的amp(k)与Rm的乘积相关;但是,逐个基音周期进行的当前帧和紧邻其前一帧之间的幅值的内插可按如下进行(i)如果一谐波频段落在当前帧的非语音频谱部分但落在紧邻前一帧的语音频谱部分,则可认作发音信号正在收尾。这种情况下,激励信号发生器35仍为当前帧产生一正弦波,但要使用紧邻前一帧的幅度并将该幅度在整个当前帧长度内以一个适当的倍率系数(该系数最好在整个基音周期内维持为一个常数)降低。
(ii)如果一谐波频段落在当前帧的语音频谱部分但落在紧邻前一帧的非语音频谱部分,则可认作发音信号正在起始。这种情况下,应使用当前帧的幅度并将该幅度在整个当前帧长度内以一个适当的倍率系数(该系数同样最好在整个基音周期内维持为一个常数)提高。
(iii)如果一谐波频段同时落在当前帧和紧邻前一帧的语音频谱部分,则可认作正常发音。这种情况下,在整个当前帧长度内应使用由当前帧的幅度和紧邻前一帧的幅度内插出的幅度。
另外,发音部分的合成还可通过反向DFT装置实现,此处DFT(样本)量值等于内插出的基音长度。每个基音周期内DFT的输入包括解码后的和内插的直到内插出的截止频率点FC处的频域幅值及FC以上处的零值。
用于合成激励信号中非发音部分的第二激励信号发生器36包括了一个能产生白噪声序列的随机噪声信号发生器。一种”重叠累加”技术被用于从前述序列中提取出一系列对应当前内插所得基音的Pref样本值。这将通过一个具有总宽度为256个样本的梯形窗口在前述白噪声序列上每步160样本逐帧滑动来实现。经窗口取样出的样本将经过256点快速傅利叶变换,变换结果所得频谱将由量化复原的频谱幅度约束。在高于FC的频率范围,对应于k的谐波频段,其频谱将由该频段量化复原的成比例的频谱幅度函数Rmamp(k)约束。在低于FC的频率范围内(对应于频谱中发音部分),每个谐波频段的幅度被置为零。对上述频谱进行反向傅利叶变换得到时域中非发音的激励信号。对应于当前周期的样本被用来组成非发音的激励信号。”重叠累加”技术的使用增强了解码后语音信号的平滑度。
第一激励信号发生器35产生的发音激励信号和第二激励信号发生器36产生的非发音激励信号在加法器37中叠加,叠加的激励信号被输出至LPC合成滤波器34。LPC合成滤波器34收到由解码的LSF系数导出的内插的LPC系数并用其对叠加的激励信号滤波以合成输出的语音信号S0(T)。
为生成一平滑的语音输出信号S0(T),LPC系数的任何变化都应是渐变的,使用内插法为好。在LPC系数之间直接内插是不可能的,但在LSF系数间进行内插是可行的。
如果连续帧中全部为语音,那么这些帧的RMS能量值实际上相同,这些帧之间的两组LSF系数不会相差很大,那么线性内插法可用于两者之间。如果一帧中同时含有语音和无声信号将产生问题;即该帧中包含有语音起始和结尾。在这种情况下,当前帧和紧邻前帧的LSF系数会大不相同以致线性内插法将使真实语音模式失真,导致噪声。
在语音起始时,当前帧的RMS能量值EC会大于紧邻前一帧的RMS能量值EP,而在语音结尾时情况正好相反。
考虑到减轻该问题的影响,一种依赖于能量的内插法将被应用。图8显示了内插系数随不同帧EP/EC比值从0.125(发音起始)到8.0(发音结束)之间变化而显示的变化。从图8可以看出,依赖于能量测定内插系数的作用是施加一趋向LSF系数明显值的偏置以保证每帧的浊音部分变化比背景噪声更易于通过一滤波器。
在LSF内插处理器38中,内插过程被施加于LSF系数,如此所得内插值被传送给一个LSF-LPC变换器39从中产生相应LPC系数。
为增强发音质量,目前通常会对输出的合成信号进行后处理以降低LPC频谱谷部的噪音效果,此处发音的LPC模型相对不完善。这可以通过适当的滤波器来实现,但是这种滤波会引起一些频谱抖动。这中抖动将减低最终信号输出降低其质量。
在本实施例中,一种不同的装置被采用;具体而言,不同于以前处理LPC合成滤波器34的输出,本申请中的技术依赖对解码模块33输出端产生频谱幅度的加权。施加于K阶频谱幅度的加权系数Q(Kω0)有前文描述的LPC频谱P(ω)导出。对LPC频谱P(ω)进行峰值内插产生一峰值内插的频谱H(ω),加权函数Q(ω)由P(ω)与H(ω)的比率的λ阶幂给出;即Q(ω)=[P(ω)/H(ω)]λ,其中λ在0.00到1.0范围内,最好为0.35。
函数P(ω)和H(ω)及由Q(ω)*P(ω)给出的依经验增强的LPC频谱如图9所示。
从图中可以看出,加权函数Q(ω)的作用为减低LPC频谱在峰值间谷区的值以降低此区内的噪音。当适当的加权函数Q(kω0)在经验加权模块40中作用于量化复原的频域幅值函数amp(k)时,其作用为如同施加后处理一般改善输出语音信号的质量而不引起频域的抖动及与旧式装置相联系的消音效应。
因为LPC合成滤波器34的输出的能量可能剧烈变化,该输出最好加以控制。这通过使用图7虚线框中的可选电路分两步实现。第一步中,实际基音周期的能量在42模块中计算,该能量与内插得到的预期的基音周期能量在比例电路42中比较以产生一比值。在乘法器43中激励信号Ex的相应基音周期(的能量)被乘以该比值来降低所比较能量的差异。其后,(Ex)经过又一个LPC合成滤波器以产生一平滑的输出语音信号。
权利要求
1.一种语音编码器,该语音编码器含有对划分为帧的,每帧含有事先确定个数数字样本的输入语音信号进行编码的编码器,该编码器包括(采用)·为每帧样本产生至少一组线性预测系数的线性预测编码装置,·为每帧样本确定至少一个基音值的基音确定装置,该基音确定装置包括用频域技术分析样本(频域分析)的第一种估计装置,用时域技术分析样本(时域分析)的第二种估计装置及由所述频域分析和时域分析结果导出所述基音值的基音评价装置,·用于定义每帧中浊音和清音信号量度的语音装置,·用于为每帧样本产生幅值信息的幅值确定装置,·用于量化前述线性预测系数,基音值,浊音和清音信号量度及幅值信息来为每帧样本产生一组量化指标的量化装置,其中,前述第一种估计装置对若干候选基音中的每个基音值生成以个量度,前述第二种估计装置对相同候选基音中的每个基音值生成相应的第二个量度,前述基音评价装置至少组合若干以上第一个量度和与之相应的第二个量度并通过引用该组合结果选出候选基音其中之一。
2.一种如权利要求1所要求的语音编码器,其中前述基音评价装置通过构成前述第一种量度与相应第二种量度的比值来组成前述组合并通过引用如此构成的比值选出候选一个基音。
3.一种如权利要求1和2所要求的语音编码器,其中前述基音评价装置在将前述量度组合之前将每个所述基音值与记录下的由以前一个或更多个帧导出的基音值相比较并依据比较结果对相应的前述第一和第二量度加权。
4.一种如权利要求3所要求的语音编码器,其中加权的数量还由当前帧的背景噪声水平决定。
5.一种如权利要求1到4任何一项所要求的语音编码器,其中前述第一种估计装置由每一帧产生第一个频谱,确认这第一个频谱中的峰值,使用一平滑过程处理这第一个频谱来产生一个平滑频谱,并且对每一候选基音值使所述第一个频谱中的峰值与所述平滑频谱中各不同谐波频率(kω0)处的幅值相联系(卷积)来产生基音的相应的前述第一种量度,其中ω0=2π/P,P为候选基音值,k是一个整数。
6.一种如权利要求5所要求的语音编码器,其中在确认前述峰值之前,组成前述第一个频谱的幅值将与该频谱的RMS值相比较并根据比较结果加权来抑制幅值超过所述RMS值的峰值。
7.一种如权利要求6所要求的语音编码器,其中前述幅值被进一步用一个随频率降低而增加的因子加权。
8.一种如权利要求7所要求的语音编码器,其中前述第一个频谱的幅值将因考虑到当前帧的背景噪声而被调整。
9.一种如权利要求5到8任何一项所要求的语音编码器,其中,在联系(卷积)之前第一个频谱中确定的每个峰值的幅值将与相应的平滑频谱的幅值比较并依比较结果决定取舍。
10.一种如权利要求1到9任何一项所要求的语音编码器,其中前述第一种估计装置为预先已知数量频段中的每一频段选出单一一个候选基音,前述第二种估计装置为由前述第一种估计装置所选出的每一个候选基音产生前述第二种度量。
11.一种如权利要求1到10任何一项所要求的语音编码器,其中前述选出的候选基音值提供了对前述基音值的一个估计并且前述评估装置包含了基音精选装置以从估计中确定基音值。
12.一种如权利要求11所要求的语音编码器,其中,基音精选装置进一步定义了一组分布于前述估计中的具有分数值的候选基音值,进一步产生该帧的频谱,确定此频谱中的峰值,将此频谱经一平滑过程处理以进一步产生一平滑后的频谱,对每一个进一步选出的候选基音值而言,将上述进一步产生的频谱中所确定的峰值与上述平滑频谱中不同谐波(kω0)处的幅值卷积,此处ω0=2π/P,P是上述进一步选出的候选基音值,k为一整数,并且将上述进一步选出的候选基音值中给出最大相关性者选为该帧的基音值。
13.一种如权利要求1到12所要求的语音编码器,其中前述基音决定装置为每帧的前导部分决定第一个基音值并为每帧的结尾部分决定第二个基音值,前述量化装置将两者都进行量化。
14.一种如权利要求1到13任何一项所要求的语音编码器,其中,前述发音装置为每帧决定至少一个将该帧划分为浊音和清音部分频谱的截止频率,前述幅值决定装置为每帧对应于由发音装置决定的发音截止频率和由基音决定装置确定的基音值分别产生频域幅值。
15.一种如权利要求14所要求的语音编码器,其中,前述发音装置对每帧分别执行下列步骤(i)导出与由前述决定装置决定的基音值相关的每个谐波频段一个发音量度,(ii)将每一谐波频段的发音量度与一阈值相比较以产生一或正或负的比较结果,(iii)对于高于一尾段截止频率的谐波频段的比较结果施加一定偏置以反转其符号,(iv)将该帧若干谐波频段的偏置后的比较结果求和,(v)对多个不同尾段截止频率实行上述(i)到(iv)操作,并且(vi)选出求得最大和的尾段截止频率作为该帧的发音截止频率。
16.一种如权利要求15所要求的语音编码器,其中,前述发音量度通过将所述谐波频段波形与该频段的一个参考波形相联系而构成。
17.一种如权利要求16所要求的语音编码器,其中,包含有对输入语音信号施加一窗函数,及由窗函数取样的输入语音信号中导出含有前述谐波频段的前述频谱的装置,并且前述参考波形将由该窗函数导出。
18.一种如权利要求14到17任何一项所要求的语音编码器,其中,发音装置为每帧前导部分决定第一个前述发音截止频率,为每帧结尾部分决定第二个前述发音截止频率。
19.一种如权利要求1到18任何一项所要求的语音编码器,其中,幅值决定装置为每帧产生一组以由前述基音决定装置决定的基音值有关的谐波频率为中心的不同频段的频谱幅度,并且前述量化装置将这些频谱幅度量化以产生一幅度量化指标的第一部分。
20.一种语音编码器,其中,含有一个对输入语音信号进行编码的编码器,该编码器包含对输入语音信号取样以产生数字样本并将该样本划分为每帧含有事先确定个数数字样本的帧的装置,对每帧样本进行分析并产生至少一组线性预测系数的线性预测编码装置,为每帧样本确定至少一个基音值的基音确定装置,用于定义每帧中浊音和清音信号量度的语音装置,用于为每帧样本产生幅值信息的幅值确定装置,用于量化前述线性预测系数,基音值,浊音和清音信号量度及幅值信息来为每帧样本产生一组量化指标的量化装置,其中,前述基音确定装置包括确定基音估计值的估计装置和从该估计值中确定基音值的基音精选装置,基音精选装置定义了一组分布于由前述估计装置确定的基音估计值中的具有分数值的候选基音值,确定该帧频谱中的峰值,对每一个所述候选基音值而言,将上述频谱中所确定的峰值与该帧频谱中不同谐波(kω0)处的幅值卷积,此处ω0=2π/P,P是上述候选基音值,k为一整数,并且将上述候选基音值中给出最大相关性者选为该帧的基音值。
21.一种如权利要求20所要求的语音编码器,其中,基音估计装置包括用频域技术分析样本(频域分析)的第一种估计装置,用时域技术分析样本(时域分析)的第二种估计装置及由所述频域分析和时域分析结果导出所述基音估计值的装置。
22.一种如权利要求20或21所要求的语音编码器,其中,基音精选装置将前述峰值的幅值与能确定该峰值的频谱的指数衰减包线上谐波频率kω0处的幅值相卷积。
23.一种如权利要求20到22任何一项所要求的语音编码器,其中,前述发音装置为每帧决定至少一个将该帧划分为浊音和清音部分频谱的截止频率,前述幅值决定装置为每帧对应于由发音装置决定的发音截止频率和由基音决定装置确定的基音值分别产生频域幅值。
24.一种如权利要求23所要求的语音编码器,其中,前述发音装置对每帧分别执行下列步骤(i)导出与由前述决定装置决定的基音值相关的每个谐波频段一个发音量度,(ii)将每一谐波频段的发音量度与一阈值相比较以产生一或正或负的比较结果,(iii)对于高于一尾段截止频率的谐波频段的比较结果施加一定偏置以反转其符号,(iv)将该帧若干谐波频段的偏置后的比较结果求和,(v)对多个不同尾段截止频率实行上述(i)到(iv)操作,并且(vi)选出求得最大和的尾段截止频率作为该帧的发音截止频率。
25.一种如权利要求24所要求的语音编码器,其中,前述发音量度通过将所述谐波频段波形与该频段的一个参考波形相联系而构成。
26.一种如权利要求25所要求的语音编码器,其中,包含有对输入语音信号施加一窗函数,及由窗函数取样的输入语音信号中导出含有前述谐波频段的前述频谱的装置,并且前述参考波形将由该窗函数导出。
27.一种如权利要求20到26任何一项所要求的语音编码器,其中,幅值决定装置为每帧产生一组以由前述基音决定装置决定的基音值有关的谐波频率为中心的不同频段的频谱幅度,并且前述量化装置将这些频谱幅度量化以产生一幅度量化指标的第一部分。
28.一种如权利要求20到27所要求的语音编码器,其中前述基音决定装置为每帧的前导部分决定第一个基音值并为每帧的结尾部分决定第二个基音值,前述量化装置将两者都进行量化。
29.一种如权利要求23到26任何一项所要求的语音编码器,其中,发音装置为每帧前导部分决定第一个前述发音截止频率,为每帧结尾部分决定第二个前述发音截止频率。
30.一种语音编码器,其中,含有一个对输入语音信号进行编码的编码器,该编码器包括对输入语音信号取样以产生数字样本并将该样本划分为每帧含有事先确定个数数字样本的帧的装置,对每帧样本进行分析并产生至少一组线性预测系数的线性预测编码装置,为每帧样本确定至少一个基音值的基音确定装置,不必评估具体谐波频段语音/非语音状态就可为每帧确定一将该帧频谱划分为浊音和清音部分的发音截止频率的语音装置,为每帧样本产生幅值信息的幅值确定装置,用于量化前述线性预测系数,基音值,浊音和清音信号量度及幅值信息来为每帧样本产生一组量化指标的量化装置。
31.一种如权利要求30所要求的语音编码器,其中,前述发音装置对每帧分别执行下列步骤(i)导出与由前述决定装置决定的基音值相关的每个谐波频段一个发音量度,(ii)将每一谐波频段的发音量度与一阈值相比较以产生一或正或负的比较结果,(iii)对于高于一尾段截止频率的谐波频段的比较结果施加一定偏置以反转其符号,(iv)将该帧若干谐波频段的偏置后的比较结果求和,(v)对多个不同尾段截止频率实行上述(i)到(iv)操作,并且(vi)选出求得最大和的尾段截止频率作为该帧的发音截止频率。
32.一种如权利要求31所要求的语音编码器,其中,前述发音量度通过将所述谐波频段波形与该频段的一个参考波形相联系而构成。
33.一种如权利要求32所要求的语音编码器,其中,包含有对输入语音信号施加一窗函数,及由窗函数取样的输入语音信号中导出含有前述谐波频段的前述频谱的装置,并且前述参考波形将由该窗函数导出。
34.一种如权利要求30到33任何一项所要求的语音编码器,其中,前述发音装置为每帧前导部分决定第一个前述发音截止频率,为每帧结尾部分决定第二个前述发音截止频率,前述量化装置将两者都进行量化。
35.一种如权利要求15),24),和31任何一项所要求的语音编码器,其中所述阈值依赖于输入语音信号的一个背景元素的水平。
36.一种如权利要求35所要求的语音编码器,其中前述发音装置依据前述背景元素水平评估前述门限的一个估计值,依据前文定义的E-lf/E-hf,T2/T1,ZC或ER中的一个或几个值修改该估计值,并且进一步依据前文定义的PKY1,PKY2,CM和E-OR中的一个或几个值修改该估计值。
37.一种语音编码器,其中,含有一个对输入语音信号进行编码的编码器,该编码器包括对输入语音信号取样以产生数字样本并将该样本划分为每帧含有事先确定个数数字样本的帧的装置,对每帧样本进行分析并产生至少一组线性预测系数的线性预测编码装置,为每帧样本确定至少一个基音值的基音确定装置,用于定义每帧中浊音和清音信号量度的语音装置,用于为每帧样本产生幅值信息的幅值确定装置,用于量化前述线性预测系数,基音值,浊音和清音信号量度及幅值信息来为每帧样本产生一组量化指标的量化装置,其中,幅值决定装置为每帧产生一组以由前述基音决定装置决定的基音值有关的谐波频率为中心的不同频段的频谱幅度,并且量化装置将归一化的频谱幅度量化以产生一幅度量化指标的第一部分。
38.一种如权利要求37所要求的语音编码器,其中,每帧的频谱幅度该帧的LPC残余信号导出。
39.一种如权利要求38所要求的语音编码器,其中,每帧的频谱幅度通过引用由该帧的预期系数导出的一个LPC频谱而被量化。
40.一种语音编码器,其中,含有一个对输入语音信号进行编码的编码器,该编码器包括对输入语音信号取样以产生数字样本并将该样本划分为每帧含有事先确定个数数字样本的帧的装置,对每帧样本进行分析并为每帧前导部分和结尾部分分别产生一组线性频谱频率(LSF)系数的线性预测编码装置,为每帧样本确定至少一个基音值的基音确定装置,用于定义每帧中浊音和清音信号量度的语音装置,用于为每帧样本产生幅值信息的幅值确定装置,用于量化前述LSF系数组,基音值,浊音和清音信号量度及幅值信息来产生一组量化指标的量化装置,其中,前述量化装置通过下式为当前帧的前导部分定义了一组量化的LSF系数(LSF’2)LSF’2=αLSF’1+(1-α)LSF’3式中LSF’3和LSF’1分别为量化的当前帧的尾段和紧邻前一帧LSF系数,α为第一个矢量量化码表中的一个矢量,定义当前帧的每组前导和尾段部分的LSF系数LSF’2和LSF’3为第二个矢量量化码表中相应LSF量化矢量Q2,Q3及相应预期值P2,P3的组合,此处P2=λQ1,P3=λQ2,λ为一常数,Q1为紧邻前一帧尾段的LSF量化矢量,分别从第一个矢量码表和第二个矢量码表中选择前述矢量Q3和前述矢量α,以最大限度减低由线性预测编码装置产生的当前帧的LSF系数(LSF2,LSF3)与相应的量化LSF系数(LSF’2,LSF’3)之间的失真。
41.一种如权利要求35所要求的语音编码器,其中前述第二个矢量量化码表中包括至少两组前述矢量,通过引用这些矢量相应一组LSF系数组可以被量化。
42.一种如权利要求40或41其中前述失真的量度由下述误差函数ε给出ε=W1(LSF’3-LSF3)2+W2(LSF’2-LSF2)2,其中W1和W2为经验加权。
43.一种如权利要求1到42任何一项所要求的语音编码器,其中进一步包括了解码器,提供对由前述编码器产生的量化指标进行解码及再处理解码后的量化指标以产生表征输入语音信号的数字样本序列的装置。
44.一种如权利要求37到39任何一项所要求的语音编码器,其中包括了对由前述编码器产生的量化指标进行解码及处理解码后的量化指标以产生表征输入语音信号的数字样本序列的解码器,其处理装置包括对频域幅值加权,所述频域幅值由前述幅度量化指标的第一部分导出,所述幅度量化指标的第一部分通过加权由LPC频谱比例导出的因子得到的,所述LPC频谱比率由解码后的预测因子和相应的峰值内插的LPC频谱导出。
45.一种用于对表征LSF系数,基音值,浊音和清音信号量度和幅值信息的一组量化指标进行解码的语音编码器,包括,从前述表征基音值,浊音和清音信号量度和幅值信息的量化指标中导出一个激励信号的装置,过滤与前述LSF系数对应的激励信号的LPC合成滤波器,比较LPC合成滤波器输出基音周期能量和相应激励信号基音周期能量的装置,调整激励信号以减小所比较的基音周期能量差距的装置及过滤调整后的激励信号再一级LPC合成滤波器。
全文摘要
包含有采用分析与合成装置编码器(图2到图6)的语音编码器该编码器采用了需进行频域和时域共同分析的基音决定算法,发音决定算法和频域幅值决定算法,具有对所确定值的量化装置一种解码器也同时被描述。
文档编号G10L25/90GK1274456SQ9980118
公开日2000年11月22日 申请日期1999年5月18日 优先权日1998年5月21日
发明者S·P·维勒特, A·M·康多兹 申请人:萨里大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1