语音交互系统及其创建方法和装置与流程

文档序号:11155573阅读:680来源:国知局
语音交互系统及其创建方法和装置与制造工艺

本发明涉及人机交互技术领域,尤其涉及一种语音交互系统以及创建语音交互系统的方法和装置。



背景技术:

人机交互是研究系统与用户之间的交互关系的科学。系统可以是各种各样的机器,也可以是计算机化的系统和软件。例如,通过人机交互可以实现各种人工智能系统,例如,智能客服系统、语音控制系统等等。人工智能语义识别是人机交互的基础,其能够对人类语言进行识别,以转换成机器能够理解的语言。

智能问答系统是人机交互的一种典型应用,其中当用户提出问题后,智能问答系统给出该问题的答案。语音交互系统是一种特殊的智能问答系统,即用户提出的问题是以语音的形式输入的。因此,语音交互系统中,首先需要将语音形式的用户问题,即语音输入识别为文字形式的用户问题,然后再通过上述语义解析过程理解用户的问题,并给出相应的答案。

传统上,设计语音交互系统是基于客户给出的语音用户交互流程图,开发使用者对应的VoiceXML来实现用户语义理解及后续的处理流程。VoiceXML是建立于XML语言规范基础之上,是一种应用于语音浏览的标记语言。利用VoiceXML可以建立基于WEB的语音应用和服务。

基于此传统设计方式,将需要识别的语料写入语法,生成语言模型,再将需要理解的语料分好类,生成语义模型。然后在语音交互系统中加载好语言和语义模型,并写好每个语义分类对应的vxml(voice extensible markup language,话音可扩展标记语言)。语言模型用于识别用户的语音输入,将其转换为文字形式的用户输入。语义模型是用来理解该文字形式的用户输入的含义,以确定后续流程。比如账单查询的分类tag为:bill。vxml中需要写明,当识别语义解析结果为bill时,则走对应的流程,比如接下来的话术为:“你想查询哪个月的账单?”然后等待用户输入再识别,识别为“当月”,当月的分类tag为month.继续往下走对应的流程。

此基于VoiceXML的开发方式需要有专门的开发人员写vxml,增加了实施难度,而且需要和写语义模型的人需要约定语义分类tag.才能继续进行,增加了沟通成本。每次增删改流程,都需要在系统中重新载入语言模型、语义模型和vxml,不能实时生效。



技术实现要素:

以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之序。

本发明提供了一种语音交互系统及其创建方法和装置,以解决语音交互系统创建过程中流程之间的流转的开发实施难度高的问题。

第一方面,本发明提供了一种用于创建语音交互系统的方法,包括:

接收语音用户交互流程图,所述语音用户交互流程图包括依照预定流程流转的多个流程;

基于所述多个流程创建知识库,所述知识库包括与所述多个流程相对应的多个知识点,每个知识点包括问题及其答案,

其中,所述多个流程包括第一流程和位于所述第一流程下游的第二流程,所述第一流程所对应的第一知识点的答案为问句型答案,且与所述第二流程所对应的第二知识点的问题是对所述第一知识点的问句型答案的响应;

提供语言模型以用于对用户的语音输入执行语音识别;以及

提供所述知识库中的知识点以用于对获得的语音识别结果执行语义识别。

第二方面,本发明提供了一种用于创建语音交互系统的装置,包括:

接收模块,用于接收语音用户交互流程图,所述语音用户交互流程图包括依照预定流程流转的多个流程;

知识库创建模块,用于基于所述多个流程创建知识库,所述知识库包括与所述多个流程相对应的多个知识点,每个知识点包括问题及其答案,

其中,所述多个流程包括第一流程和位于所述第一流程下游的第二流程,所述第一流程所对应的第一知识点的答案为问句型答案,且与所述第二流程所对应的第二知识点的问题是对所述第一知识点的问句型答案的响应;

语言模型训练模块,用于提供语言模型以用于对用户的语音输入执行语音识别;以及

知识点分配模块,提供所述知识库中的知识点以用于对获得的语音识别结果执行语义识别。

第三方面,本发明提供了一种语音交互系统,包括:

上述的方法创建的知识库;

语音识别模块,用于采用上述的方法所提供的语言模型对用户语音输入执行语音识别;

