基于对话的语音识别的制作方法

文档序号:22220811发布日期:2020-09-15 19:12阅读:211来源:国知局
基于对话的语音识别的制作方法



背景技术:

本发明涉及自然语言处理(nlp)系统,并且更具体地涉及会话和对话管理。最终用户可以经由通常称为聊天机器人的文本或口语代理与nlp系统交互。使用口语聊天机器人,语音识别组件将某人的口语话语转录为文本,该文本然后由nlp系统处理以确定话语的会话意图。基于所确定的会话意图,nlp系统用对查询的回答、对附加信息的请求等来响应于该人。因此,一个人可以使用由人类使用的语言模式与聊天机器人进行会话,而不是将机器格式的查询提交给数据库,并且nlp系统可以在几轮会话中以同样方式进行响应,直到该人(或nlp系统)结束对话。



技术实现要素:

根据本发明的一个实施例,提供了一种用于基于对话的语音识别的方法,该方法包括:将包括对话树的多个节点聚类成至少第一集群和第二集群;为第一集群创建自然语言句子的第一数据集并且为第二集群创建自然语言句子的第二数据集;基于所述第一数据集生成与第一集群相关联的第一专用语言模型(lm);以及基于第二数据集生成与第二集群相关联的第二专用lm,其中第一专用lm不同于第二专用lm。

根据本发明的一个实施例,提供了一种用于基于对话的语音识别的系统,该系统包括:导航跟踪器,被配置为在对话树中标识当前节点并且选择与当前节点相关联的专用lm;语音到文本转换器,被配置为接收自然语言语音的话语并且基于为当前节点选择的专用lm将语音转换为文本;以及对话服务,被配置为基于文本来在当前节点与对话树中的后续节点之间导航,其中导航到后续节点发信号通知导航跟踪器在对话树中标识后续节点并且选择与后续节点相关联的新的专用lm以用于语音到文本转换器在将后续话语转换为文本时使用。

根据本发明的一个实施例,一种计算机可读存储介质,包括用于基于对话的语音识别的指令,这些指令在由处理器执行时使得处理器能够执行包括以下各项的操作:将包括对话树的多个节点聚类成至少第一集群和第二集群;为第一集群创建自然语言句子的第一数据集并且为第二集群创建自然语言句子的第二数据集;基于所述第一数据集生成与第一集群相关联的第一专用语言模型(lm);以及基于第二数据集生成与第二集群相关联的第二专用lm,其中第一专用lm不同于第二专用lm。

附图说明

图1示出了根据本公开的实施例的计算系统;

图2示出了根据本公开的实施例的用于针对对话来定制语言模型的计算环境;

图3示出了根据本公开的实施例的用于使用专用语言模型来导航对话的计算环境;

图4a-4c示出了根据本公开的实施例的专用语言模型与对话树的各部分之间的关联;

图5是根据本公开的实施例的用于针对对话来定制语言模型的方法的流程图;以及

图6是根据本公开的实施例的用于使用专用语言模型来导航对话的方法的流程图。

具体实施方式

在自然语言处理(nlp)系统中,由于人类语言的多变,一种话语可以映射到几种不同的意图。例如,被提供有“iwanttoturnonthewater(我想接通供水)”这一话语的文本的用于公用事业服务的聊天机器人可以用如何设置公用事业账户(第一意图)的指令来响应于人类用户。被提供有“iwanttoturnoffthewater(我想断开供水)”这一话语的文本的同一聊天机器人可以用如何停用公用事业帐户(第二意图)或如何为维护目的而临时切断供水(第三意图)的指令来进行响应。类似地,几种不同的话语可以映射到一种意图。例如,用于公用事业的聊天机器人可以确定“iammovingtoanewhouse(我要搬到新房子)”这一第一话语的意图(例如,停用公用事业帐户)与在“ineedtoterminateservices(我需要终止服务)”这一第二话语中指定的意图相同。

