一种确定一个语音帧中激励脉冲位置的方法

文档序号:2820042阅读:364来源:国知局
专利名称:一种确定一个语音帧中激励脉冲位置的方法
技术领域
本发明有关一种在一个线性预测语音编码器中,确定一个语音帧中激励脉冲位置的方法,该编码器按照多脉冲规则操作。这样一个语音编码器可以用于一个移动电话系统中,例如,用来在从移动台发送之前,对语音信号进行压缩。
背景技术
概述对本技术来说,按照上述多脉冲规则操作的线性预测语音编码器是已知的;见于,例如,美国专利说明书3624302,它描述了语音信号的线性预测编码,及美专利3740476,它描述了在这样一个语音编码器中,怎样形成预测参数及预测残差信号。
在通过线性预测编码,形成一个仿真语音信号时,从原始信号中,产生多个表征该仿真语音信号的预测参数(ak)。这样,可从这些参数中形成一个语音信号,它不包含自然语音中通常含有的因而不需要在诸如一个移动无线电系统的一个移动站和基站之间的语音发送中加以转换的冗余。从带宽角度来看,更合适的是仅传送预测参数,而不是原始语音信号,因为原始语音信号需要一个更大的带宽。不过,这样在接收器中重新生成语音信号时所构成的合成语音信号,可能会难以理解,这是在原始信号和由预测参数重新生成的合成信号的语音波形间不一致造成的。这些不足之处在美专利说明书4472832(SE-B-456618)中已详细介绍,并且可通过在构成合成语音拷贝时引入所谓的激励脉冲(多脉冲)来得到某种程度的缓解。这可以通过将原始语音输入波形划分为一系列帧来实现。在每个帧内,形成一些确定数目的脉冲,这些脉冲具有与预测参数ak,及语音输入波形和语音拷贝间的预测残差dk相应的不同的幅值和相位位置(时间位置)。每个脉冲都能影响语音波形拷贝,以至于能得到最小的可能预测残差。生成的激励脉冲有一个相对低的比特率,因此,类似于预测参数,能在一个窄带内被编码和传送。这提高了重新生成的语音信号的质量。
在上述已知方法中,激励脉冲是在语音输入波形的每个帧中,通过在一个预测滤波器中对残差信号dk进行加权而在另一个预测滤波器中将各激励信号的生成值反馈回来进行加权来生成的。在两个滤波器的输出信号间进行相关,使相关对于相关信号中的一些信号元达到最大值,这样,就形成了激励脉冲的参数(幅值和相位位置)。通过这种多脉冲算法生成激励脉冲所提供的优势在于,不同类型的声音能用少量脉冲生成(例如八脉冲/帧)。这种脉冲搜索算法通常是关于帧中脉冲的位置。有可能重新生成不发声音(辅音),它通常需要随机放置的脉冲,及发声音(元音),它要求脉冲位置是更集中的。
这些已知方法计算在语音信号的一个帧和其后的帧中,激励脉冲的正确相位位置,而对脉冲的定位,所谓的脉冲布置,仅是依靠对语音信号参数(预测残差,残差信号及前面帧中的激励脉冲参数)的复杂处理来实现的。
如前面所述美专利中介绍的原始脉冲布置方法的一个缺点是,在计算脉冲位置之后实施的编码,在计算和存储方面是复杂的。编码还要求帧中每个脉冲位置用大量的位。此外,从最优组合脉冲编码算法得到的代码字中的位对位错误敏感。从传送器到接收器的传送过程中出现的代码字中的位错误,在接收器中解码时,在脉冲定位方面会造成灾难性的后果。
这可通过限制在每个语音帧中需被发出的激励脉冲的数目来得到缓解。这种可能性是基于这样一个事实,一个帧中的激励脉冲的脉冲位置数目很大,使得能省略帧中一个或多个激励脉冲的精确定位,而在编码和传送后仍能得到质量可接受的重新生成的语音信号。
相应地,还提出了一种方法(见美专利说明5193140),其中,在布置脉冲时,引入了一些相位位置限制,禁止一些数目的相位位置来实现的,这些相位位置对于继已计算的激励脉冲的相位位置之后的那些脉冲来说,是已经确定了的。当帧中第一个脉冲的位置已被计算并被置于其计算所得相位位置时,则帧中随后的脉冲不能再占用该相位位置。该规则对帧中所有的脉冲位置适用。当开始新的下一个帧中的脉冲定位时,帧中所有的位置就都是自由可占的。
近来,在生成合成语音信号时,已提出使用语音编码器中的所谓代码本(code book)例如,见美专利说明书4701954。这种代码本存有一些语音信号代码字,它们在生成合成语音拷贝时用到。代码本可以是固定的,即包含永久代码字,或是自适应的,即当语音拷贝形成时能被更新。也可以用固定和自适应代码本的组合。
发明概述上述这种禁止其中一个位置已配置了一个激励脉冲的一个语音帧中的各相位位置的方法,使得比只用一个限制时,被传送激励脉冲的数目更有限。另外,在提高接收方解码时的相位位置分离性的同时,在传送器一方,更容易编码激励脉冲的相位位置。
不过,所用方法的一个问题是,这种限制可以引起一些重要特性,诸如音调,过渡音等等,复现性较差。这引起接收到的波形失真。另外,按照第一个提到的已知方法寻找所有可能的脉冲位置,使得计算非常复杂,从而需要应用非常复杂的硬件,只能在可获得相位位置的数目在最初很少时才能应用。在有大量相位位置的情况下,在确定所述位置时,通常需要采用复杂度较低的措施。
按照本发明,将第一个提到的不采用限制的已知方法,与后来提到的需要引入一些限制的已知方法相结合。这两种已知方法结合起来,从而,不加入限制地执行一些阶段,然后,加入限制地做一些序贯搜索,这时,在不加限制的第一次搜索中确定的每一个相位位置被作为一个开始点。这允许不受限的计算阶段的数目,相对于给出大致的位置但计算不太复杂的受限计算阶段的数目,可以自由选择,这些不受限计算阶段提供精确的位置,但计算复杂,这样,在计算一个语音帧中激励脉冲的位置(相位位置)时,可以保证总的复杂度的最优化。
由此,本发明方法的特点在于由权利要求1中的特性条款中列出的步骤。
权利要求2-5揭示了按权利要求1的方法的一个独立实施例,而权利要求6定义了另一个独立的实施例。
所提出的方法能用于语音编码器,该编码器根据具有使原始语音信号和LPC合成信号脉冲响应进行相关的多脉冲规则操作,利用或不利用前面所述的代码本。不过,这种方法可由一个所谓的RPE语音编码器应用,其中,几个激励脉冲在帧周期中被同时放置。
图形概述借助于附图,将对所提方法作详细介绍,附图包括

