基于车联网的语音信号匹配方法与流程

文档序号:11867372阅读:275来源:国知局

本发明涉及语音识别,特别涉及一种基于车联网的语音信号匹配方法。



背景技术:

云计算、大数据、数据挖掘等技术将推动信息服务产业更快更好的发展,其中融合自然语言理解技术的信息服务,将引导人们更加准确、高效地获得所需的信息与服务。语音技术作为最令人期待的人机交互方式,必将逐步成为诸多交互方式中越来越关键的一种。具体到汽车领域,可利用自然语言理解技术定制出高度实用的智能信息服务系统,用更人性化的人机交互方式提供更便捷、准确的信息语音命令和导航,对于驾驶的体验将是前景广阔的提升。然而现有的车载环境语音识别通过对需要较大的离线字典中大量标记训练样本集进行学习进行语义推测,对规则的依赖性比较高,不太灵活,不能够适应车载系统不断变化的需求且精度和准确度较低。



技术实现要素:

为解决上述现有技术所存在的问题,本发明提出了一种基于车联网的语音信号匹配方法,包括:

对训练语料进行学习从而建立分词器,然后对分词进行词类标记和语义推测,在推测过程中首先推测语音命令意向的类型,若意向需要进一步的参数,则在语音命令中解析对应的参数。

优选地,所述对分词进行词类标记,进一步包括:

在词类标记问题中对以下条件概率建模:

p(s1…sm|x1…xm),x1…xm代表了输入的语音命令中的单个词,而s1…sm∈S代表所有可能的词类组合,对于一句由x1…xm构成的语音命令共有km种词类标记组合,k=|S|;建立这km种词类标记结果的概率分布为:

<mrow> <mi>p</mi> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mn>1</mn> </msub> <mo>...</mo> <msub> <mi>s</mi> <mi>m</mi> </msub> <mo>|</mo> <msub> <mi>x</mi> <mn>1</mn> </msub> <mo>...</mo> <msub> <mi>x</mi> <mi>m</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <msubsup> <mi>&Pi;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </msubsup> <mi>p</mi> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>i</mi> </msub> <mo>|</mo> <msub> <mi>s</mi> <mrow> <mi>i</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>,</mo> <msub> <mi>x</mi> <mn>1</mn> </msub> <mo>...</mo> <msub> <mi>x</mi> <mi>m</mi> </msub> <mo>)</mo> </mrow> </mrow>

然后得到:

表示预定义的词集合X与标记集合Y的有限集特征向量,通过s1…sm以及x1…xm的大量训练,获得参数向量w,最终得到p(s1…sm|x1…xm);

在完成训练之后,求取对于输入x1…xm的状态s1…sm,即求解:

<mrow> <msub> <mi>argmax</mi> <mrow> <msub> <mi>s</mi> <mn>1</mn> </msub> <mo>...</mo> <msub> <mi>s</mi> <mi>m</mi> </msub> </mrow> </msub> <mi>p</mi> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mn>1</mn> </msub> <mo>...</mo> <msub> <mi>s</mi> <mi>m</mi> </msub> <mo>|</mo> <msub> <mi>x</mi> <mn>1</mn> </msub> <mo>...</mo> <msub> <mi>x</mi> <mi>m</mi> </msub> <mo>)</mo> </mrow> </mrow>

使用的特征是语音命令分词之后的词或对应的词类,或者是二者的结合;当选择好一系列特征之后,根据训练样本添加特征,调节权值;

在针对语义识别的文本分类问题中,对于给定词集合X与标记集合Y的训练样本(xi,yi),i=l,…,n,n为样本总数,设置以下优化问题:

<mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> <mi> </mi> <msup> <mi>w</mi> <mi>T</mi> </msup> <mi>w</mi> <mo>/</mo> <mn>2</mn> <mo>+</mo> <mi>C</mi> <mo>&lsqb;</mo> <mi>m</mi> <mi>a</mi> <mi>x</mi> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <msub> <mi>y</mi> <mi>i</mi> </msub> <msup> <mi>w</mi> <mi>T</mi> </msup> <msub> <mi>x</mi> <mi>i</mi> </msub> <mo>,</mo> <mn>0</mn> <mo>)</mo> </mrow> <mo>+</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>l</mi> </munderover> <mi>l</mi> <mi>o</mi> <mi>g</mi> <mrow> <mo>(</mo> <mn>1</mn> <mo>+</mo> <msup> <mi>e</mi> <mrow> <mo>-</mo> <msub> <mi>y</mi> <mi>i</mi> </msub> <msup> <mi>w</mi> <mi>T</mi> </msup> <msub> <mi>x</mi> <mi>i</mi> </msub> </mrow> </msup> <mo>)</mo> </mrow> <mo>&rsqb;</mo> </mrow>

