用于分析-合成celp型语音编码的自适应窗的制作方法

文档序号:2822020阅读:305来源:国知局
专利名称:用于分析-合成celp型语音编码的自适应窗的制作方法
技术领域
本发明总的涉及数字通信,具体地,涉及语音或话音编码(声码器)和译码方法和设备。
对本发明的教导所关心的一种话音通信系统使用码分多址(CDMA)技术,诸如由EIA过渡性标准IS-95A原先规定的这种技术,以及它的后来的修订本和对它的改进。这种CDMA系统是基于数字扩频技术,它在单个1.25MHz射频频谱段上发送多个独立的用户信号。在CDMA中,每个用户信号包括不同的正交码和伪随机二进制序列,它调制一个载波,扩展波形的频谱,因此允许很大数目的用户信号共享同一个频谱。用户信号在接收机中通过相关器被分开,只允许来自选择的正交码的能量被解扩频。其代码不匹配的、其它用户信号没有被解扩频,这样,它只贡献噪声,因此给出了由系统产生的自干扰。系统的SNR由想要的信号功率对所有的干扰信号的功率总和的比值来确定,通过系统处理增益或对基带数据速率的扩频带宽而被改善。
如在IS-95A中所规定的CDMA系统使用可变速率话音编码算法,其中数据速率可以作为语音图案(话音活动性)的函数在20毫秒帧上逐帧地动态地改变。该业务信道帧可以以全部、1/2、1/4或1/8速率(分别为9600、4800、2400和1200bps)发送。对于每个较低的比特速率,发射机功率(Es)按比例降低,因此,使得能够增加信道中的用户信号的数目。
在低的比特速率下[例如,每秒约4000比特(4kb/s)和更低,诸如4,2和0.8kb/s]长途电话质量语音重现已证明是一个困难的任务。尽管许多语音研究者作出努力,在低的比特速率下编码的语音的质量一般不适合于无线和网络应用。在传统的CELP(代码激励的线性预测)算法中,不能有效地产生激励,以及在话音时间间隔期间在剩余信号中存在的周期性没有被适当地利用。而且,CELP编码器和它们的派生物没有显示在低的比特速率时满意的主观上的性能。
在传统的分析-合成(“AbS”)语音编码中,将语音波形划分成一系列接连的帧。每个帧具有固定的长度,并被划分成整数个相等长度的子帧。编码器通过试验和误差搜索过程产生激励信号,由此每个用于子帧的候选激励被加到合成滤波器,将所得的合成语音段与想要的目标语音段进行比较。计算失真量度,搜索机制识别在允许的候选者集合中间的对于每个子帧的激励的最佳(或接近最佳)选择。因为这些候选者有时作为矢量被存储在代码本中,将该编码方法称为代码激励线性预测(CELP)。在其它时间,在需要它们用于搜索时通过预定的产生机制产生这些候选者。这种情形具体地包括,多脉冲线性预测编码(MP-LPC)或代数代码激励线性预测(ACELP)。对于规定选择的激励子帧所需要的比特是在每个帧中、被发送到接收机的数据分组的一部分。
通常激励在两级中形成,其中激励子帧的第一近似是从包含过去的激励矢量的自适应代码本中选择的,然后修正的目标信号被形成为用于第二AbS搜索运行的新的目标,它使用上述的程序。
在增强的变量速率编码器(TIA/EIA/IS-127)里的松弛CELP(RCELP)中,输入的语音信号通过时间曲折(time warping)处理过程被修正,以便确保它与简化的(线性)音调(pitch)轮廓一致。该修正如下执行。
将语音信号划分成帧,并进行线性预测来产生剩余信号。然后执行剩余信号的音调分析,并将整数个音调值(每个帧计算一次)发送到该译码器。将该发送的音调值内插,得出逐个样本的音调估值,正如音调轮廓所规定的。接着,在编码器中修正剩余信号,产生修正的剩余信号,它在感觉上类似于原先的剩余信号。此外,该修正的剩余信号在间隔一个音调周期(由间距轮廓规定)的样本之间呈现很强的相关性(如该音调轮廓所定义的)。将该修正的剩余信号通过从线性预测系数得出的合成滤波器进行滤波,以便得到修正的语音信号。剩余信号的修正可以按美国专利No.5,704,003中描述的方式来完成。
对于RCELP的标准编码(搜索)程序,除了两个重要的差别以外,类似于常规的CELP。第一,该RCELP自适应激励是通过使用音调轮廓对过去的编码激励信号进行时间曲折而得到的。第二,RCELP中的分析-合成目的是得出在合成的语音与修正的语音信号之间的最好的可能一致。
本发明的第一目的和优点是提供实施自适应地修正子帧边界和自适应地确定子帧内的窗口尺寸和位置的分析-合成(AbS)型声码器的方法和电路。
本发明的第二目的和优点是提供时域实时语音编码/译码系统,至少部分基于代码激励线性预测(CELP)型算法,该语音编码/译码系统使用自适应窗口。
本发明的再一个目的和优点是提供一种算法和相应的装置,通过利用具有CELP或松弛的CELP(RCELP)模型的新的激励编码方案,克服许多上述的许多问题,其中将图案分类器用于确定一种最好地描述在每帧中的语音信号的字符的分类,然后通过使用类别特定结构的代码本来编码该固定的激励。
本发明的另一个目的和优点是提供用来实施分析-合成(AbS)型语音编码器的方法和电路,其中该自适应窗口的使用使得能够更有效地分配相当有限数目的比特来描述激励信号。这导致在低到4kpbs或更低的比特速率时,与传统上使用CEPL型的编码器相比较改进了语音质量。
通过提供一种改进的时域的、CELP型话音编码器/音码器的方法和设备,克服上述的和其它的问题并实现了本发明的目的和优点。
当前优选的语音编码方案模型使用用于产生和编码该固定代码本激励的新的类别相关的方法。该模型保留了RCELP方法,以便有效地产生和编码用于话音帧的该自适应代码本贡献。然而,该模型对于每个多个剩余信号类别的每个,诸如话音,过渡,和非话音,或对于强周期性,弱周期性,不稳定的(过渡),和非话音,引用不同的激励编码策略。该模型利用提供用于闭环过渡/话音选择的分类器。对于话音帧的固定代码本激励是基于增强的自适应窗方法,它被证明在4kb/s和更低的速率下得到高质量的语音方面是有效的。
按照本发明的一个方面,将子帧内的激励信号限制为在子帧内的选择间隔以外为零。将这些间隔在这里称为窗。
按照本发明的另一个方面,揭示了用于确定这些窗的位置和尺寸并识别对于给出脉冲幅度的适当选择是特别重要的、那些激励信号的关键段的技术。子帧和帧的尺寸允许改变(以控制的方式),以便适应语音信号的本地特性。这提供了有效的窗编码,而该窗口不用跨越在两个相邻的子帧之间的边界。通常,按照输入或目标语音信号的本地特性来调整这些窗口的尺寸和它们的位置。正如这里所采用的,定位窗口是指根据短期能量图案,把窗口放置在与该剩余信号有关的能量峰值附近。
按照本发明的再一个方面,激励帧的高效率编码是通过对这些窗口本身进行处理,并分配全部或几乎全部可提供的比特以编码在这些窗口内的区域来达到的。
再按照本发明的教导,用于编码在窗口内的信号的减小复杂性的方法是基于三进制数值幅度1,-1,和+1的使用。该减小复杂性的方法也是基于利用在周期性语音段中在接连的窗口之间的相关性。
按照本发明的长途电话质量语音编码技术是时域方案,它利用取决于包含在短时间的语音信号段中的信息的性质和信息量,以不同的数据速率给出和编码语音信号的新的方式。
本发明针对用于编码输入语音信号的方法和设备的各种实施例。该语音信号可以直接从被用来进行话音电话呼叫的语音换能器,诸如话筒,的输出得出的。可替换地,该输入语音信号可作为通过通信电缆或网络的数字数据流被接收,它们首先在某个远端位置被采样并从模拟变换成数字数据。作为一个例子,在用于无线电话系统的固定的台址或基站中,基站处的输入语音信号典型地可以从地面线路电话电缆到达。
总之,该方法具有以下步骤(a)把语音信号样本划分成帧;(b)确定在帧内的至少一个窗口位置;以及(c)编码对于该帧的激励,由此全部或几乎全部非零激励幅度位于该至少一个窗内。在当前的优选实施例中,该方法还包括步骤对于每个帧得出剩余信号,以及通过检验该得出的剩余信号来确定该至少一个窗的位置。在更优选的实施例中,该得出的步骤包括平滑该剩余信号的能量轮廓,以及通过检验剩余信号的平滑的能量轮廓来确定该至少一个窗的位置的步骤。该至少一个窗可被定位,以便具有与子帧边界或帧边界中的至少一个相一致的边缘。
同时按照本发明,提供了用于编码语音信号的方法,包括以下步骤(a)把语音信号样本划分成帧;(b)对于每个帧得出剩余信号;(c)把每个帧中的语音信号分类到成多种类别中的一种类别;(d)通过检验帧的该剩余信号来识别在该帧中的至少一个窗口位置;(e)通过使用按照帧的类别选择的多个激励编码技术之一,编码该帧的一个激励;并对于至少一个类别,(f)把全部或几乎全部非零激励幅度限制在窗口内。
在一个实施例中,这些类别包括话音帧,非话音帧,和过渡帧,而在另一个实施例中,这些类别包括强周期性帧,弱周期性帧,不稳定帧,和非话音帧。
在优选实施例中,该分类语音信号的步骤包括从该剩余信号形成平滑的能量轮廓的步骤,以及考虑在该平滑的能量轮廓中的峰值位置的步骤。
该多个代码本之一可以是自适应代码本,和/或该多个代码本之一可以是固定的三进制脉冲编码代码本。
在本发明的该优选实施例中,该分类的步骤使用开环分类器,后面跟随闭环分类器。
在本发明的优选实施例中,该分类的步骤使用第一分类器,把一个帧分类为非话音帧或不是非话音帧之一,第二分类器,用于把不是非话音帧分类为话音帧或过渡帧之一。
在本方法中,该编码的步骤包括以下步骤把帧划分成多个子帧;以及在每个子帧内放置至少一个窗口,其中该放置至少一个窗口的步骤把第一窗口放置在一个作为该帧的音调的函数的位置处,以及放置随后的窗口,作为该帧的音调的函数和作为第一窗口的该位置的函数。
识别至少一个窗口的位置的步骤最好包括平滑该剩余信号的步骤,且该识别步骤考虑在该剩余信号的该平滑的轮廓中能量峰值的存在。
在本发明的实践方面,子帧或帧的边界可被修正,以使得窗口整个地位于该修正的子帧或帧内,并定位该子帧或帧的边界,使之该修正的帧或子帧的边缘与窗口的边界一致。
概括地,本发明是针对语音编码器和用于语音编码的方法,其中该语音信号由加到合成滤波器的激励信号代表。将该语音信号划分成帧和子帧。分类器识别语音帧属于几种类别的哪个类别,并应用不同的编码方法来表示用于每种类别的激励。对于某些类别,将一个或多个窗口识别为用于其中全部或几乎全部激励信号样本由一个编码方案分配的帧。通过更精确地编码重要的激励段,来改进了性能。通过识别该平滑的剩余能量轮廓的峰值,从线性预测剩余确定这些窗口位置。该方法调整该帧和子帧的边界,以使得每个窗口整个地位于一个修正的子帧或帧内。这消除了当单独地编码帧或子帧时引起的人为限制,而不管在帧或子帧边界上该语音信号的局部特性。
当结合附图阅读本发明的详细说明时更明白本发明的上述和其它的特征,其中

