專利名稱:語音識別模式錯誤校正系統(tǒng)和方法
技術領域:
本發(fā)明通常涉及計算機系統(tǒng)領域,特別涉及當預先選擇了錯誤模式以及已將語音輸入錯誤輸入程序時在計算機軟件程序中校正語音識別模式錯誤。
自從發(fā)明計算機以來,人們與計算機主要通過鍵盤交互作用。一般,當用戶想將信息或命令輸入計算機時,在與計算機連接的鍵盤上鍵入該信息或命令。其它輸入裝置可作為鍵盤的補充輸入裝置,包括鼠標、觸摸屏、集成指點器和掃描儀。這些輸入裝置的使用節(jié)省了用戶花在向計算機輸入數據或命令的時間。
基于計算機的話音識別和語音識別系統(tǒng)還用于將數據或命令輸入個人計算機。話音識別和語音識別系統(tǒng)將人的語音轉換成計算機能理解的格式。當計算機裝備了話音識別或語音識別系統(tǒng)時,可只通過向計算機說出數據或命令而實現該數據和命令輸入。用戶說話的速度一般快于普通數據或命令輸入。因此,通過人說話傳播數據或命令的固有速度是將話音識別和語音識別系統(tǒng)與計算機結合追求的優(yōu)點。
在公開的其余內容中,術語“話音識別”和“語音識別”作為同義詞使用。有時,話音識別和語音識別之間是有區(qū)別的。但是,話音識別和語音識別系統(tǒng)都存在下述同樣的問題,對兩種識別技術應用相同的方法以克服現有技術中的缺點。
裝備語音識別系統(tǒng)的用戶操作個人計算機的高效率促使了該系統(tǒng)在工作場所的使用。各行業(yè)的許多工作人員現在將語音識別系統(tǒng)使用于多種應用中。例如,由DRAGON、IBM和LERNOUT & HAUSPIU制造的使用話音識別和語音識別技術的計算機軟件程序。當用戶大聲讀文件或對語音識別程序進行聽寫時,程序可將用戶說的話直接輸入操作個人計算機的字處理程序。
通常,基于計算機的語音識別程序將人的語音轉換成一系列數字化頻率。這些頻率與預先存儲的一組字或音素匹配。當計算機確定正確匹配這一系列頻率時,則完成人語音部分的計算機識別。直到選擇用于使計算機起作用的足夠信息時,才編譯頻率匹配。計算機然后對所說的一定話起作用,將人語音存儲在存儲器中、將人語音記錄成字處理程序的文件或執(zhí)行程序模塊如應用程序中的命令。
但是,語音識別系統(tǒng)不是100%的可靠。即使有硬件和軟件修正,最好的語音識別系統(tǒng)也只能達到大約97-99%的可靠性。內部和外部因素會影響語音識別系統(tǒng)的可靠性。依賴于識別技術本身的因素包括以有限的字或音素集和詞匯表來比較說話者的輸入。環(huán)境因素如方言、外部噪聲和麥克風會降低輸入的質量,因而影響用戶說話的頻率,并將潛在錯誤帶入字或音素匹配中。
語音識別軟件程序可以用于將命令或文本輸入其它應用程序。例如,Kurzweil的“VOICEPRO”語音識別軟件可以用于將文本或命令輸入由字處理應用程序如MICROSOFT WORD產生的文件中。當用戶選擇使用語音識別程序輸入命令時,用戶人工選擇語音識別程序中的命令模式。用戶然后說出命令,如“刪除”。語音識別程序處理該命令并將“刪除”命令發(fā)送給字處理程序以執(zhí)行該命令。多數模式選擇是自動進行的,錯誤來自于獲得模式錯誤的機器,而不是用戶的錯誤。但最終的影響是相同的。如果用戶選擇使用語音輸入程序將文本輸入一個文件,則用戶人工選擇語音識別程序中的聽寫模式。然后用戶開始讀要輸入的文本,如“wheredo you want to go today”。語音識別程序處理該語音,并將處理的語音發(fā)送到字處理程序,從而將其處理成文件。為使語音識別軟件正確處理用戶語音輸入,模式的用戶選擇是必要的。在用戶說話前人工選擇語音識別模式是很麻煩和費時的。
偶爾,用戶忘記在說話前改變語音識別程序模式。例如,如果語音識別程序是在命令模式中,用戶說“copy machine make copies not coffee”,用戶識別程序會將語音輸入“copy machine make copies not coffee”處理成命令。語音輸入“copy”將由應用程序處理,但是剩余語音不能理解成命令,則應用程序不會處理該語音。
在其它時候,語音識別程序會處于聽寫模式,用戶想要文字處理器執(zhí)行一命令。如果用戶忘記改變該模式并說“copy”,語音識別程序將該語音處理為聽寫,并將該語音輸入作為文本輸入應用程序。
已經嘗試各種解決模式錯誤問題的辦法。典型校正過程包括上述的情況,當用戶在說話前忘記改變模式時,會造成模式錯誤。有時,模式錯誤混合有用戶沒有意識到他是在錯誤模式中的情況,從開始產生模式錯誤的時間在錯誤模式中處理語音輸入。如果語音輸入錯誤輸入成聽寫,則用戶可人工刪除該已經作為文本輸入計算機的聽寫。用戶通過在說話前人工選擇命令模式繼續(xù)正確過程。如果語音輸入作為命令錯誤輸入,則用戶人工選擇“撤消”應用程序中的該已執(zhí)行命令。用戶再通過在說話前人工選擇聽寫模式繼續(xù)正確過程。正確語音識別模式的人工選擇和“撤消”或“刪除”命令的人工校正是很麻煩和費時的。
這樣,本領域需要一種節(jié)省用戶校正語音識別模式錯誤的方法。
本領域進一步需要一種減少校正語音識別模式錯誤中擊鍵或命令數量的方法。
本發(fā)明滿足上述用于校正語音識別模式錯誤的語音引擎校正模塊中的需要。該語音引擎校正模塊可以節(jié)省在校正語音識別模式錯誤中的用戶時間。此外,語音引擎校正模塊可減少需要校正語音識別模塊錯誤的擊鍵和命令數量。
一般說來,本發(fā)明是具有語音識別程序或語音引擎的語音引擎校正模塊。語音識別程序配置成接收用于輸入程序如字處理程序文件的語音。當語音識別程序接收語音輸入時,程序處理由語音引擎識別的語音輸入。語音識別程序然后向語音引擎發(fā)送語音輸入。
該語音引擎從語音識別程序接收語音輸入,并進一步處理該語音輸入。命令處理器和聽寫處理器分別將語音輸入處理成命令和聽寫。每個處理器的結果存儲在存儲器中,如RAM,供以后檢索。
語音引擎采用模式選擇處理器確定語音輸入的語音識別模式。模式選擇處理器使用條件如語音輸入的上下文和內容來確定語音輸入的語音識別模式。在模型選擇處理器選擇了模型后,由語音引擎將語音輸入發(fā)送給程序,以作為聽寫或命令輸入文件。
當出現語音識別模式錯誤時,模式校正處理器可檢測到。一般,用戶可從程序發(fā)送命令以指示發(fā)生了語音識別模式錯誤。當該模式校正處理器接收到指示語音識別模式錯誤的命令時,模式校正處理器啟動對應于該類型的語音識別模式錯誤的校正例行程序。
當發(fā)生命令語音識別錯誤時,即當語音輸入已經錯誤輸入成命令時,則由語音引擎執(zhí)行聽寫例行程序的命令。模式校正處理器向程序發(fā)送“UNDO”命令以刪除應用于文件的輸入命令。接著,模式校正處理器從存儲在RAM中的可選聽寫選擇候選選擇。模式校正處理器從RAM復制可選選擇,然后將替換選擇發(fā)送給程序。候選選擇然后作為輸入文件的聽寫進入程序。
當發(fā)生聽寫錯誤時,即當語音輸入錯誤輸入為聽寫時,由語音引擎執(zhí)行對命令例行程序的聽寫。模式校正處理器發(fā)送“刪除”命令以刪除輸入文件的聽寫輸入。接著,模式校正處理器從存儲在RAM中的替換選擇來選擇候選選擇。模式校正處理器處理候選選擇,并將程序中的候選選擇輸入成文件中的命令。
根據本發(fā)明的一個方面,在使用聽寫處理器和命令處理器處理語音輸入前,模式選擇處理器可確定用于語音輸入的語音識別模式。語音輸入是由選擇的模式處理器處理的,結果存儲在RAM中。模式選擇處理器將該語音輸入存儲在RAM中供以后檢索。當由模式校正處理器檢測到語音識別模式錯誤時,模式校正處理器發(fā)送“UNDO”命令以刪除一命令,或執(zhí)行“刪除”命令以從文件刪除聽寫。然后,從RAM檢索語音輸入,并由替換模式處理器進行處理,從而獲得校正模式錯誤的結果。替換結果然后發(fā)送給程序以將其輸入文件。
本發(fā)明克服了現有技術的缺點并獲得上述優(yōu)點,對實施例的詳細描述和附圖以及權利要求使上述優(yōu)點更顯而易見。
圖1是提供本發(fā)明舉例性實施例操作環(huán)境的個人計算機系統(tǒng)的功能方框圖;圖2是根據本發(fā)明舉例性實施例用于校正語音識別模塊錯誤的語音引擎校正模塊組成的功能方框圖3是顯示校正語音識別模式錯誤的舉例性方法的邏輯流程圖;圖4是顯示對聽寫語音識別模式錯誤的校正命令的舉例性方法的邏輯流程圖;圖5是顯示對命令語音識別模式錯誤的校正聽寫的舉例性方法的邏輯流程圖;圖6是顯示校正語音識別模式錯誤的另一方法的邏輯流程圖;圖7是顯示對聽寫語音識別模式錯誤的校正命令的另一方法的邏輯流程圖;圖8是顯示對命令語音識別模式錯誤的校正聽寫的另一方法的邏輯流程圖。
本發(fā)明提供一種可實現文件的模式校正例行程序的語音引擎校正軟件模塊。作為一種面向對象程序,該語音引擎校正模塊提供一種標準接口,使客戶程序可以與語音引擎校正模塊進行通信。面向對象設計允許多個不同客戶程序,如字處理程序、桌面排版程序、應用程序等等,使用該語音引擎校正模塊。例如,語音引擎校正模塊可以和應用程序如Microsoft WORD一起使用。
由語音引擎校正模塊給出的接口使該模塊可以接收程序輸入。語音引擎校正模塊接收程序的語音輸入,將語音輸入處理為聽寫和/或命令,存儲作為聽寫和/或命令的處理的語音輸入,選擇該語音輸入的語音識別模式,當語音識別模式錯誤發(fā)生時進行刪除,并校正用于程序的文件中的語音識別模式錯誤。
語音引擎校正模塊配置成兩個部分,語音識別程序和語音引擎。語音識別程序接收用于程序的用戶語音輸入,將用戶語音輸入處理成用于語音引擎的隨機結果,與程序相互作用,必要時向語音引擎調用。語音引擎與語音識別程序相互作用以接收隨機結果或語音識別輸入,處理該隨機結果或語音輸入作為聽寫和/或命令,存儲處理的聽寫和/或命令,選擇隨機結果或語音輸入的語音識別模式,檢測語音識別模式錯誤,校正語音識別模式錯誤,必要時向程序調用。
圖1和下面的說明試圖提供實現本發(fā)明的適當計算機環(huán)境100的簡潔而一般性說明。舉例性操作環(huán)境100包括普通個人計算機系統(tǒng)120,該個人計算機系統(tǒng)120包括處理器121、系統(tǒng)內存122和將系統(tǒng)內存122連接到處理器121的系統(tǒng)總線123。系統(tǒng)內存122包括只讀存儲器(ROM)124和隨機存取存儲器(RAM)?;据斎耄敵鱿到y(tǒng)126(BIOS)存儲在ROM124內,BIOS126包含幫助在個人計算機系統(tǒng)120內的各組成之間傳送信息的基本例行程序,如在啟動中。
個人計算機120還包含硬盤驅動器127、可換磁盤式驅動器128和光盤驅動器130,可換磁盤式驅動器128可在可換式磁盤129上讀寫,光盤驅動器130用于讀CD-ROM盤131或在另一光媒體上讀寫。硬盤驅動器127、可換磁盤式驅動器128和光盤驅動器130分別通過硬盤驅動器接口132、可換磁盤式驅動器接口133和光盤驅動器接口134連接到系統(tǒng)總線133上。驅動器和其相關的計算機可讀媒體向個人計算機系統(tǒng)120提供非易失性存儲器。盡管上述的計算機可讀的媒體指的是硬盤驅動器、可換式磁盤和CD-ROM盤,但是本領域的技術人員應該理解在實施例操作系統(tǒng)中還可采用其它類型的計算機可讀媒體,如磁卡、快速內存卡、數字視頻盤、伯努里盒式盤和類似的部件。
用戶可通過普通輸入裝置包括鍵盤140和指點器如鼠標142向個人計算機120輸入命令或信息??刹捎名溈孙L161向計算機系統(tǒng)120輸入聲頻輸入,如語音。用戶可以通過使用輸入筆在書寫板162繪制圖形信息而將圖形信息如圖或手跡輸入計算機系統(tǒng)。計算機系統(tǒng)120可包括附加輸入裝置(未示),如控制桿、游戲墊、衛(wèi)星盤、掃描儀或類似裝置。麥克風161可以通過與系統(tǒng)總線相連的聲頻適配器160與處理器121連接。其它輸入裝置通常通過與系統(tǒng)總線連接的串行端口接口146與處理器121連接,但是也可通過其它接口連接,如游戲端口或通用串行總線(USB)。
還可通過接口如視頻適配器148將監(jiān)視器147或其它類型顯示器連接于系統(tǒng)總線123。除監(jiān)視器外,個人計算機一般包含其它外圍輸出裝置(未示),如揚聲器或打印機。
個人計算機系統(tǒng)120可在采用與一個或多個遠程計算機如遠程計算機149邏輯連接的網絡環(huán)境中工作。遠程計算機149可以是服務器、路由器、對等器或其它公共網絡節(jié)點,一般包含許多或所有上述與個人計算機系統(tǒng)120相關的部件,盡管圖1中只給出了內存存儲器150。圖1所示的邏輯連接包含局域網(LAN)151和廣域網(WAN)152。該網絡環(huán)境廣泛使用在辦公室、企事業(yè)范圍的計算機網絡、內部網絡和互聯網中。
當使用在LAN網絡環(huán)境中時,個人計算機系統(tǒng)120通過網絡接口153連接到LAN151上。當使用在WAN網絡環(huán)境中時,個人計算機系統(tǒng)120一般包含調制解調器154或其它在WAN152如互聯網上建立通訊的裝置。調制解調器154可以是內置的或外置的調制解調器,可通過串行端口接口146連接到系統(tǒng)總線123上。在網絡環(huán)境中,顯示的關于個人計算機120的程序模塊或其組成部分可以存儲在遠程內存存儲器150上。應理解圖示的網絡連接只是舉例性的,還可使用在計算機之間建立通信連接的其它裝置。還可進一步理解本發(fā)明可同樣使用在主計算機系統(tǒng)或服務器計算機系統(tǒng)上,而不是使用在個人計算機系統(tǒng)上,并能通過除CD-ROM以外的其他裝置同樣傳輸到主計算機系統(tǒng)上,例如通過網絡連接接口153。
多個程序模塊可存儲在計算機系統(tǒng)120的驅動器和RAM125上。程序模塊通過I/O裝置或其他計算機控制計算機系統(tǒng)120的操作并與用戶交互作用。程序模塊包括例行程序、操作系統(tǒng)135、應用程序模塊138、數據結構、瀏覽器和其他軟件或固件元件。本發(fā)明便于在一個或多個程序模塊中實現,如基于詳細說明的方法的語音引擎校正模塊137。
應用程序模塊138可包括多個與本發(fā)明一起使用的應用程序,其中一些程序如圖2所示。在描述圖2的文本中,這些程序模塊中的一些模塊的目的和它們之間交互作用的目的得到更充分的討論。這些程序模塊包括字處理程序(如由華盛頓州雷德蒙德的微軟公司設計的WORD)、手寫體識別程序模塊、語音引擎校正模塊137和輸入方法編輯器(IME)。
將不對用于實現各詳細說明的過程的特別程序語言進行說明,因為考慮到附圖中說明和顯示的操作、步驟和過程足以向本領域普通技術人員公開本發(fā)明的舉例性實施例。此外,有由許多用于實現實施例的計算機和操作系統(tǒng),因此不提供可應用于所有這些不同系統(tǒng)的詳細的計算機程序。特定計算機的每個用戶會知道最能滿足用戶的需要和目的的語言和工具。
本領域的技術人員會理解本發(fā)明可以與其它計算機系統(tǒng)配置一起使用,包括便攜式裝置、多處理器系統(tǒng)、基于微處理器或可編程的用戶電子裝置、微型計算機、主計算機和類似裝置。本發(fā)明還可在分布式計算機環(huán)境中使用,在該分布式計算機環(huán)境中由通過通訊網絡連接的遠程處理器來完成任務。在分布式計算機環(huán)境中,程序模塊可設置在本地內存存儲器和遠程內存存儲器。
程序模塊概述圖2提供語音引擎校正模塊200的組成和模塊概圖。一般,圖2所示的組成和模塊的目的是校正當語音輸入到應用程序138如字處理器時產生的語音識別模塊錯誤。
圖2所示的組成和模塊使用戶校正輸入應用程序138文件的語音輸入的語音識別模式錯誤。語音引擎校正模塊200包括微應用程序138接收語音輸入204的語音識別程序202。語音識別程序202通過由操作系統(tǒng)135中的麥克風驅動模塊控制的麥克風161接收來自用戶的語音輸入204。由于許多單詞聽起來相似但卻具有不同意思和拼法,因此操作系統(tǒng)135中的麥克風啟動模塊常常難于譯解語音,從而語音識別程序202產生隨機結果。隨機結果可以存儲在RAM206中,供以后由語音引擎模塊200檢索。
語音引擎校正模塊200還包括具有下述組成的語音引擎208模塊選擇處理器210、聽寫處理器212、命令處理器214和模式校正處理器216和存儲器如RAM206。模型選擇處理器210接收來自語音識別程序202的語音輸入,并確定語音輸入204的語音識別模塊。在一個實施例中,模型選擇處理器210可以是旁通的,有效地將語音輸入204發(fā)送給聽寫處理器212和命令處理器214進行處理。
當由聽寫處理器212接收語音輸入204時,聽寫處理器212處理語音輸入204作為聽寫輸入給應用程序138。采用自然語言模型218如統(tǒng)計語言模型(SLM),聽寫處理器212返回給定語音輸入的文本串204??梢允褂闷渌Z言模型處理語音輸入204,以返回作為用于應用程序138中的文本串。
當由命令處理器214接收語音輸入204時,命令處理器214處理語音輸入作為命令輸入給應用程序138。采用上下文無關語法(CFG)語言模型220,命令處理器214返回給定語音輸入204的命令??梢允褂闷渌Z言模型處理語音輸入204,以返回用于應用程序138的命令。
在另一實施例中,模式選擇處理器210確定語音輸入204的語音識別模式,并根據所選模式將語音輸入204發(fā)送給特定處理器。確定語音識別模式的選擇標準可以是語音輸入204的內容和語音輸入204的上下文。
在由聽寫處理器212和/或命令處理器214返回語音識別模式結果后,模式校正處理器216接收該結果,并向應用程序138調用該結果以將其輸入文件。模式校正處理器216還可將該結果存儲在存儲器如RAM206中,供以后檢索。
存儲器如RAM206用于存儲語音輸入204或經處理的語音輸入204。RAM206包括能存儲語音輸入204數據如隨機模型的數據結構。兩個有此作用的有用結構是格和“n-最佳(n-best)”替換列表。格是一種本領域技術人員公知的結構,因此不做全面說明。但是,簡單說來,格存儲由節(jié)點中的語音輸入源產生的單詞或詞組。由于每個單詞或詞組是語音輸入數據,因此節(jié)點還存儲賦予相關單詞或詞組的概率。為了產生由語音輸入數據表示的文本段的相似替換,可采用本領域技術人員公知的方法將格切斷。此外,表示文本相鄰塊的格可以通過稱為連接的方法合并成大格。然后切斷較大格以產生文本相鄰塊的替換。另外,語音輸入數據可以由一列n-最佳替換和其相關概率表示。對于任何單詞或詞組,n-最佳替換列表可以產生于表示單詞或詞組的格。
模式校正處理器216還可檢測來自應用程序138的模式校正命令,并等待將模式校正命令發(fā)送給語音引擎校正模塊200。當接收或檢測模式校正命令時,模式校正處理器216根據語音識別錯誤的類型、已預先存儲在RAM206中的結果或語音輸入204啟動模式校正例行程序。
在實施例中,返回來自聽寫處理器212和命令處理器214產生的語音輸入204。模式校正處理器216可以從RAM206檢索替換結果。這些結果然后傳給應用程序138以將其輸入文件。
在模式選擇處理器210選擇費校正處理器的替換實施例中,模式校正處理器216可以從RAM206檢索語音輸入204。由替換的而不是模式選擇處理器210最初選擇的處理器處理語音輸入204。然后將來自替換處理器的結果向應用程序138調用以將其輸入文件。
在應用程序138接收結果后,用戶可瀏覽替換結果,以便確定語音輸入204的準確性。例如,如果聽寫結果有語音輸入204的一個或多個替換聽寫,則用戶可以選擇通過圖形用戶界面呈現給用戶的候選項。如果用戶選擇替換聽寫中的一個,然后應用程序138可用選擇的候選項代替該聽寫,并將選擇的候選項輸入文件。
盡管已經分別說明了各個部分和模塊,本領域技術人員應該認識到各個部分和模塊可以以各種方式組合,產生新程序部分和模塊以獲得相似結果。
語音引擎模塊例行程序圖3是顯示校正文件中的語音識別模式錯誤的計算機例行程序邏輯流程圖。圖3顯示的步驟由與應用程序138一起工作的語音引擎校正模塊200完成。步驟302開始由語音引擎校正模塊200執(zhí)行的例行程序300。
步驟302后接著運行步驟304,其中語音引擎校正模塊200等待來自應用程序138的語音輸入204。當由語音引擎校正模塊200接收語音輸入204時,步驟304后接著運行步驟306。
在步驟306中,聽寫處理器212處理語音輸入204。聽寫處理器212使用自然語言模型218如統(tǒng)計語言模型(SLM)確定語音輸入204的聽寫內容。這樣的模型通常用于本領域,以將語音輸入轉換成計算機可讀文件的文本。模型可使用線索如語法和文本段的整個意思或單詞序列的概率以產生候選列表的附加替換并計算這些替換的概率。合適的自然語言模型218總是返回作為給定語音輸入的文本結果。在聽寫處理器212確定語音輸入204的文本結果后,步驟306后接著運行步驟308。
在步驟308,命令處理器214處理語音輸入204。命令處理器214使用上下文無關語法(CFG)語言模型220用于確定語音輸入204的命令內容。這樣的模型通常用于本領域,以將語音輸入轉換成給定語音輸入的命令結果。合適的CFG模型總是返回非常類似于語音輸入204的應用程序命令。在命令處理器214確定語音輸入204的命令結果后,步驟308后接著運行步驟310。
在步驟310,模型選擇處理器210確定語音輸入204的語音識別模式。根據聽寫選擇標準,模式選擇處理器210確定語音識別模式,并根據選擇語音識別模式繼續(xù)處理語音輸入204。合適的選擇標準可以是語音輸入和文件的上下文以及語音輸入的內容。例如,當模型選擇處理器210相遇包括單個單詞“刪除”的語音輸入時,模式選擇處理器210可根據語音輸入204和文件的文字上下文以及從語音輸入204的內容確定語音輸入204是個命令。這樣,模型選擇處理器210繼續(xù)處理作為命令的語音輸入204。當語音輸入識別模式已經由模式選擇處理器210選擇后,步驟310后接著運行步驟312。
在步驟312,模式選擇處理器210向應用程序138發(fā)送選擇的模型處理器結果。例如,如果命令處理器214返回命令“刪除”,模式選擇處理器210確定語音輸入204的模式是個命令,然后模式選擇處理器210會將語音輸入“刪除”作為命令發(fā)送給應用程序138。當選擇的模式處理器結果已經發(fā)送給應用程序時,步驟312后接著運行步驟314。
在步驟314,語音引擎校正模塊200在RAM206中存儲替換模型處理器結果,或其它類似類型的存儲器。存儲替換模式處理器結果使語音引擎校正模塊200可在以后檢索這些結果。例如,當語音引擎或用戶確定已經犯了模式錯誤,則選擇的模式應該是由語音引擎校正模塊200非初始選擇的替換模式。
步驟314后接著運行決定塊316,其中模式校正處理器216檢查語音識別模塊校正命令??梢赃x擇或由指示出現模式錯誤的模塊校正處理器216接收其它類似命令或功能。如果刪除了語音識別模式校正命令,則沿“是”支路運行到決定塊318,其中模塊校正例行程序繼續(xù)。如果沒有刪除語音識別模式校正命令,則沿“非”支路運行到步驟326以返回例行程序300的開始。
模式校正例行程序300隨決定塊318繼續(xù),其中模式校正處理器216確定是否需要進行聽寫對命令校正。如果模式錯誤需要命令轉換成聽寫,則沿“是”支路運行到步驟320,其中執(zhí)行例行程序400(如圖4所示)。如果模式錯誤不需要轉換成聽寫的命令,則沿“非”支路運行到決定塊322。
在決定塊322中,模式校正處理器216確定是否需要進行聽寫對命令模式校正。如果語音識別模式錯誤需要聽寫轉換成命令,則沿“是”支路運行到步驟324,其中執(zhí)行例行程序500(如圖5所示)。如果語音識別模式錯誤不需要聽寫轉換成命令,則沿“非”支路運行到步驟326,其中例行程序300返回開始。
圖4顯示了例行程序400,其中語音識別校正模塊200校正命令語音識別模式錯誤。即當用戶需要時,將已經作為命令輸入應用程序138的語音輸入204轉換成應用程序138的聽寫輸入。步驟402開始由語音引擎校正模塊200執(zhí)行的例行程序400。
步驟402后接著運行步驟404,其中語音引擎校正模塊200將初始語音輸入204存儲在RAM206中,或任何其它類似存儲器中。存儲的初始語音輸入204允許在以后再調用或再處理語音輸入204。例如,當例行程序400中斷并且需要再調用初始語音輸入204時,RAM206是很有用的。
步驟404后接著運行步驟406,其中“撤消”命令作為命令輸入文件。模式校正處理器216向應用程序138發(fā)送“撤消”命令,應用程序138在文件上執(zhí)行“撤消”。該“撤消”命令再調用由應用程序138在文件上執(zhí)行的上次命令或命令串,并取消或撤消在文件上執(zhí)行的上次命令或命令串。通過執(zhí)行“撤消”命令,在模式錯誤發(fā)生之前,文件可返回其初始內容,語音輸入204是作為命令而不是作為聽寫而輸入文件的。
步驟406后接著運行步驟408,其中模式校正處理器216從聽寫處理器212結果選擇候選聽寫,該結果作為替換模式處理器結果存儲在RAM中。如圖3中的步驟314所述,替換模式處理器結果存儲在RAM206中供以后在檢測到語音識別模式錯誤的情況下進行檢索。并且選擇模式應該是替換模式而不是由語音引擎模塊200最初選擇的模式。模式校正處理器216根據文件的上下文使用選擇標準從替換模式處理器結果選擇候選聽寫。
為了提高校正模式錯誤的速度,模式校正處理器216可以自動向應用程序138發(fā)送候選聽寫,并將候選聽寫輸入文件而不提示用戶。否則,模式校正處理器216可簡單提示用戶候選聽寫是最可能的校正語音輸入204聽寫結果,并等待用戶確認或將候選聽寫輸入該文件。
步驟410后接著運行步驟408,其中模式校正處理器216向應用程序138發(fā)送RAM206中的候選選擇和所有替換結果。應用程序138然后在其它替換聽寫結果中以選亮選擇顯示該候選結果。用戶可接著選擇候選選擇以將其輸入應用程序138,或用戶向下滾動替換聽寫以選擇想要的聽寫結果。在有些時候,如為了提高校正模式錯誤的速度,候選選擇是發(fā)送給應用程序138的唯一替換結果,可以提示用戶輸入候選選擇,或候選選擇可以自動插入該文件。
步驟412后接著運行步驟410,其中選擇的聽寫選擇是作為文件的聽寫輸入而輸入應用程序138的。在語音引擎校正模塊200或用戶已經分析了存儲在RAM206中用于存儲想要的聽寫結果的替換結果,并已經確定哪個結果是最想作為輸入文件的聽寫的語音輸入204以后,該步驟提供文件的聽寫輸入。步驟412后接著運行步驟414,其中通過返回圖3的步驟326而結束例行程序400。
圖5顯示例行程序500,其中語音引擎校正模塊200校正聽寫對命令語音識別模式錯誤。即,當模式校正處理器216檢測到語音輸入204是作為聽寫的錯誤輸入時,語音輸入204應該作為命令輸入文件。圖5是例行程序500的邏輯流程圖,其開始沿“是”支路由圖3的決定塊322運行,例行程序500從步驟502開始。
步驟502后接著運行步驟504,其中語音引擎校正模塊200將接收的語音輸入204存儲在RAM206中,或任何其它類似的內存或存儲器中。如果例行程序500中斷,需要再調用初始語音輸入204,則存儲的初始語音輸入204對語音輸入204再調用或再處理。例如,當例行程序500中斷時,需要再調用初始語音輸入204時,RAM206是很有用的。
步驟504后接著運行步驟506,其中模式校正處理器216向應用程序138發(fā)送“刪除”命令以刪除作為聽寫錯誤輸入文件的語音輸入204??梢詫ⅰ皠h除”命令或任何類似功能發(fā)送到應用程序138以刪除作為聽寫錯誤輸入該文件的語音輸入204。
步驟506后接著運行步驟508,其中模式校正處理器216從存儲在RAM206中的替換模式處理器結果選擇候選命令。如圖3的步驟314中所述,替換模式處理器結果存儲在RAM206中,供以后在當檢測到語音識別模式錯誤的情況下進行檢索,選擇的模式應該是替換模式而不是由語音引擎校正模塊200最初選擇的。模式校正處理器216根據文件的上下文或預先發(fā)出的命令使用選擇標準從替換模式處理器結果選擇候選命令。
步驟508后接著運行步驟510,其中模式校正處理器216向應用程序138發(fā)送候選命令和RAM206中的所有替換結果。應用程序138然后在其它替換命令結果中將候選選擇作為顯亮選擇顯示。為提高校正模式錯誤的速度,模式校正處理器136可自動向應用程序138發(fā)送候選命令而不提示用戶。否則,模式校正處理器216可只注意到該候選命令是最可能選擇的正確語音輸入204命令結果。
步驟510后接著運行步驟512,其中將選擇的命令輸入應用程序138。在語音引擎校正模塊200或用戶分析存儲在用于存儲所需命令結果的RAM206中的替換結果,并確定哪個結果是最需要作為輸入文件的命令的語音輸入204后,該步驟提供文件的命令輸入。步驟512后接著運行步驟514,其中通過返回圖3的步驟326而結束例行程序500。
圖6是顯示用于校正文件中的語音識別模式錯誤的替換計算機例行程序流程圖。圖6中顯示的步驟由與應用程序138一起工作的語音引擎校正模塊200執(zhí)行。步驟602開始由語音引擎校正模塊200執(zhí)行的例行程序600。
步驟602后接著運行步驟604,其中語音引擎校正模塊200等待來自應用程序138的語音輸入204。當語音輸入204由語音引擎模塊200接收時,步驟604后接著運行例行程序606。
在步驟606,模式選擇處理器210確定語音輸入204的語音識別模式。
根據聽寫選擇標準,模式選擇處理器210確定語音識別模式,并根據選擇的語音識別模式繼續(xù)處理語音輸入204。合適的選擇標準可以是語音輸入204和文件的上下文以及語音輸入204的內容。例如,當模式選擇處理器210遇到包括單個詞“刪除”的語音輸入204時,模式選擇處理器210可根據語音輸入204和文件的文字上下文以及從語音輸入204的內容確定該語音輸入204是命令。這樣,模式選擇處理器210繼續(xù)處理作為命令的語音輸入204。合適的語音識別模式可以是聽寫和命令或用于應用程序138的文件中的任何其它有用模式。當選擇了語音識別模式時,步驟606后接著運行步驟608。
在步驟608中,根據在步驟606中選擇的選擇語音識別模式,模式處理器212、214處理語音輸入204。如果選擇了聽寫模式,聽寫處理器212使用用于確定聽寫內容的自然語言模型218。在本領域通常使用該模型將語音輸入轉換成計算機可讀文件的文本。模型可使用線索,如語法和文本段的整個內容,或字串的概率,以產生候選列表的附加替換,并計算這些替換的概率。合適的語言模型總是返回作為給定語音輸入的文本結果。在聽寫處理器218確定語音輸入204的文本結果后,步驟608后接著運行步驟610。
另外,如果選擇了命令模式,則命令處理器214處理語音輸入204。命令處理器214使用與上下文無關的語法(CFG)語言模型229確定命令的內容。在本領域通常使用模型將語音輸入204轉換成給定語音輸入204的命令結果。合適的CFG模型返回的應用程序命令非常類似于語音輸入204。在命令處理器214確定了語音輸入204的命令結果后,步驟608后接著運行決定塊610。
在決定塊610中,模式校正處理器216檢查語音識別模式校正命令??梢杂赡J叫U幚砥?16檢測或接收其它類似命令或功能以指示模式錯誤。如果檢測到語音識別模式校正命令,則沿“是”支路運行到決定塊612,其中模式校正例行程序繼續(xù)。如果沒有檢測到語音識別模式校正命令,則沿“非”支路運行到步驟308以采用選擇模式繼續(xù)處理語音輸入。
模式校正例行程序600繼續(xù)決定塊612,其中模式校正處理器216確定是否需要進行命令對聽寫模式校正。如果模式錯誤需要將命令轉變成聽寫,則沿“是”支路運行到步驟614,其中執(zhí)行例行程序700(如圖7所示)。如果模式錯誤不需要將命令轉變成聽寫,則沿“否”支路運行到決定塊616。
在決定塊616中,模式校正處理器216確定是否需要進行聽寫對命令校正。如果語音識別模式錯誤需要將聽寫轉變成命令,則沿“是”支路運行到步驟618,其中執(zhí)行例行程序800(如圖8所示)。如果語音識別模式錯誤不需要將命令轉變成聽寫,則沿“否”支路運行到決定塊620,其中例行程序600返回開始塊602。
圖7顯示替換例行程序700,其中語音引擎校正模塊200校正命令語音識別模式錯誤。即,通過再輸入作為由用戶指定的聽寫的語音輸入204,語音引擎模塊校正作為命令錯誤輸入應用程序138的語音輸入204。步驟702開始由語音引擎校正模塊200的例行程序700。
步驟702后接著運行步驟704,其中語音引擎校正模塊200在RAM206中存儲初始語音輸入204。其它存儲器和結構可以用于存儲初始語音輸入204。存儲初始語音輸入204容許在以后再調用和再處理語音輸入。例如,當例行程序700中斷和需要再調用初始語音輸入204時,RAM206是很有用的。
步驟704后接著運行步驟706,其中“撤消”命令是作為命令輸入文件的。模式校正處理器216向應用程序138發(fā)送“撤消”命令,應用程序138在文件上執(zhí)行“撤消”?!俺废泵钤僬{用由應用程序138在文件上執(zhí)行的上次命令或命令串,并取消或撤消在文件上執(zhí)行的上次命令或命令串。通過執(zhí)行“撤消”命令,在語音輸入204作為命令而不是聽寫錯誤地輸入前,文件可以返回到初始狀態(tài)。
步驟706后接著運行步驟708,其中模式校正處理器216向聽寫處理器212發(fā)送存儲在RAM206中的初始語音輸入204。
步驟708后接著運行步驟710,其中語音輸入204作為聽寫由聽寫處理器212處理。聽寫處理器212使用統(tǒng)計語言模型(SLM)218或其它類似語言模型處理語音輸入204。文本結果由聽寫處理器212返回以輸入該文本。
步驟710后接著運行步驟712,其中模式校正處理器216向應用程序138發(fā)送聽寫結果。應用程序138接著將該聽寫輸入輸進該文件。步驟712后接著運行步驟714,其中例行程序700通過返回圖6的步驟608而結束。
圖8顯示替換例行程序800,其中語音引擎校正模塊200校正聽寫語音識別模式錯誤。即,當模式校正處理器216檢測到語音輸入204已經作為聽寫錯誤輸入,而語音輸入204應該作為命令輸入文件。圖8是顯示例行程序800的邏輯流程圖,接著圖6的步驟616開始。例行程序800在步驟802開始。
步驟802后接著運行步驟804,其中語音引擎校正模塊200將接收的語音輸入204存儲在RAM206。其它存儲器可以用于存儲該語音輸入204。存儲初始語音輸入204容許在以后再調用和再處理語音輸入。例如,當例行程序800中斷并且需要再調用初始語音輸入204時,RAM206是很有用的。
步驟804后接著運行步驟806,其中模式校正處理器216向應用程序發(fā)送“刪除”命令以刪除作為聽寫錯誤輸入該文件的語音輸入204。其它類似命令或功能可以發(fā)送給應用程序138以取消作為聽寫錯誤輸入該文件的語音輸入204。
步驟806后接著運行步驟808,其中模式校正處理器216向命令處理器214發(fā)送存儲在RAM206中的初始語音輸入204。
步驟808后接著運行步驟810,其中語音輸入204是作為命令由命令處理器214處理的。命令處理器214使用與上下文無關語法(CFG)語言模型220或其它類似語言模型來處理語音輸入214。命令結果由命令處理器214返回以輸入應用程序138。
步驟810后接著運行步驟812,其中模式校正處理器216向應用程序138發(fā)送命令結果。應用程序138接著可將命令輸入輸進該文件。步驟812后接著運行步驟814,其中例行程序800通過返回圖6的步驟608而結束。
綜上所述,會理解本發(fā)明提供一種語音引擎校正模塊以校正程序文件中的語音識別模式錯誤。應該明白上述內容只涉及本發(fā)明的舉例性實施例,可以對其做出各種改變,而不會背離由下述權利要求所限定的本發(fā)明的精神和范圍。
權利要求
1.一種具有計算機可執(zhí)行指令的計算機可讀媒體,包括用于將語音輸入輸進文件的語音引擎;處理所述語音以獲得第一結果和第二結果;選擇語音輸入的語音識別模式;以及根據所述選擇的語音識別模式將第一結果和第二結果發(fā)送給所述文件。
2.如權利要求1所述的計算機可讀媒體,其中語音引擎進一步包括存儲所述替換結果;檢測所述文件中的語音識別模式錯誤;根據預先結果的輸入撤消任何對所述文件的改變;將替換結果發(fā)送給所述文件以將其輸入所述文件。
3.一種具有計算機可執(zhí)行指令的計算機可讀媒體,包括用于將語音輸入輸進文件的語音引擎;存儲所述語音輸入;選擇所述語音輸入的語音識別模式;處理所述語音輸入以獲得第一結果;以及將第一結果輸入所述文件。
4.如權利要求3所述的計算機可讀媒體,其中語音引擎進一步包括檢測所述文件中的語音識別模式錯誤;根據所述第一結果撤消任何對所述文件的改變;處理所述語音輸入以獲得第二結果;以及將所述第二結果輸入所述文件。
5.一種具有計算機可執(zhí)行指令的計算機可讀媒體,包括用于將輸入輸進所述文件的應用程序;處理所述應用程序的輸入的語音引擎;在處理器中處理所述輸入以獲得第一結果;在所述處理器中處理所述輸入以獲得第二結果;用所述模式選擇處理器確定所述輸入的模式;用所述模式選擇處理器根據所述選擇的模式選擇結果;向所述應用程序發(fā)送所述選擇結果以將其輸入所述文件;在存儲器中存儲替換結果;用模式校正處理器模式錯誤;響應檢測模式錯誤,根據所述預先選擇結果撤消對所述文件的改變;檢索替換模式結果;以及向所述應用程序發(fā)送所述替換模式結果以將其輸入所述文件。
6.如權利要求5所述的計算機可讀媒體,其中輸入所述文件的所述輸入包括人的語音。
7.如權利要求5所述的計算機可讀媒體,其中所述處理器進一步包括處理所述輸入以獲得命令結果。
8.如權利要求5所述的計算機可讀媒體,其中所述處理器進一步包括處理所述輸入以獲得聽寫結果。
9.如權利要求5所述的計算機可讀媒體,其中所述模式包括命令或聽寫,或命令和聽寫兩者的組合。
10.如權利要求5所述的計算機可讀媒體,其中所述存儲器包括可再讀的存儲器如RAM。
11.如權利要求5所述的計算機可讀媒體,其中用所述模式校正處理器檢測模式錯誤的所述步驟進一步包括接收來自用戶的已經發(fā)生模式錯誤的命令。
12.如權利要求5所述的計算機可讀媒體,進一步包括步驟從所述替換模式結果確定候選模式結果。
13.如權利要求12所述的計算機可讀媒體,進一步包括步驟提示用戶在替換模式結果列表中選擇所述侯選模式結果。
14.如權利要求5所述的計算機可讀媒體,進一步包括步驟將所述替換結果輸入所述文件。
15.一種具有計算機可執(zhí)行指令的計算機可讀媒體,包括用于將輸入輸進所述文件的應用程序;處理所述應用程序的輸入的語音引擎;用模式選擇選擇輸入的模式;在處理器中處理所述輸入以獲得第一結果;向所述應用程序發(fā)送第一結果以將其輸入所述文件;在存儲器中存儲所述輸入;用模式校正處理器檢測模式錯誤;響應檢測模式錯誤,根據預先選擇結果撤消對所述文件的改變;從所述存儲器檢索所述輸入;在所述處理器中處理所述輸入以獲得第二結果;向所述應用程序發(fā)送所述替換模式結果以將其輸入所述文件。
16.如權利要求15所述的計算機可讀媒體,其中輸入所述文件的所述輸入包括人的語音。
17.如權利要求15所述的計算機可讀媒體,其中所述處理器進一步包括處理所述輸入以獲得命令結果。
18.如權利要求15所述的計算機可讀媒體,其中所述處理器進一步包括處理所述輸入以獲得聽寫結果。
19.如權利要求15所述的計算機可讀媒體,其中所述模式包括命令或聽寫,或命令和聽寫兩者的組合。
20.如權利要求15所述的計算機可讀媒體,其中所述存儲器包括可再寫的存儲器如RAM。
21.如權利要求15所述的計算機可讀媒體,進一步包括步驟接收來自用戶的已經發(fā)生模式錯誤的命令。
22.如權利要求15所述的計算機可讀媒體,進一步包括步驟將所述第二結果輸入所述文件。
23.一種校正文件中的語音識別模式錯誤的方法,包括從應用程序接收語音輸入以輸入所述文件;在處理器中處理所述語音以獲得第一結果;在處理器中處理所述語音以獲得第二結果;用模式選擇處理器確定語音輸入的語音識別模式;根據所述選擇的語音識別模式選擇結果;向所述應用程序發(fā)送所述選擇結果以將其輸入所述文件;將替換結果存儲在存儲器中;用模式校正處理器檢測語音識別模式錯誤;響應檢測的語音識別模式錯誤,根據預先選擇結果撤消對所述文件的改變;檢索所述替換模式結果;以及向所述應用程序發(fā)送所述替換模式結果以將其輸入所述文件。
24.如權利要求23所述的方法,其中所述第一結果是命令結果。
25.如權利要求23所述的方法,其中所述第一結果是聽寫結果。
26.如權利要求23所述的方法,其中所述模式校正處理器可進一步操作以接收來自用戶的已經發(fā)生模式錯誤的命令。
27.如權利要求23所述的方法,其中所述模式校正處理器可進一步操作以確定來自所述替換模式結果的候選模式結果。
28.如權利要求27所述的方法,其中所述模式校正處理器可進一步操作以提示用戶在替換模式結果列表中選擇所述候選模式結果。
29.如權利要求23所述的方法,其中所述模式校正處理器可進一步操作以將所述替換結果輸入所述文件。
30.一種存儲一組用于執(zhí)行如權利要求23所述方法的計算機可執(zhí)行指令的計算機可讀存儲器。
31.一種執(zhí)行如權利要求23所述方法的步驟的設備。
32.用于校正文件中語音識別模式錯誤的方法,包括接收來自應用程序語音輸入以輸入所述文件;用模式選擇處理器選擇所述語音輸入的語音識別模式;在處理器中處理所述語音輸入;向應用程序發(fā)送第一結果以將其輸入所述文件;將所述語音輸入存儲在存儲器中;用模式校正處理器檢測模式錯誤;響應檢測的模式錯誤,根據預先選擇結果撤消對所述文件的改變;從存儲器檢索所述語音輸入;在處理器中處理所述語音以獲得第二結果;向所述應用程序發(fā)送第二結果以將其輸入所述文件。
33.如權利要求32所述的方法,其中所述第一結果是聽寫結果。
34.如權利要求32所述的方法,其中所述第一結果是命令結果。
35.如權利要求32所述的方法,其中所述模式校正處理器可進一步操作以接收來自用戶的已經發(fā)生模式錯誤的命令。
36.如權利要求32所述的方法,其中所述模式校正處理器可進一步操作以將所述第二結果輸入所述文件。
37.一種存儲一組用于執(zhí)行如權利要求32所述方法的計算機可執(zhí)行指令的計算機可讀存儲器。
38.一種實現如權利要求32所述方法的步驟的裝置。
39.一種具有計算機可執(zhí)行指令的計算機可讀媒體,包括用于將文本或命令輸入文件的應用程序;語音引擎程序,設置為處理所述應用程序的文本或命令的所述語音輸入;在聽寫處理器中處理所述語音輸入以獲得聽寫結果;在命令處理器中處理所述語音輸入以獲得命令結果;確定所述語音輸入的語音識別模式;根據所述語音識別模式選擇結果;向所述應用程序發(fā)送所述選擇結果以將其輸入存儲器;檢測語音識別模式錯誤;響應檢測語音識別模式錯誤,根據所述預先選擇結果撤消對文件的改變;檢索所述替換語音識別模式結果;向所述應用程序發(fā)送所述替換語音識別模式結果;將所述替換語音識別模式結果輸入所述文件。
40.一種具有計算機可執(zhí)行指令的計算機可讀媒體,包括用于將文本或命令輸入文件的應用程序;用于處理所述應用程序的所述文本或命令的語音引擎;用第一模式選擇來選擇所述文本或命令的第一模式;在處理器中處理所述文本或命令以獲得第一結果;向所述應用程序發(fā)送所述第一結果以將其輸入所述文件;在存儲器中存儲所述文本或命令;用模式校正處理器檢測模式錯誤;響應檢測的模式錯誤,根據預先選擇結果撤消對所述文件的改變;從所述存儲器檢索所述文本或命令;在處理器中處理所述文本或命令以獲得第二結果;向所述應用程序發(fā)送第二結果;將所述第二結果輸入所述文件。
全文摘要
一種語音識別模式錯誤校正系統(tǒng)和方法,語音識別程序模塊接收來自用戶的語音輸入并向語音引擎發(fā)送。命令處理器將語音輸入處理成命令結果,聽寫處理器將語音輸入處理成聽寫結果。模式選擇處理器確定語音輸入的語音識別模式,并將選擇的模式結果發(fā)送到該應用程序。模式校正處理器檢測發(fā)生的語音識別模式錯誤,并將其輸入例行程序以校正模式錯誤。如果命令模式錯誤已經發(fā)生,則模式校正處理器允許用戶選擇候選聽寫或替換模式結果以輸入該文件。
文檔編號G06F3/16GK1293427SQ0013019
公開日2001年5月2日 申請日期2000年10月19日 優(yōu)先權日1999年10月19日
發(fā)明者杰弗里·C·雷納, 埃里克·拉克, 保羅·基揚·萬·金, 戴維·艾倫·考爾頓 申請人:微軟公司