采用语音识别和自然语言处理的网络交互式用户界面的制作方法

文档序号:2822003阅读:202来源:国知局
专利名称:采用语音识别和自然语言处理的网络交互式用户界面的制作方法
技术领域
本发明涉及用于网络计算机用户界面的语音识别。更具体来说,本发明涉及一种用语音识别和自然语言处理与计算机进行用户交互的新颖方法和系统。本申请是美国专利申请“Interactive User InterfaceUsing Speech Recognition and Natural Language Processing”(采用语音识别和自然语言处理的交互式用户界面)(申请号09/150,459,申请日1998年9月10日)的部分继续申请。
随着计算机变得更加盛行,明显有许多人在掌握计算机知识和与计算机交流等方面困难很大。用户要操作计算机,就必须经常学习各种已不通用的命令和非直观的过程。例如,大多数计算机都使用基本上是菜单驱动的基于视窗的操作系统。这要求用户学习什么菜单命令或命令序列会产生预定结果。
此外,传统的与计算机的交互的速度经常因诸如键盘或鼠标的手工输入设备而减慢。许多计算机用户都不是打字快手。结果,许多时间都花费在通过这些手工输入设备向计算机发送命令和单词上。已经明显需要有一种更容易、更快速和更直观的与计算机和网络对象(如网站)通信的方法。
有人提出的计算机交互的方法是语音识别。语音识别涉及用软件和硬件协作监测听得见的人类语音并把所监测的语音转换成单词串。如现有技术中已知的那样,语音识别的工作方式是把硬件监测到的语音分解成不可分的更小单位的声音-称作音素(phonemes)。音素是不同的声音单元。例如,单词“those”由三个音素组成;第一个音素是“th”音,第二个是“o”音,第三个是“s”音。语音识别软件试图将所监测的音素与一个存储的字典中的已知单词比较。美国专利4,783,803号中给出了一个语音识别系统的例子,该专利名称为“SpeechRecognition Apparatus and Method”(语音识别装置和方法)(1998年11月8日授权,受让给Dragon Systems公司),这里引用作为参考。目前,市场上有许多语音识别软件包,出自Dragon Systems公司和IBM公司这样的公司。
这些语音识别软件包的一个缺陷是,它们通常只执行命令和控制功能或者口授指令功能。所以,用户仍然需要学习命令语汇才能操作计算机。
有人提出的这些语音识别系统的增强系统,是用自然语言处理系统处理所监测的单词。自然语言处理一般涉及通过分析所监测的单词的语法关系和相对语境,确定它们的概念上的“意思”(例如说话人想要传达什么意思)。例如美国4,887,212号专利叙述了一种用单词隔离、语形学分析、字典查找和语法分析来分析一个输入单词流的方法。该专利名称为“Parser for Natural Language Text”(自然语言文本分析器)(1989年12月12日授权,受让给IBM公司),这里引用作为参考。
与语音识别一起采用的自然语言处理提供一种用口语而不是诸如键盘或鼠标的手工输入操作计算机的强大工具。然而,常规的自然语言处理系统的一个缺点是,它可能无法确定由语音识别系统所监测的单词的准确“意思”。在这样的情况下,用户通常需要重新组合或重新陈述短语(phrase),希望自然语言处理系统将能在后面的尝试中确定准确“意思”。显然,这会导致严重的延迟,因为用户需要重新陈述整个句子或命令。常规系统的另一个缺点是,语音识别所需的时间可能会过分长。这主要由于与大量要处理的信息相比,处理资源的速度有限。例如,在许多常规语音识别程序中,识别话语(utterance)所需的时间很长,因为所搜索的字典文件很大。
常规语音识别和自然语言处理系统的再一个缺点是,它们不是交互式的,因此不能应付新情况。当计算机系统遇到未知的或新的网络对象,计算机与对象之间形成新的关系。常规的语音识别和自然语言处理系统不能应付由以前未知的网络对象形成的新关系所导致的情况。结果,就不可能与计算机进行对话方式的交互。用户需要向计算机传达完整的概念。用户不能说句子片断,因为这些(与前面的话语有关的)句子片断的意思将丢失。
采用语音识别和自然语言处理的计算机所需要的是一种避免上述缺点的交互式用户界面。
本发明是一种用于与采用话语、语音处理和自然语言处理的计算机进行交互的新颖和改进的系统和方法。一般来说,该系统包含一个语音处理器(speech processor),用于在一个第一语法文件中搜索话语的一个匹配短语,并用于在如果在第一语法文件中找不到匹配短语时,在一个第二语法文件中搜索匹配短语。该系统也包括一个用于在一个数据库中搜索匹配短语的对应匹配条目(matching entry)的自然语言处理器,以及一个如果在数据库中找到匹配条目就执行一个与匹配条目相关联的行动(action)的应用界面(applicationinterface)。
在最佳实施例中,如果在数据库中找不到匹配条目,自然语言处理器就用匹配短语更新数据库、第一语法文件和第二语法文件的至少其中之一。
第一语法文件是一个特定语境语法文件。特定语境语法文件是一种含有与特定主题高度相关的单词和短语的语法文件。第二语法文件是一个一般性语法文件。一般性语法文件是一种含有不必按语境解释的单词和短语的语法文件。就是说,一般性语法文件中的单词和短语不属于任何母体语境(parent context)。本发明在搜索一般性语法文件之前搜索特定语境语法文件,从而允许用户用更口语化的方式与计算机交流,其中,所说出的单词如果在特定语境语法文件中被找到,就被参照最近讨论过的主题进行解释。
在本发明的另外一个方面中,如果在一般性语法文件中找不到匹配短语,语音识别处理器就在一个口授语法(dictation grammar)中搜索匹配短语。口授语法是个一般性单词和短语的大单词表。通过首先搜索特定语境语法和一般性语法,预计将大大缩短语音识别时间-因为特定语境语法和一般性语法是物理上比口授语法更小的文件。
在本发明的另外一个方面中,自然语言处理器在搜索数据库之前替换匹配短语中的至少一个单词。这可由自然语言处理器中的用于以通配符替换匹配短语中的至少一个单词的变量置换器(variablereplacer)完成。通过以通配符替换短语中的某些单词(称作“单词变量”),可以大大地减少数据库中条目的数量。此外,自然语言处理器中的代词替换器(pronoun substituter)可以以适当名称替换匹配短语中的代词,便于特定于用户的事实在数据库中的存储。
在本发明的另外一个方面中,一个串格式化器(string formatter)在搜索数据库之前对匹配短语进行文本格式化。一个单词加权器(wordweighter)也在搜索数据库之前按各个单词的相对重要性加权匹配短语中的各个单词。这些步骤便于更快、更准确地搜索数据库。
自然语言处理器中的一个搜索引擎为匹配条目生成一个可信度值(confidence value)。自然语言处理器将该可信度值与一个阀值比较。一个布尔检测器(boolean tester)确定匹配条目中是否存在所需数量的匹配短语中的单词。该布尔检测的作用是验证由搜索引擎返回的结果。
为了消除歧义,自然语言处理器在匹配条目中不存在所需数量的匹配短语中的单词时,提示用户匹配条目是否是话语的正确解释。如果匹配条目不是话语的正确解释,自然语言处理器也提示用户提供另外的信息。用该另外的信息更新数据库、第一语法文件和第二语法文件的至少其中之一。这样,本发明适应性地“学习”更多的话语的意思,由此增强用户界面的效率。
语音处理器将启用并检索一个与匹配条目相关联的特定语境语法,用于其后一个话语的其后一个匹配短语。这保证首先将检索到最相关的单词和短语,由此减少语音识别的次数。
一般来说,本发明包括一种用于为与网络对象(如网页)进行语音交互而更新计算机的方法。一开始,通过网络向计算机传输一个随语音交互系统与网络对象相关联的网络对象表。网络对象表的位置可以嵌置在网络对象内、位于某特定因特网网站或位于存储多个网络对象的网络对象表的统一位置。在网络对象表中检索匹配网络对象的条目。与网络对象匹配的条目可能导致执行一个行动,诸如通过扬声器播出正文言语、采用一个特定语境语法文件或采用一个自然语言处理数据库。网络对象表可以是一个对话定义文件的一部分。对话定义文件也可以包含一个特定语境语法、一个自然语言处理数据库条目,或者包含这二者。
在本发明的另一个方面中,一个网络接口通过网络传输一个对话定义文件。对话定义文件含有一个网络对象表。一个数据处理器在网络对象表中检索与网络对象匹配的表条目。找到匹配表条目后,一个应用界面执行该匹配条目规定的一个行动。
在本发明的另一个方面中,定位并读取一个与网络对象相关的对话定义文件。对话定义文件可以从各种位置读取,例如从网站、从存储介质或者从一个存储多个网络对象的对话定义文件的位置读取。搜索对话定义文件中包含的一个网络对象表,以查找与网络对象匹配的表条目。匹配条目定义一个与网络对象相关的行动,然后由系统执行该行动。除了网络对象表外,对话定义文件也可以包含一个特定语境语法、一个自然语言处理数据库的条目,或者包含这二者。
根据以下结合附图所作的详细说明,本发明的特点、目的和优点将变得更加明显。附图中相同的标注符自始至终标识相对应的对象,其中

