本发明涉及语音识别领域,特别是涉及一种语音识别方法和系统。
背景技术:
目前市面上,语音识别的产品非常多,例如科大讯飞、百度语音识别等,但是他们识别的内容需要描述地非常准确才能识别得到,举个例子:“打开空调”,这句话基本上所有的智能语音识别系统都能够轻松识别,因为结构简单,仅包含一个操作指令“打开”+操作对象“空调”,但是如果说“哎呀太热了,我想打开空调,把加湿器也打开”,基本上所有的识别软件都手足无措了,可能有些能识别出其中的某一个操作,不过基本上没有任何一个识别软件能识别出所有的内容。
目前的语音识别技术无法做到多对象多操作的语音识别,这种传统识别方式的缺点显而易见,话术要求固定、无法在嘈杂的环境下识别语音。
技术实现要素:
本发明的目的是提供一种语音识别方法和系统,能够实现多对象多操作的识别,允许用户说出操作指令与操作对象的同时,加入一些其他无关的内容,话术上更加自由,同时在嘈杂的环境下,大幅提高语音识别的精度。
为实现上述目的,本发明提供了如下方案:
一种语音识别方法,所述语音识别方法包括:
获取各个操作对象的结构体,将所述结构体存储在数据库中;
将人发出的语音指令录制成音频文件传输到服务器,识别成文字;
将所述文字转变为首字母拼接的第一字符串和全拼字母拼接的第二字符串,并将所述第一字符串和所述第二字符串进行模糊处理;
从数据库中使用索引方法获取所有符合所述第一字符串和所述第二字符串的操作对象;计算所述操作对象的匹配值,获取所述匹配值最高的操作对象;
从数据库中使用索引方法获取所有符合所述第一字符串和所述第二字符串的操作指令;计算所述操作指令的匹配值,获取所述匹配值最高的操作指令;所述操作指令为左向操作指令、右向操作指令两个操作指令中至少一者;
将所述匹配值最高的操作对象和所述匹配值最高的操作指令进行组合;
判断所述组合中的操作对象是否为n个,n为大于1的正整数,若是,则判断所述操作对象间是否具有并列关系,若是,则所述匹配值最高的操作对象执行的操作指令为前一个识别出的操作对象的操作指令并判断所述操作指令是否同时具有左向操作指令和右向操作指令,若否,则判断所述操作对象的操作指令是否同时具有左向操作指令和右向操作指令;
若所述组合中的操作对象为1个,则直接判断所述操作对象的操作指令是否同时具有左向操作指令和右向操作指令;
若所述操作对象的操作指令同时具有左向操作指令和右向操作指令,则对所述操作对象执行右向操作指令;
若所述操作对象的操作指令只具有一个操作指令,则对所述操作对象执行当前识别的操作指令。
可选的,所述从数据库中使用索引方法获取所有符合所述第一字符串和所述第二字符串的操作对象;计算所述操作对象的匹配值,获取所述匹配值最高的操作对象,具体包括:
使用所述第一字符串和所述第二字符串,从所述数据库中使用全词模糊索引方法和缺词模糊索引方法分别获取所有符合所述字符串的操作对象;
根据所述字符串长度,拆分成n*(n+1)/2个匹配项,判断所述文字对应字符串中是否包含所述匹配项,若是,则所述匹配项的积分加一,若所述文字对应字符串中不包含所述匹配项,则所述匹配项的积分不变;累加每项积分除以匹配项总数,得到所述操作对象的匹配度,所述操作对象的匹配值由文字匹配度、全拼拼音匹配度和首字母拼音匹配度累加而成;
将所述操作对象的所述文字匹配度、所述全拼拼音匹配度和所述首字母拼音匹配度相加,得到所述操作对象的匹配值;
将所述使用所述全词模糊索引方法和所述缺词模糊索引方法获取的操作对象的匹配值进行混合,获取不同排序组合的索引结果,选取所述匹配值最高的组合,并去掉重复的所述匹配项得到匹配值最高的操作对象。
可选的,所述从数据库中使用索引方法获取所有符合所述第一字符串和所述第二字符串的操作指令;计算所述操作指令的匹配值,获取所述匹配值最高的操作指令;所述操作指令为左向操作指令、右向操作指令两个操作指令中至少一者,具体包括:
使用所述第一字符串和所述第二字符串,从所述数据库中使用全词模糊索引方法和缺词模糊索引方法分别获取所有符合所述字符串的操作指令;
根据所述字符串长度,拆分成n*(n+1)/2个匹配项,判断所述文字对应字符串中是否包含所述匹配项,若是,则所述匹配项的积分加一,若所述文字对应字符串中不包含所述匹配项,则所述匹配项的积分不变;累加每项积分除以匹配项总数,得到所述操作指令的匹配度,所述操作指令的匹配值由文字匹配度、全拼拼音匹配度和首字母拼音匹配度累加而成;
将所述操作指令的所述文字匹配度、所述全拼拼音匹配度和所述首字母拼音匹配度相加,得到所述操作指令的匹配值;
将所述使用所述全词模糊索引方法和所述缺词模糊索引方法获取的操作指令的匹配值进行混合,获取不同排序组合的索引结果,选取所述匹配值最高的组合,并去掉重复的所述匹配项得到匹配值最高的操作指令。
可选的,所述将所述文字转变为首字母拼接的第一字符串和全拼字母拼接的第二字符串,并将所述第一字符串和所述第二字符串进行模糊处理,具体包括:
将所述文字转变为首字母拼接的第一字符串和全拼字母拼接的第二字符串,并对所述第一字符串和所述第二字符串进行前缀替换、后缀替换和相近读音替换的模糊处理。
可选的,所述结构体的属性包括:名称、首字母拼音字符串、全拼拼音字符串、对象类型和操作指令,并将所述结构体属性存储在数据库中。
为实现上述目的,本发明还提供了如下方案:
一种语音识别系统,所述语音识别系统包括:
结构体生成模块,用于获取各个操作对象的结构体,将所述结构体存储在数据库中;
文字生成模块,用于将人发出的语音指令录制成音频文件传输到服务器,识别成文字;
字符串获取模块,用于将所述文字转变为首字母拼接的第一字符串和全拼字母拼接的第二字符串,并将所述第一字符串和所述第二字符串进行模糊处理;
操作对象获取模块,用于从数据库中使用索引方法获取所有符合所述第一字符串和所述第二字符串的操作对象;计算所述操作对象的匹配值,获取所述匹配值最高的操作对象;
操作指令获取模块,用于从数据库中使用索引方法获取所有符合所述第一字符串和所述第二字符串的操作指令;计算所述操作指令的匹配值,获取所述匹配值最高的操作指令;所述操作指令为左向操作指令、右向操作指令两个操作指令中至少一者;
组合模块,用于将所述匹配值最高的操作对象和所述匹配值最高的操作指令进行组合;
第一判断模块:用于判断所述组合中的操作对象是否为n个,n为大于1的正整数;
第二判断模块,用于判断所述操作对象间是否具有并列关系;
第三判断模块,用于判断所述操作对象的操作指令是否同时具有左向操作指令和右向操作指令。
可选的,所述操作对象获取模块,具体包括:
最初操作对象获取单元,用于使用所述第一字符串和所述第二字符串,从所述数据库中使用全词模糊索引方法和缺词模糊索引方法分别获取所有符合所述字符串的操作对象;
第一匹配度获取单元,用于根据所述字符串长度,拆分成n*(n+1)/2个匹配项,判断所述文字对应字符串中是否包含所述匹配项,若是,则所述匹配项的积分加一,若所述文字对应字符串中不包含所述匹配项,则所述匹配项的积分不变;累加每项积分除以匹配项总数,得到所述操作对象的匹配度,所述操作指令的匹配值由文字匹配度、全拼拼音匹配度和首字母拼音匹配度累加而成;
第一匹配值获取单元,将所述操作对象的所述文字匹配度、所述全拼拼音匹配度和所述首字母拼音匹配度相加,得到所述操作对象的匹配值;
最终操作对象确定单元,将所述使用所述全词模糊索引方法和所述缺词模糊索引方法获取的操作对象的匹配值进行混合,获取不同排序组合的索引结果,选取所述匹配值最高的组合,并去掉重复的所述匹配项得到匹配值最高的操作对象。
可选的,所述操作指令获取模块,具体包括:
最初操作指令获取单元,用于使用所述第一字符串和所述第二字符串,从所述数据库中使用全词模糊索引方法和缺词模糊索引方法分别获取所有符合所述字符串的操作指令;
第二匹配度获取单元,用于根据所述字符串长度,拆分成n*(n+1)/2个匹配项,判断所述文字对应字符串中是否包含所述匹配项,若是,则所述匹配项的积分加一,若所述文字对应字符串中不包含所述匹配项,则所述匹配项的积分不变;累加每项积分除以匹配项总数,得到所述操作指令的匹配度,所述操作指令的匹配值由文字匹配度、全拼拼音匹配度和首字母拼音匹配度累加而成;
第二匹配值获取单元,用于将所述操作指令的所述文字匹配度、所述全拼拼音匹配度和所述首字母拼音匹配度相加,得到所述操作指令的匹配值;
最终操作指令获取单元,用于将所述使用所述全词模糊索引方法和所述缺词模糊索引方法获取的操作指令的匹配值进行混合,获取不同排序组合的索引结果,选取所述匹配值最高的组合,并去掉重复的所述匹配项得到匹配值最高的操作指令。
可选的,所述字符串获取模块,具体包括:
字符串转变单元,用于将所述文字转变为首字母拼接的第一字符串和全拼字母拼接的第二字符串;
模糊处理单元,用于对所述第一字符串和所述第二字符串进行前缀替换、后缀替换和相近读音替换的模糊处理。
可选的,所述结构体的属性包括:名称、首字母拼音字符串、全拼拼音字符串、对象类型和操作指令,并将所述结构体属性存储在数据库中。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明的语音识别方法,通过获取匹配值最高的操作对象和操作指令并将其进行组合,且操作指令为左向操作指令、右向操作指令两个操作指令中至少一者;通过判断组合中的操作对象是否为n个,n为大于1的正整数,若是,则判断操作对象间是否具有并列关系,若具有并列关系,则匹配值最高的操作对象执行的操作指令为前一个识别出的操作对象的操作指令并判断所述操作指令是否同时具有左向操作指令和右向操作指令,若否,则判断操作对象的操作指令是否同时具有左向操作指令和右向操作指令;若所述组合中的操作对象为1个,则直接判断所述操作对象的操作指令是否同时具有左向操作指令和右向操作指令;若操作对象的操作指令同时具有左向操作指令和右向操作指令,则对操作对象执行右向操作指令;若操作对象的操作指令只具有一个操作指令,则对操作对象执行当前识别的操作指令。显然,本发明能够实现多对象多操作的识别,允许用户说出操作指令与操作对象的同时,加入一些其他无关的内容,话术上更加自由,同时在嘈杂的环境下,大幅提高语音识别的精度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1语音识别方法流程图;
图2为本发明实施例2语音识别系统结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种语音识别方法和系统,能够实现多对象多操作的识别,允许用户说出操作指令与操作对象的同时,加入一些其他无关的内容,话术上更加自由,同时在嘈杂的环境下,大幅提高语音识别的精度。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例1:
图1为本发明实施例1语音识别方法流程图。如图1所示,一种语音识别方法,所述语音识别方法包括:
步骤101:获取各个操作对象的结构体,所述结构体的属性包括:名称、首字母拼音字符串、全拼拼音字符串、对象类型和操作指令,并将所述结构体属性存储在数据库中;
步骤102:将人发出的语音指令录制成音频文件传输到服务器,识别成文字;
步骤103:将所述文字转变为首字母拼接的第一字符串和全拼字母拼接的第二字符串,并将所述第一字符串和所述第二字符串进行模糊处理,具体的,对所述第一字符串和所述第二字符串进行前缀替换、后缀替换和相近读音替换的模糊处理;
步骤104:从数据库中使用索引方法获取所有符合所述第一字符串和所述第二字符串的操作对象;计算所述操作对象的匹配值,获取所述匹配值最高的操作对象;
步骤105:从数据库中使用索引方法获取所有符合所述第一字符串和所述第二字符串的操作指令;计算所述操作指令的匹配值,获取所述匹配值最高的操作指令;所述操作指令为左向操作指令、右向操作指令两个操作指令中至少一者;
步骤106:将所述匹配值最高的操作对象和所述匹配值最高的操作指令进行组合;
步骤107:判断所述组合中的操作对象是否为n个,n为大于1的正整数;
步骤108:若所述组合中的操作对象为n个,则判断所述操作对象间是否具有并列关系;
若所述组合中的操作对象为1个,则直接进入步骤110;
步骤109:若所述操作对象间具有并列关系,则所述匹配值最高的操作对象执行的操作指令为前一个识别出的操作对象的操作指令,并进入步骤110;
若所述操作对象间不具有并列关系,则直接进入步骤110;
步骤110:判断所述操作对象的操作指令是否同时具有左向操作指令和右向操作指令;
步骤111:若所述操作对象的操作指令同时具有左向操作指令和右向操作指令,则对所述操作对象执行右向操作指令;
步骤112:若所述操作对象的操作指令只具有一个操作指令,则对所述操作对象执行当前识别的操作指令。
具体的,步骤104中使用所述第一字符串和所述第二字符串,从所述数据库中使用全词模糊索引方法和缺词模糊索引方法分别获取所有符合所述字符串的操作对象;
根据所述字符串长度,拆分成n*(n+1)/2个匹配项,判断所述文字对应字符串中是否包含所述匹配项,若是,则所述匹配项的积分加一,若所述文字对应字符串中不包含所述匹配项,则所述匹配项的积分不变;累加每项积分除以匹配项总数,得到所述操作对象的匹配度,所述操作对象的匹配值由文字匹配度、全拼拼音匹配度和首字母拼音匹配度累加而成;
将所述操作对象的所述文字匹配度、所述全拼拼音匹配度和所述首字母拼音匹配度相加,得到所述操作对象的匹配值;
将所述使用所述全词模糊索引方法和所述缺词模糊索引方法获取的操作对象的匹配值进行混合,获取不同排序组合的索引结果,选取所述匹配值最高的组合,并去掉重复的所述匹配项得到匹配值最高的操作对象。
具体的,步骤105中使用所述第一字符串和所述第二字符串,从所述数据库中使用全词模糊索引方法和缺词模糊索引方法分别获取所有符合所述字符串的操作指令;
根据所述字符串长度,拆分成n*(n+1)/2个匹配项,判断所述文字对应字符串中是否包含所述匹配项,若是,则所述匹配项的积分加一,若所述文字对应字符串中不包含所述匹配项,则所述匹配项的积分不变;累加每项积分除以匹配项总数,得到所述操作指令的匹配度,所述操作指令的匹配值由文字匹配度、全拼拼音匹配度和首字母拼音匹配度累加而成;
将所述操作指令的所述文字匹配度、所述全拼拼音匹配度和所述首字母拼音匹配度相加,得到所述操作指令的匹配值;
将所述使用所述全词模糊索引方法和所述缺词模糊索引方法获取的操作指令的匹配值进行混合,获取不同排序组合的索引结果,选取所述匹配值最高的组合,并去掉重复的所述匹配项得到匹配值最高的操作指令。
本发明的语音识别方法,能够实现多对象多操作的识别,允许用户说出操作指令与操作对象的同时,加入一些其他无关的内容,话术上更加自由,同时在嘈杂的环境下,大幅提高语音识别的精度。
实施例2:
图2为本发明实施例2语音识别系统结构图。如图2所示,一种语音识别系统,所述语音识别系统包括:
结构体生成模块201,用于获取各个操作对象的结构体,所述结构体的属性包括:名称、首字母拼音字符串、全拼拼音字符串、对象类型和操作指令,并将所述结构体属性存储在数据库中;
文字生成模块202,用于将人发出的语音指令录制成音频文件传输到服务器,识别成文字;
字符串获取模块203,用于将所述文字转变为首字母拼接的第一字符串和全拼字母拼接的第二字符串,并将所述第一字符串和所述第二字符串进行模糊处理;
操作对象获取模块204,用于从数据库中使用索引方法获取所有符合所述第一字符串和所述第二字符串的操作对象;计算所述操作对象的匹配值,获取所述匹配值最高的操作对象;
操作指令获取模块205,用于从数据库中使用索引方法获取所有符合所述第一字符串和所述第二字符串的操作指令;计算所述操作指令的匹配值,获取所述匹配值最高的操作指令;所述操作指令为左向操作指令、右向操作指令两个操作指令中至少一者;
组合模块206,用于将所述匹配值最高的操作对象和所述匹配值最高的操作指令进行组合;
第一判断模块207:用于判断所述组合中的操作对象是否为n个,n为大于1的正整数;
第二判断模块208,用于判断所述操作对象间是否具有并列关系;
第三判断模块209,用于判断所述操作对象的操作指令是否同时具有左向操作指令和右向操作指令。
具体的,所述操作对象获取模块204包括:
最初操作对象获取单元,用于使用所述第一字符串和所述第二字符串,从所述数据库中使用全词模糊索引方法和缺词模糊索引方法分别获取所有符合所述字符串的操作对象;
第一匹配度获取单元,用于根据所述字符串长度,拆分成n*(n+1)/2个匹配项,判断所述文字对应字符串中是否包含所述匹配项,若是,则所述匹配项的积分加一,若所述文字对应字符串中不包含所述匹配项,则所述匹配项的积分不变;累加每项积分除以匹配项总数,得到所述操作对象的匹配度,所述操作指令的匹配值由文字匹配度、全拼拼音匹配度和首字母拼音匹配度累加而成;
第一匹配值获取单元,将所述操作对象的所述文字匹配度、所述全拼拼音匹配度和所述首字母拼音匹配度相加,得到所述操作对象的匹配值;
最终操作对象确定单元,将所述使用所述全词模糊索引方法和所述缺词模糊索引方法获取的操作对象的匹配值进行混合,获取不同排序组合的索引结果,选取所述匹配值最高的组合,并去掉重复的所述匹配项得到匹配值最高的操作对象。
具体的,所述操作指令获取模块205包括:
最初操作指令获取单元,用于使用所述第一字符串和所述第二字符串,从所述数据库中使用全词模糊索引方法和缺词模糊索引方法分别获取所有符合所述字符串的操作指令;
第二匹配度获取单元,用于根据所述字符串长度,拆分成n*(n+1)/2个匹配项,判断所述文字对应字符串中是否包含所述匹配项,若是,则所述匹配项的积分加一,若所述文字对应字符串中不包含所述匹配项,则所述匹配项的积分不变;累加每项积分除以匹配项总数,得到所述操作指令的匹配度,所述操作指令的匹配值由文字匹配度、全拼拼音匹配度和首字母拼音匹配度累加而成;
第二匹配值获取单元,用于将所述操作指令的所述文字匹配度、所述全拼拼音匹配度和所述首字母拼音匹配度相加,得到所述操作指令的匹配值;
最终操作指令获取单元,用于将所述使用所述全词模糊索引方法和所述缺词模糊索引方法获取的操作指令的匹配值进行混合,获取不同排序组合的索引结果,选取所述匹配值最高的组合,并去掉重复的所述匹配项得到匹配值最高的操作指令。
具体的,所述字符串获取模块203包括:
字符串转变单元,用于将所述文字转变为首字母拼接的第一字符串和全拼字母拼接的第二字符串;
模糊处理单元,用于对所述第一字符串和所述第二字符串进行前缀替换、后缀替换和相近读音替换的模糊处理。
本发明的语音识别系统,能够实现多对象多操作的识别,允许用户说出操作指令与操作对象的同时,加入一些其他无关的内容,话术上更加自由,同时在嘈杂的环境下,大幅提高语音识别的精度。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。