当使用口语话语作为输入时,nlp系统首先将口语话语转换为文本,并且语音到文本转换的准确性会影响nlp系统确定用户意图的程度。发音、句子结构的差异以及语音节奏的自然变化都可能影响口语话语如何转录为文本。为了帮助提高语音到文本转换的准确性,开发人员可以为在不同领域中使用的语音转换器分配不同的语言模型(lm),其中不同的lm使用不同的词汇集来标识与该特定领域相关的词语。例如,相比于与旅馆和航空公司预订领域相关的nlp系统,与汽车维修领域相关的nlp系统可以在lm中包括不同的词汇。

lm是捕获词语和词语序列的出现概率的统计模型。这些统计信息是从用于训练特定语言模型的数据集中捕获的。lm提供有关词语之间的上下文关系的信息,并且帮助消除听起来相似的词语序列的歧义(例如,“recognizespeech(识别语音)”与“wreckanicebeach(破坏美丽的海滩)”)。给定的一组音素与口语句子中的一个词语相关的概率用于标识同一句子中的其他词语。换言之,lm用于分析口语句子的整体以不仅标识该句子中最可能出现的单个词语,而且还可以标识由这些词语构成的最可能出现的有效句子。例如,句子“halfadozenpens(半打笔)”和“haveadoesn'tpins(半打针)”可能发音相同(用英语的某些口音),但是基于第一句子包括更有可能形成有效句子的上下文的一组词语,采用lm的语音识别器可以将第一句子标识为比第二句更有可能有效,而第二句子虽然包括有效的词语到词语转换,但是形成有效句子的上下文的可能性较低(例如,更有可能是对原本有效的词语的无意义的分组)。但是,随着给定lm中的词汇的增加,使用该lm的语音转换器将话语中的给定词语或词语序列错误地映射到文本的机会也会增加。但是,如果给定lm的词汇省略用户想要的词语,则语音转换器将没有机会将话语中的给定词语或词语序列正确地映射到文本。

例如,如果用户寻求订购六支笔——但是具有针对“pens”和“pins”使用相同音素的口音,并且由语音转换器使用的lm包括词语“pens”和“pins”两者,则语音转换器可以正确/不正确地确定用户正在可变地寻求订购“halfadozenpens”或“halfadozenpins”。继续该示例,如果lm改为排除词语“pins”,则语音转换器将正确地确定用户正在寻求订购“halfadozenpens”,并且不会有机会错误地标识出用户正在寻求订购“halfadozenpins”。相反,如果lm改为排除词语“pens”,则语音转换器会错误地确定用户正在寻求订购“halfadozenpins”,并且不会有机会正确地标识用户正在寻求订购“halfadozenpens”。因此,可以针对特定领域或环境调节lm,以提高将语音转换为文本的准确性(例如,用于牲畜领域的lm可以包括“pens”并且排除“pins”,而用于保龄球供应领域的lm可以排除“pens”并且包括“pins”)。但是,某些领域特定lm在调节之后仍然可能包括歧义(例如,用于办公用品领域的lm可能需要同时包括术语“pens”和术语“pins”),并且需要用户的附加确认/说明才能区分这样的词语(例如,“didyoumean‘inkpens’or‘stickpins’”(“您是指‘墨水笔’还是‘大头针’”)),这需要附加的计算资源来进行处理,并且可能使这样的nlp系统的最终用户感到沮丧。

本公开提供了对nlp系统的改进,该nlp系统通过将lm调节到特定对话节点以用于领域内的会话来使用语音到文本转换。当人类用户会话地导航与nlp代理(例如,聊天机器人)的对话时,nlp代理为由nlp代理管理的对话树的各个分支生成、组织和选择专用lm。例如,当用户发起与nlp代理的会话时,nlp代理使用第一lm来确定人类用户的第一意图,但是随着会话的进行,nlp代理选择专用于对话树的各个部分的第二和后续lm。nlp代理监测若干会话以确定所选择的lm是否提供准确的语音到文本转换,并且可以将若干节点聚类在一起以使用共享的专用lm,调节哪些节点使用特定的专用lm,开发新的专用lm以用于与特定节点一起使用,更新现有的专用lm的词汇表等。