图1是具有适合于实践本发明的电路的无线电话的一个实施例的方框图;图2是显示被划分成多个(3)基本子帧的基本帧的图,以及也显示一个搜索子帧;图3是用于得出语音剩余信号的平滑能量轮廓的电路的简化方框图;图4是显示输出帧类型指示到语音译码器的帧分类器的简化方框图;图5显示具有自适应代码本第一级和三进制脉冲编码器第二级的二级编码器;图6是示例性窗口采样图;图7是按照本发明的方法的逻辑流程图;图8是按照本发明的当前的优选实施例的语音编码器的方框图;图9是图8所示的激励编码器和语音合成块的方框图;图10是显示图8的编码器的运行的简化逻辑流程图;图11-13是显示图8的编码器的运行的逻辑流程图,具体地,分别用于话音帧,过渡帧,和非话音帧的激励编码器和语音合成块;以及图14是结合图8和图9所示的语音编码器运行的语音编码器的方框图。
参照图1,图上显示按照本发明的话音编码方法和设备运行的扩频无线电话60。对于其中可实施本发明的可变速率无线电话的说明,也参考1998年8月18日公布的、共同授权的美国专利No.5,796,757。美国专利No.5,796,757的揭示内容作为整体在此引用。
应当首先看到,无线电话60的某些块可以用分立电路元件实施,或被实施为由适当的数字数据处理器,诸如高速信号处理器,执行的软件子程序。替换地,可以采用电路元件和软件子程序的组合。因此,随后的说明不打算将本发明的应用限制在任何一个特定的技术实施例。
扩频电话60可以按照TIA/EIA临时标准,用于双模宽带扩频蜂窝系统的移动台-基站兼容性标准,TIA/EIA/IS-95(1993年7月),和/或按照这个标准的以后的改进和修订本来运行。然而,与任何特定的标准或空中接口技术说明的兼容性并不认为是对本发明的实施的限制。
也应当首先指出,本发明的教导并不限于使用于码分多址(CDMA)技术,或扩频技术,但也可在时分多址(TDMA)技术中,或某些其它多用户接入技术中(或在单用户接入技术中)被实施。
无线电话60包括天线62,用于接收来自蜂窝站点(可被称为基站(未示出))的RF信号,和用于发送RF信号到基站。当运行在数字(扩频或CDMA)模式时,RF信号被相位调制,以便传送语音和信令信息。用于分别接收和发送相位调制信号的增益控制的接收机64和增益控制的发射机66被耦合到天线62。频率综合器68在控制器70的引导下把需要的频率提供给接收机和发射机。控制器70包括较慢速度微处理器控制单元(MCU),用于通过编码译码器72接口到扬声器72A和话筒72B,以及键盘和显示器74。话筒72B通常可被认为输入语音换能器,它的输出被采样和被数字化,以及按照本发明的一个实施例形成加到语音编码器的输入。
通常,MCU负责无线电话60的总的控制和运行。控制器70优选地包括较高速度的数字信号处理器(DSP),适合于实时处理接收的信号和发送的信号,以及包括语音译码器10(见图14)用于按照本发明译码语音,和语音编码器12,用于按照本发明编码语音,它可被称为语音处理器。
接收的RF信号在接收机中被变换成基带,并被加到相位解调器76,它从该接收信号得出同相(I)和正交(Q)信号。I和Q信号由适当的A/D变换器被变换成数字代表,以及被加到多指(例如三个指F1-F3)解调器78,每个指包括一个伪随机码(PN)产生器。解调器78的输出被加到组合器80,它通过去交织器和译码器81A以及速率确定单元81B把一个信号输出到控制器70。被输入到控制器70的数字信号表示接收的编码语音样本或信令信息。
加到发射机66的输入,是按照本发明编码的语音和/或信令信息,是从控制器70通过卷积编码器,交织器,Walsh(沃尔什)调制器,PN调制器和IQ调制器(它们合一起被显示为方块82)而得出的。
在描述可被构建成按照本发明编码和译码语音的语音通信设备的一个适当的实施例后,现在参照图2-13给出语音编码器和相应的译码器的当前的优选实施例的详细说明。
参照图2,为了执行对输入语音的LP分析,以及为了把要被发送的数据打包成对于每个固定的帧的间隔的固定数目的比特,语音编码器12具有固定的帧结构,在这里被称为基本帧结构。每个基本帧被划分成M个相等(或几乎相等)长度的子帧,在这里被称为基本子帧。M的一个适当的(但不是限制的)数值是3。
在传统的AS编码方案中,用于每个子帧的激励信号通过搜索操作被选择。然而,为了达到高的有效的、低比特速率的语音编码,对于编码每个子帧可提供的低数目的比特使得很困难或不可能得到激励段的适当的精确代表。
本发明人看到在激励信号中重要的活动性是随时间不均匀地分布的。而是,激励信号有某些自然出现的间隔,它们包含大多数重要的活动性,在这里称为活动性间隔,在活动性间隔以外,把激励信号设置为零,几乎很少或没有丢失信息。发明人也发现通过检验线性预测剩余的平滑的能量轮廓来识别活动性间隔的位置的技术。因此,发明人确定人们可以找到活动性间隔的实际时间位置,在这里称为窗口,以及人们可以把编码工作集中在相应于活动性间隔的窗口内。这样,可提供用于编码激励信号的有限的比特速率可被用来有效地代表激励的重要的时间段或激励的子间隔。
应当指出,虽然在某些实施例中,可以希望所有的非零激励幅度位于窗口内,但在其它实施例中,为了增强的灵活性,可以希望允许至少一个或几个非零激励幅度处在窗口以外。
子间隔不需要与帧或子帧速率同步,因此,希望调整每个窗口的位置(持续时间)适合于语音的本地特性。为了避免引入大量比特附加开销用于规定窗口位置,发明人利用在激励段窗口位置中存在的相关性,因此限制了可允许的窗口位置的范围。已发现一种避免扩展比特用于规定窗口持续时间的适当的方法是使得窗口持续时间取决于话音的语音的间距,以及对于非话音的语音保持窗口持续时间固定不变。项目将更详细地描述本发明的这些方面。
由于每个窗口是要被编码的重要的实体,希望每个基本子帧包含整数个窗。如果不是这种情况,则一个窗可能被分裂在两个子帧之间,以及不能利用在窗口内存在的相关性。所以,对于AbS搜索处理过程,希望自适应地修正子帧尺寸(持续时间),以便确保在要被编码的激励段中存在整数个窗。
相应于每个基本子帧,有一个搜索子帧与它有关,它是相邻的时刻集合,具有与基本帧的相偏离的起始点和结束点。仍旧参照图2,因此,如果基本子帧从时间n1扩展到n2,相关的搜索子帧从时间n1+d1扩展到n2+d2,其中d1和d2具有数值零或某个小的正的或负的整数。d1和d2的大小被规定为总是小于一半的窗口尺寸,以及它们的数值被选择为使得每个搜索子帧将包含整数个窗。
如果一个窗跨越在基本子帧边界上,则子帧或者被缩短或者被伸长,以使得该窗被整体地包含在下一个基本子帧或当前的基本子帧中。如果窗的中心位于当前的基本子帧内,则子帧被伸长,以便子帧边界与窗的结束点相一致。如果窗的中心位于当前的基本子帧以外,则窗被缩短,以便子帧边界与窗的开始点相一致。下一个搜索子帧的开始点因此被修正为紧接在先前的搜索子帧的结束点之后。
对于每个基本帧,按照本发明的方法产生M个相邻的搜索子帧,它们一起构成在这里被称为的搜索帧。搜索帧的结束点根据基本帧的结束点被修正,以使得它与相应的基本帧有关的最后的搜索子帧的结束点相一致。被使用来规定用于整个搜索帧的激励信号的比特,最终被打包成用于每个基本帧的数据分组。所以,到接收机的数据的传输符合大多数语音编码系统的惯用的固定帧结构。
发明人发现自适应窗和自适应搜索子帧的引入大大地改进AbS语音编码的效率。现在给出进一步的细节,有助于了解本发明的语音编码方法和设备。
首先将给出用于定位窗口的方法的讨论。语音剩余信号的平滑能量轮廓被得出和被处理,以便识别能量峰值。参照图3,剩余信号是通过线性预测(LP)加白滤波器14滤波语音而形成的,其中线性预测参量被定期地更新,以便跟踪语音统计特性的改变。剩余信号能量函数是通过区剩余样本信号的非负函数,诸如平方值或绝对值,而形成的。例如,剩余信号能量函数在平方块16中被形成。方法然后通过线性或非线性平滑运算,诸如低通滤波运算或中值平滑运算,来平滑信号。例如,在平方块16中形成的剩余信号能量函数在低通滤波器18中受到低通滤波,得出平滑的能量轮廓。
本优选的方法使用在方块20中实行的三点滑动窗平均运算。平滑剩余轮廓的能量峰值(P)通过使用自适应能量门限值被定位。对于定位已知窗的合理的选择是,把它的中心放置在平滑能量轮廓的峰值处。这个位置然后规定一个间隔,其中最重要的是对具有非零脉冲幅度的激励建立模型,即规定上述的活动间隔的中心。
在描述用于定位窗口的优选的方法后,现在将讨论用于分类帧的方法以及用于找出窗口中的激励信号的类别有关的方法。
对于编码在各个窗口内的激励所需要的比特的数目是重要的。因为在给定的搜索子帧中可以出现多个窗口,如果每个窗口被独立地编码,则将需要对于每个搜索子帧的过量的比特的数目。幸运地,发明人确定,对于周期性语音段在同一个子帧中不同的窗口之间有很大的相关性。取决于语音的周期性或非周期性特性,可以采用不同的编码策略。为了在编码对于每个搜索子帧的激励信号时利用尽可能多的冗余度,所以希望把基本帧分类为类别。编码方法然后可对于每个类别被定做和/或被选择。
在话音语音中,平滑的剩余能量轮廓的峰值通常以间距周期间隔出现,以及相应于间距脉冲。在本上下文中,“间距”是指在话音的语音段中周期性的基频,以及“间距周期”是指该周期性的基本周期。在语音信号的模型过渡区,它在这里是指不稳定区域,波形没有具有周期性或平稳随机的字符,以及通常它包含一个或多个孤立的能量突发(如在破裂音中)。对于周期性语音,窗口的持续时间或宽度可被选择为间距周期的某种函数。例如,窗口持续时间可被做成间距周期的固定的分数。
在本发明的一个实施例中,如下面描述的,用于每个基本帧的四类分类法提供满意的解决方案。在这个第一实施例中,基本帧被分类为强周期的,弱周期的,不稳定的,或非话音的帧。然而,正如下面参照另一个实施例描述的,可以使用三类分类法,其中基本帧被分类为话音的、过渡的、或非话音的帧之一。使用两种分类(例如,话音的和非话音的)以及四种以上的类别,也属于本发明的范围内。
在本优选实施例中,采样速率是每秒8000样本(8ks/s),基本帧的尺寸是160个样本,子帧的数目是M=3,以及三个基本子帧的尺寸是53个样本,53个样本,和54个样本。每个基本帧被分类为以下四个类别之一强周期的,弱周期的,不稳定的,以及非话音的。
参照图4,帧分类器22把每个基本帧两个比特发送到接收机的语音译码器10(见图14),以便标识类别(00,01,10,11)。下面描述四个基本帧类别的每个类别,连同它们各自的编码方案。然而,正如上面提到的,应当指出,带有不同数目的类别的替换的分类方案在模型情形和应用项中甚至是更有效的,很有可能进一步优化编码策略。这样,以下对当前的优选的分类和编码策略的说明,不应当在对本发明的实践的限制的意义上进行阅读。
强周期性帧这个第一类别包含在字符上具有高的周期性的语音的基本帧。搜索帧中的第一窗口与间距脉冲有关。因此,人们可合理地假定,接连的窗大约位于接连的间距周期间隔。
第一窗在话音语音的每个基本帧中的位置被发送到译码器10。在搜索帧内随后的窗被放置在离第一窗的接连的间距周期间隔。如果间距周期在基本帧内变化,则每个基本子帧的、计算的或内插的间距值被使用来定位在相应的搜索子帧中接连的窗。当间距周期小于32个样本时,使用16个样本的窗口尺寸,以及当间距周期等于或大于32个样本时,使用24个样本的窗口尺寸。在接连的周期帧序列的第一帧中窗的开始点使用四个比特被规定。在同一个搜索帧内随后的窗在先前的窗的开始以后一个间距周期处开始。在每个随后的话音搜索帧中的第一窗位于通过把一个间距周期加到先前的窗的开始点而预测的开始点的相邻处。然后,搜索处理过程确定精确的开始点。例如,两个比特被使用来规定开始点与预测值的偏差。这个偏差可以称为“抖动”。
应当指出,对于各个代表所使用的特定的数目的比特是随应用项特定的,以及可以很大地变化。例如,本发明的教导肯定不限于当前优选地使用四个比特,用来规定第一帧中的窗的开始点,或使用两个比特,用来规定开始点与预测值的偏差。
参照图5,两级AbS编码技术被使用于每个搜索子帧。第一级24是基于“自适应代码本”技术,其中激励信号的过去的段被选择为对子帧中激励信号的第一近似。第二级26是基于三进制脉冲编码方法。参照图6,对于尺寸为24个样本的窗,三进制脉冲编码器26识别三个非零脉冲,从样本位置0,3,6,9,12,15,18,21中一个;第二脉冲位置从1,4,7,10,13,16,19,22中进行选择;以及第三脉冲从2,5,8,11,14,17,20,23中选择。因此,对于规定三个脉冲位置的每个位置需要三个比特,以及对于每个脉冲的极性需要一个比特。类似的方法被使用于尺寸为16的窗。重复进行与在搜索子帧的第一窗中相同的脉冲图案,代表在同一个搜索子帧中以后的窗。所以,对于这些以后的窗不需要附加比特。
弱周期性帧这个第二类别包含呈现一定程度的周期性、但缺乏第一类别的强的规则的周期性字符的语音的基本帧。因此,人们不能假定接连的窗位于接连的间距周期间隔。
在话音语音的每个基本帧中每个窗的位置由能量轮廓峰值确定,以及被发送到译码器。如果通过对于每个候选位置执行AbS搜索处理过程而找出该位置,可以得出改进的性能,但这个技术导致较高的复杂性。对于每个搜索子帧仅仅一个窗,使用24个样本的、固定的窗尺寸。三个比特被使用来通过使用量化的时间栅格规定每个窗的开始点,即,允许窗的开始点出现在8个样本的倍数。实际上,窗位置被“量化”,由此减小时间分辨率,连同比特速率上相应的减小。
正如第一分类那样,使用两级分析-合成编码方法。再次参照图5,第一级24是基于自适应代码本方法以及第二级26是基于三进制脉冲编码方法。
不稳定的帧这个第三类别包含其中语音既不是周期的也不是随机的基本帧,其中剩余信号包含一个或多个不同的能量峰值。对于不稳定的语音帧的激励信号是通过识别相应于平滑的能量轮廓的峰值的位置的、每个子帧的窗内的一个激励,来代表的。在这种情形下,每个窗的位置被发送。
在话音的语音的每个基本帧中每个窗的位置由能量轮廓峰值确定,以及被发送到译码器10。正如弱周期性情形那样,如果通过对于每个候选位置执行AbS搜索处理过程而找出其位置,则可得到改进的性能,但是以较高的复杂性为代价。优选地使用32个样本的固定的窗尺寸以及每个搜索子帧仅仅一个窗。另外,正如弱周期性情形那样,通过采用量化的时间栅格规定每个窗的开始点,即,允许窗的开始点出现在8个样本的倍数,由此减小时间分辨率,以便减小比特速率。
单个AbS编码级被使用,因为自适应代码本对于这种类别不总是有用的。
非话音的帧这个第四类别包含不是周期性的、和其中语音在字符上呈现为像随机那样的基本帧,而没有强的孤立的能量峰值。激励是通过使用对于每个基本帧的稀疏的激励矢量随机代码本按传统的方式被编码的。
由于所需要的激励信号的随机字符,所以不需要窗口。搜索帧与子帧总是分布与基本帧和子帧相一致。单个AbS编码级可被使用于包含被随机放置的三进制脉冲的固定代码本。
如前所述,以上的说明不应当认为是用来限制本发明的教导和实践。例如,如上所述,对于每个窗,脉冲位置和极性用三进制脉冲编码法被编码,以使得对于三个脉冲和尺寸为12的窗,需要12个比特。一个替换的实施例,被称为窗口脉冲的矢量量化,利用预先设计的脉冲图案的代码本,以使得,每个代码本项目代表一个特定的窗口脉冲序列。这样,有可能使得窗口包含三个以上的非零脉冲,然后,需要具有256项目的代码本。代码本优选地表示窗口图案,它们是在非常大量的、所有可能的脉冲组合中在统计上最有用的代表。相同的技术当然可被加到其它尺寸的窗。更具体地,最有用的脉冲图案的选择是通过计算感觉上加权的费用函数;即与每个图案有关的失真度量,以及选择具有最高的费用的图案或相应地最低的失真,而完成的。
在强周期性的类别中,或在三种类别的系统的周期的类别中(下面描述),如上所述,在每个话音的搜索帧中第一窗口位于通过把一个间距周期加到先前的窗的开始点而预测的开始点的相邻处。然后,搜索处理过程确定精确的开始点。四个比特被利用来规定开始点与预测值的偏差(称为“抖动”)。其窗口位置被这样确定的帧可被称为“抖动的帧”。
已发现,由于出现启动,或先前的帧的间距的主要改变,对于抖动的正常比特分配有时是不适合的。为了更大地控制窗口位置,可以作为替换例引入具有“复位帧”的任选项,其中更大的比特分配被用来规定窗口位置。对于每个周期帧,执行分开的搜索,用于规定窗口位置的两个任选项的每个任选项,以及判决处理过程比较两种情形下的剩余能量图案的峰值,以便选择处理该帧作为抖动帧还是作为复位帧。如果选择复位帧,则称为出现“复位条件”,以及大的数目的比特被使用来更精确地规定所需要的窗口位置。
对于音调值或窗口位置的某些组合,有可能子帧完全不包含窗。然而,对于这样的子帧不采用具有全零的固定的激励,发现分配比特得出用于子帧的激励信号,即使没有窗,也是有帮助的。这可被认为与把激励限制在窗口内的通用原理的偏差。两种脉冲方法只搜索在子帧中的偶数样本位置,找出一个脉冲的最好位置,以及搜索奇数样本位置,找出第二个脉冲的最好位置。
按照本发明再一个方面的另一个方法使用自适应代码本(ACB)引导的窗口,其中额外的窗口被包括在其它的无窗口的子帧中。
在ACB-引导的窗口方法中,编码器检验用于当前的无窗口子帧的自适应代码本(ACB)信号段。这是从早一个间距周期的复合激励中取的一个子帧的持续时间段。这个段的峰值被找出和被选择为当前的子帧的特定的窗口的中心。不需要比特来识别这个窗口的位置。在这个窗口中的脉冲激励然后按照对于不是无窗口的子帧的有用的程序被找出。与用于任何其它“正常的”子帧相同数目的比特可被使用于这个子帧,除非不需要比特来编码窗口位置。
现在参照图7,图上给出按照本发明的方法的逻辑流程图。在步骤A,方法计算LP剩余信号的能量图案。在步骤B,方法设置窗口长度等于24(对于间距周期≥32);以及设置为等于16(对于间距周期<32)。在步骤B后,可以执行步骤C和步骤D。在步骤C,方法使用先前的帧窗口和间距来计算窗口位置,以及计算窗内的能量E,找出最大值Ep,它给出最好的抖动。在步骤D,方法找出窗口位置,它对于复位帧情形获取LP剩余信号的最大的能量Em。
如上所述,抖动是窗口位置相对于由先前的帧给出的位置的漂移加上间距间隔。在同一个帧中的窗口之间的距离对于间距间隔。对于复位帧,第一窗口的位置被发送,以及帧中所有其它的窗口被考虑为离先前的窗口的距离等于间距间隔。
对于不稳定的帧和弱周期帧,每个子帧有一个窗口,窗口位置由能量峰值确定。对于每个窗口,窗口位置被发送。对于周期(话音)帧,只有第一窗口的位置被发送(相对于先前的帧,用于“抖动的”帧,以及绝对地用于复位帧)。在给定第一窗口位置后,其余的窗口按间距间隔进行放置。
参照图7,在步骤E,方法把Ep和Em进行比较,如果Em>>Ep,声称是一个复位帧,否则,方法使用抖动帧。在步骤F,方法确定搜索帧和搜索子帧,以使得每个子帧具有整数个窗。在步骤G,方法搜索窗内的最佳激励。在窗外面,激励被设置为零。在同一个子帧中的两个窗被限制为具有同一个激励。最后,在步骤H,方法把窗位置、间距,和每个子帧的激励矢量的索引号发送到译码器10,它使用这些数值重新构建原先的语音信号。
应当看到,图7的逻辑流程图也可被看作为按照本发明的教导的、用于编码语音的电路的方框图。
现在讨论上面概略地提到的那种三类别分类的实施例。在这个实施例中,基本帧被分类为话音的、过渡的(不稳定的)、或非话音的。现在结合图8-10给出对这个实施例的详细讨论。本领域技术人员将会注意到所涉及的内容与前面描述的基本帧分类实施例的四种类型有某些重叠。
通常,在非话音帧中,固定代码本包含一组随机矢量。每个随机矢量是一段三进制(-1,0,或+1)数的伪随机序列。帧被划分成四个子帧,以及在每个子帧中使用AbS确定最佳随机矢量和相应的增益。在非话音帧中,自适应代码本的贡献被忽略。固定代码本贡献代表该帧中的总的激励。
为了得到有效的激励代表,以及按照前面描述的、本发明的一个方面,话音帧中固定代码本贡献在该帧内的选择的间隔(窗口)以外被限制为零。在话音帧中两个接连的窗之间的间隔被限制为对于一个间距周期。窗口的位置和尺寸被选择为使得它们联合代表理想的固定代码本贡献的最关键段。这个技术把编码器的注意力集中在感觉上重要的语音信号段,确保有效的编码。
话音帧典型地被划分成三个子帧,在另一个实施例中,发现每帧两个子帧是可行的实施方案。帧和子帧的长度可以变化(在控制的方式下)。用于确定这些长度的程序确保窗口决不跨在两个相邻的子帧上。
窗口内的激励信号通过使用矢量代码本被编码,该矢量的分量是三进制数值。对于更高的编码效率,位于同一个子帧内的多个窗被限制为具有相同的固定代码本贡献(即使在时间上平移)。在每个子帧中通过使用AbS来确定最好的代码矢量和相应的增益。也使用通过CELP型方法从过去编码的激励导出的自适应激励。
在过渡类别的帧中固定代码本激励的编码方案也是基于具有窗的系统。允许有六个窗,每个子帧中两个。这些窗可被放置在子帧中任何地方,可能互相重叠,以及不需要相隔一个间距周期。然而,在一个子帧中的窗不可以与另一个子帧中的窗重叠。帧和子帧的长度像话音帧中一样是可以调节的,以及AbS被使用来确定在每个子帧中的最佳固定代码本(FCB)矢量和增益。然而,不像话音帧中的程序,它不使用自适应激励。
关于帧的分类,当前有效的语音编码模型采用两级分类器,来确定帧的类别(即,话音的、非话音的或过渡的)。分类器的第一阶段确定当前的帧是否非话音的。第一阶段的判决被送到通过特性组的分析,这些特性是从修正的剩余信号中提取的。如果分类器的第一阶段声称该帧为“不是非话音的”,则第二阶段在“闭环”中进行,即,该帧按照用于过渡的和话音帧的编码方案被处理,以及选择导致较低的加权的平均平方误差的类别。
图8是实施上述工作原理的语音编码模型12的高级别的方框图。
输入的采样语音在方块30中被高通滤波。在优选实施例中使用由三个双二次(bi-quadratic)滤波段实施的巴特沃斯(Butterworth)滤波器,虽然也可以采用其它类型的滤波器或多个滤波器段。滤波器截止频率是80Hz,滤波器30的转移函数是Hkpl(Z)=Πj=13Hj(Z)1]]>其中每个部分Hj(z)被给出为Hj(Z)=αj0+αj1z-1+αj2z-2bj0+bj1z-1+bj2z-2.2]]>高通滤波的语音被分成非重叠的“帧”,每个160样本。
对于每个帧m,在模型参量估算和倒相滤波单元32中考虑320样本的“块”(来自帧“m-1”的后80个样本,来自帧“m”的160个样本,和来自帧“m+1”的头80个样本,)。在本发明的当前的优选实施例中,样本块是通过使用在描述增强的可变速率编码器(EVRC)语音编码算法的TIA/EIA/IS-127文件的4.2节(模型参量估值)中描述的程序进行分析的,得出以下的参量对于当前的帧的未量化的线性预测系数,(a);当前的帧的未量化的LSP,Ω(m);LPC预测增益,γlpc(m);预测剩余,ε(n),n=0,...319相应于在当前决中的样本;间距延时估值,τ;当前决的两半部分中长期预测增益,β,β1;和带宽扩展相关系数,Rw。
静默检测块36做成关于在当前帧中存在或不存在语音的二进制判决。判决进行过程如下(A)利用在TIA/EIA/IS-127EVRC文件的4.3节(确定数据速率)中的“速率确定算法”。加到这个算法的输入是在先前步骤中计算的模型参量,以及输出是速率变量,Rate(m),它可以取1,3或4的数值,取决于当前帧中话音活动性。
(B)如果Rate(m)=1,则当前帧被声称为静默帧。如果不是(即,如果Rate(m)=3或4),则当前帧被声称为活动帧。
应当指出,本发明的实施例使用EVRC的速率变量仅仅为了检测静默。也就是,Rate(m)并不像传统的EVRC那样确定编码器12的比特速率。
通过以下的步骤内插该帧延时,在延时轮廓估值单元40中对于当前帧计算延时轮廓。
(A)通过使用在TIA/EIA/IS-127文件的4.5.4.5节(内插延时估值计算)中的内插公式,对于每个子帧计算三个内插的延时估值,d(m’,j),j=0,1,2。
(B)然后通过使用在TIA/EIA/IS-127文件的4.5.4.1节(延时轮廓计算)中的公式,对于当前帧中三个子帧的每个子帧计算延时轮廓,Tc(n)。
在剩余修正单元38中,按照RCELP剩余修正算法被修正。修正的目的是确保修正的剩余显示在相隔一个间距周期的样本之间的强的相关性。修正处理过程的适当的步骤列在TIA/EIA/IS-127文件的4.5.6节(剩余的修正)中。
本领域技术人员将会看到,在标准EVRC中,子帧中剩余修正后面跟随在该子帧中激励的编码。然而,在本发明的话音编码中,对于整个当前帧(所有三个子帧)的剩余的修正是在编码该帧中的激励信号之前执行的。
应当再次指出,在当前的优选实施例方面,参考了RCELP,以及任何CELP型技术可以代替RCELP技术而被利用。
开环分类器单元34代表在分类器的两级中的第一级,它确定每帧中的语音的性质(话音的。非话音的或过渡)。帧m中分类器的输出是OCL(m),它的数值可以是UNVOICED(非话音的)或NOT UNVOICED(不是非话音的)。这个判决是通过分析一个320个样本的被高通滤波的语音的块而作出的。这个块x(k),k=0,1...319是在帧“m”中得出的,正如在模型参量估值中,来自帧“m-1”的后80个样本,来自帧“m”的160个样本,和来自帧“m+1”的头80个样本。接着,该块被划分成四个等长度的子帧(每个80个样本)j=0,1,2,3。然后从每个子帧j中的样本计算四个参量能量E(j),峰值Pe(j),零交叉率ZCR(j),和长期预测增益TPG(j)。这些参量接着被使用来得出一组分类判决,每个子帧一个判决。然后组合子帧级别分类器判决,以便产生帧级别判决,作为开环分类器单元34的输出。
关于子帧参量的计算方面,给出以下公式。
能量该子帧能量被规定为E(j)=10log10(Σk=10j80j+79x(k)2)3]]>j=0,1,2,3.
峰值子帧中该信号的峰值被规定为Pe(j)=(Σk=80j80j+79x(k)2)0.5Σk=80j80j+79|x(k)|4]]>零交叉率通过以下步骤对于每个子帧计算零交叉率在每个子帧j中计算样本的平均值Av(j)Av(j)=180Σk=80j80j+79x(k)5]]>从子帧的所有的样本中减去平均值y(k)=x(k)-Av(j)k=80j...80j+79该子帧的零交叉率被规定为ZCR(j)=179Σk=80j80j+78δ(y(k)*y(k+1)<0)6]]>其中如果Q是真实,则δ(Q)=1,如果Q是虚假,则δ(Q)=0。
长期预测增益从在模型参量估值处理过程中得出的数值β和β1,计算长期预测增益(LTPG)LTPG(0)=LTPG(3)(LTPG(3)在这里是在先前的帧中分配的数值)LTPG(1)=(β1+LTPG(0))/2LTPG(2)=(β1+β)/2LTPG(3)=β子帧级别分类以上计算的四个子帧参量然后被利用来对当前块中每个子帧j作出分类判决。对于子帧j,计算分类变量CLASS(j),其数值可以是UNVOICED或NOT UNVOICED。CLASS(j)的数值是通过执行下面详细描述的步骤序列而得出的。在以下的步骤中,数量“话音能量”Vo(j),“静默能量”Si(j)和“差值能量”Di(j)=Vo(j)-Si(j)代表话音子帧,静默子帧的平均能量的编码器的估值,以及这两个数量之间的差值。这些能量估值通过使用下面描述的程序在每个帧的结尾时被更新。
程序<pre listing-type="program-listing"><![CDATA[IfE(j)<30,CLASS(j)=UNVOICEDElse if the E(j)<0.4*Vo(m)if E|(j-1mod3)-E(j)|<25,CLASS(j)=UNVOICED Else CLASS(j)=NOT UNVOICEDElse if ZCR(j)<0.2 if E(j)<Si(m)+0.3*Di(m)AND Pe(j)<2.2 AND|E(j-1mod3)-E(j)|<20,CLASS(j)=UNVOICEDElse if LTPG(j)<0.3 AND Pe(j)<1.3 AND E(j)<Si(m)+0.5*Di(m)CLASS(j)=UNVOICED; Else CLASS(j)=NOT UNVOICEDElse if ZCR(j)<0.5if E(j)<Si(m)+0.3*Di(m)AND Pe(j)<2.2 AND|E(j-1mod3)-E(j)|<20 CLASS(j)=UNVOICEDElse if LTPG(j)>0.6 OR Pe(j)>1.4 CLASS(j)=NOT UNVOICEDElse if LTPG(j)<0.4 AND Pe(j)<1.3 AND E(j)<Si(mj)+0.6*Di(m)CLASS(j)=UNVOICED Else if ZCR(j)>0.4 AND LTPG(j)<0.4 CLASS(j)=UNVOICED Else if ZCR(j)>0.3 AND LTPG(j)<0.3 AND Pe(j)<1.3CLASS(j)=UNVOICEDElse CLASS(j)=UNVOICEDElse if ZCR(j)<0.7If E(j)<Si(m)+0.3*Di(m)AND Pe(j)<2.2 AND|E(j-1mod3)-E(j)|<20 CLASS(j)=UNVOICEDElse if LTPG(j)>0.7 CLASS(j)=NOT UNVOICED Else if LTPG(j)<0.3 AND Pe(j)>1.5 CLASS(j)= NOT UNVOICED Else if LTPG(j)<0.3 AND Pe(j)>1.5 CLASS(j)=UNVOICEDElse if LTPG(j)>0.5If Pe(j)>1.4 CLASS(j)=NOT UNVOICEDElse if E(j)>Si(m)+0.7Di(m),CLASS(j)=UNVOICEDElse CLASS(j)=UNVOICEDElse if Pe(j)>1.4 CLASS(j)=NOT UNVOICEDElse CLASS(j)=UNVOICEDElseIf Pe(j)>1.7 OR LTPG(j)>0.85 CLASS(j)=NOT UNVOICEDElse CLASS(j)=UNVOICED]]></pre>帧级别分类然后,对于每个子帧所得到的类别判决被使用来作出对于整个帧的类别判决OLC(m)。这个判决如下地进行程序<pre listing-type="program-listing"><![CDATA[If CLASS(0)=CLASS(2)=UNVOICED AND CLASS(1)=NOT UNVOICEDIf E(1)<Si(m)+0.6Di(m)AND Pe(1)<1.5AND|E(1)-E(0)|<10AND|E(1)-E(2)|<10AND ZCR(1)>0.4OLC(m)=UNVOICEDElse OLC(m)=NOT UNVOICEDElse if CLASS(0)=CLASS(1)=UNVOICED AND CLASS(2)= NOT UNVOICEDIf E(2)<Si(m)+0.6Di(m)AND Pe(2)<1.5 AND|E(2)-E(1)| <10 AND ZCR(2)>0.4 OLC(M)=UNVOICED Else OLC(m)=NOT UNVOICED.Else if CLASS(0)=CLASS(1)=CLASS(2)=UNVOICED OLC(m)= UNVOICED.Else if CLASS(0)=UNVOICED,CLASS(1)=CLASS(2)=NOT UNVOICED,OLC(m)=NOT UNVOICEDElse if CLASS(0)=NOT UNVOICED,CLASS(1)=CLASS(2)=UNVOICED OLC(m)=UNVOICEDElse OLC(m)=NOT UNVOICED.]]></pre>话音能量、静默能量和差值能量的更新如果当前帧是第三接连的话音帧,则话音能量被如下地更新。
程序<pre listing-type="program-listing"><![CDATA[If OLC(m)=OLC(m-1)=OLC(m-2)=VOICED,THENVo(M)=10log10(O.94*100.1Vo(m)+0.06*100.1E(0))Vo(m)=MAX(Vo(m),E(1),E(2))Else Vo(m)=Vo(m-1)(No update of Voice Energy)]]></pre>如果当前帧被声称为静默帧,则静默能量被更新。
程序<pre listing-type="program-listing"><![CDATA[If SILENCE(m)=TRUE,Si(M)=[e(0)+(1)]/2.0]]></pre>差值能量被如下地更新。
程序<pre listing-type="program-listing"><![CDATA[Di(m)=Vo(m)-Si(m)If Di(m)<10.0Di(m)=10,Vo(m)=Si(m)+10]]></pre>
图8的激励编码和语音合成块42按图9所示地被组织。首先,开环分类器34的判决被使用来把每个帧中的修正的剩余引导到适用于该帧的编码器。如果OLC(m)=UNVOICED,则非话音编码器42a被利用。如果OLC(m)=NOT UNVOICED,则过渡编码器42b和话音编码器42c被引用,以及闭环分类器42d作出判决CLC(m),它的数值可以是TRANSITION(过渡)或VOICED(话音的)。闭环分类器42d的判决取决于通过使用过渡和话音编码器42b和42c由语音的合成引起的加权的误差。闭环分类器42d选择两种编码方案中的一种方案(过渡或话音的),以及所选择的方案被使用来产生合成的语音。每种编码系统42a-42c和闭环分类器42d的运行在下面详细地描述。
首先参照图9的话音编码器42c,首先指出,编码处理过程被概述为以下的一系列步骤,其中每个步骤在下面更详细地描述,以及如图11所示。
(A)确定窗边界(B)确定搜索子帧边界(C)确定每个子帧中FCB矢量和增益(A)对于话音帧的窗边界的确定输入先前的搜索帧的结束点;在先前的搜索帧中最后的“信号出现时间(epoch)”的位置;“信号出现时间”代表在当前帧中重要的活动性的窗的中心;以及对于样本索引号从-16到175(相对于当前基本帧的开始点)的修正的剩余。
输出当前帧中窗的位置。
程序一组以“信号出现时间(epochs)”为中心的窗在话音帧中通过使用在图10的流程图上描述的程序被识别,图10的流程图在某些方面类似于图7的流程图。在话音帧中,修正剩余中的强活动性的间隔通常以周期性方式重现的。当前的优选的话音编码器12通过强制话音帧中的“信号出现时间”必须互相隔开一个间距周期的约束条件,而利用这个性质。为了允许设置“信号出现时间”时的某些灵活性,许可有“抖动”,即,在当前搜索帧的第一信号出现时间与在先前帧的最后的信号出现时间之间的距离可被选择为间距-8与间距+7之间。抖动的数值(在-8与+7之间的整数)被发送到接收机中的译码器(应当指出,可以使用量化的数值,诸如通过把抖动限制为偶数而得出的数值)。
然而,在某些话音帧中,即使使用抖动的窗也不允许足够的灵活性来获得所有重要信号的活动性。在那些情形下,如果“复位”条件是允许的,该帧被称为VOICED RESET(话音复位)帧。在话音复位帧中,当前帧中的“信号出现时间”互相相隔一个间距周期,但第一“信号出现时间”可以被放置在当前帧中的任何位置。如果话音帧不是复位帧,则该帧被称为非复位话音帧或抖动话音帧。
现在将更详细地描述图10的流程图的各个方块。
(方块A)窗长度和能量图案的确定根据当前帧中间距周期选择话音帧中使用的窗的长度。首先,间距周期被规定为在传统的EVRC中对于每个子帧所作出的。如果在当前帧的所有子帧中间距周期的最大值大于32,则选择窗长度为24,如果不是的话,窗长度被设置为16。
将窗口如下地规定为围绕每个信号出现时间(epoch)。如果信号出现时间位于位置e处,则相应的、长度为L的窗从样本索引号e-L/2延伸到样本索引号e+L/2。
然后将“试探的搜索帧”规定为从当前搜索帧的起始点开始到当前基本帧的结尾的样本组。另外,“信号出现时间搜索帧”被规定为在搜索帧起始点以后的L/2样本开始,以及在当前基本帧的结尾处结束(L是当前帧中的窗长度)。在试探搜索帧中修正的剩余信号的样本被规定为e(n),n=0,...N-1,其中N是试探搜索帧的长度。在试探搜索帧中每个样本的间距值被规定为该样本位于的子帧的间距值,以及被规定为pitch(n),n=0,...N-1。
两个“能量图案”的组在该试探搜索帧中每个样本位置处被计算。第一个、局部能量图案,LE_Profile,被规定为修正的剩余能量的局部平均值
LE_Profile(n)=[e(n-1)2+e(n)2+e(n+1)2]/3.
第二个、音调滤波的能量图案,PFE_Profile,被规定为如下如果n+pitch(n)<N(作为在当前样本位于试探搜索帧内后的间距周期的样本)<pre listing-type="program-listing"><![CDATA[PFE_Proile(n)=0.5*[LE_Profile(n)+ LE_Profile(n+pitch(n))]Else PFE_Profile(n)=LE_Profile(n+)]]></pre>(方处B)最好的抖动的信号出现时间的确定确定抖动(在-8与7之间)的最好的数值以估算将当前帧表示为JITTERED VOICED(抖动话音的)帧的有效性。
对于每个候选的抖动值,j1.被规定为由该候选的抖动值的选择引起的信号出现时间的集合的轨迹通过下面的递归来确定初始化epoch
=LastEpoch+j+pitch[subframe
]只要epoch[n]处在信号出现时间搜索范围中,就对于n=1,2...重复进行,epoch[n]=epoch[n-1]+Pitch(epoch[n-1]])2.然后计算该轨迹峰值的位置和幅度,即在该轨迹上具有本地能量图案的最大值的信号出现时间。
最佳抖动值,j*,被规定为具有最大轨迹峰值的候选的抖动。以下的数量以后被使用于进行复位判决J_TRACK_MAX_AMP,相应于最佳抖动的轨迹峰值的幅度,J_TRACK_MAX_POS,相应于最佳抖动的轨迹峰值的位置。
(方块C)最好的复位信号出现时间的确定确定用于把信号出现时间复位到的最好的位置,reset_epoch,以便估算将当前帧表示为RESET VOICED(复位话音的)帧的有效性。该确定如下地进行。
reset_epoch的数值被初始化为信号出现时间搜索范围中局部能量图案LE_Profile(n)的最大值的位置。
规定初始的“复位轨迹”,它是从reset_epoch开始的、周期地放置的信号出现时间位置序列。轨迹是通过递归得出的。
初始化epoch
=reset_epoch只要epoch[n]处在信号出现时间搜索范围中,就对于n=1,2...重复进行,epoch[n]=epoch[n-1]+Pitch(epoch[n-1]])reset_epoch的数值如下地重现计算。在信号出现时间搜索范围中的所有样本索引号k中间,选择满足以下条件(a)-(e)的、最早的(k的最小值)样本(a)样本k处在复位轨迹上的信号出现时间的5个样本内。
(b)间距滤波的能量图案,PFE_Profile,在k处具有本地最大值,被规定为如下PFE_Profile(k)>PFE_Profile(k+j),对于j=-2,-1,1,2(c)间距滤波的能量图案在k处的数值,比起它在reset_epoch处的数值是很大的PFE_Profile(k)>0.3*PFE_Profile(reset_epoch)(d)局部能量图案在k处的数值,比起间距滤波的能量图案的数值是很大的LE_Profile(k)>0.5*PFE_Profile(k)(e)k的位置离开上一个信号出现时间足够远(例如,0.7*pitch(k)个样本)。
如果找到满足以上条件的样本k,则reset_epoch的值被改变到k。
最后的复位轨迹被确定为从reset_epoch开始的、周期地放置的信号出现时间位置的序列,以及通过递归被得到初始化epoch
=reset_epoch只要epoch[n]处在信号出现时间搜索范围中,就对于n=1,2...重复进行,
epoch[n]=epoch[n-1]+Pitch(epoch[n-1]])得出“复位轨迹峰值”的位置和大小,它是在复位轨迹上间距滤波的能量图案的最高值。以下的数量被使用来作出对于复位该帧的判决R_TRACK_MAX_AMP,复位轨迹峰值的幅度,R_TRACK_MAX_POS,复位轨迹峰值的位置。
(方块D)复位帧的判决对复位当前帧的判决如下地进行IF{(J_TRACK_MAX_AMP/R_TRACK_MAX_AMP<0.8)OR先前帧是UNVOICED}AND{(|J_TRACK_MAX_POS-R_TRACK_MAX_POS|>4)}THAN当前帧被声称为RESET VOICED帧;否则当前帧被声称为NON-RESET VOICED帧。
(方块E)信号出现时间位置的确定数量FIRST_EPOCH,是指在当前搜索帧中第一信号出现时间的探索位置,它被规定为如下如果当前帧是RESET帧FIRST_EPOCH=R_TRACK_MAX_POS否则FIRST_EPOCH=J_TRACK_MAX_POS给定FIRST_EPOCH,第一信号出现时间的探索位置后,紧接在这个信号出现时间后面的一组信号出现时间位置被确定为如下初始化epoch
=FIRST_EPOCH只要epoch[n]处在信号出现时间搜索范围中,就对于n=1,2...重复进行,epoch[n]=epoch[n-1]+Pitch(epoch[n-1]])如果先前帧是话音的和当前帧是复位话音帧,则通过使用下面的程序,信号出现时间可被引入到FIRST_EPOCH的左面
程序只要epoch[-n]处在信号出现时间搜索范围中,就对于n=1,2...重复进行,epoch[-n]=epoch[-n+1]-Pitch(epoch[-n]])删除不满足以下条件的所有的信号出现时间k>0.1*pitch(subframe
)以及k-LastEpoch>0.5*pitch(subframe
)给信号出现时间重新加索引号,以使得最左面(最早先)的信号出现时间是epoch

