用于估算语音信号之语音中背景噪声的方法和设备

申请号 CN01123164.5 申请日 1992-06-11 公开(公告)号 CN1286086C 公开(公告)日 2006-11-22
申请人 高通股份有限公司; 发明人 保罗·E·雅各布; 威廉·R·加德纳; 冲·U·李; 克莱恩·S·吉豪森; S·凯瑟琳·兰姆; 民昌·蔡;
摘要 本 发明 揭示了一种用于估算 信号 帧 中背景噪声的方法和设备,其中所述信号帧一起表示一个 语音信号 。在本发明中,存储装置存储表示前一信号帧(B)的背景噪声估算值的数据。测量装置测量一语音帧的信号 能量 (Ef)。计算装置根据对语音帧测量得到的信号能量以及表示前一信号帧(B)之背景噪声估算值的所述数据,计算所述语音帧(B′)的背景噪声估算值。
权利要求

1.一种用于估算语音信号之语音中背景噪声的方法,其特征在于,包括以 下步骤:
测量一语音帧的信号能量
存储表示前一语音帧之背景噪声估算值的数据;以及
根据对所述语音帧测量得到的信号能量以及表示所述前一语音帧之背景噪声 估算值的所述数据,计算所述语音帧的背景噪声估算值。
2.如权利要求1所述的方法,其特征在于,还包括检测至少一个语音帧的背 景噪声,以便选择预以相对较低速率解码的语音帧。
3.如权利要求1所述的方法,其特征在于,用于计算所述语音帧之背景噪声 估算值的所述步骤包括以下步骤:
将所述语音帧之所述测得信号能量与表示所述前一语音帧之背景噪声估算值 的所述数据比较;以及
根据所述语音帧之所述测得信号能量、表示所述前一语音帧之背景噪声估算 值的所述数据,以及所述语音帧之所述测得信号能量与表示所述前一语音帧之背景 噪声估算值的所述数据的比较结果,计算所述语音帧的背景噪声估算值。
4.如权利要求3所述的方法,其特征在于,用于计算所述语音帧之背景噪声 估算值的所述步骤包括下述步骤:选择所述语音帧之所述测得信号能量与根据表示 所述前一语音帧之背景噪声估算值的所述数据所确定的第二值中的最小值。
5.如权利要求4所述的方法,其特征在于,用于确定所述第二值的所述步骤 包括将一预定量与表示所述前一语音帧之背景噪声估算值的所述数据相加。
6.如权利要求4所述的方法,其特征在于,用于确定所述第二值的所述步骤 包括将表示所述前一语音帧之背景噪声估算值的所述数据乘以一个大于1的预定 因子。
7.如权利要求4所述的方法,其特征在于,还包括下述步骤:将所述第二值 确定为第三值和第四值中的较小值,其中所述第三值是通过将一预定量与表示所述 前一语音帧之背景噪声估算值的所述数据相加而确定的,第四值是通过将表示所述 前一语音帧之背景噪声估算值的所述数据乘以一个大于1的预定因子而确定的。
8.如权利要求5所述的方法,其特征在于,所述预定量约等于1。
9.如权利要求6-8中任何一项所述的方法,其特征在于,所述预定因子约等 于1.00547。
10.如权利要求4所述的方法,其特征在于,将所述计算得到的背景噪声估算 值与预定的背景噪声估算值最大值相比较,并且将两者中的较小者选作所述语音帧 的背景噪声估算值。
11.如权利要求1所述的方法,其特征在于,对每个帧执行用于计算所述语音 帧的背景噪声估算值的所述步骤。
12.一种用于估算语音信号之语音帧中背景噪声的设备,其特征在于,包括:
测量装置(202),用于测量一语音帧的信号能量;
存储装置(302),用于存储表示前一信号帧之背景噪声估算值的数据;和
计算装置(300,304,306,308,310,312,314,316,318),用于根据对 所述语音帧测量得到的信号能量以及表示所述前一信号帧之背景噪声估算值的所 述数据,计算所述语音帧的背景噪声估算值。
13.如权利要求12所述的设备,其特征在于,还包括用于根据背景噪声选择 编码速率的装置。
14.如权利要求13所述的设备,其特征在于,所述编码速率选择装置被构造 成,以相对较低的数据速率对检测得到的包含背景噪声的语音帧进行编码。
15.如权利要求12所述的设备,其特征在于,用于计算所述语音帧之背景噪 声估算值的所述计算装置包括:
用于将所述语音帧之所述测得信号能量与表示所述前一语音帧之背景噪声估 算值的所述数据进行比较的装置;和
用于根据所述语音帧之所述测得信号能量、表示所述前一语音帧之背景噪声 估算值的所述数据,以及所述语音帧之所述测得信号能量与表示所述前一语音帧之 背景噪声估算值的所述数据的比较结果来计算所述语音帧之背景噪声估算值的装 置。
16.如权利要求15所述的设备,其特征在于,用于计算所述语音帧之背景噪 声估算值的所述计算装置还包括用于选择所述语音帧之所述测得信号能量与根据 表示所述前一语音帧之背景噪声估算值的所述数据所确定的第二值中的最小值的 装置。
17.如权利要求16所述的设备,其特征在于,还包括求和装置,用于将一预 定值与表示所述前一语音帧之背景噪声估算值的所述数据相加;和根据表示所述前 一语音帧之背景噪声估算值的所述数据与所述预定值之和来确定所述第二值的装 置。
18.如权利要求16所述的设备,其特征在于,还包括乘法装置,用于将一预 定值与所述前一语音帧之背景噪声估算值的所述数据相乘;和用于根据表示所述前 一语音帧之背景噪声估算值的所述数据与所述预定值之积来确定所述第二值的装 置。
19.如权利要求17或18所述的设备,其特征在于,还包括用于将所述计算得 到的背景噪声估算值与一预定的背景估算值最大值比较并且将两者中的较小者选 作所述语音帧之背景噪声估算值的装置。
20.如权利要求12所述的设备,其特征在于,对每个帧进行所述语音帧之背 景噪声估算值的计算。

说明书全文

技术领域

发明涉及语音处理。具体讲,本发明涉及一种用于压缩语音的新颖且已改 进的方法和系统,其中,压缩量动态地变化,但对再生语音的质量影响最小。此外, 由于压缩后的语音数据要通过一个有可能引入错误的信道传送,故而本发明的方法 和系统还会将信道传输错误对声音的影响减至最小。

背景技术

利用数字技术传送声音已经得到广泛的应用,在远距离和数字式无线电话设 备中尤其如此。这转而使人们有兴趣确定在保持再生语音听觉质量的信道上能够传 送的最低信息量。如果语音是在简单取样并数字化后传送的,那么,为了达到普通 模拟式电话机的语音质量,就需要64千比特/每秒(Kbps)数量级的数据速率。但是, 通过采用语音分析,再进行适当的编码、传送,在接收器中进行再合成,就能显著 地降低数据速率。
采用人类语言信号产生模型所提取的参数来完成语声压缩技术的装置通常称 为声码器。这类装置由一个分析传入的语音以提取相关参数的编码器和一个利用在 传输信道中接收到的参数重新合成语音的译码器组成。为了精确些,模型必须不时 地变化。这样,语音被划分成时间段或分析,每一帧内进行参数的计算。然后对 每一新的帧更新参数。
在不同类别的语音编码器中,编码激励线性预测编码(CELP)、随机编码或矢 量激励语音编码是属于一类的。在汤姆斯E.特莱等人所著,发表于1988年移动 卫星研讨会论文集上的论文“一种4.8Kbps编码激励线性预测编码器”中描述了 这一特定类别的一个编码算法例子。
声码器的功能是消除语音中固有的自然冗余,从而将数字化语音信号压缩成 低比特率信号。通常,语音中含有主要是因声道的滤波动作而产生的短期冗余,和 因发声区域声带的激励而产生的长期冗余。在CELP编码器中,这些发声区域的动 作用两个滤波器来模拟,一个是短期共振峰滤波器,另一个是长期音调滤波器(pitch filter)。一旦除去这些冗余,得到的剩余信号就能模拟成白色高斯噪声,这也必须 编码。这种技术的基础是计算一个称为LPC滤波器的参数,该滤波器利用人的声 道模型来进行语音波形的短期预测。另外,与语音的音调有关的长期作用则通过计 算一个主要模拟人的声带的音调滤波器的参数而得到模拟。最后,这些滤波器还必 须被激励,这是通过从码书的大量随机激励波形中确定一个在激励上述两个滤波器 的时候产生最接近原始语音的效果的波形而完成的。这样,被传送的参数涉及到三 项:(1)LPC滤波器,(2)音调滤波器,(3)码书激励。
声码技术的应用在尝试减少信道中传送的信息量而仍旧保持再生语音的质量 这一点上离目标更进了一步,虽然如此,但还需要采用其它技术,来实现进一步的 缩减。以前用来缩减信息传送量的一种技术是声音动作选通。在这种技术中,语音 停顿时不传送信息。这种技术实现了预期的数据缩减效果,但存在着几个缺陷
在许多情况下,由于削去了字语的初始部分,语音质量降低了。在不动作时 切断信道的另一问题是系统用户感觉到缺少了通常伴随着语音的背景噪声,因此认 为信道的质量低于普通电话。动作选通的再一个问题是,在没有语音时背景中偶然 的突发噪声会引发发送器,在接收器中产生恼人的噪声群。
改进声音动作选通系统中合成语音的质量的一个尝试是在译码过程中加入合 成的令人舒适的噪声。虽然通过加入舒适的噪声达到了质量上的某些提高,但是, 由于舒适的噪声并不模拟编码器中的实际背景噪声,所以它并不能显著地改进总体 质量。
进行数据压缩以实现需要传送的信息的缩减的一种更好的技术是进行可变速 率声音编码。因为语音本身含有静默期间,例如停顿,所以,代表这些期间所需的 数据量可以缩减。可变速率声音编码通过降低这些静默期间的数据速率而最有效地 利用了这一事实。在静默期间数据速率的降低,与数据传送完全停止相反,克服了 与声音动作选通相关的难题,同时实现了传送信息的缩减。
因而,本发明的一个目的是提供一种利用可变速率声音编码技术来压缩语音 的新颖和改进的方法和系统。

发明内容

本发明采用了上述类别语音编码器的声音编码算法,即编码激励线性预测编 码(CELP)、随机编码或矢量激励语音编码。CELP技术本身就能使表示语音所必需 的数据量显著减少,并在重新合成时给出高质量的语音。如前所述,声码器参数就 每一帧进行更新。本发明的声码器藉助于改变模型参数的频率精度,形成可变的 输出数据速率。
本发明极显著地不同于基本的CELP技术,在语音动作的基础上产生可变的 输出数据速率。其结构被定义后,使得参数在语音停顿过程中较少或以较低精度进 行更新。该技术使得要传送的信息量更加减少。被利用来降低数据速率的关键是声 音动作因子,它是某一指定说话者在交谈过程中实际说话的平均时间百分比,就通 常的双向电话交谈而言,该平均数据速率可降到1/2或更多。在语音停顿过程中, 声码器只对背景噪声进行编码。在这些时候,与人的声道模型有关的某些参数勿需 传送。
如前所述,先前在静默过程中限制信息传送量的途径称为声音动作选通,这 是一种在静默的期间不传送信息的技术。在接收侧,该期间中加入合成的“舒适噪 声”。与此相反,可变速率声码器持续不断地进行数据传送,在较佳实施例中是以 大约介于8Kbps和1Kbps之间的速率进行的。进行连续数据传送的声码器消除了 对“舒适噪声”的需求,而以背景噪声的编码给重新合成的语音提供更真实的质量。 因而,本发明在语音和背景音之间进行平滑的转变,藉此,在重新合成的语音质量 上,比声音动作选通有了更显著的改善。
本发明还结合了一种掩盖发生的错误的新颖技术。因为数据要通过一个可能 有噪音的信道传送,如在无线电线路中传送,所以,它必须在数据中能容错。利用 信道编码来减少所遇到的出错总数的先有技术在减少错误方面能够有某些成功之 处。但是,仅有信道编码还不能完全达到保证高质量再生语言所必需的错误警戒 平。在声音编码持续进行的可变速率声码器中,一个错误可能会破坏涉及到某个重 要的语音内容的数据,例如与一个单词或一个音节开头部分有关的数据。基于线性 预测编码的声码器所带来的一个典型难题是,与声道模型有关的参数中的错误会产 生类似人声的声音,还会将原始单词的发音改变到足以使听者迷惑的程度。在本发 明中,错误被掩盖住,以降低其可觉察程度。这样,本发明所采用的错误掩盖技术 使得错误对语音清晰度的影响急剧减少。
因为任何参数能够改变的最大数量在低速率下被限制在较小范围中,所以, 在这些速率下所传送的参数中的错误会较少地影响语音质量。由于在不同速率下的 错误对语音质量有不同的可觉察的影响,所以,传送系统可以最优化,以对较高速 率的数据提供更多保护。因而,作为一个附加特征,本发明容忍信道错误能较强 (具有鲁棒性)。
本发明通过采用可变速率输出形式的CELP算法,使得语音压缩率根据声音 大小不同在8∶1到64∶1范围内动态地变动。刚才的压缩因子是对μ律输入而言 的,对于线性输入,该压缩因子将增大一倍。速率的确定是对各个帧分别进行的, 以便充分地得益于声音动作因子。即使由于语音停顿而产生较少的数据,重新合成 的背景噪声让人察觉到的质量降低也是最小的。利用本发明的技术,在最大数据速 率8Kbps下可以实现质量近似于长途电话的语音,在普通对话中的平均数据速率 处于3.5Kbps的量级。
本发明能够检测出语音中的短暂停顿,因而实现了有效声音动作因子的降低。 速率确定是逐帧进行的,没有遗漏,因而,在短到一个帧周期的语音停顿间隙内数 据速率可放慢,对较佳实施例,帧周期的典型值为20msec。因而,可以捕捉诸如 在音节之间的那些停顿。因为不仅词组之间的长间歇停顿可以编码成较低速率,而 且短暂停顿也可以,所以,这一技术降低了声音动作因子,在程度上超过了通常所 考虑到。
因为速率确定是逐帧进行的,所以不会象声音动作选通系统那样,削去单词 的初始部分。在声音动作选通系统中发生的这种性质的削去归因于语音检测和数据 传送再开始之间的延迟。在每一帧基础上进行的速率确定使得语音中所有的变化都 有自然的声调。
在声码器正常传送的情况下,在接收端一直能听到讲话者周围的背景噪声, 因而在语音停顿时有更自然的声音。这样,本发明实现了向背景噪声的平稳转换。 听者在语音中听到的背景音不会象声音动作选通系统中那样,在停顿时突然转变成 一种合成的舒适噪声。
因为背景噪声持续地被编码后进行传送,所以,背景中的重要事件可以完整 清晰地得到传送。在某些情况下,重要的背景噪声甚至可以以最高速率进行编码。 例如,当背景中有一个人大声说话,或者有一辆救护车从站在街处的一个用户身 旁开过的时候,可能进行最高速率编码。但是,一成不变或者缓慢变化的背景噪声 会以低速率进行编码。
利用可变速率声音编码能够确保基于码分多路访问(CDMA)的数字蜂窝式电 话系统的容量增加一倍以上。因为在CDMA中,信道间的干扰随着任一信道中数 据传送速率的降低而自动地减少,所以,CDMA和可变速率声音编码是完全匹配 的。与此相反,看一下指定传送时隙的系统,如TDMA或FDMA等。为了使这种 系统得益于数据传送速率的降低,需要进行外部干预,以协调将不用的时隙转让给 其它用户。这种系统中固有的延迟意味着只有在长时的语音停顿过程中才可能转让 信道。因而,不能充分地得益于声音动作因子。但是,出于上述其它原因,在外部 协调下,可变速率声音编码在CDMA之外的系统中有用。
在CDMA系统中,当需要附加的系统容量时可以略微降低语音质量。简而言 之,该声码器可以看作是多个声码器以不同的速率工作,产生不同的语音质量。因 而,语音质量可以混合起来,以进一步降低平均数据传送速率。初步的实验显示出, 将全速和半速声音编码语音混合起来,亦即最大允许数据速率在8Kbps与4Kbps 之间逐帧变化,藉此,得到的语音比半速可变,即最大值为4Kbps情况下质量要 好,而差于全速可变,即8Kbps最大值的情况。
众所周知,在绝大多数电话交谈中,每次只有一个人说话。全双工电话线路 可以增加一个速率联的附加功能。如果线路的一个方向上以最高传送速率进行传 送,那么,另一方向就被迫以最低速率传送。链路两个方向上的联锁保证对链路每 一方向的平均使用不超过50%。但是,当信道切断时,例如在动作选通中速率联 锁情况下,收听者在对话中无法打断对方的谈话,成为说话者。本发明容易地提供 了藉助于设定声音编码速率的控制信号进行速率联锁的能力。
最后应该注意到,利用可变速率声音编码系统,通信信息可以和对语音质量 影响极小的语音数据分享信道。例如,一个高速率帧可以分割成两半,一半用于传 送较低速率声音数据,另一半用于通信数据。在较佳实施例的声码器中实现了声音 传送在全速率和半速率声音编码语音之间仅有轻微的语音质量降低。因而,为了与 其它数据分享传送而以较低速率进行语音的声音编码在语音质量上只给用户带来 几乎不能察觉的差异。
依照本发明的一个方面,提供了一种用于估算信号帧中背景噪声的方法,其 中所述信号帧一起表示一个语音信号。该方法包括以下步骤:
存储表示前一信号帧的背景噪声估算值的数据;
测量一语音帧的信号能量;以及
根据对所述语音帧测量得到的信号能量以及表示所述前一信号帧之背景噪声 估算值的所述数据,计算所述语音帧的背景噪声估算值。
依照本发明的另一方面,提供了一种用于估算信号帧中背景噪声的设备,其 中所述信号帧一起表示一个语音信号。该设备包括:
存储装置,用于存储表示前一信号帧的背景噪声估算值的数据;
测量装置,用于测量一语音帧的信号能量;和
计算装置,用于根据对所述语音帧测量得到的信号能量以及表示所述前一信 号帧之背景噪声估算值的所述数据,计算所述语音帧的背景噪声估算值。
附图说明
从下文中与附图相结合的详细说明中,本发明的特征、目的和优点将更为显 而易见,在所有附图中,类似的标号标志相应的对象,其中:
图1a-1e以图线形式示出声码器在各种速率下的分析帧和子帧;
图2a-2d是一系列表示声码器在不同速率下输出位分布的图表;
图3是一例示编码器的大致框图
图4是编码器的流程图
图5是例示译码器的大致框图;
图6是译码器流程图;
图7是编码器更详细的功能性框图;
图8是一例示汉明窗口和自相关子系统的框图;
图9是一例示速率确定子系统的框图;
图10是一例示LPC分析子系统的框图;
图11是一例示LPC至LSP转换子系统的框图;
图12是一例示LPC量化子系统的框图;
图13是例示LSP插值及LSP至LPC转换子系统的框图;
图14是用于音调检索的自适应码书的框图;
图15是编码器的译码器的框图;
图16是音调检索子系统的框图;
图17是码书检索子系统的框图;
图18是数据压缩子系统的框图;
图19是译码器更详尽的功能性框图;
图20a-20d是显示译码器在不同速率下接收到的参数和子帧译码数据的图 表;
图21a-21d是进一步显示译码器在特定场合下接收到的参数及子帧译码数据 的图表;
图22是LSP反量化子系统的框图;
图23是带有后置滤波及自动增益控制的译码器更详细的框图;
图24是自适应亮度滤波器特性的图线。