语义识别模块,用于采用所述知识库中的相应知识点对所述语音识别结果执行语义识别;以及

输出模块,用于基于语音识别结果向用户提供响应输出。

本发明通过建立知识库的方式,利用知识库中知识点的匹配,来实现流程之间的流转。这避免了专门开发人员编写vxml,降低了实施难度。关键在于,相比于传统基于Voice XML的设计,在增删流程时,只需要在知识库中增删相应的知识点即可,可以实时生效,部署灵活。

附图说明

在结合以下附图阅读本公开的实施例的详细描述之后,能够更好地理解本发明的上述特征和优点。在附图中,各组件不一定是按比例绘制,并且具有类似的相关特性或特征的组件可能具有相同或相近的附图标记。

图1是示出了根据本发明的一方面的用于创建语音交互系统的方法的流程图;

图2示出了语音用户交互流程图的一个示例;

图3是示出了根据本发明的一方面对标准问进行扩展的方法的流程图;

图4是示出了根据本发明的一方面的用于创建语音交互系统的装置的框图;以及

图5是示出了根据本发明的另一方面的扩展单元的框图;以及

图6示出了根据本发明的一方面的语音交互系统的框图。

具体实施方式

以下结合附图和具体实施例对本发明作详细描述。注意,以下结合附图和具体实施例描述的诸方面仅是示例性的,而不应被理解为对本发明的保护范围进行任何限制。

对于语音交互系统,用户以语音输入的形式提出问题。为了回答用户的问题,语音交互系统的后台处理主要包括两个部分:语音识别部分和语义识别部分。语音识别部分的作用是基于语音模型对用户的语音输入进行语音识别,以获得文字形式的用户问题。语义识别部分是基于语义模型对文字形式的用户问题进行理解,以了解用户意图,进而给出答案。

语音识别技术主要由语言模型训练阶段和使用语言模型的识别阶段构成。上述的语音识别部分即为使用语言模型的识别阶段。

语言模型训练阶段是通过大量语料的训练进行语言模型的建模,例如采用SRILM工具进行建模。SRILM全称为Stanford Research Institute Language Modeling Toolkit(斯坦福研究所语言建模工具),主要目标是支持语言模型的估计和评测。在建立语言模型后,利用该语言模型对用户输入的语音进行识别。语音识别过程中,语言模型准确与否对于识别结果至关重要。越完善的语言模型可以越准确的语音识别结果。

在本发明中设计了一套用于语义识别的知识库,知识库中包括众多的知识点。知识点最原始和最简单的形式就是平时常用的FAQ,一般的形式是“问-答”对。在本发明中,“标准问”是用来表示某个知识点的文字,主要目标是表达清晰,便于维护。例如,“彩铃的资费”就是表达清晰的标准问描述。这里的“问”不应被狭义地理解为“询问”,而应广义地来理解一“输入”,该“输入”具有对应的“输出”。例如,对于用于控制系统的语义识别而言,用户的一个指令,例如“打开收音机”也应可以被理解为是一个“问”,此时对应的“答”可以是用于执行相应控制的控制程序的调用。

因此,本发明中语音交互系统与传统上基于VoiceXML设计的语音交互系统的区别在于,在语义识别部分,即是基于语音识别结果从知识库中寻找标准问的过程,找到与其匹配的标准问,即可认为是“理解”了该语音识别结果的语义,从而可以将该匹配的标准问对应的“答”提供给用户。

在本发明中,可以通过语音识别结果与知识库中所有标准问的语义相似度计算来确定匹配的标准问。例如,具有最高语义相似度的标准问可以被确定为是所匹配的标准问,可以从该匹配的标准问确定用户希望办理的目标业务,进而可以将与该标准问相关联的答案提供给用户。例如,若所匹配的标准问为“彩铃的资费”,则可以将与该标准问相关联的答案(例如,彩铃资费情况)输出给用户。

下文首先对知识库及其中的知识点进行介绍。

为了更准确、高效地识别用户问题,智能问答系统还发展出了抽象语义的概念。抽象语义是对本体类属性的进一步抽象。一个类别的抽象语义通过一组抽象语义表达式的集合来描述一类抽象语义的不同表达,为表达更为抽象的语义,这些抽象语义表达式在组成元素上进行了扩充。当这些扩充的元素一旦被赋予了相应的值就可以表达各种各样的具体语义。

