用于话音激活网页的系统和方法

文档序号:2834581阅读:364来源:国知局

专利名称::用于话音激活网页的系统和方法版权通知本专利文档的公开的一部分包含受到版权保护的材料。版权所有者并不反对对专利文档或专利公开的任何一个的影印复制,因为它出现在专利和商标局专利文件或记录中,然而无论如何,保留全部版权权利。相关申请本申请要求2003年6月6日提交的题为SYSTEMANDMETHODFORVOICEACTIVATINGWEBPAGES的美国临时申请No.60/476,815的优先权,该申请在此以整体引入作为参考。本申请亦涉及以下未决专利申请;其每个在此以整体引入作为参考专利合作条约国际申请No.PCT/US01/45223,题为AMETHODANDSYSTEMFORVOICEACTIVATINGWEBPAGES,2001年11月30日提交,2002年6月6日公开,国际公开No.WO/02/44887A2;以及每个临时专利No.60/250,809,题为AMETHODANDSYSTEMFORVOICEACTIVATINGWEBPAGES,2000年12月1日提交。
背景技术
:在此公开的发明总体上涉及话音激活网页。更具体而言,本发明提供用于话音激活包含网页和复杂网页的多个窗口的系统和方法。在过去的十年中,自动语音识别(“ASR”)系统已经前进到可通过安装在中等价格个人计算机和工作站上的ASR系统获得高程度的识别精度的点。这已经导致可用于消费者和工业应用的ASR系统的数量的增加。ASR系统依赖于话音语法来识别经由麦克风输入的声音命令并作用于那些命令。话音语法分为两种类别基于规则的语法和自由语音语法。基于规则的语法允许对有限预定短语集的识别。如果话语(utterance)导致一事件或事件集发生,则每个基于规则的语法被调用。如果经由麦克风输入的话语匹配对应于存储在所述预定短语集内的短语的语音模板,则基于规则的语法被调用。例如,用户可以在以字处理程序编辑文档的同时说“保存文件”以调用保存命令。另一方面,自由语音语法识别诸如商务英语的给定域中的大的字集。这些语法通常用于口述应用。这些系统的一些例子是DragonNaturallySpeaking和IBMViaVoice7Millennium。ASR系统亦已经引入了文本到语音(“TTS”)能力,其使ASR系统能通过使用合成话音来说出图形再现的文本。例如,ASR系统可通过扬声器朗读字处理器内的加亮段落。ASR系统已经与网浏览器结合以创建话音使能的网浏览器。话音使能的网浏览器允许用户通过使用调用基于规则的语法的话音命令来导航于(navigate)因特网。这些浏览器所使用的允许话音命令包括使软件执行网浏览器所使用的传统命令的话语。例如,如果用户将“首页(home)”说到麦克风中,则话音使能的浏览器将执行与用户点击话音使能的网浏览器的“首页”按钮时话音使能的网浏览器将执行的例行程序相同的例行程序。另外,一些话音使能的网浏览器基于网页内容来创建基于规则的语法。在网页被下载和显示时,一些语音使能的网浏览器基于包含在网页内的链接来创建基于规则的语法。例如,如果网页显示链接“公司首页(companyhome)”,则这样的话音使能的网浏览器将创建在该网页被显示时有效的基于规则的语法,使得如果用户将短语“公司首页”发声到麦克风中,则话音使能的网浏览器将显示与所述链接关联的网页。这种途径的一个缺点是从网页内容产生的规则在长时间段内是固定的,这是因为网页并不经常重新设计。另外,基于规则的语法是从主要想用于可视显示的网页内容产生的。实际上,这些系统限制了用户说出在屏幕上所显示的。网页亦可引入使声音输出的音频元素。目前,网页可以以两种方式将音频元素引入其网页中。引入音频元素的第一种方式是使用音频波文件内容来将人发出的话音提供给网页。使用音频波文件允许网页设计者独立设计网页的可视和音频部分,但该自由度和增加的功能性导致高价格。在因特网上将二进制声音文件传递给末端用户所需的带宽极大。引入音频元素的第二种方式是平衡ASR系统的功能性。话音使能的网浏览器可以以如此方式来利用ASR系统的TTS功能性,以使计算机“说出”网页的内容。使用这种途径使察看有或没有音频元素的网页所需的带宽近似相同,但将网浏览器可以讲述的内容的主题限制于网页的内容。话音XML(VXML)为网页设计者提供了另一个选择。VXML允许用户通过使用典型地在电话上使用的音频命令来单独导航于网站。VXML所需要的是,TTS翻译器通过将可视网页翻译成网页的音频表达来将网页读给用户。用户通过说出用户想要跟随的链接来导航于该网。利用这种途径,用户可通过仅使用用户的话音来导航于因特网,但音频内容典型地从主要设计用于可视解释的网页内容产生;并且可视接口被从用户的经验中去除。这样,通过发明在专利合作条约国际申请No.PCT/US01/45223中进一步描述的系统,发明人解决了独立创建不需要大量传输带宽并结合网页可视组件而存在的网页音频组件的需要,该申请在此以整体引入作为参考。’45223申请公开了尤其用于激活单个、简单可视网页中的话音内容的系统和方法。’45223申请的系统经由一代理服务器来控制网页内的语音内容,该代理服务器具有对与浏览器相同的计算机设备(或该设备的声音输出通道)的访问。该代理服务器检查用于语音内容的数据,与此同时将所有其它所请求的数据馈送给浏览器。在用户点击链接的情况下,由URL规定的浏览器所请求的数据通过代理服务器传递到规定的网服务器。来自该网服务器的所请求的材料传递回到浏览器。然而,在用户经由语音事件请求新的URL的情况下,代理服务器经由浏览器请求来自规定网服务器的该数据(例如,执行网服务器上的规定程序或其它命令)。这样,所得到的数据需要被“推”回到浏览器。这是通过使用在’45223申请中进一步描述的multipart/x-mixed-replacemime类型来完成的。这种类型使浏览器保持浏览器和代理服务器之间的连接打开,并且继续接受数据,直到给定信号或其它令牌被发送或连接被关闭。例如,终止可由于从浏览器请求的新“点击”或由于新页中没有语音内容而发生。终止的情形进一步描述在如’45223申请的图3B中所示并且进一步在其中描述的真值表中。发明人已经确定了在此进一步描述的附加改进,包括如何扩展系统以对包含复杂、聚集内容或来自同时工作的多个页的内容的网页起作用,例如在给定浏览器的多个实例或窗口中,或者在给定窗口内的多个框架内。
发明内容本发明尤其解决了以上讨论的有关话音激活网页的问题。在一个实施例中,所述系统包括一种方法,用于处理对规定网页的数据的话音请求,该请求包括基于规则的语法语句,所述方法包括标识与所述基于规则的语法语句关联的语法;确定被标识为与所述语法关联的第一连接是否被规定在标识一个或多个连接的数据结构中;以及如果被标识为与所述语法关联的第一连接被规定在所述数据结构中,则处理能够呈现网页并且与所述第一连接关联的窗口的至少部分中的请求。在一些实施例中,所述请求包括这样的请求,其包括具有短语部分、命令部分和标签部分的基于规则的语法语句。在一些实施例中,如果被标识为与所述语法关联的第一连接未被规定在所述数据结构中,则所述系统处理能够呈现网页并且与第二连接关联的新窗口的至少部分中的请求。所述第二连接被添加给所述数据结构并且被与所述语法关联。在一些实施例中,所述新窗口亦与所述连接关联。所述系统亦包括如果与那个连接关联的窗口被关闭则去除来自所述数据结构的连接的标识。在一些实施例中,所述新窗口包括与第二连接关联的计算设备所加载的最后的窗口,与第二连接关联的计算设备处的活动窗口,或者是根据用户偏好来选择的。在一些实施例中,所述语法是与由关联于一连接的计算设备所加载的最后窗口相关联的语法,与关联于一连接的计算设备处的活动窗口相关联的语法,或者是根据用户偏好来选择的。所述窗口可包括浏览器窗口或窗口的部分,如框架。在一些实施例中,所述请求包括对复杂数据的请求,如对在网页中嵌入的复杂的数据的请求。在一些实施例中,所述系统检查与所述请求关联的头部或脚部(footer)以确定所请求的数据的类型,例如规定mime类型的头部或脚部。在一些实施例中,所述系统检查与所述请求关联的文件名或文件扩展以确定所请求的数据的类型。在一些实施例中,所述系统包括一种方法,用于处理对规定网页的数据的话音请求,该方法包括从一连接接收规定网页的数据,该数据包括具有短语部分、命令部分和标签部分的基于规则的语法语句;确定所述连接是否被规定在标识一个或多个连接的数据结构中;选择与来自标识一个或多个语法的数据结构的连接关联的语法;以及如果所述连接被规定在标识一个或多个连接的数据结构中,则通过使用能够呈现网页并与所述连接关联的第一窗口的至少部分中的所选语法来处理所述基于规则的语法语句。在一些实施例中,如果所述连接未被规定在标识一个或多个连接的数据结构中,则所述系统选择与来自规定一个或多个语法的数据结构的连接关联的新语法并使用与所述连接关联的新窗口的至少部分中的所选语法来处理所述基于规则的语法语句。在一些实施例中,所述系统亦将所述连接添加到规定一个或多个连接的数据结构并且将所述连接与规定一个或多个语法的数据结构中的新语法相关联。在一些实施例中,所述系统包括一种方法,用于处理对规定网页的数据的话音请求,该方法包括接收对规定网页的数据的请求,该请求包括具有短语部分、命令部分和标签部分的基于规则的语法语句;确定一窗口是否与所述请求关联;以及如果一窗口与所述请求关联,则处理与所述请求关联的窗口的至少部分中的请求。在一些实施例中,如果一窗口不与所述请求关联,则所述系统处理新窗口的至少部分中的基于规则的语法语句。在一些实施例中,所述系统标识与所述请求关联的连接并且将该连接与所述新窗口相关联。本发明在附图的图中图示,所述附图旨在是示例性的而非限制性的,其中相同的参考旨在表示相同或对应的部分,并且其中图1是根据本发明一个实施例的执行对网页的话音激活的系统的网络体系结构的块图;并且图2是根据本发明一个实施例的执行对网页的话音激活的方法的流程图。具体实施例方式参考图1,所呈现的是本发明的实施例。图1呈现根据本发明一个实施例的执行对网页的话音激活的系统的网络体系结构的块图。如所示,所述系统包括连接到网络105的一个或多个客户设备100、网服务器110、浏览器115、超语音置标语言(hyper-speechmarkuplanguage)(“HSML”)处理器120、线程模块(threadmodule)125、语音模块130、语音引擎135、代理服务器140和浏览器应用程序接口(“API”)145。客户设备100可包括例如客户计算机、蜂窝电话、个人数字助理(“PDA”)、输入板(tablet)PC以及其它配备有处理器并能够支持如在此和在’45223申请中进一步描述的浏览器115软件模块的类似电子设备。客户设备100经由网络105在通信上耦合到网服务器110或其它类似服务器。例如,在一个实施例中,客户设备100可能经由因特网、局域网、广域网、无线网络或其它类似网络或者其组合连接到网服务器110。客户设备100执行浏览器115,如网浏览器,其通常被配置成接收来自网服务器110的超文本置标语言(“HTML”)页和其它数据文件,以及关联的视听文件和本领域公知的其它类型文件。例如,在一些实施例中,客户设备执行InternetExplorer浏览器、Netscape浏览器、Opera浏览器和其它类似的浏览器。浏览器115亦在通信上耦合到超语音置标语言(“HSML”)处理器120,如在此和在’45223申请中进一步描述的。HSML处理器120包含软件模块、数据结构和其它程序代码,其通常被配置成处理和呈现包含HSML数据、HTML数据和其它关联数据,如浏览器115中的视听数据,如在此和在’45223申请中进一步描述的。在一些私生活这里,HSML处理器120包括线程模块125和语音模块130。线程模块125包含附加软件模块、数据结构和其它程序代码,其通常被指向处置线程和检查在浏览器115和网服务器110以及连接到网络的其它设备之间传递的数据内容。线程模块125在通信上与语音模块130耦合。语音模块130包含附加软件模块、数据结构和其它程序代码,其通常被指向协调HSML处理器120和语音引擎135之间的通信。例如,语音模块130可能协调HSML处理器120和语音引擎135,如DragonNaturallySpeaking、IBMViaVoice或本领域公知的另一种语音引擎之间的通信。在一些实施例中,语音模块130在通信上耦合到语音引擎135并将HSML数据和其它数据传递到语音引擎135以便于处理。在一些实施例中,语音引擎135传递HSML标签数据或其它数据,其指示语音模块130应当激活新页处理功能性或例行程序以处理新页。语音模块140然后将新页的地址从语音引擎135返回到线程模块125以传送到浏览器115,网服务器110,或连接到网络的其它计算设备。在一些实施例中,语音模块130处理将得自HSML数据或其它数据的新语音数据加载到语音引擎135中的页并将新语法和其它信息的加载指引到语音引擎135中。语音模块130亦协调语音引擎135和线程模块125之间的通信。例如,语音引擎135可能传递HSML数据或其它数据,其指示新页引导被传递到语音模块130以便于处理。语音模块130然后将把新页的地址从语音引擎135返回到线程模块125以传送到浏览器115,网服务器110,或连接到网络的一些其它设备。在一些实施例中,HSML处理器120驻留并执行在如图1中所示的代理服务器140上。在其它实施例中,HSML处理器120驻留宾执行在与浏览器协调的设备上,或不然在通信上耦合到浏览器,并且仅象如在’45223申请中进一步描述的代理服务器那样起作用。在这两个前述实施例的任何一个中,网服务器110和浏览器115之间的通信由此通过HSML处理器120而不是直接的。在一些实施例中,HSML处理器120使用multipart/x-mixed-replacemime类型来维持浏览器115和HSML处理器120或代理服务器140之间的打开的连接(openconnection),并且将数据推到浏览器,如在此和在’45223申请中进一步描述的。例如,在一些实施例中,所述系统以无连接方式来实施并且维持诸如按窗口地址(per-windowaddress)的地址,以跟踪与窗口关联的请求。窗口中的服务,如小应用程序,接受请求(例如以更新其本身等)。例如代理服务器140的过程或在客户侧的其它过程确定内容应当指向的窗口并且处置与语音引擎135的通信。在其它实施例中,HSML处理器120驻留在与浏览器115系统的设备上(或不然在通信上与浏览器115耦合),其中HSML处理器120经由API145与浏览器通信,并且HSML处理器120和浏览器115两者均直接与网服务器110通信。例如,浏览器可能包含插件或其它类似API,其指向与HSML处理器120通信并且能够传递或执行命令、程序指令和其它数据于HSML处理器120和浏览器115之间。这样,在一些实施例中,浏览器115可能接收来自网服务器110的具有HSML数据的网页并且使用API145将HSML数据和关联指令传递到HSML处理器120以便于如在此进一步描述的处理。在一些实施例中,所述系统包括编程,例如浏览器115中的小应用程序,其无需单独的代理服务器140而起作用。例如,小应用程序可与语音引擎135、与网服务器、与浏览器、与其它小应用程序或与其它网络元素直接通信以协调页HSML数据和其它类型数据加载。这样,分布式模型被呈现,其中小应用程序针对哪个小应用程序具有焦点或活动语法、如何解决规则冲突等来彼此协商。在一些实施例中,支持该功能性的数据结构被维持在浏览器存储器中或经由本领域公知的通信方法传递于小应用程序之间。图2呈现根据本发明一个实施例的执行对网页的话音激活的方法的流程图。所述系统检查浏览器115和网服务器110或其它服务器之间的数据传递,步骤150。例如,在一些实施例中,浏览器115处理HTML文档或包括复杂窗口的其它文档,如具有嵌入数据的窗口。例如,浏览器115可处理包含文本、图形和本领域公知的其它页资产(pageasset)的文档。用于诸如图形的资产的二进制文件通常不随文档传递到浏览器115,而相反是经由包含链接,如统一资源定位器(“URL”)链接的图像标签或其它类似置标标签引用到包含所述资产的二进制文件。浏览器115然后解析包含所述链接的图像标签,并使用该链接从网服务器110请求用于所述资产的二进制文件。可替换地,浏览器115可用于数据的HTML请求或其它请求,例如规定新页的请求传递到网服务器110。这样,从浏览器115到网服务器110的请求通常包含mime类型,其指示所述请求是否是用于当前页的资产,如图像文件、音频文件或其它类似资产,或者所述请求是否是HTML请求。所述系统检查所述数据是因为仅HTML请求和其它类型请求可属于系统的HSML功能性,如在’45223申请中进一步描述的。在HSML处理器120是代理服务器140的组件或通常作为代理服务器140来起作用的实施例中,所述系统使用multipart/x-mixed-replacemime类型来保持浏览器115和HSML处理器120之间的连接打开,而同时接受对嵌入在当前页内的聚集数据的请求并对其进行检查。在其它实施例中,HSML处理器120与浏览器115的API145交互以对网页进行话音使能。例如,API145检查数据以确定数据是否包括应当传递给HSML处理器120以便于处理的语音事件(连同有关与该数据关联的窗口或框架的信息),或者数据是否包括待由浏览器处置的复杂数据,如在此和在’45223申请中进一步描述的。HSML处理器120亦处理语音事件并经由API145将结果传送给浏览器115。这样,所述系统检查从浏览器115到网服务器110的请求以确定所述请求是对嵌入于当前页的聚集或复杂数据的请求或对新数据的请求,步骤155。在一些实施例中,所述系统检查规定mime类型或其它信息的与请求关联的头部、脚部或其它数据以确定请求的类型。例如,请求头部mime类型可以指示文件是JPEG文件,并且系统由此确定请求是对复杂数据的请求而不是新HTML请求。在一些实施例中,请求头部、脚部或与请求关联的其它数据未规定mime类型或对应于所请求的数据的其它信息。在这些情况下,系统通过检查与请求关联的文件名和文件扩展来确定所请求的数据内容。这样,如果用于文件“picture.gif”的请求头部未规定mime类型,则通过检查文件名“picture.gif”以将文件扩展“.gif”相关于有可能包含复杂数据而不是新HTML请求的已知文件扩展的列表或其它数据结构,系统将试图猜测所述请求是针对复杂数据或新HTML数据。如果所述请求不是对新数据的HTML请求或其它请求,例如对新页或新窗口的请求,则数据从浏览器(在存在API145的情况下)或类似于本领域公知的正常代理服务器而起作用的HSML处理器120直接传递直至服务器,步骤160。在HSML处理器类似于代理服务器而起作用的实施例中,在请求用于给定页的所有数据时,“主”连接,将multipart/x-mixed-replacemime类型规定到浏览器的连接,被维持于整个该过程。然而,如果请求是针对新HTML(或文本)数据,则数据被认为是来自浏览器115的新请求,并且系统确定所述请求是否由语音事件发起,步骤162。如果事件不是由语音事件发起,例如,如果事件由用户鼠标点击或由用户将URL直接敲入浏览器115而发起,则系统将把该事件作为本领域公知的对新数据的普通HTML请求来处理,并且控制传递到块175。在一些实施例中,系统检测与连接关联的活动,例如对不包含HSML数据的新页的请求或页关闭,并且执行清除操作,如在’45223申请中进一步描述的。例如,系统执行终止与浏览器的旧连接的清除操作并且通常亦检测与那个连接关联的向前语法。如果对新HTML(或文本)数据的请求由语音数据发起,则系统检测所述请求来自现有连接或来自新浏览器连接,步骤165。例如,在一个实施例中,系统接收来自一连接的请求,如规定网页的数据,该数据包括具有短语部分、命令部分和标签部分的基于规则的语法语句。在一些实施例中,HSML处理器120和浏览器115经由API145来通信以评价对新HTML数据的请求。在一些实施例中,所述系统使用在“JavaSpeechGrammarFormatSpecification”中进一步描述的数据结构、功能、过程和其它方法,其可获得于http://java.sun.com/products/java-media/speech/forDevelopers/JSGF/JSGF.html#11803并且在此以整体引入作为参考。在其它实施例中,所述系统包含连接管理器或其它软件模块或软件对象,其指向管理打开的或现有的连接或插槽(socket)与其关联语法之间的关联。例如,用户可能使浏览器115窗口打开或具有多个框架的浏览器115窗口打开。这些窗口或框架的每个与一打开的连接(经由multipart/x-mixed-replacemime类型服务器推方法或其它类型方法)和关联语音语法相关联,如在’45223申请中进一步描述的。这样,连接管理器尤其检查对新HTML数据的请求以确定所述请求来自现有连接或新连接。在一些实施例中,连接管理器通常包括这样的软件对象,其包括两组列表或其它数据结构,用于添加或删除项目与所述列表,并用于将本身和对应列表重新计算为散列(hash)。所述两个列表包括第一列表,其跟踪到窗口或框架的打开的或现有的连接或插槽和与窗口或框架关联的语法之间的关联;以及第二列表,其跟踪语音规则和与语音规则关联的语法之间的关联。在一些实施例中,连接可包括线程,例如其中处理发生在客户处的多线程环境。根据本发明一个实施例的用于这些列表的示例性数据结构作为附录A附加于此。在一些实施例中,连接管理器包括与线程模块125或API145关联的软件模块或软件对象。在其它实施例中,连接管理器包括独立的软件模块或软件对象。如果请求来自打开的或现有的连接,则连接管理器检查包含在该请求中或与之关联的语音规则,并且针对其列表来执行查询以确定与该请求关联的语法和连接,步骤170。在一些实施例中,新连接被建立于浏览器115和网服务器110或代理服务器140之间,步骤175。在一些实施例中,与代理服务器140的新连接被添加给连接管理器所维持的连接列表或其它类似数据结构。在一些实施例中,所述系统亦跟踪代理服务器140和网服务器110或浏览器115之间的连接,以解决线程同时请求或用于其它目的。所述系统亦评价属于新连接的输入数据以确定是否存在与该新连接关联的新语法。如果新语法与该连接关联,则与其关联的该语法和任何语音规则被加载并且亦添加给适当的连接管理器列表,如在此先前所描述的。如在’45223申请中进一步描述的,所述系统通常执行清除操作并终止浏览器和HSML处理器120之间的旧连接,并且通常亦删除与那个连接关联的先前语法,步骤180。请求或其它动作被处理于对应于新连接的窗口或框架中或不然被指向它,步骤180。这样,数据被馈送回到与语音请求或其它请求关联的窗口。在一些实施例中,如果在步骤165中所述的对新HTML数据(或文本)的请求未与打开的或现有的连接或插槽关联,则连接管理器将新连接添加到其连接列表,步骤190。连接管理器亦将与那个连接关联的任何语法和语音规则添加到其列表,如先前在此所述,步骤165。系统在对应于所述连接的窗口上处理所述动作,步骤200,控制返回到块150,并且系统继续处理数据,如在此和在’45223申请中进一步描述的。在一些实施例中,多个打开的窗口或框架的每个可具有活动的关联语法。在一些实施例中,系统必须决定如何处理包含在多个活动语法中的语音事件的冲突,这是通过确定哪个打开的窗口或框架对应于该语音事件来进行的。例如,两个打开的窗口或框架可能包含与语音事件“返回到主页”关联的代码。在处理指示“返回到主页”的语音事件或指令时,系统必须确定哪个打开的窗口或框架应当被返回到其主页。在一些实施例中,当检测到这样的冲突时,系统显示请求用户输入或其它输入的对话或其它通知以选择对应于所述语音事件或指令或其它事件的适当语法或窗口。在其它实施例中,系统检测一个语法来用作处理语音事件和其它指令或事件所针对的焦点语法,并且停用其它语法。这样,没有了处理包含在多个活动语法中的语音事件和其它指令或事件的混乱。与打开的窗口或框架关联的所有语法通常仍继续存在于存储器中,但在任何时间只有一个语法具有焦点。例如,在一些实施例中,系统选择与浏览器115所加载的最后窗口或框架关联的语法。在其它实施例中,系统选择与活动浏览器115窗口关联的语法。例如,在MicrosoftWindows操作系统或具有图形用户接口的其它操作系统中,多个窗口可同时打开,但这些窗口通常被呈现为层,或不然与作为活动窗口的顶部窗口级联。在其它实施例中,系统可能需要的是,框架不包含重复的语音事件或指令或其它事件。在此所描述的系统和模块可包括适合于在此所述的目的的软件、固件、硬件或软件、固件或硬件的任何(多个)组合。软件和其它模块可驻留在服务器、工作站、个人计算机、计算机化输入板、PDA和适合于在此所述的目的的其它设备。软件和其它模块可经由本地存储器、经由网络、经由浏览器或ASP情况下的其它应用、经由适合于在此所述的目的的其它方式来接入。在此所述的数据结构可包括适合于在此所述的目的的计算机文件、变量、编程阵列、编程结构、或任何电子信息存储方案或方法或其任何组合。在此所述的用户接口元素可包括来自图形用户接口、命令行接口和适合于在此所述的目的的其它接口的元素。在此所呈现和描述的屏幕截图可如本领域所公知的不同地显示以输入、访问、改变、操纵、修改、更改和作用于信息。尽管已结合优选实施例描述和图示了本发明,可在本发明的精神和范围内进行如对本领域的技术人员将显而易见的许多变化和修改,并且本发明由此并不局限于以上所提出的方法学或构造的确切细节,因为这样的变化和修改旨在被包括在本发明的范围内。附录A连接数据结构>FromSMLApp.java:Themainmodulethathandlesthreadmanagement//*ConnectionListManager.//*Collectionsprovidebinarysearch.Thisprovidesahashtablelookupwhichbelievewillbefaster.//*Add/remareabitslower,butonlyoneadd/rempersetofvoicepages.Onelookupperpage//*Hashtablesalsomakesexplicitwhatoursearcheswillbeon(whatourkeysare).staticclassConnectionListManager{//*Akintoajava"factory".Buttheimplisexplicitlyprovidedinthedeclr.staticclassConnection{SocketsockS;OutputStreamosO;InputStreamisI;//*NecessaryStringsGrammar;booleanbPrevMsgGram=false;}staticHashtablehGrammar=newHashtable();//*GrammaristhekeystaticHashtablehSock=newHashtable();//*Socketisthekey.staticLinkedListllConnections=newLinkedList();synchronizedstaticvoidAdd(ConnectionC)throwsConnectionException{Dbg.println("SMLApp",Dbg.CONN,"Add","Connection:"+C+".C.sGrammar:"+C.sGrammar+".C.sockS:"+C.sockS);llConnections.add(C);if((C.sGrammar==null)||(C.sockS==null))thrownewConnectionExcEPtion("NullGrammarorSocket");hGrammar.put(C.sGrammar,newInteger(llConnections.indexOf(C)));hSock.put(C.sockS,newInteger(llConnections.indexOf(C)));}synchronizedstaticvoidUpdate(ConnectionC,StringsGrammar)throwsConnectionException{Dbg.println("SMLApp",Dbg.CONN,"Update","Connection:"+C+".C.sGrammar:"+C.sGrammar+".sGrammar:"+sGrammar+".C.sockS:"+C.sockS);if((sGrammar==null)||(C.sGrammar==null))thrownewConnectionException("NullGrammar");if(llConnections.indexOf(C)<0)thrownewConnectionException("InvalidConnection");hGrammar.remove(C.sGrammar);C.sGrammar=sGrammar;hGrammar.put(C.sGrammar,newInteger(llConnections.indexOf(C)));}synchronizedstaticvoidRem(SocketsockS){ConnectionC=Lookup(sockS);Rem(C);}synchronizedstaticvoidRem(ConnectionC){Dbg.println("SMLApp",Dbg.CONN,"Rem","Connection:"+C+".C.sGrammar:"+C.sGrammar+".C.sockS:"+C.sockS);llConnections.remove(C);RecomputeHashTables();}staticvoidRecomputeHashTables(){hGrammar.clear();hSock.clear();ConnectionC=(Connection)llConnections.getFirst();if(C==null)return;intiIndex=0;hGrammar.put(C.sGrammar,newInteger(iIndex));hSock.put(C.sockS,newInteger(iIndex));iIndex++;while(iIndex<llConnections.size()){C=(Connection)llConnections.get(iIndex);hGrammar.put(C.sGrammar,newInteger(iIndex));hSock.put(C.sockS,newInteger(iIndex));iIndex++;}}synchronizedstaticConnectionLookup(StringsGrammar){intiIndex=-1;try{Dbg.println("SMLApp",Dbg.CONN,"Lookup","sGrammar:"+sGrammar);ObjectoTmp=hGrammar.get(sGrammar);if(oTmp==null)returnnull;iIndex=((Integer)oTmp).intValue();return(Connection)llConnections.get(iIndex);}catch(IndexOutOfBoundsExceptione){Dbg.println("SMLApp",Dbg.ERR,"Lookup(sGrammar)","IndexOutOfBoundsException:iIndex"+iIndex+".sGrammar:"+sGrammar);returnnull;}}synchronizedstaticConnectionLookup(SocketsockS){intiIndex=-1;try{Dbg.println("SMLApp",Dbg.CONN,"Lookup","sockS"+sockS);ObjectoTmp=hSock.get(sockS);if(oTmp==null)returnnull;iIndex=((Integer)oTmp).intValue();return(Connection)llConnections.get(iIndex);}catch(IndexOutOfBoundsExceptione){Dbg.println("SMLApp",Dbg.ERR,"ConnectionListManager:Lookup(sockS)","IndexOutOfBoundsException:iIndex"+iIndex+".sockS:"+sockS);returnnull;}}}publicstaticclassConnectionExceptionextendsException{publicConnectionException(Stringmsg){super(msg);Dbg.println("SMLApp",Dbg.ERR,"ConnectionException",msg);}}staticConnectionListManagerCLM;staticConnection.ListManager.ConnectionconnGDisplay=null;//*ConnectionbasedongDisplaygrammarlookup.语法数据结构>FromSpeechIO.java:publicclassRule{StringsTag=null;StringsJSGF=null;StringsJSML=null;StringsURL=null;//*URLtocallwhenthisruletriggeredStringsURLSep=null;StringsURLExt=null;intiSpeakJSGF=0;//*Createspeakablephrasefrom(depth-(iSpeakJSGF-1))levelJSGF.}publicclassEGBlock{//*EmbeddedGrammarJSGFrulesintiNumRules=0;//*NumberofrulesinthisblockRulearRule[]=newRule[iMaxNumRule];//*Linkedlistlater...StringsJSML=null;StringsGrammar;StringsEntryPhrase=null;booleanbDefaultSpeak=true;//*SpeaktheJSMLinthisblockw/oprompting.//*falseifjsgfpresentinthisblock.publicclassEGBlockSet{intiIncReal;StringsGrammar;EGBlock[]aEGBlock;}staticHashtablehGrammar=newHashtable();//*GrammaristhekeystaticLinkedListllEGBlockSets=newLinkedList();synchronizedstaticvoidAdd(EGBlockSetEGBS)throwsSpeechIOException{Dbg.println("SpeechIO",Dbg.GRAMMAR,"Add","EGBlockSet:"+EGBS+".EGBS.sGrammar:"+EGBS.sGrammar);llEGBlockSets.add(EGBS);if(EGBS.sGrammar==null)thrownewSpeechIOException("NullGrammar");hGrammar.put(EGBS.sGrammar,newInteger(llEGBlockSets.indexOf(EGBS)));}synchronizedstaticvoidRem(StringsGrammar){EGBlockSetEGBS=Lookup(sGrammar);Rem(EGBS);}synchronizedstaticvoidRem(EGBlockSetEGBS){Dbg.println("SpeechIO",Dbg.GRAMMAR,"Rem","EGBlockSet:"+EGBS+".EGBS.sGrammar:"+EGBS.sGrammar);llEGBlockSets.remove(EGBS);RecomputeHashTables();}staticvoidRecomputeHashTables(){try{hGrammar.clear();EGBlockSetEGBS=(EGBlockSet)llEGBlockSets.getFirst();if(EGBS==null)return;intiIndex=0;hGrammar.put(EGBS.sGrammar,newInteger(iIndex));iIndex++;while(iIndex<llEGBlockSets.size()){EGBS=(EGBlockSet)llEGBlockSets.get(iIndex);hGrammar.put(EGBS.sGrammar,newInteger(iIndex));iIndex++;}}catch(java.util.NoSuchElementExceptionE){}}synchronizedstaticEGBlockSet[]toArray(){EGBlockSet[]aEGBS=newEGBlockSet[1];aEGBS=(EGBlockSet[])llEGBlockSets.toArray(aEGBS);returnaEGBS;}synchronizedstaticEGBlockSetLookup(StringsGrammar){intiIndex=-1;try{Dbg.println("SpeecIO",Dbg.GRAMMAR,"Lookup","sGrammar:"+sGrammar);ObjectoTmp=hGrammar.get(sGrammar);if(oTmp==null)returnnull;iIndex=((Integer)oTmp).intValue();return(EGBlockSet)llEGBlockSets.get(iIndex);}catch(IndexOutOfBoundsExceptione){Dbg.println("SpeechIO",Dbg.ERR,"Lookup(sGrammar)","IndexOutOfBoundsException:iIndex"+iIndex+".sGrammar:"+sGrammar);returnnull;}}publicstaticclassSpeechIOExceptionextendsException{publicSpeechIOException(Stringmsg){super(msg);Dbg.println("SpeechIO",Dbg.ERR,"SpeechIOException",msg);}}权利要求1.一种用于处理对规定网页的数据的话音请求的方法,该请求包括基于规则的语法语句,所述方法包括标识与所述基于规则的语法语句关联的语法;确定被标识为与所述语法关联的第一连接是否被规定在标识一个或多个连接的数据结构中;以及如果被标识为与所述语法关联的第一连接被规定在所述数据结构中,则处理能够呈现网页并且与所述第一连接关联的窗口的至少部分中的请求。2.权利要求1的方法,其中所述请求包括这样的请求,其包括具有短语部分、命令部分和标签部分的基于规则的语法语句。3.权利要求1的方法,该方法进一步包括如果被标识为与所述语法关联的第一连接未被规定在所述数据结构中,则处理能够呈现网页并且与第二连接关联的新窗口的至少部分中的请求。4.权利要求3的方法,该方法进一步包括如果所述第二连接未被规定在所述数据结构中,则将所述第二连接添加给所述数据结构并且将所述第二连接与所述语法关联。5.权利要求3的方法,该方法进一步包括如果所述连接未被规定在所述数据结构中,则将所述新窗口与所述连接关联。6.权利要求5的方法,其中所述新窗口包括根据用户偏好选择的窗口。7.权利要求5的方法,其中所述新窗口包括与所述第二连接关联的计算设备所加载的最后的窗口。8.权利要求5的方法,其中所述新窗口包括与所述第二连接关联的计算设备处的活动窗口。9.权利要求1的方法,其中标识语法包括标识根据用户偏好的语法。10.权利要求1的方法,其中标识语法包括标识与由关联于一连接的计算设备所加载的最后窗口相关联的语法。11.权利要求1的方法,其中标识语法包括标识与关联于一连接的计算设备处的活动窗口相关联的语法。12.权利要求1的方法,其中所述窗口包括浏览器窗口。13.权利要求1的方法,其中所述窗口的至少部分包括框架。14.权利要求1的方法,其中所述请求包括对复杂数据的请求。15.权利要求14的方法,其中所述请求包括对在网页中嵌入的复杂的数据的请求。16.权利要求14的方法,该方法进一步包括检查与所述请求关联的头部或脚部以确定所请求的数据的类型。17.权利要求16的方法,其中检查头部或脚部包括检查规定mime类型的头部或脚部以确定所请求的数据的类型。18.权利要求14的方法,该方法进一步包括检查与所述请求关联的文件名或文件扩展以确定所请求的数据的类型。19.权利要求1的方法,该方法进一步包括如果与那个连接关联的窗口被关闭,则去除来自所述数据结构的连接的标识。20.一种系统,用于处理对规定网页的数据的话音请求,该请求包括基于规则的语法语句,所述系统包括装置,用于标识与所述基于规则的语法语句关联的语法;装置,用于确定被标识为与所述语法关联的第一连接是否被规定在标识一个或多个连接的数据结构中;以及装置,用于如果被标识为与所述语法关联的第一连接被规定在所述数据结构中,则处理能够呈现网页并且与所述第一连接关联的窗口的至少部分中的请求。21.权利要求20的系统,其中所述包括基于规则的语法语句的请求包括这样的请求,其包括具有短语部分、命令部分和标签部分的基于规则的语法语句。22.权利要求20的系统,该系统进一步包括装置,用于如果被标识为与所述语法关联的第一连接未被规定在所述数据结构中,则处理能够呈现网页并且与第二连接关联的新窗口的至少部分中的请求。23.权利要求22的系统,该系统进一步包括装置,用于如果所述第二连接未被规定在所述数据结构中,则将所述第二连接添加给所述数据结构并且将所述第二连接与所述语法关联。24.权利要求22的系统,该系统进一步包括装置,用于如果所述连接未被规定在所述数据结构中,则将所述新窗口与所述连接关联。25.权利要求20的系统,其中所述对规定网页的数据的请求包括对复杂数据的请求。26.一种存储程序代码的计算机可用介质或多个计算机可用介质,当被执行于一个或多个计算机化设备上时,其使所述一个或多个计算机化设备执行一种方法,用于处理对规定网页的数据的话音请求,该请求包括基于规则的语法语句,所述方法包括标识与所述基于规则的语法语句关联的语法;确定被标识为与所述语法关联的第一连接是否被规定在标识一个或多个连接的数据结构中;以及如果被标识为与所述语法关联的第一连接被规定在所述数据结构中,则处理能够呈现网页并且与所述第一连接关联的窗口的至少部分中的请求。27.权利要求26的计算机可用介质或多个计算机可用介质,其中所述包括基于规则的语法语句的请求包括这样的请求,其包括具有短语部分、命令部分和标签部分的基于规则的语法语句。28.权利要求26的计算机可用介质或多个计算机可用介质,所述方法进一步包括如果被标识为与所述语法关联的第一连接未被规定在所述数据结构中,则处理能够呈现网页并且与第二连接关联的新窗口的至少部分中的请求。29.权利要求28的计算机可用介质或多个计算机可用介质,所述方法进一步包括装置,用于如果所述第二连接未被规定在所述数据结构中,则将所述第二连接添加给所述数据结构并且将所述第二连接与所述语法关联。30.权利要求28的计算机可用介质或多个计算机可用介质,所述方法进一步包括装置,用于如果所述连接未被规定在所述数据结构中,则将所述新窗口与所述连接关联。31.权利要求26的计算机可用介质或多个计算机可用介质,其中所述对规定网页的数据的请求包括对复杂数据的请求。32.一种用于处理对规定网页的数据的话音请求的方法,该方法包括从一连接接收规定网页的数据,该数据包括具有短语部分、命令部分和标签部分的基于规则的语法语句;确定所述连接是否被规定在标识一个或多个连接的数据结构中;选择与来自标识一个或多个语法的数据结构的连接关联的语法;以及如果所述连接被规定在标识一个或多个连接的数据结构中,则通过使用能够呈现网页并与所述连接关联的第一窗口的至少部分中的所选语法来处理所述基于规则的语法语句。33.权利要求32的方法,该方法进一步包括如果所述连接未被规定在标识一个或多个连接的数据结构中,则选择与来自规定一个或多个语法的数据结构的连接关联的新语法并使用与所述连接关联的新窗口的至少部分中的所选语法来处理所述基于规则的语法语句。34.权利要求33的方法,该方法进一步包括将所述连接添加到规定一个或多个连接的数据结构并且将所述连接与规定一个或多个语法的数据结构中的新语法相关联。35.一种用于处理对规定网页的数据的话音请求的方法,该方法包括接收对规定网页的数据的请求,该请求包括具有短语部分、命令部分和标签部分的基于规则的语法语句;确定一窗口是否与所述请求关联;以及如果一窗口与所述请求关联,则处理与所述请求关联的窗口的至少部分中的请求。36.权利要求35的方法,该方法进一步包括如果一窗口不与所述请求关联,则处理新窗口的至少部分中的基于规则的语法语句。37.权利要求36的方法,该方法进一步包括标识与所述请求关联的连接并且将该连接与所述新窗口相关联。全文摘要一种用于处理对规定网页的数据的话音请求的方法,该请求包括基于规则的语法语句,所述方法包括标识与所述基于规则的语法语句关联的语法;确定被标识为与所述语法关联的第一连接是否被规定在标识一个或多个连接的数据结构中;以及如果被标识为与所述语法关联的第一连接被规定在所述数据结构中,则处理能够呈现网页并且与所述第一连接关联的窗口的至少部分中的请求。文档编号G10L21/00GK1894658SQ200480015737公开日2007年1月10日申请日期2004年6月7日优先权日2003年6月6日发明者迈克尔·L·查尼申请人:纽约市哥伦比亚大学托管会
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1