图1是一个简化方框图,说明一个已知的LPC语音编码器;图2是一个时序图,示出了图1的语音编码器中出现的一些信号;
图3用图解法说明一个语音帧,其意图是解释前面已知方法的原理,该方法包含确定激励脉冲时的限制。
图4是一个方框图,说明按本发明规则操作的语音编码器的一部分;图5是一个方框图,说明了有一个自适应代码本的已知语音编码器的一部分,其中,本发明所述方法可以得到应用;图6是用来解释本发明方法的一个流程图;图7是一个用来说明按照本发明,布置脉冲的示意图;图8是一个说明借助于本发明相位校正所做的脉冲布置的示意图;图9是一个方框图,说明按本发明方法操作的语音编码器的一部分;以及图10是一个方框图,说明按另一个本发明方法操作的语音编码器的部分。
实施例具体说明图1是一个简化方框图,说明按照采用相关的多脉冲规则的一个已知LPC语音编码器,这样一个编码器在美专利说明书4472832(SE-B-456618)中作了详细说明。一个从话筒来的模拟语音信号,例如,出现在预测分析器110的输入端。除了一个模一数转换器外,预测分析器110还包括一个LPC计算器和一个残差信号生成器,生成预测参数ak和一个残差信号dk。这些预测参数表征了合成信号和跨接在分析器输入端的原始语音信号。
一个激励处理器120接收两个信号ak和dk,并在由帧信号FC确定的相继各帧内操作,以在每个帧内产生一定数量的激励脉冲。每个脉冲由其幅值Amp和其在帧中的时间位置mp确定。激励脉冲参数Amp,mp被送到编码器131,以后例如,在从无线发送器发送之前,与预测参数ak多路调制。
激励处理器120有两个预测滤波器,它们有相同的脉冲响应,在一个给定的计算或运算阶段P,根据预测参数ak,分别对信号dk和(Ai,Mi)进行加权。还包括一个相关信号生成器,它在每次生成一个激励脉冲时,实现已加权原始信号(Y)和已加权仿真信号(

)间的相关。每次相关都得到一些候选脉冲元Ai,Mi(0≤i<I),其中,一个候选脉冲(1)给出了最小平方误差或最小绝对值。选定的候选脉冲的幅值Amp和时间位置mp在激励信号生成器中计算。在相关信号生成器中,从所需信号中减去选定脉冲Amp,mp的影响,以获得一个新的候选序列。该处理过程被重复一些次,次数与一个帧中所需的激励脉冲数相等。这在前述美专利说明书中有详细说明。
图2是语音输入信号,预测残差信号dk和激励脉冲的时序图。在所示情况下,激励脉冲在数量上为八个,其中,脉冲Am1,m1是第一个被选中的(给出最小误差),其后是Am2,m2,以此类推至整个帧。
在以前已知的,从一些候选Ai,mi中计算每个激励脉冲的幅值Amp和相位mp的方法中,计算出给出αi/φij最大值的候选脉冲i的mp=mi,再计算出与之相联系的幅值Amp,其中,αi是前面所述的信号yn和

