语音解码器的制作方法

文档序号:6745368阅读:202来源:国知局
专利名称:语音解码器的制作方法
技术领域
本发明涉及一种适用于数字语音通信的语音解码器。
背景技术
在低速率语音编码算法中,一种基于CELP(码激励线性预测编码)的编码算法,比如LD-GELP(ITU-T/G728),VSELP和SPI-CELP(RCR/STD27-C),被广泛使用。虽然并不限于这种CELP系列的语音编码算法,但为了在具有内部状态的编码器和解码器的编码算法中正确地进行一次编码,编码器内部状态同解码器内部状态保持一致是必需的。这里,可以想象例如一个如图6的IIR滤波器,术语“内部状态”对应于y(t-1),…,y(t-n),直至最后时刻的输出信号序列。换句话说,当利用过去时刻的解码结果正在进行一次解码时,就象在语音编码算法中那样,该过去时刻的解码结果对应于上面提及的“内部状态”。一种自适应码书是它的具有代表性的例子。
然而,由于出现在传输线路上的误码,解码器有时会在被破坏的码字上进行解码。在这种情形下就会发生编码器的内部状态同解码器的内部状态的不一致。当这种不一致的内部状态出现时,甚至在正确的码字被使用时,解码也不能以正确的方式进行,而且甚至在误码被修复之后,解码后语音的失真仍要持续一段时间。这样就导致了语音质量大幅度降低。
一种语音解码器被看成是一种能缓解语音质量降低的设备,它被用于如图7中所示的一种PDC(个人数字蜂窝电信系统)全速率算法中。在图7中,参考标号1指的是一个输入码字序列处理单元,它包括一个输入码字序列处理部件11和输入码字序列存贮部件12。参考数字2指的是一个解码处理单元,它包括一个解码处理部件21,一个内部状态处理部件22和一个内部状态存贮部件23。参考数字3指的是一个错误检测单元,用于利用CRC(循环冗余码)检测接收到的输入码字序列In(i)的错误(其中i代表时间,并且取值为I=0,1,2,…)。
当错误检测单元3检测到输入码字序列In(i)中的错误时,它向输入码字序列处理部件11和解码处理部件21输出一个错误检测信号E。
当从输入码字序列In(i)中未检测到错误,并且从错误检测单元3没有错误检测信号(E)输出时,输入码字序列处理部件会从输入码字序列In(i)中消除冗余比特,并且向解码处理部件21输出与码字序列C(i)形式相同的比特。该码字序列C(i)亦被输出至码字序列存贮部件12并存贮在那里。
根据从内部状态处理部件22所提供的内部状态信息So(i),解码处理部件对码字序列C(i)解码,输出一个解码后的语音SP(i),并在解码处理过程完成的时刻向内部状态处理部件22输出内部状态信息Si(i)。内部状态处理部件22读取存贮在内部状态存贮部件23中的内部状态信息So(i),将相同的状态信息输出到解码处理部件21,根据解码处理部件21提供的内部状态信息Si(i),在解码处理部件21中的例程完成之后准备内部状态信息So(i+1),并且在内部状态存贮部件23中存贮内部状态信息Si(i+1)。这样做可以使得当在时刻i解码过程完成时,存贮在内部状态存贮部件23中的内容从So(i)更新为So(i+1)。
假设,在时刻t,从输入码字序列In(t)中发现了错误,并且从错误检测单元3输出了检测信号E。输入码字序列处理部件11以码字B替换码字A,码字A对应于包含在冗余比特已从中消除了的码字序列C(t)中的LSP(线谱对,即,一个合成或逆滤波器的参数,表明语音信号的谱包络)和LAG(即,自适应码书的延迟量,表明语音的基音周期),码字B则对应于存贮在输入码字序列存贮部件12中的码字序列C(t-1)。在替代之后,输入码字序列处理部件11输出一码字序列C(t)。在此时输入码字序列存贮部件12中的内容仍保留同码字序列C(t-1)相同,并且未被更新。解码处理部件21进行上述的解码处理,并且利用输入码字序列处理部件11所提供的码字序列C′(t)更新内部状态。
作为替换目标的LSP和LAG在时间上具有很强的相关性,并且随着时间的推移并不含突变。由此,对每个预定段计算所得的相邻的LSP和LAG的值彼此之间是很接近的。因此,当解码处理以根据紧邻于检测到错误的时刻之前所接收到的正确码字进行时所造成的解码后语音SP(t)的失真要比解码处理根据包含错误的码字来进行时小一些。因此,在错误发生时,语音质量的下降会被减少。
然而,当LSP和LAG以一种传统的方式被替换时,替换后的码字序列C(t)很少能同期望不包含错误的码字序列C(t)保持一致。由此,码字错误的出现使得存贮于内部状态存贮单元23中的内部状态信息So(i+1)同编码器的内部状态保持一致更为困难。因此,甚至当事实上没有错误被检测到,比如从时刻t+s向前,并且一个正确的码字序列C(t+s)能被得到时,解码后的语音SP(t+s)由于内部状态的不一致仍会导致被削弱。特别是,由于LSP和LAG的相关性随着其间发生码字错误的时间s的增加而有减少,因此内部状态的非一致性程度被进一步加大,而且解码语音SP(t+s)的性能也进一步下降。发明公开该发明在前述的背景下已被完成。因此,本发明的一个目的就是提供一种能在从误码中恢复码字之后提高解码后语音质量的语音解码器。
根据本发明,语音解码器基本上包括用于检测通过接收以由一个预定的编码算法压缩的数字数据的形式传送的语音信号的码字序列而得到的一个码字序列中是否包含误码的错误检测装置;用于当由错误检测装置在接收到的码字序列中检测到错误时,根据在错误检测装置检测到误码之前所接收到的码字序列来估计一组正确的码字序列,并且输出所估计的码字序列的第一估计装置;用于根据保留在其中的内部状态信息来解码所估计的码字序列并将其变换成语音信号的解码装置;还有用于以用解码装置得到的解码结果为根据更新内部状态信息的更新装置。语音解码器的特征在于,它还包括第二估计装置,用于根据在不再会有错误被检测到之后接收的码字序列来重新估计在检测到错误的一段时间内的一组正确的码字序列,并且在由错误检测装置在所接收的码字序列中检测到错误但在其后不再有错误被检测到时输出一个估计的码字序列,内部状态信息是根据由解码第二估计装置输出的所估计的码字序列得到的解码结果来更新的。在这种情况下,第二估计装置根据在不再有错误会被检测到后所接收到的码字序列,在检测到错误的时间段内重新估计一个正确的码字序列并输出所估计的码字序列。解码装置解码这组估计的码序列,并且根据该解码结果,由更新装置更新内部状态信息。因此,在误码发生的时间内,解码器与编码器之间内部状态信息被扩大的差异得到了校正。
在这里,第二估计装置可以根据在检测到误码之前收到的码字序列和在不再会有误码被检测到后接收的码字序列来在误码被检测到的时间内重新估计一组正确的码字序列,并且在由检测装置在接收的码字序列中检测到错误但在预先确定的时间流逝之后不再有错误被检测到时输出一组估计的码字序列。
第二估计装置可以根据在不再有误码能被检测到后所有接收的码字序列之中一组紧随不再能有误码被检测到之后接收的码字序列来在检测到误码的时间段内重新估计一组正确的码字序列,并将所估计的码字序列输出。而且,第二估计装置可以根据在不再有错误能被检测到之后所接收的码字序列,在检测到错误的时间段内重新估计一组正确的码字序列,并且输出所估计的码字序列。
在该语音解码器中,第二估计装置可以根据在检测到错误之前所接收的所有码字序列中在紧随错误检测之前接收的码字序列来估计一组正确的码字序列。在这种情况下,第一估计装置可以根据在错误被检测到之前所接收的所有码字序列中的一组刚好就在检测到错误之前所接收的码字序列来估计一组正确的码字序列,正如第二估计装置中的情形一样。
在语音解码器中,第二估计装置可以根据在错误检测到之前接收的码字序列来估计正确的码字序列。在这种情况下,第一估计装置可以根据在错误被检测到之前所接收的所有码字序列中的一组刚好就在检测到错误之前所接收的码字序列来估计一组正确的码字序列,正如第二估计装置中的情形一样。由于这些语音解码器能以很高的精确度估计码字序列,因此,当误码发生期间以及从误码中恢复之后的时间内解码语音质量能被大大提高。
语音解码器还可包括开关装置,用于在由第二估计装置输出的估计的码字序列被解码时切断语音信号的外部输出。在这种情况下,在内部状态信息被更新期间产生的解码语音能被避免作为一种延迟成分向外输出。因此,由误码中恢复出的解码语音的质量能被进一步提高。
内部状态信息可以是一种自适应码书。
附图的简要描述

