发明内容
本发明所要解决的技术问题,在于克服噪音环境给语音应用系统带来的识别过滤任务重、效率低的不足,建立一种可快速判别输入语音是否为有效命令语音,同时确定相应命令的应用类型与范围的语音软开关的控制方法及其在地理信息系统中的应用。
本发明根据语音输入硬开关的工作原理,在正常语音命令语句的基础上增加前导关键词和结束关键词(合称开关关键词),并利用现有商品化的语音识别模块识别得到的文本字符串,在软件环境下实现语音输入的开关功能,即可以为语音输入之后的应用模块提供一种判别过滤噪音、控制应用流向的先导处理模块与方法,以实现低系统负荷、高稳定识别的语音控制方法。
在语音输入中,用户在前后两次停顿之间所输入的语言称之为一个语句片段,如果一个语句片段已构成了一个独立完整的句子,且表达了一个完整的语音命令,如“打开南京地图”、“查询解放大道”、“放大地图”等,该语句片段就称为一个标准命令语句;如果由若干语句片段组合起来,才能表达一个完整的语音命令,则这些语句片段构成一个复合命令语句,如“查找路径,从xx路到xx商场,再到xx学校”。标准命令语句和复合命令语句都表示了一个由命令操作与相关对象、参数构成的完整命令含义,因此均属于正常命令语句,正常命令语句的形式为“语句片段{+停顿+语句片段}”({}表示其中的内容可以重复)。
噪音干扰在用户语音输入识别的文本字符串中主要出现在两个位置,即正常命令语句内部的噪音信息(简称内噪音)和正常命令语句外部的噪音信息(简称外噪音)。外噪音是在用户没有语音输入情况下系统接收到的外界环境噪音,出现在用户语音输入之外的停顿时间内,其识别得到的文本字符串缺乏文字、词汇或者语义之间的连续性,没有明确的应用意义,称为外噪音字符串。内噪音是用户语音输入过程中接收到的外界环境噪音,内噪音可能在用户语音之间出现,也可能和用户语音叠加出现,前者表现为识别得到的完全无意义字符,后者则表现为识别得到的字符与正确字符之间有着一定语音上的联系,即发生部分干扰的现象。因此,用户输入的正常命令语句字符串由于内噪音的影响而成为带噪字符串。
本发明涉及到的语音软开关主要解决外噪音的屏蔽问题,同时在对开关关键词判别中也考虑内噪音的影响。因此,本发明针对语音软开关的应用需求,设计了闭合控制器、断开控制器。闭合控制器为一组可实现不同应用转向控制的特定字符串集合,其中每一个字符串称为闭合关键词,闭合关键词必须放置在正常命令语句的前面,又称为前导关键词;断开控制器是表明一个正常命令语句结束的若干特定字符串,每一个字符串称为一个断开关键词,又称为结束关键词,必须放置在正常命令语句的结尾。闭合关键词和断开关键词既可以和正常命令语句直接相连,也可以经过短暂停顿后相连,其规则的结构为“闭合关键词[+停顿]+正常命令语句[+停顿]+断开关键词”([]表示其中的内容可以省略)。
闭合关键词作为正常命令语句的前引导关键词,其作用是对于一个经过语音识别得到的待检文本字符串,只有首先从中检测到某一个闭合关键词字符串,才说明其后面的字符串为有效命令字符串,否则表明该语音为外噪音,放弃执行任何操作;同样,只有识别到断开关键词,才表明正常命令语句结束,即在断开关键词出现以前的文本字符串均为正常命令语句的有效字符串,从而可实现将若干由停顿分割的语句片段集成为完整的正常命令语句,并且一旦识别到断开关键词,之后到下一次识别到闭合关键词之前的语音输入均为外噪音。
在本发明的应用流程中,语音软开关模块设置在语音获取模块与语音应用模块之间,其中语音获取模块以现有的商品化语音识别模块为基础,在应用软件中增加语音识别模块及其接口,负责接收和识别语音信息,得到相应的带噪字符串;语音软开关模块利用已建立的开关关键词库中数量相对少而有限的闭合关键词与断开关键词,经过匹配运算,建立一种既可快速屏蔽外噪音,同时又可转接到不同后期命令分支的软开关控制机制;语音应用模块负责识别得到正确的命令字符串,从而可以有助于启动执行各个命令操作,以及应用到地理信息系统功能中。
所述语音软开关的控制方法,工作流程如下:
步骤一、设定语音软开关模块中,已事先规定和建立的闭合关键词集合为KB={KBi|i=1,n},其中KBi为第i个闭合关键词字符串,n为闭合关键词的数量,一个闭合关键词KBi对应一个命令字符串集合CMDi={strCMDij|j=1,ki},strCMDij为第i个闭合关键词所对应的第j个命令字符串,ki为第i个闭合关键词所对应的命令字符串个数;已事先规定和建立的断开关键词集合为KD={KDi |i=1,m},其中KDi为第i个断开关键词字符串,m为断开关键词的数量;初始化语音开关状态FS=0,FS用于表示当前语音开关的状态,FS=0表示断开状态,FS=1表示闭合状态;
步骤二、利用现有商品化语音识别模块,获取带噪语句片段字符串V,V用于保存经过现有商品化语音识别模块识别得到的一个带噪语句片段字符串;
步骤三、对于带噪语句片段字符串V,判断当前语音开关FS的状态,如果FS为1,转到步骤五执行;如果FS为0,执行下一步;
步骤四、以V作为源串A,以闭合关键词字符串集合KB为标准字符串集合B执行字符串查找运算:如果查找失败,判定V为外噪音字符串,将V赋为空字符串,转到步骤二执行;如果查找成功,可判定V为正常命令语句字符串,运算得到的目标字符串C以及C与源串A的有效匹配区域的下限音节位置POS和有效字符串长度LEN,可分别记录为V中所包含的闭合关键词字符串KBi以及KBi与V的有效匹配区域的下限音节位置Pb和有效字符串长度Lb,并修改当前语音开关状态FS为闭合状态;
步骤五、将带噪语句片段字符串V拼接到正常命令语句字符串S之后形成新字符串并重新赋给S,S用于保存包含一个完整正常命令语句的字符串,其中在标准命令语句时为一个语句片段字符串V,在复合命令语句时为多个语句片段字符串V的组合,其初始化值为空字符串。以V作为源串A,以断开关键词字符串集合KD为标准字符串集合B执行字符串查找运算:如果查找失败,表明V中不存在任何一个断开关键词,即当前命令语句输入尚没有结束,转到步骤二执行;如果查找成功,表明V中已包含断开关键词字符串,命令语句输入结束,运算得到的目标字符串C以及C与源串A的有效匹配区域的下限音节位置POS,可分别记录为V中所包含的断开关键词字符串KDi以及KDi与V的有效匹配区域的下限音节位置Pd,计算KDi与S的有效匹配区域下限音节位置Pds=Len(S)-Len(V)+Pd(其中Len(Str)表示一个字符串Str的长度),修改当前语音开关状态FS为断开状态;
步骤六、从S中提取正常命令语句字符串T=Mid(S,Pb+Lb,Pds),其中Mid(Str,P1,P2)表示从字符串Str中截取第P1个字符之后到第P2个字符之前的字符串作为目标字符串,该字符串中不包含第P1个和第P2个字符;
步骤七、根据闭合关键词KBi得到与其对应的命令字符串集合CMDi。将正常命令语句字符串T作为源串A,以命令字符串集合CMDi为标准字符串集合B执行字符串查找运算:如果查找失败,不执行任何命令操作;如果查找成功,其匹配得到的目标字符串C即为输入语句中所包含的命令字符串StrCMDq,该字符串在已有的标准命令字符串与功能模块对应关系表R={StrCMDij,Funij|j=1,ki}中对应于一个功能模块Funq,可以直接调用和执行相应的功能模块。
所述字符串查找运算的步骤如下:
步骤一、已知源串A和标准字符串集合B={Bi|i=1,n},设定字符串匹配的下限阈值为M(通过设定M值的大小可以调整字符串查找的灵敏度,其取值范围一般为0.6到1之间);
步骤二、从标准字符串集合B中依次取出标准字符串Bi,i=1,n;
步骤三、将A作为源串,Bi作为目标串,分别转换为拼音字符串,计算A与Bi的相近匹配度fi,记录Bi与源串A的有效匹配区域的下限音节位置STARTi=Locmin,计算Bi与源串A的有效匹配区域的长度LENi=Locmax-Locmin+1,Locmax和Locmin为Bi与A的有效匹配区域的上下限音节位置(相近匹配度以及Locmax、Locmin的计算方法采用国家发明专利“地理信息的语音识别方法及其在导航系统中的应用”,专利授权公告号:CN100358006C);
步骤四、转到步骤二执行,直到B中所有的标准字符串参与计算结束;
步骤五、对于标准字符串集合B与A的相近匹配度计算的结果,得到一组相近匹配度序列{fi|i=1,n},从中得到最大值MaxM=MAX{fi|i=1,n},获取MaxM对应的标准字符串Bj和Bj与源串A的有效匹配区域的下限音节位置STARTj以及Bj与源串A的有效匹配区域的长度LENj;
步骤六、如果MaxM大于等于字符串匹配阈值M,说明A中包含标准字符串Bj,查找成功,则查找得到的目标字符串C为Bj,且C与源串A的有效匹配区域的下限音节位置POS为STARTj,有效字符串长度LEN为LENj;如果MaxM小于字符串匹配阈值M,说明A中不包含标准字符串,查找失败。
本发明语音软开关的控制方法可以应用于地理信息系统。
本发明的有益效果:
(1)由于闭合关键词与断开关键词数量少,识别容易,在对待检字符串进行匹配搜索时,不仅可以方便地判别与去除外噪音,还能够达到待检字符串只与数量相对有限的分支信息匹配的目的。和传统方法中将待检字符串直接与所有的命令信息、专题信息匹配相比,表现为判别耗时短,准确性高;
(2)可以针对系统不同的应用功能模块,设置不同的闭合关键词,在此基础上建立闭合关键词库,可以构建语音命令与各个系统处理模块之间灵活的语音驱动机制;
断开关键词是实现多语句片段合并的基础和前提,它可以有效的支持多语句片段及其之间带有停顿的复杂语音命令。
本方法以商品化的语音输入模块为基础,按照一定规则在语音命令前后加特定的闭合与断开关键词,实现了语音应用系统屏蔽外噪音字符串干扰和启动分支命令操作的目的,随着语音输入设备和识别引擎的进一步完善,结合本方法,对于提高地理信息系统的智能化程度具有很大的作用。
具体实施方式
下面结合附图和实施例,对本发明作进一步详细说明。
实施例:
如图4、图5、图6、图7,实施例详细描述了语音软开关在语音地理信息系统中的应用流程。
1)首先建立语音地理信息系统的开关关键词库及功能命令词库
如表1,语音地理信息系统设置字符串“命令”、“设置”、“帮助”作为闭合关键词,设置字符串“完毕”和“结束”作为断开关键词。
●闭合关键词“命令”用来启动语音地理信息系统中各种具体操作,涉及地图浏览、目标编辑、目标量算、GPS导航等多个方面功能,其对应的命令字符串有“放大”、“缩小”、“左移”、“右移”、“查找”、“搜索”“采集点目标”、“采集线目标”、“采集面目标”、“开启GPS”、“关闭GPS”等;
●闭合关键词“设置”用来启动语音地理信息系统中各种常用的设置命令,如界面设置、GPS设置、地图符号设置、网络连接设置等,其对应的命令字符串有“界面参数”、“GPS参数”、“符号参数”、“网络连接”、“语音交互方式”等;
●闭合关键词“帮助”的作用是启动帮助命令,用于提示用户各种语音命令使用方法,其对应的命令字符串有“放大命令”、“导航命令”、“点数据采集命令”、“GPS参数设置”、“网络连接设置”、“语音交互模式设置”等。
表1
2)具体实例说明:
设置字符串串查找运算中字符串匹配的下限阈值M=0.70。
●实例一:输入为外噪音的情况
语音地理信息系统接收并识别得到带噪字符串V:“恩儿了里的了色文”。系统处理过程:首先将V与闭合关键词字符串集合做字符串查找运算,得到V与闭合关键词“设置”的相似匹配度最大,其值MaxMb=0.5,并且MaxMb<M,说明V中不包含任何闭合关键词,放弃V不进行其他运算,如图4。
●实例二:输入存在内噪音的情况
用户语音输入“命令放大完毕”,语音地理信息系统接受语音并识别得到带噪字符串V:“明令方大腕力”。系统处理过程:①首先将V与闭合关键词字符串集合做字符串查找运算,得到V与闭合关键词“命令”的相似匹配度最大,其值MaxMb=1,并且MaxMb>M,所以V中包含的闭合关键词是“命令”;②将V与断开关键词字符串集合做字符串查找运算,得到V与断开关键词“完毕”的相似匹配度最大,其值MaxMd=0.75,并且MaxMd>M,所以“完毕”是V包含的断开关键词;③提取V中正常命令语句字符串T为“方大”,将T与闭合关键词“命令”对应的命令字符串集合做字符串查找运算,得到T与命令字符串“放大”的相似匹配度最大,其值MaxMg=1,并且MaxMg>M,所以T的命令字符串是“放大”;④通过命令字符串与功能模块的对应关系表调用地图浏览模块,执行地图放大操作,如图5。
●实例三:输入存在内噪音的情况
用户语音输入“设置网络连接完毕”,语音地理信息系统接受语音并识别得到带噪字符串V:“儿里了设置网络连接腕力”,由于系统所处环境噪音比较大,V带有较多的无意义噪音字符串。系统处理过程:①首先将V与闭合关键词字符串集合做字符串查找运算得到V与闭合关键词“设置”的相似匹配度最大,其值MaxMb=1,并且MaxMb>M,所以V中包含的闭合关键词是“设置”;②将V与断开关键词字符串集合做字符串查找运算得到V与断开关键词“完毕”的相似匹配度最大,其值MaxMd=0.75,并且MaxMd>M,所以“完毕”是V中包含的断开关键词;③提取V中正常命令语句字符串T为“网络连接”,将T与闭合关键词“设置”对应的命令字符串集合做字符串查找运算,得到T与命令字符串“网络连接”的相似匹配度最大,其值MaxMg=1,并且MaxMg>M,所以T的命令字符串是“网络连接”;④通过命令字符串与功能模块的对应关系表调用网络连接设置模块执行网络连接设置功能,如图6。
●实例四:输入为多语句片段(复合型命令语句)的情况
用户语音输入“命令导航从新街口”,稍作停顿后紧接着输入“到夫子庙完毕”,语音地理信息系统接受语音并识别两个语句片段,得到带噪字符串V1:“命令导航从新街口”和V2:“到夫子庙完毕”。系统处理过程:①首先将V1与闭合关键词字符串集合做字符串查找运算得到V1与闭合关键词“命令”的相似匹配度最大,其值MaxMb=1,并且MaxMb>M,所以V1中包含的闭合关键词是“命令”,表示语音命令语句输入开始;②将V1与断开关键词字符串集合做字符串查找运算得到V1与断开关键词“结束”的相似匹配度最大,其值MaxMd=0.5并且MaxMd<M,说明V1中不包含断开关键词,即当前命令语句输入尚未结束;③将V2与断开关键词字符串集合做字符串查找运算得到V2与断开关键词“完毕”的相似匹配度最大,其值MaxMd=1并且MaxMd>M,说明V2中包含断开关键词,即当前命令语句输入结束,将V2拼接到V1之后得到V;④提取正常命令语句字符串T为“导航从新街口到夫子庙”,将T与闭合关键词“命令”对应的命令字符串集合做字符串查找运算,得到T与命令字符串“导航”的相似匹配度最大,其值MaxMg=1,并且MaxMg>M,所以“导航”是T的命令字符串;⑤通过命令字符串与功能模块的对应关系表向导航分析模块中传入导航参数字符串“从新街口到夫子庙”,并执行导航功能,如图7。
3)实施例结果分析:
从实施例中可以看出,在屏蔽外噪音处理的过程中,如果语音地理信息系统没有语音软开关的支持,其识别得到的带噪字符串需要和命令字符串集合中每个命令字符串进行匹配运算,其运算次数为命令字符串集合元素的个数m;如果语音地理信息系统有语音软开关的支持,其识别得到的带噪字符串只需要和闭合关键词字符串进行匹配运算,其运算次数为闭合关键词的个数n。由于闭合关键词在数量上要远远小于命令字符串,有助于减少对外噪音字符串的排除分析运算。在表1中,m=58,n=3,因此语音软开关在外噪音屏蔽过程中使字符串匹配运算效率提高近20倍。由此可以看出语音软开关的设置在很大程度上可以屏蔽外噪音的干扰,同时减轻系统对外噪音匹配计算所带来的处理压力。从实例四可以看出,语音软开关可以有效的支持多语句片段及其之间带有停顿的复杂语音命令,提高了语音地理信息系统在语音输入方面的智能化、人性化程度。