一种改进的基于Viterbi的语音切分算法*
2015-03-25李欢欢王金明尹海明徐志军张开礼
李欢欢,王金明,尹海明,徐志军,孔 磊,张开礼
(1.解放军理工大学 通信工程学院,江苏 南京 210007;2.西安通信学院 信息服务系,陕西 西安 710000)
一种改进的基于Viterbi的语音切分算法*
李欢欢1,王金明1,尹海明1,徐志军1,孔 磊2,张开礼1
(1.解放军理工大学 通信工程学院,江苏 南京 210007;2.西安通信学院 信息服务系,陕西 西安 710000)
主要针对文本提示型说话人识别中语音切分高精确度要求的问题,在利用Viterbi算法的语音切分基础上,提出了向后平滑搜索多帧能量极小值的语音切分方法。该算法首先对0~9的每个数字建立模型,然后利用Viterbi算法对随机数字串进行切分得到初始切分点,最后利用搜索多帧能量极小值的方法更新原始切分点。实验表明,相比于传统的切分算法,在误差范围小于20 ms之内,改进算法的切分准确率由82.1%提高到88%。
语音切分;Viterbi;多帧能量极小值
0 引 言
在文本提示型的说话人识别系统中,为防止冒认者攻击,系统采用0~9的随机数字作为密码,在用户读入该序列语音后,需判断用户是否读入正确的密码,因此需对连续语音进行精确切分,从而判断每个切分单元的内容。而在实际应用中,由于每个人的发音方式不同,很可能会出现两个字之间几乎无停顿的情况(以下称为有连读)。
传统的语音切分算法[1]通常只根据帧幅度、帧能量或短时过零率等筛选出有声帧用于训练和识别,对语音切分的精确度并没有太高的要求。目前主流的语音切分算法主要是以音节、音素以及声韵母模型[2]作为基本单元对连续语音进行切分,并在此基础上进行改进,如文献[3]将各种基元声学模型复合并进行了对比,一方面在识别过程中同时使用两种模型,另一方面在识别过程中避开造成低识别率的模型,实验表明,声韵母模型的识别性能高于音素模型;文献[4]采用了新的特征提取方法,其切分准确度比利用传统的MFCC得到很大提升;文献[5]利用边界规整和系统融合的方法使语音切分的准确度得到很大提升。然而,上述语音切分方法更适合用于大词汇量的语音切分,对于本文中小词汇量的语音切分,将声韵母模型作为基元的切分会增加算法的复杂度。
本文将0~9中的每个数字作为基元模型[6],采用改进的基于Viterbi的语音切分算法,即在Viterbi切分语音的基础上增加了向后平滑搜索多帧能量极小值的方法,既降低了算法复杂度,又使得切分结果更加准确。
1 传统的语音切分算法
语音信号是一种非平稳的时变信号,其产生过程与发声器官的运动密切相关。在5~50 ms的范围内,语音频谱特性和物理特征参数基本保持不变。因此,对语音信号进行短时处理也可有效地反映语音信息。传统语音切分常用的参数有帧幅度M、帧能量E、帧过零率Z等,其公式如下:
(1)
(2)
(3)
式中,En、Mn和Zn分别是第n帧的能量、幅度和过零率。L为一帧语音中采样点数目,Sl为第l个采样点值。
传统的语音切分方法利用帧幅度的上限阈值MH、下限阈值ML和短时过零率下限ZL对连续语音切分,如图1所示,N1为语音起始帧,N5为语音终止帧。
图1 传统的语音切分方法示意
其中,阈值计算方法有很多种,如基于统计均值的、基于帧幅度统计阈值的、基于帧参数归一化和基于帧信噪比统计阈值的方法等,最基本的是用统计均值的方法得到。但传统的语音切分算法不能适应声音能量的变化,尤其在阈值选取不准确的情况下,容易出现误切,如MH定得过高可能会将能量较低的语音切掉或者当语音存在噪声时会将噪声误认为语音而切进来。
2 改进的基于Viterbi语音切分算法
基于统计的HMM(Hidden Markov Model)[7-8]算法是目前最为成功的一种语音识别模型和算法。由于语音信号的时序性特点,故在语音信号处理中通常采用从左至右的HMM模型来描述其中状态的变化。在切分数字串语音之前,首先利用大量说话人的语音对每个数字建立HMM模型,然后根据该数字串和每个数字的单个HMM模型建立一个复合HMM模型,最后利用Viterbi算法对随机数字串语音进行切分。
2.1 Viterbi算法
求取Q*的一般过程为:
初始化:
δ1(i)=πibi(o1),1≤i≤N
(4)
φ1(i)=0,1≤i≤N
(5)
递归:
(6)
(7)
结束:
(8)
(9)
回溯,求得Q*
(10)
通过以上4步就可以求出一组观察值的最佳状态序列,而观察值所属的状态总数和HMM模型的状态数是一样的。上述所说的模型需要经过大量语音数据训练得到,训练方法采用Baum-Welch算法[9]。
2.2 Viterbi语音切分算法及其改进
采用基于Viterbi语音切分的方法可以有效地应用于文本提示型说话人识别系统,但由于前一个字尾音和后一个字气流音的影响,可能会导致切分不准确,从而影响系统在判断文本内容时的准确性。本文在基于Viterbi切分方法的基础上提出向后平滑搜索多帧能量极小值的方法,以进一步提高语音切分的准确度。
本文主要讨论用于文本提示型的话者认证系统的语音切分算法,需要切分的是随机数字串。首先分别为0~9的每个数字训练单个HMM模型,然后根据密码中数字串的顺序建立复合HMM模型,作为利用Viterbi算法进行语音切分时的参考模型。在输入一段包含随机密码的语音后,对该段语音分帧并进行特征参数提取,将提取出的特征参数与复合HMM模型作比较,最后得到特征序列所对应的最佳状态序列,从而确定每个字所包含的特征区域。由于密码中随机数字个数已知,每个数字一般由6~8个状态数组成,进而得知复合HMM的混合状态数。在划分单个字的特征区域时,根据每帧所属的状态将每个字所包含的特征区域划分开。假设每个数字由6个状态数组成,密码由3个数字组成,其切分过程如图2所示。
图2 基于Viterbi的语音切分算法示意
由以上描述可知,由于每个数字都有其对应的状态数,因此无论语音是否连读以及声音能量变化是否很大,Viterbi算法均可将连续语音切分开。本文在Viterbi算法的基础上进行了改进,该方法的主要原理是通过Viterbi切分得到相邻字间的切分点,然后在相邻切分点中以若干帧为单位求多帧能量和,寻找多帧能量极小值点,并将其作为新的切分点。改进的语音切分算法具体步骤如下:
(1)利用大量语音训练得到每个数字的HMM模型;
(2)通过Viterbi算法将输入语音特征与已训练好的模型相比对,得到一个最佳输出状态序列,已知每个数字所包含的状态数,从而得到语音中每相邻两字的切分点并存储起来,记为N;
(3)将语音分帧,根据式(1)求得帧能量,其中,帧长与帧移应与第(2)步中计算特征时保持一致;
(4)依次选取第(2)步中相邻的两个切分点Ni-1和Ni,并分别作为区间的起始点与终止点。在每个区间内,每十帧的能量相加,并向后移动一帧进行搜索,找出第一个帧能量和开始增大的点,并将此点作为新的切分点Mi。若在此区间内多帧能量和一直减小,则将新的切分点设为该区间的起始点;
(5)重复上述步骤,直到将利用Viterbi得到的原切分点取完。
3 实验分析
3.1 仿真图分析
本文所研究的语音切分算法需要对随机数字串进行精确切分,即使用户语速较快出现相邻两字间隔很小的情况下,也要将每个字的特征精确划分出来。该实验仿真的前提是输入语音相同,且分为有连读和无连读两种,密码均为“6-3-4-9-8-3-5-2”,通过仿真对比分析文中所提各种方法的切分效果。
图3、图4、图5均为语音无连读情况下的切分效果图,图6、图7、图8均为语音有连读情况下的切分效果图。对比前后两组图可以看出,3种切分算法对于无连读的连续语音切分效果相对于有连读的切分效果较好。
图3、图6为传统的语音切分算法切分结果,图3是用户逐字读出密码后的切分图,图6是用户将“3-5”连读后的切分图。两图相比较,很明显图6中的连读数字没有切分开(即连读的“3-5”部分),可以看出传统的切分方法对于逐字读出密码的切分效果更好,却不能切分连读的数字,尤其是连读两个重复的数字时(读重复数字时语音的音高、音调等没有发生转变)。
图3 传统的基于帧幅度阈值的语音切分(无连读)
图4 基于Viterbi算法的语音切分(无连读)
图5 改进的基于Viterbi算法的语音切分(无连读)
图4和图7分别为基于Viterbi的语音切分算法切分无连读和有连读连续语音的效果图。该方法能够将连读的数字切分开,但其仍存在切分不准确的情况,如图7所示,这样很容易导致属于前一个字的特征序列被划分为第二个字的特征区域,从而混淆第二个字整体的语音特征,使得在最后判断数字内容时出现差错。
图5和图8是本文提出的改进的算法切分效果图,对于无连读的语音,其切分结果已比较准确,如图5所示。由图8可以看出,改进的算法能将连读的连续语音切分开,且相对于图7所用的切分方法,改进的算法切分得更加准确。
图6 传统的基于帧幅度阈值的语音切分(有连读)
图7 基于Viterbi算法的语音切分(有连读)
图8 改进的基于Viterbi算法的语音切分(有连读)
3.2 实验数据分析
实验中,通常定义语音切分的切分误差为人工标注的切分点与自动切分的切分点之间的距离。设人工标注的切分位置为T,而自动切分系统的切分位置为t,则切分误差为:ε=|T-t|。在比较不同的切分方法性能时,可以从切分的平均误差和切分误差小于一定门限(比较典型的门限可以取20 ms、40 ms、60 ms等)的切分点所占的比例进行分析。
本实验采用的语音材料为安静环境下录制的干净语音,采样频率为8 kHz,采样精度为16 bit。训练语音是数字0~9每个数字100遍的语音,其中男女声各50遍,用来训练单个字的HMM模型以及切分语音,每个数字包含8个状态,每个状态由4个高斯混合模型组成。测试数据是由一个人随机读取的10段语音,在误差范围为20 ms内,其切分准确率如表1所示。
表1 3种方法的准确率对比
由表1可以看出,使用改进算法切分连续语音的准确率相比于传统切分算法提升了7.9%。
4 结 语
本文针对文本提示型说话人识别系统对语音切分高精确度要求的问题,在Viterbi切分语音的基础上增加了向后平滑搜索多帧能量极小值的方法,一定程度上弥补了Viterbi切分算法的不足。在误差范围小于20 ms之内,相比于传统切分算法和Viterbi切分算法,改进算法的切分准确率得到很大的提升。另外,在训练HMM模型时,训练数据量大小、状态数以及高斯混合数的选择也同样影响其切分准确率。
[1] 何致远,胡起秀,徐光祐.说话人识别中语音切分算法的研究[J].计算机工程与应用,2003(06):55-58. HE Zhi-yuan, HU Qi-xiu, XU Guang-you. Research on Speech Segmentation Algorithm in Speaker Recognition[J]. Computer Engineering and Applications. 2003(06):55-58.
[2] 梁维谦,原道德,丁玉国.大词表孤立词语音识别的快速搜索算法[J].清华大学学报,2011,51(01):101-104. LIANG Wei-qian, YUAN Dao-de, DING Yu-guo. Fast Search Algorithm for Large Vocabulary Isolated-Word Speech Recognition[J]. Tsinghua Univ(Sci & Tech), 2011, 51(01): 101-104.
[3] 张辉,杜利民.汉语连续语音识别中不同基元声学模型的复合[J].电子与信息学报,2006,28(11):2045-2049.
ZHANG Hui, DU Li-min. Combination of Acoustic Models Trained from Different Unit Sets for Chinese Continuous Speech Recognition[J]. Journal of Electronics & Information Technology.2006,28(11):2045-2049.
[4] Tryfou G, Pellin M, Omologo M. Time-Frequency Reassigned Cepstral Coefficients for Phone-Level Speech Segmentation[C].2014 Proceedings of the 22nd European Signal Processing Conference.2014:2060-2064.
[5] Stolcke A, Ryant N, Mitra V, YUAN Jia-hong.Highly Accurate Phonetic Segmentation Using Boundary Correction Models and System Fusion[C].2014 IEEE International Conference on Acoustics, Speech and Signal Processing.2014:5552-5556.
[6] 吕伟辰,洪青阳,王胜等.基于Viterbi-GMM的文本提示型说话人识别系统[C].第十二届全国人机语音通讯学术会议,2013. LV Wei-chen, HONG Qing-yang, WANG Sheng,et al. Text-Prompted Speaker Recognition System based on Viterbi-GMM[C].NCMMSC′2013.
[7] Iosif Mporas, Alexandros Lazaridis, Todor Ganchev, Nikos Fakotakis. Using Hybrid HMM-based Speech Segmentation to Improve Synthetic Speech Quality[C]. In Proceedings of the 13th Pan-Hellenic Conference on Informatics, PCI 2009:118-122.
[8] 胡克,康世胤,郝军.中文HMM参数化语音合成系统构建[J].通信技术,2012,45(08):101-103,108. HU Ke, KANG Shi-yin, HAO Jun. HMM-based Mandarin Speech Synthesis System[J].Communications Technology. 2012,45(08):101-103,108.
[9] Sainath, Tara N, Kanevsky, Dimitri, et,al. Broad Phonetic Class Recognition in a Hidden Markov Model Frame Work Using Extended Baum Welch Transformations[C]. 2007 IEEE Workshop on Automatic Speech Recognition and Understanding, 2007:pp.305-311.
An Improved Speech Segmentation Algorithm based on Viterbi
LI Huan-huan1, WANG Jin-ming1, YIN Hai-ming1, XU Zhi-jun1, KONG Lei2, ZHANG Kai-li1
(1.College of Communication Engineering, PLA University of Science & Technology,Nanjing Jiangsu 210007,China; 2. Department of Information Service in Xi′an Communication Institute,Xi′an Shaanxi 710000,China)
An improved algorithm for speech segmentation is proposed to improve the segmentation accuracy in text-prompted speaker recognition. This method, based on Viterbi algorithm, implements speech segmentation by backward smooth searching of minimum frame energy. Firstly, the models for numbers from 0 to 9 are trained individually, then the segmentation points are acquired by using Viterbi algorithm to segment a series of random numbers, and finally the segmentation points are updated by smooth searching of minimum frame energy. Experimental results show that this proposed algorithm could achieve an improvement of from 82.1% to 88% in segmentation accuracy within the error range of 20ms, as compared with the traditional algorithm.
speech segmentation; Viterbi; minimum frame energy
2015-04-05;
2015-07-27 Received date:2015-04-05;Revised date:2015-07-27
中兴通讯产学研合作研究项目(No.CON1307160001)
Foundation Item:Industry-University-Research Cooperation Projects of ZTE(No.CON1307160001)
TN912
A
1002-0802(2015)09-1027-05
李欢欢(1990—),女,硕士研究生,主要研究方向为文本相关的说话人识别;
王金明(1972—),男,博士,副教授,主要研究方向为声纹识别,通信辐射源识别;
尹海明(1990—),男,硕士研究生,主要研究方向为声纹识别;
徐志军(1963—),男,博士,教授,主要研究方向为EDA与ASIC设计,智能仪器与自动测试技术;
孔 磊(1988—),男,助教,主要研究方向为声纹识别;
张开礼(1989—),男,硕士研究生,主要研究方向为电路与系统设计。
10.3969/j.issn.1002-0802.2015.09.010