每一个抽象语义表达式主要可包括缺失语义成分和语义规则词。缺失语义成分由语义成分符表示,当这些缺失的语义成分被填充了相应的值(即内容)后可以表达各式各样的具体语义。

抽象语义的语义成分符可包括:

[concept]:表示主体或客体成份的词或短语。

比如:“彩铃如何开通”中的“彩铃”

[action]:表示动作成分的词或短语。

比如:“信用卡如何办理”中的“办理”

[attribute]:表示属性成份的词或短语。

比如:“iphone有哪些颜色”中的“颜色”

[adjective]:表示修饰成分的词或短语。

比如:“冰箱哪个品牌便宜”中的“便宜”

一些主要的抽象语义类别示例有:

概念说明[concept]是什么

属性构成[concept]有哪些[attribute]

行为方式[concept]如何[action]

行为地点[concept]在什么地方[action]

行为原因[concept]为什么会[action]

行为预测[concept]会不会[action]

行为判断[concept]有没有[attribute]

属性状况[concept]的[attribute]是不是[adjective]

属性判断[concept]是不是有[attribute]

属性原因[concept]的[attribute]为什么这么[adjective]

概念比较[concept1]和[concept2]的区别在哪里

属性比较[concept1]和[concept2]的[attribute]有什么不同之处

问句在抽象语义层面的成份判断可以通过词性标注来做一般的评判,concept对应的词性为名词,action对应的词性为动词、attribute对应的词性为名词、adjective对应的是形容词。

以类别为“行为方式”的抽象语义[concept]如何[action]为例,该类别的抽象语义集合下可包括多条抽象语义表达式:

抽象语义类别:行为方式

抽象语义表达式:

a.[concept][需要|应该?][如何]<才[可以]?><进行?>[action]

b.{[concept]~[action]}

c.[concept]<的?>[action]<方法|方式|步骤?>

d.<有哪些|有什么|有没有><通过|用|在>[concept][action]<的?>[方法]

e.[如何][action]~[concept]

上述a、b、c、d四个抽象语义表达式都是用来描述“行为方式”这一抽象语义类别的。符号“|”表示“或”关系,符号“?”表示该成分可有可无。以上述抽象语义表达式c为例,可展开为以下的抽象语义表达:

c1.[concept]<的>[action]<方法>

c2.[concept]<的>[action]<方式>

c3.[concept]<的>[action]<步骤>

c4.[concept]<的>[action]

c5.[concept][action]<方法>

c6.[concept][action]<方式>

c7.[concept][action]<步骤>

c8.[concept][action]

在上述抽象语义表达式中,除了作为缺失语义成分的抽象的语义成分符之外,其他出现的具体的词如“如何”、“应该”、“方法”等等,这些词需要在抽象语义规则中被使用,所以可统称为语义规则词。

以上介绍了用于智能问答的关于知识点的一些基本概念,这对于理解本发明的内容有帮助。

图1是示出了根据本发明的一方面的用于创建语音交互系统的方法100的流程图。如图1所示,方法100可包括以下步骤:

步骤101:接收语音用户交互流程图,该语音用户交互流程图包括依照预定流程流转的多个流程。

语音交互流程图是表示用户在使用语音交互系统时的流程流转的示图。流程图中的每一个节点代表一个流程,随着用户问题的不同,从一个流程流转至下一个流程。图2中示出了流程1,位于流程1下游的流程11、12、13,位于流程11下游的流程111、112,位于流程13下游的流程131,以及位于流程112下游的流程1121、1122。

用户与语音交互系统的交互可根据流程图中各流程的关系而流转。例如,在流程1阶段,通过对用户输入的识别选择性地进入流程11、流程12或者流程13。假设进入流程12,则整个交互流程结束。若进入流程11,则根据对用户输入的识别,选择性地进入流程111或者流程112。假设进入流程111,则整个交互流程结束。若进入流程112,则根据对用户输入的识别,选择性地进入流程1121或者流程1122。

图2中的每个流程取决于语音交互系统的服务对象而不同。例如,对用于电信运营商的语音交互系统而言,则这些流程可以是“话费查询”,“彩铃业务办理”,“流量包订购”等等。

