中国人名、地名和单位名的语音识别方法
中国人名、地名和单位名的语音识别方法涉及在各种数字装置和平台中中国人名、地名和单位名输入等各种应用,属自动语音识别领域,其特征是采用通用汉语语音模型以及以字和词为单位的三元概率模型构成专用语音识别系统进行无词汇限制、无说话人限制的语音输入。针对中国人名和地名识别混淆度大的特点,本发明提出了一个多个候选字和候选人名的算法;针对某些应用其人名或地名是有限的具体条件,提出了一种基于半音节或混淆度为基础的整体模糊匹配方法,使系统识别率进一步得到提高。
传统上,一般采用整词建模方法进行人名或地名的识别。这种方法是为每一个可能的词条建立语音样板,如图1所示。当添入一个新词时就需要朗读该词几遍,然后为该词建立一个声学模型或模板作为匹配参考(即整词建模),在识别时将待识别的语音信号与词表中的各个模板进行对比,找出最相近的那一个,即为识别结果。通常这种建模方式是在特定人条件下进行,即在识别和训练中均只能是同一个讲话人。几乎当前所有的手持式装置都采用该方法进行人名的识别,例如当前手机中普遍具有的语音拨号功能就是典型的例子。从图1可以看出,传统方法词表就是模型(板)库,加一个新词就要对每一词朗读一到三遍,建立模板或模型,识别时进行摸板和模型的一一匹配。这本身限制了它的应用范围,对于词典以外的人名地名就无能为力。这是因为在建立模型时,就是针对这些词条的,对于集外词,根本没有模板,当然不可能正确识别。这种方法的另一个缺点是在大规模词表的条件下,模型增多,用户的训练量也大量增加,系统在识别和存储等方面的资源开销也急增,因而不太可能在对资源要求比较严格的手持式或掌上电脑中进行。例如如果一个模型需要占用10K空间,匹配需要0.01秒时间,则100个词就需要占用1M空间,匹配需要1秒,其存储量及计算量都随词汇量线形增长。
本发明的目的在于构造一种灵活的中国人名、地名以及单位名识别模式,使得既具有通用性,即能识别无词汇限制、无说话人限制的专用识别器;又具有灵活性,即能充分利用应用所包含的一些词汇约束来提高识别精度。以上通用性和专用性在很多应用中都是必须的,例如在进行电子名片输入时,这时其即要求没有词汇限制的语音输入,而一旦进行名片查询时,其词汇又是固定和封闭的。
本发明的技术要点如图2所示,其特征在于利用大词汇量连续语音识别技术,建立通用的统计声学模型和专用的统计语言模型,并在识别器中采用相应的搜索算法进行最优搜索;最优搜索的结果为识别字符串;如为无词汇限制的识别,则识别字符串包括多个输出候选结果;如为有词汇限制的识别,则通过得分最高的识别字符串与限定词汇库中的词表进行动态相似性匹配,输出多个候选结果。
图2中的通用语音模型采用隐式马尔柯夫模型,针对汉语发音特点,以汉语声母和韵母为单位建模。考虑到韵母和声母之间的相互影响,确定以上下文相关的多个声韵母单元和一个静音单元作为建模单元,利用大规模声学模型训练技术,建立与说话人无关的声韵母模型,使得系统与说话人无关系统。
图2中的专用语言模型是用搜集大量中国人名、地名和单位名的基础上,采用大语料库技术统计而得。这种统计的特点在于分析中国人名和地名的构成特点,按不同的基本统计单元,分别建立统计模型,用于识别系统之中。具体地针对人名识别,建立以字为单位的语言模型;针对地名,则建立以词或短语为单位的语言模型。
因为汉语中存在同音字的现象,仅依靠统计语言模型并不能完全解决人名地名中同音异字问题,因而从使用角度出发比较有效地获得多个识别候选结果是一个很重要的问题。图2中多候选的获取包括无词汇限制和有词汇限制两种情况。在不同的应用中,采用了不同的解决方案。图2中在有限词汇库下动态匹配算法所需的声韵母混淆度估算是通过对大量语音识别结果进行统计而估算得到。
本发明的技术要点之二在于其中的专用语言模型是在搜集大量中国人名、地名和单位名的基础上,采用大语料库技术统计而得,这种统计的特点在于在分析中国人名和地名的构成特点的基础上,按不同的基本统计单元,分别建立统计模型,用于识别系统之中。
本发明的技术要点之三在于具体地针对人名识别,建立以字为单位的语言模型;其方法如下:
1)由于姓与名是比较独立的两部分,所以在统计时把二者分开,以减少这种姓与名之间随机连接所带来的噪声;
2)由于姓与名被分成两部分,而姓与名单独两部分的汉字数一般不超过两个,所以采用字的二元模型就足够反映这种统计特性;
3)在识别时,需发明把姓的统计模型和名的统计模型分别建立再进行合并;
4)在汉字人名中,姓一定位于第一,作为姓的汉字在人名中的位置分布有很强的统计规律;为了表示这种位置关系,在词表中引入一个虚拟词Wv,把该虚拟词放在每一个名字的前面和后面。
本发明的技术要点之四在于针对地名和单位名,建立以词或短语为单位的语言模型,根据地名、单位名的特点,将地名、单位名拆分为一系列词,并建立一个地名词典,建立词典的方法是:
1)词表中含有基本的地名后缀和独立的地名,即尽量将地名、单位名拆分,但保证其有独立的意义,这样既尽可能地减少词表数量,又保持地名的相对完整性;
2)地名词典还收录了国标汉字库GB2312,在该字库范围内,可以避免词典外面新词的出现,从而可以充分统计每一种地名组成的规律。
本发明的技术要点之五在于因为汉语中存在同音字的现象,仅依靠统计语言模型并不能完全解决人名、地名和单位名中同音异字问题,因而开发了多个识别候选结果的获取方法。多候选的获取包括无词汇限制和有词汇限制两种情况,针对不同情况,采用了不同的解决方案。
本发明的技术要点之六在于在无限词汇限制的条件下,多候选的获得首先按照第一名的识别结果将原始语音切分成单个的音节区间,然后对某个区间(Tn,Tn+1)中的语音按照单音节的假设进行重新识别,在假设前面单字已经确定的情况下,对重新识别后的音节所对应的同音字进行综合打分,按照得分高低给出候选结果。其算法如下:
1)根据识别结果进行回溯,获得对本人名语音输入的音节切分区间(T0,T1,T2,...,Tn)
2)对该区间的语音进行重新识别:假设前面已经确认的单字位Ci-1,当前汉字为Ci,其声学得分为Pai,则汉字Ci的得分为:
Pt=Pai+wBigram(Ci-1,Ci),这儿w为语言模型的权重;自左向右逐个确认候选单字,通过上述公式调整后续字的顺序,就可以有效地获得无词汇限制系统的多个候选的确认问题。
本发明的技术要点之七在于在有限词汇条件下,多候选的获取采用了基于半音节混淆度为基础的模糊整体匹配方法,其本质是通过词表的约束来最大限度地提高识别的可靠性。其中混淆度的估算一种是语境无关的,一种是语境有关的;包括两个部分构成。第一块是汉语声韵母识别混淆度估算,第二块是识别结果与词表的模糊整体匹配
本发明的技术要点之八在于其中第一块的基本原理是对语音库数据进行识别,并通过以下方式得到所有声母之间的混淆度和所有韵母之间的混淆度;假设声韵母之间不会产生混淆:若其中一个样本其识别结果为拼音串C1′V1′C2′V2′...Cn′Vn′,该识别结果与正确的结果C1V1V2V2...CmVm进行动态对整,使得其能对上的拼音串个数最大,这样就可以得到大量拼音串对,即(C1′,C1),(V1′,V1),...,(Cl′,Ck),(Vl′Vk),...,(Cn′,Cm),(Vn′,Vm),则Cl被混淆成Ck的模糊度,其计算公式为:
P(Cl,Ck)=∑(Cl,Ck)/∑Cl
这儿∑(Cl,Ck)为Cl被识别为Ck的总数,∑Cl为Cl样本总数。
本发明的技术要点之九根据权利要求1、5、7所述的中国人名、地名和单位名语音识别方法,其特征在于第二块首先在没有词表限制的条件下得到一个识别结果C1′V1′...Cn′Vn′,然后与词表中的所有词进行整体匹配。若词表中第i个词的拼音串表示为Ci1Vi1Ci2Vi2...CliVli,则定义C1′V1′C2′V2′...Cn′Vn′与Ci1Vi1Ci2Vi2...CliVli的匹配得分为找到一个对齐(1,i1),...,(k,ij)..(n,li),该对齐使得Score=Max[P(Ck,Cij)+P(Vk,Vij)]。
本发明的技术要点之十在于在上述混淆度估算中,Cl与Ck(Vl与Vk)的混淆度同上下文是那个音素是无关的,为了进一步提高这种混淆度估算的准确性,可以把这种混淆度拓展为上下文有关的模糊性定量计算。此时P(Cl,Ck)变为P(ClCk|Vl),P(Vl,Vk)变为P(VlVk|Cl),其中Cl与Vl为右边语境,这种改进对模糊度的估算更加准确。
本发明的优点在于,系统词表可以灵活定义,在不同应用系统中,可以有不同形式。在无限制人名地名应用中是没有人名地名词表的。在有限词汇量系统中,词表与系统建模单位无关,可根据应用要求任意定义。
附图说明:
图1:传统基于整词建模的人名地名识别
图2:本发明识别概念图
图3:人名统计模型的建立
图4:地名、单位名的扩展
图5:无词汇限制下的多候选获得:语境切分及候选获得在区间(T2,T3)内,同音节的声学打分是一样的,不同音则不同,若为Paij而(T1,T2)区间的字假设已经确定,若为Ci-1则(T2,T3)区间的总得分为Pt=Paij+W*Ptrigram(Ci-1,Ci)
图6:半音节混淆度的估算
图7:模糊整体匹配
实施例之一
1.专用人名语言模型的建立
一些中国人名的例子如下:孙/学武,王/殿林,杨/昌明,蒋/建平,刘/尊法,张/键,诸葛/英武。从上述例子可以看到,中国人名的构造具有以下特点:
1)中国的人名特点是由单个汉字构成,姓在前名在后。姓名至少有两个汉字
2)姓一般有一个汉字组成,也有两个字组成的姓;例如诸葛等
3)在名中的汉字多数为单个或两个汉字。名中的汉字一般有一定的规律性,在比较年长的人名,这种规律性尤其明显。
4)汉字姓名中姓与名是各自独立的单元,两者之间比较松散
针对以上特点,本发明采取了以下主要策略来进行中国人名的统计语言模型建立。
1)由于姓与名是比较独立的两部分,所以在统计时把二者分开,以减少这种姓与名之间随机连接所带来的噪声。
2)由于姓与名被分成两部分,而姓与名单独两部分的汉字数一班不超过两个,所以采用字的二元模型就足够反映这种统计特性了。
3)在识别时,考虑到识别结果的紧凑,本发明把姓的统计模型和名的统计模型分别建立再进行合并。
上述策略在图3中可以得到部分说明。姓名库首先根据可能的姓字库进行姓与名的切分,分别形成各自姓字库和名字库,并分别建立各自的二元统计模型,然后再把两个独立的语言模型进行合并,形成统一的姓名语言模型。需要说明的是,在汉字人名中,姓一定位于第一,而且可作为姓的汉字在人名中的位置分布是有很强的统计规律的。为了表示这种位置关系,本发明在词表中引入了一个虚拟词Wv,如图4所示。图4中把该虚拟词放在每一个名字的前面和后面,这样中国人名扩展为:
Wv+字1+....+字n+Wv
这样二元对“Wv+字1”的出现频可以体现某个汉字作为姓的可能性,二元对“字n+Wv”则表明字n作为姓名末字的可能性。在实际处理中,本发明将Wv解释为“停顿”,不仅简化了语料统计,还使得系统可以由停顿作为间隔连续输入人名。
2.专用统计地名、单位名语言模型的建立
地名实际范围上还涵盖了单位和地址名,但都具有相似的特点。在地名中,首先会有许多地名名词,如“北京”、“平谷县”、“长安街”等。其次,在地名中有许多机关的名称或简称,如“国务院”、“清华大学”等。在地名中有一些常用的表示单位或地点的名词,如“省”、“大学”、“研究所”、“中心”、“胡同”等。另外还有一些数字,如“12号”、“5单元”等。
根据地名的特点,我们将地名拆分为一系列词,并建立一个地名词典。词表中含有基本的地名后缀和独立的地名,地名后缀如:“市”,“区”,“号”,“县”,“省”,“厅”等;独立地名如:“北京”,“江苏”,“海淀”等;建立词典的基本原则是,词典中的词条将地名分为尽量大的不可再分或分开后不可能重新成地名的词单元。例如,对于国家行政区划的地名,我们将其拆分为地名和地名后缀,比如“北京市”就分为“北京”+“市”,因为北京是可以重新组成地名的单位,如“北京火车站”。地名词典还收录了国标汉字库GB2312,在该字库范围内,可以避免词典集外词的出现,从而可以充分统计每一种地名组成的规律。词典构成有如下两原则:
1)既尽可能地减少词表数量;
2)又保持地名的相对完整性。
根据地名的特点,我们建立了一个地名词典,总计约11K词条,其构成如下:
1)全国行政区划(县以上)地名,包括一些大城市的区。
2)国家行政机关名称及简称。
3)常用名词。
4)约7000单字。
5)阿拉伯数字。
在这个地名词典中,所有的词条,不论单字或是多字词,均作为一个词来看待。地名的统计与人名统计不同之处是按词对进行统计,语料要先经过分词处理。为统计地名首词与尾词的特殊位置特性,如同人名统计一样,在地名的前部与后部,也增加了Wv这个词条。
3.无限词汇系统的候选获得
在该条件下,多候选的获得比较简单。首先按照第一名的识别结果将原始语音切分成单个的音节区间,如图5所示。在图5中,每个区间(T1,T2),(T2,T3)...表示对连续语音按照以音节为单位的切分。对任意一个区间(Tn,Tn+1)中的语音按照单音节的假设进行重新识别,就可获得大量近似音,每个近似音还可以含有大量同音字。例如在图5中,(T1,T2)区间可能识别出三个近似音(zhang,chang,shang),zhang有同音字(张,章),chang有同音字(常,厂),shang有同音字(尚)等。在假设前面单字已经确定的情况下,对重新识别后的音节所对应的同音字进行综合打分,按照得分高低给出候选结果。综合打分算法如下:
1)根据识别结果进行回溯,获得对本人名语音输入的音节切分区间(T0,T1,T2,...,Tn)
2)对该区间的语音进行重新识别:假设前面已经确认的单字位Ci-1,当前汉字为Ci,其声学得分为Pai,则汉字Ci的得分为:Pt=Pai+wBigram(Ci-1,Ci),这儿w为语言模型的权重。自左向右逐个确认候选单字,通过上述公式调整后续字的顺序,就可以有效地获得无词汇限制系统的多个候选的确认问题。
4.有限词汇条件下多候选的获取
在有限人名或地名的应用条件下,本发明提出了基于半音节混淆度为基础的模糊整体匹配方法,其中混淆度的估算一种是语境无关的,一种是语境有关的。这种方法不但正确可靠,而且有效地利用了有限人名或地名的应用限制,该方法的原理图如图6、7所示,其本质是通过词表的约束来最大限度地提高识别的可靠性。
整个系统有两块构成。图6表示的是第一块汉语声韵母识别混淆度估算;图7表示的是第二块识别结果与词表的模糊整体匹配。
其中图6第一块的基本原理是对语音数据库进行识别。若其中一个样本其识别结果为识别结果拼音串C1′V1′C2′V2′...Cn′Vn′,该识别结果与正确的结果语音数据拼音串C1V1C2V2...CmVm进行最大动态匹配算法对整,使得其能对上的拼音串个数最大。其中识别器为一般的没有语言模型引导的连续语音识别器。这样就得到大量拼音串对,(C1′,C1),(V1′,V1),...,(Cl′,Ck),(Vl′Vk),...,(Cn′,Cm),(Vn′,Vm)。则Cl被混淆成Ck的模糊度可以定义为:
P(Cl,Ck)=∑(Cl,Ck)/∑Cl
这儿∑(Cl,Ck)为Cl被识别为Ck的总数,∑Cl为Cl样本总数。通过以上公式我们就得到了所有声母之间的混淆度和所有韵母之间的混淆度,这儿声韵母之间不会产生混淆。
第二块模糊整体匹配则如图7所示,在没有词表限制的条件下对测试语音采用通图6相同的识别器进行识别,得到一个识别结果C1′V1′...Cn′Vn′,则我们与词表中的所有词进行DP,DP算法如下:若词表中第i个词的拼音串表示为Ci1Vi1Ci2Vi2...CliVli,则定义C1′V1′C2′V2′...Cn′Vn′与Ci1Vi1Ci2Vi2...CliVli的匹配得分为找到一个对齐(1,i1),...,(k,ij)...(n,li)。该对齐使得Pi=Max[P(Ck,Cij)+P(Vk,Vij)],这也是一个典型的动态规划问题。选择最大的一个Pi,即J=argmax(i)Pi,则识别结果为词表中的第J个词。
在上述混淆度估算中,我们看到Cl与Ck(Vl与Vk)的混淆度同上下文是那个音素是没有关系的。为了进一步提高这种混淆度估算的准确性,可以把这种混淆度拓展为上下文有关的模糊性定量计算。此时P(Cl,Ck)变为P(ClCk|Vl),P(Vl,Vk)变为P(VlVk|Cl),即把标准结果的右语境声韵母拼音串。这种改进对模糊度的估算更加准确。
实施例之二
在一个掌上电脑中实施了本发明所提出的人名、地名和单位名识别方法,用来实现电话、地址本的输入和调出功能。这个实施例中,要求的人名地名识别功能为,不限定用户,不限定词汇,用语音输入人名栏和地址栏中的内容,可以从候选词中选取正确内容。
在这个实施例中,对于人名和地名识别中,采用了同一套声学模型,语言模型则各自是相应的人名或地名的二元统计语言模型。所采用的训练语音库和语料库均为大规模数据库。语音库包括男女发音人各110人的连续语音库,人名训练语料库包含100万条人名,地名训练语料库包含60万条地名(含单位名)。
该方法可以有效地应用于各种装置和软件中,特别是手持式设备(包括手机等)和掌上型电脑中,例如词汇是开放式的用户电子名片和通讯本的输入,也可更高精度地应用于封闭式词表的识别,例如查询库中已经存在的某人名片信息。