具体实施方式

根据本发明,利用众所周知的技术对诸如语音和/或背景噪声之类声音进行取 样并数字化。例如,模拟信号可以用标准的8位/μ律格式转换成数字格式,然后 进行μ律/标准编码转换。在另一方式下,模拟信号可以直接转换成标准脉冲编码 调制(PCM)格式的数字形式。这样,在该较佳实施例中,每一取样由一16位的数 据字表示。众多取样被组织成输入数据的帧,每一帧由预定量的取样组成。在现在 揭示的实施例中,就8KHz的取样频率进行考虑。对于8KHz取样频率,每帧由 160个取样或20msec的语音组成。应该理解,其它取样频率和帧尺寸也可以采用。
声音编码领域包括许多不同的语音编码技术,其中之一是CELP编码技术。 在前文提到论文“一种4.8Kbps的编码激励线性预测编码器”中描述了这种CELP 编码技术的概要。本发明采用一种形式的CELP编码技术,以提供编码语音数据的 可变速率,其中,LPC分析是对一定量的取样进行的,而音调和码书检索则是根 据传送速率对变量的取样进行的。在原理上,参照图3和5讨论应用于本发明中 的CELP编码技术。
在本发明的该较佳实施例中,语音分析帧为20ms长,意味着所提取的参数 以每秒50次的脉冲进行传送。此外,数据传送速率大致从8Kbps变化至4Kbps、 2Kbps和1Kbps。在全速率(亦称为速率1)下,数据传送处于8.55Kbps的速率下, 为每一帧而编码的参数用了171位,其中包括一个11位的内部CRC(循环冗余检 验)。除去CRC位,速率将是8Kbps。在半速率(亦称为速率1/2)下,数据传送以 4Kbps的速率进行,每一帧的编码参数用了80位。在四分之一速率(亦称为速率 1/4)下,数据传送为2Kbps的速率,每帧的编码数据用了40位。在八分之一速率(亦 称为速率1/8)下,数据传送速率略低于1Kbps,各帧的编码参数使用16位。
图1例示出语音数据的一个分析帧10,以及它与在LPC分析中采用的汉明 窗口12的关系。不同速率下的LPC分析帧、音调和码书子帧以图表形式在图2a-2d 中示出。应该理解,LPC分析帧在所有速率下是大小相同的。
现在参见附图,具体讲是图1a,LPC分析是采用帧10的160个语音数据取 样完成的,它们由汉明窗口12窗口化。如图1a所示,各个帧中的取样s(n)记数为 0-159。汉明窗口12是这样定位的,偏离帧10中的60个取样。该汉明窗口12从 当前的数据帧10的第60个取样s(59)开始,延续进入下一数据帧14,包括其第59 个取样s(58)。因而,为当前帧帧10产生的加权数据也含有以下一帧帧14的数据 为依据的数据。
根据数据传送速率,对于图1b-1e中示出的数据帧10的不同子帧进行多次检 索,以计算出音调滤波器和码书激励参数。应该理解成,在本实施例中,给帧10 只选择一个速率,因而音调和码书检索在不同大小的子帧中对应于下面说明的选择 速率进行。然而为了示意,在图1b-1e中示出在本较佳实施例的各种允许速率下对 帧10的音调和码书检索的子帧结构。
如图1a所示,在所有速率下,对每一帧10都有一次LPC计算。如图1b所 示,在全速率下,对应每一音调子帧16有两个码书子帧18。在全速率下有四次音 调更新,四个音调子帧16各一次,每次长为40个取样(5ms)。此外,在全速率下, 有八次码书更新,八个码书子帧18各一次,每次长为20个取样(2.5ms)。
在半速率下,如图1C所示,对应每一音调子帧20,有两个码书子帧22。音 调更新两次,两个音调子帧20各一次,而码书更新四次,四个码书子帧22各一次。 在四分之一速率下,如图1d所示,对单个音调子帧20有两个码书子帧26。对音 调子帧24进行一次音调更新,而码书则为两次,两个码书子帧26各一次。如图 1e所示,在八分之一速率下,不确定音调,在对应于帧10的帧28中码书只更新 一次。
另外,虽然LPC系数每帧只计算一次,但是,在线频谱对(LSP)表示式中, 利用从前一帧得到的LSP频率对它们线性内插达四次,以逼近汉明窗口位于每一 帧中心时的LPC分析的结果。其例外情况是在全速率下对码书子帧LPC系数不 被内插。LSP频率计算的细节在此后说明。
在较低速率下音调和码书检索较少地进行,此外,给LPC系数的传送也分配 少量位数。在不同速率下配置的位的数量示出在图2a-2d中。图2a-2d中的每一个 表示出分配给语音的每一160取样帧的声码器编码数据位的数量。在图2a-2d中, 各个LPC30a-30d中的数量是在相应速率下用于短期LPC系数编码的位数。 在本较佳实施例中,用于LPC系数编码的位数在全、半、四分之一和八分之一速 率下分别是40、20、10和10。
为了采用可变速率编码,LPC首先变换成线频谱对(LSP),得到的LSP频率 用DPCM编码器单独进行编码。LPC的阶数为10,因而有10个LSP频率和10 个独立的DPCM编码器。对DPCM编码器的位分配按照表I进行。
                                            表I                                    DPCM编码器号   1   2   3   4   5   6   7   8   9   10 速率1   4   4   4   4   4   4   4   4   4   4 速率1/2   2   2   2   2   2   2   2   2   2   2 速率1/4   1   1   1   1   1   1   1   1   1   1 速率1/8   1   1   1   1   1   1   1   1   1   1