图2中示出的流程图可能仅仅是一个完整流程图的部分,例如,流程1的上游也可能存在另一流程,可以从该另一流程进入流程1。流程111、流程112、流程131、流程1121、流程1122的下游也可能存在未绘出的其它流程。

接收该流程图后,即可知晓系统用户的需求,从而可以根据该需求来定制系统。

在步骤102,基于流程图中的该多个流程创建知识库,该知识库包括与该多个流程相对应的多个知识点,每个知识点包括问题及其答案。

即针对流程图中的每个流程构建一个知识点,从而获得相应的多个知识点。知识点的建立特别有以下要求,即对于有下游流程的上游流程,该上游流程所对应的知识点的答案为问句型答案,而该下游流程所对应的知识点的问题是对该上游流程所对应的知识点的问句型答案的响应。

假设这多个流程包括第一流程和位于该第一流程下游的第二流程。第一流程所对应的第一知识点的答案为问句型答案,则与该第二流程所对应的第二知识点的问题是对第一知识点的问句型答案的响应。这里的第一流程和第二流程仅是泛指,用于表示流程之间的相对上下游关系。

以图2为例,就流程1与流程11、12、13的关系来看,流程1为上游流程,即第一流程;流程11、12、13皆为流程1的下游流程,为第二流程。但是以流程11与流程111、112的关系来看,流程11则变为上游流程,即第一流程,而流程111、流程112为下游流程,即第二流程。

如上所述,知识点是以“问题-答案”的形式存在,这里的“问题”和“答案”都应以广义地角度来理解。例如,“问题”可以直接是一个指令或一个陈述句,而不是传统语法上的一个问句,相应地,“答案”可以是为了执行这个指令的一个函数或命令调用,“答案”也可以为一个反问句。

在这里,“答案”本身也可以是一个语法上的问句形式。例如,假设流程13为“账单查询”的流程,其对应的知识点“问题”可以是“账单查询”,“答案”则是“你想查询哪个月的账单?”。流程13的下游流程131对应的知识点的“问题”可以是“查询的月份”,“答案”为“xx月的账单为yyyy元”(其中,xx月份为用户的实际输入月份)。

由此当用户输入“我想查一下账单”时,可以通过语义相似度计算,找到与之匹配度最高的问题“账单查询”,即进入流程13,此时,输出的答案并不是具体的账单明细,而是一个问句“你想查询哪个月的账单?”。当用户输入具体的查询的月份时,通过语义相似度计算,找到与之匹配度最高的问句“查询的月份”,即进入流程131,此时输出的答案为最终用户希望知晓的答案“xx月份的账单为yyyy元”。

再例如,假设流程1的知识点的答案为问句型答案“你想办理什么业务?”,流程11、流程12、流程13的知识点的问句为“流量包业务”、“彩铃业务”、“账单查询”。则,通过对用户输入的语音识别结果的语义相似度计算,可定位至流程11、流程12或者流程13的知识点,从而给出该知识点的相应答案,实现流程1至流程11、流程12、或者流程13的流转。

通过上述方式,即构建上游流程和下游流程的知识点之间的联系,以通过语义相似度计算定位下一个知识点的方式,完成流程图中各流程之间的流转。

用户在向系统输入时,最理想的情况是使用标准问,则系统马上能够理解用户的意思。然而,用户往往并非使用的是标准问,而是标准问的一些变形的形式。例如,若对于收音机的电台切换的标准问形式是“换一个电台”,那么用户可能使用的命令是“切换一个电台”,机器也需要能够识别用户表达的是同一个意思。

如上所述,本发明中是通过语义相似度计算来实现将用户问句匹配至知识点中的问题。为了使语义相似度计算获得更好的结果,在本发明中对每个知识点的标准问还扩展了许多扩展问。在执行语义识别时,实际上是将文字形式的用户问句(即语音识别结果)与每个知识点中包括标准问和扩展问在内的问句一起执行语义相似度计算,以获得匹配最高的问句。

为此,在本发明中,在建立每个知识点包括建立该知识点的标准问、与之关联的扩展问以及相应的答案。标准问和答案的建立是根据客户(即定制语音交互系统的客户,例如,银行、电信运营商等等)提供的知识进行编辑。用户对于流程图中每个流程有相应的说明,例如根据用户输入内容需要反馈什么信息等等。可以从用户提供的这些知识中提取和编辑每个知识点的标准问和答案。

