发明内容
有鉴于此,本发明的主要目的在于提供一种自动语音识别方法和系统,以提高对生僻词语的语音的识别准确率。
本发明的一种技术方案是这样实现的:
一种自动语音识别方法,包括:
对生语料进行语料分类计算,得到一个以上不同类别的分类语料;
针对所述每个分类语料进行语言模型训练计算,得到一个以上对应的分类语言模型;
依据分类的生僻程度为所述各个分类语言模型进行加权插值处理,其中各分类的生僻程度与该分类对应的加权值成正相关关系,将加权插值处理后的分类语言模型合并,得到插值语言模型;
依据声学模型和所述插值语言模型构建解码资源;
依据所述解码资源,对输入的语音进行解码,输出概率值最高的字符串作为所述输入语音的识别结果。
一种自动语音识别系统,包括:
分类处理模块,用于对生语料进行语料分类计算,得到一个以上不同类别的分类语料;
分类语言模型训练模块,用于针对所述每个分类语料进行语言模型训练计算,得到一个以上对应的分类语言模型;
加权合并模块,用于依据分类的生僻程度为所述各个分类语言模型进行加权插值处理,其中各分类的生僻程度与该分类对应的加权值成正相关关系,将加权插值处理后的分类语言模型合并,得到插值语言模型;
资源构建模块,用于依据声学模型和所述插值语言模型构建解码资源;
解码器,用于依据所述解码资源,对输入的语音进行解码,输出概率值最高的字符串作为所述输入语音的识别结果。
与现有技术相比,本发明的上述技术方案对生语料进行语料分类计算和训练,得到一个以上对应的分类语言模型,从而使得生僻词语可以被分类到某一个或某几个分类语言模板中,然后依据分类的生僻程度为所述各个分类语言模型进行加权插值处理,其中各分类的生僻程度与该分类对应的加权值成正相关关系,即生僻程度越高,则对应的加权值越高,将加权插值处理后的分类语言模型合并,得到插值语言模型。这样在插值语言模板中,生僻词语所对应的字符串的概率值就会相应提高,从而减少与常用词语对应字符串的概率值的差距,后续解码过程中,当需要识别用户说出的较为生僻的词语的时候,由于生僻词语对应的字符串的概率值显著提高,因此会降低发生数据偏移的几率,提高了对于生僻词语的语音的识别准确率。
本发明的再一种技术方案是这样实现的:
一种自动语音识别方法,包括:
根据生语料进行语言模型训练计算,得到主语言模型;
对生语料进行语料分类计算,得到一个以上不同类别的分类语料;
针对所述每个分类语料进行语言模型训练计算,得到一个以上对应的分类语言模型;
依据声学模型和所述主语言模型构建主解码资源,依据所述各分类语言模型构建对应的分类解码资源;
依据所述主解码资源对输入的语音进行解码,输出概率值l(w)排在前n名的n个字符串;
依次根据所述各个分类语言模型对应的各分类解码资源,分别对所述n个字符串进行解码,得到每个字符串在每个分类语言模型中的概率值n(w);将每个字符串在每个分类语言模型中的概率值n(w)乘以该字符串在主语言模型中的概率值l(w)得到复合概率p(w),输出复合概率p(w)最高的字符串作为所述输入语音的识别结果。
一种自动语音识别系统,包括:
主语言模型训练模块,用于根据生语料进行语言模型训练计算,得到主语言模型;
分类处理模块,用于对生语料进行语料分类计算,得到一个以上不同类别的分类语料;
分类语言模型训练模块,用于针对所述每个分类语料进行语言模型训练计算,得到一个以上对应的分类语言模型;
主资源构建模块,用于依据声学模型和所述主语言模型构建主解码资源;
分类资源构建模块,用于依据所述各分类语言模型构建对应的分类解码资源;
第一解码器,用于依据所述主解码资源对输入的语音进行解码,输出概率值l(w)排在前n名的n个字符串;
第二解码器,用于依次根据所述各个分类语言模型对应的各分类解码资源,分别对所述n个字符串进行解码,得到每个字符串在每个分类语言模型中的概率值n(w);将每个字符串在每个分类语言模型中的概率值n(w)乘以该字符串在主语言模型中的概率值l(w)得到复合概率p(w),输出复合概率p(w)最高的字符串作为所述输入语音的识别结果。
与现有技术相比,本发明的上述方案对生语料进行语料分类计算和训练,得到一个以上对应的分类语言模型,从而使得生僻词语可以被分类到某一个或某几个分类语言模型中,而生僻词语在其所属的最相关的分类语言模型中的概率值n(w)是较高的;在对输入语音进行解码时,先利用主语言模型所构建的主解码资源进行一次解码,输出的概率值l(w)排在前n的n个字符串,生僻词语对应的字符串虽然在主语言模型中的概率值l(w)往往不是最高的,但是通常能够排在前n名;接下来,再对该n个字符串分别根据每个分类语言模型对应的分类解码资源进行二次解码,得到每个字符串在每个分类语言模型中的概率值n(w);将每个字符串在每个分类语言模型中的概率值n(w)乘以该字符串在主语言模型中的概率值l(w)得到复合概率p(w),该复合概率p(w)可以修正生僻词语的过低概率值l(w),因此按照该复合概率p(w)的高低输出的字符串作为所述输入语音的识别结果,可以降低生僻词语的语音发生数据偏移的几率,提高了对于生僻词语的语音的识别准确率。
由于本发明的技术方案没有对原始的生语料提出特殊要求,以生僻词出现频率较少的生语料为基础进行训练即可达到本发明的发明目的,因此能够在不影响普通用户日常使用的情况下,满足了某些特殊用户对生僻词语的语音识别需求。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明
图2为本发明所述自动语音识别方法的一种处理流程图。参见图2,该流程包括:
步骤201、对生语料进行语料分类计算,得到一个以上不同类别的分类语料。例如,所述分类语料可以分为人名类、地名类、计算机术语类、医药术语类等等。例如“板蓝根”属于医药术语类的词。一个词也有可能属于多个分类。
步骤202、针对所述每个分类语料进行语言模型训练计算,得到一个以上对应的分类语言模型。
步骤203、依据分类的生僻程度为所述各个分类语言模型进行加权插值处理,其中各分类的生僻程度与该分类对应的加权值成正相关关系,即生僻程度越高,则对应的加权值越高,并将加权插值处理后的分类语言模型合并,得到插值语言模型。这样在插值语言模板中,生僻词语所对应的字符串的概率值就会相应提高,从而减少与常用词语对应字符串的概率值的差距,提高生僻词的语音被识别的几率。
步骤204、依据声学模型和所述插值语言模型构建解码资源。此处假设声学模型已经训练好,本发明可以直接利用现有的声学模型。另外,本领域技术人员知道,在构建解码资源的过程中,还需要词典的参与,来构建解码资源。
步骤205、依据所述解码资源,对输入的语音进行解码,输出概率值最高的字符串作为所述输入语音的识别结果。
图3为本发明所述自动语音识别方法的又一种处理流程图。参见图3,该流程包括:
步骤301、根据生语料进行语言模型训练计算,得到主语言模型。此处的语言模型训练为现有的常规语言模型训练。
步骤302、对生语料进行语料分类计算,得到一个以上不同类别的分类语料。
步骤303、针对所述每个分类语料进行语言模型训练计算,得到一个以上对应的分类语言模型。
步骤304~305、依据声学模型和所述主语言模型构建主解码资源,依据所述各分类语言模型构建对应的分类解码资源。所述主解码资源用于在第一次解码时使用,所述分类解码资源用于在第二次解码时使用。
步骤306、依据所述主解码资源对输入的语音进行解码,即第一次解码,输出概率值l(w)排在前n名的n个字符串。所述概率值l(w)为语音对应的字符串在主语言模型中的概率值。
步骤307、依次根据所述各个分类语言模型对应的各分类解码资源,分别对所述n个字符串进行解码,得到每个字符串在每个分类语言模型中的概率值n(w)。假设此处有m个分类语言模型,则会得到n×m个概率值n(w)。然后,将每个字符串在每个分类语言模型中的概率值n(w)乘以该字符串在主语言模型中的概率值l(w)得到n×m个复合概率p(w),输出复合概率p(w)最高的字符串作为所述输入语音的识别结果。
在所述步骤201和步骤302中,所述对生语料进行语料分类计算,得到一个以上不同类别的分类语料的具体方法如图4所示,具体包括:
步骤401、根据生语料,计算词与词之间的亲和度矩阵。
所述生语料是一种训练文本。本发明通过建立词的亲和度矩阵(也称为词共现矩阵)来描述词之间的语义关系。在人的认知层面上,一个词总是与其它词有关联,而不是孤立存在的。这种关联用一种激活效应可以表示,例如,听到“医生”这个词,马上会联想到“患者”或者“护士”;听到“猫”这个词,立刻会联想到“狗”;听到“男孩”,反应出“女孩”;“喝”联想到“水”。
因此在该步骤401中,首先要计算每个词与另一个词的词共现度。具体包括:
对生语料进行分析,根据公式计算每个词与另一个词的词共现度,并据此构建词与词的词共现矩阵;其中,所述fij为词i在词j前出现的次数,dij为词i和词j的平均距离,fi为词i的词频,fj为词j的词频。
根据所述词共现矩阵,以及公式Aij=sqrt(ΣOR(wafik,wafjk)ΣOR(wafki,wafkj)),计算词与词之间的亲和度,并据此构建词与词之间的亲和度矩阵。
所述的亲和度,被定义为两个词入链与入链的重叠部分、出链与出链的重叠部分的几何平均值。显然词亲和度矩阵是一个对称矩阵,即无向的网络。按亲和度大小排序,排在前面的词基本都是同义、近义或非常相关的词。在亲和度网络中,两结点间的边的亲和度越强,说明他们越相关;如果强度很弱甚至两结点不存在边,则表明它们几乎不相关。通过计算Aij,可以构建一个词与词之间的协方差矩阵,该协方差矩阵就是亲和度矩阵,该亲和度矩阵中,由于是按亲和度排序,对于亲和度很小的部分可以忽略,因此该亲和度矩阵的维度相比原始的生语料的词特征向量的维度会小很多。
步骤402、利用词频-逆向文件频率(TF-IDF,termfrequency–inversedocumentfrequency)方法从生语料中提取词特征。
本发明文本分类中主要应用的模型是文本的向量空间模型(VSM,VectorSpaceModel)。向量空间模型的基本思想是以文本的特征向量<W1,W2,W3,…,Wn>来表示文本,其中Wi为第i个特征项的权重。因此基于向量空间模型的分类中关键一步就是如何从文本中提取反映类别的有效特征。在本步骤402中,本发明采用TF-IDF方法从生语料中提取词特征,用TF-IDF特征来表示w的权重。
在一份给定的文件里,词频(TF,termfrequency)指的是某一个给定的词语在该文件中出现的次数。这个数字通常会被归一化,以防止它偏向长的文件。同一个词语在长文件里可能会比短文件有更高的词频,而不管该词语重要与否。逆向文件频率(IDF,inversedocumentfrequency)是一个词语普遍重要性的度量。某一特定词语的IDF,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取对数得到。某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向于保留文档中较为特别的词语,过滤常用词。因此通过这种TF-IDF的方式,可以从生语料中提取出较生僻的词语的词特征。
步骤403、根据所述亲和度矩阵,利用降维方法对所提取出的词特征进行降维处理。
在本步骤403中,所述降维方法可以有多种。但是在一种优选实施方式中,可以采用主成分分析(PCA,PrincipalComponentsAnalysis)降维方法来实现。由于在步骤402中所提取出的词特征向量的维度较高,例如此处假设为N维,而步骤401所述的亲和度矩阵的维度较少,例如此处假设为M维,N远大于M。那么经过降维处理后,所述N维的词特征向量的维度则被降为M维。即通过降维处理,可以降低噪声数据的影响,降低时间复杂度和空间复杂度等,可以将那些亲和度小的词与词的组合过滤掉。
步骤404、将降维处理后的词特征输入分类器进行训练,输出一个以上不同类别的分类语料。
分类器是一种计算机程序,可以自动将输入的数据分到已知的类别。本步骤404中,所述分类器可以采用现有的某种分类器。例如在一种优选实施方式中,所述分类器为支持向量机(SVM,SupportVectorMachine)分类器。经过测试,本发明在20个类的分类效果能够达到92%的准确率。
当然,除了图4所述的对生语料进行语料分类计算的方法,本发明还可以采用其它现有的语料分类计算方法对生语料进行分类。但是,图4所述的方法的准确率更高,速度更快。
与上述方法相对应,本发明还公开了语音识别系统,用于执行上述的方法。
图5为本发明所述一种语音识别系统的一种组成示意图。参见图5,该系统包括:
分类处理模块501,用于对生语料进行语料分类计算,得到一个以上不同类别的分类语料。
分类语言模型训练模块502,用于针对所述每个分类语料进行语言模型训练计算,得到一个以上对应的分类语言模型;
加权合并模块503,用于依据分类的生僻程度为所述各个分类语言模型进行加权插值处理,其中各分类的生僻程度与该分类对应的加权值成正相关关系,即生僻程度越高,则对应的加权值越高,将加权插值处理后的分类语言模型合并,得到插值语言模型。
资源构建模块504,用于依据声学模型和所述插值语言模型构建解码资源。
解码器505,用于依据所述解码资源,对输入的语音进行解码,输出概率值最高的字符串作为所述输入语音的识别结果。
图6为本发明所述又一种语音识别系统的一种组成示意图。参见图6,该系统包括:
主语言模型训练模块601,用于根据生语料进行语言模型训练计算,得到主语言模型。此处的语言模型训练为现有的常规语言模型训练。
分类处理模块602,用于对生语料进行语料分类计算,得到一个以上不同类别的分类语料。
分类语言模型训练模块603,用于针对所述每个分类语料进行语言模型训练计算,得到一个以上对应的分类语言模型。
主资源构建模块604,用于依据声学模型和所述主语言模型构建主解码资源。
分类资源构建模块605,用于依据所述各分类语言模型构建对应的分类解码资源。
第一解码器606,用于依据所述主解码资源对输入的语音进行解码,输出概率值l(w)排在前n名的n个字符串;
第二解码器607,用于依次根据所述各个分类语言模型对应的各分类解码资源,分别对所述n个字符串进行解码,得到每个字符串在每个分类语言模型中的概率值n(w);将每个字符串在每个分类语言模型中的概率值n(w)乘以该字符串在主语言模型中的概率值l(w)得到复合概率p(w),输出复合概率p(w)最高的字符串作为所述输入语音的识别结果。
图7为所述图5和图6中所述的分类处理模块的一种组成示意图。参见图7,所述分类处理模块具体包括:
亲和度矩阵模块701,用于根据生语料,计算词与词之间的亲和度矩阵。具体的计算方法请参考上述步骤401至步骤404。
特征提取模块702,用于利用TF-IDF方法从生语料中提取词特征。
降维模块703,用于根据所述亲和度矩阵,利用降维方法对所提取出的词特征进行降维处理。在一种优选实施方式中,所述降维模块为PCA降维模块。
分类器704,用于对降维处理后的词特征进行训练,输出一个以上不同类别的分类语料。在一种优选实施方式中,所述分类器为SVM分类器。
本发明所述的语音识别方法和系统可以应用在垂直领域的语音识别、语音关键字的识别,以及语音问答系统等技术领域中。而且可以支持多平台,包括嵌入式平台和PC平台。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。