n的互相关矢量,φij(下文中称之为Cij,i=j=m)是预测滤波器的脉冲响应的自相关矩阵。当只要上述条件被满足时,任何位置mp都被接受。下标p代表按上面所述的计算一个激励脉冲的阶段。
按照以前已知的激励脉冲位置受限的方法,与图2相应的一个帧按图3所示划分。为了举例说明,假设帧含有N=12个位置。这N个位置形成一个搜索矢量(n)。整个帧被划分为所谓的子块。每个子块含有一定数量的相位。例如,若整个帧含有N=12个位置,如图3所示,可得到四个子块,每块有三个不同的相位。子块在整个帧中有一给定位置,该位置称为相位位置。每个位置n(0<n<N)将属于一定的子块nf(0<nf<Nf)和所述子块中的一定位置f(0<f<F)。
下列关系式通常应用于在含有N个位置的整个搜索矢量中定位n(0<n<N)的位置n=nf×F+f…(1)其中f=一个子块nf中的脉冲相位,F=块nf中相位的个数。
nf=0,…,(Nf-1),f=0,…,(F-1)n=0,…,(N-1)。
还提供有下述关系式fp=n MOD F和nfp=n DIV F…(1)。
图3是一个简图,说明某含有N个位置的搜索矢量的相fp和子块nfp的分配。这里,N=12,F=3且Nf=4。
在已知的使用限制的方法中,脉冲搜索被限制在不属于已提供给那些激励脉冲的相位fp的位置,这些脉冲的位置n在前面阶段已计算过了。
按前面所述,一个给定激励脉冲计算周期的序列号码,在以下将被标记为p,于是,包含限制的已知方法为一个帧周期提供以下计算过程1计算期望的信号yn。
2计算互相关矢量αi。
3计算自相关矩阵Cij(=φij,i=j=m)。
4对p=1,搜索脉冲位置,即mp,它在未被占用的相位f处给出αi/Cij的最大值。
5计算已找出脉冲位置mp的幅值Amp。
6更新互相关矢量αi。
7按照上面关系式(1)计算fp和nfp。
8对p=p+1,同样执行步骤4-7。
用于更清晰地说明已知方法的流程图,在上述美专利说明书519140的图4a和4b中示出。
在发送前已得到的相位f1,…,fp被一起编码,而相位位置nf1,…,nfb(子块),被逐个编码。组合编码可被用于编码相位。每个相位位置逐一由代码字编码。
在一个实施例中,没有有关脉冲布置限制的已知语音处理电路可以按图4所示方式修改,图4说明了包含激励信号产生电路120的语音处理器的那部分。
预测残差信号dk和激励生成器127,通过中间的门122,124,和帧信号FC同步地分别加到相应的滤波器121和123上。由相应的滤波器121,123得到的信号yn和

n在相关生成器125中相关。信号yn代表真正的语音信号,而