测试时,对于点x根据wTx>0给出分类结果。

本发明相比现有技术,具有以下优点:

本发明提出了一种基于车联网的语音信号匹配方法,不需要离线字典中的标记训练样本集,对规则的依赖性小,提高了识别精度,适应车载系统不断更新的需求。

附图说明

图1是根据本发明实施例的基于车联网的语音信号匹配方法的流程图。

具体实施方式

下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。

本发明的一方面提供了一种基于车联网的语音信号匹配方法。图1是根据本发明实施例的基于车联网的语音信号匹配方法流程图。

本发明的车载系统由识别模块、语义推测分类模块组合而成。利用机器学习方法对训练语料进行有效的学习从而建立分词器。利用CRF进行词类标记。然后进行语义推测。对专有名词的分类,便于专有名词的存储与组织和语音命令。

识别模块的识别过程可描述为:读入要识别的语音,经过前端处理后,将得到的观测序列X对所有词条进行匹配,也就是计算条件概率,其中概率最大的模型所对应的词条就是识别结果。要完成上述的识别,必须先完成学习模型训练。

从概率角度估计出待识别特征参数序列所对应的语音基元,该基元包括词、音节、声母、韵母,从而将特征参数序列转换为到识别基元。建立模型的过程包括:

1、随机选择参数初始值,初始化HMM模型λ。

2、将观测序列为每个状态进行切分。切分的结果就是每个状态都对应一个观测帧集合。

3、利用分段K均值算法将属于每个状态的观测值向量集合分成M簇,M为高斯混合度,每一簇用于高斯混合概率密度的一个单高斯参数,之后进行以下参数的估计。

cjk=状态j时处在第k集合的向量数/属于状态j的向量总数

μjk=状态j下处于第k集合的向量样本均值

Ujk=状态j下处于第k集合的向量样本协方差矩阵

根据上述参数获得了一个更新的HMM模型λ’;

4、将模型λ’与初始模型λ进行比较,如果模型差值超过预先设定的门限值,将模型λ替换为λ’并且重复上述步骤2和3;如果差值低于门限值,则确定为模型已收敛,保存该模型。

通过上述迭代以使整个模型训练过程中对参数初始值进行不断校正。

在模型的训练阶段,直接将MFCC特征参数当作观测值,一个MFCC向量就是一个观测值。其次计算组成概率密度函数的参数bj(o):

bj(o)=∑cjmM(o,μjm,Ujm),1<j<N

其中o表示观测值,cjm代表状态j的第m个混合系数,M为椭圆对称密度函数,其由平均值向量μjm和协方差矩阵Ujm

模型训练过程如下:

(1)、将所有的训练特征参数切分到每个状态中。

(2)、将每个状态所拥有的特征参数分给混合高斯模型的单个高斯模型,对模型进行如下修正:

<mrow> <msub> <msup> <mi>C</mi> <mo>,</mo> </msup> <mrow> <mi>j</mi> <mi>k</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>l</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>L</mi> </munderover> <msub> <mi>&gamma;</mi> <mi>t</mi> </msub> <mrow> <mo>(</mo> <mi>j</mi> <mo>,</mo> <mi>k</mi> <mo>)</mo> </mrow> </mrow> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>l</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>L</mi> </munderover> <munderover> <mo>&Sigma;</mo> <mrow> <mi>m</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>M</mi> </munderover> <msub> <mi>&gamma;</mi> <mi>t</mi> </msub> <mrow> <mo>(</mo> <mi>j</mi> <mo>,</mo> <mi>m</mi> <mo>)</mo> </mrow> </mrow> </mfrac> </mrow>

<mrow> <msub> <msup> <mi>&mu;</mi> <mo>,</mo> </msup> <mrow> <mi>j</mi> <mi>k</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>l</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>L</mi> </munderover> <msub> <mi>&gamma;</mi> <mi>t</mi> </msub> <mrow> <mo>(</mo> <mi>j</mi> <mo>,</mo> <mi>k</mi> <mo>)</mo> </mrow> <mi>o</mi> </mrow> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>l</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>L</mi> </munderover> <msub> <mi>&gamma;</mi> <mi>t</mi> </msub> <mrow> <mo>(</mo> <mi>j</mi> <mo>,</mo> <mi>k</mi> <mo>)</mo> </mrow> </mrow> </mfrac> </mrow>

<mrow> <msub> <msup> <mi>U</mi> <mo>,</mo> </msup> <mrow> <mi>j</mi> <mi>k</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>l</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>L</mi> </munderover> <msub> <mi>&gamma;</mi> <mi>t</mi> </msub> <mrow> <mo>(</mo> <mi>j</mi> <mo>,</mo> <mi>k</mi> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <mi>o</mi> <mo>-</mo> <msub> <mi>&mu;</mi> <mrow> <mi>j</mi> <mi>k</mi> </mrow> </msub> <mo>)</mo> </mrow> </mrow> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>l</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>L</mi> </munderover> <msub> <mi>&gamma;</mi> <mi>t</mi> </msub> <mrow> <mo>(</mo> <mi>j</mi> <mo>,</mo> <mi>k</mi> <mo>)</mo> </mrow> </mrow> </mfrac> </mrow>

