2. 同济大学 电子与信息工程学院, 上海 201804
2. College of Electronic and Information Engineering, Tongji University, Shanghai 201804, China
低速率声码器的基础是线性预测技术,通过求解线性预测方程可以获得线谱频率(Line Spectrum Frequency,LSF)参数和激励参数,其中LSF参数的矢量量化很大程度上影响合成语音的可懂度。
由于存储量及计算量有限,LSF参数量化往往采用受约束的矢量量化,主要包括多级矢量量化(Multi-Stage Vector Quantization,MSVQ)、分裂矢量量化和预测矢量量化等[1-4]。混合激励线性预测(Mixed Excitation Linear Prediction,MELP)[5]和正弦激励线性预测[4] 声码器均采用多级矢量量化,即对LSF参数分4级量化,有效降低了码书的存储量和码字搜索的计算量。
为了进一步提高量化性能,利用清音和浊音的LSF参数分布具有差异性[6],文献[7]在MSVQ的基础上,提出了分模式量化(Mode-Based Quantization,MBQ)算法。该算法根据清/浊音参数来划分模式,然后在清/浊音模式下分别进行LSF参数的量化,有效提升了量化性能,但码书存储量增加了1倍。文献[8]提出的基于MSVQ的码书共享算法(Mode Based MSVQ with Shared Codebooks,MBMSC),利用清/浊音两种模式下LSF参数的量化码本满足近似线性关系,在增加少量计算量的前提下,码书存储量降低了92.1%,较好地解决了MBQ算法码书量成倍增加问题。
MBMSC和MBQ算法依据清/浊音参数作为分模式,在解码端依据LSF码书编号和清/浊音标志比特两个特征来恢复出LSF参数。为了节省清浊音参数的量化比特数,文献[9]在解码端根据能量和LSF参数估计恢复出清浊音参数,这在甚低速率语音编码中具有重要意义。因此,LSF参数就不能利用恢复出的清浊音参数作为分模式的依据了,这就意味着这种情况下,MBMSC和MBQ算法无效。
针对文献[9]的问题,结合文献[6-8]的研究思路,本文在MSVQ算法的基础上,分析了清浊音的LSF参数分布存在差异性,引入了胞腔均匀度(Cell Evenness,CE)来描述该差异程度,在此基础上提出了基于CE的清浊模式码书设计算法——CMBQ。实验结果表明,本文提出的CMBQ算法谱失真(Spectrum Distortion,SD)和平均意见(Mean Opinion Score,MOS)指标与MBQ算法相近,而码书存储量为MBQ算法的一半,性能优于MBMSC算法,并且适用于不传输清浊音标志的应用场合。
基于CE的分模式码书设计(Multimode Codebook Design based CE,MCDCE)算法
1 清浊音的LSF参数分布特性假设码书尺寸为M,迭代收敛时落入胞腔Vi(i=1,2,…,M)的训练矢量个数为ni,令胞腔平均大小为:
$\bar{n}=\frac{1}{M}\sum\limits_{i=1}^{M}{{{n}_{i}}}$ | (1) |
ni的标准差为:
${{\sigma }_{n}}=\sqrt{\frac{1}{M}\sum\limits_{i=1}^{M}{{{\left( {{n}_{i}}-\bar{n} \right)}^{2}}}}$ | (2) |
本文引入该标准差来描述各LSF胞腔训练矢量分布的均匀程度,为此笔者提出将σn命名为胞腔均匀度。
为了分析清浊音的LSF参数分布特性,笔者设计了如下实验。实验语音为(中文)男/女评书、(英文)男/女有声小说,各1小时,8 kHz采样,16位PCM编码。对语音进行分帧,帧长为200点,帧移为80点,采用PEFAC算法[10]判定语音帧的清/浊状态,全体语音帧集合记为FVU,所有的浊音帧集合记为FV,所有非浊音帧(包括清音部分和静音部分,两者特性类似,不分开处理)记为FU。采用MELP[5]方法提取帧内的10阶LSF参数,经过统计处理后确定三个集合的训练LSF参数数量分别为64800、32400和32400。
为了提高实验效率,实验中利用2.4 Kb/s MELP[5]中MSVQ标准码书的变形作为码书训练的初始码书资源,即采用MSVQ标准码书前两级码书的合并(27×26=8192个码字),对前两级码字组合进行50 Hz最小间隔检测,发现有5个矢量不符合,对这5个矢量进行50 Hz间隔的修正,将最后结果记为LSF_STD_2。以LSF_STD_2作为初始码书,码书训练算法采用LBG算法[11],分别以FV、FU、FUV、D-FUV训练集训练码书至收敛,其中D-FUV是对FUV训练出的码书,统计拥有最多训练矢量的胞腔,记为nmax,将训练矢量数量小于2%×nmax胞腔中的训练矢量从集合FUV中去除,余下的记为集合D-FUV。
表 1为四组训练集训练至收敛的迭代次数t和训练后码书的σn,图 1为四组训练集分别训练至收敛时LSF训练矢量的空间分布情况,图 1是从8192个胞腔中按比例选出的7个典型胞腔。
1) 浊音的LSF训练矢量收敛时的迭代次数远少于清音的LSF训练矢量,浊音的σn也远低于清音的σn。这是因为浊音的LSF训练集在胞腔分布较均匀,如图 1(a)所示。而清音存在LSF训练矢量数量极少的胞腔,如图 1(b)所示,这些极少的训练矢量是非典型矢量(常常因噪声等引起),由于这些非典型矢量的存在,导致清音没有充分利用码书尺寸来分布码字。
2) 清/浊音混合训练后,浊音的LSF训练矢量较均匀。
分布在各个胞腔中,由于清音的非典型矢量影响,虽然满足迭代收敛条件,但σn仍然很大,没有充分利用码书尺寸来分布码字,如图 1(c)所示。对训练集FUV中训练出码书后剔除非典型矢量后重新训练,如图 1(d)所示,由于去除了非典型矢量干扰,从而较充分利用了胞腔空间,胞腔均匀度显著下降。
2 基于CE的清浊模式码书设计算法 2.1 算法描述第一章实验结果表明,通过剔除清音非典型矢量,有利于充分利用码书尺寸来分布码字,提升码书的质量。但剔除多大数量清音的LSF矢量能达到码书质量最优是需要研究的问题,为了定量给出舍弃清音非典型矢量的最优数量,本文给出了如下理论推导。
本文假设码书尺寸为M,LSF训练矢量数量为N,迭代收敛时落入第i个胞腔的LSF训练矢量数量为ni(i=1,2,…,M),全体LSF训练矢量训练至收敛后码书胞腔均匀度σn。 清音和浊音的LSF训练矢量数量分别为Nu和Nv;清音和浊音的第i个胞腔的LSF训练矢量数量分别为ni,u和ni,v;清音和浊音的LSF训练矢量分别训练至收敛后码书胞腔均匀度为σnu和σnv。
LSF训练矢量数量N等于M个胞腔的LSF训练矢量数量ni之和:
$N=\sum\limits_{i=1}^{M}{{{n}_{i}}}$ | (3) |
由式(1)~(3)可以推导出LSF训练矢量数量N、第i个胞腔的LSF训练矢量数量为ni和全体LSF训练矢量训练至收敛后码书胞腔均匀度σn的关系:
${{N}^{2}}=M\sum\limits_{i=1}^{M}{{{n}_{i}}^{2}-{{M}^{2}}{{\sigma }_{n}}^{2}}$ | (4) |
推导过程如下:
$\begin{align} & {{N}^{2}}={{M}^{2}}{{{\bar{n}}}^{2}} \\ & =2\bar{n}{{M}^{2}}\bar{n}-{{M}^{2}}{{{\bar{n}}}^{2}} \\ & =2\bar{n}M\sum\limits_{i=1}^{M}{{{n}_{i}}-}{{M}^{2}}{{{\bar{n}}}^{2}} \\ & =M\sum\limits_{i=1}^{M}{{{n}_{i}}^{2}-M}\sum\limits_{i=1}^{M}{{{n}_{i}}^{2}+M\sum\limits_{i=1}^{M}{2{{n}_{i}}\bar{n}-M\sum\limits_{i=1}^{M}{{{{\bar{n}}}^{2}}}}} \\ & =M\sum\limits_{i=1}^{M}{{{n}_{i}}^{2}-M}\sum\limits_{i=1}^{M}{({{n}_{i}}^{2}-2{{n}_{i}}\bar{n}+{{{\bar{n}}}^{2}})} \\ & =M\sum\limits_{i=1}^{M}{{{n}_{i}}^{2}-M}\sum\limits_{i=1}^{M}{{{\left( {{n}_{i}}-\bar{n} \right)}^{2}}} \\ & =M\sum\limits_{i=1}^{M}{{{n}_{i}}^{2}-{{M}^{2}}\frac{1}{M}}\sum\limits_{i=1}^{M}{{{\left( {{n}_{i}}-\bar{n} \right)}^{2}}} \\ & =M\sum\limits_{i=1}^{M}{{{n}_{i}}^{2}-{{M}^{2}}{{\sigma }_{n}}^{2}} \end{align}$ |
由式(4)可以分别得到清浊音LSF训练矢量数量Nu和Nv、第i个胞腔的LSF训练矢量数量分别为ni,u和ni,v,清音和浊音的LSF训练矢量分别训练至收敛后码书胞腔均匀度分别为σnu和σnv的关系:
${{N}_{u}}^{2}=M\sum\limits_{i=1}^{M}{{{n}_{i,u}}^{2}-{{M}^{2}}{{\sigma }_{nu}}^{2}}$ | (5) |
${{N}_{v}}^{2}=M\sum\limits_{i=1}^{M}{{{n}_{i,v}}^{2}-{{M}^{2}}{{\sigma }_{nv}}^{2}}$ | (6) |
对清音和浊音的LSF训练矢量分别训练后,由于清音LSF参数存在非典型矢量,通过剔除非典型矢量,使σnu=σnv,这样清浊音混合训练时,可以实现清音和浊音达到相同训练效果,有利于充分利用码书尺寸来分布码字。
为了实现这个目标,只保留清音的LSF训练矢量集中度高的前L个胞腔的矢量,舍弃余下的非典型矢量。由式(5)~(6)得:
$\frac{1}{L}\sum\limits_{i=1}^{L}{{{\left( {{n}_{i,u}}-\frac{1}{L}\sum\limits_{j=1}^{L}{{{n}_{j,u}}} \right)}^{2}}}={{\sigma }_{nv}}^{2}$ | (7) |
通过式(7)运算得到L(取最接近的整数),式(5)变成:
${{N}_{u}}^{2}=L\sum\limits_{i=1}^{L}{{{n}_{i,u}}^{2}-{{L}^{2}}{{\sigma }_{nV}}^{2}}$ | (8) |
则得到清音和浊音LSF训练矢量数量比:
${{\rho }_{uv}}=\frac{{{N}_{u}}}{{{N}_{v}}}=\sqrt{\frac{L\sum\limits_{i=1}^{L}{{{n}_{i,u}}^{2}-{{L}^{2}}{{\sigma }_{n,v}}^{2}}}{M\sum\limits_{i=1}^{M}{{{n}_{i,v}}^{2}-{{M}^{2}}{{\sigma }_{n,v}}^{2}}}}$ | (9) |
1) 初始化。
训练语音按8 kHz采样,16位PCM编码;对语音进行分帧,帧长为200点,帧移为80点;采用PEFAC算法[10]判定语音帧的清/浊状态,全体语音帧集合记为FVU,所有的浊音帧集合记为FV,所有非浊音帧记为FU。采用MELP[5]方法提取帧内的10阶LSF参数,以LSF_STD_2作为初始码书。
2) LBG码书训练。
分别对浊音帧集合FV,非浊音帧集合FU的LSF训练矢量进行码书训练,LBG算法相对误差门限ε=0.2。
3) 参数计算。
根据训练结果计算出σnu、σnv、L和ρuv。
4) 重新混合训练出码书。
舍弃非典型胞腔,剔除指定数量的Nv-L清音LSF训练矢量,将清音余下的训练集和浊音训练集混合后,采用LBG算法训练出码书。
3 实验结果及分析为了验证笔者提出CMBQ算法的性能。训练准备了四类语音:(中文)男/女评书、(英文)男/女有声小说,各10 h。测试语句另外采用4个10 min的纯净语音,分别是(中文)男/女评书、(英文)男/女有声小说。训练语音和测试语音均是8 kHz采样,16位PCM编码。本算法采用帧长200点、帧移80点来提取LSF参数,语音帧的清/浊音判定采用PEFAC方法[10]判定。
3.1 参数分析根据CMBQ算法步骤训练出码书,同时记录下实验过程中的参数:
剔除的清音LSF训练矢量数量L=203796; 清音和浊音LSF训练矢量数量比ρuv=0.36; 四组训练集分别训练至收敛时的t和σn如表 2所示。
图 2为不同的清音和浊音LSF训练矢量数量比ρuv下的胞腔均匀度σn和谱失真SD。
从图 2可以看出:
1) σn随着ρuv的减小而减小,这是因为浊音的LSF训练矢量分布均匀,而清音的LSF训练矢量分布不均匀,ρuv越小,即保留了集中度更高的清音的LSF训练矢量量,从而σn也越小,最终将逼近浊音单独训练的σnv。
2) ρuv=0.36左右是个趋势变异点,ρuv<3.6后,σn尽管会减少,但减小的速度相对于ρuv>0.36来说显著下降。
3) ρuv=0.36时,SD具有最小值。这是因为ρuv<3.6,是去除了清音的部分典型LSF训练矢量,从而使这部分清音的LSF参数量化时SD急剧上升,从而造成了平均SD的增大。 ρuv>0.36时,则是由于没有有效去除清音的非典型LSF训练矢量,没有充分利用码书尺寸来分布码字,从而造成SD的增大。
3.2 4种方案性能对比为了进一步验证笔者提出CMBQ算法的性能,给出了其他3种方案进行对比,它们分别是:1)MSVQ。2)MBQ。该方案中清音和浊音LSF参数分别拥有两套独立的码书。3)MBMSC。该方案中清音和浊音LSF参数共享一套码本。四种方案中LSF参数均直接采用4级矢量量化,分配比特数分别为7、6、6、6。初始码书为随机码书,训练出的码书在2.4 Kb/s的MELP声码器上进行了测试。
LSF参数的量化精度采用符合人耳听觉特性的谱失真SD进行度量,测试结果如表 3所示[11]。 使用MOS测试合成语音的平均意见得分用来衡量整体合成语音质量,测试结果见表 4。表 5给出了LSF参数4种量化方案的存储量、SD和 MOS均值。
1) MBMSC、MBQ和CMBQ算法的SD小于MSVQ、MOS,大于MSVQ,这是由于清音和浊音的LSF参数分布具有差异性,MBMSC、MBQ和CMBQ算法利用了清音和浊音的LSF参数分布差异特性来训练码书,比较充分地利用码书尺寸来分布码字,提升了码书质量。
2) 与MBMSC算法相比,在存储量相同的前提下,CMBQ算法SD下降了2.5%,MOS得分上升了2.3%,码书下降了21.2%;与MBQ算法相比,存储空间下降了100%,SD仅上升了1.2%,MOS得分仅下降了0.6%;与 MSVQ算法比,SD降低4.9%,MOS得分降低了4.1%。
4 结语本文分析了清音和浊音线谱频率(LSF)参数分布,引入了胞腔均匀度,实验结果表明胞腔均匀度能表征清音和浊音线谱频率(LSF)参数分布的差异特性。
本文提出了基于CE的清浊码书设计算法——CMBQ,实验结果表明,清音和浊音LSF训练矢量数量比为0.36时,训练出的码书质量最优。本文提出的CMBQ算法SD和MOS优于MSVQ算法,码书存储量为MBQ算法的一半;特别是与MBMSC相比,SD下降了2.5%,MOS得分上升了2.3%,码书存储量下降了21.2%,并且可以应用于不传输清浊标志场合;CMBQ算法相比MBQ的增加比特方案SD和MOS 都大致相当,但它却少使用了320个存储单元,在甚低速率语音编码中具有十分重要意义。
[1] | QUWEIDER M K, SALARI E. Efficient classification and codebook design for CVQ[J]. IEE Proceedings-Vision, Image and Signal Processing, 1996, 143 (6) : 344-352. doi: 10.1049/ip-vis:19960779 |
[2] | KIM S J, OH Y H. Spit vector quantization of LSF parameters with minimum of dLSF constraint[J]. IEEE Signal Processing Letters, 1999, 6 (9) : 227-229. doi: 10.1109/97.782066 |
[3] | 李晔, 彭坦, 许明, 等. 带有帧间级间预测的线谱频率参数多级矢量量化技术[J]. 清华大学学报:自然科学版, 2009, 49 (7) : 965-967. ( LI Y, PENG T, XU M, et al. High efficiency MSVQ for prediction linear spectrum frequency parameters with inter-frame and inter-stage prediction[J]. Journal of Tsinghua University (Science and Technology), 2009, 49 (7) : 965-967. ) |
[4] | 李凤莲, 张雪英, 王子中, 等. 码书分类重排矢量量化方法及其应用[J]. 清华大学学报:自然科学版, 2013, 53 (6) : 893-897. ( LI F L, ZHANG X Y, WANG Z Z, et al. Codebook classification rearrangement vector quantization[J]. Journal of Tsinghua University (Science and Technology), 2013, 53 (6) : 893-897. ) |
[5] | MCCREE A, TRUONG K, GEORGE E B, et al. A 2.4 kbit/s MELP coder candidate for the new US federal standard[C]//Proceedings of the 1996 IEEE International Conference on Acoustics, Speech, and Signal Processing. Washington, DC:IEEE Computer Society, 1996, 1:200-203. |
[6] | HAN W J, KIM E K, OH Y H. Multicodebook split vector quantization of LSF parameters[J]. IEEE Signal Processing Letters, 2002, 9 (12) : 418-421. doi: 10.1109/LSP.2002.806057 |
[7] | ZHAO M, TANG K, CUI H. Mode-based quantization of LP parameters for very low bit rate vocoder[C]//Proceedings of the 2002 IEEE International Conference on Communications, Circuits and Systems and West Sino Expositions. Piscataway, NJ:IEEE, 2002:28-31. |
[8] | 徐敬德, 常亮, 计哲, 等. 基于码字特征的多模式多级矢量量化算法[J]. 清华大学学报:自然科学版, 2011, 51 (2) : 172-175. ( XU J D, CHANG L, JI Z, et al. Multi-mode multi-stage vector quantization algorithm based on codeword characteristics[J]. Journal of Tsinghua University (Science and Technology), 2011, 51 (2) : 172-175. ) |
[9] | 魏旋, 党晓妍, 崔慧娟, 等. 基于Gauss混合模型的清浊音解码端恢复算法[J]. 清华大学学报:自然科学版, 2010, 50 (1) : 79-82. ( WEI X, DANG X Y, CUI H J, et al. Voiced/unvoiced classification recovery in GMM speech decoders[J]. Journal of Tsinghua University (Science and Technology), 2010, 50 (1) : 79-82. ) |
[10] | GONZALEZ S, BROOKES M. PEFAC-a pitch estimation algorithm robust to high levels of noise[J]. IEEE/ACM Transactions on Audio, Speech, and Language Processing, 2014, 22 (2) : 518-530. doi: 10.1109/TASLP.2013.2295918 |
[11] | LINDE Y, BUZO A, GRAY R M. An algorithm for vector quantization design[J]. IEEE Transactions on Communications, 1980, 28 (1) : 84-95. doi: 10.1109/TCOM.1980.1094577 |