n代表仿真语音信号。从相关生成器125中按上面所说得出一个信号Ciq,它含有元素αi和φji。在激励生成器127中,计算提供αi/φij最大值的脉冲位置mp,以此,按上面所述,除所述的脉冲位置mp之外,还可获得幅值Amp。
激励脉冲参数mp,Amp,由激励生成器127传送到一个相位生成器129。该生成器由来自激励生成器127的输入值mp,Amp,按照下面关系式,计算相关的相位fp和相位位置(子块)nfp。
f=(m-1)MOD Fnf=(m-1)DIV F
其中,F=可能的相位数。
相位生成器129可以包含一个处理器,它含有一个只读存储器,用来存储按上面关系式计算相位和相位位置的指令。
然后,相位fp和相位位置nfp被送到编码器131,如图1。该编码器具有与已知编码器相同的组成原理,不过,它是对相位和相位位置编码,而不是对脉冲位置mp。相位和相位位置在接收方被解码,然后解码器按照下式计算脉冲位置mp,mp=(nfp-1)F+fp以此明确确定激励脉冲位置。
相位fp还被送到相关生成器125和激励生成器127上。相关生成器在察觉相位fp被占用的同时存储该相位。当q包含在属于为一个已分析序列所计算出的所有先前fp的那些位置时,不计算信号Ciq的值。已占用的位置是q=nF+fp其中n=0,…,(Nf-1)且fp代表在一个已占用帧中所有的先前相位。类似地,激励生成器127在对信号Ciq和Ciq*比较时,将发现占用的这些相位。
当一个帧的所有脉冲位置均已被计算并执行,下一个帧将要开始时,对于新帧中的第一个脉冲,所有相位被重新自动置为自由可占的。
图5说明了借助于所谓的自适应代码本执行的另一种语言编码过程。预测分析器110产生两个参数ak,dk,这些参数被作为输入值加到标号为111的块。块111处于在图4中激励处理器120之前。
块111含有一个自适应代码本112,它存有一些代码字C1,…,Cn,它们可由一个控制信号更改。这在图5中用选择器113来代表,它根据控制信号的值指向一个给定代码字Ci。代码本112的代码字通过换算电路114,以一种合适方式换算,并且,经换算的代码字被送到一个加法器115的负输入端,其正输入端接收从分析器110来的预测残差dk。在说明的情况下,送到加法器115的预测残差由符号dkl表示。加法器115得出的残差由dk2表示。预测参数ak(从分析器110出来不改变)和新的预测残差dk2被送到图4中的激励生成器120。
送给选择器113的控制信号来源于一个环路,它包含一个具有滤波参数ak的自适应滤波器116,一个加权滤波器117和一个极值生成器118。残差信号dk2送给滤波器116,经滤波的信号在滤波器117中加权。
第一个被选代码字给出一个预测残差dk2,它在滤波器116,117中被滤波和加权并在极值生成器118中形成最小平方误差E。对所有的被选代码字执行上述过程,在换算器114中换算之后,从残差信号dk1中减去给出最小误差的代码字,以得出新的残差信号dk2。这就是在应用一个自适应代码本时,所谓最佳代码字的闭环搜索。当执行本创造性方法时,图5所示电路可以被使用,或者不被使用。这提高了图1所示的预测残差dk的价值。这样,在图4中dk=dk1,当不使用一个自适应代码本时;dk=dk2,当使用一个自适应代码本时。
正如将在以下借助于图9所要介绍的,图5所示电路也被用于某些块(132a-d),用于搜索“闭环”误差,虽然这时代码本由仅用来存储受限计算所得的脉冲布置的存储空间所代替。
预测参数ak及被选代码字Ci(最小误差)的序号i被送到多路调制器并以一种已知方式发送。
现在,借助于图6,对本发明方法作更详细介绍。
在脉冲布置过程的开始,在块1,首先借助于不受限制的已知方法确定j个激励脉冲。这是通过前面介绍的已知方式计算的。帧中的脉冲位置,mp(1≤p≤j)及幅值Amp都是通过这种方式确定的。当运用受限算法计算时,这些脉冲的幅值Amp不需用到,这是因为按上述方法计算得到的每个脉冲位置在此后需被用到,而幅值是不重要的。不过,在另一种具有开始脉冲相位校正的方法中,也需要用到幅值,除非幅值是要重新计算的。
当利用这种已知方法,已经确定了j个脉冲位置mp(p=1,…,j)时,在块2中,按照已知受限方法,开始对一些激励脉冲进行计算。每个激励脉冲的脉冲位置mp和幅值Amp均按上面已知方法确定。于是,从在同一帧中按块1(不受限)确定的一个选定激励脉冲的位置mi(1≤i≤j)处作为开始点执行过程,计算个数定为N1个的新激励脉冲(按已知方法受限)。
在受限的第一个计算阶段(块2)之后,按照不受限的已知方法(块1)计算出一个新激励脉冲的位置mk(k=i),此后,与如前面提到的第一个计算阶段相同的受限计算过程也被在第二计算阶段执行,如图6中的块3,尽管这时开始位置是在另一个位置mk(1≤k≤j;k=1)。计算出个数定为N2个的激励脉冲,不过,其中N2可以与N1相等。
然后,借助于受限的已知方法执行的计算阶段继续执行,直到最后一个阶段,如图6中的块4。这样的阶段的数L不需要与按不受限方法(块1)得到的激励脉冲的位置的个数j=p相等。比较合适的是,若发现语音质量是可以接受的,则在执行了较少个计算阶段后中断过程,以使计算减少。也比较合适的是,通过提供比不受限计算所得激励脉冲的位置的初始数目p多的开始位置来提高精度。这样,位置的总的个数将为L=p+pextra,其中extra代表附加位置。这将借助于图7作更详细的说明。
前面提到的总的脉冲位置L=p+pextra,能用于对那些应被允许的脉冲加上另外一些限制,从而降低其后的受限脉冲搜索的复杂性。因此,也有可能禁止占用那些远离由不受限计算所得的那些脉冲位置的相位fp(p=1,…,j)。
按图6,按受限方法的脉冲布置过程,在经过给定个数的阶段后被中断(从脉冲P1开始N1个阶段,从脉冲P2开始N2个阶段,等等)。这将导致从包含任何附加位置Pextra在内的每个初始计算(不受限)所得位置开始的L个脉冲布置。然后,在块5,根据给定判据,确定L个脉冲布置中的哪个应被使用。最符合判据的脉冲布置被保留,而其它的则被舍弃。该判据,即所谓的闭环的形成方式,将在以下借助于图9的方框图具体说明,其中L=4。受限选定的脉冲布置(Amp,mp,p=1,2,…,i,k,r)定位帧中的最终激励脉冲,并相当于相位和相位地址被送到接收器中。那些最初按不受限计算所得的位置(mp,p=1,…,j)不被发送。
按上述的计算阶段的算法示于附录1。
图7是不受限计算所得的激励脉冲和附加脉冲,以及受限计算所得的那些脉冲布置的图解说明。脉冲P1,P2,P3和P4是那些按原来已知方法(图6中块1)计算所得的激励脉冲。这些脉冲分别有相位位置n1,n2,n3和n4。除了这些脉冲,在所说明情况下,按照相同的已知方法,还计算出具有相位位置n5和n6的两个脉冲位置Pe1和Pe2。这样,相位位置n1-n6提供了开始位置,用于计算数目为6的,按照受限已知方法计算的脉冲布置(图6,块2-4)。这样,可以得到两个“额外”脉冲布置,在按照前述法则检测“最佳”脉冲布置时,它们可被包含在内。在图7中,在各个脉冲布置中的起始脉冲由一粗实线和一个方格标记,而在各脉冲放置中的计算脉冲由断续线和圆圈表示。
然后,受限计算所得的及属于所有开始脉冲P1-P4和附加脉冲Pe1,Pe2的不同脉冲布置,按闭环法则测试。被发现是“最佳”的脉冲布置,即有最小误差的布置,被选中并发送。其余的脉冲布置在这个特定帧中不被用到。
作为前述激励脉冲的位置计算的一种替换,可以在将限制考虑在内的同时,调整不受限制计算所得的激励脉冲的相位。在这种情况下,为按所述法则发现是最好的脉冲布置选择各相位fp。
对于在一个帧中不受限制计算所得的开始脉冲的总数中的每一个开始脉冲,定义一个搜索域,它由帧中开始脉冲位置周围的一个规定大小的时间区间组成。然后,在所有计算脉冲的位置都需位于搜索区间的限制下,基于每个开始脉冲计算一个脉冲布置。这样,除得到了所关心的那个开始脉冲的位置外,还得到少量位于其余开始脉冲搜索区间内的那些脉冲的位置。该过程在每个剩余开始脉冲处重复并得出一些脉冲布置,其中在每个布置中的一个脉冲总是与各开始脉冲的确切位置一致,而其余脉冲的位置位于各剩余开始脉冲的搜索区间内。
除了上述脉冲布置限制外,还有一些限制被加到对得到的不同脉冲位置mp的编码上。在执行闭环测试前,这个条件被用于按前面所述检测的不同位置上。编码限制意味着,一些所谓的可编码矢量被选中,其中每个矢量对应于上述受限计算的脉冲布置。
在含有N个位置的总的搜索矢量中的位置n(0≤n≤N)通常为n=nf×F+F;其中f=子块(相位位置)nf中的相位,且F=块nf中的相位的数目。
这里,应用这样的限制,对那些已选中的矢量,在一个给定的脉冲布置(矢量)中的所有位置的脉冲相位应该不同。剩余部分被舍弃不用。
这样得到的所有矢量被认为是可编码的,并在随后作闭环测试,对于各开始脉冲位置来说是“最佳”的那个脉冲布置的各相位值被传送给接收器。
通过编辑和使用以按总相位调整的递减顺序排列的不同候选者的列表,计算和测试的复杂性可保持不变,其中,在一个测试中是“下一个最佳”的候选,在下一次测试中第一个被检查,以此类推至整个帧。
上述相位位置调整的算法在附录2中详细说明。
图8说明了上述激励脉冲的相位调整,激励脉冲根据上述不受限算法得出。图8a)示出了由不受限计算得出的那些激励脉冲P1,P2,P3和P4,它们与图7最上面所示的脉冲P1-P4相一致。
为一个帧中不受限计算所得的开始脉冲总数中的每个开始脉冲P1-P4定义一个搜索区间S1,S2,S3和S4,它由帧中开始脉冲周围的一个时间区间组成,如图8b)。每个这些搜索区间之外的脉冲位置是不允许脉冲放置的,这样就构成了限制。在各搜索区间找到少量允许脉冲位置。例如,各搜索区域包括两个脉冲位置,它们是由距离不受限计算所得脉冲位置mi最近的那些位置形成的。随后,计算一些脉冲布置,它们可由在每个开始脉冲位置周围的那些允许“边位”形成。
图8c)说明一个脉冲布置,它以脉冲P1作为开始脉冲来计算,所形成的其他三个脉冲中,两个脉冲P2和P4它们有一个相对于这些后面的开始脉冲的初始位置的计算所得相位偏离增量,而第三个开始脉冲P3,按本例,被给出一个相对于其相关开始脉冲位置的相位偏离。这使得总的相移=2。
以开始脉冲P2作为起始点,图8d)说明了两个脉冲,P1和P4,怎样被从与它们相关的起始脉冲位置处左移一步,以及第四个脉冲P1,怎样被右移一步。这使得总的相移=3。
以开始脉冲P4作为起始点,图8d)说明了两个脉冲,P2和P3,怎样被从与它们相关的起始脉冲位置处右移一步,以及第一个脉冲P3,怎样被从与之相应的起始脉冲位置处左移一步。这使得总的相移=3。
于是,可以编辑下表只取两个开始脉冲位置为例,这些开始脉冲位置有序列号2和5,其中下面的fp1,fp2按12页,2行的关系式计算得到。其中,F=3。
然后,获得的可编码的各脉冲布置,按照前述的“闭环”互相比较,并且,“最佳”可编码布置的各相位值被传送。脉冲的幅值Am可从作为各脉冲布置基础的开始脉冲的幅值得到,或为了考虑各计算脉冲的相位移动,重新计算幅值。
“最佳”可编码布置的相位fp和相位位置nfp的值被传送。
图9是一个方框图,说明应用本发明方法的语音编码器的一部分。
如在图4中所说明的,块125代表一个相关生成器,它生成一个代表信号Y和