在编码器和译码器中,LSP频率都在用于音调和码书检索之前转换回LPC滤 波器系数。
关于音调检索,图2a示出在全速率下,音调更新计算四次,对语音帧的每四 分之一长度各一次。对于全速率下的每次音调更新,新的音调参数编码用了10位。 如图2b-2d所示,在其它速率下,音调更新的次数不相同。当速率降低时,更新的 次数也减少。图2b示出在半速率下的音调更新,它计算两次,对语音帧的每一半 各进行一次。与此类似,图2c示出在四分之一速率下的音调更新,对每个语音帧 计算一次。同全速率一样,每次半速率和四分之一速率音调更新也用了10位来将 新的音调参数编码。但在八分之一速率下,如图2d所示,不计算音调更新,因为 在没有或很少语音以及音调冗余不存在的时候,就采用该速率来对各个帧编码。
在每10位音调更新值中,7位表示音调滞后,而3位表示音调增益。音调滞 后限制在17和143之间。音调增益线性是量化至0和2之间,以便用3位的值 来表示。
关于码书检索,图2a示出,在全速率下码书更新计算八次,语音帧的每八分 之一各一次。全速率下的每次码书更新用10位来进行新的码书参数编码。图2b-2d 中示出,在其它速率下进行不同次数的码书更新。然而,随着速率降低,码书更新 次数也减少。图2b示出半速率下的码书更新,它计算四次,对语音帧的每四分之 一各一次。图2c示出四分之一速率下的码书更新,计算两次,对语音帧的每一半 各一次。同全速率下一样,每个半速率和四分之一速率音调更新用10位来将新码 书参数编码。最后,图2d示出八分之一速率下的码书更新,对每一语音帧进行一 次计算。要注意到,在八分之一速率下,传送了6位,其中两位代表码书增益, 其余四位是随机位。后文将进一步讨论码书更新的位分配。
为码书更新而分配的位数表示将音调预测余量矢量量化所需的数据位。在全、 半和四分之一速率下,每次码书更新由7位码书索引加3位码书增益总共10位数 据组成。码书增益是用工作在对数区域的差分脉码调制(DPCM)编码器进行编码的。 对于八分之一速率,虽然也可以采用类似的位分布,但最好用一不同的方案。在八 分之一速率下,码书增益用两位表示,而四个随机产生的位则与接收到的数据一起 使用,作为替代码书的伪随机数发生器的种子
参见图3所示的编码器框图,LPC分析是以开环方式进行的。从输入语音取 样s(n)的各个帧中计算出LPC系数(α1-α10),如后文中说明,由LPC分析/量化器 50来完成,已供共振峰合成滤波器60使用。
然而,音调检索的计算是以闭环方式进行的,通常这称作分析-合成方法。但 是,在实际应用中,采用一种新颖的闭环/开环混合技术来进行音调检索。在音调 检索中,通过选取使输入语音与合成语音的均方之差为最小的参数而进行编码。为 了简化这部分的讨论,速率的问题不作考虑。但在下文中将更详细地讨论选出的速 率对音调和码书检索的影响。
在图3所示的初步实施例中,感知加权滤波器52由下列等式特征化:
W ( z ) = A ( z ) A ( z / μ ) - - - ( 1 )
其中
A ( z ) = 1 - Σ i = 1 10 α i Z - i - - - ( 2 )
它是共振峰预测滤波器,μ是感知加权参数,在本实施例中,μ=0.8。音调合 成滤波器58由下列等式特征化:
1 P ( z ) = 1 1 - b z - L - - - ( 3 )
下文讨论共振峰合成滤波器60,它是加权滤波器,由下列等式特征化:
H ( z ) = ( 1 A ( z ) ) W ( z ) = 1 A ( z / μ ) - - - ( 4 )
输入语音取样S(n)由感知加权滤波器52加权,所产生的加权语音取样X(n) 作为和输入提供给加法器62。感知加权用于给低信号功率频率中的错误加权。在 这些低信号功率频率中,噪声更易察觉。合成的语音取样X′(n)从共振峰合成滤波 器60输出作为差输入加到加法器62与X(n)作减法运算。加法器62输出的取样值 之差输入至均方差(MSE)单元64,它们被平方后累加。WSE单元64的结果提供 给最小化单元66,它产生音调滞后L、音调增益b、码书索引I和码书增益G的 数值。
在最小化单化66中P(z)中的音调滞后参数L的所有可能值与来自乘法器56 的数值c(n)一起输入音调合成滤波器58。在音调检索过程中,码书没有任何贡献, 即c(n)=0。由最小化单元66选出使输入语音与合成语音的加权差最小的L和b的 数值。音调合成滤波器58产生并输出P(n)值给共振峰合成滤波器60,一旦找到音 调滤波器的音调滞后L和音调增益b,就以类似方式进行码书检索。
应该理解,图3是本发明所采取的分析-合成方法的原理表示。在本发明的例 示应用中,这些滤波器不应用在典型的闭环反馈结构中。在本发明中,在检索过程 中反馈联系被切断,而代之以开环共振峰余量,其细节在下文中提供。
最小化单元66然后产生码书索引I和码书增益G的值。码书54的输出值是 按照码书索引I从许多随机高斯矢量值中选出的,在乘法器56中乘以码书增益G, 产生音调合成滤波器58中所用的c(n)值序列。选取使均方差为最小的码书索引I 和码书增益G用于传送。
应注意到,感知加权W(z)既通过感知加权滤波器52加在输入语音上,也通过 共振峰合成滤波器60中包含的加权功能加在合成语音上。因而,共振峰合成滤波 器60实际上是加权后的共振峰合成滤波器,它把等式1的加权功能与典型的共振 峰预测滤波器特性 组合起来,产生等式3的加权共振峰合成功能。
应该理解的是,换种方式,感知加权滤波器52可以放在加法器62和MSE单 元64之间。在这种情况下,共振峰合成滤波器60具有通常的滤波器特性
图4示出用图3的编码器对语音编码时所需步骤的流程。为了说明,涉及速 率判定的步骤包含在图4的流程中。在步骤80,从取样电路获取数字化语音取样, 在步骤82中计算出LPC系数。在LPC系数计算中用到了汉明窗口和自相关技术。 在步骤84,在本实施例中依据帧能量对重要的帧作出初步的速率确定。
为了有效地以少量位数将LPC系数编码,在步骤86,LPC系数转成线频谱 对(LSP)频率,然后在步骤88量化,以便传送。一种选择方案是,在步骤90可以 进行附加的速率确定,在步骤92,如果认为对初始速率作的LSP量化不充分,则 可增加速率。
在步骤94,对于处在分析中的语音帧的第1个音调子帧,LSP频率经内插后 转换成LPC系数,用于进行音调检索。在音调检索中,码书激励设置为零。在步 骤96和98的作为由先前讨论的合成方法所进行的一种分析的音调检索中,就每一 可能的音调滞后L,将合成语音与原始语音比较。对于每一L值,确定一个取整 数值的最佳音调增益b。在L和b值的组合中,最佳的L和b值组合给出合成语 音与原始语音之间的最小感知加权均方误差。在所确定的音调子帧的L、b最佳值 中,在步骤100将b值量化,以便与对应的L值一起传送。在音调检索的另一种 实现方法中,b值可以作为音调检索一部分进行量化,这些量化值用于进行音调检 索。因而,在这种实现方式中消除了在音调检索之后选中的b值在步骤100的量 化要求。
对于处在分析中的语音帧的第1码书子帧,在步骤102,LSP频率经内插后 转换成LPC系数,以用于进行码书检索。然而,在本实施例中,在全速率下,LSP 频率仅仅内插至音调子帧水平。由于在各个频率下音调和码书子帧的大小有差异, 在音调检索之外,对码书检索也进行这种内插和转换步骤。只有速率1/8是例外, 因为不计算音调数据,所以这一问题悬而未决。在步骤104和106的码书检索中, 在音调合成滤波器中用到音调滞后L和音调增益b的最佳值,使得就每一个可能 的码书索引I,将会成语音与原始语音作比较。对于每个I值,确定一个取整数 值的最佳码书增益G。I和G值组合中,最佳的I和G值组合给出合成语音与原 始语音之间最小的误差。在给码书子帧确定的最佳值I和G中,G值在步骤108 被量化,以便与对应I值一起传送。在码书检索的另一种变换应用中,G值可以 量化成码书检索的一部分,这些量化值用于进行码书检索。在这种变换应用中,省 除了码书检索之后在步骤108将选中的G值量化的要求。
在码书检索之后,编码器中的一个译码器在I、G、L和b的最佳值下运行。 编码中的译码器的运行使得编码滤波存储器重组,以用于以后的子帧。
然后在步骤110进行验证,以确定刚完成分析的该码书子帧是否对应于已进 行音调检索的音调子帧的码书子帧组中的最后一个码书子帧。换句话说,确认是否 还有其他对应于该音调子帧的码书子帧。在本实施例中,对应每一音调子帧有两个 码书子帧。如果确认有另一个对应于该音调帧的码书子帧,则对该码书子帧重复步 骤102-108。
如果不再有对应于该音调帧的码书子帧,则在步骤112进行验证,以确定处 于分析中的语音帧中是否有其他任何音调子帧存在。如果在当前处于分析中的语音 帧中有另一个音调子帧存在,则对每个音调子帧和对应的码书子帧重复步骤 94-110。当目前处于分析中的语音帧的计算都已完成之后,在步骤114,将代表语 音帧的LPC系数的数值,即各音调子帧的音调滞后L和增益b和各码书子帧的 码书索引I和增益G进行压缩,以便传送。
参见图5,其中示出一个译码器框图,按收到的LPC系数(αi),音调滞后和增 益(L&b)、码书索引和增益(I&G)用来合成语音。同图3一样,为了简化讨论,在 图5中也不考虑速率信息。数据速率信息可以作为辅助信息传送,在某些情况下, 可以在信道解调级导出。
译码器由码书130组成,得到所接收到的码书索引,或者在八分之一速率下 得到随机种子。码书130的输出提供给乘法器132的一个输入端,而乘法器132的 另一输出端接收码书增益G。乘法器132的输出与音调滞后L和增益b一起供给 音调合成滤波器134。音调合成滤波器134的输出与LPC系数αi一起供给共振峰 合成滤波器136。共振峰合成滤波器136的输出供给自适应后置滤波器138,其中 滤波和输出的是再生语音。后文中将讨论,有一种形式译码器是在编码器中实现的。 编码器的译码器不包括自适应后置滤波器138,但是包括一个感知加权滤波器。
图6是与图5译码器的动作相对应的流程。在步骤150译码器中,根据接收 到的参数重建语音。具体来讲,在步骤152,接收到的码书索引值输入进码书,产 生码矢量或码书输出值。在步骤154,乘法器接收该码矢量和码书增益G,并将这 些值相乘,得出的信号提供给音调滤波器。应该注意到,码书增益G是通过将收 到的DPCM参数译码和反量化而得以重建的。在步骤156,音调合成滤波器得到 所接收到的音调滞后L和增益b,以及乘法器输出信号,以对乘法器输出进行滤 波。
音调合成滤波器对码书矢量滤波后得到的数值输入共振峰合成滤波器。在步 骤158,LPC系数αi与供给共振峰合成滤波器,用于对音调合成滤波器的输出信号 滤波。在译码器中,将收到的参数译码成量化LSP频率,将LSP频率反量化并转 换成LPC系数αi,藉此重建LPC系数,以进行内插。在步骤160,共振峰合成滤 波器的输出提供给自适应后置滤波器,量化噪声在其中被掩盖,重建后的语音得到 增益控制。在步骤162,重建后的语音输出,以转换成模拟形式。
现在参见图7a和7b的框图,说明本发明的语音编码技术的进一步细节。在 图7a中,各个数字化语音取样的帧提供给一个汉明窗口系统200,在该子系统中, 输入语音在自相关子系统202进行自相关系数计算之前被窗口化。
图8的例示应用中示出了汉明窗口子系统200和自相关子系统202。汉明窗 口子系统200由通常是80×16位的ROM的查算表250和乘法器252组成。在 每一速率下,语音的窗口中心处于160个取样长的分析帧的第139和140个取样 之间。这样,用于计算自相关系数的窗口偏移分析帧60个取样。
因为汉明窗口是中心对称的,所以窗口化是利用包含有160个WH(n)值中的 80个值的ROM表进行的。汉明窗口的偏移是通过将ROM的地址指针相对于分 析帧的第一个取样偏移60个位置而实现的。这些值由乘法器以单精度与对应的输 入语音取样相乘。在分析窗口中,将s(n)作为输入语音信号,因而窗口化的语音信 号SW(n)被定义为:
Sw(n)=s(n+60)WH(n)        0<=n<=79    (5)

Sw(n)=s(n+60)WH(159-n)    80<=n<=159  (6)
查算表250内容的16进制例示值在表II中给出。这些数值解释成具有14个 小数位的二进制补码,表格要从左到右、从上到下阅读。
                                  表II   0x051f   0x0525   0x0536   0x0554   0x057d   0x05b1   0x05f2   0x063d   0x0694   0x06f6   0x0764   0x07dc   0x085e   0x08ec   0x0983   0x0a24   0x0ad0   0x0b84   0x0c42   0x0d09   0x0dd9   0x0eb0   0x0f90   0x1077   0x1166   0x125b   0x1357   0x1459   0x1560   0x166d   0x177f   0x1895   0x19af   0x1acd   0x1bee   0x1d11   0x1e37   0x1f5e   0x2087   0x21b0   0x22da   0x2403   0x252d   0x2655   0x277b   0x28a0   0x29c2   0xael   0x2bfd   0x2d15   0x2e29   0x2f39   0x3043   0x3148   0x3247   0x333f   0x3431   0x351c   0x3600   0x36db   0x37af   0x387a   0x393d   0x39f6   0x3aa6   0x3b4c   0x3be9   0xec7b   0x3d03   0x3d80   0xdf3   0x3e5b   0x3eb7   0x3f09   0x3f4f   0x3f89   0x3fb8   0x3fdb   0x3ff3   0x3fff
自相关子系统202由寄存器254、多路转换器256、移位寄存器258、乘法器 260、加法器262、循环移位寄存器264和缓存器266组成。窗口化的语音取样 SW(n)每隔20ms运算一次并锁存在寄存器254中。在LPC分析帧的第一个取样 SW(o)上,移位寄存器258和264中复位到0。在每一个新的取样Sw(n)上,多路转 换器256接收一个新的取样选择信号。该信号使取样能够从寄存器254进入多路 转换器。新的取样SW(n)也提供给乘法器260。与取样Sw(n-10)相乘,取样Sw(n-10) 处在移位寄存器258的未位SR10上。得到的数值在加法器262中与循环移位寄 存器264的未位CSR11上的数值相加。
移位寄存器258和260每收到一次时钟脉冲,就在移位寄存器258的首位 SR1中用SW(n)替换SW(n-1),并替换先前在位置CSR10中的数值。在移位寄存器 258有时钟脉冲时,新脉冲选择信号从多路转换器256的输入端中去除,使得当 前处在移位寄存器260位SR10中的取样Sw(n-9)被允许进入多路转换器256。在循 环移位寄存器264中,先前在位CSR11上的数值移入首位CSR1中。新取样选择 信号从多路转换器中去除后,移位寄存器258置位,以和循环移位寄存器264一 样,进行数据的循环移位。
对每个取样,移位寄存器258和264总共都得到11次时钟脉冲,因而执行 11次乘积/累加动作。在对160个取样进行时钟输入后包含在循环移位寄存器264 中的自相关结果作为R(0)-R(10)值时钟输入缓存器266。所有移位寄存器复位到零, 对窗口化语音取样的下一个帧重复此过程。
回头再参见图7a,对语音帧计算好自相关系数后,速率确定子系统204和LPC 分析子系统206就利用该数据来分别计算帧数据速率和LPC系数。由于这些运算 是彼此独立的,所以,它们可以以任何顺序甚至同时计算。这里为了说明,而首先 讨论速率确定。
速率确定子系统204有两个功能;(1)确定当前帧的速率,(2)重新估算背景噪 声水平。当前分析帧的速率最初是依据当前帧的能量、背景噪声水平的先前估值、 先前速率和来自一控制微机的速率指令确定的。而新的背景噪声水平是利用背景噪 声水平的先前估值和当前帧能量估算出的。
本发明将自适应阈值技术用于速率确定。当背景噪声变化时,用于选择速率 的阈值也变化。在本实施例中,计算三个阈值,以确定初始的速率选择RTP。这些 阈值是背景噪声先前估值的二次函数,示出如下:
T1(B)=-5.544613(10-6)B2+4.047152B+363.1293    (7)
T2(B)=-1.529733(10-5)B2+8.750045B+1136.214    (8)