专用lm可以是特定领域(例如,领域lm)的通用lm的指定部分或子集。通过在专用lm中包括比领域lm更少的词汇,并且在会话中的各个点处在各种专用lm之间切换,nlp代理可以能够访问由领域lm提供的大词汇集,但是可以以由专用lm的较小词汇集提供的更高的准确性来区分发音相似的话语。此外,在将话语映射到文本时,专用lm可以提供处理和存储资源的节省以及其他益处。

图1示出了计算系统100,计算系统100可以是个人计算机、膝上型计算机、平板电脑、智能电话等。如图所示,计算系统100包括但不限于中央处理单元(cpu)150、网络接口130、互连140、存储器160和存储装置170。计算系统100还可以包括将i/o设备110(例如,键盘、显示器和鼠标设备)连接到计算系统100的i/o设备接口120。

cpu150检索和执行存储在存储器160中的编程指令。类似地,cpu150存储和检索驻留在存储器160中的应用数据。互连140支持cpu150、i/o设备接口120、存储装置170、网络接口140和存储器160之间的传输,诸如编程指令和应用数据。包括cpu150以表示单个cpu、多个cpu、具有多个处理核的单个cpu等。并且,通常包括存储器160以表示随机存取存储器。存储装置170可以是磁盘驱动器存储设备。尽管示出为单个单元,但是存储装置170可以是固定和/或可移动存储设备的组合,诸如磁盘驱动器、闪存驱动器、可移动存储卡或光学存储装置、网络附加存储装置(nas)或存储区域网络(san)。存储装置170可以包括本地存储设备和经由网络接口130可访问的远程存储设备。

此外,包括计算系统100以表示物理计算系统以及托管在一组基础物理计算系统上的虚拟机实例。更进一步,尽管示出为单个计算系统,但是本领域普通技术人员将认识到,图1所示的计算系统100的组件可以分布在通过数据通信网络连接的多个计算系统之间。

如图所示,存储器160包括操作系统161(例如,microsoft’soperatingsystem)和nlp代理180。nlp代理180可以提供关于图2和3更详细地讨论的服务中的一个或多个,并且执行关于图5和6讨论的方法500和600(及其部分)中的一个或多个。在一些实施例中,nlp代理180的各部分可以分布在若干计算设备之间。

图2示出了用于针对对话来定制lm的计算环境200。在计算环境200内,对话服务210向人类最终用户提供使用自然语言查询和句子来导航对话树211的能力。对话服务210可以是nlp代理180的一部分,诸如聊天机器人、自动电话菜单系统等。对话树211定义了与会话内的各种意图相关的节点之间的不同路径。当对话服务210接收自然语言句子时,对话服务210在对话树211内的各个节点之间移动以向人类用户请求附加信息,向人类用户提供信息,和/或向机构用户提供信息。例如,一个人可以提交自然语言句子“ineedtoresetmypassword(我需要重置我的密码)”,对话服务210使用它来导航到与密码重置意图相关的对话树211中的节点。当出现在与密码重置相关的节点处时,对话服务210可以向请求者请求其他信息(例如,“wouldyouliketoauthenticateviatextmessage?(您想经由文本消息进行认证吗?”)),向请求者提供信息(例如,“yourtemporarypasswordis:12345(您的临时密码为:12345)”),以及向外部系统提供信息(例如,对托管系统的密码重置请求)。

语言模型生成器220从对话服务210接收操作数据,该操作数据包括从最终用户接收到的句子和这些句子与对话服务210相关联的意图/节点。训练集创建器221接收来自对话服务210的操作句子和由对话服务210的操作员或管理员指定为意图训练句子的句子,并且将成对的句子和意图存储在句子/意图数据库222中。训练集创建器221访问句子/意图数据库222以产生各种自然语言句子的训练数据集223。在一些实施例中,与意图相关联地存储在句子/意图数据库222中的句子被增强以增加可用于训练对话服务210和/或语言模型定制器231的句子的数目。在又一实施例中,可以通过自动生成类似于对话服务210的训练句子的句子来通过自然语言生成器(nlg)工具创建训练数据集223。

