專(zhuān)利名稱(chēng):向語(yǔ)音識(shí)別引擎注冊(cè)言辭以及相關(guān)聯(lián)的目的錨的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及訪問(wèn)萬(wàn)維網(wǎng),并且特別涉及通過(guò)語(yǔ)音識(shí)別來(lái)訪問(wèn)萬(wàn)維網(wǎng)。
背景技術(shù):
萬(wàn)維網(wǎng)(Web)提供了一個(gè)巨大的文檔集合,這些文檔可以經(jīng)由因特網(wǎng)來(lái)訪問(wèn)。萬(wàn)維網(wǎng)上的很多文檔都包含超鏈接,這些超鏈接使用戶(hù)可以跳轉(zhuǎn)到文檔內(nèi)部的其他地方,并使用戶(hù)可以跳轉(zhuǎn)到其他文檔以及其他資源。對(duì)萬(wàn)維網(wǎng)文檔來(lái)說(shuō),通用的訪問(wèn)方法是借助一臺(tái)計(jì)算機(jī),所述計(jì)算機(jī)提供文檔的可視顯示并且考慮到了用戶(hù)使用鍵盤(pán)以及諸如鼠標(biāo)這類(lèi)定點(diǎn)設(shè)備所產(chǎn)生的輸入。用戶(hù)可以使用定點(diǎn)設(shè)備來(lái)選擇超鏈接并由此使用這些超鏈接。
其他方法也可以用來(lái)提供對(duì)于萬(wàn)維網(wǎng)文檔的訪問(wèn)。特別地,語(yǔ)音識(shí)別可以用作一種輸入來(lái)取代或附加于鍵盤(pán)或定點(diǎn)設(shè)備。在缺少或不便使用鍵盤(pán)或鼠標(biāo)的情況下,語(yǔ)音識(shí)別可以允許與基于顯示的萬(wàn)維網(wǎng)文檔進(jìn)行有效的交互作用。對(duì)那些具有視覺(jué)缺陷或者需要在訪問(wèn)萬(wàn)維網(wǎng)的同時(shí)能夠騰出手和眼睛來(lái)處理其他事情的人員來(lái)說(shuō),這一點(diǎn)是非常有用的。
語(yǔ)音識(shí)別可能需要使用一個(gè)定義有效言辭的語(yǔ)音識(shí)別語(yǔ)法來(lái)對(duì)捕獲自用戶(hù)的言辭進(jìn)行識(shí)別。由于包含在語(yǔ)音識(shí)別語(yǔ)法中,因此,諸如“主頁(yè)”或“后退”這種固定的瀏覽器命令是很容易識(shí)別的。而用于在萬(wàn)維網(wǎng)文檔中選擇超鏈接的語(yǔ)法則不像固定命令那樣容易定義。由于言辭有可能是不具有更大語(yǔ)境的單字或短語(yǔ),因此,用于在萬(wàn)維網(wǎng)文檔中選擇超鏈接的語(yǔ)音識(shí)別可能與其他的語(yǔ)音識(shí)別需求不同。萬(wàn)維網(wǎng)文檔中的某些超鏈接可能由圖像或圖標(biāo)來(lái)表示,而不是由文本來(lái)表示。
萬(wàn)維網(wǎng)聯(lián)盟(W3C)正在開(kāi)發(fā)一種語(yǔ)音可擴(kuò)展標(biāo)記語(yǔ)言(VoiceXML),以便準(zhǔn)許創(chuàng)作那些意圖與一個(gè)語(yǔ)音瀏覽器結(jié)合使用的萬(wàn)維網(wǎng)文檔,其中所述語(yǔ)音瀏覽器提供一個(gè)聽(tīng)覺(jué)呈現(xiàn)并且接受語(yǔ)音輸入。VoiceXML文檔提供了專(zhuān)門(mén)設(shè)計(jì)的信息,以便定義語(yǔ)音識(shí)別語(yǔ)法中包含的可允許語(yǔ)音輸入。
在并未考慮到借助語(yǔ)音輸入來(lái)選擇超鏈接的需求的情況下,已經(jīng)創(chuàng)作了數(shù)量極大的萬(wàn)維網(wǎng)文檔。因此,使一個(gè)網(wǎng)絡(luò)瀏覽器能對(duì)口語(yǔ)言辭做出響應(yīng),從而在那些并未創(chuàng)作成定義可允許語(yǔ)音輸入的萬(wàn)維網(wǎng)文檔中選擇超鏈接,這一點(diǎn)是合乎需要的。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的第一方面,提供了一種用于通過(guò)語(yǔ)音識(shí)別引擎注冊(cè)言辭和相關(guān)聯(lián)的目的錨的方法,所述方法包括使用瀏覽器提供的一個(gè)編程接口而在瀏覽器顯示的文檔中獲取具有鏈接的所有節(jié)點(diǎn)的一個(gè)列表;對(duì)于全部節(jié)點(diǎn)的列表中的每個(gè)節(jié)點(diǎn)而言,為所述節(jié)點(diǎn)獲取一個(gè)目的錨;如果目的錨存在,則從所述節(jié)點(diǎn)的子節(jié)點(diǎn)中以遞歸方式收集文本,以便形成言辭;以及通過(guò)語(yǔ)音識(shí)別引擎注冊(cè)言辭和目的錨。
根據(jù)本發(fā)明的第二方面,提供了一種一種具有指令序列的計(jì)算機(jī)可讀介質(zhì),在由一個(gè)處理器執(zhí)行時(shí),所述指令序列使得處理器執(zhí)行一種用于通過(guò)語(yǔ)音識(shí)別引擎注冊(cè)言辭和相關(guān)目的錨的方法,所述方法包括使用瀏覽器提供的一個(gè)編程接口而在瀏覽器顯示的文檔中獲取具有鏈接的所有節(jié)點(diǎn)的一個(gè)列表;對(duì)于全部節(jié)點(diǎn)的列表中的每個(gè)節(jié)點(diǎn)而言,為節(jié)點(diǎn)獲取一個(gè)目的錨;如果目的錨存在,則從節(jié)點(diǎn)的子節(jié)點(diǎn)中以遞歸方式收集文本,以便形成言辭;以及通過(guò)語(yǔ)音識(shí)別引擎注冊(cè)言辭和目的錨。
根據(jù)本發(fā)明的第三方面,提供了一種語(yǔ)音識(shí)別系統(tǒng),包括一個(gè)文檔分析器,它使用瀏覽器提供的一個(gè)編程接口而在瀏覽器顯示的文檔中獲取具有鏈接的所有節(jié)點(diǎn)的一個(gè)列表;一個(gè)節(jié)點(diǎn)分析器,對(duì)于全部節(jié)點(diǎn)的列表中的每個(gè)節(jié)點(diǎn)而言,它為節(jié)點(diǎn)創(chuàng)建一個(gè)目的錨,如果目的錨存在,則從節(jié)點(diǎn)的子節(jié)點(diǎn)中以遞歸方式收集文本來(lái)形成言辭;以及一個(gè)注冊(cè)引擎,它通過(guò)一個(gè)有限狀態(tài)語(yǔ)法控制器注冊(cè)言辭和目的錨。
圖1是關(guān)于本發(fā)明一個(gè)實(shí)施例的流程圖;圖2顯示了語(yǔ)音導(dǎo)航分析器通過(guò)一個(gè)語(yǔ)音識(shí)別引擎注冊(cè)超鏈接的示范性軟件例程。
圖3顯示了可以由圖2軟件例程使用的示范性的getLinkText函數(shù)。
圖4顯示了可以由圖2軟件例程使用的示范性的insertTag函數(shù)。
圖5顯示了可以由圖2軟件例程使用的示范性的getLinkPos函數(shù)。
圖6顯示了提供一個(gè)黃色背景上具有紅色文本的半透明標(biāo)簽的示范性樣式。
圖7是一個(gè)示范性的語(yǔ)音識(shí)別系統(tǒng)的框圖。
具體實(shí)施例方式
為了提供關(guān)于本發(fā)明的全面理解,在以下關(guān)于本發(fā)明的詳細(xì)描述中闡述了很多特殊細(xì)節(jié)。然而,對(duì)本領(lǐng)域技術(shù)人員來(lái)說(shuō),很明顯,可以在不具備這些細(xì)節(jié)的情況下實(shí)施本發(fā)明。在其他實(shí)例中并沒(méi)有詳細(xì)描述公知的方法、過(guò)程、組件和電路,以免不必要地模糊本發(fā)明的各個(gè)方面。本發(fā)明包括不同的步驟,以下將對(duì)這些步驟進(jìn)行描述。本發(fā)明的步驟可以在機(jī)器可執(zhí)行指令中實(shí)現(xiàn),這些指令致使一個(gè)以這些指令編程的通用處理器執(zhí)行所述步驟。作為選擇,所述步驟也可以通過(guò)硬件或軟件的結(jié)合來(lái)執(zhí)行。機(jī)器可執(zhí)行指令可以由磁盤(pán)、光盤(pán)這種計(jì)算機(jī)可讀介質(zhì)或者電磁波來(lái)進(jìn)行保存和發(fā)送。
語(yǔ)音導(dǎo)航分析器使用了網(wǎng)絡(luò)瀏覽器提供的一個(gè)編程接口。所述編程接口可以包括一組對(duì)象,這些對(duì)象代表的是萬(wàn)維網(wǎng)文檔、如何組合這些對(duì)象的模型以及一個(gè)用于訪問(wèn)和操作這些對(duì)象的標(biāo)準(zhǔn)接口。示范性的編程接口是由萬(wàn)維網(wǎng)聯(lián)盟(W3C)定義的文檔對(duì)象模型(DOM)。在關(guān)于語(yǔ)音導(dǎo)航分析器的描述中,雖然將DOM用于示范性編程接口,然而可以了解的是,網(wǎng)絡(luò)瀏覽器提供的不同于DOM的編程接口也可用于實(shí)現(xiàn)語(yǔ)音導(dǎo)航分析器。
在網(wǎng)絡(luò)瀏覽器接收和處理了一個(gè)新的萬(wàn)維網(wǎng)文檔之后,語(yǔ)音導(dǎo)航分析器將會(huì)具有控制權(quán)。語(yǔ)音導(dǎo)航分析器可以是網(wǎng)絡(luò)瀏覽器的一個(gè)插件,它注冊(cè)一個(gè)事件,以使瀏覽器在接收和處理了一個(gè)萬(wàn)維網(wǎng)文檔之后把控制權(quán)轉(zhuǎn)移給語(yǔ)音導(dǎo)航分析器。
語(yǔ)音導(dǎo)航分析器使用瀏覽器的編程接口來(lái)提取新近接收的萬(wàn)維網(wǎng)文檔中的所有超鏈接。語(yǔ)音導(dǎo)航分析器提取和/或創(chuàng)建那些可用于選擇超鏈接的可交談言辭。并且語(yǔ)音導(dǎo)航分析器向語(yǔ)音識(shí)別引擎注冊(cè)超鏈接以及可交談言辭。語(yǔ)音導(dǎo)航分析器可以向萬(wàn)維網(wǎng)文檔中的超鏈接添加可視標(biāo)簽,以便提供一個(gè)可用于選擇超鏈接的簡(jiǎn)明言辭。
語(yǔ)音導(dǎo)航分析器注冊(cè)的信息允許語(yǔ)音識(shí)別引擎使用所注冊(cè)的可交談言辭而把口語(yǔ)言辭識(shí)別為有效語(yǔ)法的全部或是它的一部分。由語(yǔ)音導(dǎo)航分析器注冊(cè)的信息還使語(yǔ)音識(shí)別引擎能夠命令瀏覽器對(duì)超鏈接的選擇做出響應(yīng),其中所述超鏈接與語(yǔ)音導(dǎo)航分析器發(fā)出的口語(yǔ)言辭相關(guān)聯(lián)。
圖1是關(guān)于本發(fā)明一個(gè)實(shí)施例的流程圖。瀏覽器的編程接口被用于獲取具有鏈接10的所有節(jié)點(diǎn)的一個(gè)列表。對(duì)列表中的每個(gè)節(jié)點(diǎn)依次進(jìn)行處理,直到處理了所有節(jié)點(diǎn)12。所要處理的節(jié)點(diǎn)是從列表14中獲取的,此外還會(huì)檢索節(jié)點(diǎn)16的HREF屬性。由于可以在初始加載了萬(wàn)維網(wǎng)文檔之后提供HREF屬性,因此超鏈接節(jié)點(diǎn)可以具有一個(gè)HREF屬性,但是也可以不具有該屬性。如果節(jié)點(diǎn)不具有HREF屬性18,那么關(guān)于節(jié)點(diǎn)的處理可能會(huì)結(jié)束,如果存在下一個(gè)節(jié)點(diǎn)的話(huà),則會(huì)對(duì)下一個(gè)節(jié)點(diǎn)進(jìn)行處理。在其他實(shí)施例中,不具有HREF屬性的超鏈接節(jié)點(diǎn)可以注冊(cè)一個(gè)空的URI,也可以在向超鏈接節(jié)點(diǎn)添加了HREF屬性之后進(jìn)行注冊(cè)。
如果節(jié)點(diǎn)具有HREF屬性,則以遞歸方式檢查所述節(jié)點(diǎn)的子節(jié)點(diǎn),以便收集那些與鏈接20相關(guān)聯(lián)的文本或替換文本。并且將會(huì)檢查雙親節(jié)點(diǎn),以便獲取該節(jié)點(diǎn)的累計(jì)偏移,由此在文檔中確定節(jié)點(diǎn)的位置22。在到達(dá)了指示所述位置是絕對(duì)位置的根節(jié)點(diǎn)或者到達(dá)了一個(gè)指示所述位置是相對(duì)于一個(gè)容器節(jié)點(diǎn)的容器(DIV)節(jié)點(diǎn)之前,將會(huì)接連檢查雙親節(jié)點(diǎn)。位置信息可以包括x和y偏移,絕對(duì)/相對(duì)標(biāo)志以及與偏移相關(guān)的節(jié)點(diǎn)。在鏈接節(jié)點(diǎn)24的位置附近,可以將一個(gè)可視標(biāo)記串添加到文檔中,由此確保有一個(gè)可用于選擇鏈接的口語(yǔ)言辭。節(jié)點(diǎn)文本、標(biāo)簽串、目的錨以及鏈接節(jié)點(diǎn)位置可以被通過(guò)一個(gè)語(yǔ)法引擎26注冊(cè)。按照所注冊(cè)的,所述語(yǔ)法引擎可以使瀏覽器導(dǎo)航到相關(guān)的目的錨,從而對(duì)節(jié)點(diǎn)文本或標(biāo)簽串的口語(yǔ)言辭做出響應(yīng)。在對(duì)節(jié)點(diǎn)表中的所有鏈接節(jié)點(diǎn)都進(jìn)行了處理12的時(shí)候,所述處理將會(huì)結(jié)束并且控制權(quán)將會(huì)返回到呼叫者28。
圖2顯示了語(yǔ)音導(dǎo)航分析器通過(guò)語(yǔ)音識(shí)別引擎注冊(cè)超鏈接的一個(gè)示范性軟件例程。所示實(shí)施例使用了DOM編程接口。DOM代表了一個(gè)作為節(jié)點(diǎn)并具有分級(jí)結(jié)構(gòu)的文檔。代表超鏈接的節(jié)點(diǎn)列表則是由document.link對(duì)象100來(lái)提供的。
圖2顯示的示范性例程通過(guò)語(yǔ)音識(shí)別引擎注冊(cè)了超鏈接文本、一個(gè)提供替換言辭的標(biāo)簽值、統(tǒng)一資源標(biāo)識(shí)符(URI)和超鏈接位置。為了簡(jiǎn)化示范性例程,通過(guò)語(yǔ)音識(shí)別引擎注冊(cè)的值將會(huì)保存在一個(gè)數(shù)組中。在一個(gè)優(yōu)選實(shí)施例中,語(yǔ)音識(shí)別引擎會(huì)創(chuàng)建或是填充一個(gè)數(shù)據(jù)結(jié)構(gòu)來(lái)保存所注冊(cè)的信息。注冊(cè)的信息數(shù)據(jù)結(jié)構(gòu)可以包括來(lái)自一個(gè)以上的萬(wàn)維網(wǎng)文檔的注冊(cè)信息。
圖2的示范性例程使用一個(gè)for循環(huán)102來(lái)檢查超鏈接節(jié)點(diǎn)列表中的每個(gè)節(jié)點(diǎn)。超鏈接節(jié)點(diǎn)的URI是通過(guò)HREF屬性來(lái)保持的。可以將getAttribute(“HREF”)例程104應(yīng)用于超鏈接節(jié)點(diǎn)來(lái)獲取HREF屬性。在示范性例程中,在加載萬(wàn)維網(wǎng)文檔的時(shí)候,不具有HREF屬性的超鏈接節(jié)點(diǎn)將被忽略106。
DOM在那些與元素節(jié)點(diǎn)相關(guān)聯(lián)的單獨(dú)節(jié)點(diǎn)中保持文本。超文本節(jié)點(diǎn)是一個(gè)元素節(jié)點(diǎn),如果存在任何與超鏈接節(jié)點(diǎn)相關(guān)聯(lián)的文本,那么所述文本將會(huì)與文本節(jié)點(diǎn)相關(guān)聯(lián)。圖2的示范性例程使用一個(gè)getLinkText函數(shù)108來(lái)獲取與每個(gè)超鏈接節(jié)點(diǎn)相關(guān)聯(lián)的文本。
圖2的示范性例程使用一個(gè)getLinkPos函數(shù)110而在萬(wàn)維網(wǎng)文檔中獲取超鏈接位置。在其他實(shí)施例中,語(yǔ)音導(dǎo)航分析器不能獲取或注冊(cè)位置信息。
圖2的示范性例程使用一個(gè)insertTag函數(shù)112來(lái)創(chuàng)建一個(gè)可視標(biāo)簽,所述標(biāo)簽提供了一個(gè)替換言辭來(lái)選擇超鏈接。在示范性例程中,使用數(shù)組索引作為標(biāo)簽并且標(biāo)記了每個(gè)超鏈接。在其他實(shí)施例中,可以使用其他方案來(lái)提供標(biāo)簽。語(yǔ)音識(shí)別引擎可以產(chǎn)生標(biāo)簽,并且在注冊(cè)了超鏈接的時(shí)候,語(yǔ)音識(shí)別引擎會(huì)將所述標(biāo)簽返回給語(yǔ)音導(dǎo)航分析器??梢詫?duì)所述標(biāo)簽進(jìn)行檢查,以便確定它是否與關(guān)聯(lián)于超鏈接的文本相沖突。所述標(biāo)簽也可以只用于那些不具有可視文本的超鏈接。對(duì)一個(gè)使用了IMG元素的圖形鏈接而言,所述標(biāo)簽可以是由IMG元素的alt屬性提供的替換文本。
圖2的示范性例程使用一個(gè)registerToGrammar函數(shù)114來(lái)把從萬(wàn)維網(wǎng)文檔獲取的信息注冊(cè)到語(yǔ)音識(shí)別引擎。所述示范性例程注冊(cè)了超鏈接文本linkText[i]、一個(gè)提供替換言辭的標(biāo)簽值i、URI、linkHref[i]以及超鏈接的位置linkPos[i]。如上所述,本發(fā)明的其他實(shí)施例可以注冊(cè)不同的信息。
圖3顯示了一個(gè)示范性的getLinkText函數(shù),所述函數(shù)可以由圖2的軟件例程使用。示范性的getLinkText函數(shù)以遞歸方式遍歷所提供的鏈接節(jié)點(diǎn)的子節(jié)點(diǎn),以便收集那些與鏈接節(jié)點(diǎn)相關(guān)聯(lián)的文本和替換文本。在DOM中,鏈接元素節(jié)點(diǎn)可以具有多個(gè)子文本節(jié)點(diǎn)并且可以具有多個(gè)子元素節(jié)點(diǎn)。每個(gè)子元素節(jié)點(diǎn)可以具有多個(gè)子文本節(jié)點(diǎn)并且可以具有多個(gè)子元素節(jié)點(diǎn),依此類(lèi)推。因此,DOM需要一個(gè)深度優(yōu)先的遞歸樹(shù)搜索來(lái)收集超鏈接的文本。舉例來(lái)說(shuō),如果超鏈接是“Create Your Submission”,其中“Your”為黑體,那么超鏈接元素節(jié)點(diǎn)會(huì)具有三個(gè)子節(jié)點(diǎn)。第一個(gè)子節(jié)點(diǎn)是一個(gè)具有文本“create”的文本節(jié)點(diǎn)。第二子節(jié)點(diǎn)是一個(gè)具有子文本節(jié)點(diǎn)“Your”的黑體元素節(jié)點(diǎn)。第三個(gè)子節(jié)點(diǎn)是一個(gè)具有文本“submission”的文本節(jié)點(diǎn)。示范性的getLinkText函數(shù)將會(huì)返回文本“Create Your Submission”。
示范性的getLinkText函數(shù)獲取所提供節(jié)點(diǎn)的子節(jié)點(diǎn)列表200。并且使用一個(gè)for循環(huán)202來(lái)遍歷列表中的每個(gè)子節(jié)點(diǎn)。如果子節(jié)點(diǎn)是一個(gè)文本節(jié)點(diǎn)204,那么子節(jié)點(diǎn)的文本將會(huì)附加于正在形成的文本串。如果子節(jié)點(diǎn)不是一個(gè)文本節(jié)點(diǎn),那么由遞歸調(diào)用返回給getLinkText的文本串將會(huì)附加于正在形成的文本串206。如果非文本節(jié)點(diǎn)是一個(gè)IMG元素節(jié)點(diǎn)或AREA元素節(jié)點(diǎn),則從節(jié)點(diǎn)208獲取替換文本。在結(jié)束遍歷的時(shí)候,對(duì)從鏈接節(jié)點(diǎn)的子節(jié)點(diǎn)收集的文本串進(jìn)行測(cè)試,以便查看它是否包含空白文本,如果包含的話(huà),那么所述文本串將由替換文本210所取代。示范性的getLinkText函數(shù)可以返回一個(gè)由瀏覽器顯示的文本串,也可以返回一個(gè)可以由瀏覽器顯示也可以不由瀏覽器顯示的替換文本串,還可以返回一個(gè)空文本串。在本發(fā)明的其他實(shí)施例中,還可以提供返回的文本串類(lèi)型。
圖5顯示了一個(gè)示范性的getLinkPos函數(shù),所述函數(shù)可以由圖2的軟件例程使用。示范性的getLinkPos函數(shù)遍歷鏈接節(jié)點(diǎn)的雙親節(jié)點(diǎn),以便在萬(wàn)維網(wǎng)文檔中確定鏈接的位置。所述位置可以是頁(yè)面內(nèi)部的一個(gè)絕對(duì)位置,也可以是相對(duì)于一個(gè)雙親節(jié)點(diǎn)的位置。示范性的getLinkPos函數(shù)為所提供的節(jié)點(diǎn)400產(chǎn)生一個(gè)位置對(duì)象。所述位置對(duì)象包括一個(gè)標(biāo)簽,以便指示所述位置是否為絕對(duì)位置,并且還指示了位置的x和y坐標(biāo)以及一個(gè)相對(duì)位置的雙親節(jié)點(diǎn)。
在這里使用了一個(gè)while循環(huán)402來(lái)遍歷所提供鏈接節(jié)點(diǎn)的雙親。并且獲取正在受到檢查的節(jié)點(diǎn)的雙親404。如果雙親是隱藏的406,那么所述雙親將會(huì)變得臨時(shí)可視408,由此可以得到位置信息并且設(shè)定一個(gè)標(biāo)志來(lái)指示需要隱藏所述雙親。如果雙親是一個(gè)DIV元素410,那么鏈接節(jié)點(diǎn)的位置是相對(duì)位置而不是絕對(duì)位置412。對(duì)相對(duì)位置而言,雙親DIV元素被設(shè)定為雙親節(jié)點(diǎn),并且返回相對(duì)于雙親DIV元素的位置。如果雙親元素不是一個(gè)DIV元素,那么位置的x和y坐標(biāo)將會(huì)由雙親元素414的偏移來(lái)增加。如果雙親元素是隱藏的416,那么隱藏屬性將會(huì)恢復(fù)。然后將會(huì)把雙親設(shè)定為元素418。如果作為新元素的雙親也具有一個(gè)雙親402,那么while循環(huán)將會(huì)重復(fù),以便繼續(xù)進(jìn)行雙親節(jié)點(diǎn)的遍歷。如果所述遍歷到達(dá)根節(jié)點(diǎn),也就是一個(gè)不具有雙親節(jié)點(diǎn)的節(jié)點(diǎn),則在沒(méi)有遭遇DIV元素的情況下,所述位置是從根節(jié)點(diǎn)的原點(diǎn)0,0開(kāi)始的絕對(duì)偏移。
圖4顯示了一個(gè)示范性的insertTag函數(shù),所述函數(shù)可以由圖2的軟件例程使用。示范性的insertTag函數(shù)使用DOM接口來(lái)向鏈接節(jié)點(diǎn)添加可視標(biāo)簽。超鏈接可以顯示一個(gè)能夠講出的文本,也可以不顯示所述文本。這些標(biāo)簽可以由語(yǔ)音導(dǎo)航分析器插入,從而確??偸悄軌蚴褂靡粋€(gè)言辭來(lái)進(jìn)行超鏈接的語(yǔ)音選擇。
示范性的insertTag函數(shù)使用registerLinksToGrammar函數(shù)所創(chuàng)建數(shù)組內(nèi)部的一個(gè)超鏈接索引來(lái)作為標(biāo)簽值。并且定義了一個(gè)容器來(lái)保持標(biāo)簽。如果位置是絕對(duì)位置,那么容器即為萬(wàn)維網(wǎng)文檔體300。如果位置不是絕對(duì)的,則所述容器是由getLinkPos函數(shù)確定的雙親節(jié)點(diǎn)302。DIV元素添加到所定義的容器并被放入類(lèi)別TAGTAG304。DIV元素則是使用getLinkPos函數(shù)所確定的偏移坐標(biāo)而被定位在容器內(nèi)部的。TAGTAG樣式可以添加到萬(wàn)維網(wǎng)文檔中,以便為標(biāo)簽提供預(yù)期的可視屬性。圖6顯示了一個(gè)示范性樣式來(lái)提供一個(gè)透明標(biāo)簽,其中所述標(biāo)簽在黃色背景上具有紅色文本。并且標(biāo)簽的可視性是得到繼承的,因此,在隱藏的容器變得可視之前,所述隱藏的容器內(nèi)部的標(biāo)簽會(huì)被隱藏。
圖7顯示了包含本發(fā)明一個(gè)實(shí)施例的示范性語(yǔ)音識(shí)別系統(tǒng)700。語(yǔ)音識(shí)別系統(tǒng)700與一個(gè)瀏覽器702耦合,所述瀏覽器接收一個(gè)超文本文檔704并且基于這個(gè)超文本文檔來(lái)創(chuàng)建一個(gè)可視顯示器706。
語(yǔ)音識(shí)別系統(tǒng)700包括一個(gè)文檔分析器708,以便使用瀏覽器702提供的編程接口來(lái)創(chuàng)建具有鏈接的所有節(jié)點(diǎn)的一個(gè)列表710。節(jié)點(diǎn)分析器712對(duì)鏈接節(jié)點(diǎn)的列表710中的每個(gè)節(jié)點(diǎn)進(jìn)行處理。節(jié)點(diǎn)分析器為每個(gè)節(jié)點(diǎn)提取一個(gè)目的錨714。如果目的錨存在,那么節(jié)點(diǎn)分析器以遞歸方式從所述節(jié)點(diǎn)的子節(jié)點(diǎn)中收集文本,從而形成一個(gè)與目的錨714相關(guān)聯(lián)的言辭716。節(jié)點(diǎn)分析器還可以用遞歸方式來(lái)為替換文本檢查節(jié)點(diǎn)的子節(jié)點(diǎn),如果所收集的文本是空白,則使用替換文本作為言辭716。
語(yǔ)音識(shí)別系統(tǒng)700可以包括一個(gè)位置分析器,以便遍歷所述節(jié)點(diǎn)的雙親節(jié)點(diǎn)以及累積位置偏移,從而獲取節(jié)點(diǎn)位置720。如果容器節(jié)點(diǎn)是所述節(jié)點(diǎn)的一個(gè)雙親節(jié)點(diǎn),那么位置分析器可以將節(jié)點(diǎn)的位置標(biāo)記為相對(duì)于容器節(jié)點(diǎn)的位置,否則把節(jié)點(diǎn)位置標(biāo)記為絕對(duì)的。如果雙親節(jié)點(diǎn)是隱藏的,那么位置分析器可以臨時(shí)使得雙親節(jié)點(diǎn)可視,從而允許獲取位置。語(yǔ)音識(shí)別系統(tǒng)700可以包括一個(gè)標(biāo)簽生成器722,以便使用瀏覽器702的編程接口而把一個(gè)可視標(biāo)簽串724添加到節(jié)點(diǎn)720的位置附近。
語(yǔ)音識(shí)別系統(tǒng)700包括一個(gè)注冊(cè)引擎726,用于向有限狀態(tài)語(yǔ)法控制器728注冊(cè)言辭716和目的錨714。注冊(cè)引擎還可以通過(guò)有限狀態(tài)語(yǔ)法控制器注冊(cè)節(jié)點(diǎn)720的位置以及可視標(biāo)簽串724。有限狀態(tài)語(yǔ)法控制器則創(chuàng)建一個(gè)有限狀態(tài)語(yǔ)法730。
語(yǔ)音識(shí)別引擎732從語(yǔ)音識(shí)別系統(tǒng)700的用戶(hù)接收一個(gè)口語(yǔ)言辭734。語(yǔ)音識(shí)別引擎使用有限狀態(tài)語(yǔ)法730來(lái)識(shí)別口語(yǔ)言辭734,并且檢索與言辭相關(guān)聯(lián)的目的錨714。語(yǔ)音識(shí)別引擎使用瀏覽器702的編程接口來(lái)將瀏覽器引導(dǎo)到目的錨。這與用戶(hù)使用定點(diǎn)設(shè)備而以視覺(jué)方式在可視顯示器706上選擇目的錨具有相同的效果。由于有限狀態(tài)語(yǔ)法730以提取自創(chuàng)建可視顯示器706的文檔704中所出現(xiàn)的文本的有限言辭集合716為基礎(chǔ)的,并且有限狀態(tài)語(yǔ)法730有可能以那些已經(jīng)由標(biāo)簽產(chǎn)生器722添加到可視顯示中的可視標(biāo)簽串724為基礎(chǔ),因此語(yǔ)音識(shí)別引擎能夠以良好精確度來(lái)識(shí)別口語(yǔ)言辭734。
雖然在附圖中描述和顯示了某些示范性實(shí)施例,但是應(yīng)當(dāng)理解,這種實(shí)施例僅僅是說(shuō)明性的,而不是對(duì)范圍較寬的本發(fā)明加以限制,由于本領(lǐng)域普通技術(shù)人員可以想到其他各種修改,因此本發(fā)明并不局限于所顯示和所描述的特定結(jié)構(gòu)和布局。需要認(rèn)可的是,本發(fā)明可以使用與示范性實(shí)施例所示方法不同的其他方法而由DOM編程接口加以實(shí)現(xiàn),并且在本發(fā)明所提供的信息的類(lèi)型和格式中有可能存在變化。需要認(rèn)可的是,可以結(jié)合瀏覽器提供的其他編程接口來(lái)執(zhí)行本發(fā)明,其中所述瀏覽器允許以一種可以與DOM編程接口提供的方式相比的方式來(lái)訪問(wèn)萬(wàn)維網(wǎng)文檔。
權(quán)利要求
1.一種用于通過(guò)語(yǔ)音識(shí)別引擎注冊(cè)言辭和相關(guān)聯(lián)的目的錨的方法,所述方法包括使用瀏覽器提供的一個(gè)編程接口而在瀏覽器顯示的文檔中獲取具有鏈接的所有節(jié)點(diǎn)的一個(gè)列表;對(duì)于全部節(jié)點(diǎn)的列表中的每個(gè)節(jié)點(diǎn)而言,為所述節(jié)點(diǎn)獲取一個(gè)目的錨;如果目的錨存在,則從所述節(jié)點(diǎn)的子節(jié)點(diǎn)中以遞歸方式收集文本,以便形成言辭;以及通過(guò)語(yǔ)音識(shí)別引擎注冊(cè)言辭和目的錨。
2.權(quán)利要求1的方法,其中形成言辭還包括以遞歸方式來(lái)為替換文本檢查所述節(jié)點(diǎn)的子節(jié)點(diǎn),如果收集的文本是空白,則使用替換文本作為言辭。
3.權(quán)利要求1的方法,還包括遍歷所述節(jié)點(diǎn)的雙親節(jié)點(diǎn)并且累積位置偏移來(lái)獲取節(jié)點(diǎn)位置。
4.權(quán)利要求3的方法,還包括如果容器節(jié)點(diǎn)是所述節(jié)點(diǎn)的一個(gè)雙親節(jié)點(diǎn),則將節(jié)點(diǎn)位置標(biāo)記成相對(duì)于一個(gè)容器節(jié)點(diǎn),否則將節(jié)點(diǎn)位置標(biāo)記為絕對(duì)的。
5.權(quán)利要求3的方法,其中注冊(cè)還包括通過(guò)語(yǔ)音識(shí)別引擎注冊(cè)節(jié)點(diǎn)位置。
6.權(quán)利要求3的方法,其中如果雙親節(jié)點(diǎn)隱藏,則使雙親節(jié)點(diǎn)臨時(shí)可視。
7.權(quán)利要求3的方法,還包括在節(jié)點(diǎn)位置附近添加一個(gè)可視標(biāo)簽串,并且還通過(guò)語(yǔ)音識(shí)別引擎注冊(cè)這個(gè)可視標(biāo)簽串。
8.一種具有指令序列的計(jì)算機(jī)可讀介質(zhì),在由一個(gè)處理器執(zhí)行時(shí),所述指令序列使得處理器執(zhí)行一種用于通過(guò)語(yǔ)音識(shí)別引擎注冊(cè)言辭和相關(guān)目的錨的方法,所述方法包括使用瀏覽器提供的一個(gè)編程接口而在瀏覽器顯示的文檔中獲取具有鏈接的所有節(jié)點(diǎn)的一個(gè)列表;對(duì)于全部節(jié)點(diǎn)的列表中的每個(gè)節(jié)點(diǎn)而言,為節(jié)點(diǎn)獲取一個(gè)目的錨;如果目的錨存在,則從節(jié)點(diǎn)的子節(jié)點(diǎn)中以遞歸方式收集文本,以便形成言辭;以及通過(guò)語(yǔ)音識(shí)別引擎注冊(cè)言辭和目的錨。
9.權(quán)利要求8的計(jì)算機(jī)可讀介質(zhì),其中形成言辭還包括以遞歸方式來(lái)為替換文本檢查所述節(jié)點(diǎn)的子節(jié)點(diǎn),如果收集的文本是空白,則將替換文本用作言辭。
10.權(quán)利要求8的計(jì)算機(jī)可讀介質(zhì),其中所述方法還包括遍歷所述節(jié)點(diǎn)的雙親節(jié)點(diǎn)并且累積位置偏移來(lái)獲取節(jié)點(diǎn)位置。
11.權(quán)利要求10的計(jì)算機(jī)可讀介質(zhì),其中所述方法還包括如果容器節(jié)點(diǎn)是所述節(jié)點(diǎn)的一個(gè)雙親節(jié)點(diǎn),則將節(jié)點(diǎn)位置標(biāo)記成相對(duì)于一個(gè)容器節(jié)點(diǎn),否則將節(jié)點(diǎn)位置標(biāo)記為絕對(duì)的。
12.權(quán)利要求10的計(jì)算機(jī)可讀介質(zhì),其中注冊(cè)還包括通過(guò)語(yǔ)音識(shí)別引擎注冊(cè)節(jié)點(diǎn)位置。
13.權(quán)利要求10的計(jì)算機(jī)可讀介質(zhì),其中,如果雙親節(jié)點(diǎn)隱藏,則使雙親節(jié)點(diǎn)臨時(shí)可視。
14.權(quán)利要求10的計(jì)算機(jī)可讀介質(zhì),其中所述方法還包括在節(jié)點(diǎn)位置附近添加一個(gè)可視標(biāo)簽串,并且還通過(guò)語(yǔ)音識(shí)別引擎注冊(cè)這個(gè)可視標(biāo)簽串。
15.一種語(yǔ)音識(shí)別系統(tǒng),包括一個(gè)文檔分析器,它使用瀏覽器提供的一個(gè)編程接口而在瀏覽器顯示的文檔中獲取具有鏈接的所有節(jié)點(diǎn)的一個(gè)列表;一個(gè)節(jié)點(diǎn)分析器,對(duì)于全部節(jié)點(diǎn)的列表中的每個(gè)節(jié)點(diǎn)而言,它為節(jié)點(diǎn)創(chuàng)建一個(gè)目的錨,如果目的錨存在,則從節(jié)點(diǎn)的子節(jié)點(diǎn)中以遞歸方式收集文本來(lái)形成言辭;以及一個(gè)注冊(cè)引擎,它通過(guò)一個(gè)有限狀態(tài)語(yǔ)法控制器注冊(cè)言辭和目的錨。
16.權(quán)利要求15的語(yǔ)音識(shí)別系統(tǒng),其中節(jié)點(diǎn)分析器通過(guò)以遞歸方式來(lái)為替換文本檢查所述節(jié)點(diǎn)的子節(jié)點(diǎn)并且如果收集的文本是空白則節(jié)點(diǎn)分析器是通過(guò)將替換文本用作言辭,從而形成言辭。
17.權(quán)利要求15的語(yǔ)音識(shí)別系統(tǒng),還包括一個(gè)位置分析器,用于遍歷所述節(jié)點(diǎn)的雙親節(jié)點(diǎn)并且累積位置偏移來(lái)獲取節(jié)點(diǎn)位置。
18.權(quán)利要求17的語(yǔ)音識(shí)別系統(tǒng),其中,如果容器節(jié)點(diǎn)是所述節(jié)點(diǎn)的一個(gè)雙親節(jié)點(diǎn),則位置分析器還將節(jié)點(diǎn)位置標(biāo)記成相對(duì)于一個(gè)容器節(jié)點(diǎn),否則將節(jié)點(diǎn)位置標(biāo)記為絕對(duì)的。
19.權(quán)利要求17的語(yǔ)音識(shí)別系統(tǒng),其中注冊(cè)引擎還通過(guò)有限狀態(tài)語(yǔ)法控制器注冊(cè)節(jié)點(diǎn)位置。
20.權(quán)利要求17的語(yǔ)音識(shí)別系統(tǒng),其中,如果雙親節(jié)點(diǎn)隱藏,則位置分析器還使雙親節(jié)點(diǎn)臨時(shí)可視。
21.權(quán)利要求17的語(yǔ)音識(shí)別系統(tǒng),還包括一個(gè)標(biāo)簽生成器,用于在節(jié)點(diǎn)位置附近添加一個(gè)可視標(biāo)簽串,并且注冊(cè)引擎還通過(guò)有限狀態(tài)語(yǔ)法控制器注冊(cè)所述可視標(biāo)簽串。
全文摘要
一種用于通過(guò)語(yǔ)音識(shí)別引擎注冊(cè)言辭和相關(guān)聯(lián)的目的錨的方法。所述方法包括使用瀏覽器提供的一個(gè)編程接口而在瀏覽器顯示的文檔中獲取帶有鏈接的所有節(jié)點(diǎn)的一個(gè)列表。對(duì)于所述全部節(jié)點(diǎn)的列表中每個(gè)節(jié)點(diǎn)而言,所述方法為節(jié)點(diǎn)獲取一個(gè)目的錨。如果存在目的錨,則所述方法通過(guò)以遞歸方式從節(jié)點(diǎn)的子節(jié)點(diǎn)收集文本來(lái)形成言辭。通過(guò)語(yǔ)音識(shí)別引擎注冊(cè)所述言辭和目的錨。
文檔編號(hào)G10L21/00GK1517979SQ0316491
公開(kāi)日2004年8月4日 申請(qǐng)日期2003年9月18日 優(yōu)先權(quán)日2003年1月23日
發(fā)明者G·吳, G 吳 申請(qǐng)人:英特爾公司