具体实施方式
下面利用附图说明本发明的实施形态。
(第1实施形态)
图3中示出本发明实施形态有关音源矢量生成装置的功能框图。此音源矢量生成装置包括:具有多个通道的脉冲矢量生成单元101;具有扩散模式存储单元和开关的扩散模式存储选择单元102;扩散脉冲矢量的脉冲矢量扩散单元103;将扩散的多个通道脉冲矢量相加的扩散矢量加法器104。
脉冲矢量生成单元101具有N个通道(本实施形态中对N=3的情况进行说明),这些通道生成在矢量轴上某一要素配置带极性单元脉冲的矢量(下文称为脉冲矢量)。
扩散模式存储选择单元102具有存储单元M1~M3和开关SW1~SW3,前者对每一通道存储M种扩散模式(本实施形态中对M=2的情况进行说明),后者从各存储单元M1~M3分别选择M种扩散模式中的一种扩散模式。
脉冲矢量扩散单元103对每一通道进行脉冲矢量生成单元101所输出脉冲矢量与扩散模式存储选择单元102所输出扩散模式的卷积运算,并产生N个扩散矢量。
扩散矢量加法器104将脉冲矢量扩散单元103生成的N个扩散矢量相加后,生成音源矢量105。
本实施形态中,对脉冲矢量生成单元101按照下列表1所记载规则以代数方式产生N个脉冲矢量(N=3)的情况进行说明。
表1
说明上文所述那样构成的音源矢量生成装置的运作。扩散模式存储选择单元102从每通道分别存储2种的扩散模式中选择1种,并输出到脉冲矢量扩散单元103。但,对应于选择的扩散模式组合(组合总数MN=8种),专门分配号码。
接着,脉冲矢量生成单元101按照表1记载的规则,以代数方式生成通道数量份额的脉冲矢量(本实施形态中为3)。
脉冲矢量扩散单元103将扩散模式存储选择单元102选择的扩散模式和脉冲矢量生成单元101生成的脉冲用式(5)作卷积运算,对每一通道生成扩散矢量。
其中,n:0~L-1
L:扩散矢量长度
i:通道号
j:扩散模式号(j=1~M)
ci:通道i的扩散矢量
wij:通道i的第j种扩散模式
Wij(m)的矢量长度为2L-1(m:-(L-1)~L-1),但,2L-1个要素中能规定值的是Lij要素,其它要素为零
di:通道i的脉冲矢量
di=±δ(n-pi),n=0~L-1
pi:通道i的候补脉冲矢量
扩散矢量加法器104利用公式(6)将脉冲矢量扩散单元103生成的3个扩散矢量相加后,产生音源矢量105。
c:音源矢量
ci:扩散矢量
i:通道号(i=1~N)
n:矢量要素号(n=0~L-1,其中L为音源矢量长度)
这样构成的音源矢量生成装置,通过使扩散模式存储选择单元102所选择扩散模式的组合方法以及脉冲矢量生成单元101所生成脉冲矢量中的脉冲位置和极性带有变化,可产生多样的音源矢量。
于是,以上那样构成的音源矢量生成装置,对扩散模式存储选择单元102所选择扩散模式的组合方法和脉冲矢量生成单元101所生成脉冲矢量形状(脉冲位置和脉冲极性)的组合方法等2种信息,可预先分配分别一一对应的号码。扩散模式存储选择单元102中,还可根据实际音源信息进行预先学习,并预先存储该学习结果所得的扩散模式。
若话音信号编码器/解码器的音源信息生成单元中采用上述音源矢量生成装置,则通过传送扩散模式存储选择单元所选择扩散模式的组合号和脉冲矢量生成单元所生成脉冲矢量的组合号(能规定脉冲位置和脉冲极性)等2种号码。能实现噪声源信息的传送。
又,采用以上那样构成的音源矢量生成单元时,与采用以代数方式生成的脉冲音源时相比,可产生形状(特性)和实际音源信息相似的音源矢量。
本实施形态中,对扩散模式存储选择单元102存储每一通道2种扩散模式的情况进行说明,但在对各通道分配2种以外的扩散模式时,也能取得同样的作用和效果。
本实施形态中对脉冲矢量生成单元101由3通道组成而且以表1所记载脉冲生成规则为基础的情况进行说明,但在信道数不同时,以及脉冲生成规则采用表1所记载以外的规则时,也能取得同样的作用和效果。
此外,组成具有上述音源矢量生成装置或话音信号编码器/解码器的话音信号通信系统或话音信号记录系统,可取得上述音源矢量生成装置所具有的作用和效果。
(第2实施形态)
图4中示出本实施形态有关CELP型话音信号编码器的功能框图,图5中示出本实施形态有关CELP型话音信号解码器的功能框图。
有关本实施形态的CELP型话音信号编码器,在上述图1CELP型话音信号编码器的噪声码本中应用第1实施形态所说明的音源矢量生成装置。与本实施形态有关的CELP型话音信号解码器,在上述图2CELP话音信号解码器的噪声码本中,应用上述第1实施形态的音源矢量生成装置。因此,除噪声源信息矢量量化处理以外的处理,均与上述图1、图2的装置相同。本实施形态中,以噪声源信息矢量量化处理为中心说明话音信号编码器和话音信号解码器。而且,与第1实施形态相同,也设通道数N=3,一个通道的扩散模式数M=2,脉冲矢量的生成依据图1。
图4话音信号编码器中的噪声源矢量量化处理是规定使式(4)基准值最大的2种号码(扩散模式组合号、脉冲位置和脉冲极性组合号)的处理。
将图3音源矢量生成装置用作噪声码本时,用闭环规定扩散模式组合号(8种)和脉冲矢量组合号(考虑极性时为16384种)。
因此,扩散模式存储选择单元215首先从本身存储的2种扩散模式中选择一种扩散模式,并输出到脉冲矢量扩散单元217。然后,脉冲矢量生成单元216按照图1的规则,以代数方法产生通道数份额的脉冲矢量(本实施形态中为3个),并输出到脉冲矢量扩散单元217。
脉冲矢量扩散单元217将扩散模式存储选择单元215选择的扩散模式和脉冲矢量生成单元216产生的脉冲矢量用式(5)的卷积运算对每一通道产生扩散矢量。
扩散矢量加法器218将脉冲矢量扩散单元217获得的扩散矢量相加后,生成音源矢量(成为候补噪声码矢量)。
然后,失真计算单元206算出采用扩散矢量加法器218所得候补噪声码矢量的式(4)的值。对按表1的规则产生的脉冲矢量的全部组合,进行上述式(4)的值的运算,并将其中式(4)的值最大时的扩散模式组合号、脉冲矢量组合号(脉冲位置及其极性的组合),以及当时的最大值输出到码号规定单元213。
接着,扩散模式存储选择单元215从所得存储扩散模式选择与先前刚选择的组合不同的扩散模式。然后,就新选择并更改的扩散模式的组合,与上文所述相同,对按表1的规则在脉冲矢量生成单元216产生的全部脉冲矢量组合算出式(4)的值。再次将其中式(4)最大时的扩散模式组合号、脉冲矢量组合号和最大值再次输出到码号规定单元213。
对能从扩散模式存储选择单元215所存扩散模式选择的全部组合(本实施形态说明中组合总数为8)反复进行上述处理。
码号规定单元213比较失真计算单元206算出的全部8个矢量最大值,选择其中最大的,规定产生该最大值时的2种组合号(扩散模式组合号、脉冲矢量组合号),并作为噪声码号输出到编码输出单元214。
另一方面,图5的话音信号解码器中,编码输入单元301接收话音信号编码器(图4)送来的编码,将接收到的编码分解成对应的线性预测号码、自适应码号、噪声码号(由扩散模式组合号、脉冲矢量组合号等2种组成)和加权码号,并将分解所得的编码分别输出到线性预测系数解码单元302、自适应码本303、噪声码本304和加权码本305。
噪声码号中,扩散模式组合号输出到扩散模式存储选择单元311、脉冲矢量组合号输出到脉冲矢量生成单元312。
然后,线性预测系数解码单元302将线性预测码号解码,取得合成滤波器系数,并输出到合成滤波器309。在自适应码本303,从与自适应码号对应的位置读出自适应码矢量。
噪声码本304中,扩散模式存储选择单元311对每一通道读出与扩散脉冲组合号对应的扩散模式并输出到脉冲矢量扩散单元313;脉冲矢量生成单元312产生通道数份额的与脉冲矢量组合号对应的脉冲矢量并输出到脉冲矢量扩散单元313;脉冲矢量扩散单元313将从扩散模式存储选择单元311接收到的扩散模式和从脉冲矢量生成单元312接收到的脉冲矢量用式(5)的卷积运算产生扩散矢量,并输出到扩散矢量加法器314。扩散矢量加法器314将脉冲矢量扩散单元313产生的各通道的扩散矢量相加后,产生噪声码矢量。
从加权码本305读出与加权码号对应的自适应码增益和噪声码增益,并在自适应码矢量加权单元306将自适应码矢量乘以自适应码增益,同样,在噪声码加权单元307将噪声码矢量乘以噪声码增益后,送到加法器308。
加法器308将已乘上增益的上述2个码矢量相加,生成驱动音源矢量,并将生成的驱动音源矢量输出到自适应码本303,以便更新缓存器,还输出到合成滤波器309,以便驱动合成滤波器。
合成滤波器309用加法器308所得的驱动音源矢量驱动后,再生合成话音310。又,自适应码本303用从加法器308接收的驱动音源矢量更新缓存器。
但,图4和图5中的扩散模式存储选择单元取为将式(2)内的C中代入式(6)记载的音源矢量所得式(7)的失真计算基准式当作代价函数,并预先学习,使该代价函数的值较小后,将学习所得的扩散模式按每一通道加以存储。
通过上述操作,可生成形状与实际噪声源信息(式(4)中矢量X)的形状相似的音源矢量,因而与噪声码本中采用代数音源矢量生成单元的CELP话音信号编码器/解码器相比,能取得质量高的合成话音。
X:规定噪声码号用的目标矢量
gc:噪声码增益
H:合成滤波器脉冲响应卷积矩阵
C:噪声码矢量
i:通道号(i=1~N)
j:扩散模式号(i=1~M)
ci:通道i的扩散矢量
Wij:通道i的第j种扩散模式
di:通道i的脉冲矢量
L:音源矢量长度(n=0~L-1)
本实施形态中对每一通道预先存储M个进行预先学习,使式(7)的代价函数值较小后获得的扩散模式的情况进行说明,但实际上M个扩散模式不必全部通过学习取得,如果做成每一通道至少预先存储一种通过学习取得的扩散模式,这种情况下也能取得提高合成话音质量的作用和效果。
本实施形态中说明的情况是,根据扩散模式存储选择单元所存储扩散模式的全部组合和脉冲矢量生成单元6所生成候补脉冲矢量位置的全部组合,用闭环规定使式(4)中基准值最大的组合号。然而,做成根据规定噪声码本号前求得的参数(自适应码矢量的理想增益等),进行预选,或用开环进行检索等,也能取得同样的作用和效果。
此外,通过构成具有上述话音信号编码器/解码器的话音信号通信系统或话音信号记录系统,能取得第1实施形态中记载的音源矢量生成装置所具有的作用和效果。
(第3实施形态)
图6中示出本实施形态有关CELP型话音信号编码器的功能框图。本实施形态在噪声码本内采用上述第1实施形态音源矢量生成装置的CELP话音编码器中,用检索噪声码本前求得的理想自适应码增益值,进行扩散模式存储选择单元所存扩散模式的预选。除噪声码本外围部分以外,都与图4的CELP型话音信号编码器相同。因此,本实施形态说明图6CELP型话音信号编码器中的噪声源信息矢量量化处理。
此CELP型话音信号编码器具有自适应码本407、自适应码增益加权单元409、由实施形态1所说明音源矢量生成装置构成的噪声码本408、噪声码增益加权单元410、合成滤波器405、失真计算单元406、码号规定单元413、扩散模式存储选择单元415、脉冲矢量生成单元416、脉冲矢量扩散单元417、扩散矢量加法器418和自适应增益判定单元419。
但,本实施形态中,上述扩散模式存储选择单元415存储的M种扩散模式(M≥2)中至少一种是预先学习,使噪声源信息矢量量化时产生的量化失真较小,并由该学习结果得到的扩散模式。
为了说明简便,本实施形态中设脉冲矢量生成单元的通道数N为3,扩散模式存储选择单元所存储每一通道的扩散脉冲种类数M为2,而且取下列情况进行说明:M种扩散模式(M=2)的一种是由上述学习获得的扩散模式,另一种是由随机数矢量生成装置生成的随机矢量串(下文称为随机模式)。附带说一下,上述由学习获得的扩散模式,如图3中的W11那样,显然为长度比较短的脉冲状扩散模式。
图6的CELP型话音信号编码器中,在噪声源信息矢量量化前进行规定自适应码本号的处理。因此,在进行噪声源信息矢量量化处理的时刻,可参照自适应码本的矢量号(自适应码号)和理想自适应码增益(暂时确定)。本实施形态中,使用其中的理想自适应码增益值进行扩散脉冲的预选。
具体而言,首先,自适应码本检索完毕后,立即将码号规定单元413所保持的自适应码增益理想值输出到失真计算单元406。失真计算单元406将从码号规定单元413接收到的自适应码增益输出到自适应增益判定单元419。
自适应增益判定单元419对从失真计算单元409接收到的理想自适应增益值和预先设定的门限值的大小进行比较。接着,自适应增益判定单元419根据上述大小比较的结果,将预先用的控制信号送到扩散模式存储选择单元415。控制信号的内容在上述大小比较中自适应码增益大时,指示选择进行预先学习、使噪声源信息矢量量化时所产生量化失真较小后得到的扩散模式,并在上述大小比较中自适应码增益不大时,指示预选与学习结果所得扩散模式不同的扩散模式。
结果,在扩散模式存储选择单元415中,可适应自适应增益的大小,预选各通道存储的M种扩散模式(M=2),从而能大量减少扩散模式组合数。结果,不需要对扩散模式的全部组合号计算失真,能以少量的运算高效进行噪声源信息的矢量量化处理。
再者,噪声码矢量的形状在自适应增益值大时(有声性强时)为脉冲状,自适应增益值小时(有声性弱时)为随机状。因此,对话音信号的有声区域和无声区域,可分别利用形状适合的噪声码矢量,所以能提高合成话音的质量。
为了说明简便,本实施形态限定于脉冲矢量生成单元的通道数N为3,扩散模式存储选择单元所存每一通道扩散脉冲的种类数M为2的情况下进行说明。然而,脉冲矢量生成单元的通道数、扩散模式存储选择单元中每一通道的扩散模式数与上述说明不同时,也能取得同样的效果和作用。
为了说明简便,本实施形态对每一通道所存M种扩散模式中(M=2),一种为由上述学习获得的扩散模式,另一种为随机模式的情况进行说明。然而,如果每一通道至少预先存储一种由学习取得的扩散模式,即便不是上述那样的情况,也能期望取得同样的效果和作用。
本实施形态对具有将自适应码增益大小信息作为预选扩散模式用的手段的情况进行说明,但如果兼用自适应增益大小信息以外的表示话音信号短时间特征的参数,可期望获得更进一步的效果和作用。
此外,通过构成具有上述话音信号编码器的话音信号通信系统或话音信号记录系统,可获得实施形态1中记载的音源矢量生成装置所具有的作用和效果。
再者,本实施形态说明了利用在噪声源信息量化的时刻可参照的当前处理帧理想自适应音源增益,预选扩散模式的方法,但不用当前帧理想自适应音源增益,而代之以利用在紧接前一帧求出的解码自适应音源增益时,可取同样的结构,这时也能取得相同的效果。
(第4实施形态)
图7为本实施形态有关CELP型话音信号编码器的功能框图。本实施形态在噪声码本内采用第1实施形态音源矢量生成装置的CELP型话音信号编码器中,使用在噪声源信息矢量量化的时刻可利用的信息,预选扩散模式存储选择单元所存储的多个扩散模式。作为此预选的基准,其特征在于,使用规定自适应码本号时所产生编码失真(用S/N比表示)的大小。
除噪声码本外围部分以外,均与图4CELP型话音信号编码器相同。因此,本实施形态详细说明噪声源信息的矢量量化处理。
如图7所示,本实施形态的CELP型话音信号编码器具有自适应码本507、自适应码增益加权单元509、由第1实施形态中说明的音源矢量生成装置构成的噪声码本508、噪声码增益加权单元510、合成滤波器505、失真计算单元506、码号规定单元513、扩散模式存储选择单元515、脉冲矢量生成单元516、脉冲矢量扩散单元517、扩散矢量加法器518和失真功率判定单元519。
但,本实施形态中,取上述扩散模式存储选择单元515所存M种扩散模式中(M≥2),至少一种为随机模式。
为了说明简便,本实施形态中,取脉冲矢量生成单元的通道数N为3,扩散模式存储选择单元所存每一通道扩散模式的种类数M为2,而且假设M种扩散模式中(M=2)一种为随机模式,另一种为预先学习,使噪声源信息矢量量化所产生的量化失真较小后,由该学习结果所得的扩散模式。
图7的CELP型话音信号编码器中,在噪声源信息矢量量化处理前进行规定自适应码本号的处理。因此,在进行噪声源号矢量量化处理的时刻,可参照自适应码本的矢量号(自适应码号)、理想自适应码增益(暂时确定)和自适应码本检索用的目标矢量。本实施形态中使用可根据上述三种信息算出的自适应码本编码失真(用S/N比表示),进行扩散模式的预选。
具体而言,自适应码本检索完毕后,立即将码号规定单元513所保持的自适应码号和自适应码增益(理想增益)的值输出到失真计算单元506。失真计算单元506利用从码号规定单元513接收到的自适应码号和自适应码增益,以及自适应码本检索用的目标矢量,算出由规定自适应码本号而产生的编码失真(S/N比)。将算出的S/N比输出到失真功率判定单元519。
失真功率判定单元519首先进行从失真计算单元506接收到的S/N比与预先设定的门限值的大小比较。接着,失真功率判定单元519根据上述大小比较的结果,将预选用的控制信号送到扩散模式存储选择单元515。控制信号的内容在上述大小比较中S/N比大时,指示选择预先学习,使噪声码本检索用目标矢量进行编码所产生的编码失真较小后,其结果所得的扩散模式,并在上述大小比较中S/N比小时,指示选择随机模式的扩散模式。
结果,扩散模式存储选择单元515中,从各通道存储的M种扩散模式(M=2)仅预选一种,可大量减少扩散模式的组合。因此,不需要对扩散模式的全部组合号计算失真,能用少量的运算高效规定噪声码号。再者,噪声码矢量的形状在S/N比大时为脉冲状,S/N比小时为随机状。因此,能根据话音信号的短时间特征,使噪声码矢量的形状变化,从而可提高合成话音的质量。
为了说明简便,本实施形态限定于脉冲矢量生成单元的通道数N为3,扩散模式存储选择单元所存每一通道扩散脉冲的种类数M为2的情况下进行说明。然而,脉冲矢量生成单元的通道数、每一通道扩散模式的种类与上述说明不同时,也能取得同样的效果和作用。
为了说明简便,本实施形态又对每一通道存储的M种扩散模式中(M=2),一种为由上述学习取得的扩散模式,另一种为随机模式的情况进行说明。然而,如果做成每一通道至少预先存储一种随机模式的扩散模式,即便不是上述那样的情况也可期望取得同样的效果和作用。
本实施形态中虽然仅用由规定自适应码号而产生的编码失真(用S/N比表示)的大小信息作为预选扩散模式用的手段,但如果兼用进一步正确表示话音信号短时间特征的信息,可期望具有更进一步的效果和作用。
此外,通过构成具有上述话音信号编码器的话音信号通信系统或话音信号记录系统,或获得第1实施形态中记载的音源矢量生成装置所具有的作用和效果。
第5实施形态
图8中示出本发明第5实施形态有关CELP型话音信号编码器的功能框图。此CELP型话音信号编码器中,在LPC分析单元600通过对输入话音数据601进行自相关分析和LPC分析,获得LPC系数。又在对所得LPC系数进行编码而取得LPC码的同时,将所得LPC码解码,取得解码LPC系数。
接着,在音源生成单元602,取出自适应码本603和噪声码本604所存的音源取样(分别称为自适应码矢量(或自适应音源)和噪声码矢量(或噪声源)),并分别送到LPC合成单元605。
在LPC合成单元605中,对音源生成单元602所获得的2个音源,利用LPC分析单元600所获得的解码LPC系数进行滤波,从而获得2个合成话音。
在比较单元606中,分析LPC合成单元605所得2个合成话音和输入话音601的关系,求2个合成话音的最佳值(最佳增益),并将用该最佳增益调整功率后的各合成话音相加,取得总合成话音后,计算该总合成话音与输入话音的距离。
又,对自适应码本603和噪声码本604的全部音源的取样,计算由驱动音源生成单元602和LPC合成单元605所得的多个合成话音与输入话音601的距离,求该结果所得距离中最小时的音源取样索引号。
将所得最佳增益、音源取样索引号以及该索引号对应的2个音源送到参数编码单元607。在参数编码单元607通过进行最佳增益编码取得增益码后,将LPC码、音源取样索引号汇合在一起送到传输线路608。
根据与增益码和索引号对应的2个音源,生成实际音源信号,将该信号存入自适应码本603,同时废弃旧的音源取样。
再者,LPC合成单元605中,通常兼用听觉加权滤波器,该滤波器采用线性预测系数、高频强化滤波器和长期预测系数(通过对输入话音进行长期预测分析取得)。一般用将分析区间进一步细分的区间(称为子帧)进行对自适应码本和噪声码本的音源检索。
下面,本实施形态对LPC分析单元600中的LPC系数矢量量化进行详细说明。
图9示出实现在LPC分析单元600执行的矢量量化算法用的功能框图。图9中所示矢量量化框包括目标提取单元702、量化单元703、失真计算单元704、比较单元705、解码矢量存储单元707和矢量平滑单元708。
在目标提取单元702中,根据输入矢量701,算出量化目标。现详细说明提取目标的方法。
本实施形态中的输入矢量由2种矢量构成:分析编码对象帧所得的参数矢量;从一个未来帧进行同样分析取得的参数矢量。目标提取单元702利用上述输入矢量和解码矢量存储单元707所存先前帧解码矢量,算出量化目标。式(8)示出运算方法的例子。
X(i)={St(i)+p(d(i)+St+1(i)/2}/(1+p) (8)
X(i):目标矢量
i:矢量要素号
St(i)、St+1(i):输入矢量
t:时间(帧号)
p:加权系数(固定)
d(i):先前帧解码矢量
下面示出上述目标提取方法的思路。典型的矢量量化中将当前帧的参数矢量St(i)作为目标X(i),并用式(9)进行拟合。
En:与n号码矢量的距离
X(i):量化目标
Cn(i):码矢量
n:码矢量号
i:矢量维数
I:矢量长度
于是,至此为止的矢量量化中,编码失真仍然与音质的劣化相联系。在即使采取预测矢量量化等对策也不能避免某种程度的编码失真的超低比特率编码中,这成为大问题。
因此,本实施形态中,作为听觉上难以发现差错的方向,着眼于前后解码矢量的中点,在该处导出解码矢量,由此实现听觉方面的改善。这是利用参数矢量内插特性良好时,难以听到时间连续特性在听觉上的劣化这种特性。下面参照示出矢量空间的图10说明这种情况。
首先,该前一帧的解码矢量为d(i),未来参数矢量为St+1(i)(实际上最好为未来解码矢量,但当前帧中不能编码,所以代用参数矢量),则码矢量Cn(i):(1)为码矢量Cn(i):(2)更接近参数矢量St(i),但实际上Cn(i):(2)接近在d(i)与St+1(i)的连线上,因而比Cn(i):(1)不易听到劣化。于是,利用这种特性,如果将目标X(i)取为从St(i)以某种程度接近d(i)与St+1(i)的中点位置上的矢量,则将解码矢量引导到听觉上失真小的方向。
本实施形态中,通过导入下面式(10)的估算能实现这种目标的移动。
X(i)={St(i)+p(d(i)+St+1(i)/2}/(1+p) (10)
X(i):量化目标矢量
i:矢量要素号
St(i)、St+1(i):输入矢量
t:时间(帧号)
p:加权系数(固定)
d(i):先前帧解码矢量
式(10)的前半部分为一般矢量量化估算式,后半部分为听觉加权分量。为了用上述估算式进行量化,在各X(i)将估算式进行微分,并设微分所得结果为0,则可得式(8)。
加权系数P为正的常数,其值为0时和一般矢量量化相同,无限大时目标完全位于中点。P非常大,则目标大为偏离当前帧的参数矢量St(i),听觉清晰度下降。根据解码话音信号试听实验,证实0.5<p<1.0时取得良好的性能。
在量化单元703对目标提取单元702所得的量化目标进行量化,求矢量码,同时求解码矢量,并和矢量码一起送到失真计算单元704。
本实施形态中,采用预测矢量量化作为量化的方法。下面说明预测矢量量化。
图11中示出预测矢量量化的功能框图。预测矢量量化是一种利用过去编码和解码所得矢量(合成矢量)进行预测,并对该预测误差进行矢量量化的算法。
预先生成存储多个预测误差矢量的中心取样(码矢量)的矢量码本800。通常根据分析多个话音数据所得的多个矢量,利用LBG算法(IEEETRANSACTIONS ON COMMUNICATIONS,VOL.COM-28,NO.1,pp84-95,JANUARY 1980),生成该码本。
在预测单元802对量化目标的矢量801进行预测。预测利用状态存储单元803所存的过去合成矢量进行,并将所得预测误差矢量送到距离计算单元804。这里,作为预测的形态,举出预测次数为1次时利用固定系数进行的预测。下面的式(11)中示出上此预测时的预测误差矢量计算式。
Y(i)=X(i)-βD(i) (11)
Y(i):预测误差矢量
X(i):量化目标
β:预测系数(标量)
D(i):前1帧的合成矢量
i:矢量维数
上式中预测系数β的值一般为0<β<1。
在距离计算单元804中,计算预测单元802所得预测误差矢量与矢量码本800所存码矢量的距离。下面的式(12)示出该距离计算公式。
En:与n号码矢量的距离
T(i):预测误差矢量
Cn(i):码矢量
n:码矢量号
i:矢量维数
I:矢量长度
在检索单元805中比较与各码矢量的距离,将距离最小的码矢量的号码作为矢量码806加以输出。即,控制矢量码本800和距离计算单元804,求矢量码本800所存全部码矢量中距离最小的码矢量的号码,并将该矢量号作为矢量码806。
进而,根据最终矢量码,利用从矢量码本800所得的码矢量和状态存储单元803所存的过去解码矢量,进行矢量解码,并用所得的合成矢量更新状态存储单元803的内容。因此,进行下一次解码时可将此处解码的矢量用于预测。
利用下面的式(13)进行上述预测形态例(预测次数为1次、固定系数)的解码。
Z(i)=CN(i)+βD(i) (13)
Z(i):解码矢量(下一次编码时作为D(i)使用)
N:矢量编码
CN(i):码矢量
β:预测系数(标量)
D(i):前1帧的合成矢量
I:矢量维数
另一方面,在解码器中,通过根据传送来的矢量码求码矢量,进行解码。解码器中预先备有与编码器相同的矢量码本和状态存储单元,利用与上述编码算法中的检索单元解码器功能相同的算法,进行解码。以上是在量化单元703执行的矢量量化。
在失真计算单元704中根据量化单元703所得的解码矢量、输入矢量701和解码矢量存储单元707所存的先前帧解码矢量,计算听觉加权编码失真。下面的式(14)示出计算式。
Ew=∑(V(i)-St(i))2+p{V(i)-(d(i)+St+1(i)/2}2 (14)
Ew:加权编码失真
St(i),St+1(i):输入矢量
t:时间(帧号)
i:矢量要素号
V(i):解码矢量
p:加权系数(固定)
d(i):先前帧解码矢量
在式(14)中,加权系数p与目标提取单元702所用目标计算式的系数相同。将上述加权编码失真值、解码矢量和矢量码送到比较单元705。
比较单元705将失真计算单元704送来的矢量码送到传输线路608,而且用失真计算单元704送来的解码矢量,更新解码矢量存储单元707的内容。
根据上述实施形态,在目标提取单元702将目标矢量修正为从St(i)以某种程度接近d(i)和St+1(i)的中点的位置的矢量,因而可进行加权检索而不觉得听觉上劣化。
至此,说明了本发明适应于便携电话等所用低比特率话音信号编码技术的情况,但本发明不但是话音信号编码,而且还能用于音乐编码器。图像编码器中内插性较好的参量矢量量化。
上述算法中LPC分析单元的LPC编码通常是变换为一般的LSP(线谱对)等便于编码的参数矢量,利用欧几里德距离和加权欧几里德距离进行矢量量化(VQ)。
本实施形态中,目标提取单元702接受比较单元705的控制,将输入矢量701送到矢量平滑单元708,目标提取单元703接收矢量平滑单元708中修改过的输入矢量,再进行目标的提取。
这时,在比较单元705比较失真计算单元704送来的加权编码失真值和比较单元内部准备的基准值。根据此比较结果,处理分为二种。
未达到基准值时,将失真计算单元704送来的矢量码送到传输线路606,而且用失真计算单元704送来的解码矢量,更新解码矢量存储单元707的内容。通过用得到的解码矢量改写解码矢量存储单元707的内容,进行此更新。然后,过渡到下一帧参数编码处理。
反之,在基准值以上时,控制矢量平滑单元708,对输入矢量加以修改,使目标提取单元702、量化单元703和矢量计算单元704再次起作用,进行重新编码。
在比较单元705中未达到基准值前,反复进行编码处理。然而,有时会反复进行几次也不能变成未达到基准值,因而比较单元705内部具有计数器,计算判定为基准值以上的次数,达到一定次数以上时,中止反复编码,并进行未达到基准值时的处理和计数器清零。
矢量平滑单元708中,接收比较单元705的控制,根据由目标提取单元702得到的输入矢量和从解码矢量存储单元707得到的先前帧解码矢量,利用下面的式(15)修改作为输入矢量之一的当前帧参数矢量St(i),并将修改后的输入矢量送到目标提取单元702。
St(i)←(1-q)·St(i)+q(d(i)+St+1(i))/2 (15)
上述q为平滑系数,表示当前帧参数矢量接近先前帧解码矢量与未来帧参数矢量的中点的程度。根据编码实施,证实0.2<q<0.4且比较单元705的内部反复次数上限值为5-8次时,可获得良好的性能。
本实施形态虽然在量化单元703采用预测矢量量化,但借助上述平滑处理,失真计算单元704所得加权编码失真变小的可能性大。其原因在于利用平滑处理使量化目标更接近先前帧解码矢量。因此,利用反复进行比较单元705控制的编码,比较单元705的失真比较中未达到基准值的可能性提高。
解码器中,预先备有与编码器量化单元对应的解码单元,根据从传输线路送来的矢量码进行解码。
本实施形态也用于CELP型编码中出现的LSP参数量化(量化单元进行预测VQ)进行话音信号的编码和解码实验。其结果,证实听觉上的音质当然能提高,而且也能使客观值(S/N比)提高。这是因为利用具有矢量平滑的反复编码处理,达到即使频谱急剧变化时也能抑制预测VQ编码失真的效果。以往的预测VQ具有的缺点是:由于根据过去合成矢量进行预测,讲话开始的部分等频谱急剧变化部分的频谱失真反而变大。然而,应用本实施形态,则失真大时进行平滑处理,直到失真变小,因而目标虽然有些偏离实际的参数矢量,但编码失真变小,可取得话音信号解码时总体劣化变小的效果。因此,根据本实施形态,不仅听觉上改善音质,而且也能使客观值提高。
本实施形态中,可利用比较单元和矢量平滑单元的特征,在矢量量化失真大时,将其劣化的方向控制在听觉上比较不会觉察的方向上,而且在量化单元采用预测矢量量化时通过反复进行平滑处理+编码,直到编码失真变小也能使客观值提高。
至此,说明了本发明适应于便携电话等所用低比特率话音编码技术的情况,但本发明不仅是话音信号编码,而且也可用于音乐编码器和图像编码器中内插性较好的参数矢量量化。
(第6实施形态)
下面说明本发明第6实施形态有关的CELP型话音信号编码器。本实施形态除量化方法采用多级预测矢量量化的量化单元的量化算法外,其他的结构与上述第5实施形态相同。即,噪声码本采用上述第1实施形态的音源矢量生成装置。现详细说明量化单元的量化算法。
图12中示出量化单元的功能框图。多级矢量量化中,进行目标矢量量化后,以量化所得目标码字利用其码本进行解码,求编码后的矢量与原目标之差(称为编码失真矢量),进而将求得的编码失真矢量加以量化。
预先生成存放多个预测误差矢量中心取样(码矢量)的矢量码本899、矢量码本900。借助对多个学习用的预测误差矢量,应用与典型“多级矢量量化”码本生成方法相同的算法,生成这些码本。即,通常根据分析许多话音数据所得的多个矢量,利用LBG算法(I EEE TRANSACTIONS ONCOMMUNICATIONS,VOL.COM-28,NO.1,pp84-95,JANUARY 1980)生成上述码本。但,矢量码本899的学习总体为许多量化目标的集合,矢量码本900的学习总体为对上述许多量化目标用量化码本899进行编码时的编码失真矢量的集合。
首先,在预测单元902对量化目标矢量901进行预测。预测用状态存储单元903所存过去合成矢量进行,并将得到的预测误差矢量送到距离计算单元904和距离计算单元905。
本实施形态中,作为预测形态,举出预测次数为1次时利用固定系数进行的预测。下面的式(16)示出用这种预测时的预测误差矢量运算式。
Y(i)=X(i)-βD(i) (16)
Y(i):预测误差矢量
X(i):量化目标
β:预测系数(标量)
D(i):前1帧的合成矢量
i:矢量维数
上式中,预测系数β的值通常为0<β<1。
在距离计算单元904中,计算预测单元902所得预测误差矢量与矢量码本899所存码矢量A的距离。下面的式(17)示出距离计算式。
En:与n号码矢量A的距离
X(i):预测误差矢量
C1n(i):码矢量A
n:码矢量A的号码
i:矢量维数
I:矢量长度
在检索单元906中,比较与各码矢量A的距离,将距离最小的码矢量A的号码作为码矢量A的编码。即,控制矢量码本899和距离计算单元904求矢量码本899所存全部码矢量中距离最小的码矢量A的号码,并将该号码作为码矢量A的编码。然后,将码矢量A的编码和参照该编码从矢量码本899取得的解码矢量A送到距离计算单元905。又将码矢量A的编码送到传输线路、检索单元907。
距离计算单元905根据预测误差矢量和从检索单元906取得的解码矢量A,取得编码失真矢量,或者参照从检索单元906取得的码矢量A的编码,从幅度存储单元908取得幅度,然后计算上述编码失真矢量与矢量码本900中存储的码矢量B乘以上述幅度所得结果的距离,并将该距离送到检索单元907。下面的式(18)示出距离计算式。
Z(i)=Y(i)-C1N(i)
Z(i):解码失真矢量
Y(i):预测误差矢量
C1N(i):解码矢量A
N:码矢量A的编码
Em:与m号码矢量B的距离
aN与码矢量A的编码对应的幅度
C2m(i):码矢量B
m:码矢量B的号码
i:矢量维数
I:矢量长度
在检索单元907中,比较与各码矢量B的距离,将距离最小的码矢量B的号码作为码矢量B的编码。即,控制矢量码本900和距离计算单元905,求矢量码本900所存全部码矢量B中距离最小的码矢量B的号码,并将该号码作为码矢量B的编码。然后,将码矢量A和码矢量B的编码合在一起,作为矢量909。
检索单元907还根据码矢量A、B的编码,用从矢量码本899和矢量码本900获得的解码矢量A和B、从幅度存储单元908获得的幅度,以及状态存储单元903存储的过去解码矢量进行矢量的解码,并利用得到的合成矢量更新状态存储单元903的内容。(因此,进行下一次编码时,将此处解码的矢量用于预测。)利用下面的式(19)进行本实施形态预测(预测次数为1次。固定系数)中的解码。
Z(i)=C1N(i)+aN·C2M(i)+βD(i) (19)
Z(i):解码矢量(下一次编码时作为D(i)使用)
N:码矢量A的编码
M:码矢量B的编码
C1M:解码矢量A
C2M:解码矢量B
aN:与码矢量A的编码对应的幅度
β:预测系数(标量)
D(i):前一帧的合成矢量
i:矢量维数
预先设定幅度存储单元908存储的幅度,下面示出此设定方法。对许多话音数据进行编码,并对第1级码矢量的各编码求下面式(20)的总编码失真后,进行学习,使该失真最小,从而设定幅度。
EN:码矢量A的编码为N时的编码失真
N:码矢量A的编码
t:码矢量A的编码为N的时间
Yt(i):时间t的预测误差矢量
C1N(i):解码矢量A
aN:与码矢量A的编码对应的幅度
C2mt(i):码矢量B
mt:码矢量B的号码
i:矢量维数
I:矢量长度
即,编码后,设定并修改上述式(20)的失真,使在各幅度微分的值为0,由此,进行幅度学习。然后,反复进行上述编码+学习,从而求出最佳幅度。
另一方面,解码器中,通过根据传递来的矢量码,求码矢量,进行解码。解码器具有和编码器相同的矢量码本(对应于码矢量A、B)、幅度存储单元和状态存储单元,用与上述编码算法中检索单元(对应于码矢量B)的解码功能相同的算法进行解码。
因此,本实施形态中,利用幅度存储单元和距离计算单元的特征以较少的计算量使第2级的码矢量适应第1级,从而能使幅度失真较小。
至此,说明了本发明适应于便携电话等所用低比特率话音信号编码技术的情况,但本发明不仅是话音信号编码,而且还可用于音乐编码器和图像编码器等中内插性较好的参数矢量量化。
(第7实施形态)
下面说明本发明第7实施形态有关的CELP型话音信号编码器。本发明形态是一种编码器的例子,该编码器可减少采用ACELP型噪声码本时码检索的运算量。
图13中示出本实施形态有关CELP型话音编码器的功能框图。此CELP型话音信号编码器中,滤波器系数分析单元1002对输入话音信号1001进行线性预测分析,取得合成滤波器系数,并将所得合成滤波器系数输出到滤波器系数量化单元1003。滤波器系数量化单元1003将输入的合成滤波器系数量化后,输出到合成滤波器1004。
合成滤波器1004是根据滤波器系数量化单元1003所供给的滤波器系数建立的,由激励信号1011驱动。该激励信号1011通过将自适应码本1005输出的自适应矢量1006乘以自适应增益1007所得结果与噪声码本1008输出的噪声矢量1009乘以噪声增益1010所得结果相加而取得。
这里,自适应码本1005是存储每一音调周期取出过去对合成滤波器的激励信号的多个自适应矢量的码本,噪声码本1007是存储多个噪声矢量的码本。噪声码本1007可采用上述第1实施形态的音源矢量生成装置。
失真计算单元1013算出作为激励信号1011所驱动合成滤波器1004的输出的合成话音信号1012与输入话音信号1001之间的失真,并进行码检索处理。码检索处理是一种规定使失真计算单元1013所计算失真最小用的自适应矢量1006的号码和噪声矢量1009的号码,同时算出各输出矢量所乘自适应增益1007和噪声增益1010的最佳值的处理。
编码输出单元1014输出的是将分别与从滤波器系数量化单元1003得到的滤波器系数量化值,以及失真计算单元1013中选择的自适应矢量1006的号码和噪声矢量1009的号码相乘的自适应增益1007和噪声增益1009编码后所得的结果。将从编码输出单元1014输出的信息加以传输或存储。
失真计算单元1013中的码检索处理,通常首先对激励信号中的自适应码本分量进行检索,然后对激励信号中的噪声码本分量进行检索。
上述噪声分量的检索使用下面说明的正交检索。
正交检索中,规定使式(21)的检索基准值Eort(=Nort/Dort)最大的噪声矢量c。
Nort:Eort的分子项
Dort:Eort的分母项
p:已规定的自适应矢量
H:合成滤波器系数矩阵
Ht:H的转置矩阵
X:目标信号(输入话音信号与合成滤波器零输入响应差分所得的结果)
c:噪声矢量
正交检索是对事先规定自适应矢量为候补的噪声矢量分别正交,并从正交的多个噪声矢量规定1个失真最小的检索方法。这种检索方法与非正交检索相比,其特征在于可提高规定噪声矢量的精度,从而能提高合成话音信号的质量。
ACELP方式中,只用少数带极性的脉冲构成噪声矢量。利用这点,将式(21)所示检索基准值的分子项(Nort)变换为下面的式(22),由此,可减少分子项的运算。
Nort={a0ψ(l0)+a1ψ(l1)+…+an-1ψ(ln-1)}2 (22)
ai:第i个脉冲的极性(+1/-1)
li:第i个脉冲的位置
N:脉冲个数
ψ:{(ptHtHp)x-(xtHp)Hp}H
将式(22)中ψ的值作为前处理预先计算,并在阵列中展开,则可将阵列ψ中的(N-1)个要素带符号进行相加,并对其结果取平方,从而计算式(21)的分子项。
下面具体说明可对分母项减少运算量的失真计算单元1013。
图14中示出失真计算单元1013的功能框图。本实施形态中的话音信号编码器,其结构为在图13的结构中,将自适应矢量1006和噪声矢量1009输入失真计算单元1013。
在图14中,作为对所输入噪声矢量计算失真时的前处理,进行以下3种处理。
(1)算出第1矩阵(N):计算在合成滤波器合成自适应矢量后所得矢量的功率(ptHtHp)和合成滤波器中滤波器系数的自相关矩阵(HtH),并将上述功率与上述自相关矩阵各要素相乘,从而算出矩阵N(=(ptHtHp)HtH)。
(2)算出第2矩阵(M):将在合成滤波器合成自适应矢量后所得的矢量按反时针顺序合成,并对其结果所得的信号(ptHtH)取矢积后,算出矩阵M。
(3)生成第3矩阵(L):对(1)中算出的矩阵N和(2)中算出的矩阵M进行差分,生成矩阵L。
又,式(21)的分母项(Dort)可展开为式(23)。
Dort=(ctHtHc)(ptHtHp)-(ptHtHc)2 (23)
=ctNc-(rtc)2
=ctNc-(rtc)t(rtc)
=ctNc-(ctrrtc)
=ctNc-(ctMc)
=ct(N-M)c
=ctLc
N:(ptHtHp)HtH←上述前处理(1)
r:ptHtH ←上述前处理(2)
M:rrt ←上述前处理(2)
L:N-M ←上述前处理(3)
c:噪声矢量
由此,将计算式(21)检索基准值(Eort)时的分母项(Dort)的计算方法置换为式(23),可用较少的运算量规定噪声码本分量。
用上述前处理获得的矩阵L和噪声矢量1009,进行分母项的计算。
这里,为了简便,对输入话音信号取样频率为8000Hz,代数结构噪声码本检索的单位时间宽度(帧时间)为10ms,噪声矢量用每10ms 5个单元脉冲(+1/-1)的规则组合生成的情况,说明基于式(23)的分母项计算方法。
又设构成噪声矢量的5个单位脉冲由处于从表2所示第0组到第4组所规定位置分别选择1个位置的脉冲组成,候补噪声矢量可用下面式(24)记述。
C=a0δ(k-l0)+a1δ(k-l1)+…+a4δ(k-l4) (24)
(k=0,1,…79)
ai:第i组所属脉冲的极性(+1/-1)
li:第i组所属脉冲的位置
表2
组号 |
符号 |
候补脉冲位置 |
0 |
±1 |
0,10,20,30,…,60,70 |
1 |
±1 |
2,12,22,32,…,62,72 |
2 |
±1 |
2,16,26,36,…,66,76 |
3 |
±1 |
4,14,24,34,…,64,74 |
4 |
±1 |
8,18,28,38,…,68,78 |
这时,可用下面的式(25)求式(23)所示的分母项(Dort)。
ai:第i组所属脉冲的极性
li:第i组所属脉冲的位置
L(li,lj):矩阵L中li行、lj列的要素
根据以上说明,证明采用ACELP型噪声码本时,可用式(22)计算式(21)的码检索基准值的分子项(Nort),可用式(25)计算其分母项(Dort)。因此,采用ACELP型噪声码本时,不是原样计算式(21)的基准值,而是用(22)和式(25)分别计算其分子项和分母项,从而可大幅度削减码检索运算量。
以上说明的本实施形态,说明了不带有预选的噪声码本检索。然而,预选使式(22)的值大的噪声矢量,并对利用预选收敛为多个候补的噪声矢量计算式(21),选择使该值最大的噪声矢量,这种情况下应用本发明,也能取得相同的效果。