训练数据集223可以用于使用各种机器学习模型来训练对话服务210以导航对话树211以标识自然语言句子的意图,并且还被提供给语音识别服务230以定制若干lm232a-n(统称为lm232)以用于与对话树211结合使用。由语言模型定制器231定制的每个lm232与对话树211中的至少一个节点(或若干节点的集群)相关联,并且(多个)节点与给定lm232之间的关联存储在lm/对话表224中。

在一些实施例中,语言模型定制器231通过将针对意图/对话节点的每个集群的在训练数据集223中找到的词汇包括到相关联的专用lm232中来产生若干lm232;可以从集体专用lm232中省略在领域特定lm232中找到的在训练数据集223中未找到的任何词汇。在其他实施例中,语言模型定制器231基于与每个集群相关联的训练数据集223中包括的词汇来将领域特定lm232中的所有词汇排序成至少一个专门lm232。在一些实施例中,语言模型定制器231将领域特定lm232保留为第一lm232a,该第一lm232a与任何对话节点或意图相关联,而该对话节点或意图没有以其他方式与专用lm232相关联。

专用lm232包括被确定为在对话树211的一部分内有用的词语的词汇表。例如,第一lm232a可以包括未包括在第二lm232b中的词语,并且第二lm232b可以包括未包括在第一lm232a中的词语。在另一示例中,彼此不同的两个专用lm232可以包括相同的词语集合,但是以不同的使用概率或以不同的顺序。例如,第一lm232a和第二lm232b每个可以在相应词汇中包括给定词语,但是可以基于与单个lm232中的给定词语和单个lm232在话语中标识的其他词语相关联的概率来将话语不同地解释为包括或排除该给定词语。通过包括不同的词汇或使用该词汇的可能性,专用lm232的集合的总大小可以小于通用的领域特定lm232,并且在标识在人类语音中指示的词语时需要导航的处理资源更少。

当在连续的训练轮次中接收到另外的训练数据集223时,语言模型定制器231可以更新现有lm232的词汇(添加或删除词语),将现有lm232组合成较少数目的lm232,将现有lm232升级为更多lm232,以及更新与给定lm232相关联的节点/集群。

图3示出了用于使用专用lm232来导航对话的计算环境300。当用户(经由计算系统100)向语音识别服务230提供自然语言话语310时,语音到文本转换器234接收组成话语310的各个声音,并且将这些声音(以及声音之间的间隙/静默)转换为表示话语310的文本320。语音到文本转换器234结合所选择的lm232(例如,第一lm232a至第nlm232n之一)使用各种机器学习模型来将话语310中的音频信息转换为文本320中的各个词语。

通过使用一组专用lm232而不是一个通用的领域特定lm232,语音到文本转换器234可以产生对原始话语310具有更高保真度的文本320,尤其是在处理具有到对话树211内的词语的多个有用映射的音素时,这些映射在对话树211中的特定点有用,而在其他点则没有用。因此,对话服务210向导航跟踪器330在对话树211中标识用户所在的点。导航跟踪器330从lm/对话表224中标识与对话树211中的该点相关联的专用lm232,并且选择语音到文本转换器234在将最终用户的下一话语310转换为文本320时使用的lm232a-232n。

例如,考虑处理水/污水处理服务和电力服务并且向最终用户提供对话服务210以查询帐户状态、公用事业中断等的公用事业公司。由对话服务210使用的对话树211可以包括与水/污水处理服务相关的一些节点和与电力服务相关的其他节点。虽然对话服务210可以接收与包括词语“water(水)”的水/污水处理服务相关的话语310,但是对话服务210也可以接收与包括词语“wattage(瓦数)”的电力服务相关的话语310。尽管词语“water”与“wattage”具有若干语音上的相似之处,但是在当前上下文中使用这两个词语的自然语言句子的意图可能会有所不同(例如,查询水/污水处理服务与查询电力服务)。因此,语音到文本转换器234需要识别术语“water”和术语“wattage”,但是在不同的上下文中。