图1是一个框图,示出了根据本发明的一个实施方案的语音解码器的结构。
图2是一个示出了包含在输入码字序列中的误码和图1中语音解码器例程操作模式之间关系的视图。
图3是一个示出了图1中语音解码器例程操作转换的视图。
图4是一个示出了图1中语音解码器的一个特定的例程操作的例子的视图。
图5是示出了一个利用图1中语音解码器的试验中分段SNR的测量结果的视图;图6是用于解释内部状态的IIR滤波器的例示图;图7是一个框图,示出了一个传统的语音解码器的成分构成。实现发明的最佳方式本发明的一种实施方案将参考附图进行描述1.实施方案的构成图1是一个示出根据本发明的一种实施方案的语音解码器的结构的框图。在图1中,一个输入码字序列处理单元1包括一个输入码字序列处理部件11和一个输入码字序列存贮部件12,同时,一个解码处理单元2包括一个解码处理部件21,一个内部状态处理部件22和一个内部状态存贮部件23。输入码字序列处理部件11包括选择器电路110,150,用于有选择地切换一种操作,一个用于执行常规例程的常规例程部件120,一个用于在误码发生时执行一个例程的错误消除例程部件130,以及一个用于恢复误码的错误恢复例程部件140。参考数字3指的是一个检测单元,4指的是一个开关。
错误检测单元3具有同图3中相同的结构。这个错误检测单元检测包含在通过未示出的传输线传输的输入码字序列In(i)中的误码,产生一个检测信号E,该信号E当在输入码字序列In(i)中检测到误码时变为1,并在没检测到误码时变为0,并且向输入码字序列处理部件11和解码处理部件21输出这个错误检测信号E。2.实施方案的操作2-1.实施方案的总体操作如此构造的实施方案的一个总体操作将被描述。
该实施方案的操作包括一个常规例程,一个错误消除例程和一个错误恢复例程。这些例程的选择依赖于可在输入码字序列中出现的错误的状态。首先将参考图2对此进行描述。现在,如图2中所示,当输入码字序列变化如下“无误→有误→无误→无误”,错误检测信号变化为0→1→0→0。在这种情况下,例程操作的执行以“常规例程→错误消除例程→错误恢复例程和常规例程→错误消除例程”这样一种顺序进行。图3示出了例程操作的转移。在图3中,错误恢复例程和常规例程是在错误消除例程完成之后和当错误检测信号E为0时进行的。也就是说,这个操作只有在输入码字序列的状态从“有误”变成“无误”时才进行。假设输入码字序列在从时刻0到时刻t的时间段内不包含错误,在从时刻t+1到时刻t+s-1的时间段内有错误,而从时刻t+s以后的时间段又没有错误,上面的例程操作将参考图1和图4被逐一地描述。2-2.常规例程首先描述常规例程。错误检测信号E在从时刻0到时刻t的时间段内标示为0。在此情形下,常规例程在时t=1开始,并且在时刻t没有错误被检测到。因此,根据上面提到的状态转移(见图3),该处理的进行从常规例程通过线路0又回到常规例程。
在图1中,当输入码字序列In(t)被提供给输入码字序列单元11时,选择器电路110选择一个端子A1并将输入码字序列In(t)供给常规例程部件120。随后,当常规处理部件120从输入码字序列In(t)中移去冗余比特并将其以码字序列C(t)的形式供给选择器电路150时,选择器电路150选择一个端子A5并将码字序列C(t)提供给解码处理部件21。这个码字序列C(t)亦被输出至输入码字序列存贮单元12并存贮在那里(换句话说,存贮的内容未被改变,只是向其中增加了码字序列C(t))。
解码处理部件21根据内部状态处理部分22所提供的内部状态信息So(t)来解码码字序列C(t)。此时,开关4处于ON状态,并且解码的语音SP(t)输出到随后的步骤。解码处理部件21在解码例程完成的时刻也将内部状态信息Si(t)输出到内部状态处理部件22。内部状态处理部件22读取存在内部状态存贮部件23之中的内部状态信息So(t)并将其输出到解码处理部件21。在解码处理部件21中的处理完成之后,内部状态处理部件22根据由单元21提供的内部状态信息Si(t)产生内部状态信息So(t+1),并将其重新存贮于内部状态存贮单元23。当解码处理在时刻t这样完成时,从内部状态存贮单元23读取的内部状态信息从So(t)变为So(t+1)。2-3.错误消除例程现在将描述错误消除例程。在本例中,错误检测信号E在从时刻t+1到时刻t+s+1的时间段内标为1。在这种情况下,由于在时刻t没有错误发生而在时刻t+1有错误发生,错误检测信号E因此标为“1”。由于这个原因,根据上面提及的状态转移(见图3),处理过程在时刻t+1通过线路1从常规例程转到错误例程。
当输入码字序列In(t+1)在时刻t+1被提供给输入码字序列单元11时,选择器电路110选择一个端子B1。此时,码字序列C(t)从输入码字存贮部件12中读出,并通过选择器电路110提供给错误消除例程部件130。其后,错误消除例程部件130根据码字序列C(t)计算一个估计的码字序列C′(t+1)并将其输出。估计的码字序列C′(i)例如指的是一个通过以一个在时间上具有较大相关性的存在于在错误发生之前的码字序列C(i-1)之中的码字,例如前述的LSP和LAG来替换C(i)中的相应部分而得到的码字序列。
然后,选择器电路150选择一个端子B5,并将估计的码字序列C′(t+1)从错误例程部件130输出到解码处理部件21。通过这样处理,解码处理部件21利用由输入码字序列部件11提供的估计码字序列C′(t+1)实现上述的解码和内部状态的添加。在紧随时刻t+2之后从时刻t+2到t+s-1的时间段内,解码处理部件21也根据如图4中所示的码字序列C(t)产生一组估计的码字序列C′(t+2),…,C′(t+s-1),并且据此进行解码处理和对内部状态的添加。
估计码字序列C′(t+1)如上所述被用于错误消除例程的原因是,由声学意义来看,当解码例程是以从错误发生之前的正确的码字序列估计所得的码字序列为根据来进行时,解码语音的失真度同当解码例程以其中已发生错误的码字为根据来进行时相比要减小一些,因为语音具有时间上的相关性。
2-4.错误恢复例程现在将要描述错误恢复例程。由于从时刻t+s以后不再有错误发生,因此错误检测信号E在时刻t+s为“0”。在此情况下,根据上述的状态转变(见图3),处理过程通过线路“0”由错误例程转至错误恢复例程和常规例程。
在时刻t+s,开关4处于其OFF状态。此时,在输入码字序列处理部件n中,选择器电路110,150分别选择端子C1,C5来驱动错误恢复例程部件140。如图4中所示,错误恢复例程部件140在错误段重新计算码字序列C″(t),…C″(t+s-1),并将结果作为一组估计的码字序列输出。在此情况下,错误恢复例程部件140使用错误出现以前的正确码字序列C(t),其中码字序列C(t)是在输入码字序列存贮单元12中存贮的内容的一部分,而且新的正确码字序列C(t+s)是从输入码字序列In(t+s)中产生的。
在解码处理单元2中,解码处理部件21根据存在内部状态存贮单元23中的内部状态信息So(t)和第二估计码字序列C″(t)来进行一次解码处理。内部状态处理部件22根据解码的结果准备一个同内部状态信息Si′(t)相一致的So′(t+1)。内部状态存贮部件23中的内部状态信息So(t+1)变成So′(t+1)(即,再次更新)。但是,由于此时开关4处于其OFF状态,没有解码语音输出,只有内部状态被更新。然后,如上所述的同样的更新处理根据新近恢复的内部状态信息So′(t+1)和码字序列C″(t+1)被执行。这样的处理被重复进行直至码字序列C″(t+s-1)。作为结果,内部状态存贮部件23中的内部状态信息被更新为So′(t+1),…So′(t+s-1),如图4中所示。
当内部状态信息又被更新至So′(t+s)时,开关4闭合,上述的常规例程根据内部状态信息So′(t+s)和码字序列C(t+s)被启动。也就是说在时刻t+s假设解码处理根据码字序列C″(t),…, C″(t+s-1)在时刻t,…,t+s-1被进行,并且内部状态存贮部件23的内容被增加,解码处理和内部状态存贮单元23的添加在时刻t+s被完成。
以这种方式,根据这个实施方案,当在时刻t+s不再有错误被检测到时,内部状态存贮部件23中在有错误发生的时刻t+1,…t+s-1的内容会被利用码字序列C″(t+1),…,C″(t+s-1)再次更新。这样做,可以使得内部状态存贮部件23中的内容和在编码器一端内部状态存贮部件(未画出)中的内容很接近。作为结果,时刻t+s以后的失真就被减小了。而且,由于开关4在时刻t+s断开,解码语音延迟成分的不被输出。3.实例在进行的试验中,根据本发明的一种语音解码器被应用于一种ACELP的自适应码书中,而且误差作为自适应码书的参数被添加到LAG。在这个试验中,解码处理和内部状态的更新在每个子帧单位的基础上进行,而且误差被添加在第5和第6子帧上。然后,测量分段SNR。接着;如图5中所示的测量结果被得到。在图5中,白方块表示的是当在码字有错误时刻没有进行添值时的分段SNR,而白色圆圈表示的是当在码字有误时进行添加例程时的分段SNR。另一方面,黑色方块表示的是当在错误恢复帧(第7子帧)进行错误恢复例程并且添加例程已被执行时的分段SNR。也就是,由黑色方块表明的测量结果对应于根据本实施方案的语音解码器被应用的情况。
例如,在第11子帧中,当错误恢复例程和添加例程被执行时,分段SNR同其中添加例程被执行的情况相比可以提高4dB,同没有添加例程的情形相比可提高9dB。在这种方法下,可以确定错误恢复例程大大提高在误码出现之后的分段SNR。4.改进的实施方案在上面的实施方案中,估计码字序列C′(t+1),…,C′(t+s-1)不仅可被LSP和LAG代替,也可以由其它具有较大时间相关性的码字替代,或者它也可以由其它方法计算所得。而且,进行估计的时候不仅可以利用刚好就在错误出现之前的码字序列C(t),也可以利用前面的正确的码字序列C(t-1),C(t-2),…。在这种情况下,错误恢复例程部件140利用刚好就在错误发生之前的正确码字序列C(t-1),C(t-2),…,作为输入码字存贮单元12的内容,和从输入码字序列In(t+s)产生的新的正确码字序列C(t+s),来重新计算出错部分的码字序列C″(t+1),…,C″(t+s-1),并输出结果。
当估计的进行既利用了错误发生之前的正确码字序列,又利用了从错误中恢复之后的正确码字序列时,用于再次更新内部状态信息的该第二估计码字序列C(t+1),…,C(t+s-1)可以既使用从错误恢复之后的正确码字序列,又使用刚好就在错误出现之前的码字序列C(t),或者是使用更以前时刻的正确码字序列C(t-1),C(t-2),…。
用于再次更新内部状态信息的第二次估计的码字序列C″(t+1),…,C″(t+s-1)可以仅从错误恢复之后的正确码字序列估计得到。错误恢复之后的码字序列可以只利用紧接着错误恢复之后的码字序列C(t),或者利用正确的码字序列C(t+s),C(t+s+1),…。
第二次估计的码序列C″(t+1),…,C″(t+s-1)并非要在错误发生的整个时间段内计算的。它可以只在该时间段的一部分上计算,并根据计算的结果更新内部状态。
在允许一些延迟的系统中,可以这样安排,开关4在时刻t+s闭合并且输出解码语音。
至于内部状态,使用作为一种代表性的语音编码算法的自适应码书是可取的。但是,内部状态不必仅限于此。
权利要求
1.一个语音解码器包括错误检测装置,用于检测通过接收以由一个预定的编码算法以压缩的数字数据的形式传送的语音信号的码字序列所得到的一个码字序列是否包含码字错误;第一估计装置,用于当由所说的错误检测装置在接收到的码字序列中检测到错误时,根据在由所说的错误检测装置检测到误码之前所接收到的码字序列来估计一组正确的码字序列并将估计的码字序列输出;解码装置,用于根据保留在其中的内部状态信息来解码所说的估计码字序列,并将其变换成语音信号;以及更新装置,用于根据所说的解码装置得到的解码结果更新所说的内部状态信息;所说的语音解码器的特征在于,该语音解码器还包括第二估计装置,用于根据在不再会有错误被检测到之后所接收的码字序列,在检测到错误的一个时间段内重新估计一组正确的码字序列,并且在由所说的错误检测装置在所接收到的码字序列中检测到错误,但在其后不再有错误被检测到时,输出所估计的码字序列;根据通过解码由所说的第二估计装置输出的估计码字序列而得到的解码结果来更新所说的内部状态信息。
2.按照权利要求1的一个语音解码器,其中所说的第二估计装置根据在错误检测到之前接收的码字序列和在不再有错误被检测到以后接收的码字序列,在检测到错误的时间段内,重新估计一组正确的码字序列,并且在由所说的检测装置在所接收到的码字序列中检测到错误但在所说的预定的时间流逝之后不再检测到错误时,输出一组估计的码字序列。
3.按照权利要求1或2的一个语音解码器,其中所说的第二估计装置,根据在不再会有错误被检测到以后接收的所有码字序列中刚好就在不再会有错误被检测到的时刻之后所接收的一组码字序列,在检测到错误的时间段内,重新估计一组正确的码字序列,并将估计的码字序列输出。
4.按照权利要求1或2的一个语音解码器,其中所说的第二估计装置,根据在不再有错误被检测到之后所接收的各码字序列,在检测到错误的时间段内,重新估计一组正确的码字序列,并将估计的码字序列输出。
5.按照权利要求2的一个语音解码器,其中所说的第二估计装置根据在错误检测到之前接收的所有码字序列中刚好就在所说的错误被检测到之前所接收的码字序列来估计一组正确的码字序列。
6.按照权利要求2的一个语音解码器,其中所说的第二估计装置根据在所说的错误被检测到之前所接收的各码字序列来估计一组正确的码字序列。
7.按照权利要求1到6之一的一个语音解码器,还包括开关装置,用于在当由所说第二估计装置输出的估计码字序列被解码时的期间内,切断语音信号的外部输出。
8.按照权利要求1到7之一的一种语音解码器,其中所说的内部状态信息是一个自适应码书。
全文摘要
当在接收到的码字序列中出现错误时,一个错误消除例程部件130被起动,并且根据错误检测到之前所接收的一组码字序列产生一组正确的码字序列。一个解码例程部件21根据这个码字序列进行一次解码处理并根据解码结果更新内部状态。随后,当错误被恢复时,一个错误恢复例程部件140被起动。根据错误检测到之前所接收的一组码字序列和不再有错误被检测到之后所接收的一组码字序列,错误恢复例程部件140在检测到错误的期间内重新估计一组正确的码字序列并产生一组第二估计的码字序列。解码处理部件21根据一组用于将第二次估计的码字序列保留在一个内部状态存贮部件23中的内部状态信息来执行解码过程,并且根据解码结果来更新内部状态信息。通过这种处理,从误码中恢复的解码后的语音质量能够被提高。
文档编号G11B20/18GK1159260SQ96190740
公开日1997年9月10日 申请日期1996年5月20日 优先权日1995年5月22日
发明者仲信彦, 大矢智之 申请人:Ntt移动通信网株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1