T3(B)=-3.957050(10-5)B2+18.89962B+3346.789    (9)
其中,B是背景噪声的先前估值。
帧能量与三个阈值T1(B)、T2(B)和T3(B)作比较。如果帧能量低于所有三个阈 值,则选择最低的传送速率(1Kbps),即RTP=4速率1/8。如果帧能量低于两个阈 值,则选择第二个传送速率(2Kbps),即RTP=3,速率1/4。如果帧能量仅低于一个 阈值,就选择第三个传送速率(4Kbps),即RTP=2,速率1/2。如果帧能量高于所有 阈值,则选取最高传送速率(8Kbps),即RTP=1,速率1。
此后,可以依据前一帧的最终速率RTr来修改初始速率RTp。如果初始速率 RTP低于前一帧的最终速率减1,即(RTr-1),则设定一个中间速率RTm=(RTr-1)。在 发生高能量信号向低能量信号的转换时,这种修改过程使得速率缓慢地降低。然而, 如果初始速率选择等于或大于前一速率减1,即(RTr-1),则中间速率RTm设置成与 初始速率RTP相同,即RTm=RTP。在这种场合,当发生低能量信号向高能量信号 的转换时,速率会立即提高。
最后,中间速率RTm由来自微机的速率约束指令作进一步修改。如果速率RTm 大于微机所允许的最高速率,则设定初始速率RTi为最高允许值。与此类似,如果 中间速率RTm小于微机允许的最低速率,则初始速率RTi设为最低允许值。
在某些情况下,可能会要求以微机决定的速率对所有语音编码。速率约束指 令通过将最高和最低允许速率设为期望速率,而将帧速率设置成期望速率。速率约 束指令可用于特殊的速率控制场合,如用于速率联锁和模糊及突发传送,这些都在 后文说明。
图9给出速率确定算法的例示执行过程。要起动运算,寄存器270要预先装 入提供给加法器272的数值1。循环移位寄存器274、276和278分别装载二次阈 值等式(7)-(9)的第1、2和3系数。例如,循环移位寄存器274的末位、中位和首 位分别装载计算T1、T2和T3的等式的第1系数。与此类似,循环移位寄存器276 的末位、中位和首位分别装入计算T1、T2和T3的等式的第2系数。最后,循环 移位寄存器278的末位、中位和首位分别装入计算T1、T2和T3的等式的常数项。 在各个循环移位寄存器274、276和278中,数值从末位输出。
在计算第1阈值T1时,先前帧的背景噪声估值B在乘法器280中自乘。得 到的B2值乘以第1系数-5.544613(10-6),该系数从循环移位寄存器274的末位输 出。得到的结果在加法器286中加上来自乘法器284的背景噪声B与循环移位寄 存器276末位输出的第2系数4.047152的乘积。然后,加法器286的输出值在加 法器288中加上循环移位寄存器278的末位输出的常数项363.1293。加法器288 的输出即为T1的计算值。
加法器288输出的T1计算值在加法器290中减去帧能量值Ef,在本实施例 中,Ef是线性区域中的数值R(0),由自相关子系统提供。
换种方式,帧能量Ef也可以以分贝数在对数域中表示,它近似为由有效窗口 长度归一化后的第一自相关系数R(0)的对数值:
E f = 10 log 10 R ( 0 ) L A / 2 - - - ( 10 )
其中,LA是自相关窗口长度。应该理解到,声音动作也可以从包括音调预测 增益或共振峰预测增益Ga在内的其它各种参数中测得:
Ga = 10 log 10 E ( 10 ) E ( 10 ) - - - ( 11 )
其中,E(10)是第10次叠代后的预测残留能量,而E(0)是初始LPC预测残留能 量,后文中说明,在LPC分析中与R(0)相等。
利用比较器或限幅器292,从加法器290的输出中提取二进制补码差值符号 位的补码,并提供给加法器272,与寄存器270的输出相加。这样,如果R(0)与 T1之差为正,则寄存器270增量1。如果差值为负,寄存器270保持原样。
然后,循环寄存器274、276和278进行循环,因而,T2的等式(8)的系数出 现在其输出端。同讨论阈值T1的过程一样,重复计算阈值T2和将它与帧能量比 较的过程。然后,循环寄存器264、276和278再次循环,使T3的等式(9)的系数 出现在其输出端。阈值T3的计算和与帧能量的比较与上文中说明的相同。在完成 所有三个阈值的计算和比较后,寄存器270包含有初始速率估算值RTi。初始速率 估算值RTP提供给速率缓降逻辑294。存储在寄存器298中来自LSP频率量化子系 统的先前帧最终速率RTr也供给逻辑294。逻辑296计算数值(RTr-1),并提供初 始速率估算值RTP和数值(RTr-1)中的较大者作为输出。数值RTm给到速率限制逻 辑296。
前面说到,微机提供速率限制指令给声码器,具体讲是给逻辑296。在用到数 字信号处理器时,该指令在编码过程的LPC分析部分结束之前送入逻辑296中。 逻辑296确认该速率不超过速率限制值,并在RTm值超出限制值时修改它。如果 RTm值在允许速率范围内,它就作为初始速率值RTi从逻辑296中输出。初始速率 值RTi从逻辑296输出到图7a的LSP量化子系统210中。
前面提到的背景噪声估算值用于计算自适应速率阈值。先前帧的背景噪声估 算值B用于建立当前帧的速率阈值。然而,对于每一个帧,背景噪声估算值被更 新后用于为下一个帧确定速率阈值。新的背景噪声估算值B′是根据先前帧的背景 噪声估算值B和当前帧能量Ef在当前帧中确定的。
在确定用于下一帧的新的背景噪声估算值B′(作为先前帧背景噪声值B)时,要 计算两个数值。第1个值V1仅仅是当前帧能量Ef。第2个值V2是B+1和KB中 的较大者,K=1.00547。为了防止第2个值变得太大,将其限制在一个很大的常数 M=160,000之下。选择两个值V1和V2中小的一方作为新的背景噪声估算值B′。
数学表示为:
V1=R(0)                          (12)
V2=min(160000,max(KB,B+1))     (13)
新的背景噪声估算值B′是:
B′=min(V1,V2)                  (14)
其中,min(x,y)是x,y中的最小值,而max(x,y)是x,y中的最大值。
图9进一步示出了背景噪声估算算法的例示执行过程。第一个值V1仅仅是直 接提供给多路转换器300一个输入端的当前帧能量Ef。
第二个值V2从首先算出的数值KB和B+1中计算得到。在计算数值KB和 B+1时,存储在寄存器302中的先前帧背景噪声估算值B输出到加法器304和乘 法器306中。应该注意到,存储在寄存器302中的用于当前帧的先前帧背景噪声 估算值B与在先前帧中计算出的新的背景噪声估算值B′相等。加法器304还得到 一个输入值1与数值B相加,从而产生B+1。乘法器304还得到一个输入值K与 数值B相乘,从而产生KB。B+1和KB分别从加法器304和乘法器306输出到 多路转换器308和加法器310的各个输入端。
加法器310和比较器或限幅器312用于选择B+1和KB中较大的一方。加 法器310从KB中减去B+1并将结果提供给比较器或限幅器312。限幅器312提 供一个控制信号给多路转换器308,选择B+1和KB较大的一方作为输出。选出 的B+1或KB(选中项)从多路转换器308输出到限幅器314,限幅器314是饱和型 限幅器,当选中项低于常数值M时,输出选中项或者在选中项超出数值M时输 出数值M。限幅器314的输出作为第二输入供给多路转换器300并作为加法器316 的一个输入。
加法器316在另一个输入端还接收到帧能量值Ef。加法器316和比较器或限 幅器318用于选择数值Ef和限幅器314的输出中较小的一方。加法器316从限幅 器314的输出值中减去帧能量值,并将结果提供给比较器或限幅器318。限幅器 318向多路转换器300提供一个控制信号。用于选择Ef值和限幅器314的输出值 中较小的一方。多路转换器300输出的选中数值作为新的背景噪声估算值B′提供 给寄存器302,存储后作为当前帧背景噪声估算值B用在下一帧中。
再参见图7,各自相关系数R(0)-R(10)从自相关子系统202输出到LPC分析 子系统206中。在LPC分析子系统206中计算出的LPC系数用在感知加权滤波 器52和共振峰合成滤波器60中。
LPC系数可以通过采用德宾(Durbin)递推式的自相关方法获得,该方法在“语 音信号数字化处理”(赖宾纳和谢弗,普蓝蒂斯-豪公司1978年出版)一书中讨论过。 这种技术是用于获得LPC系数的高效计算方法。该算法可以用下列等式表示:
E(0)=R(0),i=1;                       (15)
ki = { R ( i ) - Σ j = 1 i = 1 α j ( i - 1 ) R ( i - j ) } / E i - 1 ; - - - ( 16 )
α i ( i ) = K i ; - - - ( 17 )
α j ( i ) = α j ( i - 1 ) - ki α i - j ( i - 1 ) 1 < = j < = i - 1 - - - ( 18 )
E ( i ) = ( 1 - k i 2 ) E ( i - 1 ) - - - ( 19 )
如果i<10,则进到等式(16),并取i=i+1    (20)
十个LPC系数标为αj(10),1<=j<=10。
在将LPC系数编码之前必须确保滤波器的稳定性。滤波器的稳定性是这样实 现的,将滤波器的极点沿径向向内微量移动,这一变化减小峰值频率响应的幅值而 扩展峰值的带宽。这种技术作为带宽扩展是众所周知的,在拖苦拉等人所著的 “PARCOR语音分析-合成中的频谱平滑”一文(ASSP学报)中有进一步说明。在现 情况下通过按比例改变各LPC系数,可以迅速地完成带宽扩展。因而如表III中所 得到的LPC都乘以对应的十六进制数值以产生LPC分析子系统206的最终输出 LPC系数α1-α10。应该注意到,表III中列出的数值是十六进制形式的。用二进制补 码标记时有十五位。在这种形式下数值0×8000表示-1.0,向数值0×7333(或 29491)表示0.899994等于29491/32768。
                          表III
α1=α1(10)·0x7333
α2=α2(10)·0x67ae
α3=α3(10)·0x5d4f
α4=α4(10)·0x53fb
α5=α5(10)·0x4b95
α6=α6(10)·0x4406
α7=α7(10)·0x3d38
α8=α8(10)·0x3719
α9=α9(10)·0x3196
α10=α10(10)·0x2cal
这些运算最好以双精度进行,即进行32位的除法、乘法和加法。最好有双精 度的准确度,以保持自相关函数和滤波器系数的动态范围。
在图10中示出了LPC子系统206的一个例示实施例的方框图,它用到上述 等式(15)-(20)。LPC子系统206由三个电路部分组成,一个计算电路330和两个 用于更新主计算电路330的寄存器的缓存更新电路332和334。计算首先是从数 值R(1)到R(10)装入缓存器340中开始的。为了启动计算寄存器346,通过多路转 换器344预先装入数值R(1)。寄存器由多路转换器354用R(0)初始化,缓存器 352(它保存十个αj(i-1)数值)由多路转换器354初始化为全零,缓存器356(它保持十 个αj(i)数值)由多数转换器358初始化为全零,对于计算循环i设定为1。为了明了 起见,计数器i和j以及其它运算循环控制在图中未画出,但是这种类型的逻辑 电路的设计和综合是处在数字逻辑设计领域中普通熟练者的能力范围之内的。
αj(i-1)数值从缓存器356输出,以计算等式(14)中的KiE(i-1)项。各个数值R(i-j) 从缓存器340输出,在乘法器360中与αj(i-1)相乘。得到的数值与来自寄存器346的 数值在加法器362中作减法,每次相减的结果存储在寄存器346中以供作下一项 减法。在第i个循环中,如等式(14)的求和项中所示,有i-1次乘法和累加运算。 在该循环的最后,寄存器346中的数值在除法器364中除以来自寄存器348的数 值E(i-1),产生数值ki。
然后,该数值ki用在缓存更新电路332中,计算等式(19)中的E(i),数值E(i) 在ki的下一个计算循环中用作为数值E(i-1)。当前循环的数值ki在乘法器366中自 乘以获得数值ki2。然后,数值ki2在加法器368中被减去1。这一加法器运算的 结果在乘法器370中乘以来自寄存348的数值E(i)。其结果E(i)通过多路转换器350 输入寄存器348存储起来作为下一周期的数值E(i-1)。
然后,数值ki用来以等式(15)计算数值αi(i)。在这种情况下,数值ki通过多路 转换器358输出缓存器356。数值ki还用在缓存更新电路334中,以等式(18)从 数值αi(i-1)计算出数值αj(i)。缓存器352中现存的数值用于计算αj(i)。如等式(18)所示, 在第i个循环中有i-1次运算。在i=1的迭代中,不需要这些运算。对于第i次循 环的各个j值,计算出一个αj(i)值。在计算各αj(i)值时,各αi-j(i-1)值在乘法器372中 乘以数值ki,以输出到加法器374。在加法器374中,从另外输入加法器374的 数值αj(i-1)中减去数值kiαi-j(i-1)。各个乘法和加法的结果作为αj(i)值通过多路转换器 358供给缓存器356。
对当前循环计算出αi(i)和αj(i)值后,就将刚算出并存储于缓存器356中的这些 数值通过多路转换器354输出给缓存器352。存在缓存器356中的数值存储于缓 存器352的相应位置中。这样,缓存器352得到更新,以计算i+1循环的数值ki。
在前一循环的最后产生的数据αj(i-1)在当前循环中用于为下一循环产生更新数 据αj(i),注意到这一点是很重要的。必须保留该前一循环的数据,以便为下一循环 完整地产生更新数据。这样,两个缓存器356和352用于将前一循环的数据保存 到更新数据完全产生为止。
上述说明是针对在完成更新数值的计算时数据从缓存器356向缓存器352并 行转送作出的。这种执行方式确保旧的数据在计算新数据的整个过程中得以保留, 而不会象在设置单个缓存器情况下,旧的数据在完全利用之前就丢失了。上述方式 是实现相同结果的现有几个方式之一。例如,缓存器352和356可以经过多路转 换,以使得在当前循环中依据存储在一个第一缓存器中的数值计算数值ki时,更 新数据存在第二缓存器中,用在下一计算循环中。在下一循环中,数值ki依据存 在第二缓存器中的数值算出。第二缓存器中的数值和数值ki用于为下一循环产生 更新数据,这些更新数据存在第一缓存器中。缓存器的这种替换使得前一计算循环 的数据得以保存,以此产生更新数据,并在不重写需要用来产生更新数据的先前数 据的情况下存储更新数据。使用这种技术能够将与下一循环ki值的计算相关的延 迟减至最小。因而,在计算ki时乘积/累加的更新可以在计算下一αj(i-1)值的同时进 行。
在完成最后一个计算循环(i=10)后存在缓存器356中的10个LPC系数αj(10) 换算到相应的最后LPC系数αj。向多路转换器344、376和378提供一个换算选 择信号,因而,存在系数查算表342中的换算数值,即表III的十六进制数值,被 选中,通过多路转换器344输出。存在表342中的数值按顺序在时钟脉冲控制下 输出,并输入乘法器360。乘法器360还通过多路转换器370接收从寄存器356顺 序输出的数值αj(10)。换算后的数值通过多路转换器378从乘法器360输出到LPC 至LSP转换子系统208(图7)。
为了迅速有效地以少量位数将10个换算后的LPC系数编码,各系数转换成 线频谱对频率,在宋和江发表于ICASSP′84中的文章“线频谱对(LSP)和语音数据 压缩”中对此有说明。在下列等式(21)和(22)及表IV中示出了LSP参数的计算。
LSP频率是处在0和π之间的下列等式的十个根:
P(ω)=cos5ω+P1cos4ω+…+P4cosω+P5/2    (21)
Q(ω)=cos5ω+q1cos4ω+…+q4cosω+q5/2    (22)
其中,Pn和qn对n=1、2、3、4分别取值,并在表IV中递归定义
                      表IV