导航跟踪器330基于对话树211中的当前节点来识别用户所在的上下文,并且选择与该上下文/意图相关联的专用lm232。例如,第一专用lm232a与电力服务查询的上下文/意图相关联,并且在词汇表中包括词语“wattage”,并且从词汇表中排除词语“water”。在该示例中,与水服务查询的上下文/意图相关联的第二专用lm232b可以包括词语“water”并且从对应的词汇表中排除词语“wattage”。当导航跟踪器330发信号通知语音到文本转换器234使用第一专用lm232a时,“water/wattage”的歧义话语310被识别为“wattage”,因为第一专用lm232a没有向语音到文本转换器234提供将话语310识别为包括词语“water”的选项。相反,如果导航跟踪器330发信号通知语音到文本转换器234使用第二专用lm232b将“water/wattage”的相同歧义话语310转换为文本320,则语音到文本转换器234将话语310识别为包括词语“wattage”,因为第二专用lm232b没有向语音到文本转换器234提供将话语310识别为包括词语“wattage”的选项。导航跟踪器330和若干lm232因此允许语音到文本转换器234以对预期含义的更高保真度来区分歧义话语310,并且保持宽泛的词汇以用于不同的上下文。

语音到文本转换器234基于话语310产生文本320,并且从所选择的专用lm232中选择对话语310中的音素匹配具有最大置信度的词语。置信度跟踪器340监测语音到文本转换器234将话语310转换为文本320的置信度,并且经由置信度/对话表341来跟踪语音到文本转换器234在对话树211的各个部分处在转换中的置信度。置信度跟踪器340可以向对话服务210指示语音到文本转换的置信度,使得对话服务210可以前进到对话树211中请求澄清的节点(重复当前节点以重新请求话语310,移动到“pleaserepeatwhatyousaid(请重复您说的内容)”节点等)。当给定节点或集群的转换置信度下降到预定义阈值以下,或者用户指示希望通过对话树211进行不同导航时,置信度跟踪器340可以发信号通知语言模型生成器220更新lm232或将lm232分配给对话树211中的各个节点。

例如,如果在若干转换中在给定节点处将话语310转换为文本320的平均置信度下降到置信度阈值以下,则置信度跟踪器340可以请求语言模型生成器220更新lm232或与给定节点相关联的lm232。在另一示例中,当语音到文本转换器234对话语310到文本320的转换具有高置信度,但是话语310的意图是在对话树211中向后导航时(例如,话语“no,idonotwanttoknowhowmanykilowattsiused.iwanttoknowhowmuchwateriused.(不,我不想知道我用了多少千瓦。我想知道我用了多少水。)”或“returntomenu!(返回到菜单!)”),置信度跟踪器340可以要求语言模型生成器220更新lm232或与给定节点相关联的lm232。

图4a-4c示出了专用lm232与对话树211的各部分之间的关联。图4a-4c所示的对话树211包括入口节点410、若干中间节点420a-m(统称为中间节点420)和出口节点430。

入口节点410对应于对话树211中用户进入会话的节点。例如,入口节点410可以向访问对话服务210的每个用户请求信息(例如,欢迎消息、语言选择、用户标识请求)。

中间节点420表示对话树211中的分支选择,这些分支选择与对话服务210被编程或配置为解决的各种意图相关(例如,标识账户活动,改变地址/电话号码以联系用户,暂停/取消/恢复/启动服务,添加/去除用户,接收用户评论,逐步解决问题)。每个中间节点420可以包括用于对话服务210向用户请求附加信息以确定在会话过程中接着前进到哪个节点的指令(例如,基于中间节点420的身份和/或先前从用户接收的信息向用户传输的问题)。每个中间节点420可以包括用于向外部系统查询由用户请求的数据(例如,账户活动)并且将输出返回给用户的指令(例如,“youraccountactivityforthelastmonthisxkilowatthours.(您上个月的账户活动是x千瓦时。)”)。每个中间节点420可以包括用于将从用户接收的信息上载到外部系统的指令(例如,要添加到帐户的新用户的名称)。在各个实施例中,与图4a-4c所示的相比,对话树211可以包括在其间定义有各种互连的更多或更少的节点。

