发明名称 地理信息的语音识别方法及其在导航系统中的应用
摘要 本发明公开了一种地理信息的语音识别方法,其特征是:再现有语音识别方法的基础上,增加语言获取和语言匹配两个步骤;语言获取是利用现有语音识别模块及其调用接口,加入到地理信息的应用处理程序中,得到识别后的随机带噪字符串,将其转换为拼音字符串;语言的匹配是从现有的地理信息数据库中取出地理信息字符串转换为拼音字符串,与带噪拼音字符串匹配,计算基于拼音字符串的相近匹配度,从中得到最大相近匹配度的源串为语音识别的结果字符串,即需要查询的地理信息名称。本方法提高了语音识别的灵敏度和语音识别的能力,算法简单易行,可以和各种语音识别软件配合使用。将其应用到导航系统中,可以提高交通导航系统的智能化程度。
申请公布号 CN1674091A 申请公布日期 2005.09.28
申请号 CN200510038931.1 申请日期 2005.04.18
申请人 南京师范大学 发明人 张亮;龙毅
分类号 G10L15/00;G10L15/20;G10L21/02;G01C21/00 主分类号 G10L15/00
代理机构 南京知识律师事务所 代理人 汪旭东
主权项 1、一种地理信息的语音识别方法,其特征是:在现有语音识别方法的基础上,增加语言获取和语言匹配两个步骤;语言获取——是利用现有语音识别模块及其调用接口,加入到地理信息的应用处理程序中,运行该程序,启动语音采集和识别功能,得到识别后的随机带噪字符串,将其转换为拼音字符串;汉语到拼音字符串的转换是通过现有汉字-拼音对照文件直接编写转换函数实现;语言的匹配——考虑到随机噪音的存在,从现有的地理信息数据库中取出地理信息字符串,同样转换为拼音字符串(简称为源串),与带噪拼音字符串(简称目标串)匹配,计算基于拼音字符串的相近匹配度,从中得到最大相近匹配度的源串为语音识别的结果字符串,即需要查询的地理信息名称;所述相近匹配度计算的基本过程是:a、设定源串的音节数、有效字符数为M1、N1,目标串的音节数、有效字符数为M2、N2;源串的音节字符串集合为S1={S1i|i=1,M1and∑Len(S1i)=N1},目标串的音节字符串集合为S2={S2i|i=1,M1and∑Len(S2i)=N2};Len(S)表示字符串S的长度,分割符不在计算范围内;b、将源串的拼音字符串递次从前面去掉1个音节字符串,得到M1 个新拼音字符串集合T={Tk|k=1,M1andTk={S1i|i=k,M1}};c、依次从T中取出新拼音字符串(Tj,j=1,M1),分别与目标串进行匹配运算;d、从Tj中依次取出音节字符串Yn=S1n+j-1,n=1,M1-j+1;e、对于Yn,与目标串S2的音节字符串比较时,必须从S2的第m个音节字符串S2m开始一直到S2M2(最后一个音节字符串),得到(M2-m+1)个匹配值,其中最大的一个匹配值记为Mat(Yn),该匹配值对应的音节字符串在S2中的音节位置记为Loc(Yn);设初始化时Loc(Y0)=0,对于m,则有<math> <mrow> <mi>m</mi> <mo>=</mo> <mfenced open='{' close=''> <mtable> <mtr> <mtd> <mn>1</mn> </mtd> <mtd> <mi>n</mi> <mo>=</mo> <mn>1</mn> </mtd> </mtr> <mtr> <mtd> <mi>Loc</mi> <mrow> <mo>(</mo> <msub> <mi>Y</mi> <mrow> <mi>n</mi> <mo>-</mo> <mn>2</mn> </mrow> </msub> <mo>)</mo> </mrow> <mo>+</mo> <mn>1</mn> </mtd> <mtd> <msub> <mi>M</mi> <mn>1</mn> </msub> <mo>-</mo> <mi>j</mi> <mo>+</mo> <mn>1</mn> <mo>&GreaterEqual;</mo> <mi>n</mi> <mo>></mo> <mn>1</mn> <mi>andMat</mi> <mrow> <mo>(</mo> <msub> <mi>Y</mi> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mi>Loc</mi> <mrow> <mo>(</mo> <msub> <mi>Y</mi> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>)</mo> </mrow> <mo>+</mo> <mn>1</mn> </mtd> <mtd> <msub> <mi>M</mi> <mn>1</mn> </msub> <mo>-</mo> <mi>j</mi> <mo>+</mo> <mn>1</mn> <mo>&GreaterEqual;</mo> <mi>n</mi> <mo>></mo> <mn>1</mn> <mi>andMat</mi> <mrow> <mo>(</mo> <msub> <mi>Y</mi> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>)</mo> </mrow> <mo>></mo> <mn>0</mn> </mtd> </mtr> </mtable> </mfenced> </mrow> </math> 对于两个音节字符串的匹配比较,设其匹配值为p,初始化为0,应遵循三个原则:①两个音节字符串的声母、韵母字符串分开比较;②无论是声母比较,还是韵母比较,模糊拼音文件中记录的模糊拼音应确定为完全匹配;③两个音节字符串的声母字符串相互比较,如果完全匹配,p加1,否则不计;两个音节字符串的韵母字符串相互比较,如果完全匹配或者部分匹配,p增加匹配正确的有效字符数,否则不计;部分匹配是指两个字符串中部分字符相同,且前后顺序一致的情况,如iong和ing就有三个字符匹配,分别为i、n、g;f、转到d,直到Tj的所有音节字符串结束;g、对于Tj和S2比较的结果,得到一组{Mat(Yn)|n=1,M1-j+1}序列,从中找出最大匹配值Qj=MAX{Mat(Yn)|n=1,M1-j+1}作为Tj与目标串S2的匹配值;从{Loc(Yn)|n=1,M1-j+1}序列中计算当Tj时,目标串S2的有效匹配区域的上下限音节位置分别为Locmax=MAX{Loc(Yn)|n=1,M1-j+1}Locmin=MIN{Loc(Yn)|n=1,M1-j+1}MIN{}表示取集合中的最小值,MAX{}表示取集合中的最大值;匹配区域内的有效字符总数为<math> <mrow> <msubsup> <mi>N</mi> <mrow> <mn>2</mn> <mi>j</mi> </mrow> <mo>&prime;</mo> </msubsup> <mo>=</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>k</mi> <mo>=</mo> <mi>Lo</mi> <msub> <mi>c</mi> <mi>min</mi> </msub> </mrow> <mrow> <mi>Lo</mi> <msub> <mi>c</mi> <mi>max</mi> </msub> </mrow> </munderover> <mi>Len</mi> <mrow> <mo>(</mo> <msub> <mi>S</mi> <mrow> <mn>2</mn> <mi>k</mi> </mrow> </msub> <mo>)</mo> </mrow> </mrow> </math> h、转到d,直到T中所有的新拼音字符串比较结束;i、得到一组{(Qj,N2j′)|j=1,M1}序列,其中{Qj|j=1,M1}中的最大值Q为源串S1与目标串S2的结果匹配值,对应的N2j′值为目标串S2的匹配区域内的有效字符总数,记为N2′;j、计算基于源串和目标串的相近匹配度,其大小为S1与S2经过匹配运算后的最大匹配字符数和总有效字符数的比值的两倍,其中总有效字符数是S1的有效字符串数N1与S2的匹配区域内有效字符数N2′之和,即相近匹配度<math> <mrow> <mi>f</mi> <mo>=</mo> <mfrac> <mrow> <mn>2</mn> <mi>Q</mi> </mrow> <mrow> <msub> <mi>N</mi> <mn>1</mn> </msub> <mo>+</mo> <msubsup> <mi>N</mi> <mn>2</mn> <mo>&prime;</mo> </msubsup> </mrow> </mfrac> <mo>&CenterDot;</mo> </mrow> </math>
地址 210097江苏省南京市宁海路122号