每个标准问的扩展如果通过人工“想”的形式来进行,则效率较低,而且会有很多漏想。在本发明中,利用抽象语义表达式自动地生成标准问的扩展问。

为此,首先需要提供一个抽象语义数据库,其中包括多个抽象语义表达式,抽象语义表达式包括缺失语义成份,如上文所述。

图3示出了对标准问进行扩展的方法300的流程图。如图3所示,方法300可包括如下步骤。

步骤302,根据抽象语义数据库对该标准问进行抽象语义推荐处理,以获得与该标准问对应的一个或多个抽象语义表达式。

例如,一个标准问为:“怎么查违章”。

首先,需要找到抽象语义数据库中与该标准问相对应的抽象语义表达式。在一实例中,该抽象语义推荐首先对该标准问进行分词处理,得到若干单词,该单词为语义规则词或非语义规则词。

例如,“怎么查违章”可分为单词“怎么”、“查”、“违章”。这些单词中,“怎么”为语义规则词,“查”和“违章”是非语义规则词。

然后,分别对每个非语义规则词进行词性标注处理,例如“查”被标注为动词,“违章”被标注为名词。

之后,对每个语义规则词进行词类判断处理,得到每个语义规则词的词类信息。词类简单的理解即为一组有共性的词,这些词在语义上可以相似也可以不相似。

最后,根据这些词性信息和词类信息对抽象语义数据库进行搜索处理,得到与标准问“怎么查违章”匹配的抽象语义表达式。

实践中,与用户匹配的抽象语义表达式满足以下条件:

1)抽象语义表达式的缺失语义成分对应的词性包括标准问对应的填充内容的词性;

2)抽象语义表达式和标准问中对应的语义规则词相同或属于同一词类;

3)抽象语义表达式的顺序与标准问的表达顺序相同。

在上述抽象语义类别“行为方式”中,抽象语义表达式e的缺失语义成分action的词性为动词,标准问“怎么查违章”对应的填充内容“查”也为动词,缺失语义成分concept的词性为名词,标准问“怎么查违章”对应的填充内容“违章”也为名词,因此符合上述条件1)。

其次,抽象语义表达式e中的语义规则词“如何”与标准问“怎么查违章”中对应的语义规则词“怎么”属于同一词类,因此符合上述条件2)。

最后,抽象语义表达式e的顺序也与标准问的表达顺序相同,符合上述条件3)。

因此,在抽象语义数据库中,找到与标准问“怎么查违章”匹配的抽象语义表达式e,即[如何][action]~[concept]。该抽象语义表达式属于“行为方式”类别,由于一个类别中的抽象语义表达式具有相同的表达含义,因此在本发明中,为上述标准问推荐“行为方式”这一类别的抽象语义表达式的集合。换言之,所匹配的抽象语义表达式所属的类别中的所有抽象语义表达式皆被推荐为与该标准问相对应的抽象语义表达式。

步骤304,从该标准问中提取与一个或多个抽象语义表达式的缺失语义成分对应的内容,并将提取的内容填充到对应的缺失语义成分中以得到与该标准问对应的一个或多个具体语义表达式。这些具体语义表达式作为该标准问的扩展问。

以上述标准问“怎么查违章”为例,推荐如下的抽象语义表达式:

a.[concept][需要|应该?][如何]<才[可以]?><进行?>[action]

b.{[concept]~[action]}

c.[concept]<的?>[action]<方法|方式|步骤?>

d.<有哪些|有什么|有没有><通过|用|在>[concept][action]<的?>[方法]

e.[如何][action]~[concept]

用上述抽象语义表达式对标准问“怎么查违章”进行扩充处理。

在一实例中,从标准问中提取与每一抽象语义表达式的缺失语义成分对应的内容,并将提取的内容填充至每一抽象语义表达式对应的缺失语义成分中以得到与该标准问对应的具体语义表达式。

以抽象语义表达式a:[concept][需要|应该?][如何]<才[可以]?><进行?>[action]为例,从“怎么”、“查”、“违章”中提取与该表达式的缺失语义成分对应的内容:

concept对应的内容:“违章”

action对应的内容:“查”

因此,将“查”和“违章”违章填充至对应的缺失语义成分得到一具体语义表达式:[违章][需要|应该?][如何]<才[可以]?><进行?>[查询]。