一旦到达对话分支的最后阶段,对话树211就前进到出口节点430。出口节点430可以包括告别消息,并且可以可选地终止会话或将用户引导回入口节点410以开始新的会话。因为出口节点430不向用户请求输入,所以出口节点430可以不与lm232相关联,或者可以与通用的领域特定lm232相关联。

图4a示出了最初可以为对话树211建立的第一关联401。第一集群440a(统称为集群440)包括入口节点410和三个中间节点420a-c;第二集群440b包括五个中间节点420d-h;并且第n集群440n包括五个中间节点420i-m。第一集群440a与第一lm232a相关联,使得语音到文本转换器234在分析在第一集群440a中包括的节点处从用户接收的话语310时使用第一lm232a。类似地,第二至第n集群440b-n与对应的第二lm232b至第nlm232n相关联。

图4b示出了一旦确定了通过对话树211的流就可以为对话树211建立的第二关联402。与第一lm232a相关联的第一集群440a包括入口节点410和三个中间节点420a、420d和420e。与第二lm232b相关联的第二集群440b包括其余中间节点420b、420c和420f-m。第一关联401是节点到集群440(和相关联的lm232)的分层或层级映射。可以理解,不仅可以基于会话中的层次结构,而且可以经由通过会话的不同流来区分在分支对话中有用的术语。例如,很多会话可以以相似的请求和响应开始,但是随着会话的进行,所使用的术语将开始有所不同。在示出的示例中,第二关联402可以基于在与相应节点交互时从用户接收的话语310中使用的不同词汇来将第一集群440a的节点与第二集群440b的节点区分开。

图4c示出了当通过对话树211的会话流被细化时可以从第二关联402进行调节的第三关联403。与第一lm232a相关联的第一集群440a包括入口节点410和三个中间节点420a、420d和420e;与第二lm232b相关联的第二集群440b包括中间节点420c、420g、420h、420l和420m;并且与第nlm232n相关联的第n集群包括中间节点420b、420f和420i-k。基于每个集群440的节点之间的导航频率、每个集群440中使用的词汇之间的低置信度得分等,可以将第n集群440n的节点与第二集群440b中的节点区分开。

图5是用于针对对话来定制lm232的方法500的流程图。方法500开始于框510,在框510处,语言模型生成器220获知对话树211的节点和节点之间的关系。在框520处,语言模型生成器220将对话树211中的各个节点分组为两个或更多个集群440。群集400可以基于对话树211内的节点的共享层次结构、观察到的通过对话树211的会话流和/或通过用户与对话树211之间的历史性交互所使用的词汇的相似度。在一些实施例中,语言模型生成器220使用聚类算法,该聚类算法针对每个节点分析样本句子中包括的共享词汇(例如,来自句子/意图数据库222)以将若干节点一起组合成集群440。在一些实施例中,语言模型生成器220观察通过对话树211的历史会话流(例如,从第一节点进行到第二节点的会话的百分比)并且基于节点的子集被包括在历史会话流中的频率来将节点一起分组成集群440。

在框530处,语言模型生成器220为在对话树211中标识的每个集群440创建训练数据集223。训练数据集223包括与对话树211中的各种意图和/或节点相关联的若干自然语言句子的文本。在各种实施例中,训练数据集223包括从最终用户接收的历史句子、由操作员或管理用户指定以用作训练示例的句子、以及基于先前提供的示例来提供其他示例的历史上接收/指定的句子的增强版本(例如,训练示例的否定版本、填充词更多/更少的版本、带有反句的版本)。在各种实施例中,在框520处生成的训练数据集223包括用于训练对话服务210中的机器学习模型以导航到对话树211内的不同节点的句子和匹配的意图。

在框540处,语音识别服务230接收训练数据集223,并且为对话树211的每个群集440生成专用lm232。在各个实施例中,语音识别服务230包括在关联集群440的lm232中的训练数据集223中标识的所有词语。在一些实施例中,除了lm232内的训练数据集223中包括的词语,语音识别服务230还包括其他词语。在一些实施例中,语音识别服务230使用lm232的先前版本作为词汇的基础以将其包括在新生成的lm232中。例如,当更新先前的lm232时,语音识别服务230可以标识要向先前的lm232的现有词汇表添加或从其中去除以生成新lm232的新词语。一旦生成,lm232可以被部署到语音识别服务230(例如,移动到基于云的服务的活动目录,上传到本地服务的计算系统100)。

