具体实施方式
图1为本发明语音分级测定方法第一实施例流程图。如图1所示,该语音分级测定方法包括:
步骤11、接收语音信号。
该语音信号可至少包括训练样本语音信号或测试语音信号。当该语音信号为训练样本语音信号时,对应流程为系统的学习训练过程;当该语音信号为测试语音信号时,对应流程为系统的分级测定过程。
步骤12、对接收的语音信号进行语音识别,根据参考文本和参考模型获取状态对齐的语音特征序列。
参考文本和参考模型存储在语音分级测定系统的存储库中,当接收到语音信号后,将接收的语音信号相对于存储库中存储的相应参考文本和参考模型进行时间对准或采用维特比算法进行状态对准,获取该接收的语音信号状态对齐的语音特征序列。
步骤13、根据状态对齐的语音特征序列对参考模型分布参数进行修正,生成该语音信号基于该参考模型的语音模板矢量。
参考模型存储在语音分级测定系统的存储库中,存储库中可存储有多种参考模型。本步骤根据接收语音信号状态对齐的语音特征序列,对存储库中的一个参考模型的分布参数进行修正处理,将语音特征序列转换至高维矢量空间,提取该语音信号基于该参考模型的语音模板矢量。训练样本语音信号和测试语音信号均可采用该方法分别获得训练样本语音信号的语音模板矢量和测试语音信号的语音模板矢量。根据训练样本语音信号的语音模板矢量可建立支持向量机分类判决树。
步骤14、利用支持向量机分类判决树对测试语音信号的语音模板矢量进行分类判决,获得测试语音信号的语音模板矢量映射的分类等级。
发明人在实现本发明过程中发现,语言学习相对于语音识别更为关注语言学习者发音的细节特征,因此,采用语音分类的边界进行建模,相对于语音识别中对语音的概率分布密度进行建模的方法,更能适合语言学习的任务要求。支持向量机(Support Vector Machines,以下简称SVM)是对数据分类的边界进行建模的有效方法。但由于经典SVM是一种静态二元分类器,并不能直接应用于语音信号处理。将SVM应用到语言学习中,还需解决二个关键的问题:
1、由于语音信号是动态时间序列,如何将语音转换至高维矢量空间;
2、语音测定是多分类任务,SVM如何进行高效可靠的语音多类分类。
本实施例将对语言分类边界进行建模的支持向量机引入语言学习应用中,通过对接收的语音信号提取语音特征并生成相应的语音模板矢量,可将 语音信号转换成高维矢量空间;利用支持向量机分类判决树对语音模板矢量进行判决,可进行高效可靠的语音多类分类,有效降低了语音分类判决的复杂度,提高语音分级测定的准确性。
图2为本发明语音分级测定方法第二实施例流程图。如图2所示,该语音分级测定方法包括:
步骤21、接收语音信号。
该语音信号可至少包括训练样本语音信号或测试语音信号。当该语音信号为训练样本语音信号时,对应流程为系统的学习训练过程;当该语音信号为测试语音信号时,对应流程为系统的分级测定过程。
步骤22、根据参考文本对接收的语音信号提取语音特征,并根据参考模型采用维特比算法对该语音信号的语音特征进行维特比状态对齐,获取该语音信号相应的状态对齐的语音特征序列。
上述语音特征的提取通常是基于语音帧。根据语音信号的短时平稳特性,可以把语音信号分成若干帧进行处理,每一帧的长度约为10~30ms,对每一帧提取一次语音特征。分帧可以采用连续分段的方法,但为了体现相邻两帧数据之间的相关性,以及使帧与帧之间平滑过渡,保持其连贯性,一般采用交叠分段的方法,即每一帧的帧尾与下一帧的帧头重叠,通常帧移为帧长的1/2。分别提取出各帧的语音特性,将语音特性进行顺序连接,获得了语音特征序列。
语音特征的提取还需综合考虑存储量的限制和识别性能的要求。如:可以使用梅尔频率倒谱系数(Mel-Frequency Ceptral Coefficients,简称MFCC)。为了减小语音帧的截断效应,降低帧两端的坡度,使语音帧的两端不引起急剧变化而平滑过渡到0,就要让语音帧乘以一个窗函数。由于语音信号在时域上的变化快速而不稳定,所以通常都将它转换到频域上来观察,此时它的频谱会随着时间作缓慢的变化。将加窗后的帧经过快速傅立叶变换(Fast Fourier Transform,简称FFT),求出每帧的频谱参数。再将每帧的频谱参数通过一组N个(N一般为20~30个)三角形带通滤波器所组成的 梅尔频率滤波器,将每个频带的输出取对数,求出每一个输出的对数能量(logenergy)Ek,k=1,2,...N。再将此N个参数进行余弦变换(cosine transform)求出L阶的梅尔倒频谱(Mel-scale cepstrum)参数。
基于动态规划的维特比算法在每个时间点上的各个状态,计算解码状态序列对观察序列的后验概率,保留概率最大的路径,并在每个节点记录下相应的状态信息以便最后反向获取词解码序列。维特比算法在不丧失最优解的条件下,同时解决了连续语音识别中HMM模型状态序列与声学观察序列的非线性时间对准,词边界检测和词的识别,从而使这一算法成为语音识别搜索的基本策略。
步骤23、根据状态对齐的语音特征序列,对该语音特征序列中相应状态的参考模型分布参数进行最大后验概率修正,将修正后该参考模型中所有均值矢量顺序连接,获得该语音信号相对于该特定HMM参考模型的语音模板矢量。
上述参考模型可为隐马尔科夫模型(Hidden Markov Model,以下简称HMM)。HMM是一个离散时域有限状态自动机,是指这一马尔可夫模型的内部状态外界不可见,外界只能看到各个时刻的输出值。对语音识别系统,输出值通常就是从各个帧计算而得的声学特征(如:语音特征)。
由于HMM是语音信号建模的有效方法,本实施例利用HMM结构化表达方法将变长的语音信号转换成高维数的支持向量机样本空间。图3为本发明特定HMM模型下语音模板矢量的计算方法示意图。
假设一段语音信号对应的特定HMM模型为:由N个状态级连组成的无跳变HMM模型,N为大于或等于1的整数,该模型中每个状态的概率分布密度由混合高斯函数表示:
其中ot为语音信号的语音特征,i为状态序数(1≤i≤N),M为第i个状态包含的高斯的总数量(M为大于或等于1的整数),j为高斯的序数(1≤j≤M),N(·)为高斯函数,ωij为混合高斯权重,即第i个状态第j个 高斯的混合高斯权重,μij和∑ij分别为高斯函数参数,即分别为均值矢量和协方差矩阵,μij即第i个状态第j个高斯均值矢量,∑ij即第i个状态第j个高斯协方差矩阵。
利用状态对齐的语音的特征序列对各状态分布进行最大后验概率(Maximun A Posteriori,简称MAP)修正。
举例说明:假设Λ为参考模型的一个分布参数,0(t)为输入的语音数据,该分布参数优化后表示为Λ′。参考模型的分布参数的优化准则如下:
该优化准则可采用最大期望(Expectation-Maximization,简称EM)算法进行迭代求解。
对于由N个状态级连组成的无跳变HMM模型中,每个状态的概率分布密度都是一个连续混合高斯分布模型,模型中的均值矢量μ
ij优化后的均值矢量表示为
优化公式如下:
其中,ot为输入的语音信号的语音特征;γij(t)为高斯分布N(μij,∑ij)相对于ot的占有概率;D为语音模板矢量的维数,为大于或等于1的整数。γij(t)的计算方法如下:
如图3所示,利用状态对齐的语音的特征序列对各状态分布进行最大后验概率(Maximun A Posteriori,简称MAP)修正,将修正后所有均值矢量
(1≤i≤N;1≤j≤M)顺序连接得到该段语音信号基于该特定HMM模型的语音模板矢量。通过上述步骤可实现将动态时间序列的语音信号转换成高维数支持向量机样本空间。
在采用本实施例的方法进行分级测定之前,还包括采用训练样本语音信号对测定系统进行学习训练的过程。在学习训练过程中,训练样本语音信号 可存储在模板中,这些样本语音信号已经经语音专家逐条测价分成不同的等级。训练时,采用上述修正方法分别计算出样本语音信号在该特定HMM模型的语音模板矢量。
步骤24、将求得的样本语音信号的语音模板矢量映射到语音专家对该样本语音信号已测价的类别或等级,任意二个不同的类别数据构造一个二元支持向量机分类器,将构造好的各二元支持向量机分类器以二分树的结构组成支持向量机分类判决树。
采用上述修正方法求得样本语音信号对应的语音模板矢量,将求得的样本语音信号的语音模板矢量映射到语音专家对该样本语音信号已测价的类别或等级。
SVM分类判决树的建立用以解决SVM的多元分类问题。在语言辅助学习中,专家对学习者发音质量的评定通常包括多个等级,采用多级打分的方式区分不同学习者的不同发音质量。可见,语言学习属于一个多元分类的问题。一个实用的语言学习系统对学习者发音测定可能输出多个等级,例如,可包括:优秀、良好、一般、失败等4个等级。对于数据多元分类的问题,经典的支持向量机(以下简称SVM)是一种静态的二元分类器,并不能直接应用到语言学习中。如果采用SVM建模解决多元分类,需对经典的SVM进行改进,已有的改进方法主要有:一对多SVM分类法和一对一的分类法。
其中,一对多SVM分类法为每类数据训练一个SVM分类器,用于区分当前类别数据与其他类别数据。训练时依次把属于其中某一类别的模板标注为正样本,其他剩下的所有样本归为负样本,这样Z(Z为大于或等于1的正整数)个类别的训练模板共可以构造Z个二元SVM分类器。测试时分别对所有的二元SVM分类器计算决策函数值,并选择其中最大值对应的分类作为识别结果。该方法存在的问题是,所需的训练数据多,训练困难,一对多SVM分类器使得分类边界复杂化,从而降低分类的性能。
而一对一SVM分类法只限于区分分属于二个不同类别的数据,即建立二元分类器。这样完成K类识别共需要Z×(Z-1)/2个SVM。识别时,将测试模板在 每一个分类器的判决结果进行投票判决。得票最多的类别作为识别结果。该方法存在的缺陷是:二元分类器的数目随类别数K急剧增加,识别运算量大,算法复杂度高,并且样本空间中存在不可区分空间。
本实施例是基于一对一SVM方法构造二元SVM分类器,对于K个类别,需构造的二元SVM分类器的数量为Z×(Z-1)/2个,每个SVM分类器用于区分分别映射于二类不同等级的数据。SVM分类器的目标是将D维空间内的样点通过D-1维的超平面分成两个不同类别,并且保证两类样点之间的间隔最大。例如,样本语音表示为(xk,yk),其中xk表示训练样本语音信号的语音模板矢量,为D维矢量,D为大于或等于1的整数;k为训练样本语音信号的序号;yk=±1表示训练样本语音的等级类别。寻找分类超平面可表示为:w·x-b=0;(w,b)为SVM分类器的模型参数。
为了保证最大分类间隔,该二元SVM分类器对应的各训练样本语音信号的语音模板矢量的判决公式如下:
该判决公式表示的是:对于属于等级类别yk=+1的数据,各训练样本语音模板矢量需满足:w·xk-b≥+1;对于属于等级类别yk=-1的数据,各训练样本语音模板矢量需满足:w·xk-b≤-1。采用二次规划(QuadraticProgramming,简称QP)算法可以分别求解出上式中的参数(w,b),即获得该二元SVM分类器对应的模型参数。采用上述方法构造好二元SVM分类器后,将这些二元SVM分类器按二分树的结构组织成SVM分类判决树。
步骤25、利用支持向量机分类判决树对测试语音信号对应的语音模板矢量进行分类判决:从支持向量机分类判决树的根节点开始,依次根据判决过程所经节点对应的二元支持向量机分类器,对测试语音信号对应的语音模板矢量进行是/非判决,每次判决排除一个候选等级,直至到达支持向量机分类判决树的叶节点,获得该语音模板矢量映射的分类等级。
图4为本发明采用SVM分类判决树实施例示意图。假设一个语音测定系 统的学习数据库中存储的语音片断,经专家逐条测价划分为4个等级:A、优秀;B、良好;C、一般;D、失败。通过对不同分类数据的学习过程,将相应语音片断在特定HMM模型中的语音模板矢量映射到相应的等级中,这样根据4个等级可以构造6个二元SVM分类器:
“A类数据+B类数据”对应“优秀/良好”二元SVM分类器;
“A类数据+C类数据”对应“优秀/一般”二元SVM分类器;
“A类数据+D类数据”对应“优秀/失败”二元SVM分类器;
“B类数据+C类数据”对应“良好/一般”二元SVM分类器;
“B类数据+D类数据”对应“良好/失败”二元SVM分类器;
“C类数据+D类数据”对应“一般/失败”二元SVM分类器。
根据构造好的6个二元分类器,建立如图4所示的SVM分类判决树。测定时,由SVM分类判决树的根节点开始,至叶结点结束,依次经过其中4个节点对应的二元SVM分类器对测试语音特征序列进行是/非判决,每次判决排除一个候选等级。例如,在根节点进行“优秀/失败”二元SVM分类器的判决时,候选级为“优秀”或“失败”。如果测试语音特征序列相对于该“优秀/失败”二元SVM分类器的打分为正,则排出“失败”的候选级,进入下一节点“优秀/一般”二元分类器进行判决。其中,采用二元SVM分类器进行打分时,可将输入的测试语音的测试语音模板矢量分别代入SVM分类判决树当前节点对应的二个二元SVM分类器的判决公式,获得w·x-b的符号,根据w·x-b符号的正负进行打分。采用该方法依次经过4个二元SVM分类器次判决后,到达SVM分类判决树的叶节点,获得语音测试信号映射的分类等级。
本实施例通过一对一的方式训练二元SVM分类器,分类边界较简单,有利于提高分类性能,训练算法复杂度较低,运算量较小,不存在不可分区间;此外,采用二分树的方法构造SVM分类判决树,并利用SVM分类判决树对测试语音信号对应的语音模板矢量进行判决,能够有效提高语音分级测定的准确性。如果在系统学习训练过程中,提供相应的负模板,本实施例基于语音模板矢量的语音分类技术能够有效区分语音信号的细微差别,这使得本实施 例应用到语言学习系统中具有很大的优势。
本发明语音测定方法与传统语音识别方法测试结果比较中,在区分汉语相似发音“SHI4”和“SI4”的测试实验中,使用传统的语音识别方法(例如:基于HMM模型的对数似然法)时,等错误率为19%;而采用本发明语音测定方法进行测定时,等错误率(Equal Error Rate,简称EER)降低至7%。因此,本发明语音测定方法可有效降低语音分级判决的复杂度,提高语音分级测定的准确性。
图5为本发明语音测定系统第一实施例结构示意图。如图5所示,本实施例语音测定系统包括:模型库51、语音识别模块52、模板矢量生成模块53和判决模块54。
模型库51用于存储参考文本和参考模型。
语音识别模块52用于接收语音信号,对接收的语音信号进行语音识别,根据存储的参考文本和参考模型获取状态对齐的语音特征序列。
模板矢量生成模块53用于根据状态对齐的语音特征序列对参考模型分布参数进行修正,生成该语音信号基于该参考模型的语音模板矢量。
判决模块54用于利用支持向量机分类判决树对接收到语音信号对应的语音模板矢量进行分类判决,获得该语音模板矢量映射的分类等级。
本实施例通过语音识别模块对接收的语音信号提取语音特征并获得状态对齐的语音特征矢量,模板矢量生成模块修正参考模型分布参数并生成相应的语音模板矢量,通过判决模块利用支持向量机分类判决树对语音模板矢量进行判决,有效降低了语音分类判决的复杂度,提高语音分级测定的准确性。
图6为本发明语音测定系统第二实施例结构示意图。如图6所示,本实施例与本发明语音测定系统第一实施例的区别在于,本实施例模板矢量生成模块53进一步包括修正单元531和模板矢量生成单元532,此外本实施例还包括判决树生成模块55,判决树生成模块55进一步包括映射单元551、分类器模型单元552和判决树生成单元553。
修正单元531用于根据状态对齐的语音特征序列,分别对各状态下隐马 尔可夫模型的分布参数进行最大后验概率修正;其中,隐马尔可夫模型即为模型库中存储的其中一种参考模型。
本实施例中接收的语音信号至少包括测试语音信号或训练样本语音信号。判决树生成模块55用于根据训练样本语音信号的语音模板矢量建立支持向量机分类判决树。而判决模块54还用于根据支持向量机分类判决树对测试语音信号的语音模板矢量进行分类判决,获得该语音模板矢量映射的分类等级。
判决树生成模块55中,模板矢量生成单元532用于将修正后的隐马尔可夫参考模型中所有均值矢量顺序连接,获得该语音信号相对于隐马尔可夫模型的语音模板矢量。
映射单元551用于将模板矢量生成单元生成的样本语音信号的语音模板矢量映射到相应类别。
分类器模型单元552用于采用二组不同的类别数据构造一个二元支持向量机分类器,将二元支持向量机分类器存储在模型库51中。
判决树生成单元553用于将构造好的各二元支持向量机分类器以二分树的结构组成支持向量机分类判决树。生成的支持向量机分类判决树可存储在模型库51中。
本实施例通过一对一的方式训练二元SVM分类器,分类边界较简单,有利于提高分类性能,训练算法复杂度较低,运算量较小,不存在不可分区间;此外,采用二分树的方法构造SVM分类判决树,并利用SVM分类判决树对测试语音信号对应的语音模板矢量进行判决,能够有效提高语音分级测定的准确性。如果在系统学习训练过程中,提供相应的负模板,本实施例基于语音模板矢量的语音分类技术能够有效区分语音信号的细微差别,这使得本实施例应用到语言学习系统中具有很大的优势。
本发明语音分级测定系统实施例中可具体运行本发明语音分级测定方法实施例,其具体实现语音分级测定实施例详见本发明语音分级测定方法实施例的记载,不在赘述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解:附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。