本申請涉及語音識別技術領域,尤其涉及一種基于人工智能的語音喚醒方法、裝置和計算機設備。
背景技術:
在智能家居或者語音交互系統(tǒng)中,語音喚醒(wakeword)技術應用非常廣泛。但是語音喚醒的效果和運算量大大地降低了語音喚醒的實際應用體驗,提高了語音喚醒對設備硬件的要求,例如:如果語音喚醒的誤喚醒率在應用中大于一個閾值,如1個/3小時,這樣的喚醒誤觸發(fā)頻率就有可能引起用戶的反感;另一方面,如果語音喚醒的運算量超出了一些低端芯片的運算能力,就會制約很多產品使用語音喚醒技術。
現(xiàn)有的相關技術中,語音喚醒使用的技術是關鍵詞識別(keyword-spotting)方法,通過設計一個小的深度神經網(wǎng)絡(deepneuralnetworks;以下簡稱:dnn)的模型,搭建一個巧妙的小解碼網(wǎng)絡,配合一些關鍵詞檢出的小技巧(trick),實現(xiàn)語音喚醒功能。
但是,上述關鍵詞識別方法的語音喚醒技術,模型參數(shù)量較大,而且針對不同的喚醒詞,填充詞(filler)的設計均要改變,相應的解碼參數(shù)和檢出的trick都要進行調整,很難有一個統(tǒng)一的算法來確保每一個喚醒詞的效果處于一個穩(wěn)定的水平,而且這種設定好filler之后,喚醒詞的誤識水平就固定了,并不能夠靈活方便的對誤識的喚醒詞進行調整和學習。
技術實現(xiàn)要素:
本申請的目的旨在至少在一定程度上解決相關技術中的技術問題之一。
為此,本申請的第一個目的在于提出一種基于人工智能的語音喚醒方法。該方法可以有效地降低基于卷積神經網(wǎng)絡的語音喚醒模型的參數(shù)量,從而達到降低運算量的目的,另外該方法通過使用后驗概率的策略,可以使得運算量進一步減??;并且該方法針對喚醒詞和非喚醒詞有更好的區(qū)分度,可以提升語音喚醒的效果。
本申請的第二個目的在于提出一種基于人工智能的語音喚醒裝置。
本申請的第三個目的在于提出一種計算機設備。
本申請的第四個目的在于提出一種計算機可讀存儲介質。
為了實現(xiàn)上述目的,本申請第一方面實施例的基于人工智能的語音喚醒方法,包括:對在線錄制的語音進行加窗分幀操作,獲得至少一個語音幀;對所述語音幀進行特征提取,獲得語音特征;通過基于卷積神經網(wǎng)絡的語音喚醒模型對所述語音幀包含的靜態(tài)的語音特征進行計算,獲得所述語音幀包含的靜態(tài)的語音特征對應于非喚醒詞類別和喚醒詞類別的后驗概率;當所述語音幀包含的靜態(tài)的語音特征對應于喚醒詞類別的后驗概率大于或等于預定閾值時,確定所述在線錄制的語音中包括喚醒詞。
本申請實施例的基于人工智能的語音喚醒方法中,對在線錄制的語音進行加窗分幀操作,獲得至少一個語音幀之后,對上述語音幀進行特征提取,獲得語音特征,然后通過基于卷積神經網(wǎng)絡的語音喚醒模型對上述語音幀包含的靜態(tài)的語音特征進行計算,獲得上述語音幀包含的靜態(tài)的語音特征對應于非喚醒詞類別和喚醒詞類別的后驗概率,當上述語音幀包含的靜態(tài)的語音特征對應于喚醒詞類別的后驗概率大于或等于預定閾值時,確定在線錄制的語音中包括喚醒詞,上述基于卷積神經網(wǎng)絡的語音喚醒模型的輸入特征較少,從而可以達到降低運算量的目的,另外該方法通過使用后驗概率的策略,使得運算量進一步減??;并且該方法針對喚醒詞和非喚醒詞有更好的區(qū)分度,可以提升語音喚醒的效果;另外,該方法不需要針對每一個喚醒詞挑選不同的非喚醒詞,提高了該方法的通用性。
為了實現(xiàn)上述目的,本申請第二方面實施例的基于人工智能的語音喚醒裝置,包括:分幀模塊,用于對在線錄制的語音進行加窗分幀操作,獲得至少一個語音幀;提取模塊,用于對所述分幀模塊獲得的語音幀進行特征提取,獲得語音特征;計算模塊,用于通過基于卷積神經網(wǎng)絡的語音喚醒模型對所述語音幀包含的靜態(tài)的語音特征進行計算,獲得所述語音幀包含的靜態(tài)的語音特征對應于非喚醒詞類別和喚醒詞類別的后驗概率;喚醒模塊,用于當所述計算模塊獲得的所述語音幀包含的靜態(tài)的語音特征對應于喚醒詞類別的后驗概率大于或等于預定閾值時,確定所述在線錄制的語音中包括喚醒詞。
本申請實施例的基于人工智能的語音喚醒裝置中,分幀模塊對在線錄制的語音進行加窗分幀操作,獲得至少一個語音幀之后,提取模塊對上述語音幀進行特征提取,獲得語音特征,然后計算模塊通過基于卷積神經網(wǎng)絡的語音喚醒模型對上述語音幀包含的靜態(tài)的語音特征進行計算,獲得上述語音幀包含的靜態(tài)的語音特征對應于非喚醒詞類別和喚醒詞類別的后驗概率,當上述語音幀包含的靜態(tài)的語音特征對應于喚醒詞類別的后驗概率大于或等于預定閾值時,確定模塊確定在線錄制的語音中包括喚醒詞,上述基于卷積神經網(wǎng)絡的語音喚醒模型的輸入特征較少,從而可以達到降低運算量的目的,另外該裝置通過使用后驗概率的策略,使得運算量進一步減?。徊⑶以撗b置針對喚醒詞和非喚醒詞有更好的區(qū)分度,可以提升語音喚醒的效果;另外,該裝置不需要針對每一個喚醒詞挑選不同的非喚醒詞,提高了該裝置的通用性。
為了實現(xiàn)上述目的,本申請第三方面實施例的計算機設備,包括:一個或多個處理器;存儲裝置,用于存儲一個或多個程序,當所述一個或多個程序被所述一個或多個處理器執(zhí)行,使得所述一個或多個處理器實現(xiàn)如上所述的方法。
為了實現(xiàn)上述目的,本申請第四方面實施例的計算機可讀介質,其上存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)如上所述的方法。
本申請附加的方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本申請的實踐了解到。
附圖說明
本申請上述的和/或附加的方面和優(yōu)點從下面結合附圖對實施例的描述中將變得明顯和容易理解,其中:
圖1為本申請基于人工智能的語音喚醒方法一個實施例的流程圖;
圖2為本申請基于人工智能的語音喚醒方法另一個實施例的流程圖;
圖3為本申請基于人工智能的語音喚醒方法再一個實施例的流程圖;
圖4為本申請基于人工智能的語音喚醒方法再一個實施例的流程圖;
圖5為本申請基于人工智能的語音喚醒方法再一個實施例的流程圖;
圖6為本申請基于人工智能的語音喚醒裝置一個實施例的結構示意圖;
圖7為本申請基于人工智能的語音喚醒裝置另一個實施例的結構示意圖;
圖8為本申請計算機設備一個實施例的結構示意圖。
具體實施方式
下面詳細描述本申請的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本申請,而不能理解為對本申請的限制。相反,本申請的實施例包括落入所附加權利要求書的精神和內涵范圍內的所有變化、修改和等同物。
人工智能(artificialintelligence;以下簡稱:ai)是研究、開發(fā)用于模擬、延伸和擴展人的智能的理論、方法、技術及應用系統(tǒng)的一門新的技術科學。人工智能是計算機科學的一個分支,它企圖了解智能的實質,并生產出一種新的能以人類智能相似的方式做出反應的智能機器,該領域的研究包括機器人、語言識別、圖像識別、自然語言處理和專家系統(tǒng)等。
圖1為本申請基于人工智能的語音喚醒方法一個實施例的流程圖,如圖1所示,上述基于人工智能的語音喚醒方法可以包括:
步驟101,對在線錄制的語音進行加窗分幀操作,獲得至少一個語音幀。
具體地,在對在線錄制的語音進行特征提取時,需要先對上述語音進行加窗分幀操作。舉例來說,窗長為25毫秒的語音,相鄰幀之間的幀移為10毫秒,也就是說,每10毫秒語音劃分為一個語音幀。
步驟102,對上述語音幀進行特征提取,獲得語音特征。
具體地,在對在線錄制的語音進行加窗分幀操作之后,就可以對獲得的語音幀進行特征提取,獲得語音特征,本實施例中,上述語音特征可以為濾波器組(filterbank;以下簡稱:fbank)特征,也可以為其他的語音特征,例如梅爾頻率倒譜系數(shù)(melfrequencycepstrumcoefficient;以下簡稱:mfcc)特征,本實施例對此不作限定,但本實施例以上述語音特征為fbank特征為例進行說明。
步驟103,通過基于卷積神經網(wǎng)絡(convolutionalneuralnetwork;以下簡稱:cnn)的語音喚醒模型對上述語音幀包含的靜態(tài)的語音特征進行計算,獲得上述語音幀包含的靜態(tài)的語音特征對應于非喚醒詞類別和喚醒詞類別的后驗概率。
本實施例中,上述語音幀包含的靜態(tài)的語音特征包括:當前語音幀、上述當前語音幀之前第一數(shù)量的語音幀和上述當前語音幀之后第二數(shù)量的語音幀所包含的靜態(tài)的語音特征。
其中,上述第一數(shù)量和第二數(shù)量可以在具體實現(xiàn)時,根據(jù)系統(tǒng)性能和/或實現(xiàn)需求等自行設定,本實施例對上述第一數(shù)量和第二數(shù)量的大小不作限定,舉例來說,上述第一數(shù)量可以為23,上述第二數(shù)量可以為8。
具體地,上述基于cnn的語音喚醒模型可以為6層的cnn模型,為提高語音喚醒性能,上述基于cnn的語音喚醒模型使用連續(xù)多幀包含的靜態(tài)的fbank特征作為輸入,本實施例中,上述基于cnn的語音喚醒模型使用當前語音幀、當前語音幀之前的23個語音幀和當前語音幀之后的8個語音幀所包含的靜態(tài)的fbank特征作為輸入。
本實施例中,基于cnn的語音喚醒模型的輸出至少包括兩個節(jié)點,分別為非喚醒詞類別(即filler類別)和喚醒詞類別,對于輸入的上述語音幀包含的靜態(tài)的語音特征,基于cnn的語音喚醒模型經過計算,可以輸出上述語音幀包含的靜態(tài)的語音特征對應于非喚醒詞類別和喚醒詞類別的后驗概率。
在具體實現(xiàn)時,可以將上述喚醒詞類別再劃分為兩個類別,也就是說,基于cnn的語音喚醒模型的輸出可以包括三個節(jié)點,一個非喚醒詞類別(即filler類別)和兩個喚醒詞類別,本實施例對基于cnn的語音喚醒模型的輸出中所包含的喚醒詞類別的個數(shù)不作限定。
步驟104,當上述語音幀包含的靜態(tài)的語音特征對應于喚醒詞類別的后驗概率大于或等于預定閾值時,確定上述在線錄制的語音中包括喚醒詞。
其中,上述預定閾值可以在具體實現(xiàn)時,根據(jù)系統(tǒng)性能和/或實現(xiàn)需求等自行設定,本實施例對上述預定閾值的大小不作限定,舉例來說,上述預定閾值可以為75%。
上述基于人工智能的語音喚醒方法中,對在線錄制的語音進行加窗分幀操作,獲得至少一個語音幀之后,對上述語音幀進行特征提取,獲得語音特征,然后通過基于卷積神經網(wǎng)絡的語音喚醒模型對上述語音幀包含的靜態(tài)的語音特征進行計算,獲得上述語音幀包含的靜態(tài)的語音特征對應于非喚醒詞類別和喚醒詞類別的后驗概率,當上述語音幀包含的靜態(tài)的語音特征對應于喚醒詞類別的后驗概率大于或等于預定閾值時,確定在線錄制的語音中包括喚醒詞,上述基于卷積神經網(wǎng)絡的語音喚醒模型的輸入特征較少,從而可以達到降低運算量的目的,另外該方法通過使用后驗概率的策略,使得運算量進一步減??;并且該方法針對喚醒詞和非喚醒詞有更好的區(qū)分度,可以提升語音喚醒的效果;另外,該方法不需要針對每一個喚醒詞挑選不同的非喚醒詞,提高了該方法的通用性。
圖2為本申請基于人工智能的語音喚醒方法另一個實施例的流程圖,如圖2所示,步驟101之前,還可以包括:
步驟201,對用戶輸入的語音進行在線錄制。
本實施例中,對于具有語音喚醒功能的設備來說,上述設備的錄音模塊一直對外部的聲音進行在線錄制,以便在用戶輸入語音時,對用戶輸入的語音進行在線錄制,以觸發(fā)后續(xù)流程的執(zhí)行。
圖3為本申請基于人工智能的語音喚醒方法再一個實施例的流程圖,如圖3所示,步驟103之后,還可以包括:
步驟301,對預定數(shù)量的語音幀包含的靜態(tài)的語音特征對應于非喚醒詞類別和喚醒詞類別的后驗概率分別進行累加,獲得預定數(shù)量的語音幀包含的靜態(tài)的語音特征對應于非喚醒詞類別的后驗概率,以及預定數(shù)量的語音幀包含的靜態(tài)的語音特征對應于喚醒詞類別的后驗概率。
這時,步驟104中,上述語音幀包含的靜態(tài)的語音特征對應于喚醒詞類別的后驗概率大于或等于預定閾值可以為:預定數(shù)量的語音幀包含的靜態(tài)的語音特征對應于喚醒詞類別的后驗概率大于或等于預定閾值。
也就是說,步驟104可以為:
步驟302,當預定數(shù)量的語音幀包含的靜態(tài)的語音特征對應于喚醒詞類別的后驗概率大于或等于預定閾值時,確定上述在線錄制的語音中包括喚醒詞。
也就是說,本實施例在喚醒詞檢出上,采用固定窗長的平滑策略,對預定數(shù)量的語音幀包含的靜態(tài)的語音特征對應于非喚醒詞類別和喚醒詞類別的后驗概率分別進行累加,當預定數(shù)量的語音幀包含的靜態(tài)的語音特征對應于喚醒詞類別的后驗概率大于或等于預定閾值時,即確定檢出喚醒詞,也就是確定上述在線錄制的語音中包括喚醒詞。
其中,上述預定數(shù)量可以在具體實現(xiàn)時根據(jù)系統(tǒng)性能和/或實現(xiàn)需求自行設定,本實施例對上述預定數(shù)量的大小不作限定。
圖4為本申請基于人工智能的語音喚醒方法再一個實施例的流程圖,如圖4所示,步驟103之前,還包括:
步驟401,基于聯(lián)結主義時間分類器(connectionisttemporalclassifier;以下簡稱:ctc)的訓練準則對基于cnn的初始模型進行訓練,獲得上述基于cnn的語音喚醒模型。
本實施例中,對6層的cnn模型的訓練準則由交叉熵(crossentropy)變?yōu)閏tc,基于ctc的訓練準則對6層的基于cnn的初始模型進行訓練,可以獲得上述基于cnn的語音喚醒模型。
圖5為本申請基于人工智能的語音喚醒方法再一個實施例的流程圖,如圖5所示,本申請圖4所示實施例中,步驟401可以包括:
步驟501,利用訓練數(shù)據(jù),基于ctc的訓練準則對基于cnn的初始模型進行訓練,獲得基于cnn的種子模型。
步驟502,通過測試數(shù)據(jù)對上述基于cnn的種子模型進行測試,獲得上述基于cnn的種子模型誤識別的測試數(shù)據(jù)。
步驟503,通過上述誤識別的測試數(shù)據(jù)對上述基于cnn的種子模型進行再次訓練,直至上述基于cnn的種子模型在開發(fā)集上收斂,獲得上述基于cnn的語音喚醒模型。
具體地,通過上述誤識別的測試數(shù)據(jù)對上述基于cnn的種子模型進行再次訓練可以為:將上述基于cnn的種子模型誤識別的測試數(shù)據(jù)添加到步驟501中提到的訓練數(shù)據(jù)中,然后再利用添加了這些測試數(shù)據(jù)的訓練數(shù)據(jù),對上述基于cnn的種子模型進行再次訓練,重復步驟502與步驟503,直至上述基于cnn的種子模型在開發(fā)集上收斂,獲得上述基于cnn的語音喚醒模型。
其中,上述開發(fā)集是不同于步驟501中的訓練數(shù)據(jù),也不同于步驟502中的測試數(shù)據(jù)的一個數(shù)據(jù)集,上述開發(fā)集用于對訓練獲得的基于cnn的種子模型的喚醒性能進行監(jiān)控,以獲得最終的基于cnn的語音喚醒模型;其中,上述基于cnn的種子模型在開發(fā)集上收斂,是指基于cnn的種子模型在開發(fā)集上的喚醒性能不再提高。
也就是說,利用添加了上述基于cnn的種子模型誤識別的測試數(shù)據(jù)的訓練數(shù)據(jù),對上述基于cnn的種子模型進行再次訓練之后,在每一輪訓練完成之后,在開發(fā)集上對本輪訓練獲得的基于cnn的種子模型的喚醒性能進行監(jiān)測,一般來說,基于cnn的種子模型在開發(fā)集上的喚醒性能是先下降,然后經過多輪訓練之后,基于cnn的種子模型在開發(fā)集上的喚醒性能會慢慢提高,直至基于cnn的種子模型在開發(fā)集上的喚醒性能不再提高,就可以確定上述基于cnn的種子模型在開發(fā)集上收斂,這時獲得的基于cnn的種子模型即為最終獲得的基于cnn的語音喚醒模型。
本申請實施例提供的基于人工智能的語音喚醒方法,通過使用cnn-ctc的方案,大大地縮小了基于cnn的語音喚醒模型的輸出層的節(jié)點數(shù),從而有效地降低了基于cnn的語音喚醒模型的參數(shù)量,達到降低運算量的目的;通過使用后驗概率平滑的策略,使得運算量進一步減??;另外,本申請實施例提供的基于人工智能的語音喚醒方法中使用一個非喚醒詞(filler)類別,增加了訓練的靈活性,使得上述基于人工智能的語音喚醒方法非常的通用,不需要再針對每一個喚醒詞挑選不同的filler;本申請實施例提供的基于人工智能的語音喚醒方法中的基于cnn的語音喚醒模型通過自我學習調優(yōu)的方法,可以更好地提升語音喚醒的效果,另外,上述基于cnn的語音喚醒模型的輸出層簡單,目標鮮明,針對喚醒詞和非喚醒詞有更好的區(qū)分度,可以進一步提升語音喚醒的效果。
圖6為本申請基于人工智能的語音喚醒裝置一個實施例的結構示意圖,本申請實施例中的基于人工智能的語音喚醒裝置可以作為具有語音喚醒功能的設備實現(xiàn)本申請實施例提供的基于人工智能的語音喚醒方法。如圖6所示,上述基于人工智能的語音喚醒裝置可以包括:分幀模塊61、提取模塊62、計算模塊63和喚醒模塊64;
其中,分幀模塊61,用于對在線錄制的語音進行加窗分幀操作,獲得至少一個語音幀;具體地,在對在線錄制的語音進行特征提取時,分幀模塊61需要先對上述語音進行加窗分幀操作。舉例來說,窗長為25毫秒的語音,相鄰幀之間的幀移為10毫秒,也就是說,每10毫秒語音劃分為一個語音幀。
提取模塊62,用于對分幀模塊61獲得的語音幀進行特征提取,獲得語音特征;具體地,在分幀模塊61對在線錄制的語音進行加窗分幀操作之后,提取模塊62就可以對獲得的語音幀進行特征提取,獲得語音特征,本實施例中,上述語音特征可以為fbank特征,也可以為其他的語音特征,例如mfcc特征,本實施例對此不作限定,但本實施例以上述語音特征為fbank特征為例進行說明。
計算模塊63,用于通過基于cnn的語音喚醒模型對上述語音幀包含的靜態(tài)的語音特征進行計算,獲得上述語音幀包含的靜態(tài)的語音特征對應于非喚醒詞類別和喚醒詞類別的后驗概率;本實施例中,上述語音幀包含的靜態(tài)的語音特征包括:當前語音幀、上述當前語音幀之前第一數(shù)量的語音幀和上述當前語音幀之后第二數(shù)量的語音幀所包含的靜態(tài)的語音特征。
其中,上述第一數(shù)量和第二數(shù)量可以在具體實現(xiàn)時,根據(jù)系統(tǒng)性能和/或實現(xiàn)需求等自行設定,本實施例對上述第一數(shù)量和第二數(shù)量的大小不作限定,舉例來說,上述第一數(shù)量可以為23,上述第二數(shù)量可以為8。
具體地,上述基于cnn的語音喚醒模型可以為6層的cnn模型,為提高語音喚醒性能,上述基于cnn的語音喚醒模型使用連續(xù)多幀包含的靜態(tài)的fbank特征作為輸入,本實施例中,上述基于cnn的語音喚醒模型使用當前語音幀、當前語音幀之前的23個語音幀和當前語音幀之后的8個語音幀所包含的靜態(tài)的fbank特征作為輸入。
本實施例中,基于cnn的語音喚醒模型的輸出至少包括兩個節(jié)點,分別為非喚醒詞類別(即filler類別)和喚醒詞類別,對于輸入的上述語音幀包含的靜態(tài)的語音特征,基于cnn的語音喚醒模型經過計算,可以輸出上述語音幀包含的靜態(tài)的語音特征對應于非喚醒詞類別和喚醒詞類別的后驗概率。
在具體實現(xiàn)時,可以將上述喚醒詞類別再劃分為兩個類別,也就是說,基于cnn的語音喚醒模型的輸出可以包括三個節(jié)點,一個非喚醒詞類別(即filler類別)和兩個喚醒詞類別,本實施例對基于cnn的語音喚醒模型的輸出中所包含的喚醒詞類別的個數(shù)不作限定。
喚醒模塊64,用于當計算模塊63獲得的上述語音幀包含的靜態(tài)的語音特征對應于喚醒詞類別的后驗概率大于或等于預定閾值時,確定上述在線錄制的語音中包括喚醒詞。
其中,上述預定閾值可以在具體實現(xiàn)時,根據(jù)系統(tǒng)性能和/或實現(xiàn)需求等自行設定,本實施例對上述預定閾值的大小不作限定,舉例來說,上述預定閾值可以為75%。
上述基于人工智能的語音喚醒裝置中,分幀模塊61對在線錄制的語音進行加窗分幀操作,獲得至少一個語音幀之后,提取模塊62對上述語音幀進行特征提取,獲得語音特征,然后計算模塊63通過基于卷積神經網(wǎng)絡的語音喚醒模型對上述語音幀包含的靜態(tài)的語音特征進行計算,獲得上述語音幀包含的靜態(tài)的語音特征對應于非喚醒詞類別和喚醒詞類別的后驗概率,當上述語音幀包含的靜態(tài)的語音特征對應于喚醒詞類別的后驗概率大于或等于預定閾值時,確定模塊64確定在線錄制的語音中包括喚醒詞,上述基于卷積神經網(wǎng)絡的語音喚醒模型的輸入特征較少,從而可以達到降低運算量的目的,另外該裝置通過使用后驗概率的策略,使得運算量進一步減小;并且該裝置針對喚醒詞和非喚醒詞有更好的區(qū)分度,可以提升語音喚醒的效果;另外,該裝置不需要針對每一個喚醒詞挑選不同的非喚醒詞,提高了該裝置的通用性。
圖7為本申請基于人工智能的語音喚醒裝置另一個實施例的結構示意圖,與圖6所示的基于人工智能的語音喚醒裝置相比,不同之處在于,圖7所示的基于人工智能的語音喚醒裝置還可以包括:
錄制模塊65,用于在分幀模塊61對在線錄制的語音進行加窗分幀操作,獲得至少一個語音幀之前,對用戶輸入的語音進行在線錄制。
本實施例中,對于具有語音喚醒功能的設備來說,錄制模塊65一直對外部的聲音進行在線錄制,以便在用戶輸入語音時,對用戶輸入的語音進行在線錄制,以觸發(fā)后續(xù)流程的執(zhí)行。
進一步地,本實施例中,計算模塊63,還用于在獲得上述語音幀包含的靜態(tài)的語音特征對應于非喚醒詞類別和喚醒詞類別的后驗概率之后,對預定數(shù)量的語音幀包含的靜態(tài)的語音特征對應于非喚醒詞類別和喚醒詞類別的后驗概率分別進行累加,獲得預定數(shù)量的語音幀包含的靜態(tài)的語音特征對應于非喚醒詞類別的后驗概率,以及預定數(shù)量的語音幀包含的靜態(tài)的語音特征對應于喚醒詞類別的后驗概率;
這時,上述語音幀包含的靜態(tài)的語音特征對應于喚醒詞類別的后驗概率大于或等于預定閾值包括:預定數(shù)量的語音幀包含的靜態(tài)的語音特征對應于喚醒詞類別的后驗概率大于或等于預定閾值。
也就是說,本實施例在喚醒詞檢出上,采用固定窗長的平滑策略,計算模塊63對預定數(shù)量的語音幀包含的靜態(tài)的語音特征對應于非喚醒詞類別和喚醒詞類別的后驗概率分別進行累加,當預定數(shù)量的語音幀包含的靜態(tài)的語音特征對應于喚醒詞類別的后驗概率大于或等于預定閾值時,確定模塊64即確定檢出喚醒詞,也就是確定上述在線錄制的語音中包括喚醒詞。
其中,上述預定數(shù)量可以在具體實現(xiàn)時根據(jù)系統(tǒng)性能和/或實現(xiàn)需求自行設定,本實施例對上述預定數(shù)量的大小不作限定。
進一步地,上述基于人工智能的語音喚醒裝置還可以包括:
訓練模塊66,用于在計算模塊63通過基于cnn的語音喚醒模型對上述語音幀包含的靜態(tài)的語音特征進行計算之前,基于ctc的訓練準則對基于cnn的初始模型進行訓練,獲得基于cnn的語音喚醒模型。
本實施例中,對6層的cnn模型的訓練準則由交叉熵(crossentropy)變?yōu)閏tc,基于ctc的訓練準則對6層的基于cnn的初始模型進行訓練,可以獲得上述基于cnn的語音喚醒模型。
本實施例中,訓練模塊66可以包括:模型訓練子模塊661和數(shù)據(jù)挑選子模塊662;
其中,模型訓練子模塊661,用于利用訓練數(shù)據(jù),基于ctc的訓練準則對基于cnn的初始模型進行訓練,獲得基于cnn的種子模型;
數(shù)據(jù)挑選子模塊662,用于通過測試數(shù)據(jù)對上述基于cnn的種子模型進行測試,獲得上述基于cnn的種子模型誤識別的測試數(shù)據(jù)。
模型訓練子模塊661,還用于通過上述誤識別的測試數(shù)據(jù)對上述基于cnn的種子模型進行再次訓練,直至上述基于cnn的種子模型在開發(fā)集上收斂,獲得上述基于cnn的語音喚醒模型。
具體地,模型訓練子模塊661通過上述誤識別的測試數(shù)據(jù)對上述基于cnn的種子模型進行再次訓練可以為:將上述基于cnn的種子模型誤識別的測試數(shù)據(jù)添加到訓練數(shù)據(jù)中,然后模型訓練子模塊661再利用添加了這些測試數(shù)據(jù)的訓練數(shù)據(jù),對上述基于cnn的種子模型進行再次訓練,重復上述過程,直至上述基于cnn的種子模型在開發(fā)集上收斂,獲得上述基于cnn的語音喚醒模型。
其中,上述開發(fā)集是不同于訓練數(shù)據(jù),也不同于測試數(shù)據(jù)的一個數(shù)據(jù)集,上述開發(fā)集用于對訓練獲得的基于cnn的種子模型的喚醒性能進行監(jiān)控,以獲得最終的基于cnn的語音喚醒模型;其中,上述基于cnn的種子模型在開發(fā)集上收斂,是指基于cnn的種子模型在開發(fā)集上的喚醒性能不再提高。
也就是說,利用添加了上述基于cnn的種子模型誤識別的測試數(shù)據(jù)的訓練數(shù)據(jù),對上述基于cnn的種子模型進行再次訓練之后,在每一輪訓練完成之后,在開發(fā)集上對本輪訓練獲得的基于cnn的種子模型的喚醒性能進行監(jiān)測,一般來說,基于cnn的種子模型在開發(fā)集上的喚醒性能是先下降,然后經過多輪訓練之后,基于cnn的種子模型在開發(fā)集上的喚醒性能會慢慢提高,直至基于cnn的種子模型在開發(fā)集上的喚醒性能不再提高,就可以確定上述基于cnn的種子模型在開發(fā)集上收斂,這時模型訓練子模塊661獲得的基于cnn的種子模型即為最終獲得的基于cnn的語音喚醒模型。
本申請實施例提供的基于人工智能的語音喚醒裝置,通過使用cnn-ctc的方案,大大地縮小了基于cnn的語音喚醒模型的輸出層的節(jié)點數(shù),從而有效地降低了基于cnn的語音喚醒模型的參數(shù)量,達到降低運算量的目的;通過使用后驗概率平滑的策略,使得運算量進一步減?。涣硗?,本申請實施例提供的基于人工智能的語音喚醒裝置中使用一個非喚醒詞(filler)類別,增加了訓練的靈活性,使得上述基于人工智能的語音喚醒裝置非常的通用,不需要再針對每一個喚醒詞挑選不同的filler;本申請實施例提供的基于人工智能的語音喚醒裝置中的基于cnn的語音喚醒模型通過自我學習調優(yōu)的方法,可以更好地提升語音喚醒的效果,另外,上述基于cnn的語音喚醒模型的輸出層簡單,目標鮮明,針對喚醒詞和非喚醒詞有更好的區(qū)分度,可以進一步提升語音喚醒的效果。
圖8為本申請計算機設備一個實施例的結構示意圖,本申請實施例中的計算機設備可以作為具有語音喚醒功能的設備實現(xiàn)本申請實施例提供的基于人工智能的語音喚醒方法。
其中,上述具有語音喚醒功能的設備可以為智能手機、平板電腦或智能家居設備等,本實施例對上述具有語音喚醒功能的設備的形態(tài)不作限定。
如圖8所示,上述計算機設備可以包括:一個或多個處理器;存儲裝置,用于存儲一個或多個程序,當上述一個或多個程序被上述一個或多個處理器執(zhí)行,使得一個或多個處理器實現(xiàn)本申請實施例提供的基于人工智能的語音喚醒方法。
圖8示出了適于用來實現(xiàn)本申請實施方式的示例性計算機設備12的框圖。圖8顯示的計算機設備12僅僅是一個示例,不應對本申請實施例的功能和使用范圍帶來任何限制。
如圖8所示,計算機設備12以通用計算設備的形式表現(xiàn)。計算機設備12的組件可以包括但不限于:一個或者多個處理器或者處理單元16,系統(tǒng)存儲器28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲器28和處理單元16)的總線18。
總線18表示幾類總線結構中的一種或多種,包括存儲器總線或者存儲器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結構中的任意總線結構的局域總線。舉例來說,這些體系結構包括但不限于工業(yè)標準體系結構(industrystandardarchitecture;以下簡稱:isa)總線,微通道體系結構(microchannelarchitecture;以下簡稱:mac)總線,增強型isa總線、視頻電子標準協(xié)會(videoelectronicsstandardsassociation;以下簡稱:vesa)局域總線以及外圍組件互連(peripheralcomponentinterconnection;以下簡稱:pci)總線。
計算機設備12典型地包括多種計算機系統(tǒng)可讀介質。這些介質可以是任何能夠被計算機設備12訪問的可用介質,包括易失性和非易失性介質,可移動的和不可移動的介質。
系統(tǒng)存儲器28可以包括易失性存儲器形式的計算機系統(tǒng)可讀介質,例如隨機存取存儲器(randomaccessmemory;以下簡稱:ram)30和/或高速緩存存儲器32。計算機設備12可以進一步包括其它可移動/不可移動的、易失性/非易失性計算機系統(tǒng)存儲介質。僅作為舉例,存儲系統(tǒng)34可以用于讀寫不可移動的、非易失性磁介質(圖8未顯示,通常稱為“硬盤驅動器”)。盡管圖8中未示出,可以提供用于對可移動非易失性磁盤(例如“軟盤”)讀寫的磁盤驅動器,以及對可移動非易失性光盤(例如:光盤只讀存儲器(compactdiscreadonlymemory;以下簡稱:cd-rom)、數(shù)字多功能只讀光盤(digitalvideodiscreadonlymemory;以下簡稱:dvd-rom)或者其它光介質)讀寫的光盤驅動器。在這些情況下,每個驅動器可以通過一個或者多個數(shù)據(jù)介質接口與總線18相連。存儲器28可以包括至少一個程序產品,該程序產品具有一組(例如至少一個)程序模塊,這些程序模塊被配置以執(zhí)行本申請各實施例的功能。
具有一組(至少一個)程序模塊42的程序/實用工具40,可以存儲在例如存儲器28中,這樣的程序模塊42包括——但不限于——操作系統(tǒng)、一個或者多個應用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個或某種組合中可能包括網(wǎng)絡環(huán)境的實現(xiàn)。程序模塊42通常執(zhí)行本申請所描述的實施例中的功能和/或方法。
計算機設備12也可以與一個或多個外部設備14(例如鍵盤、指向設備、顯示器24等)通信,還可與一個或者多個使得用戶能與該計算機設備12交互的設備通信,和/或與使得該計算機設備12能與一個或多個其它計算設備進行通信的任何設備(例如網(wǎng)卡,調制解調器等等)通信。這種通信可以通過輸入/輸出(i/o)接口22進行。并且,計算機設備12還可以通過網(wǎng)絡適配器20與一個或者多個網(wǎng)絡(例如局域網(wǎng)(localareanetwork;以下簡稱:lan),廣域網(wǎng)(wideareanetwork;以下簡稱:wan)和/或公共網(wǎng)絡,例如因特網(wǎng))通信。如圖所示,網(wǎng)絡適配器20通過總線18與計算機設備12的其它模塊通信。應當明白,盡管圖8中未示出,可以結合計算機設備12使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設備驅動器、冗余處理單元、外部磁盤驅動陣列、raid系統(tǒng)、磁帶驅動器以及數(shù)據(jù)備份存儲系統(tǒng)等。
處理單元16通過運行存儲在系統(tǒng)存儲器28中的程序,從而執(zhí)行各種功能應用以及數(shù)據(jù)處理,例如實現(xiàn)本申請實施例提供的基于人工智能的語音喚醒方法。
本申請實施例還提供一種計算機可讀介質,其上存儲有計算機程序,上述計算機程序被處理器執(zhí)行時實現(xiàn)本申請實施例提供的基于人工智能的語音喚醒方法。
上述計算機可讀介質可以采用一個或多個計算機可讀的介質的任意組合。計算機可讀介質可以是計算機可讀信號介質或者計算機可讀存儲介質。計算機可讀存儲介質例如可以是——但不限于——電、磁、光、電磁、紅外線、或半導體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機可讀存儲介質的更具體的例子(非窮舉的列表)包括:具有一個或多個導線的電連接、便攜式計算機磁盤、硬盤、隨機存取存儲器(ram)、只讀存儲器(readonlymemory;以下簡稱:rom)、可擦式可編程只讀存儲器(erasableprogrammablereadonlymemory;以下簡稱:eprom)或閃存、光纖、便攜式緊湊磁盤只讀存儲器(cd-rom)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質可以是任何包含或存儲程序的有形介質,該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結合使用。
計算機可讀的信號介質可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計算機可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質還可以是計算機可讀存儲介質以外的任何計算機可讀介質,該計算機可讀介質可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結合使用的程序。
計算機可讀介質上包含的程序代碼可以用任何適當?shù)慕橘|傳輸,包括——但不限于——無線、電線、光纜、rf等等,或者上述的任意合適的組合。
可以以一種或多種程序設計語言或其組合來編寫用于執(zhí)行本申請操作的計算機程序代碼,所述程序設計語言包括面向對象的程序設計語言—諸如java、smalltalk、c++,還包括常規(guī)的過程式程序設計語言—諸如“c”語言或類似的程序設計語言。程序代碼可以完全地在用戶計算機上執(zhí)行、部分地在用戶計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機上部分在遠程計算機上執(zhí)行、或者完全在遠程計算機或服務器上執(zhí)行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網(wǎng)絡——包括局域網(wǎng)(localareanetwork;以下簡稱:lan)或廣域網(wǎng)(wideareanetwork;以下簡稱:wan)連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網(wǎng)服務提供商來通過因特網(wǎng)連接)。
需要說明的是,在本申請的描述中,術語“第一”、“第二”等僅用于描述目的,而不能理解為指示或暗示相對重要性。此外,在本申請的描述中,除非另有說明,“多個”的含義是兩個或兩個以上。
流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用于實現(xiàn)特定邏輯功能或過程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本申請的優(yōu)選實施方式的范圍包括另外的實現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時的方式或按相反的順序,來執(zhí)行功能,這應被本申請的實施例所屬技術領域的技術人員所理解。
應當理解,本申請的各部分可以用硬件、軟件、固件或它們的組合來實現(xiàn)。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實現(xiàn)。例如,如果用硬件來實現(xiàn),和在另一實施方式中一樣,可用本領域公知的下列技術中的任一項或他們的組合來實現(xiàn):具有用于對數(shù)據(jù)信號實現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(programmablegatearray;以下簡稱:pga),現(xiàn)場可編程門陣列(fieldprogrammablegatearray;以下簡稱:fpga)等。
本技術領域的普通技術人員可以理解實現(xiàn)上述實施例方法攜帶的全部或部分步驟是可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質中,該程序在執(zhí)行時,包括方法實施例的步驟之一或其組合。
此外,本申請各個實施例中的各功能模塊可以集成在一個處理模塊中,也可以是各個模塊單獨物理存在,也可以兩個或兩個以上模塊集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質中。
上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。
在本說明書的描述中,參考術語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結合該實施例或示例描述的具體特征、結構、材料或者特點包含于本申請的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結構、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結合。
盡管上面已經示出和描述了本申請的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本申請的限制,本領域的普通技術人員在本申請的范圍內可以對上述實施例進行變化、修改、替換和變型。