在框550处,当最终用户导航到对话树211内的给定节点时,语音识别服务230更新lm/对话表224以标识要选择的lm232。在各种实施例中,lm/对话表224被部署到语言模型生成器220、导航跟踪器330或nlp代理180的另一组件。然后,方法500可以结束。

图6是用于使用专用lm232导航对话的方法600的流程图。方法600开始于框610开始,在框610处,导航跟踪器330从语音到文本转换器234的多个专用lm232中选择用于在将话语310转换为文本320时使用的专用lm232。导航跟踪器330基于用户在对话树211(用户正在其中导航)中的当前位置来为语音到文本转换器234选择要使用的专用lm232。导航跟踪器330标识对话树211中的用户的当前节点属于哪个集群440,并且选择与该集群440相对应的专用lm232。在当前节点不属于集群440或者集群中440不与专用lm232相关联的实施例中,导航跟踪器330可以选择通用的领域特定lm232或指定的专用lm232(例如,与进入节点410或中间节点420相关联的专用lm232以用于操作员协助)。

在框620处,语音识别服务230从用户接收话语310。在框630处,语音到文本转换器234根据在框610处选择的专用lm232的词语序列来将话语310中包括的语音的音频转换为文本320。在各种实施例中,语音到文本转换器234可以过滤文本320以去除填充词(例如,“ah(啊)”、“um(嗯)”、“like(像是)”)。语音到文本转换器234使用各种经过训练的机器学习模型将话语310转换为文本320,这些模型将相关联的音素(包括静默期)与lm232中可用的各种词语相关联。机器学习模型选择匹配音素的置信度最高的词语序列。

在框640处,置信度跟踪器340确定在从所选择的专用lm232中选择词语时的置信度是否低于置信度阈值。在一些实施例中,置信度阈值是被转换成文本320的特定话语310中的立即置信度阈值。在其他实施例中,置信度阈值是在一段时间内在将对话树211的特定节点处的若干话语310转换成文本320时的运行置信度阈值。当转换置信度低于置信度阈值时,方法600前进至框670。当转换置信度等于或高于置信度阈值时,方法600前进至框650。

在框650处,置信度跟踪器340确定对话模式是否在话语310中发生变化。例如,用户可以从最频繁地从第一节点导航到第二节点移动到最频繁地从第一节点导航到第三节点。在另一示例中,语音到文本转换器234可以以高置信度标识出用户(或者代表用户的对话服务210)已经导航到不期望的节点(例如,经由话语“goback(返回)”、“returntomenu(返回菜单)”、“thatisnotwhatimeant(这不是我的意思)”)。当置信度跟踪器340在框650处标识出对话模式改变时,方法600前进至框670。当置信度跟踪器340在框650处未标识出对话模式改变时,方法600前进至框660。

在框660处,语音识别服务230将文本320传输给对话服务210。在接收到文本320时,在框690处,对话服务210从文本320中确定用户的意图,并且基于从文本320确定的意图来导航到与用户的会话流中的下一节点。方法600可以在下一节点是出口节点430时得出结论,但是否则可以返回到框610并且继续导航通过对话树211。对话服务210向导航跟踪器330发信号通知下一节点的身份,使得当方法600返回到框610时,导航跟踪器330可以基于什么lm232与下一节点所属的集群440相关联来选择不同的专用lm232或当前专用lm232以用于将下一话语310转换为文本320。

在框670处,当转换置信度低于置信度阈值(每个框640),或者对话模式改变指示通过对话树211的导航流的改变(每个框650)时,置信度跟踪器340可以可选地发信号通知对话服务210寻求用户的澄清。例如,当文本320包括具有从语音转换的低置信度的一个或多个词语时,对话服务210可以前进到对话树211中的澄清节点以请求用户提交新的话语310(例如,“iamsorry,couldyourepeatthat?(我很抱歉,您可以重复一遍吗?)”,“didyoumeanxory?(您是指x还是y?)”)。

