專利名稱:塊同步譯碼的制作方法
背景技術(shù):
本發(fā)明涉及模式識別。本發(fā)明尤其涉及處理用于模式識別中的信號。
諸如語音識別系統(tǒng)這樣的模式識別系統(tǒng)獲取輸入信號并試圖對該信號進(jìn)行譯碼,以發(fā)現(xiàn)由該信號表示的模式。例如,在語音識別系統(tǒng)中,語音信號(通常指測試信號)由識別系統(tǒng)接收,并且對該語音信號進(jìn)行譯碼以識別由該語音信號所表示的詞串。
為對引入的測試信號進(jìn)行譯碼,絕大多數(shù)的識別系統(tǒng)利用一個或多個模型,該模型描述部分測試信號表示特定模式的可能性。這樣模型的例子包括神經(jīng)網(wǎng)絡(luò)、動態(tài)時間翹曲(Dynamic Time Warping)、段模型(segment models),以及隱式馬爾可夫模型(HMM)(Hidden Markov Models)。
絕大多數(shù)的可商用(commercially-available)語音識別系統(tǒng)使用HMM來匹配語音中的語音模式,語音被分割為搭接的“幀”,這些幀之間通常間隔約10毫秒。將語音分解為這些10毫秒的幀僅為被轉(zhuǎn)換為一系列時序幀(time-sequenced frames)輸入的一個例子。傳統(tǒng)上,這些幀的估算每次進(jìn)行1幀;在繼續(xù)前進(jìn)到下一幀之前,以循環(huán)(round-robin fashion)的方式對單幀更新所有的HMM。
圖3闡明HMM的基本表示法,這在許多教科書中詳細(xì)說明,包括例如由Huang,Acero和Hon所著的口語處理的第八章。在任何指定的時間處,該模型具有處于任何不同狀態(tài)的特定概率。每個狀態(tài)具有輸出概率分布和到其它狀態(tài)的轉(zhuǎn)移概率。就語音來說,輸出分布模擬從被分為10毫秒幀的原始語音波形中導(dǎo)出的聲音特征組。這些轉(zhuǎn)移和輸出概率依照已知技術(shù)由訓(xùn)練步驟(training step)來產(chǎn)生。
對HMM的譯碼問題是指定HMM和觀察序列,產(chǎn)生該觀察序列的最有可能性的狀態(tài)序列是什么?解決這個問題的標(biāo)準(zhǔn)方法被稱為動態(tài)規(guī)劃法,并且該方法圖示在圖4中。關(guān)于圖3說明的六狀態(tài)HMM已經(jīng)初露端倪,而且時間沿著水平軸進(jìn)行。指定觀察,在這個柵格中的每個“點(diǎn)”(狀態(tài)和時間的組合)代表HMM在給以觀察的時間處于那種狀態(tài)的概率。一條通過DP矩陣的可能路徑以粗體突出顯示(1-8-14-21-27-33-40-47-53-59-66),代表特定的排列或狀態(tài)序列。對點(diǎn)的概率根據(jù)先前點(diǎn)的概率,轉(zhuǎn)移概率和在那個時間步的輸出概率。既然每個點(diǎn)依靠幾個先前點(diǎn),那么計算對那個點(diǎn)的概率就需要已經(jīng)首先計算了先前點(diǎn),從而設(shè)置計算順序的限制。圖4中通過點(diǎn)中的數(shù)字示出“時間同步”估算順序;該系統(tǒng)在再次開始下一時間步驟之前,對指定時間步估算所有的狀態(tài)。注意,由于可允許僅在已計算前任點(diǎn)之后來計算點(diǎn)的任何順序,所以這個不是僅有的可能估算順序?;疑狞c(diǎn)表明或者為不可達(dá)到的或者為不導(dǎo)至可能的結(jié)束狀態(tài)的狀態(tài),因此不需要被估算,盡管許多實(shí)施例無論如何還是對它們進(jìn)行估算。
在實(shí)時系統(tǒng)中,可能有好幾萬這樣的HMM同時運(yùn)行。這些模型消耗足夠的計算機(jī)存儲器,以至每次通過整個模型組通常耗盡CPU高速緩存容量。由于僅使用CPU高速緩存的存儲器操作比使用較高級的存儲器的存儲器操作快許多倍,這就大大減慢了語音處理。
解決該問題的另一個方法在由Tony Robinson和James Christie所著的題名為對大量詞匯語音識別的時間第一搜索(Time-First Search For LargeVocaburary Speech Recognition)的論文中描述。這個方法本質(zhì)上將HMM估算的順序從對指定時間幀估算多模型轉(zhuǎn)換到對指定模型估算多時間幀。這個方法意味著在與標(biāo)準(zhǔn)CPU存儲器高速緩存操作協(xié)同工作的同時減少處理存儲器需求,這是因?yàn)樵S多操作落入相同的物理存儲器范圍。
為提供對大量詞匯應(yīng)用的實(shí)時連續(xù)語音識別,需要進(jìn)一步的改進(jìn)以便不僅改善CPU高速緩存使用的效率,而且改善處理例程本身的效率。這樣,不僅至關(guān)緊要的處理速度得到了改善,而且處理準(zhǔn)確度也得到了提高。
發(fā)明內(nèi)容
提供模式識別系統(tǒng)和方法。當(dāng)本發(fā)明的諸方面結(jié)合多狀態(tài)隱式馬爾可夫模型尤其有用。模式識別可通過處理隱式馬爾可夫模型塊來實(shí)現(xiàn)。這個模塊處理允許處理器在數(shù)據(jù)處于高速緩存存儲器中的同時執(zhí)行更多的這樣數(shù)據(jù)上操作。通過這樣增加高速緩存局部性,本發(fā)明的各方面提供對模式識別速度的顯著改善。
圖1是其中可實(shí)施本發(fā)明的一個計算環(huán)境的框圖。
圖2是其中可實(shí)施本發(fā)明的另選的計算環(huán)境的框圖。
圖3是六狀態(tài)HMM的圖解視圖。
圖4是用時間作為水平軸的表示的圖3六狀態(tài)HMM的圖解視圖。
圖5是三狀態(tài)HMM三個一組的圖解視圖。
圖6是依照本發(fā)明實(shí)施例的隱式馬爾可夫模型塊(HMMB)的圖解視圖。
具體實(shí)施例方式
圖1闡明其中可實(shí)施本發(fā)明的合適計算系統(tǒng)環(huán)境100的例子。該計算系統(tǒng)環(huán)境100僅為一個合適計算環(huán)境的例子,而且并非試圖對本發(fā)明的使用或功能的范圍提出任何限制。計算環(huán)境100也不應(yīng)被解釋為對在范例操作環(huán)境100中示出的任何一個組件或其組合具有任何依賴或需求。
本發(fā)明可用于許多其它通用或?qū)S糜嬎阆到y(tǒng)環(huán)境或配置??蛇m用于本發(fā)明的熟知計算系統(tǒng)、環(huán)境和/或配置的例子包括,但不局限于,個人計算機(jī)、服務(wù)器計算機(jī)、手持式或膝上型裝置、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)者電子裝置、網(wǎng)絡(luò)PC、小型計算機(jī)、大型計算機(jī)、電話系統(tǒng)、包括任何上述系統(tǒng)或裝置的分布計算環(huán)境等。
可用由計算機(jī)執(zhí)行的諸如程序模塊這樣的計算機(jī)可執(zhí)行指令的通用上下文來說明本發(fā)明。一般,程序模塊包括例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等,它們執(zhí)行特定的任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型。本發(fā)明也可用于分布計算環(huán)境中,那里通過由通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理裝置來執(zhí)行任務(wù)。在分布計算環(huán)境中,程序模塊可位于包括存儲器存儲裝置的本地或者遠(yuǎn)程計算機(jī)存儲媒體中。
參考圖1,用于實(shí)施本發(fā)明的范例系統(tǒng)包括以計算機(jī)110形式的通用計算裝置。計算機(jī)110的組件可包括,但不局限于,中央處理單元120,它包括高速緩存存儲器122(1級高速緩存)和高速緩存存儲器123(2級高速緩存)、系統(tǒng)存儲器130、以及將包括系統(tǒng)存儲器的不同系統(tǒng)組件聯(lián)結(jié)到處理單元120的系統(tǒng)總線121。高速緩存存儲器通過允許數(shù)據(jù)塊從速度較低的系統(tǒng)存儲器轉(zhuǎn)移到較高速度的高速緩存存儲器而增加處理速度。當(dāng)前有兩個主要類型的高速緩存存儲器。1級高速緩存存儲器是位于微處理器本身的存儲器的部分。這個存儲器一般比系統(tǒng)中所有其它的存儲器速度快,但是由于這個存儲器是直接加到微處理器的硅涵蓋表面上的,所以也較昂貴。2級高速緩存一般位于微處理器的附近,但不在其上。這個存儲器通常也比系統(tǒng)存儲器的速度快,但是比1級高速緩存存儲器的速度慢。按照很粗略的指導(dǎo)方針,可認(rèn)為1級高速緩存的工作速度大約比水平2級高速緩存快一個數(shù)量級,且2級高速緩存的工作速度大約比整個系統(tǒng)RAM的工作速度快一個數(shù)量級。這樣,當(dāng)高速緩存被最有效率的使用時,系統(tǒng)處理速度就被最大化了。
系統(tǒng)總線121可為幾種類型的總線結(jié)構(gòu)的任何一種,包括存儲總線或存儲器控制器、外圍總線,以及使用多種總線體系結(jié)構(gòu)的任何一種的本地總線。作為例子,但非限制,這樣的體系結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(ISA)總線、微通道體系結(jié)構(gòu)(MCA)總線、增強(qiáng)型ISA(EISA)總線、視頻電子標(biāo)準(zhǔn)協(xié)會(VESA)局部總線,以及也已知為小背板總線(Mezzanine bus)的外圍組件互連(PCI)總線。
計算機(jī)110通常包括各種計算機(jī)可讀媒體。計算機(jī)可讀媒體可為能夠被計算機(jī)110存取的任何可用媒體,而且既包括易失性媒體,又包括非易失性媒體,既包括可取走媒體,又包括不可取走媒體。作為例子,但非限制,計算機(jī)可讀媒體可包含計算機(jī)存儲媒體和通信媒體。計算機(jī)存儲媒體包含以任何方法或技術(shù)來實(shí)現(xiàn)的易失性或者非易失性、可取走或者不可取走的媒體用于存儲諸如計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)這樣的信息。計算機(jī)存儲媒體包括,但不局限于,RAM、ROM、EEPROM、閃速存儲器或其它存儲器技術(shù)、CDROM、數(shù)字多用途盤(DVD)或其它光盤存儲、盒式磁帶、磁帶、磁盤存儲或其它磁存儲裝置,或者可用來保存所需信息且可由計算機(jī)110存取的任何其它媒體。通信媒體通常包含計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或在諸如載波或其它傳送機(jī)制這樣的調(diào)制數(shù)據(jù)信號中的其它數(shù)據(jù),而且包括任何信息傳遞媒體。術(shù)語“調(diào)制數(shù)據(jù)信號”意指具有一個或多個特征組或以對信號中的信息進(jìn)行編碼的方式改變的信號。作為例子,但非限制,通信媒體包括諸如有線網(wǎng)絡(luò)或直線連接這樣的有線媒體,以及諸如聲音、RF、紅外線的,以及其它無線媒體這樣的無線媒體。任何上述的組合也應(yīng)被包括在計算機(jī)可讀媒體的范圍之內(nèi)。
系統(tǒng)存儲器130包括以諸如只讀存儲器(ROM)131和隨機(jī)存取存儲器(RAM)132這樣的易失性和/或非易失性存儲器形式的計算機(jī)存儲媒體?;据斎?輸出系統(tǒng)133(BIOS),它包含幫助(諸如在啟動階段),在計算機(jī)110中的元件之間傳遞信息的基本例程通常被代表性的被保存在ROM 131中。RAM 132通常包含可由處理單元120直接存取和/或目前正由處理單元120操作的數(shù)據(jù)和/或程序模塊。作為例子,但非限制,圖1示出操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136,以及程序數(shù)據(jù)137。
計算機(jī)110也可包括其它可取走/不可取走、易失性/非易失性計算機(jī)存儲媒體。僅作為例子,圖1示出讀寫到不可取走、非易失性磁性媒體的硬盤驅(qū)動器141、讀寫到可取走、非易失性磁盤152的磁盤驅(qū)動器151,以及讀寫至可取走、非易失性光盤156的光盤驅(qū)動器155,該可取走、非易失性光盤156如CD ROM或其它光媒體??捎迷诜独僮鳝h(huán)境中的其它可取走/不可取走、易失性/非易失性計算機(jī)存儲媒體包括,但不局限于,盒式磁帶、閃速存儲器卡、數(shù)字多用途盤、數(shù)字視頻帶、固態(tài)RAM、固態(tài)ROM等。硬盤驅(qū)動器141通常是通過諸如接口140這樣的不可取走存儲器接口與系統(tǒng)總線121相連,而磁盤驅(qū)動器151和光盤驅(qū)動器155通常是通過諸如接口150這樣的可取走存儲器接口與系統(tǒng)總線121相連。
上面討論并在圖1中示出的驅(qū)動器和相關(guān)聯(lián)的計算機(jī)存儲媒體提供計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和對計算機(jī)110的其它數(shù)據(jù)的存儲。在圖1中,例如,硬盤驅(qū)動器141被示作為保存操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146,以及程序數(shù)據(jù)147。注意這些組件既可與操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136,以及程序數(shù)據(jù)137相同,也可與其不同。操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146,以及程序數(shù)據(jù)147在這里被指定不同的序號,以闡明至少它們是不同的拷貝。
用戶可通過諸如鍵盤162、話筒163以及像鼠標(biāo)、跟蹤球或觸摸墊這樣點(diǎn)擊設(shè)備161這樣的輸入裝置將命令和信息輸入到計算機(jī)110中。其它的輸入裝置(未示出)可包括操縱桿、游戲墊(game pad)、圓盤式衛(wèi)星電視天線、掃描儀等。這些和其它的輸入裝置一般通過與系統(tǒng)總線121聯(lián)結(jié)的用戶輸入接口160與處理單元120相連,但其也可通過諸如并行口、游戲口或通用串行總線(USB)這樣的其它接口和總線連接。監(jiān)視器191或其它類型的顯示裝置也通過諸如視頻接口190這樣的接口與系統(tǒng)總線121相連。除監(jiān)視器之外,計算機(jī)也可包括諸如揚(yáng)聲器197和打印機(jī)196這樣的其它外圍輸出裝置,它們可通過輸出外圍接口190進(jìn)行連接。
計算機(jī)110可在使用到諸如遠(yuǎn)程計算機(jī)180這樣的一個或多個遠(yuǎn)程計算機(jī)的邏輯連接的網(wǎng)絡(luò)化環(huán)境中工作。遠(yuǎn)程計算機(jī)180可為個人計算機(jī)、手持裝置、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對等裝置(a peer device)或其它公共網(wǎng)絡(luò)節(jié)點(diǎn),而且通常包括許多或所有上述相對于計算機(jī)110示出的元件。圖1中描述的邏輯連接包括局域網(wǎng)(LAN)171和廣域網(wǎng)(WAN)173,但也可包括其它網(wǎng)絡(luò)。這樣的網(wǎng)絡(luò)環(huán)境常見于辦公室、企業(yè)范圍的計算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和國際互聯(lián)網(wǎng)。
當(dāng)在LAN網(wǎng)絡(luò)環(huán)境中使用時,計算機(jī)110通過網(wǎng)絡(luò)接口或適配器170與LAN171相連。在WAN網(wǎng)絡(luò)環(huán)境中使用計算機(jī)110時,計算機(jī)110通常包括調(diào)制解調(diào)器172或用于在諸如因特網(wǎng)這樣的WAN 173上建立通信的其它裝置。調(diào)制解調(diào)器172可為內(nèi)置或外置,它可通過用戶輸入接口160或其它合適的機(jī)制與系統(tǒng)總線121相連。在網(wǎng)絡(luò)化環(huán)境中,相對于計算機(jī)110示出的程序模塊,或其部分,可被保存在遠(yuǎn)程存儲器存儲裝置中。作為例子,但非限制,圖1示出駐留在遠(yuǎn)程計算機(jī)180中的遠(yuǎn)程應(yīng)用程序185。應(yīng)當(dāng)認(rèn)識到所示網(wǎng)絡(luò)連接是范例性的,而且可使用在計算機(jī)之間建立通信鏈路的其它裝置。
圖2是移動裝置200的框圖,它是范例計算環(huán)境。移動裝置200包括微處理器202(包含高速緩存存儲器203)、存儲器204、輸入/輸出(I/O)組件206,以及用于與遠(yuǎn)程計算機(jī)或其它移動裝置進(jìn)行通信的通信接口208。在一個實(shí)施例中,上述組件聯(lián)結(jié)在一起,以通過合適的總線210互相通信。
存儲器204被實(shí)施為諸如隨機(jī)存取存儲器(RAM)這樣的非易失性電子存儲器,它具有電池備份模塊(未示出),這樣以使當(dāng)關(guān)閉到移動裝置200的通用電源時,不丟失保存在存儲器204中的信息。部分存儲器204更適宜被分配作為用于程序執(zhí)行的可尋址存儲器,而存儲器204的另一部分更適宜用于存儲,比如模擬磁盤驅(qū)動器中的存儲。
存儲器204包括操作系統(tǒng)212、應(yīng)用程序214以及對象存儲器216。在操作期間,最好由處理器202從存儲器204來執(zhí)行操作系統(tǒng)212。在一個較佳實(shí)施例中,操作系統(tǒng)212是來自微軟公司可商用的商標(biāo)為WINDOWSCE的操作系統(tǒng)。最好對移動裝置來設(shè)計操作系統(tǒng)212,而且該操作系統(tǒng)212實(shí)現(xiàn)這樣的數(shù)據(jù)庫特征,即應(yīng)用214可通過一組展現(xiàn)的應(yīng)用編程界面和方法來利用該數(shù)據(jù)庫特征。對象存儲216中的對象由應(yīng)用214和操作系統(tǒng)212來保持,至少部分響應(yīng)對展現(xiàn)的應(yīng)用編程接口和方法的調(diào)用。
通信接口208代表允許移動裝置200發(fā)送和接收信息的許多裝置和技術(shù)。該裝置包括有線和無線調(diào)制解調(diào)器、衛(wèi)星接收器和廣播調(diào)諧器,這里列舉了一些。移動裝置200也可直接與計算機(jī)相連以與之交換數(shù)據(jù)。在這樣的情況下,通信接口208可為紅外線收發(fā)器或者串行或并行通信連接,所有這些都能傳送流動信息。
輸入/輸出組件206包括多種輸入裝置,如觸敏屏、按鈕、滾動條(rollers),以及話筒,還有多種輸出裝置,包括音頻發(fā)生器、振動裝置,以及顯示器。上面列出的裝置是作為例子,不必所有的裝置都出現(xiàn)在移動裝置200上。另外,在本發(fā)明的范圍內(nèi),其它的輸入/輸出裝置可被加到移動裝置200中,或在移動裝置200中找到。
在本發(fā)明的一個方面,提供適用(adapt)HMM處理以顯著增加系統(tǒng)高速緩存局部性的系統(tǒng)和方法。因此,在刷新系統(tǒng)高速緩存之前,執(zhí)行更大量的HMM操作。這樣,就對普通系統(tǒng)存儲器進(jìn)行比過去需求少的調(diào)用。從而顯著提高了處理速度。雖然我們將關(guān)于語音處理來說明這些改進(jìn),本發(fā)明的實(shí)施例可被應(yīng)用來改進(jìn)對使用HMM的任何形式模式識別的處理。
對語音建模有用的某些模型使用所知為“三狀態(tài)從左至右不跳躍”(“three-state left-to-right without skipping)的特定HMM拓?fù)浣Y(jié)構(gòu)。這個拓?fù)浣Y(jié)構(gòu)在圖5和6中闡明。本發(fā)明的實(shí)施例本質(zhì)上重新安排HMM估算,使得在估算另一個HMM之前,對單個HMM估算3個幀。這就顯著改善高速緩存局部性,從而增加處理速度。
圖6表示了被歸類到隱式馬爾可夫模型塊(HMMMB)中的圖5模型。每個粗體菱形400示出相應(yīng)語音單元(即音素(phoneme))的HMMB。在每個HMMB中,提供每個狀態(tài)的同樣數(shù)量的幀。這樣,在HMMB#1中有3個狀態(tài)0的幀、3個狀態(tài)1的幀,以及3個狀態(tài)2的幀。雖然我們相信可用HMM中不同于狀態(tài)數(shù)量的幀的數(shù)量來實(shí)現(xiàn)本發(fā)明實(shí)施例的優(yōu)點(diǎn),但是幀的數(shù)量最好與HMM狀態(tài)的數(shù)量相等。另外,因?yàn)槿缟厦嫠懻摰?,一旦任何指定點(diǎn)的先前點(diǎn)被估算,則該指定點(diǎn)只能被估算,所以出現(xiàn)菱形。選擇圖6中所示的HMMB的大小以匹配所使用的狀態(tài)(三狀態(tài)左-右HMM)的數(shù)量。我們預(yù)期,不同的HMM拓?fù)浣Y(jié)構(gòu)可導(dǎo)至不同形狀的HMMB,這也落入本發(fā)明的精神和范圍。例如,十狀態(tài)左-右HMM(潛在對諸如手寫體識別這樣的某些其它形式的模式識別有用)將依照十幀HMMB。此外,具有五狀態(tài)的有時使用的拓?fù)浣Y(jié)構(gòu)可在每個幀上轉(zhuǎn)移到本身、下一狀態(tài),或在其后的狀態(tài)。在這樣情況,三幀HMMB仍舊是可用的(由于任何到HMM的輸入要采用至少3幀才能到達(dá)輸出),但是HMMB的形狀將為3幀“寬”,五狀態(tài)“高”。
依照本發(fā)明的實(shí)施例,每個HMMB作為一個單元被估算。如這里用到的,HMMB是HMM處理系統(tǒng)中所有點(diǎn)的子集。該塊至少包括在時間和狀態(tài)上均不同的兩點(diǎn)。每個HMMB的估算僅依靠先前HMMB的輸出。
每個HMMB包括塊間進(jìn)入點(diǎn)(inter-block entry points)、塊內(nèi)進(jìn)入點(diǎn)(intra-block entry points)、塊間退出點(diǎn)(inter-block exit points),以及塊內(nèi)退出點(diǎn)(intra-block exit points)。參考圖6,點(diǎn)402、408和414是塊間進(jìn)入點(diǎn),這是因?yàn)樗鼈兛山邮諄碜云渌麳MMB的分?jǐn)?shù)(scores)或數(shù)值。點(diǎn)402、404和406是塊內(nèi)進(jìn)入點(diǎn),這是因?yàn)樗鼈兛山邮諄碜韵嗤琀MM中先前塊的分?jǐn)?shù)。相對于塊4,塊1將被認(rèn)為是相同HMM中的先前塊。注意,點(diǎn)402不僅是塊間進(jìn)入點(diǎn),而且也是塊內(nèi)進(jìn)入點(diǎn)。點(diǎn)406、412和418是塊間退出點(diǎn),這是由于它們可將它們的數(shù)值提供到諸如塊5這樣的其它塊的塊間進(jìn)入點(diǎn)。最后,點(diǎn)414、416和418可被認(rèn)為是塊內(nèi)退出點(diǎn)。
在塊處理開始之前,對在塊間進(jìn)入點(diǎn)以及塊內(nèi)進(jìn)入點(diǎn)處結(jié)束的最佳路徑的分?jǐn)?shù)已經(jīng)被預(yù)先決定了。另外,到沿著這條最佳路徑的以前狀態(tài)的指針已經(jīng)被保存在該進(jìn)入點(diǎn)中。
塊處理從第一時間點(diǎn)處(the point that is first in time)開始。在圖6中,那個點(diǎn)編號為402。通過用對每個可從點(diǎn)402(404、406)轉(zhuǎn)移的點(diǎn)的轉(zhuǎn)移概率乘點(diǎn)402的分?jǐn)?shù)來處理點(diǎn)402。然后這個分?jǐn)?shù)與被轉(zhuǎn)移點(diǎn)的現(xiàn)有數(shù)值進(jìn)行比較,以決定通過點(diǎn)402的分?jǐn)?shù)是否比被轉(zhuǎn)移點(diǎn)的現(xiàn)有分?jǐn)?shù)高。如果這樣,則就更新被轉(zhuǎn)移點(diǎn)以反映新的最大值,而且設(shè)置與點(diǎn)402相關(guān)聯(lián)的指針。
一旦處理了點(diǎn)402,點(diǎn)404就可被處理。點(diǎn)404的處理較直截了當(dāng),這是因?yàn)辄c(diǎn)404開始被設(shè)置成來自相同HMM中緊接前面的塊的相應(yīng)塊內(nèi)退出點(diǎn)和來自塊402分?jǐn)?shù)的較大者。類似于點(diǎn)404地處理點(diǎn)406。然而,由于點(diǎn)406是塊間退出點(diǎn),所以其分?jǐn)?shù)將被用來更新其它塊的某些塊間進(jìn)入點(diǎn)。
一旦處理了點(diǎn)402,則也可處理點(diǎn)408。點(diǎn)404和點(diǎn)408之間的相對處理順序是設(shè)計選擇的問題。處理點(diǎn)408有點(diǎn)類似于點(diǎn)402,這是因?yàn)樵谔幚砬?,結(jié)合其轉(zhuǎn)移概率,在點(diǎn)402以及可能連接到點(diǎn)404的所有退出點(diǎn)之中,取最大分?jǐn)?shù)。此外,指針,或者其它合適的記錄,被設(shè)置為指出產(chǎn)生最大分?jǐn)?shù)的點(diǎn)。處理點(diǎn)408的工作包括用它能夠轉(zhuǎn)移的轉(zhuǎn)移概率乘該處理點(diǎn)408的分?jǐn)?shù)以便潛在地更新點(diǎn)410和414的數(shù)值。
類似于點(diǎn)404和406來處理點(diǎn)410、412、416和418。而且,點(diǎn)414的處理類似于上述關(guān)于點(diǎn)408的處理。
一旦完成塊1中的所有處理,則執(zhí)行退出分?jǐn)?shù)處理。明確的說,對每個塊間退出點(diǎn),參考語言模型。語言模型列出哪些轉(zhuǎn)移是可允許的,以及對在語音單元之間轉(zhuǎn)移的轉(zhuǎn)移概率。這樣,例如,語言模型將指出從塊1的語音單元到其它語音單元的轉(zhuǎn)移的可允許性和概率。這個概率然后與諸如點(diǎn)406這樣的塊間退出點(diǎn)的分?jǐn)?shù)結(jié)合,以決定該組合是否比現(xiàn)存于下一時間幀內(nèi)任何可允許(依靠該語言模型)塊間進(jìn)入點(diǎn)的分?jǐn)?shù)大。若該組合確實(shí)較大,則更新塊間進(jìn)入點(diǎn)以反映新的最大量,而且設(shè)置相關(guān)聯(lián)的指針,或者其它合適的記錄。對塊間退出點(diǎn)412和418重復(fù)這個過程。注意,如圖6中虛線所示,塊間退出點(diǎn)也可與對相同語音單元時間中下一塊的塊間進(jìn)入點(diǎn)相連(即406連接到420)。
點(diǎn)416和418將它們的分?jǐn)?shù)提供到對相同語音單元時間中下一塊的塊間進(jìn)入點(diǎn)。最后,如上面說明的關(guān)于點(diǎn)402來處理點(diǎn)420,而且處理繼續(xù)前進(jìn)到下一塊。
一旦完成塊1的處理,最好開始對應(yīng)另一個語音單元的塊的處理。圖6中按塊1-2-3-4-5-6-7-8-9的順序列出范例塊處理順序。然而,可使用其它順序而不背離本發(fā)明的范圍。注意,某些點(diǎn)被變成灰色的,這表明它們或者是不能達(dá)到的,或者是不導(dǎo)至可能的結(jié)束狀態(tài)??赏ㄟ^不實(shí)際處理這樣的點(diǎn)而獲取附加處理效率。
盡管已經(jīng)參考特定實(shí)施例說明了本發(fā)明,但是本領(lǐng)域中熟練的技術(shù)人員會認(rèn)識到在不背離本發(fā)明主旨和范圍的前提下可在形式上和細(xì)節(jié)上作出改變。
權(quán)利要求
1.連續(xù)模式識別系統(tǒng)包含輸入裝置,適合于提供輸入的數(shù)字表示;存儲器,操作上與所述輸入裝置聯(lián)結(jié),以存儲所述數(shù)字表示以及相對于所述數(shù)字表示的多個多狀態(tài)模型;處理器,與所述輸入裝置和所述存儲器聯(lián)結(jié),所述處理器包括高速緩存存儲器,并且適合于將所示數(shù)字表示轉(zhuǎn)換為多個時間序列幀;以及其中所述處理器適合基于處理所述時間序列幀和存儲在所述高速緩存存儲器中的所述多狀態(tài)模型的塊而產(chǎn)生識別的模式的輸出。
2.如權(quán)利要求書1所述的系統(tǒng),其特征在于所述多狀態(tài)模型是三狀態(tài)隱式馬爾可夫模型。
3.如權(quán)利要求書1所述的系統(tǒng),其特征在于所述輸入裝置是話筒。
4.如權(quán)利要求書1所述的系統(tǒng),其特征在于識別的模式的所述輸出包括單詞。
5.如權(quán)利要求書1所述的系統(tǒng),其特征在于所述系統(tǒng)具體體現(xiàn)在計算機(jī)內(nèi)。
6.如權(quán)利要求書1所述的系統(tǒng),其特征在于所述系統(tǒng)具體體現(xiàn)在移動裝置中。
7.識別由時序幀形成輸入中模式的方法,所述方法包含用多個多狀態(tài)隱式馬爾可夫模型對模式進(jìn)行建模;處理隱式馬爾可夫模型塊(HMMB),以識別在所述時間序列幀中的所述建模的模式,以產(chǎn)生識別的建模的模式的序列。
8.如權(quán)利要求書7所述的方法,其特征在于所述時間序列幀對應(yīng)于語音。
9.如權(quán)利要求書7所述的方法,其特征在于所述多狀態(tài)隱式馬爾可夫模型是三狀態(tài)隱式馬爾可夫模型。
10.如權(quán)利要求書9所述的方法,其特征在于當(dāng)在狀態(tài)-時間圖表上描述時,每個HMMB是3乘3菱形。
11.如權(quán)利要求書9所述的方法,其特征在于處理每個塊包括僅與系統(tǒng)高速緩存存儲器交互操作。
12.如權(quán)利要求書7所述的方法,其特征在于處理所述HMMB包括訪問語言模型。
13.模式識別方法包含將輸入描繪為一連串時間序列幀;以及處理HMMB和所述序列以產(chǎn)生對應(yīng)所述輸入的識別的模式的輸出序列。
14.如權(quán)利要求書13所述的方法,其特征在于所述輸入對應(yīng)于語音。
15.如權(quán)利要求書13所述的方法,其特征在于每個HMMB包括3個狀態(tài)。
16.識別由時間序列幀形成輸入中模式的方法,所述方法包含a)對具有多個多狀態(tài)隱式馬爾可夫模型的模式進(jìn)行建模;b)處理第一個多狀態(tài)隱式馬爾可夫模型的第一點(diǎn);c)處理所述第一多狀態(tài)隱式馬爾可夫模型的第二點(diǎn),所述第二點(diǎn)在狀態(tài)和時間上均與所述第一點(diǎn)不同;以及d)處理所述第一隱式馬爾可夫模型的余下點(diǎn),以及所述多個多狀態(tài)隱式馬爾可夫模型的另外的點(diǎn),以識別所述時間序列幀內(nèi)的所述建模模式,以產(chǎn)生識別的建模模式的序列。
17.如權(quán)利要求書16所述的方法,其特征在于所述第一點(diǎn)和所述第二點(diǎn)包含HMMB。
全文摘要
本發(fā)明涉及塊同步譯碼,提供了模式識別系統(tǒng)和方法。本發(fā)明的各方面在與多狀態(tài)隱式馬爾可夫模型結(jié)合時尤其有用。通過處理隱式馬爾可夫模型塊來實(shí)現(xiàn)模式識別。這個塊處理允許處理器當(dāng)數(shù)據(jù)在高速緩存存儲器中時執(zhí)行更多的這樣數(shù)據(jù)上操作。通過這樣增加高速緩存局部性,本發(fā)明的各方面提供顯著改善的模式識別速度。
文檔編號G10L15/14GK1532807SQ20041002864
公開日2004年9月29日 申請日期2004年3月3日 優(yōu)先權(quán)日2003年3月4日
發(fā)明者W·H·羅肯貝克, J·J·歐戴爾, W H 羅肯貝克, 歐戴爾 申請人:微軟公司