本發明涉及語音識別領域,具體涉及一種聲紋識別方法及裝置。
背景技術:
目前,人工智能技術廣泛應用于各領域,尤其是在辦公領域中的應用,將大量重復性流程剝離出主要業務流程,顯著地提高了辦公效率及正確率。在人工智能技術領域中,聲紋識別技術正逐漸應用到銀行業,典型應用場景為電話銀行,電話銀行呼叫中心使用聲紋識別作為用戶身份驗證的輔助手段,并基于聲紋識別技術搭建聲紋黑名單,在抵制電話詐騙的場景下有著廣闊的應用空間。
由于聲紋識別算法的局限性,要取得較理想的聲紋識別準確率必須對有效長語音進行識別,而在聲紋識別的實際應用中,用戶講話習慣決定用戶的錄音往往達不到有效長語音的要求,因而實際場景下的聲紋識別準確率相對較低,在某些特定場景下甚至無法達到可應用的最低要求。
技術實現要素:
有鑒于此,本發明提供一種聲紋識別方法及裝置,以解決上述提及的至少一個問題。
根據本發明的第一方面,提供一種聲紋識別方法,所述方法包括:獲取來自用戶的包含作業指令的音頻數據;將預處理后的音頻數據輸入至已訓練的聲紋識別模型,以輸出識別信息,其中,所述聲紋識別模型包括池化層,所述池化層為不同語音幀設置不同的權重;根據預先存儲的驗證音頻數據對所述識別信息進行識別,以識別用戶身份;響應于所述用戶身份識別成功,執行所述作業指令。
根據本發明的第二方面,提供一種聲紋識別裝置,所述裝置包括:數據獲取單元,用于獲取來自用戶的包含作業指令的音頻數據;信息識別單元,用于將預處理后的音頻數據輸入至已訓練的聲紋識別模型,以輸出識別信息,其中,所述聲紋識別模型包括池化層,所述池化層為不同語音幀設置不同的權重;用戶身份識別單元,用于根據預先存儲的驗證音頻數據對所述識別信息進行識別,以識別用戶身份;執行單元,用于響應于所述用戶身份識別成功,執行所述作業指令。
根據本發明的第三方面,提供一種電子設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執行所述程序時實現上述方法的步驟。
根據本發明的第四方面,本發明提供一種計算機可讀存儲介質,其上存儲有計算機程序,該計算機程序被處理器執行時實現上述方法的步驟。
由上述技術方案可知,通過將獲取的用戶音頻數據經過預處理后,輸入至已訓練的聲紋識別模型,以輸出識別信息,之后根據預先存儲的驗證音頻數據對識別信息進行用戶身份識別,當用戶身份識別成功時,執行用戶音頻數據中的作業指令,由于聲紋識別模型的池化層可以為不同語音幀設置不同的權重,從而可以對不同的語音幀賦予不同的“注意力”,從短語音中獲取足夠多的聲紋信息以支持短語音被更好地識別,進而可以解決傳統xvector算法在短語音領域準確率低的問題,提高短語音識別的準確性。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是傳統xvector算法模型的示意圖;
圖2是根據本發明實施例的聲紋識別方法的流程圖;
圖3是根據本發明實施例的基于xvector算法的聲紋識別模型的訓練流程圖;
圖4是根據本發明實施例的聲紋識別裝置的結構框圖;
圖5是根據本發明實施例的聲紋識別裝置的詳細結構框圖;
圖6是根據本發明實施例的模型訓練單元5的結構框圖;
圖7是根據本發明實施例的聲紋識別系統的示例結構框圖;
圖8為本發明實施例的電子設備600的系統構成的示意框圖。
具體實施方式
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整的描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
在實現本發明的過程中,申請人發現如下相關技術:
傳統的xvector算法模型可以分為3個部分,如圖1所示,第一部分為時延神經網絡(time-delayneuralnetwork,tdnn),該部分將獲取不同時長的上下文語音信息。第二部分為一個統計池化層(可以簡稱為池化層),該層以時延神經網絡的輸出作為輸入,然后在時間維度上取平均,將原有不定長的特征轉換為固定長度的特征,其中,h1,h2,……,ht表示語音幀的特征,t為大于等于1的正整數。第三部分為全連接層加上一個softmax分類器。在模型訓練時,使用一個神經網絡去分類訓練集中的人數,訓練結束后去掉softmax分類器,剩下的全連接層就是一個xvector模型。
傳統算法的不足之處在于統計池化層采取平均池化的方式。因而,基于傳統xvector算法的聲紋識別存在如下缺陷:
傳統xvector算法的平均池化的實際意義為音頻的每一幀包含的聲紋信息是相同的,而實際上音頻每一幀包含的聲紋信息并不相同,某些幀為空語音或者不包含聲紋信息,另外一些幀則包含了大量的聲紋信息,從而導致了基于傳統xvector算法的聲紋識別的準確率較低。
基于此,本發明實施例提供一種聲紋識別方法及裝置,以提高語音識別的準確性。
圖2是根據本發明實施例的聲紋識別方法的流程圖,如圖2所示,該方法包括:
步驟201,獲取來自用戶的包含作業指令的音頻數據。
步驟202,將預處理后的音頻數據輸入至已訓練的聲紋識別模型,以輸出識別信息,其中,所述聲紋識別模型包括池化層,所述池化層為不同語音幀設置不同的權重。
這里的預處理可以包括:vad(靜音抑制)降噪、連通域去靜音段、去除干擾信息等。
步驟203,根據預先存儲的驗證音頻數據對所述識別信息進行識別,以識別用戶身份。
步驟204,響應于所述用戶身份識別成功,執行所述作業指令。
相應地,當用戶身份識別失敗時,則拒絕執行作業指令。
本發明實施例通過將獲取的用戶音頻數據經過預處理后,輸入至已訓練的聲紋識別模型,輸出識別信息,之后根據預先存儲的驗證音頻數據對識別信息進行用戶身份識別,當用戶身份識別成功時,執行用戶音頻數據中的作業指令,由于聲紋識別模型的池化層可以為不同語音幀設置不同的權重,從而可以對不同的語音幀賦予不同的“注意力”,進而可以從短語音中獲取足夠多的聲紋信息以支持短語音被更好地識別,可以解決傳統xvector算法在短語音領域準確率低的問題。通過本發明實施例,可以提高短語音識別的準確性。
為了更好地理解本發明實施例,以下詳細描述聲紋識別模型的訓練過程。
首先,獲取歷史用戶的歷史驗證音頻數據,該歷史驗證音頻數據包括:驗證過的用戶信息及其語音信息。該歷史驗證音頻數據可以作為訓練數據。
之后,將預處理后的歷史驗證音頻數據作為訓練數據輸入至聲紋識別模型中,基于識別分類誤差信息對所述聲紋識別模型進行訓練。
具體地,該聲紋識別模型包括池化層。與傳統的聲紋識別模型不同的是,本發明實施例中的池化層包括神經網絡,該神經網絡的作用是對輸入池化層的不同語音幀設置不同的權重,以此提高對短語音識別的準確性。
也就是說,基于識別分類誤差信息對所述聲紋識別模型進行訓練主要是對池化層中的神經網絡的參數優化。具體包括:基于所述識別分類誤差信息與預定誤差閾值對所述神經網絡的參數進行調整,以為輸入池化層的不同語音幀設置不同的權重;當所述識別分類誤差信息小于等于預定誤差閾值時,表示聲紋識別模型訓練完成。
優選地,可以基于語音幀中的聲紋信息為不同語音幀設置不同的權重。例如,含聲紋信息多的語音幀的權重被設置為高,含聲紋信息少的語音幀的權重被設置為低。
圖3是根據本發明實施例的基于xvector算法的聲紋識別模型(或稱為聲紋識別神經網絡)的訓練流程圖,如圖3所示,該訓練流程包括:
步驟301,構建一個基于tdnn的聲紋識別神經網絡,其中池化層中的權重模型為:a=softmax(g(htw1)w2),該權重模型即上述池化層中的神經網絡,用于對語音幀設置不同的權重。
上述公式為神經網絡的基本形式,其中,a為使用softmax分類器(或稱為打分器)為語音幀計算的權重,g為非線性函數,h為語音幀中的特征,w1為權重,w2為權重。
具體而言,w1是輸入時的權重,池化層輸入為h(即,語音幀特征)。
上述公式可以類比一維函數,y=ax的概念,其中x未知量在這邊是矩陣表示的h,a為矩陣表示的權重w1。后面經過一個激活函數g(x)將其進行非線性化轉換。w2同理w1,只不過需要把g(htw1)當作整體看成一個h,因此w2就是g(htw1)的權重。
步驟302,獲取歷史數據,即帶標簽(該標簽為用戶信息或者音頻所有者信息)的短語音音頻,將獲取的短語音音頻輸入至上述構建的神經網絡中,得到識別結果。
識別結果即為通過神經網絡后輸出的分類,實際意義為音頻所有者,用分類標簽表示。例如,分別先后輸入a、b、c3個用戶的音頻,那么分類標簽即應分別為a、b、c,某一段音頻的識別結果為a或者b或者c。
步驟303,使用識別分類誤差作為損失函數進行反向傳播,通過隨機梯度下降方法迭代訓練聲紋識別神經網絡,直到分類誤差(或稱為分類殘差)小于設定的誤差閾值(即,上述的預定誤差閾值),即完成聲紋識別神經網絡的訓練。
該誤差閾值可以根據多次訓練得到的最小殘差值來確定,也可以根據某一類神經網絡理論收斂的最小殘差值來確定。
在實際操作中,分類殘差意義為分類結果與實際分類值間的差異。聲紋識別神經網絡自帶了殘差計算方法。每一筆音頻通過神經網絡,都會識別得出一個分類結果,這個結果與實際值(即聲紋標簽)做比較,得到殘差值。當殘差值比較大,也就是得到的結果與實際標簽差別太大,那么將自動調整神經網絡參數,直到殘差值不大于設定的閾值時,認為此時分類結果最優,本筆數據不再調整神經網絡參數。
在具體的訓練過程中,在給每一語音幀的權重賦值時,首先會隨機初始化每一幀的權重值,之后語音幀進行神經網絡的前向傳播,最后根據識別結果,進行反向傳播,并使用梯度下降方式更新每一幀的權重,在這個過程中,含有聲紋信息的幀,權重就會逐漸增加,而不含或者含的較少的聲紋信息的幀,權重就會逐漸減少。
在訓練完成之后,就可以進行聲紋識別操作,此時,將一段音頻通過池化層時,原先的權重由平均權重變為本發明實施例的打分器得出的權重值,音頻通過打分器后就會輸出一個權重值,用于在池化層池化。
本發明實施例的關鍵在于,在統計池化層為每一語音幀設置合適的權重,使得算法在學習階段可以對不同的幀賦予不同的“注意力”,從而可以從短語音中獲取足夠多的聲紋信息以支持短語音更好地識別,從而可以解決傳統xvector算法在短語音領域準確率低的問題。
基于相似的發明構思,本發明實施例還提供一種聲紋識別裝置,優選地,該裝置可用于實現上述方法實施例中的流程。
圖4是根據本發明實施例的聲紋識別裝置的結構框圖,如圖4所示,該裝置包括:數據獲取單元1、信息識別單元2、用戶身份識別單元3和執行單元4,其中:
數據獲取單元1,用于獲取來自用戶的包含作業指令的音頻數據;
信息識別單元2,用于將預處理后的音頻數據輸入至已訓練的聲紋識別模型,以輸出識別信息,其中,所述聲紋識別模型包括池化層,所述池化層為不同語音幀設置不同的權重;
用戶身份識別單元3,用于根據預先存儲的驗證音頻數據對所述識別信息進行識別,以識別用戶身份;
執行單元4,用于響應于所述用戶身份識別成功,執行所述作業指令。
本發明實施例通過將數據獲取單元1獲取的用戶音頻數據經過預處理后,輸入至已訓練的聲紋識別模型,信息識別單元2輸出識別信息,之后用戶身份識別單元3根據預先存儲的驗證音頻數據對識別信息進行用戶身份識別,當用戶身份識別成功時,執行單元4執行用戶音頻數據中的作業指令,由于聲紋識別模型的池化層可以為不同語音幀設置不同的權重,從而可以對不同的語音幀賦予不同的“注意力”,進而可以從短語音中獲取足夠多的聲紋信息以支持短語音被更好地識別,可以解決傳統xvector算法在短語音領域準確率低的問題。通過本發明實施例,可以提高短語音識別的準確性。
在一個實施例中,如圖5所示,上述裝置還包括:模型訓練單元5,用于對所述聲紋識別模型進行訓練。
圖6是模型訓練單元5的結構框圖,如圖6所示,該模型訓練單元5具體包括:歷史數據獲取模塊51和訓練模塊52,其中:
歷史數據獲取模塊51,用于獲取歷史用戶的歷史驗證音頻數據;
訓練模塊52,用于將預處理后的歷史驗證音頻數據輸入至聲紋識別模型,并基于識別分類誤差信息對所述聲紋識別模型進行訓練。
在本發明實施例中,聲紋識別模型的池化層包括神經網絡,該神經網絡用于為輸入所述池化層的不同語音幀設置不同的權重。
具體而言,上述訓練模塊具體包括:參數調整子模塊和訓練子模塊,其中:
參數調整子模塊,用于基于所述識別分類誤差信息與預定誤差閾值對所述神經網絡的參數進行調整,以為輸入所述池化層的不同語音幀設置不同的權重。該參數調整子模塊可以基于語音幀中的聲紋信息為不同語音幀設置不同的權重。
例如,含聲紋信息多的語音幀的權重被設置為高,含聲紋信息少的語音幀的權重被設置為低。
訓練子模塊,用于響應于所述識別分類誤差信息小于等于預定誤差閾值,所述聲紋識別模型訓練完成。
上述各單元、各模塊、各子模塊的具體執行過程,可以參見上述方法實施例中的描述,此處不再贅述。
在實際操作中,上述各單元、各模塊、各子模塊可以組合設置、也可以單一設置,本發明不限于此。
圖7是根據本發明實施例的聲紋識別系統的示例結構框圖,如圖7所示,該系統包括:用戶交互模塊71、數據預處理模塊72、聲紋引擎神經網絡73、處理響應模塊74,其中:
用戶交互模塊71,用于采集用戶音頻。
數據預處理模塊72,用于對采集到的音頻數據進行降噪、去靜音段、去干擾等處理。
聲紋引擎神經網絡73,用于接收預處理后的音頻數據并對其進行聲紋識別。
處理響應模塊74,用于接收聲紋識別結果,當識別結果為成功時,根據用戶需求響應指令。例如,識別出是本人,然后查詢用戶權限,根據權限來響應相關指令;當權限不足時,或者識別出非本人,則直接提示非授權用戶,不響應指令。
本實施例還提供一種電子設備,該電子設備可以是臺式計算機、平板電腦及移動終端等,本實施例不限于此。在本實施例中,該電子設備可以參照上述方法實施例進行實施及聲紋識別裝置實施例進行實施,其內容被合并于此,重復之處不再贅述。
圖8為本發明實施例的電子設備600的系統構成的示意框圖。如圖8所示,該電子設備600可以包括中央處理器100和存儲器140;存儲器140耦合到中央處理器100。值得注意的是,該圖是示例性的;還可以使用其他類型的結構,來補充或代替該結構,以實現電信功能或其他功能。
一實施例中,聲紋識別功能可以被集成到中央處理器100中。其中,中央處理器100可以被配置為進行如下控制:
步驟201,獲取來自用戶的包含作業指令的音頻數據。
步驟202,將預處理后的音頻數據輸入至已訓練的聲紋識別模型,以輸出識別信息,其中,所述聲紋識別模型包括池化層,所述池化層為不同語音幀設置不同的權重。
步驟203,根據預先存儲的驗證音頻數據對所述識別信息進行識別,以識別用戶身份。
步驟204,響應于所述用戶身份識別成功,執行所述作業指令。
從上述描述可知,本申請實施例提供的電子設備,通過將獲取的用戶音頻數據經過預處理后,輸入至已訓練的聲紋識別模型,以輸出識別信息,之后根據預先存儲的驗證音頻數據對識別信息進行用戶身份識別,當用戶身份識別成功時,執行用戶音頻數據中的作業指令,由于聲紋識別模型的池化層可以為不同語音幀設置不同的權重,從而可以對不同的語音幀賦予不同的“注意力”,進而可以從短語音中獲取足夠多的聲紋信息以支持短語音被更好地識別,可以解決傳統xvector算法在短語音領域準確率低的問題。通過本發明實施例,可以提高短語音識別的準確性。
在另一個實施方式中,聲紋識別裝置可以與中央處理器100分開配置,例如可以將聲紋識別裝置配置為與中央處理器100連接的芯片,通過中央處理器的控制來實現聲紋識別功能。
如圖8所示,該電子設備600還可以包括:通信模塊110、輸入單元120、音頻處理單元130、顯示器160、電源170。值得注意的是,電子設備600也并不是必須要包括圖8中所示的所有部件;此外,電子設備600還可以包括圖8中沒有示出的部件,可以參考現有技術。
如圖8所示,中央處理器100有時也稱為控制器或操作控件,可以包括微處理器或其他處理器裝置和/或邏輯裝置,該中央處理器100接收輸入并控制電子設備600的各個部件的操作。
其中,存儲器140,例如可以是緩存器、閃存、硬驅、可移動介質、易失性存儲器、非易失性存儲器或其它合適裝置中的一種或更多種。可儲存上述與失敗有關的信息,此外還可存儲執行有關信息的程序。并且中央處理器100可執行該存儲器140存儲的該程序,以實現信息存儲或處理等。
輸入單元120向中央處理器100提供輸入。該輸入單元120例如為按鍵或觸摸輸入裝置。電源170用于向電子設備600提供電力。顯示器160用于進行圖像和文字等顯示對象的顯示。該顯示器例如可為lcd顯示器,但并不限于此。
該存儲器140可以是固態存儲器,例如,只讀存儲器(rom)、隨機存取存儲器(ram)、sim卡等。還可以是這樣的存儲器,其即使在斷電時也保存信息,可被選擇性地擦除且設有更多數據,該存儲器的示例有時被稱為eprom等。存儲器140還可以是某種其它類型的裝置。存儲器140包括緩沖存儲器141(有時被稱為緩沖器)。存儲器140可以包括應用/功能存儲部142,該應用/功能存儲部142用于存儲應用程序和功能程序或用于通過中央處理器100執行電子設備600的操作的流程。
存儲器140還可以包括數據存儲部143,該數據存儲部143用于存儲數據,例如聯系人、數字數據、圖片、聲音和/或任何其他由電子設備使用的數據。存儲器140的驅動程序存儲部144可以包括電子設備的用于通信功能和/或用于執行電子設備的其他功能(如消息傳送應用、通訊錄應用等)的各種驅動程序。
通信模塊110即為經由天線111發送和接收信號的發送機/接收機110。通信模塊(發送機/接收機)110耦合到中央處理器100,以提供輸入信號和接收輸出信號,這可以和常規移動通信終端的情況相同。
基于不同的通信技術,在同一電子設備中,可以設置有多個通信模塊110,如蜂窩網絡模塊、藍牙模塊和/或無線局域網模塊等。通信模塊(發送機/接收機)110還經由音頻處理器130耦合到揚聲器131和麥克風132,以經由揚聲器131提供音頻輸出,并接收來自麥克風132的音頻輸入,從而實現通常的電信功能。音頻處理器130可以包括任何合適的緩沖器、解碼器、放大器等。另外,音頻處理器130還耦合到中央處理器100,從而使得可以通過麥克風132能夠在本機上錄音,且使得可以通過揚聲器131來播放本機上存儲的聲音。
本發明實施例還提供一種計算機可讀存儲介質,其上存儲有計算機程序,該計算機程序被處理器執行時以實現上述聲紋識別方法的步驟。
綜上所述,本發明實施例通過在池化層訓練一個打分器,在進行池化的過程中對音頻的每一幀賦予合適的權重,從而可以從短語音中獲取更多的聲紋信息,解決了傳統xvector算法在短語音領域準確率低的問題,提高了短語音聲紋識別的準確率。
以上參照附圖描述了本發明的優選實施方式。這些實施方式的許多特征和優點根據該詳細的說明書是清楚的,因此權利要求旨在覆蓋這些實施方式的落入其真實精神和范圍內的所有這些特征和優點。此外,由于本領域的技術人員容易想到很多修改和改變,因此不是要將本發明的實施方式限于所例示和描述的精確結構和操作,而是可以涵蓋落入其范圍內的所有合適修改和等同物。
本領域內的技術人員應明白,本發明的實施例可提供為方法、系統、或計算機程序產品。因此,本發明可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產品的形式。
本發明是參照根據本發明實施例的方法、設備(系統)、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
本發明中應用了具體實施例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發明的方法及其核心思想;同時,對于本領域的一般技術人員,依據本發明的思想,在具體實施方式及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發明的限制。