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