间相关的矩阵ciq=(Cij,αi)。其后是激励发生器127,它选择i个候选脉冲中给出最佳相关(=最小平方误差)的那个激励脉冲的幅Amp和脉冲相位mp。在确定一个给定激励脉冲的位置和幅值之前,先进行总数为I的相关。在前面的已知实施例中,激励发生器127后跟一个相位位置生成器(图4中的129)。在图9的实施例中,以一个内存单元126代替连接。该存储单元存储按不受限方法得到的选定激励脉冲的幅值Amp和相位位置mp(p=1,…,j)(图6,块1)。
存储单元126后跟一个选择单元,它由图9中的块128a标示,及一个可控开关128b。选择单元128a使开关128b选择一些支路,以将一个给定支路连接到存储单元126上,这样,按前面图6中的块2,存储在存储单元126中的一个给定位置mp(p=1,…,J)可形成一个开始值。
示于图中的最上面的分支(a)包括一个与激励生成器127有相同设计的激励生成器127a;一个与图4中相位生成器129有相同设计的相位生成器129a,具有用于更新的到激励生成器127a去的反馈,参看图4;一个存储单元130a;以及一个根据上面所述,计算“闭环”误差E1的计算单元132a,这样,它具有与图5电路相同的功能但没有代码本。取代代码本的是,提供有一个存储器,在它的存储位置上,与在单元127a,129a和130a中受限计算所得的脉冲布置a有关的值可被存储。当使用一个自适应代码本时,预测残差dk2被送到单元132a,在其它情况下,则加预测残差dk1。预测参数ak也被提供。
其余分支(b),(c)和(d)包括与(a)一致的单元。这样,每个分支都包含能按受限方法确定脉冲位置的这些单元。这样,每个分支都提供由受限计算所得的一个脉冲布置,即,按图9,在从存储单元126得来的四个开始值mp的基础上,总数为四的受限脉冲布置(参看图7)被执行。当然,若用到四个以上的开始值时,支路个数将被扩展。类似地,单元132b,132c和132d用来分别存储支路(b),(c)和(d)的相应脉冲布置,并计算“闭环”误差E2,E3和E4。
选择单元128控制开关触头128b接到最上面分支(a),并将从不受限脉冲搜索(图6中块1)得出的已占用位置mp(p=1,…,j)送给激励生成器127a。在所述不受限脉冲搜索后,激励生成器127a还从相关生成器中接收更新值(Cij,αi)。现在,既然这些单元已经知道了哪些单元已被占用,激励生成器127a和相位生成器129a可以执行一个从给定位置i开始的受限脉冲搜索。经过一个给定次数的搜索,得出的结果给出一些激励脉冲,它们的幅Amp和脉冲位置mp存储在单元130a中,在这种情况下,存储的是相位fp和相位位置nfp,而不是脉冲位置mp。
然后,选择单元128a将开关128b接到支路(b)的激励生成器127b,并且由下一支路(b)开始执行一个脉冲搜索,该搜索从具有位置m2的第二个开始值开始。该搜索以与支路(a)所执行的搜索相同的方式执行,并且此后,以类似的方式扩展到支路(c)和(d)。在脉冲搜索的开始,同样的cij值被送给所有支路,因为该值在搜索最佳激励脉冲时(受限)用于测试“候选脉冲”。
在给定个数的平行阶段M完成后,所有支路(a)-(d)将已计算了它们的激励脉冲的幅值和相位位置/相位位置地址,并将这些值存入存储单元134。然后,计算单元132a-132d根据所用的代码字和从各自支路来的激励脉冲,分别计算输入语音帧和合成语音帧间的误差。于是,输入语音信号被加到每个单元132a-132d上。所有这些单元计算闭环误差,并将各自的误差值E1,E2,E3和E4作为输出信号送出。可以选择,例如,平方加权误差E=Σnew(n)2]]>其中,ew(n)是在语音帧中,输入(真实)语音信号与合成语音信号值y(n)与