P1=-(α1+α10)-1      q1=-(α1-α10)+1
P2=-(α2+α9)-P1    q2=-(α2-α9)+q1
P3=-(α3+α8)-P2    q3=-(α3-α8)+q2
P4=-(α4+α7)-P3    q4=-(α4-α7)+q3
P5=-(α5+α6)-P4    q5=-(α5-α6)+q4
表IV中,α1,……,α10是从LPC分析得到的换算系数。为了简化,等式(21) 和(22)的10个根换算成0到0.5之间的值。LSP频率的特性是,当LPC滤波器稳 定时,两个等式的根变动;即,最低的根ω1是P(ω)的最低的根,次最低的根ω2是 Q(ω)的最低的根,以此类推。在10个频率中,奇频率是P(ω)的根,而偶频率是 Q(ω)的根。
根的查找方法如下。首先,如上面所示那样将LPC系数加入,从而以双精度 计算出P和q系数。然后,每隔π/256弧度计算一次P(ω),再观察这些值的符号 变化,辨别在该子区域中的一个根。如果找到一个根,则在该区域两端之间进行一 次线性内插,以迫近根的真实位置。由于频率的定序特性,在每对P根之间保证 存在一个Q根(第5个Q根处于第5个P根与π之间)。在每对P根之间进行对分 查找,确定Q根的位置。为了简便,每个P根近似取最近的π/256数值,在这些 近似值之间进行对分查找。如果未找到根,则使用先前找到根的最近的帧的LSP 频率的非量化值。
现在参见图11,其中示出一个用于产生LSP频率的例示电路。上述操作需要 总共257个在0和π之间的可能的余弦值,它们在双精度下存储在余弦表400中, 该表格由模256计数器402寻址。对于输入表400的各个j值,给出cosω、cos2ω、 cos3ω、cos4ω和cos5ω输出,其中:
ω=jπ/256              (23)
j是计数值。
余弦表400输出的数值cosω、cos2ω、cos3ω和cos4ω输入到相应的各个乘法 器404、406、408和410,而数值cos5ω则直接输入加法器412中。这些值在各乘 法器404、406、408和410中分别乘以通过多路转换器414、416、418和420输 入其中的数值P4、P3、P2和P1。
相乘结果也输入累加器412。此外,数值P5通过多路转换器422送到乘法器 424,同时,常数0.5,即1/2也送到乘法器424。乘法器424的输出结果也作为另 一个输入给加法器412。为了利用同一电路计算P(ω)和Q(ω)值,根据P/q系数选 通信号,多路转换器414-422在P1-P5或q1-q5之间作出选择。图中未示出产生 P1-P5或q1-q5的电路,但是,利用一系列将LPC系数和P1-P5或q1-q5进行加减 运算的加法器,以及存储P1-P5或q1-q5值的寄存器,很容易实现该电路。
加法器412将输入值相加,依情况而定,输出P(ω)或Q(ω)。为了简便,在以 后的讨论中将考虑P(ω)值的情况,Q(ω)值以类似方式利用q1-q5数值算出。加法 器412输出P(ω)的当前值,存储在寄存器426中。先前存在寄存器426中的前一 P(ω)值移位至寄位器428中。当前和先前的P(ω)值的符号位在异或门430中异或, 以传给线性内插器434的起动信号的形式显示零交叉或符号变换。P(ω)的当前和 先前数值也从寄存器426和428输出到线性内插器434,该内插器响应起动信号, 在P(ω)发生零交叉的两个值之间进行内插。该线性内插小数值结果,即与数值j-1 的距离,与来自计数器256的数值j一起提供给缓存器436。门430还将起动信 号提供给缓存器436,缓存器436允许数值j和对应的小数值FVj存入。
在加法器438中,数值j中减去该小数值,作为缓存器436的输出,或者换 种方式,减去后输入缓存器436。在替换方式下,在输入缓存器436的j线中用一 个寄存器,使得数值j-1与小数值输入一起输入缓存器436。小数值可以在存入寄 存器436之前或从中输出时加到数值j-1上。在任何情况下,混合值j+FVj或 (j-1)+FVj输出到除法器440,除以输入的常数512。只需改变二进制字中的二进制 小数点位置,就可以简单地完成除法操作。这一除法操作为达到处于0和0.5之 间的LSP频率而提供必需的换算。
P(ω)或Q(ω)的函数计算需要5次余弦值查表,4次双精度乘法运算和4次加 法运算。算出的根通常只精确到大约13位,并在单精度下存放。LSP频率提供给 LSP量化子系统210(图7),用于量化。
LSP频率算出之后,就必须量化,以便传送。十个LSP频率中的每一个都大 致以一偏置数为中心。应该注意到,当输入语音具有平坦的LSP频谱特性曲线并 且不能做任何短期预测时LSP频率接近偏置数。偏置数从编码器中取出,并且用 到一个简单的DPCM量化器。在译码器中,偏置数又加回去。由LPC至LSP转 换子系统所提供的各LSP频率ω1-ω10的偏置数的非,以十六进制形式给出在表V 中。表V中给出的数值也是二进制补码,有15个小数位。十六进制数值0x8000(或 -32768)表示-1.0。这样,表V的第一个值0xfa2f(或-1489)表示 -0.045441=-1489/32768。
表V   LSP频率   负偏置数   ω1   0xfa2f   ω2   0xf45e   ω3   0xee8c   ω4   0xe8bb   ω5   0xe2e9   ω6   0xdd18   ω7   0xd746   ω8   0xd175   ω9   0xcba3   ω10   0xc5d2
子系统中用的预测器等于子系统一个缓存器中存储的来自先前帧的量化LSP 频率的0.9倍。加入衰减常数0.9,因而信道错误最终将消除掉。
用到的量化器是线性的,但动态范围和步长随速率而变。在高速率帧中,每 一LSP频率有更多位数要传送,因而,量化级数依赖于速率。在表VI中,示出了 每速率下对各频率的量化的位分配和动态范围。例如,在速率1,ω1统一量化成4 位(即16级),最高量化级为0.025,而最低的是-0.025。
                              表VI   速率   全   半   四分之一   八分之一   ω1   4:±.025   2:±.015   1:±.01   1:±.01   ω2   4:±.04   2:±.015   1:±.01   1:±.015   ω3   4:±.07   2:±.03   1:±.01   1:±.015   ω4   4:±.07   2:±.03   1:±.01   1:±.015   ω5   4:±.06   2:±.03   1:±.01   1:±.015   ω6   4:±.06   2:±.02   1:±.01   1:±.015   ω7   4:±.05   2:±.02   1:±.01   1:±.01   ω8   4:±.05   2:±.02   1:±.01   1:±.01   ω9   4:±.04   2:±.02   1:±.01   1:±.01   ω10   4:±.04   2:±.02   1:±.01   1:±.01   总计   40位   20位   10位   10位
如果由速率确定算法选中的速率的量化范围不够大,或者发生斜率溢出,则 速率提高到下一个较高的速率上。速率持续提升,一直到动态范围得到调节或达到 全速率为止。在图12中,给出了运用选择速率提高技术的装置的一个例示框图。
图12以框图形式示出了LSP量化子系统210的一个例示设备,它包括速率 提升电路。图12中,当前帧LSP频率从除法器440(图11)输出到寄存器442,存 储起来,以在下一帧中进行速率提升限定时输出。先前帧LSP频率和当前帧LSP 频率分别从寄存器442和除法器440输出到速率提升逻辑444,进行当前帧的速率 提升限定。速率提升逻辑442还接收到初始速率决定,以及来自速率限定子系统 204的速率限制指令。在确定是否必须增大速率时,逻辑444根据当前和先前帧 LSP频率差值的平方之和,将先前帧LSP频率与当前帧LSP频率比较。其结果再 与一个阈值比较,阈值如被超出,则显示有必要提升速率来确保高质量的语音编码。 在超出阈值时,逻辑444将初始速率增加一个速率级别,从而给出整个编码器通 用的最终速率。
图12中,各LSP频率值ω1-ω10逐个与对应的偏置数一起输入加法器450。 从输入的LSP值中减去偏置数,其结果输出给加法器452。加法器452还收到一 个输入-预测值,即乘以衰减常数后的先前帧对应的LSP值。加法器452从加法器 450的输出中减去预测值。加法器452的输出作为量化器454的一个输入。
量化器454由限幅器456、最小动态范围查算表458、逆步长查算表460、加 法器462、乘法器464和位屏蔽466组成。在量化器454中进行量化,首先确定 输入值是否处在量化器454的动态范围内。输入值提供给限幅器456,如果该输入 超出了表458提供的限定值,限幅器456就将它限制在动态范围的上界和下界内。 查算表458按照表VI,响应输入其中的速率和LSP频率索引i,向限幅器456提 供存储的限定值。限幅器456的输出值输入加法器462,从中减去表458提供的 动态范围的最小值。按照表VI中所列的最小动态范围值,先不管其符号,依据速率 和LSP频率索引i再次确定表格458的输出值。例如,对于(全速率,ω1),查算表 458的值为0.025。
加法器462的输出在乘法器464中乘以一个选自查算表460的数值。查算表 460包含有与表VI中所列数值一致的、各个速率下的各LSP值的步长之逆相对应 的数值。依据速率和LSP频率索引i来选择查算表460的输出值。对于各个速率 和LSP频率索引i,存在查表460中的数值是((2n-1)/动态范围),其中,n是代表 量化值的位数。例如,对于(速率1,ω1),查算表460的数值是(15/0.05)或300。
乘法器464的输出是介于0和2n-1之间的一个数值,它供给位屏蔽466。位 屏蔽466响应速率和LSP频率索引,根据表VI,从输入值中提取适当的位数。提 出的是输入值中的n个整数位,从而形成位限制输出Δωi。数值Δωi是量化未偏 置差分编码LSP频率,从代表LPC系数的信道中传送。
数值Δωi也通过一个由逆量化器468、加法器470、缓存器472和乘法器474 组成的预测器反馈。逆量化器468由步长查算表476、最小动态范围查算表478、 乘法器480和加法器482组成。
数值Δωi与选自查算表476的一个数值一起输入乘法器480。查算表476含 有在各个速率下依据于表VI中所列数值的各LSP数值的步长所对应的数值。依据 速率和LSP频率索引i,从查算表476中选择输出值。对于各个速率和LSP频率 索引i,存在查算表460中的数值是(动态范围/2n-1),其中,n是代表量化值的位 数。乘法器480将输入值相乘,提供输出给加法器482。
加法器482从另一输入接收表478的一个数值。表478的输出数值根据表VI 中所列最小动态范围数值,无视其符号,由速率和LSP频率索引i来确定。加法器 482将表478提供的最小动态范围值与乘法器480的输出值相加,结果输出给加 法器470。
加法器470在另一输入端接收到乘法器474的预测值输出。这些值在加法器 470中相加,并存储在十个字容量的缓存器472中。在当前帧中缓冲器472的每 个先前帧输出值在乘法器474中乘以常数0.9。乘法器474输出的预测值如前面讨 论过的那样,供给加法器452和470。
在当前帧中,缓存器472中存储的数值是先前帧重建LSP值减去偏置值。相 类似,在当前帧中,加法器470的输出值是不带偏置的当前帧重建的LSP值。在 当前帧中,缓存器472和加法器470的输出分别提供给加法器484和486,加上 偏置数。加法器484和486的输出值分别是先前帧重建LSP频率和当前帧重建 LSP频率值。依照下列等式在更低速率下进行LSP平滑化:
平滑后LSP=a(当前LSP)+(1-a)(先前LSP)     (24)
其中:
a=0    全速率下
a=0.1    半速度下
a=0.5    四分之一速率下
a=0.85   八分之一速率下
先前帧(f-1)重建LSP频率值ω′i,f-1和当前帧(f)重建频率值ω′i,f从量化子系统210 输出到音调子帧LSP内插子系统216和码书子帧LSP内插子系统226。量化后的 LSP频率值Δωj从LSP量化子系统210输出到数据汇编子系统236,用于传送。
以后说明的加权滤波器和共振峰合成滤波器所用到的LPC系数对于正在编 码的音调子帧是合适的。对各个音调子帧,LPC系数的内插对每个音调子帧进行 一次,如表VII:
                                 表VII
速率1:
ωi=0.75ω′i,f-1+0.25ω′i,f       音调子帧1
ωi=0.5ω′i,f-1+0.5ω′i,f         音调子帧2
ωi=0.25ω′i,f-1+0.75ω′i,f       音调子帧3
ωi=ω′i,f                          音调子帧4
速率1/2:
ωi=0.625ω′i,f-1+0.375ω′i,f     音调子帧1
ωi=0.125ω′i,f-1+0.875ω′i,f     音调子帧2
速率1/4:
ωi=0.625ω′i,f-1+0.375ω′i,f     音调子帧1
速率1/8:
不进行音调检索
音调子帧计数器224用于跟踪计算音调参数的音调子帧,计数器的输出提供 给音调子帧LSP内插子系统216,用于音调子帧LSP内插。音调子帧计数器224 提供一个输出给数据压缩子系统236,指示在选中速率下音调子帧的结束。
图13示出音调子帧LSP内插子系统216的一个例示装置,它用于对相关音 调子帧的LSP频率进行内插。在图13中,先前和当前LSP频率ω′i,f-1和ω′i,f-1分别 从LSP量化子系统输出到乘法器500和502,再分别乘以存储器504提供的常数。 存储器504存储一组常数,并且,根据来自音调子帧计数器的音调子帧数输入(这 在后文讨论),提供一个表VII中所列的常数输出,与先前和当前帧LSP数值相乘。 乘法器500和502的输出按照表VII中的等式在加法器506中相加,形成该音调子 帧的LSP频率值。对于各音调子帧,LSP频率的内插一旦完成,就执行LSP至 LPC的反向转换,以获得感知加权滤波器和A(z)的当前系数值。这样,内插后的 LSP频率提供给图7的LSP至LPC转换子系统218。
LSP至LPC转换子系统218将内插LSP频率逆转换成LPC系数,用于语 音的再合成。先前的参考文章,宋和江所著的“线频谱对(LSP)和语音数据压缩” 中对本发明在转换过程中用的算法有全面的讨论和推导。计算特征是这样的,P(z) 和Q(z)可以利用LSP频率由下列等式表示:
P ( z ) = ( 1 + Z - 1 ) π i = 1 5 ( 1 - 2 cos ( ω 2 i - 1 ) Z - 1 + Z - 2 ) - - - ( 25 )
其中,ωi是P′多项式的根(奇频率),
Q ( z ) = ( 1 - Z - 1 ) π i = 1 5 ( 1 - 2 cos ( ω 2 i ) Z - 1 + Z - 2 ) - - - ( 26 )
其中,ωi是Q′多项式的根(偶频率),
A ( z ) = Pz + Qz 2 - - - ( 27 )
这一运算首先是对所有奇频率i算出数值2cos(ωi)。利用零附近的余弦的5阶 单精度泰勒级数展开式完成该计算。在余弦表中最接近点处的泰勒展开式可能更准 确,但是,零附近的展开式有足够精度,并且,不会带来多余的计算。
接下去,计数P多项式的系数。多项式之积的系数是单个多项式的系数序列 的卷积。上述等式(25)中6个z多项式系数序列的卷积{1,-2cos(ω1),1},{1, -2cos(ω3),1}……{1,-2cos(ω9),1}和{1,1}被算出。
P多项式一经算出,就对Q多项式重复相同的程序,上述等式(26)中的6个 z多项式系数序列{1,-2cos(ω2),1},{1,-2cos(ω4),1}……{1,-2cos(ω10),1}和 {1,1}以及适当的系数被加起来,并除以2,即移动1位,以形成LPC系数。
图13还详细地示出LSP至LPC转换子系统的例示执行过程。电路部分508 依据输入值ωi计算出数值-2cos(ωi)。电路部分508由缓存器509、加法器510和 515、乘法器511、512、514、517和518、寄存器513和516组成。在计算数值 -2cos(ωi)时,寄存器513和516被初始化为零。因为该电路是计算sin(ωi)的,所 以,在加法器510中首先先以输入常数值π/2减ωi。该数值由乘法器511取平方, 然后,用乘法器512和寄存器513依次计算数值(π/2-ωi)2、(π/2-ωi)4、(π/2-ωi)6和 (π/2-ωi)8。
泰勒级数展开式系数C[1]-C[4]依次和乘法器512的输出值一起输入乘法器 514。乘法器514的输出值输入加法器515,与寄存器516的输出相加,这些值累 加形成输出C[1](π/2-ωi)2+C[2](π/2-ωi)4+C[3](π/2-ωi)6+C[4](π/2-ωi)8,输给乘法 器517。来自寄存器516的乘法器的输入与来自加法器510的输出(π/2-ωi)在乘 法器517中相乘。来自乘法器517的数值cos(ωi)在乘法器518中乘以常数-2,从 而形成输出-2cos(ωi),提供给电路部分520。
电路部分520用于计算P多项式的系数,它由存储器512、乘法器522和加 法器523组成。存储器单元P(1)…P(11)的阵列除P(1)置为1之外其余初始化为0。 已标到的-2cos(ωi)数值送入乘法器524,执行卷积(1,-2cos(ωi),1),其中,1≤i≤ 5,1≤j≤2i+1,j<1时P(i)=0。电路部分520是双份的(未示出),以便计算Q多 项式的系数。得到的P(1)-P(11)和Q(1)-Q(11)新的最终值送给电路部分524。
电路524用来完成i=1至i=10的十个音调子帧LPC系数αi的计算。它由缓 存器525和526、加法器527、528和529、除法器或位移位器530组成。最终值 P(i)和Q(i)存储在缓存器525和526中。P(i)和P(i+1)数值在加法器527中相加, 而相应的Q(i)和Q(i+1)值在加法器528中相减,这里1≤i≤10。加法器527和 528的输出,分别为P(z)和Q(z),输入加法器529,相加并输出数值(P(z)+Q(z))。 将各个位移动一位,从而将加法器的输出除以2。各移位后的数值(P(z)+Q(z))/2是 LPC系数αi输出。音调子帧LPC系数送给图7的音调检索子系统220。
除了全速率之外,对选中速率所确定的各个码书子帧,LSP频率也经过内插。 内插的计算方式与音调子帧LSP内插的相同。码书子帧LSP内插在码书子帧LSP 内插子系统226中运算,并提供给LSP至LPC转换子系统228,转换是以类似于 LSP至LPC转换子系统218的方式进行的。
在参见图3时讨论过,音调检索是一种利用合成技术的分析,通过选择使输 入语音和合成语音的误差最小的参数来进行编码。在音调检索中,语音是用等式(2) 表示频率特性的音调合成滤波器合成的。每隔20ms,语音帧被划分成一定量的音 调子帧,如前所述,它依赖于为该帧所选择的数据速率。对于每一个音调子帧分别 计算一次参数b和L,即音调增益和滞后。在这儿例示的执行过程中,音调滞后L 介于17和143之间的,在b=0的情况下,为了传送原因L=16。
语音编码器用到了在等式(1)中所列形式的感知噪声加权滤波器。如前所述, 感知加权滤波器的目的是给处在低能量的频率中的错误加权,从而减少错误引起的 噪声的影响。感知加权滤波器是从以前建立的短期预测滤波器中导出的。在该加权 滤波器以及后文将说明的共振峰合成滤波器中用到的LPC系数是为正在编码的子 帧适当地内插过的数值。
在进行合成-分析操作时,在编码器中用到语音译码器/合成器的备份。在语音 编码器中所用的合成滤波器的形式由等式(3)和(4)给出。等式(3)和(4)对应于一个其 后有感知加权滤波器的译码语音合成滤波器,因而称其为加权合成滤波器。
在假设当前帧时码书基值为零,即G=0情况下,进行音调检索。对于每个可 能的音调滞后L进行语音合成,并将它与原始语音比较。输入语音和合成语音之 间的误差在计算其均方误差(MSE)之前由感知加权滤波器加权。其目的是从所有可 能的L和b值中选取使感知加权语音和感知加权合成语音之间的误差最小的L和 b数值。误差的最小化可以用下列等式表示:
MSE = 1 LP Σ n = 0 L p - 1 ( x ( n ) - x ( n ) ) 2 - - - ( 28 )
其中,Lp是音调子帧中取样的数量,在本实施例中,对全速率音调子帧为40。 计算出使MSE最小的音调增益b。对所有允许的L数值重复这些运算,并给音调 滤波器选择产生最小MSE的L和b。
最佳音调滞后的计算涉及在n=-Lmax与n=(Lp-Lmin)-1之间所有时间下的共振 峰余量(图3中的P(n)),其中Lmax是最大音调滞后值,Lmin是最小音调滞后值, 而Lp是选中速率下的音调子帧长度,n=0是音调子帧的起点。在本实施例中, Lmax=143,而Lmax=17。采用图14中给出的编号方案,对于速率1/4,n=-143到n=142, 而对于速率1/2,n=-143到n=62,对于速率1,n=-143到n=22。当n<0时,共 振峰余量就是来自先前音调子帧的音调滤波器输出,它保存在音调滤波器存储器 中,称为闭环共振峰余量。在n>=0的时候,共振峰余量是共振峰分析滤波器的 输出,该滤波器具有滤波特性A(z),其输入是当前分析帧语音取样。在n>=0时, 共振峰余量称为开环共振峰余量,并且当音调滤波器和码书在该子帧中作了极好的 预测时,正好为P(n)。对于从相关的共振峰余量值计算出最佳音调滞后的说明将参 照图14-17给出。
音调检索是对143个重建的闭环共振峰余量取样P(n)(n<0)以及Lp-Lmin非量 化开环共振峰余量取样Po(n)(n≥0)作出的。该检索有效地从一种基本开环检索,其 中L是小的,并且所用到的大部分余量取样为n>0,逐渐转变成一种基本闭环 检索,其中L是大的,因而用到的所有余量取样是n<0。例如,在全速率下利 用图14中的编号方案,其中,音调子帧由40个语音取样组成,则语音检索从采用 号码n=-17到n=22的共振峰余量取样组开始进行。在这一方案中,从n=-17到 n=-1,取样为闭环共振峰余量取样,而从n=0到n=22,取样为开环共振峰余量取 样。用于确定最佳音调滞后的下一组共振峰余量取样是编号由n=-18到n=21的取 样。而从n=-18到n=-1,取样是闭环共振峰余量取样,从n=0到n=21,则是开环 共振峰余量取样。对所有取样组进行该过程,直到给最后的共振峰余量取样组 n=-143至n=-104计算出音调滞后为止。
前面就等式(28)讨论过,目的是在随机码书给出零基值(G=0)的情况下,对于 所有可能的L和b值,使x(n)与x′(n)之间的误差最小,这里x(n)是感知加权语音 减去加权共振峰滤波器的零输入特性曲线(ZIR),x′(n)是滤波器中无存储时的感知 加权合成语音。等式(28)可以重写成关于b的等式:
MSE = 1 L p Σ n = 0 L p - 1 ( x ( n ) - by ( n ) ) 2 - - - ( 29 )
其中:
y(n)=h(n)*P(n-L)    0≤n≤Lp-1       (30)
其中,y(n)当b=1时是带有音调滞后L的加权合成语音,而h(n)是具有等式 (3)的滤波特性的加权共振峰合成滤波器的冲激响应。
该最小化过程等同于使EL值最大化,其中:
E L = ( E xy ) 2 E yy - - - ( 31 )
其中:
E xy = Σ n = 0 L p - 1 x ( n ) y ( n ) - - - ( 32 )

