本發(fā)明涉及語音識別技術(shù)領(lǐng)域,特別涉及一種基于人工智能的語音喚醒方法和裝置。
背景技術(shù):
人工智能(Artificial Intelligence),英文縮寫為AI。它是研究、開發(fā)用于模擬、延伸和擴展人的智能的理論、方法、技術(shù)及應(yīng)用系統(tǒng)的一門新的技術(shù)科學。人工智能是計算機科學的一個分支,它企圖了解智能的實質(zhì),并生產(chǎn)出一種新的能以人類智能相似的方式做出反應(yīng)的智能機器,該領(lǐng)域的研究包括機器人、語言識別、圖像識別、自然語言處理和專家系統(tǒng)等。
語音喚醒技術(shù)是語音識別技術(shù)中重要分支,目前在車載,導(dǎo)航,智能家居等方面有著重要的應(yīng)用,用于通過聲音啟動程序或者服務(wù),解放雙手。目前,為了滿足用戶的個性化需求,語音喚醒技術(shù)可支持用戶根據(jù)自身的喜好和習慣定制喚醒詞,具體的,可根據(jù)以下幾種方式基于用戶自定義喚醒詞進行語音喚醒:
方式一當用戶定義喚醒詞時,由技術(shù)人員根據(jù)用戶自定義喚醒詞重新開發(fā)或者修改喚醒程序,然后用戶進行下載使用,人臉成本高、耗費時間周期較長;
方式二將原喚醒網(wǎng)絡(luò)中的喚醒詞直接替換為用戶自定義喚醒詞,但是,這種針對所有喚醒詞均采用相同的識別策略,因此存在喚醒正確率較低、誤報率較高的問題。
方式三通過通用的語音識別模塊對用戶輸入的語音進行識別,以判斷用戶輸入的語音是否包含喚醒詞,然而,通用的語音識別模型功耗較大,比較費電,而喚醒技術(shù)要求實時監(jiān)聽,因此,此種方式會導(dǎo)致設(shè)備電量消耗較大,不利于本地化的喚醒技術(shù)使用。
技術(shù)實現(xiàn)要素:
本發(fā)明旨在至少在一定程度上解決上述技術(shù)問題。
為此,本發(fā)明的第一個目的在于提出一種基于人工智能的語音喚醒方法,能夠有效提升喚醒的正確率,并降低誤報率,提升喚醒效率,功耗低。
本發(fā)明的第二個目的在于提出一種基于人工智能的語音喚醒裝置。
為達上述目的,根據(jù)本發(fā)明第一方面實施例提出了一種基于人工智能的語音喚醒方法,包括以下步驟:獲取自定義喚醒詞對應(yīng)的發(fā)音信息;獲取所述發(fā)音信息對應(yīng)的近似發(fā)音信息;根據(jù)預(yù)設(shè)的垃圾詞列表、所述發(fā)音信息和所述近似發(fā)音信息構(gòu)建喚醒詞識別網(wǎng)絡(luò),以根據(jù)所述喚醒詞識別網(wǎng)絡(luò)對用戶輸入的語音進行識別,并根據(jù)識別結(jié)果確定是否執(zhí)行喚醒操作。
本發(fā)明第二方面實施例提出了一種基于人工智能的語音喚醒裝置,包括:第一獲取模塊,用于獲取自定義喚醒詞對應(yīng)的發(fā)音信息;第二獲取模塊,用于獲取所述發(fā)音信息對應(yīng)的近似發(fā)音信息;第一構(gòu)建模塊,用于根據(jù)預(yù)設(shè)的垃圾詞列表、所述發(fā)音信息和所述近似發(fā)音信息構(gòu)建喚醒詞識別網(wǎng)絡(luò);喚醒模塊,用于根據(jù)所述喚醒詞識別網(wǎng)絡(luò)對用戶輸入的語音進行識別,并根據(jù)識別結(jié)果確定是否執(zhí)行喚醒操作。
本發(fā)明實施例的基于人工智能的語音喚醒方法和裝置,通過獲取用戶自定義喚醒詞對應(yīng)的發(fā)音信息及其近似發(fā)音信息,并根據(jù)預(yù)設(shè)的垃圾詞列表、自定義喚醒詞的發(fā)音信息及其近似發(fā)音信息喚醒構(gòu)建喚醒詞識別網(wǎng)絡(luò),以對用戶輸入的語音進行識別喚醒,能夠針對不同的自定義喚醒動態(tài)構(gòu)建喚醒詞識別網(wǎng)絡(luò),根據(jù)該喚醒詞識別網(wǎng)絡(luò)得到的識別結(jié)果進行喚醒,相對于使用通用的喚醒詞網(wǎng)絡(luò),能夠有效提升喚醒的正確率,在構(gòu)建喚醒詞識別網(wǎng)絡(luò)時,增加了喚醒詞發(fā)音的近似發(fā)音,進一步提升了喚醒的準確率,并降低誤報率。此外,上述過程為全自動化,無需人工干預(yù),降低了喚醒成本低,且喚醒速度快,提升喚醒效率,利于喚醒技術(shù)的推廣和鋪開;另外,相對于使用語言模型進行識別喚醒的方法,本發(fā)明實施例使用垃圾詞列表的喚醒詞識別網(wǎng)絡(luò)代替了語言模型,內(nèi)存占用更小,同時減少硬盤占用,使得用戶可以在隨身攜帶的嵌入式設(shè)備上使用并優(yōu)化,功耗低。
本發(fā)明第三方面實施例提出了一種電子設(shè)備,包括:
處理器;
用于存儲處理器可執(zhí)行指令的存儲器;
其中,所述處理器被配置為:
獲取自定義喚醒詞對應(yīng)的發(fā)音信息;
獲取所述發(fā)音信息對應(yīng)的近似發(fā)音信息;
根據(jù)預(yù)設(shè)的垃圾詞列表、所述發(fā)音信息和所述近似發(fā)音信息構(gòu)建喚醒詞識別網(wǎng)絡(luò),以根據(jù)所述喚醒詞識別網(wǎng)絡(luò)對用戶輸入的語音進行識別,并根據(jù)識別結(jié)果確定是否執(zhí)行喚醒操作。
本發(fā)明第四方面實施例提出了一種非臨時性計算機可讀存儲介質(zhì),當所述存儲介質(zhì)中的指令由電子設(shè)備的處理器被執(zhí)行時,使得電子設(shè)備能夠執(zhí)行一種基于人工智能的語音喚醒方法,所述方法包括:
獲取自定義喚醒詞對應(yīng)的發(fā)音信息;
獲取所述發(fā)音信息對應(yīng)的近似發(fā)音信息;
根據(jù)預(yù)設(shè)的垃圾詞列表、所述發(fā)音信息和所述近似發(fā)音信息構(gòu)建喚醒詞識別網(wǎng)絡(luò),以根據(jù)所述喚醒詞識別網(wǎng)絡(luò)對用戶輸入的語音進行識別,并根據(jù)識別結(jié)果確定是否執(zhí)行喚醒操作。
本發(fā)明第五方面實施例提出了一種計算機程序產(chǎn)品,當所述計算機程序產(chǎn)品中的指令處理器執(zhí)行時,執(zhí)行一種語音喚醒方法,所述方法包括:
獲取自定義喚醒詞對應(yīng)的發(fā)音信息;
獲取所述發(fā)音信息對應(yīng)的近似發(fā)音信息;
根據(jù)預(yù)設(shè)的垃圾詞列表、所述發(fā)音信息和所述近似發(fā)音信息構(gòu)建喚醒詞識別網(wǎng)絡(luò),以根據(jù)所述喚醒詞識別網(wǎng)絡(luò)對用戶輸入的語音進行識別,并根據(jù)識別結(jié)果確定是否執(zhí)行喚醒操作。
本發(fā)明的附加方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
附圖說明
本發(fā)明的上述和/或附加的方面和優(yōu)點從結(jié)合下面附圖對實施例的描述中將變得明顯和容易理解,其中:
圖1為根據(jù)本發(fā)明一個實施例的基于人工智能的語音喚醒方法的流程圖;
圖2為根據(jù)本發(fā)明另一個實施例的基于人工智能的語音喚醒方法的流程圖;
圖3為根據(jù)本發(fā)明一個實施例的喚醒詞識別網(wǎng)絡(luò)的示意圖;
圖4為根據(jù)本發(fā)明另一個實施例的基于人工智能的語音喚醒方法的流程圖;
圖5為根據(jù)本發(fā)明另一個實施例的基于人工智能的語音喚醒方法的流程圖;
圖6為根據(jù)本發(fā)明另一個實施例的基于人工智能的語音喚醒方法的流程圖;
圖7為根據(jù)本發(fā)明一個實施例的基于人工智能的語音喚醒裝置的結(jié)構(gòu)示意圖;
圖8為根據(jù)本發(fā)明另一個實施例的基于人工智能的語音喚醒裝置的結(jié)構(gòu)示意圖。
具體實施方式
下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。
在本發(fā)明的描述中,需要理解的是,術(shù)語“多個”指兩個或兩個以上;術(shù)語“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對重要性。
下面參考附圖描述根據(jù)本發(fā)明實施例的基于人工智能的語音喚醒方法和裝置。
圖1為根據(jù)本發(fā)明一個實施例的基于人工智能的語音喚醒方法的流程圖。
如圖1所示,根據(jù)本發(fā)明實施例的基于人工智能的語音喚醒方法,包括:
S101,獲取自定義喚醒詞對應(yīng)的發(fā)音信息。
其中,自定義喚醒詞對應(yīng)的發(fā)音信息為自定義喚醒詞音節(jié)組成結(jié)構(gòu)??筛鶕?jù)用戶輸入的自定義喚醒詞文本查找對應(yīng)的發(fā)音信息,或者根據(jù)用戶輸入的自定義喚醒詞語音匹配對應(yīng)的發(fā)音信息。
舉例來說,如果用戶定義的自定義喚醒詞為“小都你好”,則對應(yīng)的發(fā)音信息為“xiao du ni hao”。
S102,獲取所述發(fā)音信息對應(yīng)的近似發(fā)音信息。
自定義喚醒詞的發(fā)音信息對應(yīng)的近似發(fā)音信息可以是由與喚醒詞對應(yīng)的每個發(fā)音音節(jié)的近似音節(jié)組成的發(fā)音信息。
具體而言,可根據(jù)自定義喚醒詞的發(fā)音信息中每個音節(jié)分別查找預(yù)先建立的近似發(fā)音庫,得到與自定義喚醒詞的各個音節(jié)具有相近發(fā)音的音節(jié),得到近似發(fā)音信息。
舉例來說,音節(jié)“jiao”和音節(jié)“xiao”的發(fā)音類似,則在近似發(fā)音庫中,音節(jié)“jiao”在音節(jié)“xiao”對應(yīng)的近似發(fā)音信息集合Near_xiao中。
進而,對于自定義喚醒詞的發(fā)音信息中每個音節(jié),可分別查找對應(yīng)的近似發(fā)音信息集合,得到自定義喚醒詞的發(fā)音信息對應(yīng)的近似發(fā)音信息。
S103,根據(jù)預(yù)設(shè)的垃圾詞列表、所述發(fā)音信息和所述近似發(fā)音信息構(gòu)建喚醒詞識別網(wǎng)絡(luò),以根據(jù)所述喚醒詞識別網(wǎng)絡(luò)對用戶輸入的語音進行識別,并根據(jù)識別結(jié)果確定是否執(zhí)行喚醒操作。
其中,垃圾詞列表可以是預(yù)先生成的,可記為Garbage。具體而言,可根據(jù)音素庫中的所有音素(可用phone表示)并聯(lián)成解碼器。向該解碼器輸入海量語音,從輸出結(jié)果中選取輸出次數(shù)最多的若干個結(jié)果,作為垃圾詞列表。
在本發(fā)明的一個實施例中,可通過圖2所示的步驟構(gòu)建喚醒詞識別網(wǎng)絡(luò),如圖2所示,包括步驟S201-S202。
S201,根據(jù)所述垃圾詞列表和所述自定義喚醒詞中預(yù)設(shè)詞語的發(fā)音信息生成第一發(fā)音信息。
其中,預(yù)設(shè)詞語可以是位于自定義喚醒詞中預(yù)設(shè)位置的詞語,例如,位于自定義喚醒詞開頭的詞語,或者位于自定義喚醒詞結(jié)尾的詞語,可根據(jù)實際需要進行設(shè)置。
舉例來說,對于自定義喚醒詞“小都你好”,如果預(yù)設(shè)詞語為位于自定義喚醒詞開頭的詞語“小都”,則根據(jù)“小都”的發(fā)音信息和垃圾詞列表可生成第一發(fā)音信息“xiao du+Garbage”。
S202,根據(jù)所述垃圾詞列表、所述自定義喚醒的發(fā)音信息、所述第一發(fā)音信息和所述近似發(fā)音信息構(gòu)建所述喚醒詞識別網(wǎng)絡(luò)。
舉例來說,對于自定義喚醒詞“小都你好”,其對應(yīng)的發(fā)音信息為“xiao du ni hao”,相應(yīng)的進行發(fā)音信息為“Near_xiao Near_du Near_ni Near_hao”,將這兩個發(fā)音信息、垃圾詞列表和第一發(fā)音信息“xiao du+Garbage”進行并聯(lián),可得到如圖3所示的喚醒詞識別網(wǎng)絡(luò)。
如圖3所示,在該喚醒詞識別網(wǎng)絡(luò)中,是針對每個自定義喚醒詞進行優(yōu)化后得到的,且可根據(jù)用戶輸入的自定義喚醒詞自動構(gòu)建完成,無需專業(yè)技術(shù)人員進行干預(yù)和定制,從而能夠在提升喚醒準確率的同時,降低喚醒成本。
本發(fā)明實施例在建立的喚醒詞識別網(wǎng)絡(luò)時,通過加入自定義喚醒詞對應(yīng)的近似發(fā)音,能夠?qū)τ脩粼诎l(fā)音偏差的情況下也能喚醒系統(tǒng),例如,如果用戶輸入的語音為自定義喚醒詞的發(fā)音“xiao du ni hao”的近似發(fā)音“jiao du ni hao”,則根據(jù)本發(fā)明實施例的喚醒詞識別網(wǎng)絡(luò),仍可將其為能夠喚醒系統(tǒng)的識別結(jié)果,進行執(zhí)行喚醒操作。
此外,本發(fā)明實施例在建立的喚醒詞識別網(wǎng)絡(luò)時,還增加了由垃圾詞列表和自定義喚醒詞中預(yù)設(shè)詞語的發(fā)音信息組成的第一發(fā)音信息,從而,能夠在識別用戶輸入的語音時,根據(jù)第一發(fā)音信息組成的路徑控制誤報率。
進而,可根據(jù)上述喚醒詞識別網(wǎng)絡(luò)對用戶輸入的語音進行識別,并根據(jù)識別結(jié)果確定是否執(zhí)行喚醒操作。
具體而言,可使用現(xiàn)有的任意方法根據(jù)上述喚醒詞識別網(wǎng)絡(luò)對用戶輸入的語音進行識別,并根據(jù)識別結(jié)果確定是否執(zhí)行喚醒操作。例如,提取用戶輸入的語音的聲學特征,根據(jù)預(yù)設(shè)的聲學模型對該聲學特征進行分析,得到多個狀態(tài)的似然得分,根據(jù)得到的似然得分基于維特比算法從該喚醒詞識別網(wǎng)絡(luò)中選擇最優(yōu)路徑,作為識別結(jié)果。然后,計算識別結(jié)果的置信度,如果大于第一預(yù)設(shè)置信度,則執(zhí)行喚醒操作,否則拒絕喚醒操作。
或者,還可以通過后續(xù)實施例中的方法根據(jù)上述喚醒詞識別網(wǎng)絡(luò)對用戶輸入的語音進行識別,并根據(jù)識別結(jié)果確定是否執(zhí)行喚醒操作。具體可參加圖4-圖5所示實施例。
根據(jù)本發(fā)明實施例的基于人工智能的語音喚醒方法,通過獲取用戶自定義喚醒詞對應(yīng)的發(fā)音信息及其近似發(fā)音信息,并根據(jù)預(yù)設(shè)的垃圾詞列表、自定義喚醒詞的發(fā)音信息及其近似發(fā)音信息喚醒構(gòu)建喚醒詞識別網(wǎng)絡(luò),以對用戶輸入的語音進行識別喚醒,能夠針對不同的自定義喚醒動態(tài)構(gòu)建喚醒詞識別網(wǎng)絡(luò),根據(jù)該喚醒詞識別網(wǎng)絡(luò)得到的識別結(jié)果進行喚醒,相對于使用通用的喚醒詞網(wǎng)絡(luò),能夠有效提升喚醒的正確率,在構(gòu)建喚醒詞識別網(wǎng)絡(luò)時,增加了喚醒詞發(fā)音的近似發(fā)音,進一步提升了喚醒的準確率,并降低誤報率。此外,上述過程為全自動化,無需人工干預(yù),降低了喚醒成本低,且喚醒速度快,提升喚醒效率,利于喚醒技術(shù)的推廣和鋪開;另外,相對于使用語言模型進行識別喚醒的方法,本發(fā)明實施例使用垃圾詞列表的喚醒詞識別網(wǎng)絡(luò)代替了語言模型,內(nèi)存占用更小,同時減少硬盤占用,使得用戶可以在隨身攜帶的嵌入式設(shè)備上使用并優(yōu)化,功耗低。
圖4為根據(jù)本發(fā)明另一個實施例的基于人工智能的語音喚醒方法的流程圖。
如圖4所示,本發(fā)明實施例的基于人工智能的語音喚醒方法,包括以下步驟S401-S409。
其中,步驟S401-S402與圖1所示實施例中的步驟S101-S102相同。
S403,根據(jù)所述自定義喚醒詞構(gòu)建線性識別網(wǎng)絡(luò)。
具體而言,可根據(jù)自定義喚醒詞對應(yīng)的各個音素分別查詢預(yù)設(shè)的狀態(tài)表,得到各個音素對應(yīng)的狀態(tài),并組成自定義喚醒對應(yīng)的狀態(tài)信息序列。然后根據(jù)該狀態(tài)信息序列構(gòu)建線性識別網(wǎng)絡(luò)。
舉例來說,如果用戶定義的自定義喚醒詞為“小都你好”,對應(yīng)的發(fā)音信息為“xiao du ni hao”,進而,可得到對應(yīng)的音素為“x i ao d u n I h ao”,可通過查詢預(yù)設(shè)的狀態(tài)表,得到自定義喚醒詞對應(yīng)的狀態(tài)信息序列S1,S2……S27。進而,構(gòu)建線性識別網(wǎng)絡(luò)sil,S1,S2……S27。其中,sil表示靜音狀態(tài)。
S404,利用所述自定義喚醒詞的示例語音在所述線性解碼網(wǎng)絡(luò)上做強制對齊,得到所述線性解碼網(wǎng)絡(luò)對應(yīng)的似然得分總和。
其中,自定義喚醒詞的示例語音為與自定義喚醒詞對應(yīng)的標準語音,可根據(jù)自定義喚醒詞中的詞語查詢預(yù)設(shè)的語音數(shù)據(jù)庫得到。
具體而言,可將示例語音對應(yīng)的狀態(tài)與線性解碼網(wǎng)絡(luò)進行強制對齊,得到線性解碼網(wǎng)絡(luò)中各個狀態(tài)的似然得分,進而,可計算各個狀態(tài)的似然得分總和,即為SumFA。
S405,根據(jù)預(yù)設(shè)的垃圾詞列表、所述發(fā)音信息和所述近似發(fā)音信息構(gòu)建喚醒詞識別網(wǎng)絡(luò)。
其中,垃圾詞列表可以是預(yù)先生成的,可記為Garbage。具體而言,可根據(jù)音素庫中的所有音素(可用phone表示)并聯(lián)成解碼器。向該解碼器輸入海量語音,從輸出結(jié)果中選取輸出次數(shù)最多的若干個結(jié)果,作為垃圾詞列表。
在本發(fā)明的一個實施例中,可通過圖2所示的步驟構(gòu)建喚醒詞識別網(wǎng)絡(luò)。
進而,可根據(jù)上述喚醒詞識別網(wǎng)絡(luò)對用戶輸入的語音進行識別,并根據(jù)識別結(jié)果確定是否執(zhí)行喚醒操作。
需要說明的是,在本發(fā)明的實施例中,步驟S405也可在步驟S403-S404之前執(zhí)行,本發(fā)明對此不做限定。
在根據(jù)用戶設(shè)定的自定義喚醒詞構(gòu)建喚醒詞識別網(wǎng)絡(luò)后,可加載該喚醒詞識別網(wǎng)絡(luò)。從而,當接收到用戶輸入的語音時,根據(jù)該喚醒詞識別網(wǎng)絡(luò)和預(yù)設(shè)的聲學模型對該語音進行識別。
S406,提取所述語音的聲學特征。
具體而言,可將用戶輸入的語音切分為多個語音幀,并提取每個語音幀中的聲學特征。其中,聲學特征可以是40維的FilterBank特征,也可以是13維的MFCC(Mel Frequency Cepstral Coefficent,梅爾頻率倒譜系數(shù))特征。
S407,根據(jù)預(yù)設(shè)的聲學模型對所述聲學特征進行分析,得到所述語音對應(yīng)的N個狀態(tài)及所述N個狀態(tài)的似然得分,其中,N為正整數(shù)。
其中,聲學模型可為預(yù)先建立的。舉例來說,聲學模型可為卷積神經(jīng)網(wǎng)絡(luò)模型、深度神經(jīng)網(wǎng)絡(luò)模型等。
具體而言,聲學特征為一個向量,在本發(fā)明的實施例中,可將聲學特征向量與聲學模型的矩陣相乘,得到狀態(tài)的似然得分向量。其中,似然得分向量中的每個元素表示一個狀態(tài)的似然得分。舉例來說,得到的似然得分向量可為D1,D2,……DN,其中,Di為第i個狀態(tài)的似然得分。
S408,如果第i個狀態(tài)屬于所述自定義喚醒詞對應(yīng)的狀態(tài)集合,則根據(jù)所述似然得分總和對所述第i個狀態(tài)的似然得分進行修正,其中,i為不大于N的正整數(shù)。
具體而言,如果第i個狀態(tài)屬于所述自定義喚醒詞對應(yīng)的狀態(tài)集合,則可通過以下公司對第i個狀態(tài)的似然得分進行修正:
Di’=Di+SumFA/k1,
其中,Di’為第i個狀態(tài)修正后的似然得分,Di為第i個狀態(tài)修正前的似然得分,SumFA為自定義喚醒詞對應(yīng)的線性解碼網(wǎng)絡(luò)的似然得分總和,k1為預(yù)設(shè)的第一修正參數(shù)。
由此,使用自定義喚醒詞對應(yīng)的線性解碼網(wǎng)絡(luò)的似然得分總和,對屬于自定義喚醒詞對應(yīng)的狀態(tài)集合的狀態(tài)的似然得分進行修正,即提高其似然得分,降低非喚醒詞的影響,由此,能夠在后續(xù)識別過程中得到更加準確的識別結(jié)果,進而提升語音喚醒的準確性。
S409,根據(jù)所述N個狀態(tài)修正后的似然得分,基于所述喚醒詞識別網(wǎng)絡(luò),采用維特比算法對所述語音進行識別。
其中,基于所述喚醒詞識別網(wǎng)絡(luò),采用維特比算法對所述語音進行識別的過程,即根據(jù)N個狀態(tài)修正后的似然得分,在上述喚醒詞識別網(wǎng)絡(luò)中尋找最優(yōu)路徑的過程,并將最優(yōu)路徑作為識別結(jié)果。
由此,可通過上述步驟S406-S409實現(xiàn)根據(jù)所述喚醒詞識別網(wǎng)絡(luò)對用戶輸入的語音進行識別。
S410,根據(jù)識別結(jié)果確定是否執(zhí)行喚醒操作。
在本發(fā)明的一個實施例中,可通過判斷識別結(jié)果的置信度是否大于預(yù)設(shè)閾值,如果大于預(yù)設(shè)閾值,則執(zhí)行喚醒操作,否則,拒絕執(zhí)行喚醒操作。
在本發(fā)明的另一個實施例中,在根據(jù)所述喚醒詞識別網(wǎng)絡(luò)對用戶輸入的語音進行識別之前,還可包括:獲取所述自定義喚醒詞的文本長度信息,并獲取所述自定義喚醒詞的發(fā)音得分。根據(jù)所述文本長度信息、所述發(fā)音得分和所述似然得分總和,對預(yù)設(shè)的第一置信度閾值進行調(diào)整,得到第二置信度閾值。從而,可根據(jù)調(diào)整得到的第二置信度閾值判斷是否執(zhí)行喚醒操作。
具體而言,根據(jù)識別結(jié)果確定是否執(zhí)行喚醒操作,可包括以下步驟:獲取所述識別結(jié)果的置信度;如果所述置信度大于所述第二置信度閾值,則執(zhí)行喚醒操作;如果所述置信度不大于所述第二置信度閾值,則拒絕執(zhí)行喚醒操作。
其中,自定義喚醒詞的發(fā)音得分包括自定義喚醒詞的各個因素的發(fā)音得分,可通過查詢預(yù)設(shè)的喚醒詞概率分布表得到。
根據(jù)本發(fā)明實施例的基于人工智能的語音喚醒方法,根據(jù)用戶自定義喚醒詞對應(yīng)的發(fā)音信息及其近似發(fā)音信息和預(yù)設(shè)的垃圾詞列表構(gòu)建喚醒詞識別網(wǎng)絡(luò),使用該喚醒詞識別網(wǎng)對用戶輸入的語音進行識別喚醒,并可對識別過程中所使用的該語音對應(yīng)的聲學特征模型得分進行修正,能夠有效提升喚醒的正確率,并降低誤報率。此外,上述過程為全自動化,無需人工干預(yù),降低了喚醒成本低,且喚醒速度快,提升喚醒效率,利于喚醒技術(shù)的推廣和鋪開;另外,相對于使用語言模型進行識別喚醒的方法,本發(fā)明實施例使用垃圾詞列表的喚醒詞識別網(wǎng)絡(luò)代替了語言模型,內(nèi)存占用更小,同時減少硬盤占用,使得用戶可以在隨身攜帶的嵌入式設(shè)備上使用并優(yōu)化,功耗低。
圖5為根據(jù)本發(fā)明另一個實施例的基于人工智能的語音喚醒方法的流程圖。
如圖5所示,本發(fā)明實施例的基于人工智能的語音喚醒方法,包括以下步驟S501-S516。
如圖5所示,其中,步驟S501-S504與圖4所示實施例中步驟S401-S404相同,步驟S509-S512與圖4所示實施例中步驟S405-S408。
此外,在根據(jù)所述喚醒詞識別網(wǎng)絡(luò)對用戶輸入的語音進行識別之前,還可包括步驟S505-S506:
S505根據(jù)所述自定義喚醒詞的發(fā)音信息確定所述自定義喚醒詞對應(yīng)的音素數(shù)量。
舉例來說,對于用戶定義的自定義喚醒詞為“小都你好”,對應(yīng)的發(fā)音信息為“xiao du ni hao”,進而,可得到對應(yīng)的音素數(shù)量LengthPhone為9(x i ao d u n I h ao共九個)。
S506,根據(jù)所述音素數(shù)量對預(yù)設(shè)的語音識別過程中使用的第一活躍路徑數(shù)量進行調(diào)整,得到第二活躍路徑數(shù)量。
具體而言,可通過以下公式對第一活躍路徑數(shù)量進行調(diào)整:
T’=T+LengthPhone*k2。
其中,T’為第二活躍路徑數(shù)據(jù),T為第一活躍路徑數(shù)量,LengthPhone為自定義喚醒詞對應(yīng)的音素數(shù)量,k2為預(yù)設(shè)的第二修正系數(shù)。
其中,第一活躍路徑數(shù)量可以是默認值,例如,喚醒系統(tǒng)當前使用的活躍路徑數(shù)量,或者初始活躍路徑數(shù)量。
由此,可根據(jù)自定義喚醒詞對應(yīng)的音素數(shù)量動態(tài)對尋找最優(yōu)路徑過程中使用的活躍路徑數(shù)量進行調(diào)整,相對于對于所有喚醒詞都使用相同的活躍路徑數(shù)量的方案,通過簡單方便的實現(xiàn)方式,可針對不同的自定義喚醒詞設(shè)置不同的活躍路徑數(shù)量,能夠使得喚醒識別結(jié)果能夠達到定制的水準,有效提升喚醒準確性和效率,且能夠有效降低開發(fā)難度和功耗。
S507,獲取所述自定義喚醒詞的文本長度信息,并獲取所述自定義喚醒詞的發(fā)音得分。
在本發(fā)明的實施例中,查詢預(yù)先建立的喚醒詞概率分布表,得到所述自定義喚醒詞對應(yīng)的各個音節(jié)的發(fā)音得分。
舉例來說,對于用戶定義的自定義喚醒詞為“小都你好”,可計算得到對應(yīng)的文本長度信息LengthTxt為4;其對應(yīng)的四個發(fā)音信息“xiao”、“du”、“ni”和“hao”,可通過查詢喚醒詞概率分布表,分別得到對應(yīng)的發(fā)音得分WScore(xiao)、WScore(du)、WScore(ni)和WScore(hao)。自定義喚醒詞的發(fā)音得分為其各個發(fā)音信息(音節(jié))的發(fā)音得分總和,即WScore=WScore(xiao)+WScore(du)+WScore(ni)+WScore(hao)。
S508,根據(jù)所述文本長度信息、所述發(fā)音得分和所述似然得分總和,對預(yù)設(shè)的第一置信度閾值進行調(diào)整,得到第二置信度閾值。
具體而言,可通過一下公式對第一置信度進行調(diào)整,得到第二置信度:
ThresNew=ThresO+WScore*LengthTxt+SumFA/k3,
其中,ThresNew為第二置信度,ThresO為第一置信度,WScore為自定義喚醒詞的發(fā)音得分,LengthTxt為自定義喚醒詞對應(yīng)的文本長度信息,SumFA為自定義喚醒詞對應(yīng)的線性解碼網(wǎng)絡(luò)的似然得分總和,k3為預(yù)設(shè)的第三修正系數(shù)。
由此,可根據(jù)自定義喚醒詞對應(yīng)的文本長度信息、所述發(fā)音得分和所述似然得分總和對置信度閾值進行調(diào)整,相對于對于所有喚醒詞都使用相同的置信度閾值的方案,通過簡單方便的實現(xiàn)方式,可針對不同的自定義喚醒詞設(shè)置不同的置信度閾值,從而能夠使得喚醒識別結(jié)果能夠達到定制的水準,有效提升喚醒準確性和效率,且能夠有效降低開發(fā)難度和功耗。
其中,對步驟S503-S504、步驟S505-S506、步驟S507-S508和步驟S509四者之間的前后順序不做限定,可任意調(diào)整。
S513,根據(jù)所述N個狀態(tài)修正后的似然得分和所述第二活躍路徑數(shù)量,從所述喚醒詞識別網(wǎng)絡(luò)中選取最優(yōu)識別路徑,得到所述語音的識別結(jié)果。
S514,獲取所述識別結(jié)果的置信度。
需要說明的是,可使用任意可選的方法獲取識別結(jié)果的置信度。
舉例來說,可計算喚醒詞識別網(wǎng)絡(luò)中所有活動節(jié)點的聲學特征得分的第一平均值,然后計算喚醒詞識別網(wǎng)絡(luò)中喚醒詞對應(yīng)的Y個節(jié)點的聲學特征得分的第二平均值,最后根據(jù)第一平均值和第二平均值計算識別結(jié)果的置信度。
或者,還可根據(jù)預(yù)設(shè)的模型計算識別結(jié)果的置信度。該預(yù)設(shè)模型可以是filler模型。其中,filler模型是所有語音信息的聚類,也就是說filler模型包含所有語音信息的聲學特征。具體地,可計算每個語音幀在filler模型中的似然得分,然后用語音幀的聲學模型得分減去該語音幀的似然得分獲得兩者的差值,最后求多個語音幀差值的平均值,該平均值為置信度。
S515,如果所述置信度大于所述第二置信度閾值,則執(zhí)行喚醒操作。
S516,如果所述置信度不大于所述第二置信度閾值,則拒絕執(zhí)行喚醒操作。
本發(fā)明實施例的基于人工智能的語音喚醒方法,根據(jù)用戶自定義喚醒詞對應(yīng)的發(fā)音信息及其近似發(fā)音信息和預(yù)設(shè)的垃圾詞列表構(gòu)建喚醒詞識別網(wǎng)絡(luò),使用該喚醒詞識別網(wǎng)對用戶輸入的語音進行識別喚醒,并可對識別過程中所使用的該語音對應(yīng)的聲學特征模型得分、活躍路徑數(shù)量和置信度閾值進行修正,能夠有效提升喚醒的正確率,并降低誤報率。此外,上述過程為全自動化,無需人工干預(yù),降低了喚醒成本低,且喚醒速度快,提升喚醒效率,利于喚醒技術(shù)的推廣和鋪開;另外,相對于使用語言模型進行識別喚醒的方法,本發(fā)明實施例使用垃圾詞列表的喚醒詞識別網(wǎng)絡(luò)代替了語言模型,內(nèi)存占用更小,同時減少硬盤占用,使得用戶可以在隨身攜帶的嵌入式設(shè)備上使用并優(yōu)化,功耗低。
在本發(fā)明的一個實施例中,圖5所示實施例中步驟S507中所使用的用于查詢各個音節(jié)的喚醒概率得分的喚醒詞概率分布表,旨在統(tǒng)計喚醒詞的喚醒成功率,誤報率等信息,以用于分析喚醒詞的好壞,喚醒成功率等信息。喚醒詞概率分布表可通過如圖6所示的步驟建立。
S601,對于每個音節(jié),統(tǒng)計字庫中發(fā)音包括所述音節(jié)的字符的第一數(shù)量,并統(tǒng)計預(yù)設(shè)文本數(shù)據(jù)集合中發(fā)音包括所述音節(jié)的字符的第二數(shù)量,并統(tǒng)計與所述音節(jié)具有相似發(fā)音的音節(jié)的第三數(shù)量。
以漢字為例,字庫為包含所有漢字的數(shù)據(jù)庫;預(yù)設(shè)文本數(shù)據(jù)集可為預(yù)先收集的海量文本數(shù)據(jù)。
舉例來說,對于音節(jié)“xiao”來說,第一數(shù)量為在漢字字庫中發(fā)音包括該音節(jié)的漢字(如小、笑、曉、校等)的數(shù)量,可記錄為Cxiao;第二數(shù)量為在海量文本數(shù)據(jù)中發(fā)音包括該音節(jié)的漢字的數(shù)量,可記錄為Dxiao。第三數(shù)量為在所有音節(jié)中與音節(jié)“xiao”發(fā)音相近的音節(jié)數(shù)量,可記錄為Exiao。
具體而言,在統(tǒng)計音節(jié)“xiao”的相近的音節(jié)數(shù)量時,可首先分別列舉出所有音節(jié)對應(yīng)的狀態(tài)序列然后,根據(jù)每個音節(jié)對應(yīng)的狀態(tài)序列與音節(jié)“xiao”對應(yīng)的狀態(tài)序列計算相應(yīng)音節(jié)與音節(jié)“xiao”的差異度(可用Mxiao表示)。如果一個音節(jié)與音節(jié)“xiao”的差異度Mxiao小于預(yù)設(shè)差異值,則可確定該音節(jié)與音節(jié)“xiao”發(fā)音相近,從而可統(tǒng)計所有與音節(jié)“xiao”的差異度Mxiao小于預(yù)設(shè)差異值的音節(jié)的數(shù)量,并作為第三數(shù)量Exiao
其中,音節(jié)之間的差異度可通過音節(jié)對應(yīng)的狀態(tài)差的平方和來表示。例如,“xiao”對應(yīng)的狀態(tài)序列為Sxiao1,Sxiao2……,Sxiao9,“hao”對應(yīng)的狀態(tài)序列為Shao1,Shao2,……,Shao6,則音節(jié)“hao”與“xiao”的差異度Mxiao為:
Mxiao=(Sxiao1-Shao1)2+(Sxiao2-Shao2)2+……+(Sxiao6-Shao6)2+(Sxiao7)2+(Sxiao8)2+(Sxiao9)2。
S602,根據(jù)每個音節(jié)對應(yīng)的所述第一數(shù)量、所述第二數(shù)量和所述第三數(shù)量計算相應(yīng)音節(jié)的喚醒詞概率發(fā)音得分,建立所述喚醒詞概率分布表。
具體而言,可對每個音節(jié)對應(yīng)的第一數(shù)量、第二數(shù)量和第三數(shù)量進行加權(quán)求和,得到該音節(jié)的喚醒詞概率發(fā)音得分。
例如,可通過以下公式計算音節(jié)“xiao”喚醒詞概率發(fā)音得分WScore(xiao):
WScore(xiao)=h1*Cxiao+h2*Dxiao+h3*Exiao,
其中,h1、h2和h3為預(yù)設(shè)的權(quán)重值。
由此,在得到各個音節(jié)對應(yīng)的喚醒詞概率發(fā)音得分后,即完成喚醒詞概率分布表的建立。后續(xù)可根據(jù)對應(yīng)的音節(jié)在該喚醒詞概率分布表中查找相應(yīng)的喚醒詞概率發(fā)音得分。
為了實現(xiàn)上述實施例,本發(fā)明還提出一種基于人工智能的語音喚醒裝置。
圖7為根據(jù)本發(fā)明一個實施例的基于人工智能的語音喚醒裝置的結(jié)構(gòu)示意圖。
如圖7所示,根據(jù)本發(fā)明實施例的基于人工智能的語音喚醒裝置,包括:第一獲取模塊10、第二獲取模塊20、第一構(gòu)建模塊30和喚醒模塊40。
具體地,第一獲取模塊10用于獲取自定義喚醒詞對應(yīng)的發(fā)音信息。
其中,自定義喚醒詞對應(yīng)的發(fā)音信息為自定義喚醒詞音節(jié)組成結(jié)構(gòu)。第一獲取模塊10可根據(jù)用戶輸入的自定義喚醒詞文本查找對應(yīng)的發(fā)音信息,或者根據(jù)用戶輸入的自定義喚醒詞語音匹配對應(yīng)的發(fā)音信息。
第二獲取模塊20用于獲取所述發(fā)音信息對應(yīng)的近似發(fā)音信息。
自定義喚醒詞的發(fā)音信息對應(yīng)的近似發(fā)音信息可以是由與喚醒詞對應(yīng)的每個發(fā)音音節(jié)的近似音節(jié)組成的發(fā)音信息。
具體而言,第二獲取模塊20可根據(jù)自定義喚醒詞的發(fā)音信息中每個音節(jié)分別查找預(yù)先建立的近似發(fā)音庫,得到與自定義喚醒詞的各個音節(jié)具有相近發(fā)音的音節(jié),得到近似發(fā)音信息。
進而,對于自定義喚醒詞的發(fā)音信息中每個音節(jié),可分別查找對應(yīng)的近似發(fā)音信息集合,得到自定義喚醒詞的發(fā)音信息對應(yīng)的近似發(fā)音信息。
第一構(gòu)建模塊30用于根據(jù)預(yù)設(shè)的垃圾詞列表、所述發(fā)音信息和所述近似發(fā)音信息構(gòu)建喚醒詞識別網(wǎng)絡(luò)。
其中,垃圾詞列表可以是預(yù)先生成的,可記為Garbage。具體而言,可根據(jù)音素庫中的所有音素(可用phone表示)并聯(lián)成解碼器。向該解碼器輸入海量語音,從輸出結(jié)果中選取輸出次數(shù)最多的若干個結(jié)果,作為垃圾詞列表。
在本發(fā)明的一個實施例中,第一構(gòu)建模塊30可用于:根據(jù)所述垃圾詞列表和所述自定義喚醒詞中預(yù)設(shè)詞語的發(fā)音信息生成第一發(fā)音信息;根據(jù)所述垃圾詞列表、所述自定義喚醒的發(fā)音信息、所述第一發(fā)音信息和所述近似發(fā)音信息構(gòu)建所述喚醒詞識別網(wǎng)絡(luò)。
其中,預(yù)設(shè)詞語可以是位于自定義喚醒詞中預(yù)設(shè)位置的詞語,例如,位于自定義喚醒詞開頭的詞語,或者位于自定義喚醒詞結(jié)尾的詞語,可根據(jù)實際需要進行設(shè)置。
舉例來說,對于自定義喚醒詞“小都你好”,如果預(yù)設(shè)詞語為位于自定義喚醒詞開頭的詞語“小都”,則根據(jù)“小都”的發(fā)音信息和垃圾詞列表可生成第一發(fā)音信息“xiao du+Garbage”。自定義喚醒詞“小都你好”,對應(yīng)的發(fā)音信息為“xiao du ni hao”,相應(yīng)的進行發(fā)音信息為“Near_xiao Near_du Near_ni Near_hao”,將這兩個發(fā)音信息、垃圾詞列表和第一發(fā)音信息“xiao du+Garbage”進行并聯(lián),可得到如圖3所示的喚醒詞識別網(wǎng)絡(luò)。
如圖3所示,在該喚醒詞識別網(wǎng)絡(luò)中,是針對每個自定義喚醒詞進行優(yōu)化后得到的,且可根據(jù)用戶輸入的自定義喚醒詞自動構(gòu)建完成,無需專業(yè)技術(shù)人員進行干預(yù)和定制,從而能夠在提升喚醒準確率的同時,降低喚醒成本。
本發(fā)明實施例在建立的喚醒詞識別網(wǎng)絡(luò)時,通過加入自定義喚醒詞對應(yīng)的近似發(fā)音,能夠?qū)τ脩粼诎l(fā)音偏差的情況下也能喚醒系統(tǒng),例如,如果用戶輸入的語音為自定義喚醒詞的發(fā)音“xiao du ni hao”的近似發(fā)音“jiao du ni hao”,則根據(jù)本發(fā)明實施例的喚醒詞識別網(wǎng)絡(luò),仍可將其為能夠喚醒系統(tǒng)的識別結(jié)果,進行執(zhí)行喚醒操作。
此外,本發(fā)明實施例在建立的喚醒詞識別網(wǎng)絡(luò)時,還增加了由垃圾詞列表和自定義喚醒詞中預(yù)設(shè)詞語的發(fā)音信息組成的第一發(fā)音信息,從而,能夠在識別用戶輸入的語音時,根據(jù)第一發(fā)音信息組成的路徑控制誤報率。
進而,喚醒模塊40可根據(jù)上述喚醒詞識別網(wǎng)絡(luò)對用戶輸入的語音進行識別,并根據(jù)識別結(jié)果確定是否執(zhí)行喚醒操作。
具體而言,喚醒模塊40可使用現(xiàn)有的任意方法根據(jù)上述喚醒詞識別網(wǎng)絡(luò)對用戶輸入的語音進行識別,并根據(jù)識別結(jié)果確定是否執(zhí)行喚醒操作。例如,提取用戶輸入的語音的聲學特征,根據(jù)預(yù)設(shè)的聲學模型對該聲學特征進行分析,得到多個狀態(tài)的似然得分,根據(jù)得到的似然得分基于維特比算法從該喚醒詞識別網(wǎng)絡(luò)中選擇最優(yōu)路徑,作為識別結(jié)果。然后,計算識別結(jié)果的置信度,如果大于第一預(yù)設(shè)置信度,則執(zhí)行喚醒操作,否則拒絕喚醒操作。
或者,喚醒模塊40還可以通過后續(xù)實施例中根據(jù)上述喚醒詞識別網(wǎng)絡(luò)對用戶輸入的語音進行識別,并根據(jù)識別結(jié)果確定是否執(zhí)行喚醒操作。
根據(jù)本發(fā)明實施例的基于人工智能的語音喚醒裝置,通過獲取用戶自定義喚醒詞對應(yīng)的發(fā)音信息及其近似發(fā)音信息,并根據(jù)預(yù)設(shè)的垃圾詞列表、自定義喚醒詞的發(fā)音信息及其近似發(fā)音信息喚醒構(gòu)建喚醒詞識別網(wǎng)絡(luò),以對用戶輸入的語音進行識別喚醒,能夠針對不同的自定義喚醒動態(tài)構(gòu)建喚醒詞識別網(wǎng)絡(luò),根據(jù)該喚醒詞識別網(wǎng)絡(luò)得到的識別結(jié)果進行喚醒,相對于使用通用的喚醒詞網(wǎng)絡(luò),能夠有效提升喚醒的正確率,在構(gòu)建喚醒詞識別網(wǎng)絡(luò)時,增加了喚醒詞發(fā)音的近似發(fā)音,進一步提升了喚醒的準確率,并降低誤報率。此外,上述過程為全自動化,無需人工干預(yù),降低了喚醒成本低,且喚醒速度快,提升喚醒效率,利于喚醒技術(shù)的推廣和鋪開;另外,相對于使用語言模型進行識別喚醒的方法,本發(fā)明實施例使用垃圾詞列表的喚醒詞識別網(wǎng)絡(luò)代替了語言模型,內(nèi)存占用更小,同時減少硬盤占用,使得用戶可以在隨身攜帶的嵌入式設(shè)備上使用并優(yōu)化,功耗低。
圖8為根據(jù)本發(fā)明另一個實施例的基于人工智能的語音喚醒裝置的結(jié)構(gòu)示意圖。
如圖8所示,根據(jù)本發(fā)明實施例的基于人工智能的語音喚醒裝置,包括:第一獲取模塊10、第二獲取模塊20、第一構(gòu)建模塊30、喚醒模塊40、第二構(gòu)建模塊50、對齊模塊60、確定模塊70、第一調(diào)整模塊80、第三獲取模塊90、第二調(diào)整模塊100和建立模塊110。
其中,第一獲取模塊10、第二獲取模塊20和第一構(gòu)建模塊30與圖7所示實施例中相同。
第二構(gòu)建模塊50用于根據(jù)所述自定義喚醒詞構(gòu)建線性識別網(wǎng)絡(luò)。
具體而言,第二構(gòu)建模塊50可根據(jù)自定義喚醒詞對應(yīng)的各個音素分別查詢預(yù)設(shè)的狀態(tài)表,得到各個音素對應(yīng)的狀態(tài),并組成自定義喚醒對應(yīng)的狀態(tài)信息序列。然后根據(jù)該狀態(tài)信息序列構(gòu)建線性識別網(wǎng)絡(luò)。
對齊模塊60用于利用所述自定義喚醒詞的示例語音在所述線性解碼網(wǎng)絡(luò)上做強制對齊,得到所述線性解碼網(wǎng)絡(luò)對應(yīng)的似然得分總和。
其中,自定義喚醒詞的示例語音為與自定義喚醒詞對應(yīng)的標準語音,可根據(jù)自定義喚醒詞中的詞語查詢預(yù)設(shè)的語音數(shù)據(jù)庫得到。
具體而言,對齊模塊60可將示例語音對應(yīng)的狀態(tài)與線性解碼網(wǎng)絡(luò)進行強制對齊,得到線性解碼網(wǎng)絡(luò)中各個狀態(tài)的似然得分,進而,可計算各個狀態(tài)的似然得分總和,即為SumFA。
確定模塊70用于根據(jù)所述自定義喚醒詞的發(fā)音信息確定所述自定義喚醒詞對應(yīng)的音素數(shù)量。
第一調(diào)整模塊80用于根據(jù)所述音素數(shù)量對預(yù)設(shè)的語音識別過程中使用的第一活躍路徑數(shù)量進行調(diào)整,得到第二活躍路徑數(shù)量。
具體而言,可通過以下公式對第一活躍路徑數(shù)量進行調(diào)整:
T’=T+LengthPhone*k2。
其中,T’為第二活躍路徑數(shù)據(jù),T為第一活躍路徑數(shù)量,LengthPhone為自定義喚醒詞對應(yīng)的音素數(shù)量,k2為預(yù)設(shè)的第二修正系數(shù)。
其中,第一活躍路徑數(shù)量可以是默認值,例如,喚醒系統(tǒng)當前使用的活躍路徑數(shù)量,或者初始活躍路徑數(shù)量。
由此,可根據(jù)自定義喚醒詞對應(yīng)的音素數(shù)量動態(tài)對尋找最優(yōu)路徑過程中使用的活躍路徑數(shù)量進行調(diào)整,相對于對于所有喚醒詞都使用相同的活躍路徑數(shù)量的方案,通過簡單方便的實現(xiàn)方式,可針對不同的自定義喚醒詞設(shè)置不同的活躍路徑數(shù)量,能夠使得喚醒識別結(jié)果能夠達到定制的水準,有效提升喚醒準確性和效率,且能夠有效降低開發(fā)難度和功耗。
第三獲取模塊90用于獲取所述自定義喚醒詞的文本長度信息,并獲取所述自定義喚醒詞的發(fā)音得分。
在本發(fā)明的實施例中,第三獲取模塊90可用于查詢預(yù)先建立的喚醒詞概率分布表,得到所述自定義喚醒詞對應(yīng)的各個音節(jié)的發(fā)音得分。
第二調(diào)整模塊100用于根據(jù)所述文本長度信息、所述發(fā)音得分和所述似然得分總和,對預(yù)設(shè)的第一置信度閾值進行調(diào)整,得到第二置信度閾值。
具體而言,可通過一下公式對第一置信度進行調(diào)整,得到第二置信度:
ThresNew=ThresO+WScore*LengthTxt+SumFA/k3,
其中,ThresNew為第二置信度,ThresO為第一置信度,WScore為自定義喚醒詞的發(fā)音得分,LengthTxt為自定義喚醒詞對應(yīng)的文本長度信息,SumFA為自定義喚醒詞對應(yīng)的線性解碼網(wǎng)絡(luò)的似然得分總和,k3為預(yù)設(shè)的第三修正系數(shù)。
由此,可根據(jù)自定義喚醒詞對應(yīng)的文本長度信息、所述發(fā)音得分和所述似然得分總和對置信度閾值進行調(diào)整,相對于對于所有喚醒詞都使用相同的置信度閾值的方案,通過簡單方便的實現(xiàn)方式,可針對不同的自定義喚醒詞設(shè)置不同的置信度閾值,從而能夠使得喚醒識別結(jié)果能夠達到定制的水準,有效提升喚醒準確性和效率,且能夠有效降低開發(fā)難度和功耗。
喚醒模塊40可進一步包括:提取單元41、分析單元42、修正單元43和識別單元44。
其中,提取單元41用于提取所述語音的聲學特征。
具體而言,提取單元41可將用戶輸入的語音切分為多個語音幀,并提取每個語音幀中的聲學特征。其中,聲學特征可以是40維的FilterBank特征,也可以是13維的MFCC(Mel Frequency Cepstral Coefficent,梅爾頻率倒譜系數(shù))特征。
分析單元42用于根據(jù)預(yù)設(shè)的聲學模型對所述聲學特征進行分析,得到所述語音對應(yīng)的N個狀態(tài)及所述N個狀態(tài)的似然得分,其中,N為正整數(shù)。
其中,聲學模型可為預(yù)先建立的。舉例來說,聲學模型可為卷積神經(jīng)網(wǎng)絡(luò)模型、深度神經(jīng)網(wǎng)絡(luò)模型等。
具體而言,聲學特征為一個向量,在本發(fā)明的實施例中,分析單元42可將聲學特征向量與聲學模型的矩陣相乘,得到狀態(tài)的似然得分向量。其中,似然得分向量中的每個元素表示一個狀態(tài)的似然得分。舉例來說,得到的似然得分向量可為D1,D2,……DN,其中,Di為第i個狀態(tài)的似然得分。
修正單元43用于如果第i個狀態(tài)屬于所述自定義喚醒詞對應(yīng)的狀態(tài)集合,則根據(jù)所述似然得分總和對所述第i個狀態(tài)的似然得分進行修正,其中,i為不大于N的正整數(shù)。
具體而言,如果第i個狀態(tài)屬于所述自定義喚醒詞對應(yīng)的狀態(tài)集合,則可通過以下公司對第i個狀態(tài)的似然得分進行修正:
Di’=Di+SumFA/k1,
其中,Di’為第i個狀態(tài)修正后的似然得分,Di為第i個狀態(tài)修正前的似然得分,SumFA為自定義喚醒詞對應(yīng)的線性解碼網(wǎng)絡(luò)的似然得分總和,k1為預(yù)設(shè)的第一修正參數(shù)。
由此,使用自定義喚醒詞對應(yīng)的線性解碼網(wǎng)絡(luò)的似然得分總和,對屬于自定義喚醒詞對應(yīng)的狀態(tài)集合的狀態(tài)的似然得分進行修正,即提高其似然得分,降低非喚醒詞的影響,由此,能夠在后續(xù)識別過程中得到更加準確的識別結(jié)果,進而提升語音喚醒的準確性。
識別單元44用于根據(jù)所述N個狀態(tài)修正后的似然得分,基于所述喚醒詞識別網(wǎng)絡(luò),采用維特比算法對所述語音進行識別。
其中,基于所述喚醒詞識別網(wǎng)絡(luò),采用維特比算法對所述語音進行識別的過程,即根據(jù)N個狀態(tài)修正后的似然得分,在上述喚醒詞識別網(wǎng)絡(luò)中尋找最優(yōu)路徑的過程,并將最優(yōu)路徑作為識別結(jié)果。
具體而言,在本發(fā)明的一個實施例中,識別單元44可用于:根據(jù)所述N個狀態(tài)修正后的似然得分和所述第二活躍路徑數(shù)量,從所述喚醒詞識別網(wǎng)絡(luò)中選取最優(yōu)識別路徑,得到所述語音的識別結(jié)果。
然后,喚醒模塊40根據(jù)識別結(jié)果確定是否執(zhí)行喚醒操作。具體而言,喚醒模塊40可用于:獲取所述識別結(jié)果的置信度;如果所述置信度大于所述第二置信度閾值,則執(zhí)行喚醒操作;如果所述置信度不大于所述第二置信度閾值,則拒絕執(zhí)行喚醒操作。
需要說明的是,可使用任意可選的方法獲取識別結(jié)果的置信度。
舉例來說,可計算喚醒詞識別網(wǎng)絡(luò)中所有活動節(jié)點的聲學特征得分的第一平均值,然后計算喚醒詞識別網(wǎng)絡(luò)中喚醒詞對應(yīng)的Y個節(jié)點的聲學特征得分的第二平均值,最后根據(jù)第一平均值和第二平均值計算識別結(jié)果的置信度。
或者,還可根據(jù)預(yù)設(shè)的模型計算識別結(jié)果的置信度。該預(yù)設(shè)模型可以是filler模型。其中,filler模型是所有語音信息的聚類,也就是說filler模型包含所有語音信息的聲學特征。具體地,可計算每個語音幀在filler模型中的似然得分,然后用語音幀的聲學模型得分減去該語音幀的似然得分獲得兩者的差值,最后求多個語音幀差值的平均值,該平均值為置信度。
在本發(fā)明的一個實施例中,第三獲取模塊90所使用的用于查詢各個音節(jié)的喚醒概率得分的喚醒詞概率分布表,旨在統(tǒng)計喚醒詞的喚醒成功率,誤報率等信息,以用于分析喚醒詞的好壞,喚醒成功率等信息。喚醒詞概率分布表可由建立模塊110建立。
建立模塊110用于通過以下步驟建立所述喚醒詞概率分布表:對于每個音節(jié),統(tǒng)計字庫中發(fā)音包括所述音節(jié)的字符的第一數(shù)量,并統(tǒng)計預(yù)設(shè)文本數(shù)據(jù)集合中發(fā)音包括所述音節(jié)的字符的第二數(shù)量,并統(tǒng)計與所述音節(jié)具有相似發(fā)音的音節(jié)的第三數(shù)量;根據(jù)每個音節(jié)對應(yīng)的所述第一數(shù)量、所述第二數(shù)量和所述第三數(shù)量計算相應(yīng)音節(jié)的喚醒詞概率發(fā)音得分,建立所述喚醒詞概率分布表。
具體實現(xiàn),可參照圖6所示實施例。
本發(fā)明實施例的基于人工智能的語音喚醒裝置,根據(jù)用戶自定義喚醒詞對應(yīng)的發(fā)音信息及其近似發(fā)音信息和預(yù)設(shè)的垃圾詞列表構(gòu)建喚醒詞識別網(wǎng)絡(luò),使用該喚醒詞識別網(wǎng)對用戶輸入的語音進行識別喚醒,并可對識別過程中所使用的該語音對應(yīng)的聲學特征模型得分、活躍路徑數(shù)量和置信度閾值進行修正,能夠有效提升喚醒的正確率,并降低誤報率。此外,上述過程為全自動化,無需人工干預(yù),降低了喚醒成本低,且喚醒速度快,提升喚醒效率,利于喚醒技術(shù)的推廣和鋪開;另外,相對于使用語言模型進行識別喚醒的方法,本發(fā)明實施例使用垃圾詞列表的喚醒詞識別網(wǎng)絡(luò)代替了語言模型,內(nèi)存占用更小,同時減少硬盤占用,使得用戶可以在隨身攜帶的嵌入式設(shè)備上使用并優(yōu)化,功耗低。
應(yīng)當理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來實現(xiàn)。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實現(xiàn)。例如,如果用硬件來實現(xiàn),和在另一實施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項或他們的組合來實現(xiàn):具有用于對數(shù)據(jù)信號實現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現(xiàn)場可編程門陣列(FPGA)等。
本技術(shù)領(lǐng)域的普通技術(shù)人員可以理解實現(xiàn)上述實施例方法攜帶的全部或部分步驟是可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質(zhì)中,該程序在執(zhí)行時,包括方法實施例的步驟之一或其組合。
盡管上面已經(jīng)示出和描述了本發(fā)明的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本發(fā)明的限制,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的范圍內(nèi)可以對上述實施例進行變化、修改、替換和變型。