(n)的差。
若不用自适应代码本计算单元132a-132d的功能是相同的,并且误差E1-E4也以相同方式计算。
带有相应开关触头133b的选择单元133a检测不同脉冲布置的计算误差值E1,E2,E3和E4,并每次一个地将这些值交给存储单元134。存储单元一个接一个地接收该值并进行选择,当一个输入值是“较好”值时,即该值是一个比与之紧邻的前面的值小的误差值E时,存储该输入值。在单元134接收值E1-E4的同时,单元寄存最小值,即,“最佳”脉冲布置。在已经这样确定了“最佳”脉冲布置后,存储单元134收集这个“最佳”脉冲放置的幅度Amp,相位fp和相位位置nfp的值。这些值通过到各自存储单元130a-130d的连接中的一个得到,并被交给编码器131。编码器131被接到一个多路调制器135上,如图1所示。
这样,编码器131接收这样一些值受限编辑的“最佳”激励脉冲的幅值Amp和相位/相位位置fp,nfp。如前面提到的,在发送前,得到的相位f1,…,fp能被共同编码,而得到的相位位置nf1,…,nfp被逐个编码。相位位置和相位位置地址被以独立信息字编码是必要的。这提高了区别性并从而减少了错误可能性。
图10是一个类似于图9的方框图,但做了如前面描述的(图8)对开始脉冲的相位调整。选择器128b和其后的用于受限计算脉冲位置的块127a-d,129a-130a-d被省略了,取代它们的是一个单元100,它为每个起始脉冲P1-P4(图8)定义了前述的搜索区间。不允许在该搜索区间外放置激励脉冲,从而,引入每个起始脉冲周围搜索区间和相应计算取代了前面所说的按照图9的受限计算。单元100也按照上面所述(前面的表)的脉冲布置的可能数目计算各个脉冲布置,并在考虑代码限制的同时,编辑可能的脉冲布置。这样,这些代码限制在输出端a,b,c和d得到,并且,得到的脉冲布置被送到单元132a-132d,它们以前面所述方式计算各自的闭环误差E1,E2,E3和E4。
既然没有用来在编码器131中编码的选定脉冲布置的各幅值被送到单元100,每个脉冲布置的幅值被从存储单元126送到计算单元132a-132d并送到存储单元134。
当分别编码相位位置和相位位置地址时,这些位置和位置地址可被分别以一种已知方式,两个或更多个地合并在一个包含相应奇偶校验字的信息块中。也可执行分别为相位位置和相位位置地址编码一个具有相应奇偶校验字的单个字的操作。在一个信息字中有几个值的好处是在带宽方面做了节省,尽管其后必须用“harsher”编码以获得较好的保护。尽管在后一种只有一个相位值和相位位置值的情况,可以应用较少保护的较简单编码,但它还是将导致带宽方面的损失。相位的编码可由组合编码来实现。
可以理解的是,图9和10仅说明了怎样构造一个语音编码器的有关电路的规则。实际上,所有单元均可统一到一个微处理器中,它按照图6的流程图及附录1和附录2编排程序执行功能。
与已知的受限和较不复杂的方法相比,利用所提出的这种方法,可以提高语音质量。由于同时应用了受限和不受限方法,因此可以在分别由受限和不受限方法计算得到的激励脉冲的数目间选择比例,并由此得出最佳分配,它为给定的期望语音质量提供最低的计算复杂性。与需对一个语音帧中所有可能位置做极值计算相比,相对来说计算复杂性被大大降低了。
本发明方法在以上连同一个语音编码器一起作了介绍,在语音编码器中,激励脉冲一次一个地放置在位置上,直到一个帧周期被填满。EP-A195487介绍了另一类语音编码器,它按照一个脉冲波形布置过程操作,其中,脉冲间的时间距离Ta是固定的,而不是一个单个脉冲。本发明方法也可由这样一种语音编码器应用。既然这样,一个帧中的禁止位置(参看,例如,上面的图4a,4b)与一个脉冲波形中的各脉冲的位置相一致。
附录1按图6流程图的计算阶段的算法。
修改后的计算阶段1-8在U.S.5193140中介绍。
以下以[2]标志U.S.5193140。
中的自相关矩阵φij在以下应用的描述部分记为C(i,j)=Cij。
在当前情况下,[2]中的脉冲位置mp和mq被分别记为msp和msq。
以及说明的描述部分中的量值αi,此处记为a(i)。
中类似的αm相对于以下的a(m)。
1.计算所需信号y(n)。
2.计算互相关矢量a(i)并拷贝到asave(i)。
3.计算协方差(或自相关)矩阵C(ij)。
4.对于p=1至p+extra.
4.1寻找msp,即在未占用位置给出a(i)*a(i)/C(ij)=a(ms)*a(ms)/C(ms,ms)最大值的脉冲位置。
4.2对已找出脉冲位置msp计算幅值A(msp)。
4.3更新互相关矢量a(i)。
4.4从可能位置中除去找到的位置msp。
5. 对于q=1至p+extra5.1拷贝asave(i)到a(i)中。
5.2指定m1的值为msq。
5.3为开始脉冲位置m1计算幅值A(m1)。
5.4更新互相关矢量a(i)。
5.5对于p=2至p5.5.1寻找mp,即在未被占用相位给出a(i)*a(i)/C(ij)=a(m)*a(m)/C(m,m)最大值的脉冲位置。
5.5.2计算所找到脉冲位置mp的幅值A(mp)。
5.5.3更新互相关矢量a(i)。
5.5.4排除与mp同相的位置。
5.6 计算闭环误差E。
5.7 若误差E比以前所存的一组位置和幅的误差小,则将位置mp存为mwp并将幅值A(mp)存为A(mwp)。
6按[2]中的关系式(1)计算所存储的(所获得的)一组位置mwp的fp和nfp。
附录2相位位置调整算法按附录1定义1.按前面部分的步骤1-4计算最佳位置msp和幅值A(msp)。
(附录1)2.由msp最佳位置构造p位置的n=((p+extra)over p)组合。
3. 对于组合i=组合1至组合n3.1通过在每个方向上将每个位置移动一位来摇动组合1中所有的位置,若所得位置组在利用受限定位码时是可编码的,则将它们按相对于未移动组合i的总相移的顺序列于列表最小移动表中。
4.0对于j=1至nb_to_test4.1将最小移动表的最顶端的位置拷贝到mvp。
4.2从列表最小移动表中消去最顶端的位置。
4.3从相应的未移动组合i中拷贝幅A(msp)到A(mvp)。
4.4利用mvp和A(mvp)计算闭环误差Ej。
4.5若误差Ej比以前所存的一组位置和幅的误差小,则将位置mvp存为mwp并将幅值A(mvp)存为A(mwp)。
5. 按[2]中的关系式(1)计算所存储的(所获得的)一组位置mwp的fp和nfp。
权利要求
1.一种方法,用于在一个线性预测语音编码器中,确定给定数目(N=j+N1,N2)的激励脉冲在一个语音帧中的位置,其中,对一个被分为语音帧的语音信号进行分析,分析后的语音信号被合成(110)以形成一个预测残差(dk)和一些预测参数(ak),它们,按照第一种方法,被用于一个激励处理器(120),激励处理器根据所述参数(ak),为每个所需激励脉冲,滤波预测残差(dk)和从激励处理器得来的参数(Ai,mi),其中,按照第二种方法,一个语音帧也被分为一些相位位置(nf)且每个相位位置被分为一些相位(n),且加入了限制,以达到这样的效果,即在放置一个激励脉冲时已占用的相位,对于每个随后的激励脉冲和语音帧中的每个相位位置来说,是禁止被使用的。其特征在于a)按照第一种方法,在一些计算阶段(j)计算激励脉冲的位置。b)按照第二种方法,在一些计算阶段(N1,N2,…,NL)计算激励脉冲的位置,每个阶段都以按照第一种方法计算所得的一些位置(mi,mk,mr)中的一个作为开始点,以此获得一些(L)脉冲布置中的一个;并且,c)在分别按照第一和第二种方法的计算阶段的数目(分别为j和max[N1,N2])间选择比例,以在给定语音质量的前提下,得到最小计算复杂度。
2.一种方法,用于在一个线性预测语音编码器中,确定给定数目(N=j+N1,N2)的激励脉冲在一个语音帧中的位置,其中,对一个被分为语音帧的语音信号进行分析,分析后的语音信号被合成(110)以形成一个预测残差(dk)和一些预测参数(ak),它们被用于一个激励处理器(120),激励处理器根据所述参数(ak),为每个所需激励脉冲,滤波预测残差(dk)和从激励处理器得来的参数(Ai,mi),其中,一个语音帧被分为一些相位位置(nf)且每个相位位置被分为一些相位(n),且加入了限制,即在放置一个激励脉冲时已占用的相位,对于每个随后的激励脉冲和语音帧中的每个相位位置地址(nf)来说,是禁止被使用的。其特征在于a)当为一个给定语音帧开始布置激励脉冲时,确定最符合给定准则(max.[a(i)*a(i)/C(i,j))的多个脉冲位置(mp,p=1,…,j),该准则没有应用这样一个限制,即对随后的激励脉冲来说,禁止使用已被占用的相位。b)在按照a)计算了所述多个脉冲位置后,通过将按a)计算所得的第一个脉冲位置(m1)作为开始位置,确定进一步的第一个多个脉冲位置(mp,p=1,…,i),不过,要加入所述的限制,即对随后的脉冲位置,禁止占用已被占用的相位。c)重复执行按照b)的计算阶段,不过,其开始位置是按照a)计算所得的第二个脉冲位置(m2),且确定另外的第二个多个脉冲位置(mp,p=1,…,k);并且d)计算按照步骤b)和c)得到的脉冲位置布置中的哪一个最符合所述准则,并选择最佳布置的激励脉冲的位置。
3.按照权利要求2所述的方法,其特点在于第一个脉冲位置(m1)是第一个不受限计算所得的计算脉冲位置,且第二个脉冲位置是下一个不受限计算所得的计算脉冲位置。
4.按照权利要求2所述的方法,其特点在于在步骤c)后,至少执行一个进一步的步骤c1),c2),…,其中,随后的每个阶段都是由一个第三,第四,等等,脉冲位置(mr)作为开始值执行的。
5.按照权利要求2-4所述的方法,其特点在于按照所述第一种方法计算的脉冲位置的数目,比按所述第二种方法计算的脉冲位置的最小数目小。
6.一种方法,用于在一个线性预测语音编码器中,确定给定数目(N=j+N1,N2)的激励脉冲在一个语音帧中的位置,其中,对一个被分为语音帧的语音信号进行分析,分析后的语音信号被合成(110)以形成一个预测残差(dk)和一些预测参数(ak),它们被用于一个激励处理器(120),激励处理器根据所述参数(ak),为每个所需激励脉冲,滤波预测残差(dk)和从激励处理器得来的参数(Ai,mi),其中,一个语音帧被分为多个子块(nf)且每个相位位置被分为一个多个相位(n),其中加入了限制,对于每个随后的激励脉冲和语音帧中的每个相位位置(nf)来说,在放置一个激励脉冲时已占用的相位是被禁止使用的;其特征在于a)为一个给定语音帧确定多个脉冲位置(m1,m2,…,mj)中的哪一个最符合一定准则(max.[a(i)*a(i)/C(i,j)]),该准则没有应用对随后的激励脉冲禁止使用已占用的相位这一限制。b)以给定数目的所述脉冲位置(m1,m2,…,mj)周围的一个时间区间(S1,S2,…)的形式,形成一个搜索区域,该所述脉冲位置是由不受限计算得到的,其中,对于继续的搜索,每个搜索区间内的脉冲位置是允许的。c)按照b)的限制,形成多个脉冲布置,其开始点是按照a)不受限计算所得的每个相应开始脉冲(m1,m2,…,mj),其中,一个或多个脉冲被从其开始脉冲位置移动一个或多个位置,从而获得一个脉冲布置的组合,其位置是在搜索区间内,由开始脉冲位置推导出来的。d)根据下列关系式,选择按照c)计算所得的那些脉冲布置n=nf×F+f其中n是在语音帧中,一个给定的脉冲位置;nf是语音帧中一个给定子块的序数;f是子块中总共F个相位中的一个相位,f不可以与每个所述脉冲布置组合中的位置取相同的值;e)选择按照步骤c)和d)得到的,最符合所述准则的那个脉冲位置的布置。
全文摘要
一种在一个线性预测语音编码器中,确定给定数目(N=j+N1,N2)的激励脉冲在一个语音帧中的位置的方法。该方法是两种已知方法的组合。按照本发明,在按照第一种方法执行的一些计算阶段(j)中计算激励脉冲的位置,然后,在按照第二种方法执行的一些计算阶段(N1,N2,…,NL)中计算激励脉冲的位置,其中,每个计算阶段都以按第一种方法计算所得的一些位置(m
文档编号G10L19/10GK1186561SQ9619440
公开日1998年7月1日 申请日期1996年4月10日 优先权日1995年4月12日
发明者J·P·H·斯韦德贝里 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1