如果当前帧是复位话音帧,则通过使用以下的程序,信号出现时间的位置被平滑化程序对于n=1,2...K重复进行,epoch[n]=epoch[n]-(K-n)*[epoch
-LastEpoch]/(K+1)其中LastEpoch是先前搜索帧中的最后的信号出现时间。
平滑信号出现时间位置的目的是阻止信号周期性中突然的改变。
如果先前帧不是话音帧以及当前帧是复位话音帧,则通过使用以下的程序,把信号出现时间引入到First_Epoch的左面确定AV_FRAME和PK_FRAME,分别是当前基本帧中样本的能量图案的平均值和峰值。
接着,如下地把信号出现时间引入到START_EPOCH的左面只要epoch[-n]处在信号出现时间搜索范围中,就对于n=1,2...重复进行,epoch[-n]=epoch[-n+1]-Pitch(epoch[-n]])直至到达信号出现时间搜索范围的开始端为止。
定义WIN_MAX[n]为由每个重新引入的信号出现时间 epoch[-n],n=1,2...K规定的窗内样本的局部能量轮廓的最大值。验证所有重新引入的信号出现时间满足以下条件(WIN_MAX>0.13PK_FRAME)以及(WIN_MAX>1.5AV_FRAME)如果任何重新引入的信号出现时间不满足以上条件,则消除该信号出现时间和它的左面的所有信号出现时间。
给信号出现时间重新加索引号,以使得在信号出现时间搜索范围中最早先的信号出现时间是epoch

