語音識別方法和語音識別系統的制作方法
【專利摘要】一種語音識別方法和語音識別系統。該語音識別方法包括:針對第一語音識別引擎的詞匯表中的每個詞條生成用于第二語音識別引擎的對應詞條;把所生成的對應詞條添加到第二引擎的詞匯表中,以與第二引擎的詞匯表中的原有詞條一起生成組合詞匯表;使用第一引擎通過第一引擎的詞匯表來識別輸入語音;使用第二引擎通過組合詞匯表來識別輸入語音,以生成與原有詞條有關的識別結果和與對應詞條有關的識別結果;使用從第二引擎輸出的與對應詞條有關的識別結果,對第一引擎的識別結果與第二引擎的與原有詞條有關的識別結果進行比較并輸出比較結果。第一引擎和第二引擎的每個識別結果包括識別出的單詞和對應的識別分數。
【專利說明】語音識別方法和語音識別系統
【技術領域】
[0001] 本發明涉及語音識別方法和語音識別系統,尤其涉及使用雙語音識別引擎進行語 音識別的語音識別方法和語音識別系統。
【背景技術】
[0002] 語音識別是通過用機器識別用戶聲音命令來實現人機交互的關鍵技術,其可以顯 著改進人機交互的方式以使得用戶可以在說出命令的同時完成更多任務。語音識別是通過 在線或離線訓練得到的語音識別引擎來實現的。語音識別過程通常可以分為訓練階段和識 別階段。在訓練階段中,根據語音識別引擎所基于的數學模型,從訓練數據中統計地得到聲 學模型(acoustic model,AM)和詞匯表(lexicon)。在識別階段中,語音識別引擎使用聲學 模型和詞匯表對輸入的語音進行處理,得到語音識別結果。例如,從輸入聲音的聲波圖進行 特征提取以獲得特征向量,然后根據聲學模型得到音素(如[i],[0]等)序列,最后從詞匯 表中定位與音素序列匹配度較高的單詞,甚至是句子。
[0003] 在語音識別系統中,可能加載了多于1個語音識別引擎來同時識別同一 語音。例如,第一語音識別引擎可以是說話人相關語音識別(speaker-dependent automatic speech recognition, SD-ASR)引擎,其被訓練以識別來自特定說話人的語 音并輸出包括對應的分數的識別結果。第二語音識別引擎可以是說話人無關語音識別 (speaker-independent automatic speech recognition, SI-ASR)引擎,其能夠識別來自任 何用戶的語音并輸出包括對應的分數的識別結果。已知由于SD-ASR是由特定說話人的語 音訓練而成,其聲學模型對語音的表示更準確,所以通常SD-ASR提供比SI-ASR更好的識別 準確度。另一方面,已知由于SI-ASR是由非特定說話人的語音訓練而成,其可以識別多個 說話人的語音,所以SI-ASR可以提供比SD-ASR更具有兼容性的識別。因此,把SD-ASR和 SI-ASR的識別結果進行結合可以獲得既提高語音識別的準確度又具有較好兼容性的優點。
[0004] 已知一種結合方法是對來自這兩個引擎的所有輸出候選或識別結果(每一個包括 識別出的單詞和對應的識別分數)根據它們的識別分數進行重新排序。然而,由于這兩個 引擎通常具有不同的詞匯表和/或聲學模型,所以這兩個引擎的識別分數的分布也不相同 (比如SI-ASR的分數主要分布在"0-0. 5",SD-ASR的分數主要分布在范圍"0. 5-1")并且難 以對來自這兩個引擎的識別分數直接進行比較。
[0005] 美國專利申請US6836758B2公開了一種用多個語音識別引擎進行語音識別的系 統和方法。該方法主要包括:預先設定每個語音識別引擎的識別分數的不同權重,以使得正 確識別結果的加權之和最大化并且錯誤識別結果的加權之和最小化,接下來對各個語音識 別引擎的經加權的識別分數進行比較,并且然后輸出具有最優加權分數的識別結果。但在 該方法中,如果權重被設置得不適當,則識別結果可能比單獨使用任何語音識別引擎的情 況還要更差。顯然,難以針對每個語音識別引擎來設置準確的權重,并且因此難以保證該方 法的識別性能優于分別使用各個語音識別引擎的情況。
[0006] 美國專利申請US7149689公開了一種雙引擎語音識別方法,其使用混淆矩陣 (confusion matrix)來比較兩個語音識別引擎的識別分數。在該方法中,針對每個語音識 別引擎而被統計生成的混淆矩陣被轉換為交替矩陣(alternative matrix)并且建立把各 語音識別引擎的識別結果與交替矩陣交叉比較的程序循環,在交替矩陣中每一列按照最高 到最低概率排序。然而,在該方法中,兩個語音識別引擎的詞匯表必須是相同的。否則,混 淆矩陣就將具有不同的詞條,交替向量也不能被比較,并且程序循環將不能發現正確的識 別結果。
【發明內容】
[0007] 本發明的目的在于提供能夠簡單地且具有較少限制地把來自多個語音識別引擎 的識別結果進行合并的語音識別方法和語音識別系統。
[0008] 本發明的一方面涉及語音識別方法,包括:對應詞條生成步驟,針對第一語音識別 引擎的詞匯表中的每個詞條(entry )生成用于第二語音識別引擎的對應詞條(counterpart entry);組合詞匯表生成步驟,把所生成的對應詞條添加到第二語音識別引擎的詞匯表中, 以與第二語音識別引擎的詞匯表中的原有詞條一起生成組合詞匯表;第一語音識別步驟, 使用第一語音識別引擎通過第一語音識別引擎的詞匯表來識別輸入語音;第二語音識別步 驟,使用第二語音識別引擎通過組合詞匯表來識別輸入語音,以生成與原有詞條有關的識 別結果和與對應詞條有關的識別結果;以及識別結果比較和輸出步驟,使用從第二語音識 別引擎輸出的與對應詞條有關的識別結果,對第一語音識別引擎的識別結果與第二語音識 別引擎的與原有詞條有關的識別結果進行比較并輸出比較結果。第一語音識別引擎和第二 語音識別引擎的每個識別結果包括識別出的單詞和對應的識別分數。
[0009] 本發明的另一方面涉及語音識別系統,包括:對應詞條生成裝置,被配置為針對第 一語音識別引擎的詞匯表中的每個詞條生成用于第二語音識別引擎的對應詞條;組合詞匯 表生成裝置,被配置為把所生成的對應詞條添加到第二語音識別引擎的詞匯表中,以與第 二語音識別引擎的詞匯表中的原有詞條一起生成組合詞匯表;第一語音識別裝置,被配置 為使用第一語音識別引擎通過第一語音識別引擎的詞匯表來識別輸入語音;第二語音識別 裝置,被配置為使用第二語音識別引擎通過組合詞匯表來識別輸入語音,以生成與原有詞 條有關的識別結果和與對應詞條有關的識別結果;以及識別結果比較和輸出裝置,被配置 為使用從第二語音識別引擎輸出的與對應詞條有關的識別結果,對第一語音識別引擎的識 別結果與第二語音識別引擎的與原有詞條有關的識別結果進行比較并輸出比較結果。第一 語音識別引擎和第二語音識別引擎的每個識別結果包括識別出的單詞和對應的識別分數。 [0010] 因此,根據本發明的各方面的語音識別方法和語音識別系統,通過使用來自不同 語音識別引擎的對應詞條,能夠簡單地比較來自不同語音識別引擎的不同識別結果,而無 需如現有技術中那樣設置任何權重或對詞匯表有任何限制。
【專利附圖】
【附圖說明】
[0011] 下面結合具體的實施例,并參照附圖,對本發明實施例的上述和其它目的和優點 做進一步的描述。在附圖中,相同的或對應的技術特征或部件將采用相同或對應的附圖標 記來表示。
[0012] 圖1示出根據本發明的一個實施例的語音識別方法的流程圖;
[0013] 圖2示出根據本發明的一個實施例的生成對應詞條的過程的框圖;
[0014] 圖3示出根據本發明的又一個實施例的生成對應詞條的過程的框圖;
[0015] 圖4示出根據本發明的一個實施例的用于對識別結果進行比較并輸出的流程圖;
[0016] 圖5示出根據本發明的另一個實施例的用于對識別結果進行比較并輸出的流程 圖;
[0017] 圖6示出根據本發明的一個實施例的語音識別系統的示例性配置的框圖;以及
[0018] 圖7示出能夠實施本發明的實施例的計算機系統的硬件配置的框圖。
【具體實施方式】
[0019] 在下文中將結合附圖對本發明的示范性實施例進行描述。為了清楚和簡明起見, 在說明書中并未描述實施例的所有特征。然而,應該了解,在對實施例進行實施的過程中必 須做出很多特定于實施方式的設置,以便實現開發人員的具體目標,例如,符合與系統及業 務相關的那些限制條件,并且這些限制條件可能會隨著實施方式的不同而有所改變。此外, 還應該了解,雖然開發工作有可能是非常復雜和費時的,但對得益于本公開內容的本領域 技術人員來說,這種開發工作僅僅是例行的任務。
[0020] 在此,還應當注意,為了避免因不必要的細節而模糊了本發明,在附圖中僅僅示出 了與至少根據本發明的方案密切相關的處理步驟和/或系統結構,而省略了與本發明關系 不大的其他細節。
[0021] 首先參照圖1描述根據本發明的一個實施例的語音識別方法的流程圖。
[0022] 在步驟S101中,針對第一語音識別引擎的詞匯表中的每個詞條生成用于第二語 音識別引擎的對應詞條。
[0023] 根據本發明的一個實施例,第一語音識別引擎可以是上述的說話人相關語音 識別(SD-ASR)引擎,其聲學模型例如是基于單詞來建立的,例如基于詞隱馬爾可夫模型 (whole-word based HMM)實現;此外,SD-ASR的聲學模型也可基于音素來建立,例如基于音 素隱馬爾可夫模型(phoneme based HMM)實現。第二語音識別引擎可以是上述的說話人無 關語音識別(SI-ASR)引擎,其聲學模型是基于音素來建立的,例如基于音素隱馬爾可夫模 型實現。盡管這里列舉了這兩種具體的語音識別引擎,但是應當理解本發明中的第一語音 識別引擎和第二語音識別引擎不限于針對不同用戶的SD-ASR和SI-ASR,并可以是其它具 有類似需求的不同語音識別引擎。例如,第一和第二語音識別引擎可以是針對不同種類的 語言例如英語和漢語而訓練的引擎。或者,第一和第二語音識別引擎可以是針對不同使用 環境例如安靜環境和嘈雜環境而訓練的引擎。此外,第一和第二語音識別引擎的聲學模型 也不限于基于HMM模型實現,也可以基于其它模型實現,例如基于動態時間規整(dynamic time wrapping,DTW)模型實現,只要可適用本發明的原理即可。在下文相關部分中,為了 便于說明,將以第一語音識別引擎為SD-ASR和第二語音識別引擎為SI-ASR為例進行描述, 并簡稱為第一引擎SD-ASR和第二引擎SI-ASR。
[0024] 圖2具體示出根據本發明的一個實施例的生成對應詞條的過程200的框圖。在該 實施例中,第一引擎SD-ASR的聲學模型是基于單詞來建立的。
[0025] 在201中輸入的注冊語音是第一引擎SD-ASR訓練使用的語音樣本,例如是特定用 戶的語音。輸入的注冊語音(即,語音樣本)例如被麥克風捕獲、轉換為模擬電信號、經受數 字化處理、并隨后經受頻譜分析,以生成包含特征參數的特征矢量的序列。
[0026] 在202中這些特征參數可以被提取出來以用于表示輸入的注冊語音。
[0027] 在圖2上半部分中的203-204示出對于注冊語音,使用注冊語音的提取出的特 征矢量來訓練第一引擎SD-ASR的聲學模型,訓練所得的全部聲學模型用于構成第一引擎 SD-ASR的詞匯表。這里由于第一引擎SD-ASR的聲學模型是基于單詞來建立的,所以訓練結 果是單詞的聲學模型。第一引擎SD-ASR的詞匯表的每個詞條例如包括標識號(ID)、與注冊 語音對應的單詞(文本)及與注冊語音對應的音素序列。
[0028] 作為訓練方法,可以使用通用的訓練方法,例如最大似然法(maximum likelihood, ML)或區分性訓練(discriminative training, DT)〇
[0029] 此外,為了提高識別過程的效率,可以事先離線地進行訓練過程。另一方面,考慮 到SD-ASR的詞匯表的單詞數量通常較少,也可以在線進行訓練。
[0030] 與圖2的上半部分并行地,在下半部分的205-206中,對于第一引擎SD-ASR的詞 匯表中的每個詞條,使用與第二引擎SI-ASR相匹配的音素切分裝置對與該詞條對應的語 音樣本的所提取出的特征矢量執行音素切分205。之后使用作為音素切分的結果的音素序 列來生成用于第二引擎SI-ASR的對應詞條206。
[0031] 這里,音素切分是指使用音素切分裝置對輸入語音的所提取出的特征矢量的序列 重新進行劃分并生成音素序列,即被音素切分裝置重新訓練。典型的音素切分裝置例如是 phoneme typewriter。在本發明中使用的音素切分裝置應該與第二引擎SI-ASR相匹配,這 是由于切分所得的音素序列要被用于構成第二引擎SI-ASR的詞條。也就是說,音素切分裝 置的聲學模型也是基于音素建立的,例如基于音素隱馬爾可夫模型實現,但是與第二引擎 SI-ASR的語法規則可能是不同的,所以其訓練生成的音素序列與第二引擎SI-ASR的原有 詞條的音素序列在格式上是相同的,但是內容可以不相同。
[0032] 根據本發明的一個實施例,若有多于一個的語音樣本與該詞條對應,則例如可通 過如下兩種方式來獲得作為音素切分的結果的音素序列。一種方式是對與該詞條對應的每 個語音樣本都進行音素切分以獲得相應的音素序列,然后使用這些音素序列來生成相應的 多個對應詞條。另一種方式是把這樣獲得的不同音素序列合并成一個音素序列,以使用這 個音素序列來生成對應詞條。例如,合并不同音素序列的簡單方法是表決算法或動態時間 規整方法。
[0033] 應該注意,如前面所述,第二引擎SI-ASR的聲學模型是基于音素來建立的,所以 針對輸入語音(例如通用訓練語音),第二引擎SI-ASR的訓練結果是音素的聲學模型。除此 之外,第二引擎SI-ASR的聲學模型的訓練方法與第一引擎SD-ASR類似,因此此處不再重復 描述。訓練得到的每個音素序列連同至少其代表的單詞(文本,如開或停)和標識號(ID) - 起構成第二引擎SI-ASR的一個詞條,詞條的集合形成第二引擎SI-ASR的詞匯表。若用于 訓練第二引擎SI-ASR得到的聲學模型的單詞(文本)與用于訓練SD-ASR得到的聲學模型的 單詞(文本)一致,則其詞條對應于第一引擎SD-ASR的詞匯表中的具有相同單詞的詞條。
[0034] 根據本發明的一個實施例,考慮到第二引擎SI-ASR的訓練得到的上述詞條的形 式,使用作為音素切分的結果的音素序列來生成用于第二引擎SI-ASR的對應詞條具體包 括:首先,為該音素序列設定與第二引擎SI-ASR的詞匯表中的詞條的標識號不重復的一個 ID。然后,獲得該音素序列的單詞(文本),例如從第一引擎SD-ASR的詞匯表中得到。如果 該單詞(文本)與第二引擎SI-ASR的詞匯表中的某個單詞(文本)相同,則可以添加標識例 如前綴或后綴以區分。最后,使用ID、單詞(文本)及音素序列來生成對應詞條。
[0035] 圖3示出了根據本發明的又一個實施例的建立對應詞條的過程300的框圖。
[0036] 圖3與圖2的過程的主要區別是在圖3的下半部分的305-307中,不是使用音素 切分裝置,而是使用與第二引擎SI-ASR相匹配的字音轉換(Letter to Sound,LTS)裝置對 與注冊語音相對應的單詞(文本)進行字母或文字到聲音的轉換,從而生成音素序列,進而 使用生成的音素序列來生成用于第二引擎SI-ASR的對應詞條。
[0037] 字音轉換裝置是根據預定規則把輸入的字母或文字轉換為對應音素的裝置。該裝 置廣泛應用于各種語言的語音識別系統中,例如在各種注音軟件中,輸入文字或字母就得 到輸出注音。其工作原理是本領域中已知的技術,在此不再對其進行詳細描述。在本發明 中使用的字音轉換裝置也應該與第二引擎SI-ASR相匹配。也就是說,字音轉換裝置的預定 規則被設置為使得通過轉換所生成的音素序列與第二引擎SI-ASR的原有詞條的音素序列 在格式上是相同的,但是內容可以不相同。
[0038] 對于使用生成的音素序列來生成用于第二引擎SI-ASR的對應詞條的具體過程可 以與上面針對圖2描述的類似,在此不再重復描述。
[0039] 應當注意,盡管此處舉例說明了第二引擎SI-ASR的聲學模型基于音素建立并且 使用所生成的音素序列來生成對應詞條,但是這并非限制本發明。第二引擎SI-ASR的聲學 模型也可以基于音節(syllable)或字(character)建立,在這種情況下,相應的音素切分 裝置的切分操作和字音轉換裝置的轉換規則也應適應性調整以匹配第二引擎SI-ASR。
[0040] 回到圖1的流程圖。接下來,在步驟S102中,把所生成的對應詞條添加到第二引 擎SI-ASR的詞匯表中,以與第二引擎SI-ASR的訓練所得的詞匯表中的原有詞條一起生成 組合詞匯表。
[0041] 如前面所述,在組合詞匯表中,如果對應詞條與原有詞條的單詞(文本)相同,則可 以通過添加標識例如前綴或后綴加以區分。進一步地,還可以通過添加標識例如添加前綴 或后綴來區分第二引擎SI-ASR的組合詞匯表中的原有詞條和新添加的對應詞條,以便在 形式上清楚地分辨原有詞條和對應詞條。
[0042] 此外,由于如前所述那樣第二引擎SI-ASR的組合詞匯表中的對應詞條對應于第 一引擎SD-ASR的詞匯表中的具有相同單詞的詞條,所以為了表明這種對應關系,可以建立 一個對應關系表來記錄第二引擎SI-ASR的組合詞匯表中的對應詞條和第一引擎SD-ASR的 詞匯表中的詞條的對應關系。當然,不限于這種方式來指示對應關系,例如也可以直接在組 合詞匯表中通過添加標識例如前綴或后綴來指示這種對應關系。
[0043] 接下來,在圖1的流程圖的步驟S103中,對于任意的輸入語音,使用第一引擎 SD-ASR通過第一引擎SD-ASR的詞匯表來識別該輸入語音。
[0044] 接下來,在圖1的流程圖的步驟S104中,還是對于同樣的輸入語音,使用第二引擎 SI-ASR通過組合詞匯表來識別該輸入語音,以生成與原有詞條有關的識別結果和與對應詞 條有關的識別結果。
[0045] 上述的每個識別結果包括識別出的單詞和對應的識別分數。當然為了便于進行其 他操作,識別結果還可以包括其它項,例如ID等等。
[0046] 這里應當理解,第二引擎SI-ASR的與對應詞條有關的識別結果對應于第一引擎 SD-ASR的具有相同單詞的識別結果。
[0047] 接下來,在圖1的流程圖的步驟S105中,使用從第二引擎SI-ASR輸出的與對應詞 條有關的識別結果,對第一引擎SD-ASR的識別結果與第二引擎SI-ASR的與原有詞條有關 的識別結果進行比較并輸出比較結果。
[0048] 圖4示出在步驟S105中執行的比較和輸出操作的一個實施例。如圖4所示,在步 驟400中輸入語音并還可以執行特征提取。對于當前的輸入語音,第一引擎SD-ASR輸出包 括作為第1最優識別結果的識別結果,該第1最優識別結果例如包括單詞" f 7 "及其對 應的識別分數(步驟403)。第二引擎SI-ASR輸出包括與原有詞條有關的第1最優識別結 果的識別結果,該第1最優識別結果例如包括單詞" A >9 # i "及其對應的識別分數(步 驟401),還輸出與對應詞條有關的識別結果,即單詞"teniis"及其對應的識別分數(步驟 402)。語音輸入和特征提取等的識別過程已經在前面描述過,此處不再重復說明。
[0049] 接下來對這些識別結果執行比較。在一個方面,判斷第二引擎SI-ASR的與原有 詞條有關的第1最優識別結果的單詞" A >9 # i "是否為第一引擎SD-ASR的詞匯表中 的單詞(步驟404),也就是說,是否為第一引擎SD-ASR的詞匯表的集外詞(00V,out of vocabulary)。如果不是集外詞,則直接輸出第一引擎SD-ASR的第1最優識別結果,即"亍 二義"(步驟407)。
[0050] 此處,由于SD-ASR的聲學模型相對于第一引擎SI-ASR的聲學模型的識別準確度 更高,所以在上述情況下認為第二引擎SD-ASR的識別結果的置信度高于第一引擎SI-ASR 的識別結果的置信度。
[0051] 在另一個方面,如果第二引擎SI-ASR的與原有詞條有關的第1最優識別結果的 單詞" A >9 # i "是第一引擎SD-ASR的詞匯表的集外詞,則比較第二引擎SI-ASR的與 原有詞條有關的第1最優識別結果的識別分數和第二引擎SI-ASR的與對應詞條有關的識 別結果的識別分數,也就是說比較"teniis"的識別分數和" A >9 # i V'的識別分數(步驟 405)。
[0052] 此處應注意,第二引擎SI-ASR的與對應詞條有關的該識別結果對應于第一引擎 SD-ASR的第1最優識別結果。
[0053] 如果與對應詞條有關的該識別結果的識別分數、即"teniis"的識別分數較大,則 輸出第一引擎SD-ASR的第1最優識別結果,即"于二7 "(步驟407),否則輸出第二引擎 SI-ASR的與原有詞條有關的第1最優識別結果,即" A >9 # i V'(步驟406)。
[0054] 在上述比較過程中,通過借助對應詞條的分數,實現了第一引擎SD-ASR和第二引 擎SI-ASR的識別結果的比較,并輸出優選的結果。由此可見,根據本實施例的語音識別方 法沒有對識別結果設置任何權重或對詞匯表有任何限制,并且因此不需要設計復雜的判決 邏輯,使得語音識別過程更加簡單高效。
[0055] 在又一實施例中,在需要輸出多于1個識別結果的情況下,可以在后續比較中繼 續對于第一引擎SD-ASR的全部識別結果中的第N最優識別結果和第二引擎SI-ASR的與原 有詞條有關的全部識別結果中的第N最優識別結果,重復執行前面所述的針對第1最優識 別結果的比較和輸出操作,直到輸出預定數量的識別結果,此處N是大于1的預定整數,且 所述預定數量可根據實際應用需求確定。
[0056] 在需要輸出多個識別結果的情況下,直接繼續比較兩個引擎的第N最優識別結果 的方式可能存在缺陷。例如,假如在第一次比較中在針對第1最優識別結果的操作中輸出 了第一引擎SD-ASR的第1最優識別結果"于二7 ",但是第二引擎SI-ASR的第1最優識別 結果有可能優于第一引擎SD-ASR的第2最優識別結果。在這種情況下,如果在第二次比較 時直接比較兩個引擎的第2最優識別結果,則不論第二次比較中輸出第一引擎SD-ASR還是 第二引擎SI-ASR的第2最優識別結果,都不如把第二引擎SI-ASR的第1最優識別結果作 為本次輸出的識別結果。
[0057] 考慮到上述問題,圖5示出在步驟S105中執行的操作的另一個實施例。
[0058] 如圖5的上半部分所示,對于當前的輸入語音,第一引擎SD-ASR的識別結果除了 前面提到的第1最優識別結果的單詞" T 7 "及其對應的識別分數之外,還包括第N最優 識別結果,N為大于1的整數。這里為了簡明而示出了例如前3個最優識別結果" T 7 "、 " 3 - t ―"和"二二一z "及其對應的識別分數,但是N不限于此。類似地,對于SI-ASR的 識別結果,也示出了與原有詞條有關的前3個最優識別結果" A >9 # i V'、" t0 "和"二 一 t 一"及其對應的識別分數,以及與對應詞條有關的前3個識別結果"teniis"、"k〇〇hii" 和"niuusu"及其對應的識別分數。
[0059] 接下來對這些識別結果執行比較。在第一次比較(步驟501-504)中,與參照圖4 描述的針對第1最優識別結果的比較和輸出操作相同,此處不再重復描述。
[0060] 在第一次比較和輸出后進行判斷。一方面,如果輸出的是第一引擎SD-ASR的第1 最優識別結果D1,則從第一引擎SD-ASR的識別結果中移除所輸出的識別結果D1,并且如果 第二引擎SI-ASR的與原有詞條有關的識別結果中含有與所輸出的識別結果D1具有相同單 詞的識別結果,例如Ax,則從與原有詞條有關的識別結果中移除該具有相同單詞的識別結 果Αχ (步驟505)。
[0061] 反之,如果在第二引擎SI-ASR的與原有詞條有關的識別結果中不含有與所輸出 的識別結果D1具有相同單詞的識別結果,則不在與原有詞條有關的識別結果中進行移除。
[0062] 在另一方面中,如果第一次輸出的是第二引擎SI-ASR的與原有詞條有關的第1最 優識別結果A1,則從第二引擎SI-ASR的與原有詞條有關的識別結果中移除所輸出的識別 結果A1 (步驟506)。應注意,此時不需要在第一引擎SD-ASR的識別結果中進行刪除,這是 因為輸出A1的前提就是A1是第一引擎SD-ASR的集外詞,即A1不是第一引擎SD-ASR的詞 匯表中的單詞,自然A1也不在第一引擎SD-ASR的識別結果中。
[0063] 對于移除后的第一引擎SD-ASR的剩余識別結果和第二引擎SI-ASR的與原有詞條 有關的剩余識別結果,重復執行針對第1最優識別結果的以上比較、輸出和移除操作(步驟 500-506)直到已輸出預定數量的識別結果(步驟507)。
[0064] 此外,在重復執行比較、輸出和移除操作中,如果第一引擎SD-ASR的剩余識別結 果和第二引擎SI-ASR的與原有詞條有關的剩余識別結果中任一個為空,則直接輸出另一 個剩余識別結果中的識別結果,直到已輸出預定數量的識別結果(步驟507)。
[0065] 進一步地,在重復執行比較、輸出和移除操作中,如果在某一次比較時在第二引擎 SI-ASR的與對應詞條有關的識別結果中不存在與第一引擎SD-ASR的當前一個識別結果相 對應的識別結果,例如不存在具有相同單詞的識別結果或在對應關系表中記錄的對應詞條 的單詞,則直接輸出第一引擎SD-ASR和第二引擎SI-ASR的在本次比較中的識別結果中識 別分數較大的一個識別結果;或者輸出兩個引擎的識別結果,并由用戶確認最終的識別結 果。
[0066] 又進一步地,在重復執行比較、輸出和移除操作中,如果第一引擎SD-ASR的剩余 識別結果和第二引擎SI-ASR的與原有詞條有關的剩余識別結果都為空(步驟508)或已經 輸出了預定數量的識別結果(步驟507),則步驟S105停止執行且針對當前輸入語音的識別 操作結束(步驟509)。
[0067] 根據該實施例的語音識別方法也沒有對識別結果設置任何權重或對詞匯表有任 何限制,并且因此不需要設計復雜的判決邏輯,使得語音識別過程更加簡單高效。而且,在 需要多個識別結果的情況下,通過從一引擎的識別結果中移除每一次比較中所輸出的識別 結果,并且如果有的話還從另一引擎的識別結果中移除與所輸出的識別結果具有相同單詞 的識別結果,然后再針對兩個引擎的剩余識別結果來執行基于與第1最優識別結果的比 較、輸出和移除操作類似的操作,可以更準確地獲得所需數量的識別結果。
[0068] 接下來參照圖6描述根據本發明的一個實施例的語音識別系統的示例性配置的 框圖。該語音識別系統包括對應詞條生成裝置601、組合詞匯表生成裝置602、第一語音識 別裝置603、第二語音識別裝置604以及識別結果比較和輸出裝置605。
[0069] 對應詞條生成裝置601耦接到第一語音識別引擎的詞匯表6031,并且針對第一語 音識別引擎的詞匯表6031中的每個詞條生成用于第二語音識別引擎的對應詞條。
[0070] 組合詞匯表生成裝置602耦接到對應詞條生成裝置601,接收對應詞條生成裝置 601生成的對應詞條,并把所生成的對應詞條添加到第二語音識別引擎的詞匯表中,以與第 二語音識別引擎的詞匯表中的原有詞條一起生成組合詞匯表6041。
[0071] 第一語音識別裝置603接收輸入語音600,并使用第一語音識別引擎通過第一語 音識別引擎的詞匯表6031來識別輸入語音600。
[0072] 第二語音識別裝置604接收相同的輸入語音600,使用第二語音識別引擎通過組 合詞匯表6041來識別輸入語音600,以生成與原有詞條有關的識別結果和與對應詞條有關 的識別結果。
[0073] 識別結果比較和輸出裝置605耦接到第一語音識別裝置603和第二語音識別裝置 604,接收第一語音識別裝置603和第二語音識別裝置604的識別結果,并使用從第二語音 識別裝置604輸出的與對應詞條有關的識別結果,對第一語音識別裝置603的識別結果與 第二語音識別裝置604的與原有詞條有關的識別結果進行比較并輸出比較結果。
[0074] 第一語音識別裝置603和第二語音識別裝置604的每個識別結果包括識別出的單 詞和對應的識別分數。
[0075] 在運行時,首先,對應詞條生成裝置601和組合詞匯表生成裝置602可以在訓練階 段期間生成對應詞條并生成組合詞匯表6041。
[0076] 接下來,在識別階段期間,第一語音識別裝置603和第二語音識別引擎604可以接 收相同的輸入語音600,并分別使用各自的詞匯表來識別輸入語音600,以生成各自的識別 結果。最后,識別結果比較和輸出裝置605可以如前面的語音識別方法中所述那樣對識別 結果進行比較并輸出所需的比較結果。
[0077] 以上描述的裝置是用于實施本公開中描述的處理的示例性和/或優選的裝置。這 些裝置可以是硬件單元(諸如場可編程門陣列、數字信號處理器、專用集成電路或計算機 等)和/或軟件裝置(諸如計算機可讀程序)。以上并未詳盡地描述用于實施各個步驟的裝 置。然而,只要有執行某個處理的步驟,就可以有用于實施同一處理的對應的裝置(由硬件 和/或軟件實施)。通過所描述的步驟以及與這些步驟對應的裝置的所有組合限定的技術方 案都被包括在本申請的公開內容中,只要它們構成的這些技術方案是完整并且可應用的。
[0078] 圖7是示出能夠實施本發明的實施例的計算機系統的硬件配置的框圖。
[0079] 如圖7中所示,計算機系統包括經由系統總線704連接的處理單元701、只讀存儲 器702、隨機存取存儲器703和輸入/輸出接口 705,以及經由輸入/輸出接口 705連接的 輸入單元706、輸出單元707、存儲單元708、通信單元709和驅動器710。程序可以預先記錄 在作為計算機中內置的記錄介質的ROM (只讀存儲器)702或者存儲單元708中。或者,程 序可以存儲(記錄)在可移除介質711中。在本文中,可移除介質711包括例如軟盤、⑶-ROM (壓縮光盤只讀存儲器)、M0 (磁光)盤、DVD (數字多功能盤)、磁盤、半導體存儲器等。
[0080] 輸入單元706配置有鍵盤、鼠標、麥克風等。另外,輸出單元707配置有IXD(液晶 顯示器)、揚聲器等。
[0081] 另外,除了通過驅動器710從以上提到的可移除介質711把程序安裝到計算機的 配置之外,可以通過通信網絡或廣播網絡把程序下載到計算機以安裝在內置存儲單元708 中。換言之,可以例如以無線方式通過用于數字衛星廣播的衛星從下載點向計算機或者以 有線方式通過諸如LAN (局域網)或互聯網等的網絡向計算機傳輸程序。
[0082] 如果通過對輸入單元706的用戶操控等、經由輸入/輸出接口 705向計算機系統 輸入了命令,則CPU701根據命令來執行R0M702中存儲的程序。或者,CPU701把存儲單元 708中存儲的程序加載在RAM703上以執行程序。
[0083] 因此,CPU701執行根據以上提到的流程圖的某些處理或者通過以上提到的框圖的 配置執行的處理。接下來,如果有必要,則CPU701允許處理的結果例如通過輸入/輸出接 口 705從輸出單元707輸出、從通信單元707傳輸、在存儲單元708中記錄等。
[0084] 另外,程序可以由一個計算機(處理器)執行。另外,程序可以由多個計算機以分布 式的方式處理。另外,可以把程序傳輸給遠程計算機執行。
[0085] 圖7所示的計算機系統僅僅是說明性的并且決不意圖對本發明、其應用或用途進 行任何限制。
[0086] 圖7所示的計算機系統可以被實施于任何實施例,可作為獨立計算機,或者也可 作為設備中的處理系統,可以移除一個或更多個不必要的組件,也可以向其添加一個或更 多個附加的組件。
[0087] 可以通過許多方式來實施本發明的方法和系統。例如,可以通過軟件、硬件、固件、 或其任何組合來實施本發明的方法和系統。上述的方法步驟的次序僅是說明性的,本發明 的方法步驟不限于以上具體描述的次序,除非以其他方式明確說明。此外,在一些實施例 中,本發明還可以被實施為記錄在記錄介質中的程序,其包括用于實現根據本發明的方法 的機器可讀指令。因而,本發明還覆蓋存儲用于實現根據本發明的方法的程序的記錄介質。 [0088] 雖然已通過示例詳細描述了本發明的一些具體實施例,但是本領域技術人員應當 理解,上述示例僅是說明性的而不限制本發明的范圍。本領域技術人員應該理解,上述實施 例可以被修改而不脫離本發明的范圍和實質。本發明的范圍是通過所附的權利要求限定 的。
【權利要求】
1. 一種語音識別方法,包括: 對應詞條生成步驟,針對第一語音識別引擎的詞匯表中的每個詞條生成用于第二語音 識別引擎的對應詞條; 組合詞匯表生成步驟,把所生成的對應詞條添加到第二語音識別引擎的詞匯表中,以 與第二語音識別引擎的詞匯表中的原有詞條一起生成組合詞匯表; 第一語音識別步驟,使用第一語音識別引擎通過第一語音識別引擎的詞匯表來識別輸 入語音; 第二語音識別步驟,使用第二語音識別引擎通過組合詞匯表來識別輸入語音,以生成 與原有詞條有關的識別結果和與對應詞條有關的識別結果;以及 識別結果比較和輸出步驟,使用從第二語音識別引擎輸出的與對應詞條有關的識別結 果,對第一語音識別引擎的識別結果與第二語音識別引擎的與原有詞條有關的識別結果進 行比較并輸出比較結果; 其中第一語音識別引擎和第二語音識別引擎的每個識別結果包括識別出的單詞和對 應的識別分數。
2. 根據權利要求1所述的語音識別方法,其中,對于第一語音識別引擎的詞匯表中的 每個詞條,對應詞條生成步驟包括: 取得該詞條的語音樣本; 使用與第二語音識別引擎相匹配的音素切分裝置來對語音樣本執行音素切分;以及 使用作為音素切分的結果的音素序列來生成對應詞條。
3. 根據權利要求1所述的語音識別方法,其中,對于第一語音識別引擎的詞匯表中的 每個詞條,對應詞條生成步驟包括: 取得該詞條的文本; 使用與第二語音識別引擎相匹配的字音轉換裝置來生成該詞條的文本的音素序列;以 及 使用所生成的音素序列來生成對應詞條。
4. 根據權利要求1-3中任一項所述的語音識別方法,其中,識別結果比較和輸出步驟 包括: 如果第二語音識別引擎的與原有詞條有關的第1最優識別結果的單詞是第一語音識 別引擎的詞匯表中的單詞,則直接輸出第一語音識別引擎的第1最優識別結果。
5. 根據權利要求4所述的語音識別方法,識別結果比較和輸出步驟還包括: 如果第二語音識別引擎的與原有詞條有關的第1最優識別結果的單詞不是第一語音 識別引擎的詞匯表中的單詞,則比較第二語音識別引擎的與原有詞條有關的第1最優識別 結果的識別分數和與第一語音識別引擎的第1最優識別結果對應的、第二語音識別引擎的 與對應詞條有關的識別結果的識別分數; 如果與對應詞條有關的識別結果的識別分數較大,則輸出第一語音識別引擎的第1最 優識別結果,否則輸出第二語音識別引擎的與原有詞條有關的第1最優識別結果。
6. 根據權利要求5所述的語音識別方法,識別結果比較和輸出步驟還包括: 對于第一語音識別引擎的第N最優識別結果和第二語音識別引擎的與原有詞條有關 的第N最優識別結果,重復執行針對第1最優識別結果的前述比較和輸出操作直到輸出預 定數量的識別結果,其中N是大于1的預定整數。
7. 根據權利要求5所述的語音識別方法,識別結果比較和輸出步驟還包括: 在輸出第一語音識別引擎的第1最優識別結果的情況下,從第一語音識別引擎的識別 結果中移除所輸出的識別結果,并且在第二語音識別引擎的與原有詞條有關的識別結果中 含有與所輸出的識別結果具有相同單詞的識別結果的情況下從與原有詞條有關的識別結 果中移除該具有相同單詞的識別結果; 在輸出第二語音識別引擎的與原有詞條有關的第1最優識別結果的情況下,從第二語 音識別引擎的與原有詞條有關的識別結果中移除所輸出的識別結果; 對于第一語音識別引擎的剩余識別結果和第二語音識別引擎的與原有詞條有關的剩 余識別結果,重復執行針對第1最優識別結果的前述比較、輸出和移除操作直到已輸出預 定數量的識別結果。
8. 根據權利要求7所述的語音識別方法,識別結果比較和輸出步驟還包括: 如果第一語音識別引擎的剩余識別結果和第二語音識別引擎的與原有詞條有關的剩 余識別結果中任一個為空,則直接輸出另一個剩余識別結果中的識別結果,直到已輸出預 定數量的識別結果。
9. 根據權利要求7所述的語音識別方法,識別結果比較和輸出步驟還包括: 如果第一語音識別引擎的剩余識別結果和第二語音識別引擎的與原有詞條有關的剩 余識別結果都為空,則該識別結果比較和輸出步驟停止執行。
10. 根據權利要求1-3中任一項所述的語音識別方法,其中,第二語音識別引擎的聲學 模型是基于音素而被建立的。
11. 一種語音識別系統,包括: 對應詞條生成裝置,被配置為針對第一語音識別引擎的詞匯表中的每個詞條生成用于 第二語音識別引擎的對應詞條; 組合詞匯表生成裝置,被配置為把所生成的對應詞條添加到第二語音識別引擎的詞匯 表中,以與第二語音識別引擎的詞匯表中的原有詞條一起生成組合詞匯表; 第一語音識別裝置,被配置為使用第一語音識別引擎通過第一語音識別引擎的詞匯表 來識別輸入語音; 第二語音識別裝置,被配置為使用第二語音識別引擎通過組合詞匯表來識別輸入語 音,以生成與原有詞條有關的識別結果和與對應詞條有關的識別結果;以及 識別結果比較和輸出裝置,被配置為使用從第二語音識別引擎輸出的與對應詞條有關 的識別結果,對第一語音識別引擎的識別結果與第二語音識別引擎的與原有詞條有關的識 別結果進行比較并輸出比較結果; 其中第一語音識別引擎和第二語音識別引擎的每個識別結果包括識別出的單詞和對 應的識別分數。
12. 根據權利要求11所述的語音識別系統,其中,對應詞條生成裝置包括: 被配置為取得第一語音識別引擎的詞匯表中的每個詞條的語音樣本的裝置; 被配置為使用與第二語音識別引擎相匹配的音素切分裝置來對語音樣本執行音素切 分的裝置;以及 被配置為使用作為音素切分的結果的音素序列來生成對應詞條的裝置。
13. 根據權利要求11所述的語音識別系統,其中,對應詞條生成裝置包括: 被配置為取得第一語音識別引擎的詞匯表中的每個詞條的文本的裝置; 被配置為使用與第二語音識別引擎相匹配的字音轉換裝置來生成該詞條的文本的音 素序列的裝置;以及 被配置為使用所生成的音素序列來生成對應詞條的裝置。
14. 根據權利要求11-13中任一項所述的語音識別系統,其中,識別結果比較和輸出裝 置包括: 被配置為如果第二語音識別引擎的與原有詞條有關的第1最優識別結果的單詞是第 一語音識別引擎的詞匯表中的單詞,則直接輸出第一語音識別引擎的第1最優識別結果的 裝直。
15. 根據權利要求14所述的語音識別系統,識別結果比較和輸出裝置還包括: 被配置為如果第二語音識別引擎的與原有詞條有關的第1最優識別結果的單詞不是 第一語音識別引擎的詞匯表中的單詞,則比較第二語音識別引擎的與原有詞條有關的第1 最優識別結果的識別分數和與第一語音識別引擎的第1最優識別結果對應的、第二語音識 別引擎的與對應詞條有關的識別結果的識別分數的裝置;以及 被配置為如果與對應詞條有關的識別結果的識別分數較大,則輸出第一語音識別引擎 的第1最優識別結果,否則輸出第二語音識別引擎的與原有詞條有關的第1最優識別結果 的裝置。
16. 根據權利要求15所述的語音識別系統,識別結果比較和輸出裝置還包括: 被配置為對于第一語音識別引擎的第Ν最優識別結果和第二語音識別引擎的與原有 詞條有關的第Ν最優識別結果,重復執行針對第1最優識別結果的比較和輸出操作直到輸 出預定數量的識別結果的裝置,其中Ν是大于1的預定整數。
17. 根據權利要求15所述的語音識別系統,識別結果比較和輸出裝置還包括: 被配置為在輸出第一語音識別引擎的第1最優識別結果的情況下,從第一語音識別引 擎的識別結果中移除所輸出的識別結果,并且在第二語音識別引擎的與原有詞條有關的識 別結果中含有與所輸出的識別結果具有相同單詞的識別結果的情況下從與原有詞條有關 的識別結果中移除該具有相同單詞的識別結果的裝置; 被配置為在輸出第二語音識別引擎的與原有詞條有關的第1最優識別結果的情況下, 從第二語音識別引擎的與原有詞條有關的識別結果中移除所輸出的識別結果的裝置;以及 被配置為對于第一語音識別引擎的剩余識別結果和第二語音識別引擎的與原有詞條 有關的剩余識別結果,重復執行針對第1最優識別結果的比較、輸出和移除操作直到已輸 出預定數量的識別結果的裝置。
18. 根據權利要求17所述的語音識別系統,識別結果比較和輸出裝置還包括: 被配置為如果第一語音識別引擎的剩余識別結果和第二語音識別引擎的與原有詞條 有關的剩余識別結果中任一個為空,則直接輸出另一個剩余識別結果中的識別結果,直到 已輸出預定數量的識別結果的裝置。
19. 根據權利要求17所述的語音識別系統,識別結果比較和輸出裝置還包括: 被配置為如果第一語音識別引擎的剩余識別結果和第二語音識別引擎的與原有詞條 有關的剩余識別結果都為空,則使該識別結果比較和輸出裝置停止執行的裝置。
【文檔編號】G10L15/12GK104143330SQ201310163355
【公開日】2014年11月12日 申請日期:2013年5月7日 優先權日:2013年5月7日
【發明者】劉賀飛, 郭莉莉 申請人:佳能株式會社