图1是一个用于本发明的典型计算机系统的功能框图;图2是本发明的图1的计算机系统的CPU102和存储介质108的扩展的功能框图;图3A-3D是向计算机提供交互式语音识别和自然语言处理的方法的流程图;图4是本发明的典型的自然语言处理(NLP)数据库的选择列的示意图。
图5是按照本发明的典型的对话定义文件(DDF)的示意图。
图6本发明的典型的网络对象表的选择列的示意图。
图7A-7C是本发明的方法的流程图,解释的是交互式语音识别和自然语言处理与网络对象(如网页)的链接。
图8是通过因特网连接到其它计算机、存贮介质和网站的计算机系统的示意图。
现在将参照图1的典型计算机系统100的功能框图叙述本发明。图1中,计算机系统100包含一个中央处理单元(CPU)102。CPU 102可以是本领域中已知的、经过适当编程而能执行本文结合图3A-3D所述方法的任何通用微处理器或微控制器。用于编程CPU的软件可以在存储介质108上找到,或者经过计算机网络从另一个位置得到。例如,CPU 102可以是一个诸如由因特尔公司制造的奔腾Ⅱ处理器之类的普通微处理器。
CPU 102与包括显示器104、手工输入装置106、存储介质108、麦克风110、扬声器112、数据输入端口114和网络接口116在内的多个外围设备通信。显示器104可以是个直观显示设备-如CRT、LCD屏幕、触感屏幕,或者是本领域中已知的用于直观地向用户显示图象和文字的其它监视器。手工输入装置106可以是一个普通键盘、按键盘、鼠标、跟踪球或者本领域中已知的用于手工输入数据的其它输入设备。存储介质108可以是个普通的读/写存储器-如磁盘驱动器、软盘驱动器、CDROM驱动器、硅存储器或本领域中已知的用于存储和检索数据的其它存储设备。重要的是,存储介质108可以远离CPU 102,通过诸如局域网(LAN)或宽域网(WAN)的网络或者因特网与CPU 102相连。麦克风110可以是本领域中已知的任何适合用于向CPU 102提供音频信号的麦克风。扬声器112可以是本领域中已知的任何适合用于重现来自CPU 102的音频信号的扬声器。不言自明,麦克风110和扬声器112可以包含相应的数-模和模-数转换电路。数据输入端口114可以是本领域中已知的任何用于用诸如RS-232、通用串行总线之类的数据协议与外部附件连接的数据端口。网络接口116可以是本领域中已知的用于经过计算机网络传送文件的任何接口-这种网络的例子包括TCP/IP网络、以太网或令牌环网络。此外,在有些系统上,网络接口116可以包括一个与数据输入端口114相连的调制解调器。
所以,图1展示了计算机系统100的各功能单元。计算机系统100的每个单元可以是如上所述的合适的成品部件。本发明提供一种用于用语音与计算机系统100接合的方法和系统。
如图8中所示,计算机系统100可以与因特网700相连(因特网是计算机网络的一个集合)。要连接到因特网700,计算机系统100可以采用网络接口116、与数据输入端口114相连的调制解调器或者本领域中已知的任何其它方法。网站710、其它计算机720和存储介质108也可以通过这类本领域中的已知方法连接到因特网。
现在转至图2,图2表示CPU 102和存储介质108的一个扩展的功能框图。应当明白,图2的功能单元可以整个地以软件或硬件或者软硬件的结合实现。就软件实现而言,软件可以位于存储介质108中或位于计算机网络上的另一个位置。CPU 102中包括语音识别处理器200、数据处理器201、自然语言处理器202和应用界面220。数据处理器201与显示器104、存储介质108、麦克风110、扬声器112、数据输入端口114和网络接口116连接。数据处理器201允许CPU定位这些资源和以这些资源读取数据。自然语言处理器202进一步包含变量置换器204、串格式化器206、单词加权器208、布尔检测器210、代词置换器211和搜索引擎213。存储介质108中含有多个特定语境语法文件212、一般性语法文件214、口授语法216和自然语言处理器(NLP)数据库218。在最佳实施例中,语法文件212、214和216是巴科斯-诺尔(Bakus-Naur)形式(BNF)的文件,描述由用户说出的语言的结构。BNF文件是本领域中众所周知的用于描述语言结构的文件,因此这里将不讨论BNF文件的详细内容。BNF文件的一个优点是,可以用分层的树型结构来描述短语或单词序列,而无需显式地列举这些单词序列的全部组合。所以,BNF文件在最佳实施例中的使用,使存储介质108中的语法文件212、214和216的物理大小最小化,提高了以下文所述方式启用和搜索这些文件的速度。不过,在另外的实施例中可以使用其它文件结构。
现在将结合图3A-3D的流程图,说明图2的这些功能单元的操作和互动。在图3A中,流程始于功能框300,向语音处理器200提供一个话语。话语是有开头和结尾的一系列的声音,可包含一个或多个口语单词。捕获口语单词的麦克风100可以执行功能框300的步骤。或者,可以经过输入端口144或者从存储介质108向语音处理器200提供话语。话语的格式最好是数字格式,如有名的“.wav”音频文件格式。
流程前进到判断框302,语音处理器200在此判断是否特定语境语法212的其中之一已经被启用。如果特定语境语法212被启用,就在功能框304搜索特定语境语法212。在最佳实施例中,特定语境语法212是BNF文件,含有与某个母体语境有关的单词和短语。一般来说,语境就是一个主题领域。例如,在本发明的一个可应用于个人电脑的实施例中,语境的例子可以是“新闻”、“天气”或“股票”。在这种情况下,特定语境语法212就各自含有对应于这些语境中的不同语境的命令、控制单词、描述符(descriptor)、限定符(qualifier)或参数。语境的使用提供一种表示各种信息类型的分层结构。下文将结合NLP数据库218进一步对各语境及其应用作出说明。
如果已经有特定语境语法212被启用,就搜索该特定语境语法212,查找在功能框300所提供话语的匹配项(match)。然而,如果没有特定语境语法212被启用,流程就前进到功能框308,在此启用一般性语法214。
在最佳实施例中,一般性语法214是一个BNF文件,文件中含有的单词和短语本身并不属于某个母体语境,但是可能有某特定语境语法文件212为此存在的一个相关语境。换言之,一般性语法214中的单词和短语可能位于分层语境结构的根部。例如,在一个可应用于个人电脑的实施例中,一般性语法214就含有命令和控制短语。
在功能框310中,搜索一般性语法214,查找在功能框300所提供话语的匹配单词或短语。在功能框312,对是否找到该匹配进行判别。如果找不到匹配项,就在功能框314启用口授语法216。在最佳实施例中,口授语法216是一个BFN文件,文件中含有的单词列表本身既无某个母体语境也无相关语境。例如,在一个可应用于个人电脑的实施例中,口授语法216就含有一个类似于通用词典的较大的通用单词列表。
在功能框316中,搜索口授语法,查找在功能框300所提供话语的每个单词的匹配单词。在判别框318如果找不到匹配单词,则在功能框320可以选择在显示器104显示一个可视的出错讯息或者选择通过扬声器112重播一个有声的出错讯息。过程结束,直到在功能框300有另一个话语被提供给语音处理器200。
所以,如上述说明可见,当某个话语被提供给语音处理器200时,首先搜索启用的特定语境语法212(如果有的话)。如果所启用的特定语境语法212中没有匹配项,则启用并搜索一般性语法214。如果一般性语法214中没有匹配项,则启用并搜索口授语法216。
在最佳实施例中,当语音识别处理器200在搜索特定语境语法212或一般性语法214时,称其处于“命令和控制”方式。在该方式中,语音识别处理器200把整个话语作为整体与语法中的条目作比较。相比之下,当语音识别处理器200在搜索口授语法时,称其处于“口授”方式。在该方式中,语音识别处理器200每次一个单词地把话语与口授语法216中的条目作比较。可以预计,在命令和控制方式中检索整个一个话语的匹配项的速度,一般会比在口授方式中每次搜索一个单词的速度快。
进一步可以预计,任何单个的特定语境语法212在规模上都小于一般性语法214(即总的单词和短语更少),后者在规模上又小于口授语法216。所以,通过首先搜索任何启用的特定语境语法212的方法,有可能更快地找到匹配项(如果有的话),这至少是部分地因为文件更小。同样,通过在搜索口授语法216之前搜索一般性语法214的方法,有可能更快地找到匹配项。
此外,正如下文对本发明能自适应地对特定语境语法212和一般性语法214添加的能力进一步解释的那样,它们将含有最常用的话语。因此可以预计,在特定语境语法212或一般性语法214中找到匹配项的速度更有可能比在口授语法216中的快。
最后,正如下文将进一步解释的那样,在启用的特定语境语法212中的单词和短语,是用户更有可能说出的,因为它们是与用户最近说到的主题高度相关的单词。这也使用户能用语句片断以更口语话的风格说话,其单词的意思被按照所启用的特定语境语法212解释。
通过按上述顺序进行搜索,本发明的搜索的效率,高于在含有所有预期单词和短语的一个大型列表中每次一个条目地进行搜索的效率。
返回到判断框306,如果在特定语境语法212中找到匹配项,则有图3A中所显示的三种可能的下一步步骤。对于所启用的特定语境语法212中的每个匹配条目,可能都有一个相关的要由语音识别处理器200采取的行动。功能框322表示,一个行动可能是指示应用界面220对某个独立软件应用或实体采取某种行动。例如,应用界面220可以用微软公司的语音应用编程接口(SAPI)标准与某外部应用通信。可以指示该外部应用例如访问特定的因特网网站URL或者通过正文向语音转换的方式说出特定的短语。可以采取如下文将结合图4的NLP数据库218所进一步讨论的那样的其它行动。
功能框324表示,另一个行动可以是直接访问自然语言处理(NLP)数据库218中的某一行,由此绕过下文进一步作说明的自然语言处理步骤。功能框326表示,另一个行动可以是把用于所启用语境的单词或短语前置(prepend)到在功能框306在特定语境语法中找到的匹配单词或短语。例如,如果所启用的语境是“movies”(电影),匹配的话语是“8o’clock”(8点钟),则把单词“movies”前置到短语“8o’clock”,组成短语“movies at 8o’clock”(8点钟的电影)。
同样,如果在一般性语法214中找到匹配项,流程就前进到功能框322-在此指示应用界面220采取一个如上所述的行动,或者前进到功能框324,直接访问NLP数据库中的某一行。然而,如果在一般性语法214中找到匹配项,则不进行对语境的前置,因为如上所述,一般性语法214中的条目本身并没有母体语境。
或者,可以在功能框301捕获手工输入的单词,输入到自然语言处理器中。
最后参看图3A,可以通过手工输入装置106输入单词。在这种情况下,不需要进行语音识别,不过仍然需要对所输入单词进行自然语言处理。然后,流程前进到图3B。
图3B中,在功能框328,自然语言处理器202为进行自然语言处理分析而对短语进行格式化。这种格式化是用串格式化器206完成的,可包括去除单词之间的多余空格、把所有字母变成小写(或大写)、把缩略部分完全写出(例如把“it’s”变成“it is”)之类的文字处理。这个格式化步骤的目的是对短语作分析的准备。
流程继续到功能框330,在此由变量置换器204用相关的通配符函数(wildcard function)置换某些“单词变量”,为访问NLP数据库218作准备。这里所用的术语“单词变量”指的是表示数量、日期、时间、货币之类的单词或短语。例如,在一个实施例中,短语“what moviesare playing at 8o’clock”(8点钟在放什么电影)要在功能框330被转换成“what movies are playing at$time”(在$time时在放什么电影),其中“$time”是一个用来代表任一时间值的通配符函数。作为另一个例子,在一个实施例中,短语“sell IBM stock at 100dollars”(按100美元的价格卖出IBM股票)要在功能框330被转换成“sell IBM stock at $dollars”(按$dollar的价格卖出IBM股票),其中“$dollars”是一个用来代表任一美元值的通配符函数。这个步骤可以由一个简单循环来完成,该循环搜索短语中诸如单词“dollar”或“o’clock”的关键记号并用规定的通配符函数置换这些单词变量。为了跟踪在短语中作过替换的位置,可以使用一个数组。这样能在搜索过NLP数据库218后将原始的单词变量重新替换回该短语中的某个位置。
在功能框330用相关通配符函数置换单词变量的目的是减少必须在NLP数据库218中出现的条目的数量。例如,NLP数据库218会只含有“what movies are playing at$time”(在$time时在放什么电影),而不是有一个个单独的对应于8点钟、9点钟、10点钟等等的条目。下文将对NLP数据库218作进一步说明。
在功能框332,由代词置换器211用专有名称置换短语中的代词。例如,在一个实施例中,要把代词“I”(我)、“my”或“mine”(我的)替换成说话人的姓名。这个步骤的目的是能在NLP数据库218中存储和访问特定于用户的事实。例如,要把语句“who aremy children”(谁是我的孩子)转换成“who are Dean’s children”(谁是Dean的孩子),其中Dean是说话人的姓名。这个步骤还是可以用一个简单循环来完成-该循环搜索短语中的代词并把找到的代词替换成专有名称。为了跟踪在短语中作过替换的位置,可以使用一个数组。
在功能框334中,由单词加权器208对短语中的各个单词按它们对于短语的总体意思的相对“重要性”进行加权。例如,在一个实施例中,分配三个加权因数。将最低的加权因数分配给诸如“a”、“an”、“the”和其它冠词的单词。将最高的加权因数赋予可能与短语的意思有重要关系的单词。例如,这些单词可包括NLP数据库218中的所有动词、名词、形容词、和专有名称(proper name)。将中间的加权因数赋予短语中的所有其它单词。这种加权的目的是便于增强NLP数据库218的搜索功能。
图4中表示一个实施例的NLP数据库218的几个选定列的例子。NLP数据库218包含多个列400-410和多个行412A-412N。列400中的各条目代表对NLP数据库来说是“已知的”短语。列402中显示的是列400中每个条目的必需单词的数目。列404中显示的是列400中每个条目的相关语境或子语境(sub context)。列408和410中显示的是列400中每个条目的一个或多个相关行动。应当注意,图4中所示的NLP数据库218只是一个用于叙述本发明的简化的例子。其它实施例可以有更多或更少的具有不同条目的列。
返回到图3B,在功能框336,搜索NLP数据库218,根据NLP数据库218的列400中的条目是否含有短语中的任何单词(或单词的同义词)和这些单词的相对权重,查找短语的可能匹配项。在功能框338,根据短语中每一个单词的出现次数和它们的相对权重,为每一个可能的匹配条目生成一个可信度值。数据库的加权单词检索在本领域中是众所周知的,可以用市场销售的搜索引擎(如位于美国弗吉尼亚州阿灵顿的DT软件公司生产的“dtsearch”)执行。同样,同义词检索在本领域中是众所周知的,可以用诸如由位于美国新泽西普林斯顿的普林斯顿大学认识科学实验室开发的“WordNet”这样的可公开获得的工具执行。搜索引擎可以是自然语言处理器202的一个组成部分。
在判断框340,自然语言处理器202判断是否可能匹配条目中的任一条目有大于或等于某个预定最小阀值T的可信度值。阀值T代表据其可判定短语是否与NLP数据库中任何条目匹配的可接受的最低可信度值。如果没有可信度值大于或等于T的可能匹配条目,则流程就前进到功能框342,在此将一个可选的出错讯息或者通过显示器104向用户显示,或者通过扬声器112重播。在一个实施例中,向用户显示的任何出错讯息的类型(如果有的话),可以取决于在最高可信度的NLP数据库条目中找到的“命中”有多少(即短语中有多少匹配单词)。有零个或一个命中与有两个或更多的命中相比,会生成不同类型的出错讯息。
然而,如果NLP数据库218中至少有一个条目的可信度值大于或等于T,则流程前进到功能框344,在此从短语中剔除“噪声”单词。“噪声”单词包括相对于短语中的其它单词来说对短语的总体意思没有重要贡献的单词。这些单词可包括冠词、代词、连词和类似性质的单词。“非噪声”单词则包括对短语的总体意思有重要贡献的单词。“非噪声”单词包括动词、名词、形容词、专有名称和类似的单词。
流程前进到图3C,在功能框346从NLP数据库218的列402中提取最高可信度匹配条目的非噪声单词要求。例如,如果最高可信度匹配短语是行412A中的条目(例如,“what movies are playing at$time”(在$time时在放什么电影)),则所要求的非噪声单词的数目是3。
在判断框348,进行一次检测,确定该短语所要求的非噪声单词的数目实际上出现在从NLP数据库218提取的最高可信度匹配条目中。这个检测是对在功能框336中进行的相关风格搜索(relevance-stylesearch)的精确性的验证,不言自明,一个可以生成大于最小阀值T的可信度值的条目,未必是短语的一个可接受的匹配项。
在判断框348进行的检测的性质是一个由布尔检测器210进行的布尔“AND”检测。该检测确定短语中每一个非噪声单词(或其同义词)是否实际上出现在最高可信度条目中。如果有足够数量的实际上出现在最高可信度条目中的必要单词,流程就前进到功能框350,自然语言处理器202在此指示应用界面220采取列408或410中的一个相关行动。不言自明,也可以有另外的行动列。
例如,如果最高可信度条目是行412A中的条目,并且判断框348的布尔检测确定列400中的条目中的短语中实际上有3个非噪声单词,则要采取列408中的相关行动(例如访问电影网站)。NLP数据库中的其它条目有其它的相关行动。例如,如果最高可信度条目是行412E中的条目(例如,“what time is it”(现在几点钟)),则相关行动可能是,自然语言处理器202指示一个文字转换至语音应用程序(未予示出)通过扬声器112向用户报出当前时间。另一个例子是,如果最高可信度条目是行412N中的条目(例如,“show me the news”(给我显示新闻)),则第一个相关行动可能是访问因特网上预定的新闻网站,第二个相关行动可能是指示一个图象显示应用程序(未予示出)显示新闻的相关图象。也可以采取不同的或另外的行动。
同样,对于短语,如果最高可信度条目含有如在判断框348确定的预定数量的非噪声单词,自然语言处理器202就指示语音识别处理器200启用用于列404的相关语境的特定语境语法212。所以,对于行412A,要启用用于语境“movies”(电影)的特定语境语法212。所以,当在图3A的功能框300向语音识别处理器200提供下一个话语时,语音识别处理器在搜索一般性语法214之前要在所启用的特定语境语法212中检索“movies”(电影)。如上所述,启用恰当的特定语境语法212大大增加快速、成功的语音识别的可能性,并且增强了用户以口语化风格与计算机沟通的能力。
然而-回到判断框348,如果从NLP数据库218提取的最高可信度条目中实际上没有短语中预定数量的非噪声单词,流程就前进到功能框354,通过显示器104或扬声器112提示用户回答是否指的是最高可信度条目。例如,如果用户说“how much is IBM stock selling fortoday”(IBM股票今日卖多少),则NLP数据库218中的最高可信度条目可能是行412B中的条目。在这种情况下,尽管相关因数可能很高,必要单词(或其同义词)的数量却可能不够。所以,要在功能框354提示用户回答他是否指的是“what is the price of IBM stock on August28。1998”(1998年8月28日IBM股票的价格是多少)。
用户可以作肯定回答或否定回答。如果在判断框356确定用户作了肯定回答,则在功能框350采取与该最高可信度条目相关的行动,然后在功能框352启用相关的特定语境语法212。
然而,如果在判断框356确定用户作了否定回答,流程就前进到图3D,从NLP数据库218的列404提取用于该最高可信度条目的相关语境,并在功能框360提示用户用基于语境的交互对话提供信息。例如,如果用户说“what is the price of XICOR stock today”(XICOR股票今日价格是多少),并且NLP数据库218中的最高可信度条目是行412B(例如“what is the price of IBM stock on$date”(日期$的IBM股票的价格是多少)),则在功能框354提示用户回答他是否指的就是这个意思。
如果用户回答是否定的,则在功能框358从列404提取语境“stock”(股票),并通过显示器104或扬声器112把用于该股票语境的基于语境的交互对话向用户表示。这种基于语境的交互对话的作用是提示用户提供XICOR股票的名称和股票报价符。用户可以口头回答所需信息。对于每一个可能的语境,可以采用不同的基于语境的交互对话。例如,基于语境“weather”(天气)的交互对话的作用是提示用户提供姓名和希望了解其天气情况的地点和名称(例如城市)。同样,基于语境“news”(新闻)的交互对话的作用是提示用户提供文章的类型、新闻来源、新闻网站的因特网URL或其它有关信息。
基于语境的交互对话结束后,在功能框362,更新NLP数据库218、一般性语法214和特定语境语法212,以包括新的信息。这样,下一次用户询问该信息时,就会找到合适的匹配项,无需提示用户提供更多信息就能采取适当的行动。所以,本发明自适应地“学习”识别用户说出的短语。
在本发明一个实施例中,NLP数据库218、特定语境语法212、一般性语法214和口授语法216的一个或多个也含有与每个条目相关联的时间戳值(未予示出)。每次使用一个匹配条目时,就更新与该条目相关联的时间戳值。每隔一定时间,或者由用户决定,把时间戳值在一定日期或时间之前的条目从它们各自的数据库/语法中删除。这样,通过“清除”旧的或过时的条目,可以使数据库/语法的大小保持在高效的程度。这也有助于避免错误的匹配。
在本发明一个实施例中,语音识别和自然语言处理可以被用来与网络对象(networked objects)互动,连网对象例如是有语境敏感的基于语音的界面的万维网(“WWW”或“Web”)网页。
图5表示一个典型的对话定义文件(DDF)500,它表示为把语音识别和自然语言处理与某个因特网对象(诸如文本文件或图象文件,或者是最佳实施例中的网页)相联系所必需的信息。尽管在其最简单实施例中,对话定义文件500由一个网络对象表510组成,DDF也可以含有另外的特定语境语法文件214和另外的用于自然语言处理(NLP)数据库218的条目,如图5所示的那样。DDF 500的最佳实施例包括一个网络对象表510,一个特定语境语法文件214和一个含有指向自然语言处理数据库218的条目的文件。可以用本领域的任何已知方法,如Lempel-Ziv压缩法,把这些成分压缩并组合进DDF文件500。特定语境语法文件214和自然语言处理(NLP)数据库218如前面段落中所述的那样。网络对象表510是一个存储器结构(如存储器树)、链或表,它把资源的地址与各种行动、语法或NLP数据库218中的条目相联系。
图6中表示网络对象表510的一个典型实施例。图6表示一个存储器表,表中可含有对应下列内容的各条目列网络对象520、文本到语音转换(TTS)标志522、文本言语524、使用语法标志526、附接语法标志528、“is yes/no”(是/否)标志、““是(do yes)”的相应操作”(do yes)532和““否”的相应操作”(do no)534行动。表中的每行540A-540E代表与一个网络对象相关的语法和言语。本发明的典型实施例通过统一资源定位器(URL)来引用网络对象520。URL是一种指定作为万维网一部分的因特网上的资源的地址的标准方法。由于这个标准用于说明因特网资源的位置是本领域中众所周知的,所以这里将不讨论URL的详细内容。URL的一个优点是,除了许多网络对象设备和通信协议外,URL能指定各种网络对象格式的信息,包括超文本的、图象的、数据库的或其它的文件。
正文到语音(TTS)标志522与正文言语524组合起来时,指出在对应的网络对象被传输时是否应当通过扬声器播出一个初始语句。例如,当传输行540A的网络对象列520中所列的网页(http://www.conversational sys.com)时,TTS标志522是作过标记的,这表明正文言语524“Hello,welcome to ConversationalSystems”(你好,欢迎来到谈话系统)要通过扬声器112播出。
下面三个标志涉及使用与这个网络对象相关的语法。“使用语法”标志526或“附接语法”标志528的肯定标记指出出现一个与所指示的网络对象相关的特定语境语法文件214。“使用语法”标志526的标记指出该新的特定语境语法文件214代替现有的特定语境语法文件,禁用现有的文件。“附接语法”标志528指出该新的特定语境语法文件214应当与现有的特定语境语法文件同时启用。
最后,其余列的条目涉及一个“是/否”语法结构。如果“为是/否”标志530是作过标记的,则启用一个标准“是/否”语法。当启用了一个标准“是/否”语法时,向计算机说出的肯定性命令导致计算机执行““是”的相应操作”条目532中所指出的命令。类似地,向计算机说出的否定性命令导致计算机执行““否”的相应操作”条目534中所指出的命令。““是”的相应操作”532列和““否”的相应操作”534列中的条目可以是命令,也可以是指向NLP数据库218中嵌入的命令的指针。例如,如行540B所示,“是/否”标志是作过标记的。如果给计算机一个肯定性回答,例如“是”,则导致执行““是”的相应操作”条目532中的相应命令;在这个具体情况中,该条目是数字“210”,是对NLP数据库中第210条命令的引用。如果回答是“否”,则导致计算机执行NLP数据库中第211条命令。
现在转至图7A,图中表示向互连计算机(如正在浏览万维网的计算机)提供言语和语音命令的方法和系统的流程图。图7A-7C的方法可以与图3A-3D的方法结合起来使用。在功能框602中,向万维网浏览器提供一个网站URL(网络对象)。网络浏览器是一种用于在因特网中导航的程序,这是本领域中众所周知的。功能框602的向浏览器提供URL的步骤可以很简单,只要用户键入该URL,或者让用户选择一个对所选网站URL的“链接”。该步骤也可以用前面结合与NLP数据库218中每个条目相关的行动所述的语音命令来完成。在功能框604,计算机得到URL后,必须决定是否能解析该URL内指定的网站的因特网地址。这个解析过程是本领域中一个众所周知的过程。如果计算机不能解析因特网地址,在功能框605,在浏览器窗口中显示一个出错讯息,然后,系统返回其初始状态600。如果解析了因特网地址,在功能框606,计算机向该网站发送一个对该网页的请求。
在功能框608,作出判断,看网站是否发送网页。如果网站没有响应,或者未能发送网页,则在功能框605,在浏览器窗口中显示一个出错讯息,然后,系统返回其初始状态600。如果网站返回网页,则在功能框610,在浏览器窗口显示网页。
在判断框612,计算机100判断是否该网站的对应DDF文件500已经出现在计算机100上。如果DDF文件已经出现,流程就前进到图7C;否则,流程就前进到图7B。
转至图7B。如果DDF文件500不存在,计算机检查是否DDF文件500的位置被以URL的形式编码在网页的超文本标记语言(HTML)内。(注意,HTML是本领域中众所周知的,因此这里将不讨论该语言的详细内容)。在HTML代码内对DDF文件位置编码的方法是,将DDF文件位置列在一个初始HTML元标记(meta-tag)中,例如<meta DDF=“http://www.conversationalsys.com/ConverseIt.ddf”>
或者把一个脚本标记(scripting tag)直接写入浏览器所支持的HTML的变体(variation),<!--<DDF=“http://www.conversationalsys.com/ConverseIt.ddf”>-->
如果DDF文件位置信息被编码在网页内,则在功能框616,解析该位置的因特网地址,然后在功能框626,计算机请求传输DDF文件500。
另一方面,如果DDF文件500的位置没有被编码在网页内,它就有几个可能的存储位置。它可能存储在网站的一个预定位置-如根目录中某个文件位置,或者在一个不同的中央位置-例如在另一个因特网服务器上或图1的存储介质108中。功能框618和620检查这些可能。功能框618判断DDF文件是否位于该网站。在该步骤中,计算机向网站发送查询,询问是否存在DDF文件500。如果DDF文件500在网站存在,在功能框626,计算机请求传输DDF文件500。如果DDF文件不在网站,在功能框620,计算机查询中央位置是否有该网站的一个DDF文件。如果DDF文件在网站存在,在功能框626,计算机请求传输DDF文件。如果找不到DDF文件500,在功能框622,就关闭任何当前DDF文件的现有部分,诸如网络对象表510、与网站相关的NLP数据库218和任何以前访问过的网站的特定语境语法214。此外,在功能框624,按非语音启动的网站对待该网站,并且只使用标准语法文件。标准语法文件系统是现有的不包含任何与网络对象相关联的特定语境语法文件的相关语法的系统上的语法文件。
如果DDF文件500在功能框626被请求,并且其传输不成功,则在功能框622关闭任何当前DDF文件500的任何现有部分,并在功能框624,按非语音启动的网站对待该网站,并且只使用标准语法文件。
如果DDF文件500在功能框626被请求,并且在功能框628判断其传输是成功的,则在功能框630,它替代任何以前的DDF文件。在功能框632,析取DDF文件500的任何成分,诸如网络对象表510、特定语境语法文件214和NLP数据库218。可以用类似的技术来获得实现图3A-3D中所示方法的必要软件,包含图2的功能单元。
流程转移到图7C。在功能框634,由计算机将网络对象表510读入存储器。如果功能框636判断出网页URL存在于网站网络对象表510中,则它由如图6中所示的表的某行540A-540E表示。网络对象表的每行表示用户可用于该特定网页的语音交互。如果不存在对应于该网页的行,则不存在用于该网页的语音交互,于是处理结束。
如果功能框636判断出网页URL存在于网站网络对象表510中,则在功能框638,计算机检查TTS标志522是否作了标记,以决定是否把一个正文言语524与网页相联系。如果有一个正文言语524,就在功能框640播出它,然后流程继续。如果由判断框642判断出有一个与网页相关联的特定语境语法文件,就在功能框644启用它,然后在功能框646启用NLP数据库218。如果没有与网页相关联的特定语境语法文件,在功能框646只启用NLP数据库218。一旦NLP数据库被启用,功能框646,系统就按如以上所述的图3A-3C的方式运行。
总之,本发明提供一种用于计算机的连网的交互式用户界面的方法和系统。通过使用通过对话定义文件与因特网对象联系的特定语境语法,本发明减少语音识别时间,提高用户以口语话风格与因特网对象(如网页)沟通的能力。此外,通过采用对各种语法和NLP数据库的适应性更新,本发明进一步提高交互的效率。
前面的最佳实施例说明,使本领域任何熟练人员都能制造或使用本发明。这些实施例的各种修改,对本领域的熟练人员来说显而易见,无需发明性技能,就能将本文中所界定的一般原理应用于其它实施例。所以,本发明不限于本文所示的实施例,而应涵盖与本文所披露的原理和新颖特点相符的最宽的范围。
权利要求
1.一种用于为与网络对象进行语音交互而更新计算机的方法,该方法包含下列步骤通过网络传输一个与网络对象相关联的网络对象表;在网络对象表中检索网络对象的匹配条目;和如果在网络对象表中找到所述匹配条目,就执行一个与所述匹配条目相关的行动。
2.权利要求1的方法,其中,网络对象表是从一个网站读取的。
3.权利要求1的方法,其中,网络对象表是从一个存储多个网络对象的网络对象表的位置读取的。
4.权利要求1的方法,其中,将网络对象表包含在一个也包含一个特定语境语法的对话定义文件中。
5.权利要求1的方法,其中,将网络对象表包含在一个也包含一个自然语言处理数据库的条目的对话定义文件中。
6.权利要求1的方法,其中,将网络对象表包含在一个也包含一个特定语境语法和一个自然语言处理数据库的条目的对话定义文件中。
7.一种用于为与网络对象进行语音交互而更新计算机的系统,该系统包含一个网络接口,用于传输一个与一个网络对象相关联的对话定义文件,其中,对话定义文件含有一个网络对象表;一个数据处理器,用于在网络对象表中检索网络对象的匹配条目;和一个应用界面,用于在如果在网络对象表中找到所述匹配条目时,就执行一个与所述匹配条目相关的行动。
8.一种用于为与网络对象进行语音交互而更新计算机的方法,该方法包含下列步骤查找一个与一个网络对象相关联的对话定义文件,其中,对话定义文件包含一个网络对象表;读取对话定义文件;在网络对象表中检索网络对象的匹配条目;和如果在网络对象表中找到所述匹配条目,就执行一个与所述匹配条目相关的行动。
9.权利要求8的方法,其中,对话定义文件是从一个网站读取的。
10.权利要求8的方法,其中,对话定义文件是从一个存储多个网络对象的对话定义文件的位置读取的。
11.权利要求8的方法,其中,对话定义文件是从存储介质读取的。
12.权利要求8的方法,其中,对话定义文件包含一个特定语境语法。
13.权利要求8的方法,其中,对话定义文件包含一个自然语言处理数据库的条目。
14.权利要求8的方法,其中,对话定义文件包含一个特定语境语法和一个自然语言处理数据库的条目。
全文摘要
一种用于通过计算机用话语、语音处理和自然语言处理与网络对象交互的系统和方法。一个数据定义文件联系网络对象和一个语音处理器。数据定义文件包含一个与网络对象(包括语法文件和自然语言处理器)有关的存储器结构。语音处理器在第一语法文件检索话语的匹配短语,如果在第一语法文件找不到匹配短语时,就在第二语法文件检索匹配短语。系统也包含一个自然语言处理器,用于在一个数据库检索匹配短语的匹配条目;一个应用界面,用于如果在数据库找到匹配条目时,就执行一个与匹配条目相关的行动。系统采用特定语境语法,由此增强语音识别和自然语言处理的效率。系统另外还能自适应地以交互方式“学习”单词和短语以及它们的相关意思。
文档编号G10L15/00GK1325528SQ99813098
公开日2001年12月5日 申请日期1999年9月8日 优先权日1998年9月9日
发明者D·C·韦博 申请人:单一声音技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1