这样确定话音帧的窗口边界后,仍旧参照图9的话音编码器42c,现在描述用于确定话音帧的搜索子帧边界的当前优选的技术(图11,方决B)。
输入先前搜索帧的结束点;以及当前帧中窗的位置。
输出当前帧中搜索子帧的位置。
程序对于每个子帧(0,1,2)进行设置当前搜索子帧的开始点等于跟随在上一个搜索子帧的结尾后面的样本。
设置当前搜索子帧的最后样本等于当前基本子帧的最后的样本。
如果当前基本子帧中最后样本处在窗内,则当前搜索子帧被重新规定为如下如果该窗的中心处在当前基本子帧内,则扩展当前搜索子帧,直至窗的末尾端,即设置当前搜索子帧的末尾端为窗的最后的样本,该窗跨在基本子帧的末尾端(重叠窗)。
否则(窗的中心落在下一个基本子帧中)如果当前帧的索引号是0和1(头两个子帧),则设置当前搜索子帧的末尾端在重叠窗(不包括来自当前搜索子帧的窗)的开始点的前面的样本处。
否则(如果只是最后子帧),设置当前搜索子帧的末尾端为在重叠窗(不包括来自这个搜索子帧的窗以及在窗前面留下附加的空间,以便允许调节这个窗在下一个帧中的位置)的开始点的前面、样本索引号,它是八个样本。
对于其余子帧重复这个程序。
确定搜索子帧后,下一个步骤是识别每个子帧中固定代码本(FCB)的贡献(图11的方块C)。由于窗口位置取决于间距周期,有可能(特别是对于男性讲话者),某些搜索子帧可能没有窗。这样的子帧通过下面描述的特别的程序被处理。然而,在大多数情形下,子帧包含窗,以及对于这些子帧的FCB贡献通过以下的程序被确定。
现在详细描述图11,方块C,带有窗口的话音子帧的FCB矢量和增益的确定。
输入当前搜索子帧中修正的剩余;当前搜索子帧中窗的位置;当前搜索子帧中加权的合成滤波器的零输入响应(ZIR);当前搜索子帧中的ACB贡献;以及当前搜索子帧中加权的合成滤波器的冲击响应。
输出所选择的FCB矢量的索引号;相应于所选择的FCB矢量的最佳增益;合成的语音信号;以及相应于最佳FCB矢量的加权的平方误差。
程序在话音帧中,对于子帧中窗口内的样本,选择从固定代码本得出的激励信号。如果在同一个搜索子帧中出现多个窗口,则在该子帧中所有的窗口被限制为具有相同的激励。这个限制对得出信息的有效编码是想要的。
最佳FCB激励通过分析-合成(AbS)程序被确定。首先,通过从修正剩余减去加权的合成滤波器的ZIR(零输入响应)和ACB贡献得出FCB目标。固定代码本FCB_V随间距的数值而改变,以及通过以下的程序而被得出。
如果窗口长度(L)等于24,则在FCB_V中的24维矢量如下地得出(A)通过把零放置在窗口中除了24位置中的3个位置以外的所有位置上,得出每个代码矢量。三个位置是通过在每个以下的轨迹中取一个位置而被选择的轨迹0位置0 3 6 9 15 18 21轨迹1位置1 4 7 10 13 16 19 22
轨迹2位置2 5 8 11 14 17 20 23(B)在所选择的位置上的每个非零脉冲可以是+1或-1,导致4096个代码矢量(即,脉冲位置组合乘以8个正负号组合)。
如果窗口长度(L)等于16,则16维的代码本如下地得出(A)把零放置在除了16位置中的4个位置以外的所有位置上。非零脉冲被放置,每一个在以下的轨迹上轨迹0位置0 4 8 12轨迹1位置1 5 9 13轨迹2位置2 6 10 14轨迹3位置3 7 11 15(B)每个非零脉冲可以是+1或-1,再次导致4096个候选矢量(即,256个位置组合,16个正负号组合)。
相应于每个代码矢量,在当前搜索子帧中产生未缩放的激励。这个激励是通过把代码矢量复制到当前子帧中所有的窗口以及把零放置在其它样本位置而得出的。这个激励的最佳标量增益连同加权的合成费用一起可通过使用标准的分析-合成,而被确定。由于在所有4096个代码矢量上的搜索是很花计算的,所有搜索在整个代码本子集上进行。
在第一子帧上,搜索被限制于这样的代码矢量,即,其非零脉冲在正负号上与在搜索子帧的第一窗口中相应的位置处的后-滤波目标信号的正负号相一致。本领域技术人员可以把这个技术看作为多少类似于在EVRC中所使用的、用于减小复杂性的程序的一种方法。
在第二和第三子帧中,在所有轨迹中脉冲的正负号被限制于或者等同于对于在第一子帧中相应的轨迹所选择的正负号,或者在每个轨迹上的相反者。为说明在每个第二和第三子帧中的脉冲的正负号只需要一个比特,以及有效的代码本具有1024个矢量,如果L=24;以及15个矢量,如果L=16。
最佳候选者被确定,以及相应于这个候选者的合成的语音被计算。
现在描述用来确定无窗口的话音帧的FCB矢量和增益的当前的优选技术。
输入当前搜索子帧中修正的剩余;当前搜索子帧中加权的合成滤波器的ZIR;当前搜索子帧中的ACB贡献;以及当前搜索子帧中加权的合成滤波器的冲击响应。
输出所选择的FCB矢量的索引号;相应于所选择的FCB矢量的最佳增益;合成的语音信号;以及相应于最佳FCB矢量的加权的平方误差。
程序在无窗口话音子帧中,通过使用以下的程序得出固定激励。
通过从修正剩余减去加权的合成滤波器的ZIR和ACB贡献得出FCB目标。代码本FCB_V是通过以下的程序而被得出的通过把零放置在搜索子帧中除了两个位置以外的所有位置上,得出每个代码矢量。两个位置是通过在每个以下的轨迹中取一个位置而被选择的轨迹0位置0 2 4 6 8 10...(奇数索引号)轨迹1位置1 3 5 7 9...(偶数索引号)在所选择的位置上的每个非零脉冲可以是+1或-1。由于搜索子帧可以是64样本那样长,所有蛋白酶可以包含多到4096个代码矢量。
对于每个代码矢量的最佳标量增益连同加权的合成费用一起,可通过使用标准的分析-合成,而被确定。最佳候选者被确定,以及相应于这个候选者的合成的语音被计算。
现在参照图9的过渡编码器42b,在本发明的当前的优选实施例中,在编码过渡帧时有两个步骤。第一步骤是作为由图8的闭环分类器34实行的闭环分类处理过程的一部分被完成的,以及过渡的目标速率保持在4kb/s,避免分类时速率偏向(如果速率较高。分类器会偏向过渡)。在这个第一步骤中,固定代码本采用每个子帧一个窗。相应的窗口组在下面被称为“第一组”窗口。在第二步骤,在每个子帧中引入额外的窗口,产生“第二组”窗口。这个程序使得只增加用于过渡的速率,而不使得分类器有偏向。
用于过渡帧的编码程序可被概述为以下的步骤序列,如图12所示。
(A)确定“第一组”窗口边界。
(B)选择搜索子帧长度。
(C)确定对于在每个子帧中的第一窗口的FCB矢量和增益,以及在“第二组”窗口中用于引入激励的目标信号。
(D)确定“第二组”窗口边界。
(E)确定对于在每个子帧中的第二窗口的FCB矢量和增益。
步骤A确定对于过渡子帧的“第一组”窗口边界。
输入先前搜索帧的末尾点;以及对于从-16到175的样本索引号的修正剩余;相对于当前基本帧的开始点。
输出在当前帧中的窗口的位置。
程序确定头三个信号出现时间,每个基本子帧中一个。接着规定中心在信号出现时间处的长度为24的窗口,正如在上面所讨论的话音帧中那样。虽然没有对信号出现时间的相对位置加以限制,但希望满足以下的四个条件(C1-C4)(C1)如果信号出现时间在位置n处,相对于搜索帧的开始点,则n必须满足n=8*k+4(k是整数)。
(C2)由信号出现时间规定的窗口不可互相重叠。
(C3)由第一信号出现时间规定的窗口不可延伸到先前的搜索帧中。
(C4)信号出现时间位置使得被包括在由那些信号出现时间规定的窗口中的修正剩余的样本的平均能量最大化。
步骤B确定对于过渡帧的搜索子帧边界。
这个程序可以等同于先前描述的、用于确定话音帧中搜索子帧的边界的程序。
步骤C确定对于在过渡子帧中的第一窗口的FCB矢量和增益。
这个程序,除了以下方面以外,等同于在话音帧中使用的程序。
(i)在每个搜索子帧中只有一个窗口;以及(ii)除了执行AbS的传统步骤以外,从FCB目标中减去最佳FCB贡献,以便确定新的目标,用于把激励引入到附加窗口(第二组窗口)。
在把激励引入到第一组窗口(如这里描述的)后,引入附加的组的窗口(每个搜索子帧一个),以便接纳目标激励中其它重大的能量窗口。第二组窗口的脉冲通过下面描述的程序被引入。
步骤D确定对于过渡子帧的“第二组”窗口边界。
输入先前搜索帧的末尾点;用于在过渡子帧中引入附加窗口的目标信号;以及搜索子帧在当前帧中的位置。
输出在当前帧中的第二组窗口的位置。
程序把三个附加信号出现时间放置在当前帧中,以及规定其中心在这些信号出现时间处的、长度为24的窗口。附加信号出现时间满足以下的四个条件(C1-C4)(C1)在每个搜索子帧中只引入一个附加信号出现时间。
(C2)由任何附加信号出现时间规定的窗口不可延伸到搜索子帧的边界以外。
(C3)如果信号出现时间在位置n处,相对于搜索帧的开始点,则n必须满足方程n=8*k+4(k是整数)。
(C4)在满足以上条件的所有可能的信号出现时间位置中间,选择的信号出现时间使得被包括在由那些信号出现时间规定的窗口中的目标信号的平均能量最大化。
步骤E确定对于在过渡子帧中第二窗口的FCB矢量和增益。
输入用于把附加窗口包括最早当前搜索子帧中的目标;以及在当前子帧中加权的合成滤波器的冲击响应。
输出所选择的FCB矢量的索引号;
相应于所选择的FCB矢量的最佳增益;以及合成的语音信号。
程序利用早先对于长度为24的窗口规定的固定代码本。搜索被限制于这样的代码矢量,即,其非零脉冲在正负号上与相应的位置处的目标信号的正负号相一致。AbS程序被使用来确定最好的代码矢量和相应的增益。最好的激励通过合成滤波器进行滤波,以及被加到从第一组窗口中的激励合成的语音上,因此得出在当前搜索子帧中完整的合成语音。
现在参照图9的非话音编码器42a和图13的流程图,对于非话音帧,在搜索子帧中的FCB贡献从其分量是伪随机三进制数(-1,0或+1)的矢量的代码本被得出。最佳代码矢量和相应的增益然后在每个子帧中通过使用分析-合成而被确定。自适应代码本不被使用。搜索子帧边界通过使用下面描述的程序被确定。
步骤A确定对于非话音帧的搜索子帧边界。
输入先前搜索帧的末尾点。
输出在当前帧中的搜索子帧的位置。
程序第一搜索子帧从跟随在上一个搜索帧的末尾端后面的样本延伸到样本号53(相对于当前基本帧的开始点)。第二和第三子帧被分别选择为具有长度53和54。非话音搜索帧和基本帧在同一个位置结束。
步骤B确定对于非话音子帧的FCB矢量和增益。
输入当前搜索子帧中修正的剩余矢量;在当前子帧中加权的合成滤波器的ZIR;以及在当前子帧中加权的合成滤波器的冲击响应。
输出所选择的FCB矢量的索引号;相应于所选择的FCB矢量的最佳增益;以及合成的语音信号。
程序通过AbS(分析-合成)程序确定最佳FCB矢量及其增益。激励矢量FCB_UV
,...FCB_UV[511]的代码本FCB_UV从三进制数的序列,RAN_SEQ[k]k=0,...605,按以下的方式被得出FCB_UV[i],{RAN_SEQ[i],RAN_SEQ[i+1],...,RAN_SEQ[i+L-1]}其中L是当前搜索子帧的长度。相应于最佳激励的合成的语音信号也被计算。
再次参照图9,闭环分类器42d代表帧的级别分类器的第二级,它确定在一帧中的语音信号的性质(话音的,非话音的或过渡的)。
在以下的公式中,数量Dt被规定为在引入第一组窗口以后过渡假设的加权平方误差,以及Dv被规定为在话音假设时的加权平方误差。闭环分类器42d如下地产生在每个帧m中的输出,CLC(m)IfDt<0.8 Dvthen CLC(m)=TRANSITIONElse if β<0.7 and Dt<Dvthen CLC(m)=TRANSITIONElse CLC(m)=VOICED闭环分类器42d通过比较Dt和Dv,而比较使用话音假设和过渡假设的相对优点。应当指出,Dt不是过渡假设的最后加权的平方误差,而只是在第一组窗口中引入FCB贡献后得出的中间误差度量。这个方法是宁愿要的,因为过渡编码器42b比起话音编码器42c来说,可以使用更高的比特速率,所以加权平方误差的直接比较是不适当的。数量,Dt和Dv,另一方面相应于相同的比特速率,所以在闭环分类期间,它们的比较是适当的。应当指出,对于过渡帧的目标比特速率是4kb/s。
在图9上,SW1-SW3代表逻辑开关。SW1和SW2的切换状态由从开环分类器34输出的OLC(m)信号的状态控制,而SW3的切换状态由从闭环分类器42d输出CLC(m)信号的状态控制。SW1在作用时把修正剩余切换到分话音编码器42a的输入端,或切换到过渡编码器42b的输入端以及同时到话音编码器42c的输入端。SW2在作用时选择基于非话音编码器模型42a的合成信号,或选择从过渡编码器42b输出的、基于过渡假设的合成信号或从话音编码器42c输出的、基于话音假设的合成信号中的一个合成信号,正如由CLC(m)和SW3选择的。
图14是相应的译码器10的方框图。开关SW1和SW2代表逻辑开关,其状态由从如前面所述的、相应的语音编码器发送的分类指示(例如,2比特)控制。而且,在这方面,来自无论哪个源的输入比特流被加到类别译码器10a(它控制SW1和SW2的切换状态),以及加到LSP译码器10d,它具有被耦合到合成滤波器10b和后滤波器10c的输出端。合成滤波器10b的输入端被耦合到SW2的输出,因此代表被选择为帧的类别的函数的、多个激励产生器之一的输出。更具体地,在本实施例中,非话音的激励产生器10e和相关的增益单元10f被布置在SW1与SW2之间。在另一个开关位置处可找到话音激励固定代码本10g和增益单元10j,连同相关的间距译码器10h和窗产生器10i,以及自适应代码本10k,增益单元101,和相加交汇点10m。在再一个开关位置处可找到过渡激励固定代码本10o和增益单元10p,以及相关的窗译码器10q。自适应代码本反馈路径10从SW2的输出节点处出现。
现在更详细地描述译码器10,类别译码器10a从输入比特流检索载送类别信息的比特,以及由此译码该类别。在图14的方框图上给出的实施例中,有三个类别非话音,话音和过渡。本发明的其它实施例可包括不同数目的类别,正如上面描述的。
类别译码器启动开关SW1,它把输入比特流引导到相应于每个类别的激励产生器(每个类别具有分开的激励产生器)。对于话音类别,比特流包含间距信息,它首先在方块10h中被译码,以及在方块10i被使用来产生窗。根据间距信息,从代码本10g检索自适应代码本矢量,以便产生激励矢量,它被乘以增益10j,以及被加法器10m加到自适应代码本激励,给出话音帧的总的激励。用于固定和自适应代码本的增益值可以根据比特流中的信息从增益代码本被检索。
对于非话音类别,激励是通过从代码本10e检索随机矢量和把矢量乘以增益单元10f,而得到的。
对于过渡类别,窗口位置在窗口译码器10q中被译码。代码本矢量是通过使用来自窗口译码器10q的、关于窗口位置的信息和来自比特流的附加信息,而从过渡激励固定的代码本10o被检索。所选择的代码本矢量与增益单元10p相乘,导致对于过渡的总的激励。
由类别译码器10a启动的第二开关SW2选择相应于当前类别的激励。激励被加到LP合成器滤波器10b。该激励通过连接10n也被反馈到自适应代码本10k。合成器滤波器被传送到后滤波器10c,它被使用来改进语音质量。合成器滤波器和后滤波器参量是基于由LSP译码器10d从输入比特流中被译码的LPC参量。
虽然以上是依据在帧和子帧中的特定的样本数、特定的窗口尺寸、特定的参量、以及与其进行比较的门限值等描述的,但将会看到,已经揭示了本发明的当前的优选实施例。其它的数值可被使用,以及各种算法和程序随之被调整。
而且,正如先前指出的,本发明的教导并不限于仅仅使用三个或四个帧分类,而是可以利用大于或小于这个数目的帧分类。
因此假定,本领域技术人员可导出对本发明的这些和其它的揭示的实施例的多种修正方案和变例。然而,所有这样的修正方案和变例假定属于本发明的教导的范围内,以及被包括在后面的权利要求的范围内。
也应当指出,本发明的话音编码器不限于使用于无线电话,或在这方面的无线应用。例如,按照本发明的教导编码的话音信号可仅仅被记录用于以后的重复,和/或可以在使用光纤和/或电线来输送数字信号的通信网上传输。
而且,正如先前指出的,本发明的教导并不限于使用与码分多址(CDMA)技术或扩频技术,而是也可被实施于时分多址(TDMA)技术,或某些其它多用户接入技术(或也用于单用户接入技术)。
因此,虽然看到本发明是参照优选实施例具体地显示和描述的,但本领域技术人员将进一步看到,其中可以作出在形式和细节上的改变,而不背离本发明的范围和精神。
权利要求
1.编码语音信号的方法,包括以下步骤把语音信号的样本划分成帧;确定在该帧内的至少一个窗口的位置;以及对于该帧的激励进行编码,由此使全部或几乎全部非零激励幅度位于该至少一个窗内。
2.如权利要求1中的方法,还包括对于每个帧得出剩余信号的步骤;以及通过检验该得出的剩余信号来确定该至少一个窗的位置。
3.如权利要求1的方法,还包括以下步骤对于每个帧得出剩余信号;平滑该剩余信号的能量轮廓;以及其中通过检验该剩余信号的平滑的能量轮廓来确定该至少一个窗的位置。
4.如权利要求1到3的任一项的方法,其中可定位该至少一个窗的位置,以使得它具有一个与子帧边界或帧边界中至少一个边界相一致的边缘。
5.一种编码语音信号的方法,包括以下步骤把该语音信号的样本划分成帧;对于每个帧得出剩余信号;通过考虑对于该帧的剩余信号,确定其中心位于该帧内的至少一个窗口的位置;以及编码对于该帧的激励,由此使全部或几乎全部非零激励幅度位于该至少一个窗内。
6.如权利要求5的方法,其中得出对于每个帧的剩余信号的步骤包括平滑该剩余信号的能量轮廓;以及其中通过检验该剩余信号的平滑的能量轮廓来确定该至少一个窗的位置。
7.如权利要求5或权利要求6的方法,其中修正子帧或帧的边界,以使得该窗口整体地位于该修正的子帧或帧内,并定位该边界,使得修正的帧或子帧的边缘与窗边界相一致。
8.一种编码语音信号的方法,包括以下步骤把语音信号的样本划分成帧;对于每个帧得出剩余信号;把每个帧中的该语音信号分类为多种类别中的一种类别;通过检验该帧的剩余信号来识别在该帧中的至少一个窗口的位置;通过使用按照帧的类别选择的多个激励编码技术之一,来编码该帧的一个激励;以及对于至少一个类别,把全部或几乎全部非零激励幅度限制在窗口内。
9.如权利要求8的方法,其中这些类别包括话音帧,非话音帧,和过渡帧。
10.如权利要求8的方法,其中这些类别包括强周期性帧,弱周期性帧,不稳定帧,和非话音帧。
11.如权利要求8到10的任一项的方法,其中分类该语音信号的步骤包括以下步骤从该剩余信号形成平滑的能量轮廓;以及考虑在该平滑的能量轮廓中峰值的位置。
12.如权利要求8到11的任一项的方法,其中该多个编码技术之一是自适应代码本。
13.如权利要求8到12的任一项的方法,其中该多个编码技术之一是固定三进制脉冲编码代码本。
14.如权利要求8到13的任一项的方法,其中该分类的步骤使用开环分类器,后面跟随闭环分类器。
15.如权利要求8到14的任一项的方法,其中该分类的步骤使用第一分类器,把一个帧分类为非话音帧或不是非话音帧之一,以及第二分类器,用于把一个不是非话音帧分类为话音帧或过渡帧之一。
16.如权利要求8到15的任一项的方法,其中该编码的步骤包括以下步骤把该帧划分成多个子帧;以及在每个子帧内放置至少一个窗。
17.如权利要求16的方法,其中放置至少一个窗的步骤把第一窗放置在一个作为该帧的音调的函数的位置,并放置随后的窗作为该帧的音调的函数和作为第一窗的位置的函数。
18.如权利要求8到17的任一项的方法,其中识别该至少一个窗的位置的步骤包括平滑该剩余信号的步骤,并且其中该识别步骤考虑在该剩余信号的平滑轮廓中能量峰值的存在。
19.一种语音编码设备,包括编帧单元,用于把输入语音信号样本划分成帧;窗口形成单元,用于确定在帧内至少一个窗口的位置;以及编码器,用于编码对于该帧的激励,由此使全部或几乎全部非零激励幅度位于该至少一个窗内。
20.如权利要求19的设备,还包括用于对于每个帧得出剩余信号的单元;其中所述窗口形成单元通过检验该得出的剩余信号来确定该至少一个窗的位置。
21.如权利要求19的设备,还包括用于得出对于每个帧的剩余信号的单元;以及用于平滑该剩余信号的能量轮廓的单元;其中所述窗口形成单元通过检验该剩余信号的平滑的能量轮廓来确定该至少一个窗的位置。
22.如权利要求19到21的任一项的设备,其中所述窗口形成单元用来定位所述至少一个窗,以使得它具有一个与子帧边界或帧边界中至少一个边界相一致的边缘。
23.编码语音信号的方法,包括以下步骤把该语音信号的样本划分成帧;通过考虑对于该帧的语音或剩余信号,修正一个帧或子帧的持续时间和边界;以及通过使用分析-合成编码技术来编码对于该帧的激励。
24.如权利要求23的方法,其中将每个帧中的语音信号分类为多个类别中的一个类别,以及通过使用按照帧的类别所选择的多种分析-合成编码技术之一来编码对于该帧的激励。
25.一种编码语音信号的方法,包括以下步骤把该语音信号样本划分成帧;对于每个帧得出剩余信号;把每个帧中的语音信号分类为多种类别中的一种类别,其中该分类的步骤使用开环分类器,后面跟随闭环分类器;以及通过使用按照帧的类别所选择的多种分析-合成激励编码技术之一来编码对于该帧的激励。
26.如权利要求25的方法,其中该分类的步骤使用第一分类器,把一个帧分类为非话音帧或不是非话音帧之一,以及第二分类器,用于把一个不是非话音帧分类为话音帧或过渡帧之一。
27.一种无线通信器,包括无线收发信机,包括发射机和接收机;输入语音换能器和输出语音换能器;以及语音处理器,包括采样和编帧单元,具有输入端,被耦合到所述输入语音换能器的输出端,用于把输入语音信号样本划分成帧;窗口形成单元,用于确定在帧内至少一个窗口的位置;以及编码器,用于提供编码的语音信号,其中在对于该帧的激励中,全部或几乎全部非零激励幅度位于该至少一个窗内。所述无线通信器还包括调制器,用于以编码的语音信号调制载波,所述调制器具有输出端,被耦合到所述发射机的输入端;以及解调器,具有输入端,被耦合到所述接收机的输出端,用于解调用语音信号编码的、并从远端发射机发送的载波;以及所述语音处理器还包括译码器,具有输入端,被耦合到所述解调器的输出端,用于译码来自一个帧的激励,其中全部或几乎全部非零激励幅度位于至少一个窗内,所述译码器具有输出端,被耦合到所述输出语音换能器的输入端。
28.如权利要求27的无线通信器,其中所述语音处理器还包括用于得出对于每个帧的剩余信号的单元;以及其中所述窗口形成单元通过检验该得出的剩余信号来确定该至少一个窗的位置。
29.如权利要求27的无线通信器,还包括用于得出对于每个帧的剩余信号的单元;以及用于平滑该剩余信号的能量轮廓的单元;其中所述窗口形成单元通过检验该剩余信号的平滑的能量轮廓来确定该至少一个窗的位置。
30.如权利要求27到29的任一项的无线通信器,其中所述窗口形成单元用来定位所述至少一个窗,以使得它具有一个与子帧边界或帧边界中至少一个边界相一致的边缘。
31.如权利要求27到30的任一项的无线通信器,其中所述语音处理器还包括用于修正的单元,通过考虑对于该帧的语音或剩余信号而修正一个帧或子帧的持续时间和边界的单元;以及其中所述编码器通过使用分析-合成编码技术来编码对于该帧的激励。
32.如权利要求27到31的任一项的无线通信器,其中所述语音处理器还包括分类器,用于把每个帧中的语音信号分类为多种类别中的一种类别,以及其中所述编码器通过使用按照帧的类别所选择的、多种分析-合成激励编码技术之一来编码对于该帧的激励。
33.如权利要求32的无线通信器,其中所述调制器还用该帧的类别的指示来调制所述载波,其中所述解调器还解调接收的载波,以得出该接收帧的类别的指示。
34.如权利要求33的无线通信器,其中该指示包括两个比特。
35.如权利要求32到34的任一项的无线通信器,其中所述分类器包括开环分类器,后面跟随闭环分类器。
36.如权利要求27的无线通信器,其中所述语音处理器还包括第一分类器,用于把一个帧分类为非话音帧或不是非话音帧之一,以及第二分类器,用于把一个不是非话音帧分类为话音帧或过渡帧之一。
37.如权利要求27的无线通信器,其中一个帧包括至少两个子帧,其中所述窗口形成单元运行使得子帧边界或帧的边界被修正成使窗口整体地位于修正的子帧或帧内,并定位该边界使得该修正的帧或子帧的边缘与窗口边界相一致。
38.如权利要求27的无线通信器,其中所述窗口形成单元运行使得窗口中心位于信号出现时间处,其中话音帧的信号出现时间由预定距离加上或减去抖动值隔开,其中所述调制器还用该抖动值的指示调制所述载波,以及其中所述解调器还解调该接收的载波,以得出对于接收帧的抖动值。
39.如权利要求38的无线通信器,其中该预定距离是一个音调周期,以及其中该抖动值是在大约-8和大约+7之间的整数。
40.如权利要求27到39的任一项的无线通信器,其中所述编码器和所述译码器以小于大约4kb/s的数据速率运行。
41.一种语音译码器,包括类别译码器,具有输入端,被耦合到所述语音译码器的输入节点,用于从输入比特流提取,对于编码语音信号帧的类别信息进行编码的预定比特,并对该类别信息译码,其中有多个预定的类别,其中的一个类别是话音类别;以及其中所述输入比特流也被耦合到LSP译码器的输入端;以及第一多位置开关单元,由所述类别译码器的输出控制,用于把所述输入比特流引导到多个激励产生器中选择的一个激励产生器的输入端,所述激励产生器的各个相应于所述多个预定的类别的一个类别;其中对于所述话音类别,输入比特流编码对于编码语音信号帧的音调信息,它在音调译码器块中被译码,该译码器块具有输出端,被耦合到窗口产生器块,后者根据译码的音调信息产生至少一个窗口,所述至少一个窗口被使用来从自适应代码本检索用于产生激励矢量的自适应代码本矢量,它被乘以增益单元和被加到自适应代码本激励,以给出对于话音帧的总激励。
42.如权利要求41的语音译码器,还包括第二多位置开关单元,由所述类别译码器的输出控制,用于把所述多个激励产生器的选择的一个激励产生器的输出端耦合到合成器滤波器的输入端,以及通过反馈路径,也耦合到所述自适应代码本。
43.如权利要求42的语音译码器,其中所述多个预定的类别还包括非话音类别和过渡类别,以及其中还提供被耦合在所述第一和第二多位置开关单元之间的非话音类别激励产生器和过渡类别激励产生器。
44.如权利要求43的语音译码器,其中对于所述非话音类别,提供从非话音代码本中检索随机矢量并乘以矢量,而得出该激励。
45.如权利要求43或44的语音译码器,其中对于所述过渡类别,至少一个窗口位置在具有被耦合到所述输入比特流的输入端的窗口译码器中被译码;以及其中通过使用关于从所述窗口译码器输出的至少一个窗口位置的信息,而从过渡激励固定的代码本中检索代码本矢量,并乘以检索的代码本矢量。
46.如权利要求41到45的任一项的语音译码器,其中全部或几乎全部非零激励幅度位于该至少一个窗口内。
47.如权利要求42和从属于它的任何权利要求的语音译码器,其中所述合成器滤波器的输出被耦合到后置滤波器的输入端,该后置滤波器具有被耦合到所述译码器的输出节点的输出端;其中所述合成滤波器和所述后置滤波器的参量是基于由所述LSP译码器从所述输入比特流所译码的参量。
48.一种对划分成一组帧的的语音信号进行译码的方法,包括确定在一帧中的窗口位置的步骤,其中全部或几乎全部非零激励幅度位于所述窗口内,以及通过参考所述窗口从所述帧产生激励。
49.如权利要求48的方法,其中组成该语音信号的帧,每个被分配一个类别,其中激励的产生是按照相应于所述类别的译码方法进行的。
50.如权利要求49的方法,其中每个帧具有一个分配给它的类别,从以下类型中所选择的一个类型,即话音的、非话音的或过渡的帧类型。
51.如权利要求49或权利要求50的方法,其中该类别被用来辅助确定在帧中窗口的位置。
52.一种语音译码设备,包括输入装置,在使用时,接收由一组帧组成的语音信号;窗口形成单元,用于确定在帧内至少一个窗口的位置;其中全部或几乎全部非零激励幅度位于该窗内,以及激励产生器,由此参照所述窗口从所述帧产生激励。
53.如权利要求52的设备,包括多个激励产生器,每个按照由类别译码器从所述语音信号提取的信息可选择地运行,其中按照与其有关的类别对于每个帧产生激励。
全文摘要
语音编码器(12)和用于语音编码的方法,其中语音信号由被加到合成滤波器的激励信号代表。语音信号被划分成帧和子帧。分类器(22)识别语音帧属于几种类别的哪个类别,以及不同的编码方法被应用来构成用于每种类别的激励。对于某些类别,一个或多个窗口被识别为用于其中全部或几乎全部激励信号样本由编码方案被分配的帧。通过更精确地编码重要的激励段,改进了性能。通过识别平滑的剩余能量轮廓的峰值,窗口位置从线性预测剩余被确定。方法调整帧和子帧的边界,以使得每个窗口整体地位于修正的子帧或帧内。这消除了当隔离地编码帧或子帧时引起的人为限制,而不管在帧或子帧边界上语音信号的局部特性。
文档编号G10L19/14GK1338096SQ99816396
公开日2002年2月27日 申请日期1999年12月23日 优先权日1998年12月30日
发明者A·格尔索, V·库珀曼, A·V·劳, T·-C·杨, S·阿马迪, F·刘 申请人:诺基亚移动电话有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1