以抽象语义表达式b.{[concept]~[action]}为例,从“怎么”、“查”、“违章”中提取与该表达式的缺失语义成分对应的内容:

concept对应的内容:“违章”

action对应的内容:“查”

因此,将“查”和“违章”填充至对应的缺失语义成分得到一具体语义表达式:[违章][查询]。

以抽象语义表达式c.[concept]<的?>[action]<方法|方式|步骤?>为例,从“怎么”、“查”、“违章”中提取与该表达式的缺失语义成分对应的内容:

concept对应的内容:“违章”

action对应的内容:“查”

因此,将“查”和“违章”违章填充至对应的缺失语义成分得到一具体语义表达式:[违章]<的?>[查询]<方法|方式|步骤?>。

以抽象语义表达式d.<有哪些|有什么|有没有><通过|用|在>[concept][action]<的?>[方法]为例,从“怎么”、“查”、“违章”中提取与该表达式的缺失语义成分对应的内容:

concept对应的内容:“违章”

action对应的内容:“查”

因此,将“查”和“违章”填充至对应的缺失语义成分得到一具体语义表达式:<有哪些|有什么|有没有><通过|用|在>[违章][查询]<的?>[方法]。

上述描述了如何利用抽象语义数据库对标准问进行扩展的过程。

语义表达式与用户问句关系与传统的模板匹配有了很大的不同,在传统模板匹配中,模板和用户问句只是匹配与未匹配的关系,而语义表达式与用户问句之间关系是通过量化的值(相似度)来表示,同时这个量化的值与相似问句和用户问句之间的相似度是可以互相比较的。

因此,本发明中利用语义相似度计算的语义识别具有非常好的识别率,提升了用户体现。

回到图1,在步骤103,提供语言模型以用于对用户的语音输入执行语音识别。

对于语音交互系统而言,首先需要将用户的语音输入识别为文字形式的用户输入。如前所述,语音识别的实现需要用到语言模型。语言模型主要通过采用大量语料训练而成。一方面,使用越大量的语料,得到的语言模型越准确。然而,随着语料数量的增加,训练以及识别的计算成本也随之增加。因此,实践中,往往在成本和性能的折衷基础上以一定的语料量进行训练。

另一方面,语料越有针对性,训练出的语言模型也越准确。例如,针对体育类的应用场合,可以使用与体育相关的大量术语作为语料进行训练,针对金融类的应用场合,可以使用与金融相关的大量术语作为语料进行训练。以此方式,在一定的成本下获得更准确的语言模型。

在本发明中,一方面,语言模型的训练语料可以根据语音交互系统的应用领域来选择。

但是为了进一步提高语言模型的识别精准度,同时降低成本,本发明中采用了更具有针对性的策略。即,本发明的语音交互系统对于用户的语音输入并不是采用固定不变的语言模型,而是基于当前所处的流程位置,可能采用不同的语言模型。

具体而言,针对每个流程,训练专用于该流程的下游流程的语言模型,以用来关于该(些)下游流程执行用户语音输入的语音识别。显然这里的每个流程是指具有下游流程的流程。以图2为例,对于流程1,训练有专用于其下游流程的流程11、12、13的语言模型。对于流程11,训练有专用于其下游流程的流程111、112的语言模型,依此类推。

具体在训练时,利用与该(些)下游流程相对应的知识点中的问句作为语音训练语料训练语言模型。很容易理解,由于由此训练得到的语言模型用来识别的用户输入很可能就是对应这些知识点中的问句,因此,具有相当高的识别准确率。实践中,可采用SRILM工具进行训练。

在步骤104,提供知识库中的知识点以用于对获得的语音识别结果执行语义识别。

在一实例中,对于来自用户的每个用户输入,在执行语义识别时,可采用知识库中的所有知识点进行语义相似度计算。

较优地,采用了更有针对性的策略。即,对于用户输入的语义识别并不是采用整个知识库中的所有知识点,而是基于当前所处的流程位置,可能采用不同的知识点进行语义相似度计算。

