本申請(qǐng)涉及語音識(shí)別技術(shù),具體涉及一種語音識(shí)別方法及裝置。本申請(qǐng)同時(shí)涉及另一種語音識(shí)別方法及裝置。
背景技術(shù):
語音是語言的聲學(xué)表現(xiàn),是人類交流信息最自然、最有效、最方便的手段,也是人類思維的一種依托。自動(dòng)語音識(shí)別(Automatic Speech Recognition—ASR)通常是指讓計(jì)算機(jī)等設(shè)備通過對(duì)語音的識(shí)別和理解,把人的口語轉(zhuǎn)化為相應(yīng)的輸出文本或者命令的過程。其核心框架是:在利用統(tǒng)計(jì)模型建模的基礎(chǔ)上,根據(jù)從待識(shí)別語音信號(hào)中提取的特征序列O,利用下述貝葉斯決策準(zhǔn)則來求解與待識(shí)別語音信號(hào)對(duì)應(yīng)的最佳詞序列W*:
W*=argmaxP(O|W)P(W)
在具體實(shí)施中,上述求解最佳詞序列的過程稱為解碼過程(實(shí)現(xiàn)解碼功能的模塊通常稱為解碼器),即:在由發(fā)音詞典、語言模型等多種知識(shí)源組成的搜索空間中搜索出上式所示的最佳詞序列。
隨著技術(shù)的發(fā)展,硬件的計(jì)算能力和存儲(chǔ)容量有了很大的進(jìn)步,語音識(shí)別系統(tǒng)已經(jīng)逐步在業(yè)界得以應(yīng)用,在客戶端設(shè)備上也出現(xiàn)了各種用語音作為人機(jī)交互媒介的應(yīng)用,例如智能手機(jī)上的撥打電話應(yīng)用,用戶只需發(fā)出語音指示(如:“給張三打電話”),即可自動(dòng)實(shí)現(xiàn)電話撥打功能。
目前的語音識(shí)別應(yīng)用通常采用兩種模式,一種是基于客戶端和服務(wù)器的模式,即:客戶端采集語音,經(jīng)由網(wǎng)絡(luò)上傳至服務(wù)器,服務(wù)器通過解碼將語音識(shí)別為文本,然后回傳到客戶端。之所以采用這樣的模式,是因?yàn)榭蛻舳说挠?jì)算能力相對(duì)較弱,其內(nèi)存空間也比較有限,而服務(wù)器在這兩方面都具有明顯的優(yōu)勢(shì);但是采用這種模式,如果沒有網(wǎng)絡(luò)接入環(huán)境,客戶端則無法完成語音識(shí)別功能。針對(duì)上述問題出現(xiàn)了僅依賴于客戶端的第二種語音識(shí)別應(yīng)用模式,在該模式下,通過縮減規(guī)模,將原本存放在服務(wù)器上的模型和搜索空間放在客戶端設(shè)備本地,由客戶端自行完成采集語音以及解碼的操作。
在實(shí)際應(yīng)用中,無論是第一種模式還是第二種模式,在采用上述通用框架進(jìn)行語音識(shí)別時(shí),通常無法有效識(shí)別語音信號(hào)中與客戶端設(shè)備本地信息相關(guān)的內(nèi)容,例如:通訊錄中的聯(lián)系人名稱,從而導(dǎo)致識(shí)別準(zhǔn)確率低,給用戶的使用帶來不便,影響用戶的使用體驗(yàn)。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)實(shí)施例提供一種語音識(shí)別方法和裝置,以解決現(xiàn)有的語音識(shí)別技術(shù)對(duì)客戶端本地相關(guān)信息的識(shí)別準(zhǔn)確率低的問題。本申請(qǐng)實(shí)施例還提供另一種語音識(shí)別方法和裝置。
本申請(qǐng)?zhí)峁┮环N語音識(shí)別方法,包括:
利用預(yù)設(shè)的語音知識(shí)源,生成包含客戶端預(yù)設(shè)信息的、用于對(duì)語音信號(hào)進(jìn)行解碼的搜索空間;
提取待識(shí)別語音信號(hào)的特征矢量序列;
計(jì)算特征矢量對(duì)應(yīng)于搜索空間基本單元的概率;
以所述概率為輸入、在所述搜索空間中執(zhí)行解碼操作,得到與所述特征矢量序列對(duì)應(yīng)的詞序列。
可選的,所述搜索空間包括:加權(quán)有限狀態(tài)轉(zhuǎn)換器。
可選的,所述搜索空間基本單元包括:上下文相關(guān)的三音素;
所述預(yù)設(shè)的知識(shí)源包括:發(fā)音詞典、語言模型、以及三音素狀態(tài)綁定列表。
可選的,所述利用預(yù)設(shè)的語音知識(shí)源生成包含客戶端預(yù)設(shè)信息的、用于對(duì)語音信號(hào)進(jìn)行解碼的搜索空間,包括:
通過替換標(biāo)簽的方式,向預(yù)先生成的至少基于語言模型的加權(quán)有限狀態(tài)轉(zhuǎn)換器中添加與預(yù)設(shè)主題類別對(duì)應(yīng)的客戶端預(yù)設(shè)信息,并得到基于三音素狀態(tài)綁定列表、發(fā)音詞典以及語言模型的單一加權(quán)有限狀態(tài)轉(zhuǎn)換器;
其中,所述語言模型是采用如下方式預(yù)先訓(xùn)練得到的:
將用于訓(xùn)練語言模型的文本中的預(yù)設(shè)命名實(shí)體替換為與預(yù)設(shè)主題類別對(duì)應(yīng)的標(biāo)簽,并利用所述文本訓(xùn)練語言模型。
可選的,所述通過替換標(biāo)簽的方式,向預(yù)先生成的至少基于語言模型的加權(quán)有限狀態(tài)轉(zhuǎn)換器中添加與預(yù)設(shè)主題類別對(duì)應(yīng)的客戶端預(yù)設(shè)信息,并得到基于 三音素狀態(tài)綁定列表、發(fā)音詞典以及語言模型的單一加權(quán)有限狀態(tài)轉(zhuǎn)換器,包括:
通過替換標(biāo)簽的方式,向預(yù)先生成的基于語言模型的加權(quán)有限狀態(tài)轉(zhuǎn)換器中添加與預(yù)設(shè)主題類別對(duì)應(yīng)的客戶端預(yù)設(shè)信息;
將添加了客戶端預(yù)設(shè)信息的所述加權(quán)有限狀態(tài)轉(zhuǎn)換器、與預(yù)先生成的基于三音素狀態(tài)綁定列表和發(fā)音詞典的加權(quán)有限狀態(tài)轉(zhuǎn)換器進(jìn)行合并,得到所述單一加權(quán)有限狀態(tài)轉(zhuǎn)換器。
可選的,所述用于訓(xùn)練語言模型的文本是指,針對(duì)所述預(yù)設(shè)主題類別的文本。
可選的,所述預(yù)設(shè)主題類別的數(shù)目至少為2個(gè);所述語言模型的數(shù)目、以及所述至少基于語言模型的加權(quán)有限狀態(tài)器的數(shù)目分別與預(yù)設(shè)主題類別的數(shù)目一致;
所述通過替換標(biāo)簽的方式,向預(yù)先生成的至少基于語言模型的加權(quán)有限狀態(tài)轉(zhuǎn)換器中添加與預(yù)設(shè)主題類別對(duì)應(yīng)的客戶端預(yù)設(shè)信息,包括:
確定待識(shí)別語音信號(hào)所屬的預(yù)設(shè)主題類別;
選擇預(yù)先生成的、與所述預(yù)設(shè)主題類別相對(duì)應(yīng)的所述至少基于語言模型的加權(quán)有限狀態(tài)轉(zhuǎn)換器;
通過用與所述預(yù)設(shè)主題類別對(duì)應(yīng)的客戶端預(yù)設(shè)信息替換相應(yīng)標(biāo)簽的方式,向所選的加權(quán)有限狀態(tài)轉(zhuǎn)換器中添加客戶端預(yù)設(shè)信息。
可選的,所述確定待識(shí)別語音信號(hào)所屬的預(yù)設(shè)主題類別,采用如下方式實(shí)現(xiàn):
根據(jù)采集所述語音信號(hào)的客戶端類型、或應(yīng)用程序確定所述所屬的預(yù)設(shè)主題類別。
可選的,所述預(yù)設(shè)主題類別包括:撥打電話或發(fā)送短信,播放樂曲,或者,設(shè)置指令;
相應(yīng)的客戶端預(yù)設(shè)信息包括:通訊錄中的聯(lián)系人名稱,曲庫中的樂曲名稱,或者,指令集中的指令。
可選的,所述合并操作包括:采用基于預(yù)測(cè)的方法進(jìn)行合并。
可選的,預(yù)先訓(xùn)練所述語言模型所采用的詞表與所述發(fā)音詞典包含的詞一 致。
可選的,所述計(jì)算特征矢量對(duì)應(yīng)于搜索空間基本單元的概率,包括:
采用預(yù)先訓(xùn)練的DNN模型計(jì)算特征矢量對(duì)應(yīng)于各三音素狀態(tài)的概率;
根據(jù)特征矢量對(duì)應(yīng)于所述各三音素狀態(tài)的概率,采用預(yù)先訓(xùn)練的HMM模型計(jì)算特征矢量對(duì)應(yīng)于各三音素的概率。
可選的,通過如下方式提升所述采用預(yù)先訓(xùn)練的DNN模型計(jì)算特征矢量對(duì)應(yīng)于各三音素狀態(tài)的概率的步驟的執(zhí)行速度:利用硬件平臺(tái)提供的數(shù)據(jù)并行處理能力。
可選的,所述提取待識(shí)別語音信號(hào)的特征矢量序列,包括:
按照預(yù)先設(shè)定的幀長(zhǎng)度對(duì)待識(shí)別語音信號(hào)進(jìn)行分幀處理,得到多個(gè)音頻幀;
提取各音頻幀的特征矢量,得到所述特征矢量序列。
可選的,所述提取各音頻幀的特征矢量包括:提取MFCC特征、PLP特征、或者LPC特征。
可選的,在所述得到與所述特征矢量序列對(duì)應(yīng)的詞序列后,執(zhí)行下述操作:
通過與所述客戶端預(yù)設(shè)信息進(jìn)行文字匹配驗(yàn)證所述詞序列的準(zhǔn)確性,并根據(jù)驗(yàn)證結(jié)果生成相應(yīng)的語音識(shí)別結(jié)果。
可選的,所述通過與所述客戶端預(yù)設(shè)信息進(jìn)行文字匹配驗(yàn)證所述詞序列的準(zhǔn)確性,并根據(jù)驗(yàn)證結(jié)果得到相應(yīng)的語音識(shí)別結(jié)果,包括:
從所述詞序列中選擇對(duì)應(yīng)于所述客戶端預(yù)設(shè)信息的待驗(yàn)證詞;
在所述客戶端預(yù)設(shè)信息中查找所述待驗(yàn)證詞;
若找到,則判定通過所述準(zhǔn)確性驗(yàn)證,并將所述詞序列作為語音識(shí)別結(jié)果;否則通過基于拼音的模糊匹配方式修正所述詞序列,并將修正后的詞序列作為語音識(shí)別結(jié)果。
可選的,所述通過基于拼音的模糊匹配方式修正所述詞序列,包括:
將所述待驗(yàn)證詞轉(zhuǎn)換為待驗(yàn)證拼音序列;
將所述客戶端預(yù)設(shè)信息中的各個(gè)詞分別轉(zhuǎn)換為比對(duì)拼音序列;
依次計(jì)算所述待驗(yàn)證拼音序列與各比對(duì)拼音序列之間的相似度,并從所述客戶端預(yù)設(shè)信息中選擇按照所述相似度從高到低排序靠前的詞;
用所選詞替換所述詞序列中的待驗(yàn)證詞,得到所述修正后的詞序列。
可選的,所述相似度包括:基于編輯距離計(jì)算的相似度。
可選的,所述方法在客戶端設(shè)備上實(shí)施;所述客戶端設(shè)備包括:智能移動(dòng)終端、智能音箱、或者機(jī)器人。
相應(yīng)的,本申請(qǐng)還提供一種語音識(shí)別裝置,包括:
搜索空間生成單元,用于利用預(yù)設(shè)的語音知識(shí)源,生成包含客戶端預(yù)設(shè)信息的、用于對(duì)語音信號(hào)進(jìn)行解碼的搜索空間;
特征矢量提取單元,用于提取待識(shí)別語音信號(hào)的特征矢量序列;
概率計(jì)算單元,用于計(jì)算特征矢量對(duì)應(yīng)于搜索空間基本單元的概率;
解碼搜索單元,用于以所述概率為輸入、在所述搜索空間中執(zhí)行解碼操作,得到與所述特征矢量序列對(duì)應(yīng)的詞序列。
可選的,所述搜索空間生成單元具體用于,通過替換標(biāo)簽的方式,向預(yù)先生成的至少基于語言模型的加權(quán)有限狀態(tài)轉(zhuǎn)換器中添加與預(yù)設(shè)主題類別對(duì)應(yīng)的客戶端預(yù)設(shè)信息,并得到基于三音素狀態(tài)綁定列表、發(fā)音詞典、以及語言模型的單一加權(quán)有限狀態(tài)轉(zhuǎn)換器;
所述語言模型是由語言模型訓(xùn)練單元預(yù)先生成的,所述語言模型訓(xùn)練單元用于,將用于訓(xùn)練語言模型的文本中的預(yù)設(shè)命名實(shí)體替換為與預(yù)設(shè)主題類別對(duì)應(yīng)的標(biāo)簽,并利用所述文本訓(xùn)練語言模型。
可選的,所述搜索空間生成單元包括:
第一客戶端信息添加子單元,用于通過替換標(biāo)簽的方式,向預(yù)先生成的基于語言模型的加權(quán)有限狀態(tài)轉(zhuǎn)換器中添加與預(yù)設(shè)主題類別對(duì)應(yīng)的客戶端預(yù)設(shè)信息;
加權(quán)有限狀態(tài)轉(zhuǎn)換器合并子單元,用于將添加了所述客戶端預(yù)設(shè)信息的所述加權(quán)有限狀態(tài)轉(zhuǎn)換器、與預(yù)先生成的基于三音素狀態(tài)綁定列表和發(fā)音詞典的加權(quán)有限狀態(tài)轉(zhuǎn)換器進(jìn)行合并,得到所述單一加權(quán)有限狀態(tài)轉(zhuǎn)換器。
可選的,所述解碼空間生成單元包括:
第二客戶端信息添加子單元,用于通過替換標(biāo)簽的方式,向預(yù)先生成的至少基于語言模型的加權(quán)有限狀態(tài)轉(zhuǎn)換器中添加與預(yù)設(shè)主題類別對(duì)應(yīng)的客戶端預(yù)設(shè)信息;
統(tǒng)一加權(quán)有限狀態(tài)轉(zhuǎn)換器獲取子單元,用于在所述第二客戶端信息添加子 單元完成添加操作之后,得到基于三音素狀態(tài)綁定列表、發(fā)音詞典、以及語言模型的單一加權(quán)有限狀態(tài)轉(zhuǎn)換器;
其中,所述第二客戶端信息添加子單元包括:
主題確定子單元,用于確定待識(shí)別語音信號(hào)所屬的預(yù)設(shè)主題類別;
加權(quán)有限狀態(tài)轉(zhuǎn)換器選擇子單元,用于選擇預(yù)先生成的、與所述預(yù)設(shè)主題類別相對(duì)應(yīng)的所述至少基于語言模型的加權(quán)有限狀態(tài)轉(zhuǎn)換器;
標(biāo)簽替換子單元,用于通過用與所述預(yù)設(shè)主題類別對(duì)應(yīng)的客戶端預(yù)設(shè)信息替換相應(yīng)標(biāo)簽的方式,向所選的加權(quán)有限狀態(tài)轉(zhuǎn)換器中添加客戶端預(yù)設(shè)信息。
可選的,所述主題確定子單元具體用于,根據(jù)采集所述語音信號(hào)的客戶端類型、或應(yīng)用程序確定所述所屬的預(yù)設(shè)主題類別。
可選的,所述加權(quán)有限狀態(tài)轉(zhuǎn)換器合并子單元具體用于,采用基于預(yù)測(cè)的方法執(zhí)行合并操作,并得到所述單一加權(quán)有限狀態(tài)轉(zhuǎn)換器。
可選的,所述概率計(jì)算單元包括:
三音素狀態(tài)概率計(jì)算子單元,用于采用預(yù)先訓(xùn)練的DNN模型計(jì)算特征矢量對(duì)應(yīng)于各三音素狀態(tài)的概率;
三音素概率計(jì)算子單元,用于根據(jù)特征矢量對(duì)應(yīng)于所述各三音素狀態(tài)的概率,采用預(yù)先訓(xùn)練的HMM模型計(jì)算特征矢量對(duì)應(yīng)于各三音素的概率。
可選的,所述特征矢量提取單元包括:
分幀子單元,用于按照預(yù)先設(shè)定的幀長(zhǎng)度對(duì)待識(shí)別語音信號(hào)進(jìn)行分幀處理,得到多個(gè)音頻幀;
特征提取子單元,用于提取各音頻幀的特征矢量,得到所述特征矢量序列。
可選的,所述裝置包括:
準(zhǔn)確性驗(yàn)證單元,用于在所述解碼搜索單元得到與特征矢量序列對(duì)應(yīng)的詞序列后,通過與所述客戶端預(yù)設(shè)信息進(jìn)行文字匹配驗(yàn)證所述詞序列的準(zhǔn)確性,并根據(jù)驗(yàn)證結(jié)果生成相應(yīng)的語音識(shí)別結(jié)果。
可選的,所述準(zhǔn)確性驗(yàn)證單元包括:
待驗(yàn)證詞選擇子單元,用于從所述詞序列中選擇對(duì)應(yīng)于所述客戶端預(yù)設(shè)信息的待驗(yàn)證詞;
查找子單元,用于在所述客戶端預(yù)設(shè)信息中查找所述待驗(yàn)證詞;
識(shí)別結(jié)果確認(rèn)子單元,用于當(dāng)所述查找子單元找到所述待驗(yàn)證詞之后,判定通過所述準(zhǔn)確性驗(yàn)證,并將所述詞序列作為語音識(shí)別結(jié)果;
識(shí)別結(jié)果修正子單元,用于當(dāng)所述查找子單元未找到所述待驗(yàn)證詞之后,通過基于拼音的模糊匹配方式修正所述詞序列,并將修正后的詞序列作為語音識(shí)別結(jié)果。
可選的,所述識(shí)別結(jié)果修正子單元,包括:
待驗(yàn)證拼音序列轉(zhuǎn)換子單元,用于將所述待驗(yàn)證詞轉(zhuǎn)換為待驗(yàn)證拼音序列;
比對(duì)拼音序列轉(zhuǎn)換子單元,用于將所述客戶端預(yù)設(shè)信息中的各個(gè)詞分別轉(zhuǎn)換為比對(duì)拼音序列;
相似度計(jì)算選擇子單元,用于依次計(jì)算所述待驗(yàn)證拼音序列與各比對(duì)拼音序列之間的相似度,并從所述客戶端預(yù)設(shè)信息中選擇按照所述相似度從高到低排序靠前的詞;
待驗(yàn)證詞替換子單元,用于用所選詞替換所述詞序列中的待驗(yàn)證詞,得到所述修正后的詞序列。
此外,本申請(qǐng)還提供另一種語音識(shí)別方法,包括:
通過解碼獲取與待識(shí)別語音信號(hào)對(duì)應(yīng)的詞序列;
通過與客戶端預(yù)設(shè)信息進(jìn)行文字匹配驗(yàn)證所述詞序列的準(zhǔn)確性,并根據(jù)驗(yàn)證結(jié)果生成相應(yīng)的語音識(shí)別結(jié)果。
可選的,所述通過與客戶端預(yù)設(shè)信息進(jìn)行文字匹配驗(yàn)證所述詞序列的準(zhǔn)確性,并根據(jù)驗(yàn)證結(jié)果生成相應(yīng)的語音識(shí)別結(jié)果,包括:
從所述詞序列中選擇對(duì)應(yīng)于所述客戶端預(yù)設(shè)信息的待驗(yàn)證詞;
在所述客戶端預(yù)設(shè)信息中查找所述待驗(yàn)證詞;
若找到,則判定通過所述準(zhǔn)確性驗(yàn)證,并將所述詞序列作為語音識(shí)別結(jié)果;否則通過基于拼音的模糊匹配方式修正所述詞序列,并將修正后的詞序列作為語音識(shí)別結(jié)果。
可選的,所述通過基于拼音的模糊匹配方式修正所述詞序列,包括:
將所述待驗(yàn)證詞轉(zhuǎn)換為待驗(yàn)證拼音序列;
將所述客戶端預(yù)設(shè)信息中的各個(gè)詞分別轉(zhuǎn)換為比對(duì)拼音序列;
依次計(jì)算所述待驗(yàn)證拼音序列與各比對(duì)拼音序列之間的相似度,并從所述 客戶端預(yù)設(shè)信息中選擇按照所述相似度從高到低排序靠前的詞;
用所選詞替換所述詞序列中的待驗(yàn)證詞,得到所述修正后的詞序列。
相應(yīng)的,本申請(qǐng)還提供另一種語音識(shí)別裝置,包括:
詞序列獲取單元,用于通過解碼獲取與待識(shí)別語音信號(hào)對(duì)應(yīng)的詞序列;
詞序列驗(yàn)證單元,用于通過與客戶端預(yù)設(shè)信息進(jìn)行文字匹配驗(yàn)證所述詞序列的準(zhǔn)確性,并根據(jù)驗(yàn)證結(jié)果生成相應(yīng)的語音識(shí)別結(jié)果。
可選的,所述詞序列驗(yàn)證單元包括:
待驗(yàn)證詞選擇子單元,用于從所述詞序列中選擇對(duì)應(yīng)于所述客戶端預(yù)設(shè)信息的待驗(yàn)證詞;
查找子單元,用于在所述客戶端預(yù)設(shè)信息中查找所述待驗(yàn)證詞;
識(shí)別結(jié)果確認(rèn)子單元,用于當(dāng)所述查找子單元找到所述待驗(yàn)證詞之后,判定通過所述準(zhǔn)確性驗(yàn)證,并將所述詞序列作為語音識(shí)別結(jié)果;
識(shí)別結(jié)果修正子單元,用于當(dāng)所述查找子單元未找到所述待驗(yàn)證詞之后,通過基于拼音的模糊匹配方式修正所述詞序列,并將修正后的詞序列作為語音識(shí)別結(jié)果。
可選的,所述識(shí)別結(jié)果修正子單元,包括:
待驗(yàn)證拼音序列轉(zhuǎn)換子單元,用于將所述待驗(yàn)證詞轉(zhuǎn)換為待驗(yàn)證拼音序列;
比對(duì)拼音序列轉(zhuǎn)換子單元,用于將所述客戶端預(yù)設(shè)信息中的各個(gè)詞分別轉(zhuǎn)換為比對(duì)拼音序列;
相似度計(jì)算選擇子單元,用于依次計(jì)算所述待驗(yàn)證拼音序列與各比對(duì)拼音序列之間的相似度,并從所述客戶端預(yù)設(shè)信息中選擇按照所述相似度從高到低排序靠前的詞;
待驗(yàn)證詞替換子單元,用于用所選詞替換所述詞序列中的待驗(yàn)證詞,得到所述修正后的詞序列。
與現(xiàn)有技術(shù)相比,本申請(qǐng)具有以下優(yōu)點(diǎn):
本申請(qǐng)?zhí)峁┑恼Z音識(shí)別方法,在利用預(yù)設(shè)的語音知識(shí)源生成包含客戶端預(yù)設(shè)信息的、用于對(duì)語音信號(hào)進(jìn)行解碼的搜索空間的基礎(chǔ)上,計(jì)算從待識(shí)別語音信號(hào)中提取的特征矢量對(duì)應(yīng)于搜索空間基本單元的概率,并且根據(jù)所述概率在 搜索空間中執(zhí)行解碼操作,從而得到與所述待識(shí)別語音信號(hào)對(duì)應(yīng)的詞序列。本申請(qǐng)?zhí)峁┑纳鲜龇椒?,由于在生成用于解碼的搜索空間時(shí)包含了客戶端預(yù)設(shè)信息,因此在對(duì)客戶端采集的語音信號(hào)進(jìn)行識(shí)別時(shí)能夠相對(duì)準(zhǔn)確地識(shí)別出與客戶端相關(guān)的信息,從而可以提高語音識(shí)別的準(zhǔn)確率,提升用戶的使用體驗(yàn)。
附圖說明
圖1是本申請(qǐng)的一種語音識(shí)別方法的實(shí)施例的流程圖;
圖2是本申請(qǐng)實(shí)施例提供的生成包含客戶端預(yù)設(shè)信息的、用于對(duì)語音信號(hào)進(jìn)行解碼的搜索空間的處理流程圖;
圖3是本申請(qǐng)實(shí)施例提供的執(zhí)行替換操作前的G結(jié)構(gòu)WFST的示意圖;
圖4是本申請(qǐng)實(shí)施例提供的執(zhí)行替換操作后的G結(jié)構(gòu)WFST的示意圖;
圖5是本申請(qǐng)實(shí)施例提供的提取待識(shí)別語音信號(hào)的特征矢量序列的處理流程圖;
圖6是本申請(qǐng)實(shí)施例提供的計(jì)算特征矢量對(duì)應(yīng)于各三音素的概率的處理流程圖;
圖7是本申請(qǐng)實(shí)施例提供的通過文字匹配驗(yàn)證詞序列的準(zhǔn)確性、并根據(jù)驗(yàn)證結(jié)果生成相應(yīng)語音識(shí)別結(jié)果的處理流程圖;
圖8為本申請(qǐng)實(shí)施例提供的語音識(shí)別的整體框架圖;
圖9是本申請(qǐng)的一種語音識(shí)別裝置的實(shí)施例的示意圖;
圖10是本申請(qǐng)的另一種語音識(shí)別方法的實(shí)施例的流程圖;
圖11是本申請(qǐng)的另一種語音識(shí)別裝置的實(shí)施例的示意圖。
具體實(shí)施方式
在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本申請(qǐng)。但是,本申請(qǐng)能夠以很多不同于在此描述的其它方式來實(shí)施,本領(lǐng)域技術(shù)人員可以在不違背本申請(qǐng)內(nèi)涵的情況下做類似推廣,因此,本申請(qǐng)不受下面公開的具體實(shí)施的限制。
在本申請(qǐng)中,分別提供了一種語音識(shí)別方法及相應(yīng)裝置,以及另一種語音 識(shí)別方法及相應(yīng)裝置,在下面的實(shí)施例中逐一進(jìn)行詳細(xì)說明。為了便于理解,在對(duì)實(shí)施例進(jìn)行描述之前,先對(duì)本申請(qǐng)的技術(shù)方案、相關(guān)的技術(shù)術(shù)語、以及實(shí)施例的撰寫方式作簡(jiǎn)要說明。
本申請(qǐng)?zhí)峁┑恼Z音識(shí)別方法,通常應(yīng)用于以語音作為人機(jī)交互媒介的應(yīng)用中,此類應(yīng)用將采集的語音信號(hào)識(shí)別為文本,再根據(jù)文本執(zhí)行相應(yīng)的操作,所述語音信號(hào)中通常涉及客戶端本地的預(yù)設(shè)信息(例如,通訊錄中的聯(lián)系人名稱)?,F(xiàn)有的語音識(shí)別技術(shù),對(duì)于上述待識(shí)別語音信號(hào)采用通用的搜索空間進(jìn)行解碼識(shí)別,而通用的搜索空間并沒有考慮此類應(yīng)用在不同客戶端之間的差異性,因此通常無法有效識(shí)別語音信號(hào)中與客戶端本地信息相關(guān)的內(nèi)容,導(dǎo)致識(shí)別準(zhǔn)確率低。針對(duì)這一問題,本申請(qǐng)的技術(shù)方案通過在構(gòu)建用于對(duì)語音信號(hào)進(jìn)行解碼的搜索空間的過程中融入客戶端預(yù)設(shè)信息,相當(dāng)于針對(duì)客戶端的具體語音識(shí)別需求進(jìn)行了定制,從而能夠有效識(shí)別與客戶端相關(guān)的本地信息,達(dá)到提高語音識(shí)別準(zhǔn)確率的目的。
在語音識(shí)別系統(tǒng)中,根據(jù)待識(shí)別的語音信號(hào)得到與其最匹配的詞序列的過程叫做解碼。而本申請(qǐng)所述的用于對(duì)語音信號(hào)進(jìn)行解碼的搜索空間是指,由語音識(shí)別系統(tǒng)涉及的語音知識(shí)源(例如:聲學(xué)模型、發(fā)音詞典以及語言模型等)所覆蓋的、所有可能的語音識(shí)別結(jié)果所組成的空間。相應(yīng)的,解碼的過程就是針對(duì)待識(shí)別語音信號(hào)在搜索空間中進(jìn)行搜索和匹配、得到最佳匹配的詞序列的過程。
所述搜索空間的形式可以是多樣化的,可以采用各種知識(shí)源處于相對(duì)獨(dú)立的不同層面的搜索空間,解碼的過程就是逐層計(jì)算搜索的過程;也可以采用基于加權(quán)有限狀態(tài)轉(zhuǎn)換器(Weighted Finite State Transducer—簡(jiǎn)稱WFST)的搜索空間,將各種知識(shí)源有機(jī)融入到統(tǒng)一的WFST網(wǎng)絡(luò)(也稱WFST搜索空間)中??紤]到后者便于引入不同的知識(shí)源、并且可以提高搜索效率,是本申請(qǐng)技術(shù)方案進(jìn)行語音識(shí)別的優(yōu)選方式,因此在本申請(qǐng)?zhí)峁┑膶?shí)施例中重點(diǎn)描述基于WFST網(wǎng)絡(luò)的實(shí)施方式。
所述WFST搜索空間,其核心是利用加權(quán)有限狀態(tài)轉(zhuǎn)換器來模擬語言的文法結(jié)構(gòu)以及相關(guān)的聲學(xué)特性。具體操作方法是:將處于不同層次的知識(shí)源分別用WFST的形式表示,然后運(yùn)用WFST的特性及合并算法,將上述處于不同層次的WFST整合成一個(gè)單一的WFST網(wǎng)絡(luò),構(gòu)成用于進(jìn)行語音識(shí)別的搜索空間。
WFST網(wǎng)絡(luò)的基本單元(即驅(qū)動(dòng)WFST進(jìn)行狀態(tài)轉(zhuǎn)換的基本輸入單元)可以根據(jù)具體的需求進(jìn)行選擇。考慮音素上下文對(duì)音素發(fā)音的影響,為了獲得更高的識(shí)別準(zhǔn)確率,在本申請(qǐng)?zhí)峁┑膶?shí)施例中采用上下文相關(guān)的三音素(Context Dependent triphone,簡(jiǎn)稱三音素或者三音子)作為WFST網(wǎng)絡(luò)的基本單元,相應(yīng)的構(gòu)建WFST搜索空間的知識(shí)源包括:三音素狀態(tài)綁定列表、發(fā)音詞典、以及語言模型。
所述三音素狀態(tài)綁定列表通常包含各三音素彼此之間基于發(fā)音特點(diǎn)的綁定關(guān)系,通常在以三音素為建模單位訓(xùn)練聲學(xué)模型時(shí),由于三音素可能的組合方式數(shù)目眾多,為了減少對(duì)訓(xùn)練數(shù)據(jù)的要求,通??梢曰诎l(fā)音特點(diǎn)、采用決策樹聚類方法在最大似然準(zhǔn)則下對(duì)不同的三音素進(jìn)行聚類,并使用捆綁技術(shù)把具有相同發(fā)音特點(diǎn)的三音素綁定到一起以便進(jìn)行參數(shù)共享,從而得到所述三音素狀態(tài)綁定列表;所述發(fā)音詞典通常包含音素與詞之間的對(duì)應(yīng)關(guān)系,是橋接在聲學(xué)層(物理層)和語義層之間的橋梁,讓聲學(xué)層的內(nèi)容和語義層的內(nèi)容耦合關(guān)聯(lián)在一起;所述語言模型則提供了語言結(jié)構(gòu)的相關(guān)知識(shí),用于計(jì)算詞序列在自然語言中出現(xiàn)的概率,在具體實(shí)施中通常采用n元(n-gram)文法語言模型,具體可以通過統(tǒng)計(jì)單詞之間相互跟隨出現(xiàn)的可能性來建模。
采用基于上述知識(shí)源構(gòu)建的WFST網(wǎng)絡(luò)進(jìn)行語音識(shí)別時(shí),為了驅(qū)動(dòng)WFST進(jìn)行所需的搜索,可以先提取待識(shí)別語音信號(hào)的特征矢量序列,然后利用預(yù)先訓(xùn)練好的模型計(jì)算從特征矢量對(duì)應(yīng)于各三音素的概率,并根據(jù)所述各三音素的概率,在WFST搜索空間中執(zhí)行解碼操作,得到與待識(shí)別語音信號(hào)對(duì)應(yīng)的詞序列。
需要說明的是,在本申請(qǐng)?zhí)峁┑膶?shí)施例中采用上下文相關(guān)的三音素作為WFST網(wǎng)絡(luò)的基本單元,在其他實(shí)施方式中,也可以采用其他語音單位作為WFST網(wǎng)絡(luò)的基本單元,例如:?jiǎn)我羲?、或者三音素狀態(tài)等。采用不同的基本單元,在構(gòu)建搜索空間時(shí)、以及根據(jù)特征矢量計(jì)算概率時(shí)會(huì)有一定的差別,例如以三音素狀態(tài)作為基本單元,那么在構(gòu)建WFST網(wǎng)絡(luò)時(shí)可以融合基于HMM的聲學(xué)模型,在進(jìn)行語音識(shí)別時(shí),則可以計(jì)算特征矢量對(duì)應(yīng)于各三音素狀態(tài)的概率。上述這些都是具體實(shí)施方式的變更,只要在構(gòu)建搜索空間的過程中包含了客戶端預(yù)設(shè)信息,就同樣可以實(shí)現(xiàn)本申請(qǐng)的技術(shù)方案,就都不偏離本申請(qǐng)的技術(shù)核心,也都在本申請(qǐng)的保護(hù)范圍之內(nèi)。
下面,對(duì)本申請(qǐng)的實(shí)施例進(jìn)行詳細(xì)說明。請(qǐng)參考圖1,其為本申請(qǐng)的一種語 音識(shí)別方法的實(shí)施例的流程圖。所述方法包括步驟101至步驟104,在具體實(shí)施時(shí),為了提高執(zhí)行效率,通??梢栽诓襟E101之前完成相關(guān)的準(zhǔn)備工作(此階段也可以稱作準(zhǔn)備階段),生成基于類的語言模型、預(yù)設(shè)結(jié)構(gòu)的WFST以及用于進(jìn)行語音識(shí)別的聲學(xué)模型等,從而為步驟101的執(zhí)行做好準(zhǔn)備。下面先對(duì)準(zhǔn)備階段作詳細(xì)說明。
在準(zhǔn)備階段可以采用如下方式訓(xùn)練語言模型:將用于訓(xùn)練語言模型的文本中的預(yù)設(shè)命名實(shí)體替換為與預(yù)設(shè)主題類別對(duì)應(yīng)的標(biāo)簽,并利用所述文本訓(xùn)練語言模型。所述命名實(shí)體通常是指文本中具有特定類別的實(shí)體,例如:人名、歌曲名、機(jī)構(gòu)名、地名等。
下面以撥打電話應(yīng)用為例進(jìn)行說明:預(yù)設(shè)主題類別為撥打電話,對(duì)應(yīng)的標(biāo)簽為“$CONTACT”,預(yù)設(shè)命名實(shí)體為人名,那么在預(yù)先訓(xùn)練語言模型時(shí),可以將訓(xùn)練文本中的人名替換為對(duì)應(yīng)的標(biāo)簽,比如將“我要打電話給小明”中的“小明”替換為“$CONTACT”,然后得到的訓(xùn)練文本為“我要打電話給$CONTACT”。采用進(jìn)行上述實(shí)體替換之后的文本訓(xùn)練語言模型,得到基于類的語言模型。在訓(xùn)練得到上述語言模型的基礎(chǔ)上,還可以預(yù)先生成基于語言模型的WFST,以下簡(jiǎn)稱為G結(jié)構(gòu)的WFST。
優(yōu)選地,為了縮減語言模型以及對(duì)應(yīng)的G結(jié)構(gòu)的WFST的規(guī)模,在預(yù)先訓(xùn)練語言模型時(shí),可以選用針對(duì)所述預(yù)設(shè)主題類別的文本(也可以稱為基于類的訓(xùn)練文本)進(jìn)行訓(xùn)練,例如,預(yù)設(shè)主題類別為撥打電話,那么針對(duì)所述預(yù)設(shè)主題類別的文本可以包括:我要打電話給小明,給小明打個(gè)電話等等。
考慮到客戶端設(shè)備以及以語音作為人機(jī)交互媒介的應(yīng)用程序的多樣性,可以預(yù)設(shè)兩個(gè)或者兩個(gè)以上的主題類別,并針對(duì)每種主題類別分別預(yù)先訓(xùn)練基于類的語言模型、并構(gòu)建基于所述語言模型的G結(jié)構(gòu)WFST。
在準(zhǔn)備階段還可以預(yù)先構(gòu)建基于發(fā)音詞典的WFST,簡(jiǎn)稱為L(zhǎng)結(jié)構(gòu)的WFST,以及基于三音素狀態(tài)綁定列表的WFST,簡(jiǎn)稱為C結(jié)構(gòu)的WFST,并采用預(yù)設(shè)的方式對(duì)上述各WFST進(jìn)行有針對(duì)性的、選擇性地合并操作,例如:可以將C結(jié)構(gòu)與L結(jié)構(gòu)的WFST合并為CL結(jié)構(gòu)的WFST,也可以將L結(jié)構(gòu)與G結(jié)構(gòu)的WFST合并為L(zhǎng)G結(jié)構(gòu)的WFST,還可以將C結(jié)構(gòu)、L結(jié)構(gòu)以及G結(jié)構(gòu)的WFST合并為CLG結(jié)構(gòu)的WFST。本實(shí)施例在準(zhǔn)備階段生成了CL結(jié)構(gòu)的WFST以及G結(jié)構(gòu)的WFST(關(guān)于合并操作的說明可以參見步驟101中的相關(guān)文字)。
此外,在準(zhǔn)備階段還可以預(yù)先訓(xùn)練用于進(jìn)行語音識(shí)別的聲學(xué)模型。在本實(shí)施例中,每個(gè)三音素用一個(gè)HMM(Hidden Markov Model—隱馬爾可夫模型)表征,HMM的隱含狀態(tài)為三音素中的一個(gè)狀態(tài)(每個(gè)三音素通常包含三個(gè)狀態(tài)),采用GMM(Gaussian mixture model—高斯混合模型)模型確定HMM中每個(gè)隱含狀態(tài)輸出各特征矢量的發(fā)射概率,以從大量語音數(shù)據(jù)中提取的特征矢量作為訓(xùn)練樣本,采用Baum-Welch算法學(xué)習(xí)GMM模型和HMM模型的參數(shù),可以得到對(duì)應(yīng)于每個(gè)狀態(tài)的GMM模型以及對(duì)應(yīng)于每個(gè)三音素的HMM模型。在后續(xù)步驟103中則可以使用預(yù)先訓(xùn)練好的GMM和HMM模型計(jì)算特征矢量對(duì)應(yīng)于各三音素的概率。
為了提升語音識(shí)別的準(zhǔn)確率,本實(shí)施例在進(jìn)行語音識(shí)別時(shí)用DNN(Deep Neural Networks—深度神經(jīng)網(wǎng)絡(luò))模型替代了GMM模型,相應(yīng)的,在準(zhǔn)備階段可以預(yù)先訓(xùn)練用于根據(jù)輸入的特征矢量輸出對(duì)應(yīng)于各三音素狀態(tài)概率的DNN模型。在具體實(shí)施時(shí),可以在訓(xùn)練GMM和HMM模型的基礎(chǔ)上,通過對(duì)訓(xùn)練樣本進(jìn)行強(qiáng)制對(duì)齊的方式、為訓(xùn)練樣本添加對(duì)應(yīng)于各三音素狀態(tài)的標(biāo)簽,并用打好標(biāo)簽的訓(xùn)練樣本訓(xùn)練得到所述DNN模型。
需要說明的是,在具體實(shí)施時(shí),由于準(zhǔn)備階段的運(yùn)算量比較大,對(duì)內(nèi)存以及計(jì)算速度的要求相對(duì)較高,因此準(zhǔn)備階段的操作通常是在服務(wù)器端完成的。為了在沒有網(wǎng)絡(luò)接入環(huán)境的情況下依然能夠完成語音識(shí)別功能,本申請(qǐng)?zhí)峁┑姆椒ㄍǔT诳蛻舳嗽O(shè)備上實(shí)施,因此準(zhǔn)備階段生成的各WFST以及用于進(jìn)行聲學(xué)概率計(jì)算的各模型,可以預(yù)先安裝到客戶端設(shè)備中,例如:與應(yīng)用程序一起打包并安裝到客戶端。
至此,對(duì)本實(shí)施例涉及的準(zhǔn)備階段進(jìn)行了詳細(xì)說明,下面對(duì)本實(shí)施例的具體步驟101至104做詳細(xì)說明。
步驟101、利用預(yù)設(shè)的語音知識(shí)源,生成包含客戶端預(yù)設(shè)信息的、用于對(duì)語音信號(hào)進(jìn)行解碼的搜索空間。
本步驟構(gòu)建WFST搜索空間,為后續(xù)的語音識(shí)別做好準(zhǔn)備。在具體實(shí)施時(shí),本步驟通常在用語音作為人機(jī)交互媒介的客戶端應(yīng)用程序的啟動(dòng)階段(也稱為初始化階段)執(zhí)行,通過替換標(biāo)簽的方式,向預(yù)先生成的至少基于語言模型的加權(quán)有限狀態(tài)轉(zhuǎn)換器中添加與預(yù)設(shè)主題類別對(duì)應(yīng)的客戶端預(yù)設(shè)信息,并得到基于三音素狀態(tài)綁定列表、發(fā)音詞典、以及語言模型的單一加權(quán)有限狀態(tài)轉(zhuǎn)換器。
本步驟的處理過程可以包括以下步驟101-1至101-4,下面結(jié)合圖2做進(jìn)一步說明。
步驟101-1、確定待識(shí)別語音信號(hào)所屬的預(yù)設(shè)主題類別。
在具體實(shí)施時(shí),可以根據(jù)采集所述語音信號(hào)的客戶端類型、或應(yīng)用程序確定所述所屬的預(yù)設(shè)主題類別。所述預(yù)設(shè)主題類別包括:撥打電話、發(fā)送短信、播放樂曲、設(shè)置指令、或者其他應(yīng)用場(chǎng)景相關(guān)的主題類別。其中,與撥打電話或發(fā)送短信對(duì)應(yīng)的客戶端預(yù)設(shè)信息包括:通訊錄中的聯(lián)系人名稱;與播放樂曲對(duì)應(yīng)的客戶端預(yù)設(shè)信息包括:曲庫中的樂曲名稱;與設(shè)置指令對(duì)應(yīng)的客戶端預(yù)設(shè)信息包括:指令集中的指令;對(duì)于其他應(yīng)用場(chǎng)景相關(guān)的主題類別,也同樣可以與應(yīng)用場(chǎng)景所涉及的客戶端預(yù)設(shè)信息相對(duì)應(yīng),此處不再一一贅述。
例如:對(duì)于智能手機(jī),可以根據(jù)客戶端類型確定待識(shí)別語音信號(hào)所屬的預(yù)設(shè)主題類別為:撥打電話或發(fā)送短信,相應(yīng)的客戶端預(yù)設(shè)信息為通訊錄中的聯(lián)系人名稱;對(duì)于智能音箱,可以確定主題類別為:播放樂曲,相應(yīng)的客戶端預(yù)設(shè)信息為曲庫中的樂曲名稱;對(duì)于機(jī)器人,可以確定主題類別為:設(shè)置指令,相應(yīng)的客戶端預(yù)設(shè)信息為指令集中的指令。
考慮到客戶端設(shè)備可以同時(shí)具有多個(gè)用語音作為人機(jī)交互媒介的應(yīng)用,不同的應(yīng)用涉及不同的客戶端預(yù)設(shè)信息,例如:智能手機(jī)也可以安裝基于語音交互的音樂播放器,在這種情況下可以根據(jù)當(dāng)前啟動(dòng)的應(yīng)用程序確定待識(shí)別語音信號(hào)所屬的預(yù)設(shè)主題類別。
步驟101-2、選擇預(yù)先生成的、與所述預(yù)設(shè)主題類別相對(duì)應(yīng)的G結(jié)構(gòu)WFST。
對(duì)于存在多個(gè)預(yù)設(shè)主題類別的情況,在準(zhǔn)備階段通常會(huì)生成多個(gè)G結(jié)構(gòu)WFST,每個(gè)G結(jié)構(gòu)WFST分別與不同的預(yù)設(shè)主題類別相對(duì)應(yīng)。本步驟從預(yù)先生成的多個(gè)G結(jié)構(gòu)WFST中選擇與步驟101-1所確定的預(yù)設(shè)主題類別相對(duì)應(yīng)的G結(jié)構(gòu)WFST。
步驟101-3、通過用與所述預(yù)設(shè)主題類別對(duì)應(yīng)的客戶端預(yù)設(shè)信息替換相應(yīng)標(biāo)簽的方式,向所選的G結(jié)構(gòu)WFST中添加客戶端預(yù)設(shè)信息。
在準(zhǔn)備階段針對(duì)每種預(yù)設(shè)主題類別訓(xùn)練基于類的語言模型時(shí),將訓(xùn)練文本中的預(yù)設(shè)命名實(shí)體替換為了與相應(yīng)主題類別對(duì)應(yīng)的標(biāo)簽,例如主題類別為撥打電話或發(fā)送短信,將訓(xùn)練文本中的人名替換為“$CONTACT”標(biāo)簽,主題類別為播放樂曲,將訓(xùn)練文本中的樂曲名稱替換為“$SONG”標(biāo)簽,因此,生成的 G結(jié)構(gòu)的WFST中通常包含與預(yù)設(shè)主題類別對(duì)應(yīng)的標(biāo)簽信息。本步驟用與步驟101-1所確定的預(yù)設(shè)主題類別對(duì)應(yīng)的客戶端預(yù)設(shè)信息,替換步驟101-2所選G結(jié)構(gòu)WFST中的相應(yīng)標(biāo)簽,從而實(shí)現(xiàn)向所選G結(jié)構(gòu)WFST中添加客戶端預(yù)設(shè)信息的目的。
例如,主題類別為撥打電話或者發(fā)送短信,則可以將G結(jié)構(gòu)WFST中的“$CONTACT”標(biāo)簽替換為客戶端本地通訊錄中的聯(lián)系人名稱,如“張三”、“李四”等;主題類別為播放樂曲,則可以將G結(jié)構(gòu)WFST中的“$SONG”標(biāo)簽替換為客戶端本地曲庫中的歌曲名稱,如“義勇軍進(jìn)行曲”等。具體的替換,可以通過將與所述標(biāo)簽對(duì)應(yīng)的狀態(tài)轉(zhuǎn)移鏈路替換為若干組并行的狀態(tài)轉(zhuǎn)移鏈路的方式實(shí)現(xiàn)。請(qǐng)參見圖3和圖4給出的用客戶端通訊錄中的聯(lián)系人進(jìn)行替換的例子,其中圖3為替換前的G結(jié)構(gòu)WFST的示意圖,圖4為用通訊錄中的“張三”和“李四”進(jìn)行替換后得到的G結(jié)構(gòu)WFST的示意圖。
步驟101-4、將添加了客戶端預(yù)設(shè)信息的G結(jié)構(gòu)的WFST、與預(yù)先生成的CL結(jié)構(gòu)的WFST進(jìn)行合并,得到單一的WFST網(wǎng)絡(luò)。
在本實(shí)施例中,語音識(shí)別所用到的知識(shí)源涉及從語言層(語言模型)到物理層(三音素狀態(tài)綁定列表)的內(nèi)容,本步驟的任務(wù)是將不同層次的WFST合并(也稱為組合、結(jié)合)到一起,得到單一的WFST網(wǎng)絡(luò)。
對(duì)于兩個(gè)WFST,進(jìn)行合并的基本條件是:其中一個(gè)WFST的輸出符號(hào)是另外一個(gè)WFST輸入符號(hào)集合的子集。在滿足上述要求的前提下,如果將兩個(gè)WFST,例如分別為A和B,整合成一個(gè)新的WFST:C,那么C的每個(gè)狀態(tài)都由A的狀態(tài)和B的狀態(tài)組成,C的每個(gè)成功路經(jīng),都由A的成功路經(jīng)Pa和B的成功路徑Pb組成,輸入為i[P]=i[Pa],輸出為o[P]=o[Pb],其加權(quán)值為由Pa和Pb的加權(quán)值進(jìn)行相應(yīng)運(yùn)算后得到,最后得到的C包含A和B共有的有限狀態(tài)轉(zhuǎn)換器特性以及搜索空間。在具體實(shí)施時(shí),可以采用OpenFst庫提供的合并算法完成兩個(gè)WFST的合并操作。
具體到本實(shí)施例,可以這樣理解,L結(jié)構(gòu)的WFST可以看作是單音素與詞之間的對(duì)應(yīng)關(guān)系,C結(jié)構(gòu)的WFST則在三音素與單音素之間建立對(duì)應(yīng)關(guān)系,其輸出和L結(jié)構(gòu)WFST的輸入相互對(duì)應(yīng),可以進(jìn)行合并,在本實(shí)施例的準(zhǔn)備階段已經(jīng)通過合并得到了CL結(jié)構(gòu)的WFST,本步驟將所述CL結(jié)構(gòu)的WFST與步驟101-3中添加了客戶端預(yù)設(shè)信息的G結(jié)構(gòu)WFST進(jìn)行合并,得到了一個(gè)輸入為 三音素概率,輸出為詞序列的WFST網(wǎng)絡(luò),從而將處于不同層次的分別對(duì)應(yīng)不同知識(shí)源的WFST,整合為一個(gè)單一的WFST網(wǎng)絡(luò),構(gòu)成了用于進(jìn)行語音識(shí)別的搜索空間。
優(yōu)選地,為了加快CL結(jié)構(gòu)WFST和G結(jié)構(gòu)WFST的合并速度,減少初始化的耗時(shí),本實(shí)施例在執(zhí)行所述合并操作時(shí)沒有采用常規(guī)的WFST合并方法,而是采用了基于預(yù)測(cè)的合并方法(lookahead合并方法)。所述lookahead合并方法,即在兩個(gè)WFST的合并過程中,通過對(duì)未來路徑的預(yù)測(cè),判斷當(dāng)前執(zhí)行的合并操作是否會(huì)導(dǎo)致無法到達(dá)的最終狀態(tài)(non-coaccessible state),如果是,則阻塞當(dāng)前操作、不再執(zhí)行后續(xù)的合并操作。通過預(yù)測(cè)可以提前終止沒有必要的合并操作,不僅可以節(jié)省合并時(shí)間,而且可以縮減最終生成的WFST的規(guī)模,減少對(duì)存儲(chǔ)空間的占用。具體實(shí)施時(shí),可以采用OpenFst庫提供的具備lookahead功能的過濾器(filter),實(shí)現(xiàn)上述預(yù)測(cè)篩選功能。
優(yōu)選地,為了加快CL結(jié)構(gòu)WFST和G結(jié)構(gòu)WFST的合并速度,在本實(shí)施例中預(yù)先訓(xùn)練所述語言模型所采用的詞表與所述發(fā)音詞典包含的詞是一致的。一般而言,詞表中的詞的數(shù)目通常大于發(fā)音詞典中的詞的數(shù)目,而詞表中的詞的數(shù)目和G結(jié)構(gòu)的WFST的大小有直接關(guān)系,如果G結(jié)構(gòu)的WFST比較大,和CL結(jié)構(gòu)的WFST進(jìn)行合并就比較耗時(shí),所以本實(shí)施例在準(zhǔn)備階段訓(xùn)練語言模型時(shí),縮減了詞表的規(guī)模,讓詞表中的詞與發(fā)音詞典中的詞保持一致,從而達(dá)到了縮減CL結(jié)構(gòu)WFST和G結(jié)構(gòu)WFST的合并時(shí)間的效果。
至此,通過步驟101-1至101-4,完成了本技術(shù)方案的初始化過程,生成了包含客戶端預(yù)設(shè)信息的WFST搜索空間。
需要說明的是,本實(shí)施例在準(zhǔn)備階段預(yù)先完成CL結(jié)構(gòu)的WFST的合并、并生成G結(jié)構(gòu)的WFST,在本步驟101中則向G結(jié)構(gòu)WFST中添加客戶端預(yù)設(shè)信息,并將CL結(jié)構(gòu)和G結(jié)構(gòu)合并得到單一的WFST。在其他實(shí)施方式中,也可以采用其他合并策略,例如,在準(zhǔn)備階段預(yù)先完成LG結(jié)構(gòu)的WFST的合并,在本步驟101中向該WFST中添加客戶端預(yù)設(shè)信息,然后再與準(zhǔn)備階段生成的C結(jié)構(gòu)WFST進(jìn)行合并;或者,在準(zhǔn)備階段直接完成CLG結(jié)構(gòu)的WFST的合并,并在本步驟101中向該WFST中添加客戶端預(yù)設(shè)信息也是可以的??紤]到準(zhǔn)備階段生成的WFST要占據(jù)客戶端的存儲(chǔ)空間,在有多個(gè)基于類的語言模型(相應(yīng)有多個(gè)G結(jié)構(gòu)的WFST)的應(yīng)用場(chǎng)景中,如果在準(zhǔn)備階段將每個(gè)G結(jié)構(gòu)WFST與其他WFST進(jìn)行合并,將占據(jù)較大存儲(chǔ)空間,因此本實(shí)施例采取的合并方式 是優(yōu)選實(shí)施方式,可以減少在準(zhǔn)備階段生成的WFST對(duì)客戶端存儲(chǔ)空間的占用。
步驟102、提取待識(shí)別語音信號(hào)的特征矢量序列。
待識(shí)別語音信號(hào)通常是時(shí)域信號(hào),本步驟通過分幀和提取特征矢量?jī)蓚€(gè)處理過程,獲取能夠表征所述語音信號(hào)的特征矢量序列,下面結(jié)合附圖5做進(jìn)一步說明。
步驟102-1、按照預(yù)先設(shè)定的幀長(zhǎng)度對(duì)待識(shí)別語音信號(hào)進(jìn)行分幀處理,得到多個(gè)音頻幀。
在具體實(shí)施時(shí),可以根據(jù)需求預(yù)先設(shè)定幀長(zhǎng)度,例如可以設(shè)置為10ms、或者15ms,然后根據(jù)所述幀長(zhǎng)度對(duì)待識(shí)別語音信號(hào)進(jìn)行逐幀切分,從而將語音信號(hào)切分為多個(gè)音頻幀。根據(jù)所采用的切分策略的不同,相鄰音頻幀可以不存在交疊、也可以是有交疊的。
步驟102-2、提取各音頻幀的特征矢量,得到所述特征矢量序列。
將待識(shí)別語音信號(hào)切分為多個(gè)音頻幀后,可以逐幀提取能夠表征所述語音信號(hào)的特征矢量。由于語音信號(hào)在時(shí)域上的描述能力相對(duì)較弱,通??梢葬槍?duì)每個(gè)音頻幀進(jìn)行傅里葉變換,然后提取頻域特征作為音頻幀的特征矢量,例如,可以提取MFCC(Mel Frequency Cepstrum Coefficient—梅爾頻率倒譜系數(shù))特征、PLP(Perceptual Linear Predictive—感知線性預(yù)測(cè))特征、或者LPC(Linear Predictive Coding—線性預(yù)測(cè)編碼)特征等。
下面以提取某一音頻幀的MFCC特征為例,對(duì)特征矢量的提取過程作進(jìn)一步描述。首先將音頻幀的時(shí)域信號(hào)通過FFT(Fast Fourier Transformation—快速傅氏變換)得到對(duì)應(yīng)的頻譜信息,將所述頻譜信息通過Mel濾波器組得到Mel頻譜,在Mel頻譜上進(jìn)行倒譜分析,其核心一般是采用DCT(Discrete Cosine Transform—離散余弦變換)進(jìn)行逆變換,然后取預(yù)設(shè)的N個(gè)系數(shù)(例如N=12或者38),則得到了所述音頻幀的特征矢量:MFCC特征。對(duì)每個(gè)音頻幀都采用上述方式進(jìn)行處理,可以得到表征所述語音信號(hào)的一系列特征矢量,即本申請(qǐng)所述的特征矢量序列。
步驟103、計(jì)算特征矢量對(duì)應(yīng)于搜索空間基本單元的概率。
在本實(shí)施例中,WFST搜索空間基本單元是三音素,因此本步驟計(jì)算特征矢量對(duì)應(yīng)于各三音素的概率。為了提高語音識(shí)別的準(zhǔn)確率,本實(shí)施例采用HMM模型和具備強(qiáng)大特征提取能力的DNN模型計(jì)算所述概率,在其他實(shí)施方式中, 也可以采用其他方式,例如:采用傳統(tǒng)的GMM和HMM模型計(jì)算所述概率也同樣可以實(shí)現(xiàn)本申請(qǐng)的技術(shù)方案,也在本申請(qǐng)的保護(hù)范圍之內(nèi)。
在具體實(shí)施時(shí),可以在計(jì)算特征矢量對(duì)應(yīng)于各三音素狀態(tài)的基礎(chǔ)上,進(jìn)一步計(jì)算特征矢量對(duì)應(yīng)于各三音素的概率,下面結(jié)合附圖6,對(duì)本步驟的處理過程作進(jìn)一步描述。
步驟103-1、采用預(yù)先訓(xùn)練的DNN模型計(jì)算特征矢量對(duì)應(yīng)于各三音素狀態(tài)的概率。
在本實(shí)施例的準(zhǔn)備階段已經(jīng)預(yù)先訓(xùn)練好了DNN模型,本步驟以步驟102提取的特征矢量作為所述DNN模型的輸入,則可以得到特征矢量對(duì)應(yīng)于各三音素狀態(tài)的概率。例如:三音素的數(shù)量為1000,每個(gè)三音素包含3個(gè)狀態(tài),那么總共有3000個(gè)三音素狀態(tài),本步驟DNN模型輸出:特征矢量對(duì)應(yīng)于3000個(gè)三音素狀態(tài)中每一狀態(tài)的概率。
優(yōu)選地,由于采用DNN模型涉及的計(jì)算量通常很大,本實(shí)施例通過利用硬件平臺(tái)提供的數(shù)據(jù)并行處理能力提升采用DNN模型進(jìn)行計(jì)算的速度。例如,目前嵌入式設(shè)備和移動(dòng)設(shè)備用的比較多的是ARM架構(gòu)平臺(tái),在現(xiàn)行的大多數(shù)ARM平臺(tái)上,都有SIMD(single instruction multiple data—單指令多數(shù)據(jù)流)的NEON指令集,該指令集可以在一個(gè)指令中處理多個(gè)數(shù)據(jù),具備一定的數(shù)據(jù)并行處理能力,在本實(shí)施例中通過矢量化編程可以形成單指令流多數(shù)據(jù)流的編程泛型,從而可以充分利用硬件平臺(tái)提供的數(shù)據(jù)并行處理能力,實(shí)現(xiàn)加速DNN計(jì)算的目的。
在客戶端設(shè)備上實(shí)施本申請(qǐng)技術(shù)方案時(shí),為了能夠與客戶端的硬件能力相匹配,通常會(huì)縮減DNN模型的規(guī)模,這樣往往會(huì)導(dǎo)致DNN模型的精確度下降,對(duì)不同語音內(nèi)容的識(shí)別能力也會(huì)隨著下降。本實(shí)施例由于利用硬件加速機(jī)制,則可以不縮減或者盡量少縮減DNN模型的規(guī)模,從而可以最大限度地保留DNN模型的精確性,提高識(shí)別準(zhǔn)確率。
步驟103-2、根據(jù)特征矢量對(duì)應(yīng)于所述各三音素狀態(tài)的概率,采用預(yù)先訓(xùn)練的HMM模型計(jì)算特征矢量對(duì)應(yīng)于各三音素的概率。
在準(zhǔn)備階段已經(jīng)訓(xùn)練好了針對(duì)每個(gè)三音素的HMM模型,本步驟根據(jù)連續(xù)輸入的若干個(gè)特征矢量對(duì)應(yīng)于各三音素狀態(tài)的概率,利用HMM模型計(jì)算對(duì)應(yīng)于各三音素的轉(zhuǎn)移概率,從而得到特征矢量對(duì)應(yīng)于各三音素的概率。
該計(jì)算過程實(shí)際上就是根據(jù)連續(xù)的特征矢量在各HMM上的傳播過程計(jì)算相應(yīng)轉(zhuǎn)移概率的過程,下面以計(jì)算針對(duì)某一三音素(包括3個(gè)狀態(tài))的概率為例對(duì)計(jì)算過程作進(jìn)一步說明,其中,pe(i,j)表示第i幀特征矢量在第j個(gè)狀態(tài)上的發(fā)射概率,pt(h,k)表示從h狀態(tài)轉(zhuǎn)移到k狀態(tài)的轉(zhuǎn)移概率:
1)第一幀的特征矢量對(duì)應(yīng)于相應(yīng)HMM的狀態(tài)1,具有發(fā)射概率pe(1,1);
2)對(duì)于第二幀的特征矢量,如果從所述HMM的狀態(tài)1轉(zhuǎn)移到狀態(tài)1,對(duì)應(yīng)的概率為pe(1,1)*pt(1,1)*pe(2,1),如果從狀態(tài)1轉(zhuǎn)移到狀態(tài)2,對(duì)應(yīng)的概率為pe(1,1)*pt(1,2)*pe(2,2),根據(jù)上述概率判斷轉(zhuǎn)移到狀態(tài)1還是狀態(tài)2;
3)對(duì)于第三幀的特征矢量以及后續(xù)幀的特征矢量也采用上述類似的計(jì)算方式,直到從狀態(tài)3轉(zhuǎn)移出去,至此在所述HMM上的傳播結(jié)束,從而得到了連續(xù)多幀的特征矢量針對(duì)該HMM的概率,即:對(duì)應(yīng)于該HMM表征的三音素的概率。
針對(duì)連續(xù)輸入的特征矢量,采用上述方式計(jì)算在各HMM上傳播的轉(zhuǎn)移概率,從而得到對(duì)應(yīng)于各三音素的概率。
步驟104、以所述概率為輸入、在所述搜索空間中執(zhí)行解碼操作,得到與所述特征矢量序列對(duì)應(yīng)的詞序列。
根據(jù)步驟103輸出的特征矢量對(duì)應(yīng)于各三音素的概率,在WFST網(wǎng)絡(luò)中執(zhí)行解碼操作,得到與所述特征矢量序列對(duì)應(yīng)的詞序列。該過程通常為執(zhí)行圖搜索、找到得分最高的路徑的搜索過程。常用的搜索方法是維特比算法,它的好處在于采用動(dòng)態(tài)規(guī)劃的方法節(jié)省了計(jì)算量,也可以做到時(shí)間同步解碼。
考慮到在實(shí)際解碼過程中,由于搜索空間巨大,維特比算法的計(jì)算量仍然很大,為了減少計(jì)算量、提高計(jì)算速度,在解碼過程中并不是把所有路徑的可能的后續(xù)路徑都展開,而是只展開那些在最優(yōu)路徑附近的路徑,即:可以在采用維特比算法進(jìn)行搜索的過程中,采用適當(dāng)?shù)募糁Σ呗砸蕴岣咚阉餍剩纾嚎梢圆捎镁S特比柱搜索算法或者是采用直方圖剪枝策略等。
至此,通過解碼得到了與特征矢量序列對(duì)應(yīng)的詞序列,即,獲取了待識(shí)別語音信號(hào)對(duì)應(yīng)的識(shí)別結(jié)果。由于在步驟101構(gòu)建用于進(jìn)行語音識(shí)別的搜索空間時(shí),添加了客戶端預(yù)設(shè)信息,因此上述語音識(shí)別過程通??梢员容^準(zhǔn)確地識(shí)別出與客戶端本地信息相關(guān)的語音內(nèi)容。
考慮到客戶端本地信息有可能被用戶修改或者刪除,為了進(jìn)一步保證通過 上述解碼過程獲得的詞序列的準(zhǔn)確性,本實(shí)施例還提供一種優(yōu)選實(shí)施方式:通過與所述客戶端預(yù)設(shè)信息進(jìn)行文字匹配驗(yàn)證所述詞序列的準(zhǔn)確性,并根據(jù)驗(yàn)證結(jié)果生成相應(yīng)的語音識(shí)別結(jié)果。
在具體實(shí)施時(shí),上述優(yōu)選實(shí)施方式可以包括以下所列的步驟104-1至步驟104-4,下面結(jié)合附圖7做進(jìn)一步說明。
步驟104-1、從所述詞序列中選擇對(duì)應(yīng)于所述客戶端預(yù)設(shè)信息的待驗(yàn)證詞。
例如:針對(duì)打電話應(yīng)用,所述客戶端預(yù)設(shè)信息為通訊錄中的聯(lián)系人名稱,語音識(shí)別的結(jié)果為詞序列“給小明打電話”,那么通過與模板匹配的方式或者語法解析過程,可以確定所述詞序列中的“小明”是與客戶端預(yù)設(shè)信息對(duì)應(yīng)的待驗(yàn)證詞。
步驟104-2、在所述客戶端預(yù)設(shè)信息中查找所述待驗(yàn)證詞,若找到,判定通過準(zhǔn)確性驗(yàn)證,執(zhí)行步驟104-3,否則執(zhí)行步驟104-4。
本步驟通過執(zhí)行文字層面的精準(zhǔn)匹配,判斷所述待驗(yàn)證詞是否屬于相對(duì)應(yīng)的客戶端預(yù)設(shè)信息,從而驗(yàn)證所述詞序列的準(zhǔn)確性。
仍沿用步驟104-1中的例子,本步驟在客戶端通訊錄中查找是否存在“小明”這個(gè)聯(lián)系人,即:通訊錄中與聯(lián)系人名稱相關(guān)的信息中是否包含“小明”這一字符串,若包含,則判定通過準(zhǔn)確性驗(yàn)證,繼續(xù)執(zhí)行步驟104-3,否則,轉(zhuǎn)到步驟104-4執(zhí)行。
步驟104-3、將所述詞序列作為語音識(shí)別結(jié)果。
執(zhí)行到本步驟,說明通過解碼得到的詞序列中所包含的待驗(yàn)證詞,與客戶端預(yù)設(shè)信息是相吻合的,可以將所述詞序列作為語音識(shí)別結(jié)果輸出,從而觸發(fā)使用該語音識(shí)別結(jié)果的應(yīng)用程序執(zhí)行相應(yīng)的操作。
步驟104-4、通過基于拼音的模糊匹配方式修正所述詞序列,并將修正后的詞序列作為語音識(shí)別結(jié)果。
執(zhí)行到本步驟,通常說明所述通過解碼得到的詞序列中所包含的待驗(yàn)證詞,與客戶端預(yù)設(shè)信息是不相吻合的,如果將該詞序列作為語音識(shí)別結(jié)果輸出,那么相關(guān)應(yīng)用程序通常無法執(zhí)行正確的操作,因此在這種情況下,可以通過拼音層面的模糊匹配對(duì)所述詞序列進(jìn)行必要的修正。
在具體實(shí)施時(shí),可以通過如下方式實(shí)現(xiàn)上述修正功能:通過查找發(fā)音詞典,將所述待驗(yàn)證詞轉(zhuǎn)換為待驗(yàn)證拼音序列,將所述客戶端預(yù)設(shè)信息中的各個(gè)詞也 分別轉(zhuǎn)換為比對(duì)拼音序列,然后依次計(jì)算所述待驗(yàn)證拼音序列與各比對(duì)拼音序列之間的相似度,并從所述客戶端預(yù)設(shè)信息中選擇按照相似度從高到低排序靠前的詞,最后用所選詞替換所述詞序列中的待驗(yàn)證詞,得到所述修正后的詞序列。
在具體實(shí)施時(shí)可以采用不同的方式計(jì)算兩個(gè)拼音序列之間的相似度,本實(shí)施例采用基于編輯距離計(jì)算所述相似度的方式,例如:用兩個(gè)拼音序列之間的編輯距離與1相加求和的倒數(shù)作為所述相似度。所述編輯距離(Edit Distance),是指兩個(gè)字串之間,由一個(gè)轉(zhuǎn)成另一個(gè)所需的最少編輯操作次數(shù),所述編輯操作包括將一個(gè)字符替換成另一個(gè)字符,插入一個(gè)字符,刪除一個(gè)字符,一般來說,編輯距離越小,兩個(gè)串的相似度越大。
仍沿用上述步驟104-1中的例子,詞序列為“給小明打電話”,待驗(yàn)證詞為“小明”,如果在客戶端通訊錄的聯(lián)系人中沒有找到“小明”,則可以通過查找發(fā)音詞典,將小明轉(zhuǎn)換為待驗(yàn)證拼音序列“xiaoming”,并將通訊錄中的各個(gè)聯(lián)系人名稱也都轉(zhuǎn)換為相應(yīng)的拼音序列,即:比對(duì)拼音序列,然后依次計(jì)算“xiaoming”與各比對(duì)拼音序列之間的編輯距離,然后選擇編輯距離最小(相似度最高)的比對(duì)拼音序列所對(duì)應(yīng)的聯(lián)系人名稱(例如:“xiaomin”對(duì)應(yīng)的“小敏”),替換所述詞序列中的待驗(yàn)證詞,從而完成了對(duì)所述詞序列的修正,并可以將修正后的詞序列作為最終的語音識(shí)別結(jié)果。
在具體實(shí)施時(shí),也可以先計(jì)算出待驗(yàn)證拼音序列與各比對(duì)拼音序列之間的相似度并按照相似度從高到低排序,選擇排序靠前的若干個(gè)(例如三個(gè))比對(duì)拚音序列對(duì)應(yīng)的詞,然后將這些詞通過屏幕輸出等方式提示給客戶端用戶,由用戶從中選擇正確的詞,并根據(jù)用戶選擇的詞替換所述詞序列中的待驗(yàn)證詞。
至此,通過上述步驟101-步驟104對(duì)本申請(qǐng)?zhí)峁┑恼Z音識(shí)別方法的具體實(shí)施方式進(jìn)行了詳細(xì)說明。為了便于理解,請(qǐng)參考圖8,其為本實(shí)施例提供的語音識(shí)別過程的整體框架圖。其中虛線框?qū)?yīng)本實(shí)施例描述的準(zhǔn)備階段,實(shí)線框?qū)?yīng)具體的語音識(shí)別處理過程。
需要說明的是,本實(shí)施例描述的步驟101可以在以語音作為交互媒介的客戶端應(yīng)用程序每次啟動(dòng)時(shí)都執(zhí)行一次,即每次啟動(dòng)都重新生成包含客戶端預(yù)設(shè)信息的、用于對(duì)語音信號(hào)進(jìn)行解碼的搜索空間,也可以僅在所述客戶端應(yīng)用程序首次啟動(dòng)時(shí)生成所述搜索空間并存儲(chǔ)、后續(xù)采用定期更新的方式,這樣可以 減少每次應(yīng)用程序啟動(dòng)時(shí)生成搜索空間的時(shí)間開銷(可以直接使用之前已生成的搜索空間),提高語音識(shí)別的執(zhí)行效率,改善用戶的使用體驗(yàn)。
此外,本申請(qǐng)?zhí)峁┑姆椒ㄍǔT诳蛻舳嗽O(shè)備上實(shí)施,所述客戶端設(shè)備包括:智能移動(dòng)終端、智能音箱、機(jī)器人、或者其他可以運(yùn)行所述方法的設(shè)備,本實(shí)施例即描述了在客戶端實(shí)施本申請(qǐng)所提供方法的具體實(shí)施方式。但是在其他實(shí)施方式中,本申請(qǐng)?zhí)峁┑姆椒ㄒ部梢栽诨诳蛻舳撕头?wù)器模式的應(yīng)用場(chǎng)景下實(shí)施,在這種情況下,在準(zhǔn)備階段生成的各個(gè)WFST以及用于聲學(xué)概率計(jì)算的模型無需預(yù)先安裝到客戶端設(shè)備中,每次客戶端應(yīng)用啟動(dòng)時(shí),可以將相應(yīng)的客戶端預(yù)設(shè)信息上傳給服務(wù)器,并將后續(xù)采集到待識(shí)別語音信號(hào)也上傳給服務(wù)器,由服務(wù)器一側(cè)實(shí)施本申請(qǐng)?zhí)峁┑姆椒?,并將解碼得到的詞序列回傳給客戶端,同樣可以實(shí)現(xiàn)本申請(qǐng)的技術(shù)方案,并取得相應(yīng)的有益效果。
綜上所述,本申請(qǐng)?zhí)峁┑恼Z音識(shí)別方法,由于在生成用于對(duì)語音信號(hào)進(jìn)行解碼的搜索空間時(shí)包含了客戶端預(yù)設(shè)信息,因此在對(duì)客戶端采集的語音信號(hào)進(jìn)行識(shí)別時(shí)能夠相對(duì)準(zhǔn)確地識(shí)別出與客戶端本地相關(guān)的信息,從而可以提高語音識(shí)別的準(zhǔn)確率,提升用戶的使用體驗(yàn)。
特別是在客戶端設(shè)備上采用本申請(qǐng)?zhí)峁┑姆椒ㄟM(jìn)行語音識(shí)別,由于添加了客戶端本地信息,因此可以在一定程度上彌補(bǔ)由于概率計(jì)算模型以及搜索空間規(guī)??s小導(dǎo)致的識(shí)別準(zhǔn)確率下降的問題,從而既能夠滿足在沒有網(wǎng)絡(luò)接入環(huán)境下進(jìn)行語音識(shí)別的需求,同時(shí)也能達(dá)到一定的識(shí)別準(zhǔn)確率。進(jìn)一步地,在解碼得到詞序列后,通過采用本實(shí)施例給出的基于文字層面以及拼音層面的匹配驗(yàn)證方案,可以進(jìn)一步提升語音識(shí)別的準(zhǔn)確率。通過實(shí)際的測(cè)試結(jié)果表明:常規(guī)的語音識(shí)別方法的字符錯(cuò)誤率(CER)在20%左右,而使用本申請(qǐng)?zhí)峁┑姆椒?,字符錯(cuò)誤率在3%以下,以上數(shù)據(jù)充分說明了本方法的有益效果是顯著的。
在上述的實(shí)施例中,提供了一種語音識(shí)別方法,與之相對(duì)應(yīng)的,本申請(qǐng)還提供一種語音識(shí)別裝置。請(qǐng)參看圖9,其為本申請(qǐng)的一種語音識(shí)別裝置的實(shí)施例的示意圖。由于裝置實(shí)施例基本相似于方法實(shí)施例,所以描述得比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。下述描述的裝置實(shí)施例僅僅是示意性的。
本實(shí)施例的一種語音識(shí)別裝置,包括:搜索空間生成單元901,用于利用預(yù)設(shè)的語音知識(shí)源,生成包含客戶端預(yù)設(shè)信息的、用于對(duì)語音信號(hào)進(jìn)行解碼的搜 索空間;特征矢量提取單元902,用于提取待識(shí)別語音信號(hào)的特征矢量序列;概率計(jì)算單元903,用于計(jì)算特征矢量對(duì)應(yīng)于搜索空間基本單元的概率;解碼搜索單元904,用于以所述概率為輸入、在所述搜索空間中執(zhí)行解碼操作,得到與所述特征矢量序列對(duì)應(yīng)的詞序列。
可選的,所述搜索空間生成單元具體用于,通過替換標(biāo)簽的方式,向預(yù)先生成的至少基于語言模型的加權(quán)有限狀態(tài)轉(zhuǎn)換器中添加與預(yù)設(shè)主題類別對(duì)應(yīng)的客戶端預(yù)設(shè)信息,并得到基于三音素狀態(tài)綁定列表、發(fā)音詞典、以及語言模型的單一加權(quán)有限狀態(tài)轉(zhuǎn)換器;
所述語言模型是由語言模型訓(xùn)練單元預(yù)先生成的,所述語言模型訓(xùn)練單元用于,將用于訓(xùn)練語言模型的文本中的預(yù)設(shè)命名實(shí)體替換為與預(yù)設(shè)主題類別對(duì)應(yīng)的標(biāo)簽,并利用所述文本訓(xùn)練語言模型。
可選的,所述搜索空間生成單元包括:
第一客戶端信息添加子單元,用于通過替換標(biāo)簽的方式,向預(yù)先生成的基于語言模型的加權(quán)有限狀態(tài)轉(zhuǎn)換器中添加與預(yù)設(shè)主題類別對(duì)應(yīng)的客戶端預(yù)設(shè)信息;
加權(quán)有限狀態(tài)轉(zhuǎn)換器合并子單元,用于將添加了所述客戶端預(yù)設(shè)信息的所述加權(quán)有限狀態(tài)轉(zhuǎn)換器、與預(yù)先生成的基于三音素狀態(tài)綁定列表和發(fā)音詞典的加權(quán)有限狀態(tài)轉(zhuǎn)換器進(jìn)行合并,得到所述單一加權(quán)有限狀態(tài)轉(zhuǎn)換器。
可選的,所述解碼空間生成單元包括:
第二客戶端信息添加子單元,用于通過替換標(biāo)簽的方式,向預(yù)先生成的至少基于語言模型的加權(quán)有限狀態(tài)轉(zhuǎn)換器中添加與預(yù)設(shè)主題類別對(duì)應(yīng)的客戶端預(yù)設(shè)信息;
統(tǒng)一加權(quán)有限狀態(tài)轉(zhuǎn)換器獲取子單元,用于在所述第二客戶端信息添加子單元完成添加操作之后,得到基于三音素狀態(tài)綁定列表、發(fā)音詞典、以及語言模型的單一加權(quán)有限狀態(tài)轉(zhuǎn)換器;
其中,所述第二客戶端信息添加子單元包括:
主題確定子單元,用于確定待識(shí)別語音信號(hào)所屬的預(yù)設(shè)主題類別;
加權(quán)有限狀態(tài)轉(zhuǎn)換器選擇子單元,用于選擇預(yù)先生成的、與所述預(yù)設(shè)主題類別相對(duì)應(yīng)的所述至少基于語言模型的加權(quán)有限狀態(tài)轉(zhuǎn)換器;
標(biāo)簽替換子單元,用于通過用與所述預(yù)設(shè)主題類別對(duì)應(yīng)的客戶端預(yù)設(shè)信息 替換相應(yīng)標(biāo)簽的方式,向所選的加權(quán)有限狀態(tài)轉(zhuǎn)換器中添加客戶端預(yù)設(shè)信息。
可選的,所述主題確定子單元具體用于,根據(jù)采集所述語音信號(hào)的客戶端類型、或應(yīng)用程序確定所述所屬的預(yù)設(shè)主題類別。
可選的,所述加權(quán)有限狀態(tài)轉(zhuǎn)換器合并子單元具體用于,采用基于預(yù)測(cè)的方法執(zhí)行合并操作,并得到所述單一加權(quán)有限狀態(tài)轉(zhuǎn)換器。
可選的,所述概率計(jì)算單元包括:
三音素狀態(tài)概率計(jì)算子單元,用于采用預(yù)先訓(xùn)練的DNN模型計(jì)算特征矢量對(duì)應(yīng)于各三音素狀態(tài)的概率;
三音素概率計(jì)算子單元,用于根據(jù)特征矢量對(duì)應(yīng)于所述各三音素狀態(tài)的概率,采用預(yù)先訓(xùn)練的HMM模型計(jì)算特征矢量對(duì)應(yīng)于各三音素的概率。
可選的,所述特征矢量提取單元包括:
分幀子單元,用于按照預(yù)先設(shè)定的幀長(zhǎng)度對(duì)待識(shí)別語音信號(hào)進(jìn)行分幀處理,得到多個(gè)音頻幀;
特征提取子單元,用于提取各音頻幀的特征矢量,得到所述特征矢量序列。
可選的,所述裝置包括:
準(zhǔn)確性驗(yàn)證單元,用于在所述解碼搜索單元得到與特征矢量序列對(duì)應(yīng)的詞序列后,通過與所述客戶端預(yù)設(shè)信息進(jìn)行文字匹配驗(yàn)證所述詞序列的準(zhǔn)確性,并根據(jù)驗(yàn)證結(jié)果生成相應(yīng)的語音識(shí)別結(jié)果。
可選的,所述準(zhǔn)確性驗(yàn)證單元包括:
待驗(yàn)證詞選擇子單元,用于從所述詞序列中選擇對(duì)應(yīng)于所述客戶端預(yù)設(shè)信息的待驗(yàn)證詞;
查找子單元,用于在所述客戶端預(yù)設(shè)信息中查找所述待驗(yàn)證詞;
識(shí)別結(jié)果確認(rèn)子單元,用于當(dāng)所述查找子單元找到所述待驗(yàn)證詞之后,判定通過所述準(zhǔn)確性驗(yàn)證,并將所述詞序列作為語音識(shí)別結(jié)果;
識(shí)別結(jié)果修正子單元,用于當(dāng)所述查找子單元未找到所述待驗(yàn)證詞之后,通過基于拼音的模糊匹配方式修正所述詞序列,并將修正后的詞序列作為語音識(shí)別結(jié)果。
可選的,所述識(shí)別結(jié)果修正子單元,包括:
待驗(yàn)證拼音序列轉(zhuǎn)換子單元,用于將所述待驗(yàn)證詞轉(zhuǎn)換為待驗(yàn)證拼音序列;
比對(duì)拼音序列轉(zhuǎn)換子單元,用于將所述客戶端預(yù)設(shè)信息中的各個(gè)詞分別轉(zhuǎn)換為比對(duì)拼音序列;
相似度計(jì)算選擇子單元,用于依次計(jì)算所述待驗(yàn)證拼音序列與各比對(duì)拼音序列之間的相似度,并從所述客戶端預(yù)設(shè)信息中選擇按照所述相似度從高到低排序靠前的詞;
待驗(yàn)證詞替換子單元,用于用所選詞替換所述詞序列中的待驗(yàn)證詞,得到所述修正后的詞序列。
此外,本申請(qǐng)還提供另一種語音識(shí)別方法,請(qǐng)參考圖10,其為本申請(qǐng)?zhí)峁┑牧硪环N語音識(shí)別方法的實(shí)施例的流程圖,本實(shí)施例與之前提供的方法實(shí)施例內(nèi)容相同的部分不再贅述,下面重點(diǎn)描述不同之處。本申請(qǐng)?zhí)峁┑牧硪环N語音識(shí)別方法包括:
步驟1001、通過解碼獲取與待識(shí)別語音信號(hào)對(duì)應(yīng)的詞序列。
對(duì)于語音識(shí)別來說,解碼的過程就是在用于語音識(shí)別的搜索空間中進(jìn)行搜索的過程,以獲取與待識(shí)別語音信號(hào)對(duì)應(yīng)的最佳詞序列。所述搜索空間可以是基于各種知識(shí)源的WFST網(wǎng)絡(luò),也可以是其他形式的搜索空間;所述搜索空間可以包含客戶端預(yù)設(shè)信息,也可以不包含客戶端預(yù)設(shè)信息,本實(shí)施例并不對(duì)此作具體的限定。
步驟1002、通過與客戶端預(yù)設(shè)信息進(jìn)行文字匹配驗(yàn)證所述詞序列的準(zhǔn)確性,并根據(jù)驗(yàn)證結(jié)果生成相應(yīng)的語音識(shí)別結(jié)果。
本步驟包括以下操作:從所述詞序列中選擇對(duì)應(yīng)于所述客戶端預(yù)設(shè)信息的待驗(yàn)證詞;在所述客戶端預(yù)設(shè)信息中查找所述待驗(yàn)證詞;若找到,則判定通過所述準(zhǔn)確性驗(yàn)證,并將所述詞序列作為語音識(shí)別結(jié)果;否則通過基于拼音的模糊匹配方式修正所述詞序列,并將修正后的詞序列作為語音識(shí)別結(jié)果。
所述通過基于拼音的模糊匹配方式修正所述詞序列,包括:將所述待驗(yàn)證詞轉(zhuǎn)換為待驗(yàn)證拼音序列;將所述客戶端預(yù)設(shè)信息中的各個(gè)詞分別轉(zhuǎn)換為比對(duì)拼音序列;依次計(jì)算所述待驗(yàn)證拼音序列與各比對(duì)拼音序列之間的相似度,并從所述客戶端預(yù)設(shè)信息中選擇按照所述相似度從高到低排序靠前的詞;用所選詞替換所述詞序列中的待驗(yàn)證詞,得到所述修正后的詞序列。
其中,所述轉(zhuǎn)換拼音序列可以通過查找發(fā)音詞典實(shí)現(xiàn),所述相似度可以根 據(jù)兩個(gè)拼音序列之間的編輯距離計(jì)算。
本申請(qǐng)?zhí)峁┑姆椒?,通常?yīng)用于用語音作為交互媒介的應(yīng)用程序中,此類應(yīng)用程序采集的待識(shí)別語音中可能會(huì)涉及客戶端信息,而本申請(qǐng)?zhí)峁┑姆椒?,通過將解碼得到的詞序列與客戶端預(yù)設(shè)信息進(jìn)行文字匹配,可以驗(yàn)證所述詞序列的準(zhǔn)確性,從而為對(duì)詞序列進(jìn)行必要修正提供了依據(jù)。進(jìn)一步地,通過采用基于拼音層面的模糊匹配,可以對(duì)所述詞序列進(jìn)行修正,從而提升語音識(shí)別的準(zhǔn)確率。
在上述的實(shí)施例中,提供了另一種語音識(shí)別方法,與之相對(duì)應(yīng)的,本申請(qǐng)還提供另一種語音識(shí)別裝置。請(qǐng)參看圖11,其為本申請(qǐng)的另一種語音識(shí)別裝置的實(shí)施例示意圖。由于裝置實(shí)施例基本相似于方法實(shí)施例,所以描述得比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。下述描述的裝置實(shí)施例僅僅是示意性的。
本實(shí)施例的一種語音識(shí)別裝置,包括:詞序列獲取單元1101,用于通過解碼獲取與待識(shí)別語音信號(hào)對(duì)應(yīng)的詞序列;詞序列驗(yàn)證單元1102,用于通過與客戶端預(yù)設(shè)信息進(jìn)行文字匹配驗(yàn)證所述詞序列的準(zhǔn)確性,并根據(jù)驗(yàn)證結(jié)果生成相應(yīng)的語音識(shí)別結(jié)果。
可選的,所述詞序列驗(yàn)證單元包括:
待驗(yàn)證詞選擇子單元,用于從所述詞序列中選擇對(duì)應(yīng)于所述客戶端預(yù)設(shè)信息的待驗(yàn)證詞;
查找子單元,用于在所述客戶端預(yù)設(shè)信息中查找所述待驗(yàn)證詞;
識(shí)別結(jié)果確認(rèn)子單元,用于當(dāng)所述查找子單元找到所述待驗(yàn)證詞之后,判定通過所述準(zhǔn)確性驗(yàn)證,并將所述詞序列作為語音識(shí)別結(jié)果;
識(shí)別結(jié)果修正子單元,用于當(dāng)所述查找子單元未找到所述待驗(yàn)證詞之后,通過基于拼音的模糊匹配方式修正所述詞序列,并將修正后的詞序列作為語音識(shí)別結(jié)果。
可選的,所述識(shí)別結(jié)果修正子單元,包括:
待驗(yàn)證拼音序列轉(zhuǎn)換子單元,用于將所述待驗(yàn)證詞轉(zhuǎn)換為待驗(yàn)證拼音序列;
比對(duì)拼音序列轉(zhuǎn)換子單元,用于將所述客戶端預(yù)設(shè)信息中的各個(gè)詞分別轉(zhuǎn)換為比對(duì)拼音序列;
相似度計(jì)算選擇子單元,用于依次計(jì)算所述待驗(yàn)證拼音序列與各比對(duì)拼音 序列之間的相似度,并從所述客戶端預(yù)設(shè)信息中選擇按照所述相似度從高到低排序靠前的詞;
待驗(yàn)證詞替換子單元,用于用所選詞替換所述詞序列中的待驗(yàn)證詞,得到所述修正后的詞序列。
本申請(qǐng)雖然以較佳實(shí)施例公開如上,但其并不是用來限定本申請(qǐng),任何本領(lǐng)域技術(shù)人員在不脫離本申請(qǐng)的精神和范圍內(nèi),都可以做出可能的變動(dòng)和修改,因此本申請(qǐng)的保護(hù)范圍應(yīng)當(dāng)以本申請(qǐng)權(quán)利要求所界定的范圍為準(zhǔn)。
在一個(gè)典型的配置中,計(jì)算設(shè)備包括一個(gè)或多個(gè)處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(ROM)或閃存(flash RAM)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。
1、計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法或技術(shù)來實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、其他類型的隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲(chǔ)器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括非暫存電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號(hào)和載波。
2、本領(lǐng)域技術(shù)人員應(yīng)明白,本申請(qǐng)的實(shí)施例可提供為方法、系統(tǒng)或計(jì)算機(jī)程序產(chǎn)品。因此,本申請(qǐng)可采用完全硬件實(shí)施例、完全軟件實(shí)施例或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請(qǐng)可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。