其中γt(j,k)为L为样本数量;Ct为t时刻比例因子。

(3)、判断是否收敛。若收敛则结束,若不满足,继续迭代。

在对专有名词进行分类中。首先获取数据库的训练样本集与测试集。在对训练样本集进行预处理以及文本表示的基础上对训练样本集进行训练,获得一个分类器。在评估分类器阶段对测试集进行测试。在对训练样本进行预处理之后,得到分词,将每个专有名词转化成由词素组成的向量。利用训练样本统计各个词素的词频与逆向频率,并由此计算每个词素对预先定义的分类的正则化词频与逆向频率之比,将其作为该词d对相应分类i的权值wi(d)。

<mrow> <msub> <mi>w</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>d</mi> <mo>)</mo> </mrow> <mo>=</mo> <mi>log</mi> <mi>N</mi> <mo>/</mo> <msqrt> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <msup> <mi>log</mi> <mn>2</mn> </msup> <mrow> <mo>(</mo> <mi>N</mi> <mo>/</mo> <msub> <mi>n</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>0.1</mn> <mo>)</mo> </mrow> </mrow> </msqrt> </mrow>

其中N为专有名词总数,ni为包含词条i的专有名词数量;在测试的过程中,分别计算待处理的专有名词对各个分类的权值之和,给出最终的分类结果。

<mrow> <mi>n</mi> <mrow> <mo>(</mo> <mi>Z</mi> <mi>Y</mi> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>max</mi> <mrow> <mi>i</mi> <mo>&Element;</mo> <mo>&lsqb;</mo> <mn>1</mn> <mo>,</mo> <mi>M</mi> <mo>&rsqb;</mo> </mrow> </msub> <mrow> <mo>(</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <msub> <mi>w</mi> <mi>i</mi> </msub> <mo>(</mo> <mrow> <msub> <mi>ZY</mi> <mi>j</mi> </msub> </mrow> <mo>)</mo> <mo>)</mo> </mrow> </mrow>

其中ZY为待分类专有名词,M为分类数Zyj即为ZY中第j个词素。

数据库中将每条语音命令设置四项内容,分别是意向、语音命令原文、语音命令的分词信息、语音命令的词类标记信息。生成分词的训练文件、分词的测试文件、词类标记的训练文件、词类标记的测试文件。本发明首先对语音命令进行分词与词类标记。对于重复性错误,将发现的错误添加到程序自定义的词典中批量的进行修改。

在分词之前,把分词的问题转化为序列标记问题。标记词的开头、词的中间、词的结尾以及单个字构成的词,然后使用预设模板定义需要学习的特征,模板文件中每一行代表一个模板,每个模板中的宏[row,col]中的row代表的是相对的行号,而col表示的是绝对的行号。根据模板文件中定义的模板,训练文件根据这些模板生成特征词。

利用分词训练文件进行条件随机场的学习训练,获得一个分词系统。利用词类标记训练文件进行条件随机场的学习训练,获得一个词类标记系统。用分词测试文件进行测试,获取分词的精度。对词类标记测试文件进行测试,获取词类标记系统的精度。

在分词结束之后,需要将分词的结果进行适当的变换以便于后续利用词类标记系统进行词类标记。对于每条语音命令,分词系统输出B1个分词结果。利用训练得到的词类标记系统对文件进行词类标记,每条语音命令可以获得B1个分词结果,这一步对于每个输入有B2个词类标记输出结果,因此每条语音命令最终可获得B1*B2个识别结果,从中筛选出最优的B个识别结果,将数据库中标准的分词与词类标记信息写回。当分词与词类标记结果同时完全一致时,确定识别结果正确。

其中在生成B1个分词结果和B2个词类标记结果中,进一步包括分别将各个分词结果的概率提取出来,保存在数组p1中,词类标记结果的概率提取出来保存在p2数组中。对于每条语音命令的B1*B2个识别结果可以通过p1、p2这两个数组计算其生成概率,计算过程为:

p[i]=p2[i]*p1[i/B2] i=0,1,2,...,B1*B2-1

对这B1*B2个识别结果的生成概率p[i]进行排序,输出概率最高的B个识别结果。

完成了训练学习之后,输出模块输出给定语音命令的分词与词类标记结果。对于输入的语音命令,查找字典,查找语音命令中特殊名词,若找到则将其替换为对应的特殊符号,并写入文件1;与此同时将找到的专有名词用括号标识出来,并写入文件2。将文件1转化为条件随机场分词测试模块的输入格式并写入文件3。对文件3进行分词,将分词的结果保存到文件4中。将分词的结果转化为词类标记系统的输入格式并写入文件5。对于每条语音命令产生的B1个分词结果,将分词结果的概率保存到p1中。对文件5中的语音命令进行词类标记。结果保存到文件6中。对于每条语音命令此时共获得了B1*B2个识别结果,需要输出最好的B个识别结果。最终的B个结果被写入文件7中。将文件7转化为最终指定的输出格式。

本发明中语义理解采用基于统计学习的方法。车载系统中的语义大类包括导航路线、路况、接听与拨打电话、空调调节、天气语音命令、收音机等功能。其中部分语义还需要带上参数:如拨打电话需要知道拨打的具体电话号码。本发明的语义推测问题可以转化为将输入的文本的意向分到预定义的意向类中。首先推测语音命令意向的类型,若意向需要进一步的参数,则在语音命令中解析对应的参数。

在词类标记问题中对以下条件概率建模:

p(s1…sm|x1…xm),对于,x1…xm代表了输入的语音命令中的单个词,而s1…sm∈S代表所有可能的词类组合。对于一句由x1…xm构成的语音命令共有km种词类标记组合。k=|S|。因此建立这km种词类标记结果的概率分布。

<mrow> <mi>p</mi> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mn>1</mn> </msub> <mo>...</mo> <msub> <mi>s</mi> <mi>m</mi> </msub> <mo>|</mo> <msub> <mi>x</mi> <mn>1</mn> </msub> <mo>...</mo> <msub> <mi>x</mi> <mi>m</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <msubsup> <mi>&Pi;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </msubsup> <mi>p</mi> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>i</mi> </msub> <mo>|</mo> <msub> <mi>s</mi> <mrow> <mi>i</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>,</mo> <msub> <mi>x</mi> <mn>1</mn> </msub> <mo>...</mo> <msub> <mi>x</mi> <mi>m</mi> </msub> <mo>)</mo> </mrow> </mrow>