E yy = Σ n = 0 L p - 1 y ( n ) y ( n ) - - - ( 33 )
对于给定的L,最佳值b为:
b L = E xy E yy - - - ( 34 )
这一检索对所有允许的L值重复进行。最佳值b限制为正,因而,对于在检 索中导致任何负的Exy值的L值不作考虑。最后,选出使EL值最大的音调滞后L和 音调增益b用于传送。
如前所述,x(n)实际是输入语音与加权共振峰滤波器的ZIR之间的感知加权 差,这是因为,对于后面的等式(35)-(38)中设定的递归卷积,已假设滤波器A(z) 总是从滤波器存储器中的零起始。然而,滤波器从滤波器存储器中的零起始并非实 际情况。在合成时,滤波器处在从先前子帧保留下来的状态下。在执行过程中,在 起始点,从感知加权语音中除去初始状态的影响。在这种方式下,对每一L值, 只需计算稳态滤波器A(z)的特性曲线直到p(n),所有存储器最初为0,并且可以用 到递归卷积。x(n)的值只需计算一次,但是,共振峰滤波器对音调滤波器的输出的 零状态响应y(n)要就每一滞后L进行计算。各y(n)的计算涉及许多次不必就每一 滞后都进行的冗余乘法运算。下文中说明的递归卷积方法用于将所需计算减至最 少。
关于递归卷积,数值yL(n)用y(n)值定义成:
yL(n)=h(n)*P(n-L)    17≤L≤143                    (35)

yL(n)=h(i)p(n-L-i)   17≤L≤143                    (36)
从等式(32)和(33)可看出:
yL(o)=P(-L)h(o)                                    (37)
yL(n)=yL-1(n-1)+p(-L)h(n)  1≤n≤Lp,17≤L≤143    (38)
这样,一旦完成y17(n)的初始卷积,余下的卷积就可以递归地进行,大大减少 了所需的计算次数。对于速率1的上述特定例子,利用编号为n=-17到n=22的共 振峰余量取样组藉助等式(36)计算出数值y17(n)。
参见图15,编码器包括图5译码器的备份,即图7的译码器子系统235,但 不带自适应后置滤波器。在图15中,音调合成滤波器550的输入是码书值cI(n) 与码书增益G的乘积。输出的共振峰余量取样p(n)输入共振峰合成滤波器552, 经过滤波并作为重建语音取样s′(n)输出。在加法器554中,从对应的输入语音取 样s(n)中减去重建语音取样s′(n)。取样s′(n)与s(n)之差输入感知加权滤波器556。 关于音调合成滤波器550、共振峰合成滤波器552和感知加权滤波器556,每一滤 波器含有一个滤波器状态记忆,其中:Mp是音调合成滤波器550中的记忆;Ma是 共振峰合成滤波器552中的记忆,而Mw是感知加权滤波器556中的记忆。
来自译码器子系统共振峰合成滤波器552的滤波器状态Ma提供给图7的音 调检索子系统220。在图16中,滤波器状态Ma用来计算滤波器560的零输入响 应(ZIR),滤波器560计算共振峰合成滤波器552的ZIR。在加法器562中从输入 语音取样s(n)中减去计算出的ZIR值,其结果由感知加权滤波器564加权。感知 加权滤波器564的输出xp(n)用在等式(28)-(34)中作为加权输入语音,其中, x(n)=xp(n)。
再参见图14和15,图14中示出的音调合成滤波器552输出到自适应码书 568,后者基本上是一个存储器,用于存储如上文讨论的那样计算出的闭环和开环 共振峰余量取样。闭环共振峰余量存在存储器部分570中,而开环共振峰余量存 在存储器部分572中。这些取样按照前文讨论过的编号方案存储。如上文中讨论 的那样,按照各音调滞后L检索中的使用情况来组织闭环共振峰余量。开环共振 峰余量用共振峰分析滤波器574从各音调子帧的输入语音取样中算出,滤波器574 在计算po(n)值时用到译码器子系统共振峰滤波器552的记忆Ma。用于各当前音 调子帧的Po(n)数值移位通过一系列延迟元件576,提供给自适应码书568的存储 器部分572。开环共振峰余量被存储起来,所产生的第一个余量取样编号为0,而 最后一个编号为142。
现参见图16,共振峰滤波器的冲激响应h(n)在滤波器566中算出,并输出给 移位寄存器580。在滤波器中为每一音调子帧计算这些数值,这在上文中谈到共振 峰滤波器h(n)的冲激响应时,即谈到等式(29)-(30)和(35)-(38)时讨论过。为了进一 步减少音调滤波器子系统的计算需求,共振峰滤波器h(n)的冲激响应截断为20个 取样。
移位寄存器580及乘法器582、加法器584和移位寄存器586组合起来,如 上文中讨论的那样,进行来自移位寄存器580的数值h(n)与来自自适应码书568的 数值c(m)之间的递归卷积。执行这一卷积操作是为了在假定音调增益设为1的情 况下寻找共振峰滤波器对来自音调滤波器存储器的输入的零状态响应(ZSR)。在卷 积电路的操作中,对每一m值,n从Lp循环至1,而m从(Lp-17)-1循环至-143。 在寄存器586中,当n=1时数据不移动,而当n=Lp时不锁存数据。当m≤-17时, 数据提供为卷积电路的输出。
继卷积电路之后的是相关和比较电路,执行检索,以寻找最佳音调滞后L和 音调增益b。相关电路亦称为均方误差(MSE)电路,计算ZSR与共振峰滤波器的 ZIR和输入语音即x(n)之间的感知加权差的自相关性和互相关性。利用这些数值, 相关电路就每一音调滞后数值计算出最佳音调增益b的数值。相关电路由移位寄 存器588、乘法器590和592、加法器594和596、寄存器598和600、除法器602 组成。在相关电路中,计算是这样进行的,即n从Lp循环至1,而m从(Lp-17)-1 循环至-143。
相关电路之后是比较电路,它执行数据比较和存储,以确定音调滞后L和增 益b的最佳值。比较电路由乘法器604、比较器606、寄存器608、610和612、 量化器614组成。比较电路为每一音调子帧输出使合成语音和输入语音之间的误 差最小的L和b值。b的值由量化器614量化到8级,用一3位的数值表示, 当L=16时导出一个附加级,b=0级。这些L和b值提供给码书检索子系统230和 数据缓存器222。它们通过数据压缩子系统238或数据缓存器222提供给译码器 234,用于音调检索。
类似于音调检索,码书检索是一种由合成编码系统进行的分析,在系统中, 编码是通过选取使输入语音与用这些参数合成的语音之间的误差最小的参数完成 的。对于速率1/8,音调增益b设为零。
如前文中讨论的那样,每20ms分成多个码书子帧,如前所述,它们依赖于为 该帧所选取的数据速率。对每一码书子帧分别计算一次参数G和I,即码书增益 和索引。在计算这些参数时,除了全速率之外,在码书子帧LSP内插子系统226中 以类似于对音调子帧LSP内插子系统216说明过的方式对该子帧进行LSP频率 内插。对于每个码书子帧,码书子帧内插LSP频率也由LSP至LPC转换子系统 228转换成LPC系数。码书子帧计数器232用于跟踪计算码书参数的码书子帧, 计数器输出提供给码书子帧LSP内插子系统226,用于码书子帧LSP内插。码书 子帧计数器232也提供一个输出给音调子帧计数器224,显示在选中速率下的码书 子帧的结束。
激励码书由2M个码矢量组成,它们是依据一种单元变量白色高斯随机序列而 建立的。M=7时,码书中有128个入口。码书以某种递归方式组织,以使各个码 矢量与相邻的码矢量相差一个取样,即一个码矢量中的取样移动一位,在一端移入 一个新的取样,而在另一端抛掉一个取样。因而,一个递归码书可以作为一个长 2M+(Lc-1)的线性阵列存储,其中,Lc是码书子帧长度。然而,为了简化执行过程, 和保存存储器空间,采用2M个取样长的循环码书(128个取样)。
为了减少计算量,码书中的高斯数值的中心部分值被消除。这些数值最初选 自方差为1的白色高斯过程。然后,将小于1.2的数值设为零。这有效地将大约 75%的数值设置成零,产生一个脉冲码书。码书的中心削除将在码书检索中执行递 归卷积所需的计算量降低到1/4,因为对零无须进行计算。用在当前执行过程中的 码书在下面的表VII中给出。
                             表VII   0x0000   0x0000   0x0000   0x0000   0x2afe   0x0000   0x0000   0x0000   0x41da   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x3bb3   0x0000   0x363e   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x417d   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x9dfe   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0xc58a   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0xc8db   0xd365   0x0000   0x0000   0xd6a8   0x0000   0x0000   0x0000   0x3e53   0x0000   0x0000   0xd5ed   0x0000   0x0000   0x0000   0xd08b   0x0000   0x0000   0x0000   0x0000   0x3d14   0x396a   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x4ee7   0xd7ca   0x0000   0x0000   0x438c   0x0000   0x0000   0xad49   0x30b1   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x3fcd   0x0000   0x0000   0xd187   0x2e16   0xd09b   0xcd8d   0x0000   0x0000   0x0000   0x0000   0x0000   0x0000   0x32ff
又语音编码器采用包括公式(3)给出形式的加权合成滤波器在内的公式(1)给出 形式的感知噪声加权滤波器。对于各个码书指数I,合成语音并与原来的语音比较。 在计算出其MSE前误差由感知加权滤波器加权。
如前所述,目的是使X(n)和X′(n)之间的误差在I和G的所有可能值上为极 小。该误差的极小化可以由下面公式表示:
MSE = 1 L c Σ n = 0 L c - 1 ( X ( n ) - X ( n ) ) 2 - - - ( 39 )
这里Lc是码书子帧中的样本数。这里对于G公式(38)可改写:
MSE = 1 L c Σ n = 0 L c - 1 ( X ( n ) - GY ( n ) ) 2 - - - ( 40 )
这里Y是通过用第1码矢量并假定G=1卷积共振峰主频成分滤波器的冲激 响应而得到的。使该MSE极小转而等效于使大
E I = ( E xy ) 2 E yy - - - ( 41 )
为极大,这里
E xy = Σ n = 0 L c - 1 X ( n ) Y ( n ) - - - ( 42 )