具体而言,针对每个流程,提供与该流程的下游流程所对应的知识点,以用来关于该(些)下游流程执行语音识别结果的语义识别。以图2为例,对于用户在流程1阶段给出的用户输入,在将语音形式的用户输入通过语音识别获得语音识别结果(即文字形式的用户输入之后),此时,执行语义识别时,仅利用流程11、12、13相对应的三个知识点与该用户输入执行语义相似度计算。

根据本发明的上述方案,通过建立知识库的方式,利用知识库中知识点的匹配,来实现流程之间的流转。这避免了专门开发人员编写vxml,降低了实施难度。关键在于,相比于传统基于Voice XML的设计,在增删流程时,只需要在知识库中增删相应的知识点即可,可以实时生效,部署灵活。

尽管为使解释简单化将上述方法图示并描述为一系列动作,但是应理解并领会,这些方法不受动作的次序所限,因为根据一个或多个实施例,一些动作可按不同次序发生和/或与来自本文中图示和描述或本文中未图示和描述但本领域技术人员可以理解的其他动作并发地发生。

图4是示出了根据本发明的一方面的用于创建语音交互系统的装置400的框图。

如图4所示,装置400可包括接收模块401、知识库创建模块402、语言模型训练模块403、知识点分配模块404、以及抽象语义库405。

接收模块401可用于接收语音用户交互流程图,该语音用户交互流程图包括依照预定流程流转的多个流程。

知识库创建模块402可基于这多个流程创建知识库,该知识库包括与这多个流程相对应的多个知识点,每个知识点包括问题及其答案。

不失一般性地,对于多个流程包括的第一流程和位于该第一流程下游的第二流程,第一流程所对应的第一知识点的答案为问句型答案,而与第二流程所对应的第二知识点的问题是对第一知识点的问句型答案的响应。

通过上述方式,即构建上游流程和下游流程的知识点之间的联系,以通过语义相似度计算定位下一个知识点的方式,完成流程图中各流程之间的流转。

用户在向系统输入时,最理想的情况是使用标准问,则系统马上能够理解用户的意思。然而,用户往往并非使用的是标准问,而是标准问的一些变形的形式。例如,若对于收音机的电台切换的标准问形式是“换一个电台”,那么用户可能使用的命令是“切换一个电台”,机器也需要能够识别用户表达的是同一个意思。

如上所述,本发明中是通过语义相似度计算来实现将用户问句匹配至知识点中的问题。为了使语义相似度计算获得更好的结果,在本发明中对每个知识点的标准问还扩展了许多扩展问。在执行语义识别时,实际上是将文字形式的用户问句(即语音识别结果)与每个知识点中包括标准问和扩展问在内的问句一起执行语义相似度计算,以获得匹配最高的问句。

为此,在本发明中,在建立每个知识点包括建立该知识点的标准问、与之关联的扩展问以及相应的答案。标准问和答案的建立是根据客户(即定制语音交互系统的客户,例如,银行、电信运营商等等)提供的知识进行编辑。用户对于流程图中每个流程有相应的说明,例如根据用户输入内容需要反馈什么信息等等。可以从用户提供的这些知识中提取和编辑每个知识点的标准问和答案。

每个标准问的扩展如果通过人工“想”的形式来进行,则效率较低,而且会有很多漏想。在本发明中,利用抽象语义表达式自动地生成标准问的扩展问。

为此,装置400中还包括抽象语义数据库405包括多个抽象语义表达式,抽象语义表达式包括缺失语义成分。

在一实例中,知识库创建模块402可包括扩展单元4021。扩展单元4021可根据抽象语义数据库对标准问进行抽象语义推荐处理,当获得与该标准问对应的一个或多个抽象语义表达式时,从该标准问中提取与一个或多个抽象语义表达式的缺失语义成分对应的内容,并将提取的内容填充到对应的缺失语义成分中以得到与该标准问对应的一个或多个具体语义表达式,该具体语义表达式作为该标准问的扩展问。

如图5所示,扩展单元4021可包括分词子单元40211、词性标注子单元40212、词类判断子单元40213、以及搜索子单元40214。

分词子单元40211可用于对标准问进行分词处理,得到若干单词,这些单词为语义规则词或非语义规则词。词性标注子单元40212可用于分别对每个非语义规则词进行词性标注处理,得到每个非语义规则词的词性信息。词类判断子单元40213可用于分别对每个语义规则词进行词类判断处理,得到每个语义规则词的词类信息。最后搜索子单元40214可根据这些词性信息和词类信息对抽象语义数据库进行搜索处理,得到与标准问匹配的抽象语义表达式。