然后得到:

表示预定义的词集合X与标记集合Y的有限集特征向量,通过s1…sm以及x1…xm的大量训练,获得参数向量w,最终得到p(s1…sm|x1…xm)。

在完成训练之后,求取对于输入x1…xm的状态s1…sm,即求解:

<mrow> <msub> <mi>argmax</mi> <mrow> <msub> <mi>s</mi> <mn>1</mn> </msub> <mo>...</mo> <msub> <mi>s</mi> <mi>m</mi> </msub> </mrow> </msub> <mi>p</mi> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mn>1</mn> </msub> <mo>...</mo> <msub> <mi>s</mi> <mi>m</mi> </msub> <mo>|</mo> <msub> <mi>x</mi> <mn>1</mn> </msub> <mo>...</mo> <msub> <mi>x</mi> <mi>m</mi> </msub> <mo>)</mo> </mrow> </mrow>

使用的特征是语音命令分词之后的词也可以是对应的词类,或者是二者的结合。当选择好一系列特征之后,根据训练样本添加特征,调节权值。

在针对语义识别的文本分类问题中,对于给定词集合X与标记集合Y的训练样本(xi,yi),i=l,…,n,n为样本总数,设置以下优化问题:

<mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> <mi> </mi> <msup> <mi>w</mi> <mi>T</mi> </msup> <mi>w</mi> <mo>/</mo> <mn>2</mn> <mo>+</mo> <mi>C</mi> <mo>&lsqb;</mo> <mi>m</mi> <mi>a</mi> <mi>x</mi> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <msub> <mi>y</mi> <mi>i</mi> </msub> <msup> <mi>w</mi> <mi>T</mi> </msup> <msub> <mi>x</mi> <mi>i</mi> </msub> <mo>,</mo> <mn>0</mn> <mo>)</mo> </mrow> <mo>+</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>l</mi> </munderover> <mi>l</mi> <mi>o</mi> <mi>g</mi> <mrow> <mo>(</mo> <mn>1</mn> <mo>+</mo> <msup> <mi>e</mi> <mrow> <mo>-</mo> <msub> <mi>y</mi> <mi>i</mi> </msub> <msup> <mi>w</mi> <mi>T</mi> </msup> <msub> <mi>x</mi> <mi>i</mi> </msub> </mrow> </msup> <mo>)</mo> </mrow> <mo>&rsqb;</mo> </mrow>

测试时,对于点x根据wTx>0给出分类结果。

综上所述,本发明提出了一种基于车联网的语音信号匹配方法,不需要离线字典中的标记训练样本集,对规则的依赖性小,提高了识别精度,适应车载系统不断更新的需求。。

显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。

应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1