在框680处,当转换置信度低于置信度阈值(每个框640),或者对话模式改变指示通过对话树的导航流的移动(每个框650)时,置信度跟踪器340发信号通知语言模型生成器220更新专用lm232和/或对话树211中与给定专用lm232相关联的节点。在各种实施例中,当置信度跟踪器340发信号通知语言模型生成器220更新专用lm232时,语言模型生成器220执行方法500,如关于图5讨论的。

已经出于说明的目的给出了本发明的各种实施例的描述,但是这些描述并不旨在是穷举性的或限于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,很多修改和变化对于本领域普通技术人员将是很清楚的。选择本文使用的术语是为了最好地解释实施例的原理、对市场上发现的技术的实际应用或技术上的改进,或者使得本领域其他普通技术人员能够理解本文中公开的实施例。

在下文中,参考本公开中提出的实施例。然而,本公开的范围不限于特定描述的实施例。相反,可以设想以下特征和元素的任何组合(无论是否与不同的实施例有关)都可以实现和实践所设想的实施例。此外,尽管本文中公开的实施例可以实现优于其他可能的解决方案或优于现有技术的优点,但是给定实施例是否可以实现特定优点并不限制本公开的范围。因此,以下方面、特征、实施例和优点仅是示例性的,而不应当被认为是所附权利要求的要素或限制,除非在(多个)权利要求中明确叙述。同样,对“本发明”的引用不应当被解释为本文中公开的任何发明主题的概括,并且不应当被认为是所附权利要求的要素或限制,除非在(多个)权利要求中明确叙述。

本发明的各方面可以采取完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)或结合有软件和硬件方面的实施例的形式,这些方面在本文中通常可以统称为“电路”、“模块”或“系统”。

本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有用于引起处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明的操作的计算机可读程序指令可以是汇编程序指令、指令集架构(isa)指令、机器指令、机器相关指令、微码、固件指令、状态设置数据、或者用一种或多种编程语言(包括面向对象的编程语言(诸如smalltalk、c++等)和常规过程编程语言(诸如“c”编程语言或类似编程语言))的任何组合编写的任一源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户计算机上执行,作为独立软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(lan)或广域网(wan))连接到用户的计算机,或者可以与外部计算机建立连接(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路系统、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)在内的电子电路系统可以通过利用计算机可读程序指令的状态信息个性化电子电路来执行计算机可读程序指令,以便执行本发明的各方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

可以通过云计算基础设施将本发明的实施例提供给最终用户。云计算通常是指通过网络提供可伸缩计算资源作为服务。更正式地,云计算可以定义为一种计算能力,它提供计算资源与其底层技术架构(例如,服务器、存储、网络)之间的抽象,从而实现对可以通过最少的管理工作或服务提供商交互来快速地配置和释放的可配置计算资源共享池的方便的按需网络访问。因此,云计算允许用户访问“云”中的虚拟计算资源(例如,存储、数据、应用、甚至完整的虚拟化计算系统),而无需考虑提供计算资源的底层物理系统(或这些系统的位置)。

通常,基于按使用付费向用户提供云计算资源,其中仅针对实际使用的计算资源(例如,用户或由用户实例化的多个虚拟化系统消耗的存储空间量)向用户收费。用户可以随时随地从互联网的任何位置访问驻留在云中的任何资源。在本发明的上下文中,用户可以访问云中可用的应用(例如,nlp代理180)或相关数据。例如,nlp代理180可以在云中的计算系统上执行,并且在将语音转换为文本时生成和管理各种专用lm232。在这种情况下,nlp代理180可以结合导航对话树211来将语音转换为文本,并且将lm232存储在云中的存储位置。这样做允许用户从附接到连接到云(例如,互联网)的网络的任何计算系统访问该信息。

尽管前述内容涉及本发明的实施例,但是在不脱离本发明的基本范围的情况下,可以设计本发明的其他和另外的实施例,并且本发明的范围由所附权利要求书确定。

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