抽象语义表达式还可包括语义规则词,与标准问匹配的抽象语义表达式需要满足以下条件:

抽象语义表达式的缺失语义成分对应的词性包括标准问对应的填充内容的词性;

抽象语义表达式和标准问中对应的语义规则词相同或属于同一词类;

抽象语义表达式的顺序与标准问的表达顺序相同。

语义表达式与用户问句关系与传统的模板匹配有了很大的不同,在传统模板匹配中,模板和用户问句只是匹配与未匹配的关系,而语义表达式与用户问句之间关系是通过量化的值(相似度)来表示,同时这个量化的值与相似问句和用户问句之间的相似度是可以互相比较的。

因此,本发明中利用语义相似度计算的语义识别具有非常好的识别率,提升了用户体现。

语言模型训练模块403可用于提供语言模型以用于对用户的语音输入执行语音识别。

在一实例中,语言模型训练模块403可针对每个流程,训练专用于该流程的下游流程的语言模型,以用来关于所述下游流程执行用户语音输入的语音识别。训练中,语言模型训练模块403可利用与该(些)下游流程相对应的知识点中的问题作为语音训练语料训练语言模型。实践中,语言模型训练模块403可采用SRILM工具训练语言模型。

知识点分配模块404可提供该知识库中的知识点以用于对获得的语音识别结果执行语义识别。

在一实例中,知识点分配模块404可针对每个流程提供与该流程的下游流程所对应的知识点,以用来关于该(些)下游流程执行语音识别结果的语义识别。

本发明中用于创建语音交互系统的装置的具体实现方式可参见用于创建语音交互系统的方法实施例,在此不再赘述。

根据本发明的上述方案,通过建立知识库的方式,利用知识库中知识点的匹配,来实现流程之间的流转。这避免了专门开发人员编写vxml,降低了实施难度。关键在于,相比于传统基于Voice XML的设计,在增删流程时,只需要在知识库中增删相应的知识点即可,可以实时生效,部署灵活。

本发明还提供了一种采用上述方案构建的语音交互系统。

图6示出了根据本发明的一方面的语音交互系统600的框图。

语音交互系统600可包括知识库601,该知识库601可采用图1所示的方法来创建。

语音交互系统600还可包括语音识别模块602、语义识别模块603和输出模块604。语义识别模块602可用于采用图1所示的方法提供的语言模型对用户语音输入执行语音识别。

语义识别模块603可用于采用知识库601中的相应知识点对该语音识别结果执行语义识别。输出模块604可用于基于语音识别结果向用户提供响应输出。

实例中,语义识别模块603可包括语义相似度计算模块6031,将该语音识别结果与相应知识点中的问句执行语义相似度计算计算,语义相似度高于阈值的问题中具有最高语义相似度的问题被确定为匹配问题。输出模块604可将与该匹配问题相关联的答案提供给用户作为所述响应输出。

本领域技术人员将领会,结合本文中所公开的实施例来描述的各种解说性逻辑板块、模块、电路、和算法步骤可实现为电子硬件、计算机软件、或这两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、框、模块、电路、和步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员对于每种特定应用可用不同的方式来实现所描述的功能性,但这样的实现决策不应被解读成导致脱离了本发明的范围。

结合本文所公开的实施例描述的各种解说性逻辑模块、和电路可用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其设计成执行本文所描述功能的任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,该处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、与DSP核心协作的一个或多个微处理器、或任何其他此类配置。

结合本文中公开的实施例描述的方法或算法的步骤可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中体现。软件模块可驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或本领域中所知的任何其他形式的存储介质中。示例性存储介质耦合到处理器以使得该处理器能从/向该存储介质读取和写入信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在ASIC中。ASIC可驻留在用户终端中。在替换方案中,处理器和存储介质可作为分立组件驻留在用户终端中。

提供对本公开的先前描述是为使得本领域任何技术人员皆能够制作或使用本公开。对本公开的各种修改对本领域技术人员来说都将是显而易见的,且本文中所定义的普适原理可被应用到其他变体而不会脱离本公开的精神或范围。由此,本公开并非旨在被限定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖性特征相一致的最广范围。

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