E yy = Σ n = 0 L c - 1 y ( n ) Y ( n ) - - - ( 43 )
根据下面的公式得到对于所给的I最优的G,
G I = E xy E yy
对于I的所有允许值重复这检索。与音调检索相反,该最优增益G允许为正 值或负值。最后使EI极大的指数I,和码书增益G被选择用于传送。
还应注意加权音调和共振峰主频成分的滤波器的ZIR跟输入语音之间的感知 加权差值X(n)仅需计算一次。而对于各个码矢量的音调和共振峰主频成分滤波器 的零状态响应需对于各个指数I来计算。由于采用循环码书,用于音调检索的所 述递归卷积方法可用来使所需的计算量为最小。
再参见图15,编码器包括与图5中的译码器一样的即图7的译码器子系统在 此计算出滤波器状态。其中Mp是在音调合成滤波器550中的记忆,Ma是在共振 峰合成滤波器552中的记忆;Mw是在感知加权滤波器中的记忆。
分别来自译码器子系统的音调合成和共振峰滤波器的滤波器状态Mp和Ma送 给图7的码书检索子系统230。在图17中滤波器状态Mp和Ma送给零冲激响应(ZIR) 滤波器620以计算音调和共振峰合成滤波器550和552的ZIR。在加法器622中 从所输入的输入语音样值S(n)减去计算出的音调和共振峰滤波器的ZIR,该结果由 感知加权滤波器加权。感知加权滤波器的输出Xc(n)用作上面的MSE公式(39)-(44) 中的加权了的输入语音则X(n)=Xc(n)。
图17,在滤波器626中计算共振峰滤波器的冲激响应h(n)并输出至移位寄存 器628。对于各个码书子帧计算共振峰滤波器的冲激响应h(n)。为进一步减少所需 的计算量,该共振峰滤波器的冲激响应h(n)截取20个样本。
移位寄存器628随同乘法器630、加法器632和移位寄存器634一起进行来 自移位寄存器628的值h(n)与来自于如上所述含有码书矢量的码书636的值c(m) 间的递归卷积。假定码书增量为1,进行这卷积运算以对各个码矢量寻找共振峰滤 波器的零状态响应。该卷积电路的运行,对于每个m,n从Lc到1循环,而m则 从1到256循环。在寄存器586中当n=1数据不送出而当n=Lc数据不锁存。当 m≤1数据才作为该卷积电路的输出给出。应该注意的是在开始紧接在卷积电路 后的相关与比较电路前必须起动卷积电路以通过循环m子帧大小次数进行递归卷 积运算。
该相关与比较电路进行实际的码书检索产生码书指数I值和码书增益G值。 该相关电路除了被作为均方差(MSE)电路借用以外,还由音调与共振峰滤波器的 ZIR跟输入语音X′(n)之间的感知加权差值来计算ZSR的自相关和互相关。换句 话说该相关电路对码书指数I的各个值计算码书增益G。该相关电路包括移位寄 存器638,乘法器640和642,加法器644和646,寄存器648和650,和除法器 652。在相关电路中计算是n从Lc到1循环而m从1到256循环的。
接在相关电路后的比较电路为确定码书指数I和增益G的最优值进行数据的 比较和存储。该比较电路包括乘法器654,比较器656,寄存器658、660和662, 和量化器664。该比较电路为各个码书子帧提供使合成语音与输入语音之间的误差 为极小的I和G的值。该码书增益G在量化器614中量化,DPCM在量化期间 以类似于参考图12所述的偏置消除的LSP频率量化和编码对该值编码。这些I和 G值然后送给数据缓冲器222。
在量化和该码书的DPCM编码中增益G是按照下面的公式计算的。
量化后的Gi=20logGi-0.45(20logGi-1+20logGi-2)    (45)
这里20log Gi-1和20log Gi-2分别是对前一帧(i-1)和再前一帧(i-2)计算出的值。
该LSP、I、G、L和b值随同速率送到数据压缩子系统236以安排这数据用 于传输。在一项实施中该LSP、I、G、L和b值随同速率可经数据压缩子系统236 送给译码器234。在另一项实施中这些数据可经数据缓冲器222送给译码器234以 用于音调检索。而在较佳实施例中在数据压缩子系统236中所采用的对码书符号 位的保护会影响码书指数。所以I和G数据直接从数据缓冲器222送出时必须考 虑到该保护。
在数据压缩子系统236中数据可根据各种传输格式压缩。图18示出数据压缩 子系统236的功能单元的说明性实施例。数据压缩子系统236包括伪随机数发生 器(PN)670,循环冗余校验(CRC),计算单元672,数据保护逻辑674和数据组合 器676。PN发生器670接收速率并对八分之一速率产生一4位的随机数送给数据 组合器676。CRC单元672接收码书增益和LPS值以及速率,并对全速率产生一 11位内部CRC码送到数据组合器676。
数据组合器676接收该随机数,CRC码,以及来自数据缓冲器222(图7b)的 速率和LSP、I、G、L和b值将输出送到传输信道数据处理子系统234。在该项 实施中数据以最小量直接从数据缓冲器222送到译码器234则PN发生器4位数 则从PN发生器670经数据组合器676送到译码器234,在全速率时包括CRC位 在内随同帧数据作为从数据组合器674的输出,而在八分之一速率该码书指数丢 下并由随机4位数取代。
在该例示实施例中最好向码书增益符号位提供保护。对该位的保护会使声码 器的译码器对在该位的单个位的误码不敏感。如果因一个未检出的误码而使该符号 位改变,该码书指数就会指向与最优值不相关的矢量。在误码情况下没有保护,就 会选取该最优矢量的相反量,实质上为所要采用的可能矢量的最差矢量。这里所采 用的保护方案确保增益符号位中的单个位误码不会使该最优矢量的相反量在该误 码情况下被选用。数据保护逻辑674接收该码书指数和增益并检查该增益值的符 号位。若确定出增益值符号位是相反的对相关联的码书指数加该值89,取模128。 该码书指数不论是否修改都从数据保护逻辑674输出到数据组合器676。
在该例示实施例中最好在全速时例如由一内部CRC(循环冗余校验)保护所压 缩的话音包数据在感觉上最敏感的位。11特殊位被用来进行可校正所保护的任何 单个误码的这种误码校验功能。所保护的块包括10个LSP频率的最重要位和8个 码书增益值的最重要位。若在该块中出现无法校正的误码,该包则被废弃并标明下 面述及的消除记录。否则该音调增益设为0而余下的参数仍用收到的值。在例示 实施例中让一生成多项式:
g(X)=1+X3+X5+X6+X8+X9+X10
产生一(31,21)循环码来选出循环码。但应注意的是也可用其他生成多项式。附加 一总的奇偶校验位使它为-(32,21)码。既然仅有18个信息位,则该码字中的前3位 置零并且未被传输。该项技术提供附加的保护,这样若校正子表明在这些位置有误 码,这就意味着有无法校正的误码。系统地对循环码的编码涉及当X10μ(X)模 g(X)奇偶校验位的计算则μ(X)是信息多项式。
在译码结束时,该校正子是用g(X)除所接收到的矢量计算得出的余数。若该 校正子未显示有误码,则不论总的奇偶校验位的状态均接收该包。若该校正子显示 有单个误码,若未对总的奇偶校验位的状态检查则该误码被校正若该校正子显示有 多于一个的误码,则该包被废弃。关于这些误码防护方案的更详细内容可在林和科 斯特罗的“误码控制编码:基础及应用”4.5节中校正子计算的详细内容中找到。
在CDMA蜂窝式电话系统实施中为在20秒数据传送帧内传送将数据从数据 组合器674送到传输信道数据处理子系统238用于数据压缩。在其中声码器设定 为全速率的传输帧中,由于有效位速率为9.6Kbps故传输192位。本例中的传输 帧包括1位用以指示混合帧形式(0=仅为话音,1=话音和数据/信号码)的混合方式 位;160位声码器数据随同11位内部CRC位;12位外部或帧CRC位;和8位 尾部位或嵌入位。在半速率时,由于4.8Kbps的有效位速率故传送80位声码器数 据位以及8位帧CRC位和8位尾部位。在四分之一速率时,由于2.4Kbps的有 效位速率故传送40位声码器数据位以及8位尾部位。最后在八分之一速率时,由 于1.2Kbps的有效位速率故传送16位声码器数据位以及8位尾部位。
要应用本发明声码器的CDMA系统中所采用的调制的更详细细节在1990年6 月25日申请的申请号为07/543,496,转让给本发明的受让人的题为“用于产生 CDMA蜂窝式电话系统中信号波形的系统和方法”的共同待批专利申请中揭示。 在这种系统中在不是全速率的速率时采用了数据位组织成位组而位组伪随机地置 于20ms的数据传送帧中的方案。应该理解除了那些用于这里对声码器和CDMA 系统实施作说明的还可现成地采用其他帧速率和位表示,这样别的实施例可用于声 码器和其他系统的应用。
在CDMA系统与也适用的其他子系统中,以一帧接一帧为基础的处理子系统 238可中断声码器数据的传输以传输诸如信号码数据或其他非语音数据之类的其 他数据。传输情况的这种特殊形式是指“间隔和突发”。处理器子系统238必须用 在该帧所要传输的数据取代该声码器数据。
会出现另一种情况人们希望在同一数据传输帧期间传输声码器数据和其他数 据。传输情况的这种特殊形式是指“迟缓和突发”。在“迟缓和突发”传输中,该 声码器没有速率约束指令以设定声码器最终速率在所需要的速率上,例如半速率。 该半速率编码的声码器数据送给处理器子系统238而为该数据传输帧插入随同声 码数据的附加数据。
提供给全双工电话线路的另一个附加功能是速率联锁。若线路的一个方向以 最高的传输速率传输,那么上线路的另一个方向则被迫以最低的速率传输。甚至以 最低速率,对于主动谈话者有足够的理解以意识到他正被打断和要停止谈话是可行 的,藉此允许该线路别的方向估计主动谈话者一方。而且若主动谈话者在企图中断 时继续谈话,因为他自己的语音干扰了感觉质量的能力也可能会未感觉出质量的降 级。该声码器还能通过采用速率限制指令设定成以低于通常速率的速率对话音进行 声音编码。
应该理解当在CDMA系统中需要额外的容量时该速率限制指令可设定该声码 器最大速率低于全速率。在其中公共频谱用于传输的CDMA系统中某用户信号会 对该系统中的别的用户有干扰。系统用户容量因而由系统用户引起的总干扰所限 制。随着干扰水平的上升,通常是由于在该系统中的用户的增长,由于干扰的增加 用户体验到质量的降级。
各个用户对CDMA系统的干扰的贡献是用户传输数据速率的函数。通过设定 声码器以低于通常的速率对语音编码,该编码数据随后以相应降低的数据速率传 输,以降低由该用户所引起的干扰的水平。所以通过以较低速率对语音进行声音编 码系统容量会得到实质性的提高。随着系统的需求上升,可由系统管理机或蜂窝基 地站指令用户声码器降低编码速率。本发明的声码器具有一种良好的质量,语音以 全速和半速编码时虽然两者可感觉有些差异但量很小。因而语音以例如半速率的较 低速率进行声音编码对系统用户间的通信质量的后果不及因系统用户数量的上升 所引起的干扰水平的上升所带来的后果严重。
因而可采用各种方案为低于通常的声音编码的速率来设定各自的声音编码器 速率界限。例如可指令在蜂窝中的所有用户以半速率对语音编码。这种办法实质上 以很小的用户间通信质量的损失降低系统的干扰,而为额外客户在容量上提供实质 的增长。直到由额外用户引起的系统的总干扰量上升到降级水平故而不会对用户间 的通信质量形成冲击。
如前所述,为实现对语音样本帧编码的分析一合成技术该编码器包括一个与 译码器相同的复本如图7所示,译码器234接收经过数据压缩子系统238或数据 缓冲器222的L,b,I和G值以重建合成的语音来与输入语音比较。译码器的输 出如前所述为Mp,Ma和Mw值。用于编码器和在传输信道另一端重建合成语音的 译码器234的更详细细节可参见图19-24说明。
图19是本发明译码器例示性实施例的流程图。在编码器中和在接收机中所实 施的译码器具有共同的结构,因而这些实施例在一起说明。对图19的说明主要针 对在传输信道一端的译码器,因为在那里接收到的数据必须在译码器中预处理正象 在编码器的译码器中直接从数据压缩子系统238或数据缓冲器222收到合适数据 (速率,I,G,L和b)。不过对于实施编码器和译码器来说译码器的基本功能是相 同的。
如前面参见图5所讨论的那样,对各个码书子帧由该码书指数I所规定的码 书矢量是从存储的码书中检索出的。该矢量以该码书增益G随后对每音调子帧由 音调滤波器滤波产生共振峰余量。该共振峰余量由共振峰滤波器滤波随后通过一自 适应共振峰后置滤波器和一清晰度后置滤波器,以及自动增益控制(AGC)以产生输 出语音信号。
尽管码书和音调子帧的长度是变化的,为方便实施在40样本块中进行译码。 所收到的压缩数据首先被分解成码书增益,码书指数,音调增益,音调滞后和LSP 频率。该LSP频率如参见图22所说明的那样必须经他们各自的逆向量化器和 DPCM译码器处理。类似地码书增益值除了没有偏置必须以与LSP频率相似的方 式处理。音调增益值也被逆向量化。这些参数随后送给各个译码子帧。在各个译码 子帧中,2套码书参数(G和I),1套音调参数(b和I)和一套LPC系数需产生40个 输出样本。图20和21对于各种速度和其他帧状况示出例示性子帧译码参数。
对于全速率帧,有8套收到的码书参数和4套收到的音调参数。LSP频率被 内插4次产生4套LSP频率。所收到的参数和相应的子帧信息列于图20a中。
对于半速率帧,4套收到码书参数的各套重复一次,2套收到的音调参数的各 套重复一次。LSP频率被内插3次产生4套LSP频率。所收到的参数和相应的 子帧信息列于图20b中。
对于四分之一速率帧,2套收到的码书参数的各套重复4次,该套音调参数 也被重复4次。LSP频率被内插一次产生2套LSP频率。所收到的参数和相应 的子帧信息列于图20c中。
对于八分之一速率帧,该套收到的码书参数用于整个帧。音调参数对于八分 之一速率未给出且该音调增益简单地设为零。该LSP频率内插1次产生1套LSP 频率。所收到的参数和相应的子帧信息列于图20d中。
有时,话音包可按序空出让CDMA单元或移动台传输信号码信息。当声码器 收到一空白帧,它继续对前一帧参数作较小的改动。码书增益设为零。前一帧的音 调滞后和增益用于当前帧的音调滞后和增益,除非该增益被限定成某值或更小。就 像没有内插而用前一帧的LSP频率。注意编码端和译码端一直被同步且声码器能 很快从一空白帧复原。所收到的参数和相应的子帧信息列于图21a。
在因信道差错而丢失一帧的情况下,该声码器试图通过保持前一帧的能量部 分且平滑地过渡到背景噪声来屏蔽该差错。在该例中音调增益设成零;通过用前一 帧的码书指数加89选取一随机码书;码书增益则是前一子帧的码书增益的0.7倍。 应该注意的是数89没有什么特别的东西,这只是选取伪随机码书矢量的通常方法。 该前一帧的LSP频率被迫向他们偏置值衰落为:
ωi=0.9(前面的ωi-ωi的偏置值)+ωi的偏置值    (47)
该LSP频率偏置值在表5中示出。所收到的数据和相应的子帧信息列于图 21b中。
若在接收机中未能确定出速率,该包被废弃并标上消除记录。然而若接收机 确定有很大可能该帧是以全速率传输的,尽管带有差错仍进行下面的过程。如前所 述在全速率时该压缩的话音包数据的感觉上最敏感的位由内部CRC保护。在译码 端正如接收到的矢量除以来自公式(46)的g(X)而得出余式那样计算出校正子。若校 正子显示无误码,则不论总的奇偶校验位而接收该包。若该校正子显示单个误码, 若总的奇偶校验位不检查该误码被校正。若该校正子显示多于一个误码。该包则被 废弃。若在该块中出现无法校正的误码,该包被废弃且标明消除记录。否则该音调 增益被置零而其余的参数如图21c所示随着校码被接收而被采用。
本实施例中所采用的后置滤波器首先在J.H.陈等人的“用自适应后置滤波以 4800BPS实时向量APC语言编码”(Proc.ICASSP,1987)中揭示。既然语音共振 峰主频成分比起频谱凹谷在感觉上更为重要,该后置滤波器促使该共振峰主频成分 稍微提升以改善该编码语音的感性质量。通过相对于原来的径向地对共振峰主频成 分的极点定标来进行。然而全极点后置滤波器通常引入频谱倾斜而导致滤波后的语 音消音。通过增加具有与极点相同相位角而较小直径的零点来减少该全极点后置滤 波器的频率的倾斜,从而后置滤波器具有形式:
H ( z ) = A ( z / ρ ) A ( z / σ ) 0 < ρ < σ < 1 - - - ( 48 )
这里A(z)是共振峰主频成分预测滤波器,且ρ和σ值为后置滤波器定标因数 这里ρ设为0.5,σ设为0.8。
加上一自适应清晰度滤波器就能进一步补偿由该共振峰主频成分后置滤波器 引进的频谱倾斜。该清晰度滤波器具有形式:
B ( z ) = 1 - KZ - 1 1 - KZ - 1 - - - ( 49 )
这里K值(分接滤波器的系数)由与A(z)的频谱倾斜中的变化相近似的LSP频 率平均值确定。
为避免因后置滤波器引起的任何大的增益漂移,采用AGC环路对语音输出定 标使它具有与未后置滤波的语音近乎相同的能量。通过用40个滤波器输出样本的 平方和除40个滤波器输入样本的平方和来实现增益控制以获得反向滤波器增益。 随后使该增益因数的平方根平滑:
平滑后的p=0.2当前β+0.98前一个 然后滤波器输出乘以该平滑后反向增益以产生输出语音。
在图19中来自信道的数据以及随同数据传输或由其他装置得到的速率被送给 数据压缩子系统700。在一个CDMA系统的实施例中当以各种不同速率进行译码 时就可从所收到的数据的误码率来得到速度判定。在数据分解子系统700中,在 全速率时对差错进行CRC检码因而该检码送到子帧数据分解子系统702。子系统 700将诸如空白帧,消除帧或具有可用数据的差错帧之类异常帧状况的标志送到子 系统702。子系统700将对于该帧的速率以及I,G,L,和b参数送到子系统702。 在提供码书指数I和增益G值时,该增益值的符号位在子系统702中被检码。若 符号位相反,从关联的码书指数减去值89,取模(mod)128。而且在子系统中该码 书增益被反向量化且DPCM编码,同时音调增益被反向量化。
子系统700还将速率与LSP频率送到LSP反向量化/内插子系统704。子系 统700还将空白帧、消除帧或有可用数据的差错帧的标志送到子系统704。编码子 帧计数器706将子帧计数值i和j的标志送到子系统702和704。
在子系统704中该LSP频率被反向量化和内插。图22示出子系统704的反 向量化部分的实施例,而该内插部分与参见图12说明的那种在实质上是相同的。 在图22中,子系统704的反向量化部分包括反向量化器750,它与图12中的反向 量化器468结构相同且以相似方式工作。反向量化器750的输出作为输入送到加 法器752。加法器752的其他输入则由乘法器754的输出提供。加法器752的输 出送给寄存器756存储并输出在乘法器754与常数0.9相乘。加法器752的输出 回被送到加法器758将偏置值加回给LSP频率。由逻辑760确保LSP频率的序 列使LSP频率具有最小间隔。除非在传输中出现差错一般不会出现强迫分隔的需 要。该LSP频率如参见图13和参见图20a-20d和21a-21c说明的那样是内插值。
再参见图19,存储器706与子系统704连接存储前一帧LSPs,ωi,f-1,还可 用来存储偏置值bwi。这些前一帧值对于所有速率都用于内插。在空白帧,消除帧 或有可用数据的差错帧的情况下,按照图21a-21c中的表应用前一帧的LSPs,ωi, ωi,f-1。响应来自子系统700的空白帧标志,子系统704检取出存于存储器708的 前一帧LSP频率用于当前帧。响应消除帧标志,子系统704随同偏置值再从存储 器708检取出前一帧LSP频率以如上所述计算当前帧的LSP频率。在进行该计 算时,在一加法器中从前一帧LSP频率减去所存储的偏置值,该结果在一乘法器 中乘以常数值0.9,其结果在一加法器中加到所存储的偏置值。响应具有可用数据 的差错帧标志,对于全速率若CRC通过该LSP频率就被内插。
该LSPs送到LSP至LPC转换子系统710将LSP频率变换回LPC值。子系 统710实质上与图7的LSP至LPC转换子系统218和228相同并如参见图13 说明的那样。该LPC系数αi随后送给共振峰主频成分滤波器714和共振峰主频 成分后置滤波器716。该LSP频率在LSP平均值子系统还在子帧上取平均并作为 值K送给自适应清晰度滤波器718。
子系统702随同速率或异常帧状态标志从子系统700接收该帧的参数I、G、 L和b。子系统702还从子帧计数器收到对于各个译码子帧1-4中的每个i计数 的j计数。子系统702还连接存储器720以存储用于异常帧状态的G,I,L和b 的前一帧值。子系统702处于正常帧状态,除去八分之一速率,要将码书指数值 Ij送到码书722;将码书增益Gj送到乘法器724,音调滞后L和增益b值按照 20a-20d送到音调滤波器726。对于八分之一速率,由于所送的码书指数没有值, 对于八分之一速率,由于所送的码书指数没有值,对于八分之一速率是16位参数 值的包种籽随同度标志送到码书722。在异常帧状态子系统702按照图21a-21c提 供这些数据。而且对于八分之一速率,如参见图23所说明的那样向码书722提供 标志。
响应来自子系统700的空白帧标志,子系统702检取出存在存储器中的前一 帧音调滞后L值和增益b值除了该增益限制为某值或小些,以用于当前帧的译码 子帧。而且未提供码书指数I且码书增益G被设为零。响应消除帧标志,子系统 702再从存储器720检取出前一帧子帧码书指数并在加法器加89的值。该前一帧 子帧码书增益在乘法器乘以常数0.7以产生各自子帧的G值。未提供音调滞后值 并将音调增益置零。响应具有可用数据的差错帧标志,当在全速率帧中假使CRC 通过就运用码书指数和增益,而不提供音调滞后值且音调增益置零。
如参考分析-合成技术中的编码器的译码器所说明的那样,该码书指数I用作 该码书值的起动地址以向乘法器724输出。该码书增益值在乘法器724乘以来自 码书722的输出值该结果送到音调滤波器726。音调滤波器用输入的音调滞后L值 和增益b值以产生输出给共振峰主频成分滤波器714的共振峰主频成分余量。在 共振峰主频成分滤波器714 LPC系数用来对共振峰主频成分余量滤波以重建语 音。在接收端的译码器重建语音进一步由共振峰主频成分后置滤波器716和自适 应清晰度滤波器718滤波。在共振峰主频成分滤波器714和共振峰主频成分后置 滤波器716的输出采用AGC回路,其输出在乘法器730中乘以自适应清晰度滤 波器718的输出。乘法器730输出的重建语音利用熟知技术变换成模拟形式并送 给听众。在编码器的译码器中,为更新它的记忆,在输出端设置感知加权滤波器。
参见图22,说明实施译码器本身的更详细节。在图22中码书722包括与参 见图17所说明的那种相类似的存储器750。然而为便于说明,对于存储器75。说 明稍有差异的方法并在图22中示出其编址。码书722还包括开关752,多路转换 器753和伪随机数发生器(PN)754。开关752如参见图17说明的那样响应该码书 指数以指向存储器750的指数地址位置。存储器750是有开关752指向起始记忆 位置的循环存储器,数值移过存储器而输出。该码书数值经开关752从存储器750 输出作为多路转换器753的输入。多路转换器753响应全速率,半速率和四分之 一速率以将经开关752提供的数值送到码书增益放大器,乘法器724。多路转换器 753还响应八分之一速率标志以选取PN发生器754的输出使码书722的输出送 到乘法器724。
为维持在CELP编码的高话音质量,编码器和译码器必须有相同数值存储在 他们的内部滤波器存储器中。这可通过传输码书指数进行,使译码器和编码器的滤 波器由数值的相同序列激励。而对高话音质量这些序列包括大多数零,并有一些尖 峰分布其间。这种激励方式对于对背景噪声编码不是最优的。
在对背景噪声的编码中,以最低速率进行,可实现伪随机序列激励滤波器。 为确保该滤波器存储器在编码器和译码器中的相同,这两个伪随机序列必须相同。 不管怎样必须传输种籽到接收机译码器。既然没有额外的位可用以送该种籽,所传 输包位可用作种籽,似乎它们构成一个数。该技术可进行是因为是以低速率用完全 相同CELP分析合成结构来确定码书增益和指数的。差异是该码书指数被扔掉而编 码器的滤波器存储器用一伪随机序列来更新。因而分析完后可确定出用于激励的种 籽。为确保包本身不在一套位模式周期地循环,在该八分之一速率的包中插入4位 随机位来取代该码书指数值。因此该包种籽是如图2所见到的16位数据。
NP发生器754用熟知技术构筑并可由各种算法实施。在例示性实施例中所采 用的算法其本质在保罗·门恩的文章“DSP片采用已证明的算法可产生随机数” (EDN,1991,1,21)中说明。所传输的位包用来产生序列的种籽(来自图18中的 子系统700)。在一实施例中种籽乘以数值521且加上数值259。从这合成数值的 最不重要的位用来作为有符号的16位数。该数值随后用作产生下一码书数值的种 籽。由PN发生器产生的序列被归一化而具有1的方差。
从码书722输出的各个数值在乘法器724中乘以如在译码子帧期间所提供的 码书增益G。该数值作为输入送给音调滤波器726的加法器756。音调滤波器726 还包括乘法器758和存储器760。该音调滞后L确定存储器760分接位置被输出 给乘法器758。该存储器760的输出在乘法器758中乘以音调增益值b,结果输出 给加法器756。加法器756的输出送到存储器760的输入端,它是诸如移位寄存器 的一系列的延时单元。该数值经存储器760移出(沿箭头所指方向)且如L值所确定 那样在所选取的分接输出端给出。既然该值经存储器760移出,比143移出值更 老的值被废弃。加法器756的输出还作为输入送到共振峰主频成分滤波器714。
加法器756的输出送到共振峰主频成分滤波器714的加法器762的一个输 入端。共振峰主频成分滤波器还包括乘法器764a-764j的存储单位和存储器766。 该加法器762的输出作为输入送到存储器766,它也构建成一系列分接的延时单元 如移位寄存器。该数值经存储器766移出(沿箭头所指方向)且最后清出每个单元有 分接口以将存在那里的数据作为输入送给乘法器764a-764j的相应的分接口。每个 乘法器764a-764j还接收LPC系数α1-α10的各个值来乘以来自存储器766的输出。 来自加法器762的输出送给作为共振峰主频成分滤波器的输出。
共振峰主频成分滤波器714的输出作为输入送到共振峰主频成分后置滤波器 716和AGC子系统728。共振峰主频成分滤波器716包括加法器768和770以 及存储器772和乘法器774a-774j,776a-776j,和782a-782j。随着该数值经存储器 772移出它们在相应的分接口输出用来乘以定标的LPC系数值而在加法器768和 770累加。共振峰主要频率成分后置滤波器716的输出作为输入送给自适应清晰 度滤波器718。
自适应清晰度滤波器718包括加法器784和786,寄存器788和790,和乘 法器792和794。图24是说明自适应清晰度滤波器特点的图表。共振峰主频成分 后置滤波器716作为输入送给加法器784而另一输入由乘法器792的输出提供。 加法器784的输出送给寄存器788并存储一循环而在下一循环随同图19的LSP 平均器712提供的K值输出给乘法器792和794。乘法器792和794的输出被送 给加法器784和786。加法器786的输出送给AGC子系统728和移位寄存器790。 寄存器790作为延时线以确保从共振峰主频成分滤波器714输出给AGC子系统 728的数据与经共振峰主频成分后置滤波器716提供给自适应清晰度滤波器718 的数据间的协调。
AGC子系统728接收来自共振峰主频成分滤波器和自适应清晰度滤波器的数 据以对语音输出能量定标至大约输入到共振峰主频成分后置滤波器716和自适应 清晰度应滤波器718的语音的能量。AGC子系统728包括乘法器798、800、802 和804,加法器806、808和810,寄存器812、814和816,除法器818,和平方 根单元820。从共振峰主频成分滤波器输出的40个样本在乘法器798平方并在包 括加法器806和寄存器812的累加器中累加以产生数值“X”。相似地从自适应清 晰度滤波器718输出的40样本,优先于存储器790,在乘法器800中平方并在包 括加法器808和寄存器814的累加器中累加以产生数值“Y”。该数值“Y”在除 法器816中除以数值“X”以产生该滤波器的反向增益。在单元818得到该反向 增益因数的平方根其结果被平滑。通过当前增益G值在乘法器802乘以常数0.02, 该结果在加法器810加上如寄存器820和乘法器804所计算出的0.98倍的前增益 的结果来实现平滑工作。滤波器718的输出随后在乘法器730乘以平滑后的反向 增益以提供输出的重建语音。该输出语音用各种已知变换技术变换成模拟形式输出 给用户。
应该理解这里所揭示的本发明的实施例只是例示性的实施例,对该实施例作 出的改变可认为在功能上的等同物。本发明可以在合适的程序控制下在数字信息处 理机中实施,提供如这里所公开的对语音样本编码并对该编码的语音译码的功能操 作。在本发明的另一个实施例中可以在实用熟知的超大规模集成(VLSZ)技术的专 用集成电路(ASIC)来实现。
所提供的对较佳实施例的前面的说明能使本领域技术人员运用本发明。对这 些实施例的各种变动对于本领域技术人员将是现成明显的,这里确定的总原则可不 需要创造性劳动就可应用于其他实施例中。因而本发明希望不是限定在这所示出的 实施例而是给予与这里所说的原则和新颖特征相一致的最大保护范围。
本申请是申请日为1992年6月11日、申请号为92104618.9、与本申请相同 发明名称的发明专利申请的分案申请。
QQ群二维码
意见反馈