本申請涉及計算機技術領域,具體涉及數據處理技術領域,尤其涉及用于處理語音數據的方法和裝置。
背景技術:
近年來,聲紋識別這種新興的生物識別手段因其安全便利性受到了很大關注。聲紋識別是基于不同人的發聲器官例如肺、氣管、聲帶、口腔、鼻腔、咽腔等在尺寸和形態方面存在的生理差異,利用每個人語音中包含的獨特信息,進行個人身份的識別和驗證。但是現實中,每個人的語音聲學特征并非絕對的、一成不變的,而是受到所處環境、使用設備等外界因素和個人身體狀況、情緒波動、言語風格變化等內在因素等共同影響變化的。另外研究表明,人的語音聲學特征還會隨著年齡增長而出現變化。因此,對用戶聲紋特征的動態變化進行追蹤,使得用戶的聲紋模型能根據新增聲音樣本進行自適應更新,這對于提升聲紋識別系統的性能具有至關重要的意義。
目前,對用戶進行身份驗證時通常使用的是根據用戶在注冊時輸入的語音數據所生成聲紋模型,但是這種模型不能進行自適應更新,隨著時間的推移,這種驗證用戶身份的方法會導致驗證結果不準確。
技術實現要素:
本申請的目的在于提出一種改進的用于處理語音數據的方法和裝置,來解決以上背景技術部分提到的技術問題。
第一方面,本申請提供了一種用于處理語音數據的方法,該方法包括:接收用戶終端發送的語音數據;提取語音數據中的聲紋特征向量;將聲紋特征向量與預先存儲的用戶的注冊聲紋向量進行匹配,并生成聲紋特征向量與注冊聲紋向量之間的匹配度;確定匹配度是否大于等于預設的更新閾值;響應于確定出匹配度大于等于的更新閾值,則利用聲紋特征向量和語音數據更新注冊聲紋向量。
在一些實施例中,提取語音數據中的聲紋特征向量,包括:將語音數據導入預先訓練的全局背景模型中進行映射得到中間向量;將中間向量進行特征變換得到聲紋特征向量。
在一些實施例中,在將聲紋特征向量與預先存儲的用戶的注冊聲紋向量進行匹配之前,該方法還包括生成注冊聲紋向量的步驟,包括:獲取用戶輸入的預設數目個注冊語音數據;將預設數目個注冊語音數據導入預先訓練的全局背景模型中進行映射得到預設數目個等長的中間向量;對預設數目個等長的中間向量進行特征變換得到預設數目個注冊聲紋特征向量;對預設數目個注冊聲紋特征向量進行融合,生成用戶的注冊聲紋向量。
在一些實施例中,所述利用聲紋特征向量和語音數據更新注冊聲紋向量包括:獲取用戶輸入的注冊語音數據的數量和用戶已存儲的各個聲紋特征向量;根據用戶已存儲的各個聲紋特征向量、用戶已存儲的語音數據的數量、注冊語音數據的數量和注冊聲紋向量,更新注冊聲紋向量。
在一些實施例中,根據用戶已存儲的各個聲紋特征向量、用戶已存儲的語音數據的數量、注冊語音數據的數量和注冊聲紋向量,更新注冊聲紋向量,包括:對用戶已存儲的各個聲紋特征向量進行數據標準化運算,并對數據標準化運算后的向量進行求和運算,得到用戶已存儲的聲紋特征向量之和;利用注冊語音數據的數量乘以注冊聲紋向量,得到注冊聲紋向量之積;計算聲紋特征向量之和與注冊聲紋向量之積的向量和,并計算用戶已存儲的語音數據的數量與注冊語音數據的數量的數量和,利用向量和除以數量和得到更新的注冊聲紋向量。
在一些實施例中,在更新注冊聲紋向量之后,該方法包括:刪除用戶已存儲的語音數據。
在一些實施例中,獲取用戶輸入的預設數目個注冊語音數據,包括:獲取用戶已存儲的語音數據以及語音數據的相關信息,其中,相關信息包括語音數據的輸入時間點;刪除輸入時間點早于預設的時間分割點的語音數據,并將刪除后的語音數據作為注冊語音數據。
在一些實施例中,獲取用戶輸入的預設數目個注冊語音數據,還包括:利用聚類算法對用戶已存儲的語音數據進行聚類,生成至少一個已存儲的語音數據的簇;獲取各個簇的中心點;利用距離算法計算每個已存儲的語音數據與每個已存儲的語音數據所在簇的中心點的距離;刪除距離大于預設的距離閾值的語音數據,并將刪除后的語音數據作為注冊語音數據。
在一些實施例中,相關信息還包括以下至少一項:語音數據的采集設備類型、語音數據的輸入地點;以及在生成至少一個已存儲的語音數據的簇之后,方法還包括:獲取各個簇中的語音數據以及各個簇中的語音數據的相關信息;利用各個簇的語音數據重新生成用戶的各個注冊聲紋向量,并根據各個簇的語音數據的相關信息生成各個注冊聲紋向量的相關信息。
在一些實施例中,在接收用戶通過用戶終端發送的語音數據之后,該方法還包括:獲取語音數據的相關信息;以及將聲紋特征向量與預先生成的用戶的注冊聲紋向量進行匹配,包括:根據語音數據的相關信息與各個注冊聲紋向量的相關信息的匹配度,選擇注冊聲紋向量;將聲紋特征向量與選擇的注冊聲紋向量進行匹配。
在一些實施例中,在所述生成所述聲紋特征向量與所述注冊聲紋向量之間的匹配度之后,所述方法還包括:確定所述匹配度是否大于等于預設的通過閾值;響應于確定出所述匹配度大于等于預設的通過閾值,則確定用戶身份驗證通過并執行與驗證通過相對應的操作。
第二方面,本申請提供了一種用于處理語音數據的裝置,該裝置包括:接收單元,配置用于接收用戶終端發送的語音數據;提取單元,配置用于提取語音數據中的聲紋特征向量;匹配單元,配置用于將聲紋特征向量與預先存儲的用戶的注冊聲紋向量進行匹配,并生成聲紋特征向量與注冊聲紋向量之間的匹配度;第一確定單元,配置用于確定匹配度是否大于等于預設的更新閾值;更新單元,配置用于響應于確定出匹配度大于等于預設的更新閾值,則利用聲紋特征向量和語音數據更新注冊聲紋向量。
在一些實施例中,提取單元包括:映射模塊,配置用于將語音數據導入預先訓練的全局背景模型中進行映射得到中間向量;變換模塊,配置用于將中間向量進行特征變換得到聲紋特征向量。
在一些實施例中,該裝置還包括生成單元,包括:獲取模塊,配置用于獲取用戶輸入的預設數目個注冊語音數據;映射模塊,配置用于將預設數目個注冊語音數據導入預先訓練的全局背景模型中進行映射得到預設數目個等長的中間向量;變換模塊,配置用于對預設數目個等長的中間向量進行特征變換得到預設數目個注冊聲紋特征向量;融合模塊,配置用于對預設數目個注冊聲紋特征向量進行融合,生成用戶的注冊聲紋向量。
在一些實施例中,更新單元包括:獲取模塊,配置用于獲取用戶輸入的注冊語音數據的數量和用戶已存儲的各個聲紋特征向量;更新模塊,配置用于根據用戶已存儲的各個聲紋特征向量、用戶已存儲的語音數據的數量、注冊語音數據的數量和注冊聲紋向量,更新注冊聲紋向量。
在一些實施例中,更新模塊包括:第一計算子模塊,配置用于對用戶已存儲的各個聲紋特征向量進行數據標準化運算,并對數據標準化運算后的向量進行求和運算,得到用戶已存儲的聲紋特征向量之和;第二計算子模塊,配置用于利用注冊語音數據的數量乘以注冊聲紋向量,得到注冊聲紋向量之積;更新子模塊,配置用于計算聲紋特征向量之和與注冊聲紋向量之積的向量和,并計算用戶已存儲的語音數據的數量與注冊語音數據的數量的數量和,利用向量和除以數量和得到更新的注冊聲紋向量。
在一些實施例中,更新單元進一步配置用于:刪除用戶已存儲的語音數據。
在一些實施例中,獲取模塊包括:第一獲取子模塊,配置用于獲取用戶已存儲的語音數據以及語音數據的相關信息,其中,相關信息包括語音數據的輸入時間點;第一刪除子模塊,配置用于刪除輸入時間點早于預設的時間分割點的語音數據,并將刪除后的語音數據作為注冊語音數據。
在一些實施例中,獲取模塊包括:生成子模塊,配置用于利用聚類算法對用戶已存儲的語音數據進行聚類,生成至少一個已存儲的語音數據的簇;第二獲取子模塊,配置用于獲取各個簇的中心點;計算子模塊,配置用于利用距離算法計算每個已存儲的語音數據與每個已存儲的語音數據所在簇的中心點的距離;第二刪除子模塊,配置用于刪除距離大于預設的距離閾值的語音數據,并將刪除后的語音數據作為注冊語音數據。
在一些實施例中,相關信息還包括以下至少一項:語音數據的采集設備類型、語音數據的輸入地點;以及裝置還包括:第一獲取單元,配置用于獲取各個簇中的語音數據以及各個簇中的語音數據的相關信息;重新生成單元,配置用于利用各個簇的語音數據重新生成用戶的各個注冊聲紋向量,并根據各個簇的語音數據的相關信息生成各個注冊聲紋向量的相關信息。
在一些實施例中,該裝置還包括:第二獲取單元,配置用于獲取語音數據的相關信息;以及匹配單元包括:選擇模塊,配置用于根據語音數據的相關信息與各個注冊聲紋向量的相關信息的匹配度,選擇注冊聲紋向量;匹配模塊,配置用于將聲紋特征向量與選擇的注冊聲紋向量進行匹配。
在一些實施例中,該裝置還包括:第二確定單元,配置用于確定所述匹配度是否大于等于預設的通過閾值;執行單元,配置用于響應于確定出所述匹配度大于等于預設的通過閾值,則確定用戶身份驗證通過并執行與驗證通過相對應的操作。
本申請提供的用于處理語音數據的方法和裝置,通過提取用戶終端發送的語音數據中的聲紋特征向量,并將聲紋特征向量與預先生成的該用戶的注冊聲紋向量進行匹配,當匹配度大于等于預設的更新閾值時,則利用該聲紋特征向量和該語音數據更新注冊聲紋向量,從而有效利用了用戶的語音數據,提高了用戶的注冊聲紋向量的準確度。
附圖說明
通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本申請的其它特征、目的和優點將會變得更明顯:
圖1是本申請可以應用于其中的示例性系統架構圖;
圖2是根據本申請的用于處理語音數據的方法的一個實施例的流程圖;
圖3是本申請的圖2步驟203中的用戶的注冊聲紋向量的生成方法的一種實現方式的流程圖;
圖4是根據本申請的用于處理語音數據的方法的又一個實施例的流程圖;
圖5是根據本申請的用于處理語音數據的裝置的一個實施例的結構示意圖;
圖6是適于用來實現本申請實施例的服務器的計算機系統的結構示意圖。
具體實施方式
下面結合附圖和實施例對本申請作進一步的詳細說明。可以理解的是,此處所描述的具體實施例僅僅用于解釋相關發明,而非對該發明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與有關發明相關的部分。
需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結合實施例來詳細說明本申請。
圖1示出了可以應用本申請的用于處理語音數據的方法或用于處理語音數據的裝置的實施例的示例性系統架構100。
如圖1所示,系統架構100可以包括終端設備101、102、103,網絡104和服務器105、106。網絡104用以在終端設備101、102、103和服務器105、106之間提供通信鏈路的介質。網絡104可以包括各種連接類型,例如有線、無線通信鏈路或者光纖電纜等等。
用戶110可以使用終端設備101、102、103通過網絡104與服務器105、106交互,以接收或發送消息等。終端設備101、102、103上可以安裝有各種通訊客戶端應用,例如購物類應用、搜索類應用、網頁瀏覽器應用、即時通信工具、郵箱客戶端、社交平臺軟件、支付軟件等。
終端設備101、102、103可以是具有顯示屏并且支持數據接收與發送,以及攜帶麥克風的各種電子設備,包括但不限于智能手機、平板電腦、智能手表、膝上型便攜計算機和臺式計算機等等。
服務器105、106可以是提供各種服務的服務器,例如對終端設備101、102、103上發送的語音數據提供支持的后臺服務器。后臺服務器可以對接收到的語音數據等數據進行分析等處理,并將處理結果(例如登陸成功頁面或登陸失敗頁面)反饋給終端設備。
需要說明的是,本申請實施例所提供的用于處理語音數據的方法一般由服務器105、106執行,相應地,用于處理語音數據的裝置一般設置于服務器105、106中。
應該理解,圖1中的終端設備、網絡和服務器的數目僅僅是示意性的。根據實現需要,可以具有任意數目的終端設備、網絡和服務器。
繼續參考圖2,示出了根據本申請的用于處理語音數據的方法的一個實施例的流程200。所述的用于處理語音數據的方法,包括以下步驟:
步驟201,接收用戶終端發送的語音數據。
在本實施例中,用于處理語音數據的方法運行于其上的電子設備(例如圖1所示的服務器)可以通過有線連接方式或者無線連接方式從用戶利用其進行用戶身份驗證的終端接收語音數據,其中,上述語音數據可以是用戶根據上述電子設備生成的字符串進行朗讀而生成的朗讀信息,上述字符串可以是上述電子設備隨機生成的字符串,也可以是上述用戶在注冊用于驗證身份的系統賬號時所選擇的字符串集合中的字符串。需要指出的是,上述無線連接方式可以包括但不限于3G/4G連接、WiFi連接、藍牙連接、WiMAX連接、Zigbee連接、UWB(ultra wideband)連接、以及其他現在已知或將來開發的無線連接方式。
步驟202,提取語音數據中的聲紋特征向量。
在本實施例中,上述電子設備可以提取步驟201中接收到的語音數據中的聲紋特征向量。聲紋是用電聲學儀器顯示的攜帶言語信息的聲波頻譜。現代科學研究表明,聲紋不僅具有特定性,而且有相對穩定性的特點。聲紋特征向量可以是標識用戶的聲紋頻譜特征的向量。
在本實施例的一些可選的實現方式中,上述電子設備可以將上述語音數據導入預先訓練的全局背景模型(Universal Background Model,UBM)中進行映射得到中間向量,然后,將上述中間向量進行特征變換得到聲紋特征向量。當驗證用戶身份通過或不通過時,與其他偏重個體特定性的模型相比,上述全局背景模型是一個在生物識別驗證系統中偏重一般性且個體通用性的模型,例如,在用戶語音驗證系統中,上述全局背景模型是一個由性別均衡的不同說話者的大量語音樣本訓練得出的、且與說話者不相關的高斯混合模型(Gaussian Mixture Model,GMM),上述全局背景模型可以用來表征語音數據與中間向量的對應關系。可以通過聯合因子分析方法(Joint Factor Analysis,JFA)對上述中間向量進行特征變換得到聲紋特征向量,上述聯合因子分析方法是聲紋認證算法中針對信道補償的有效算法,它通過假設說話人空間和信道空間是獨立的,并可以分別用兩個低維因子空間進行描述,從而估計信道因子;也可以通過概率線性判別分析算法(Probabilistic Linear Discriminant Analysis,PLDA)對上述中間向量進行特征變換得到聲紋特征向量,上述概率線性判別分析算法也是一種信道補償算法,是概率形式的線性判別分析算法(Linear Discriminant Analysis,LDA);還可以通過辨識矢量(Identifying Vector,I-Vector)對上述中間向量進行特征變換得到聲紋特征向量。
步驟203,將聲紋特征向量與預先存儲的用戶的注冊聲紋向量進行匹配,并生成聲紋特征向量與注冊聲紋向量之間的匹配度。
在本實施例中,上述電子設備可以將上述步驟202中提取的聲紋特征向量與預先存儲的上述用戶的注冊聲紋向量進行匹配,并生成上述聲紋特征向量與上述注冊聲紋向量之間的匹配度。上述預先存儲的的注冊聲紋向量可以是預先生成的注冊聲紋向量,也可以是更新之后的注冊聲紋向量。上述注冊聲紋向量可以是上述電子設備自身生成的,也可以是上述電子設備從其它已經生成上述用戶的注冊聲紋向量的設備上獲取到的。當提取出上述用戶語音數據中的聲紋特征向量之后,上述電子設備可以首先檢測設備本身是否已存儲上述用戶的注冊聲紋向量;若檢測到設備本身存儲了上述用戶的注冊聲紋向量,則將上述聲紋特征向量與該注冊聲紋向量進行匹配,若沒有檢測到設備本身中存儲了上述用戶的注冊聲紋向量,則向其它設備發送獲取上述用戶的注冊聲紋向量的請求;若接收到其它設備發送的上述用戶的注冊聲紋向量,則將上述聲紋特征向量與該注冊聲紋向量進行匹配,若沒有接收到其它設備發送的上述用戶的注冊聲紋向量,則上述電子設備根據用戶注冊時輸入的多條語音數據生成該用戶的注冊聲紋向量。計算上述聲紋特征向量與上述注冊聲紋向量之間的匹配度時,可以采用曼哈頓距離(Manhattan Distance)進行計算,也可以采用閔可夫斯基距離(Minkowski Distance)進行計算,還可以采用余弦相似度(Cosine Similarity)進行計算。
在本實施例的一些可選的實現方式中,上述相關信息可以包括語音數據的采集設備類型,例如,手機、電腦和智能手表等等,上述相關信息還可以包括語音數據的輸入地點,可以按照外界環境噪聲的大小將輸入地點劃分為噪聲大的場所,例如,地鐵、商場、娛樂場所等,和噪聲大的場所,例如圖書館、教室等。上述電子設備可以利用聚類算法對上述用戶已存儲的語音數據進行聚類,生成至少一個已存儲的語音數據的簇,之后,可以獲取各個簇中的語音數據以及該語音數據的相關信息,然后,可以利用各個簇的語音數據重新生成上述用戶的各個注冊聲紋向量,并根據上述各個簇的語音數據的相關信息生成各個注冊聲紋向量的相關信息。上述簇也可稱之為簇類,是指由類似的對象組成的多個類,由聚類所生成的簇是一組數據對象的集合,這些對象與同一簇中的對象彼此相似,與其他簇中的對象相異。作為示例,一個簇中的輸入地點為噪聲大的場所的語音數據的數量占該簇中所有語音數據的數量的比例為80%,則可以將利用該簇的語音數據生成的注冊聲紋向量的相關信息中的輸入地點信息設置為噪聲大的場所。
在本實施例的一些可選的實現方式中,上述電子設備在處理語音數據時,還可以獲取語音數據的相關信息;之后,根據上述語音數據的相關信息與上述用戶的各個注冊聲紋向量的相關信息的匹配度,選擇注冊聲紋向量,例如,當獲取到語音數據的輸入地點為酒吧時,則可以選擇相關信息中包含噪聲大的場所的注冊聲紋向量,當獲取到語音數據的采集設備為智能手表時,則可以選擇相關信息中包含智能手表的注冊聲紋向量;最后,將該聲紋特征向量與所選擇的注冊聲紋向量進行匹配,得到匹配結果。
步驟204,確定匹配度是否大于等于預設的更新閾值。
在本實施例中,上述電子設備可以將步驟203中生成的匹配度與預設的更新閾值進行比較,確定上述匹配度是否大于或等于上述更新閾值,其中,上述更新閾值是動態的,且個性化的,用戶不同,用戶所對應的更新閾值也不同,上述更新閾值的設置是為了將預設比例的語音數據和聲紋特征向量進行存儲,以供上述電子設備根據存儲的語音數據和聲紋特征向量更新用戶的注冊聲紋向量,例如,當預設比例為80%時,則上述更新閾值可以使得占用戶總輸入的語音數據的80%的語音數據被存儲。
步驟205,響應于確定出匹配度大于等于預設的更新閾值,則利用聲紋特征向量和語音數據更新注冊聲紋向量。
在本實施例中,當確定出上述匹配度大于或等于預設的更新閾值,則上述電子設備可以利用步驟201接收的語音數據和步驟202提取出的聲紋特征向量更新上述用戶的注冊聲紋向量。
在本實施例的一些可選的實現方式中,當確定出上述匹配度大于或等于預設的通過閾值,則上述電子設備可以確定上述用戶身份驗證通過,并執行與驗證通過相對應的操作,例如,當用戶在進行登錄網站時的身份驗證時,可以向上述用戶返回登錄成功的頁面;當用戶在進行密碼鎖的解鎖操作時,可以解開密碼鎖。
本申請的上述實施例提供的方法通過將用戶語音數據中的聲紋特征向量與該用戶的注冊聲紋向量進行匹配,并利用匹配度大于等于更新閾值的語音數據和聲紋特征向量來更新用戶的注冊聲紋向量,從而提高了用戶的注冊聲紋向量的準確度。
繼續參見圖3,圖3是圖2步驟203中的用戶的注冊聲紋向量的生成方法的一種實現方式的流程300。該生成用戶的注冊聲紋向量的流程300,包括以下步驟:
步驟301,獲取用戶輸入的預設數目個注冊語音數據。
在本實施例中,用于處理語音數據的方法運行于其上的電子設備(例如圖1所示的服務器)可以獲取用戶在注冊用于驗證身份的系統賬號時輸入的預設數目個注冊語音數據,其中,上述注冊語音數據可以是用戶根據上述電子設備生成的字符串進行朗讀而生成的朗讀信息,上述字符串可以是上述電子設備隨機生成的字符串,也可以是上述用戶在字符串集合中選擇的字符串。
在本實施例的一些可選的實現方式中,上述電子設備可以獲取上述用戶已存儲的語音數據以及該語音數據的相關信息,其中,上述相關信息包括語音數據的輸入時間點;之后,可以刪除上述輸入時間點早于預設的時間分割點的語音數據,并將刪除后的語音數據作為注冊語音數據,并利用該注冊語音數據生成注冊聲紋向量。作為示例,當預設的時間分割點為2016年6月1日,則將輸入時間點早于2016年6月1日的數據刪除。
在本實施例的一些可選的實現方式中,上述電子設備可以首先利用聚類算法對上述用戶已存儲的語音數據進行聚類,生成至少一個已存儲的語音數據的簇,其中,上述聚類算法可以包括基于劃分聚類算法(例如k-means算法)、基于層次聚類算法(例如利用層次方法的平衡迭代規約和聚類(Balanced Iterative Reducing and Clustering Using Hierarchies,BIRCH))和基于密度聚類算法(例如DBSCAN算法)等;之后,上述電子設備可以獲取各個簇的中心點,以k-means算法為例,在給定K值和K個簇的初始中心點的情況下,把每個點分到離其最近的中心點所代表的簇中,當所有點分配完畢后,對一個簇中的所有點重新計算(例如計算平均值)得到該簇的中心點,然后再迭代的進行分配點和更新簇的中心點的步驟,直至簇的中心點的變化很小,或者達到指定的迭代次數,再獲取各個簇中的中心點;然后,可以利用距離算法計算每個已存儲的語音數據與每個已存儲的語音數據所在簇的中心點的距離,其中,上述距離算法可以包括歐式距離算法;最后,可以將上述距離大于預設的距離閾值的語音數據刪除,并將刪除后的語音數據作為注冊語音數據,并利用該注冊語音數據生成注冊聲紋向量。
在本實施例的一些可選的實現方式中,上述電子設備也可以將語音數據輸入時間點早于預設的時間分割點的語音數據以及上述距離大于預設的距離閾值的語音數據均刪除,并將刪除后的語音數據作為注冊語音數據,并利用該注冊語音數據生成注冊聲紋向量。
步驟302,將預設數目個注冊語音數據導入預先訓練的全局背景模型中進行映射得到預設數目個等長的中間向量。
在本實施例中,上述電子設備可以將上述預設數目個注冊語音數據導入預先訓練的全局背景模型中進行映射得到預設數目個等長的中間向量。上述全局背景模型是一個由性別均衡的不同說話者的大量語音樣本訓練得出的、且與說話者不相關的高斯混合模型,上述全局背景模型可以用來表征語音數據與中間向量的對應關系。
步驟303,對預設數目個等長的中間向量進行特征變換得到預設數目個注冊聲紋特征向量。
在本實施例中,上述電子設備可以通過聯合因子分析方法、概率線性判別分析算法和辨識矢量等算法對上述預設數目個等長的中間向量進行特征變換得到預設數目個注冊聲紋特征向量。
步驟304,對預設數目個注冊聲紋特征向量進行融合,生成用戶的注冊聲紋向量。
在本實施例中,上述電子設備可以對上述預設數目個注冊聲紋特征向量進行融合,生成上述用戶的注冊聲紋向量。例如,用戶甲在注冊過程中輸入了K個注冊語音數據,可以提取出K個注冊聲紋特征向量,可以通過下述的公式1對上述K個注冊聲紋特征向量進行融合得到上述用戶的注冊聲紋向量。
其中,V為用戶的注冊聲紋向量,K為注冊語音數據的數量,vi為用戶輸入的第i個注冊聲紋特征向量,norm(vi)為對vi進行數據標準化(長度歸一化)操作,為對進行數據標準化(長度歸一化)操作。
本申請的上述生成用戶的注冊聲紋向量方法通過對用戶的注冊語音數據進行映射,特征變換以及融合等處理,生成該用戶的注冊聲紋向量,從而以該注冊聲紋向量為基準,確定該用戶的身份驗證結果,實現了準確的用戶身份識別。
進一步參考圖4,其示出了用于處理語音數據的方法的又一個實施例的流程400。該用于處理語音數據的方法的流程400,包括以下步驟:
步驟401,接收用戶終端發送的語音數據。
在本實施例中,用于處理語音數據的方法運行于其上的電子設備(例如圖1所示的服務器)可以通過有線連接方式或者無線連接方式從用戶利用其進行用戶身份驗證的終端接收語音數據,其中,上述語音數據可以是用戶根據上述電子設備生成的字符串進行朗讀而生成的朗讀信息,上述字符串可以是上述電子設備隨機生成的字符串,也可以是上述用戶在注冊用于驗證身份的系統賬號時所選擇的字符串集合中的字符串。
步驟402,提取語音數據中的聲紋特征向量。
在本實施例中,上述電子設備可以提取步驟401中接收到的語音數據中的聲紋特征向量。聲紋是用電聲學儀器顯示的攜帶言語信息的聲波頻譜。現代科學研究表明,聲紋不僅具有特定性,而且有相對穩定性的特點。聲紋特征向量可以是標識用戶的聲紋頻譜特征的向量。
步驟403,將聲紋特征向量與預先存儲的用戶的注冊聲紋向量進行匹配,并生成聲紋特征向量與注冊聲紋向量之間的匹配度。
在本實施例中,上述電子設備可以將上述步驟402中提取的聲紋特征向量與預先存儲的上述用戶的注冊聲紋向量進行匹配,并生成上述聲紋特征向量與上述注冊聲紋向量之間的匹配度。上述預先存儲的的注冊聲紋向量可以是預先生成的注冊聲紋向量,也可以是更新之后的注冊聲紋向量。上述注冊聲紋向量可以是上述電子設備自身生成的,也可以是上述電子設備從其它已經生成上述用戶的注冊聲紋向量的設備上獲取到的。可以采用曼哈頓距離、閔可夫斯基距離和余弦相似度等計算上述聲紋特征向量與上述注冊聲紋向量之間的匹配度。
步驟404,確定匹配度是否大于等于預設的更新閾值。
在本實施例中,上述電子設備可以將步驟403中生成的匹配度與預設的更新閾值進行比較,確定上述匹配度是否大于或等于上述更新閾值,其中,上述更新閾值是動態的,且個性化的,用戶不同,用戶所對應的更新閾值也不同,上述更新閾值的設置是為了將預設比例的語音數據和聲紋特征向量進行存儲,以供上述電子設備根據存儲的語音數據和聲紋特征向量更新用戶的注冊聲紋向量,例如,當預設比例為90%時,則上述更新閾值可以使得占用戶總輸入的語音數據的90%的語音數據被存儲。
在本實施例中,上述電子設備可以針對用戶的各個注冊聲紋向量,為每個注冊聲紋向量設置不同的更新閾值。當將聲紋特征向量與所選擇的注冊聲紋向量進行匹配,可以將得到的匹配度與所選擇的注冊聲紋向量所對應的更新閾值進行比較,其中,所述注冊聲紋向量與所述更新閾值是一一對應的。
步驟405,響應于確定出匹配度大于等于預設的更新閾值,則獲取用戶輸入的注冊語音數據的數量和用戶已存儲的各個聲紋特征向量。
在本實施例中,當確定出上述匹配度大于或等于預設的更新閾值時,則上述電子設備可以獲取用戶輸入的注冊語音數據的數量和用戶已存儲的各個聲紋特征向量。當確定出上述匹配度大于或等于預設的更新閾值之后,上述電子設備可以首先獲取用戶已存儲的語音數據的數量,也可以獲取狀態標記為未使用的語音數據的數量;之后,確定獲取到的數量是否大于預設的數量閾值,其中,上述數量閾值可以是預先設置的以供當已存儲的語音數據的數量大于數量閾值時對上述注冊聲紋向量進行更新,若大于預設的數量閾值時,或者當到達預設的時間點時,上述電子設備可以獲取上述注冊語音數據的數量和上述用戶已存儲的各個聲紋特征向量。
步驟406,對用戶已存儲的各個聲紋特征向量進行數據標準化運算,并對數據標準化運算后的向量進行求和運算,得到用戶已存儲的聲紋特征向量之和。
在本實施例中,上述電子設備可以對上述用戶已存儲的各個聲紋特征向量進行數據標準化運算(或長度歸一化運算),并對數據標準化運算后的向量進行求和運算,得到上述用戶已存儲的聲紋特征向量之和,其中,數據標準化處理主要包括數據同趨化處理和無量綱化處理兩個方面。數據同趨化處理主要解決不同性質數據問題,對不同性質指標直接加總不能正確反映不同作用力的綜合結果,須先考慮改變逆指標數據性質,使所有指標對測評方案的作用力同趨化,再加總才能得出正確結果。數據無量綱化處理主要解決數據的可比性。數據標準化的方法有很多種,常用的有“最小—最大標準化”、“Z-score標準化”和“按小數定標標準化”等。
步驟407,利用注冊語音數據的數量乘以注冊聲紋向量,得到注冊聲紋向量之積。
在本實施例中,上述電子設備可以利用上述注冊語音數據的數量乘以上述注冊聲紋向量,得到注冊聲紋向量之積。
步驟408,計算聲紋特征向量之和與注冊聲紋向量之積的向量和,并計算用戶已存儲的語音數據的數量與注冊語音數據的數量的數量和,利用向量和除以數量和得到更新的注冊聲紋向量。
在本實施例中,上述電子設備可以計算上述步驟409得到的上述聲紋特征向量之和與上述步驟410得到的注冊聲紋向量之積的向量和,并計算上述用戶已存儲的語音數據的數量與上述注冊語音數據的數量的數量和,利用上述向量和除以上述數量和得到更新的注冊聲紋向量。具體地,可以通過下述公式2得到更新的注冊聲紋向量。
其中,Vnew為更新的注冊聲紋向量,n為注冊語音數據的數量,V為注冊聲紋向量,K為已存儲的語音數據的數量,vi為第i個已存儲的聲紋特征向量,norm(vi)為對vi進行數據標準化(長度歸一化)操作。
在本實施例的一些可選的實現方式中,當公式2中的K為1時,則上述注冊聲紋向量可以進行在線的實時更新。
在本實施例的一些可選的實現方式中,在注冊聲紋向量更新之后,上述電子設備可以將上述用戶已存儲的語音數據刪除,或者將其狀態標記為已使用,避免這些已使用的語音數據被反復用于更新。
從圖4中可以看出,與圖2對應的實施例相比,本實施例中的用于處理語音數據的方法的流程400突出了對注冊聲紋向量進行更新的具體步驟。由此,本實施例描述的方案可以利用用戶注冊時輸入的語音數據和匹配度大于等于預設的更新閾值的語音數據更新用戶的注冊聲紋向量,從而得到更準確的注冊聲紋向量。
進一步參考圖5,作為對上述各圖所示方法的實現,本申請提供了一種用于處理語音數據的裝置的一個實施例,該裝置實施例與圖2所示的方法實施例相對應,該裝置具體可以應用于各種電子設備中。如圖5所示,本實施例的用于處理語音數據的裝置500包括:接收單元501、提取單元502、匹配單元503、第一確定單元504和更新單元505。其中,接收單元501配置用于接收用戶終端發送的語音數據;提取單元502配置用于提取語音數據中的聲紋特征向量;匹配單元503配置用于將聲紋特征向量與預先存儲的用戶的注冊聲紋向量進行匹配,并生成聲紋特征向量與注冊聲紋向量之間的匹配度;第一確定單元504配置用于確定所述匹配度是否大于等于預設的更新閾值;更新單元505配置用于響應于確定出所述匹配度大于等于預設的更新閾值,則利用所述聲紋特征向量和所述語音數據更新所述注冊聲紋向量。
在本實施例中,用于處理語音數據的裝置500的接收單元501可以通過有線連接方式或者無線連接方式從用戶利用其進行用戶身份驗證的終端接收語音數據,其中,上述語音數據可以是用戶根據上述電子設備生成的字符串進行朗讀而生成的朗讀信息,上述字符串可以是上述電子設備隨機生成的字符串,也可以是上述用戶在注冊用于驗證身份的系統賬號時所選擇的字符串集合中的字符串。
在本實施例中,基于接收單元501接收的語音數據,上述提取單元502可以提取上述語音數據中的聲紋特征向量。聲紋是用電聲學儀器顯示的攜帶言語信息的聲波頻譜。現代科學研究表明,聲紋不僅具有特定性,而且有相對穩定性的特點。聲紋特征向量可以是標識用戶的聲紋頻譜特征的向量。
在本實施例中,基于提取單元502提取的聲紋特征向量,上述匹配單元503可以將上述聲紋特征向量與預先存儲的上述用戶的注冊聲紋向量進行匹配,并生成上述聲紋特征向量與上述注冊聲紋向量之間的匹配度。上述預先存儲的的注冊聲紋向量可以是預先生成的注冊聲紋向量,也可以是更新之后的注冊聲紋向量。上述注冊聲紋向量可以是上述電子設備自身生成的,也可以是上述電子設備從其它已經生成上述用戶的注冊聲紋向量的設備上獲取到的。上述匹配單元503可以采用曼哈頓距離、閔可夫斯基距離和余弦相似度計算上述聲紋特征向量與上述注冊聲紋向量之間的匹配度。
在本實施例中,基于匹配單元503生成的匹配度,上述第一確定單元504可以將上述匹配度與預設的更新閾值進行比較,確定上述匹配度是否大于或等于上述更新閾值,其中,上述更新閾值是動態的,且個性化的,用戶不同,用戶所對應的更新閾值也不同,上述更新閾值的設置是為了將預設比例的語音數據和聲紋特征向量進行存儲,以供上述電子設備根據存儲的語音數據和聲紋特征向量更新用戶的注冊聲紋向量。
在本實施例中,當確定出上述匹配度大于或等于預設的更新閾值,則上述更新單元505可以利用上述接收單元501接收的語音數據和上述提取單元502提取出的聲紋特征向量更新上述用戶的注冊聲紋向量。
在本實施例的一些可選的實現方式中,上述提取單元502可以包括映射模塊(圖中未示出)和變換模塊(圖中未示出)。其中,上述映射模塊可以將上述語音數據導入預先訓練的全局背景模型中進行映射得到中間向量,然后,上述變換模塊可以將上述中間向量進行特征變換得到聲紋特征向量。在用戶語音驗證系統中,上述全局背景模型是一個由性別均衡的不同說話者的大量語音樣本訓練得出的、且與說話者不相關的高斯混合模型,上述全局背景模型可以用來表征語音數據與中間向量的對應關系。
在本實施例的一些可選的實現方式中,用于處理語音數據的裝置500還可以包括生成單元(圖中未示出)。上述生成單元可以包括獲取模塊(圖中未示出),映射模塊(圖中未示出),變換模塊(圖中未示出)和融合模塊(圖中未示出)。其中,上述獲取模塊可以獲取用戶在注冊用于驗證身份的系統賬號時輸入的預設數目個注冊語音數據,其中,上述注冊語音數據可以是用戶根據上述電子設備生成的字符串進行朗讀而生成的朗讀信息;上述映射模塊可以將上述預設數目個注冊語音數據導入預先訓練的全局背景模型中進行映射得到預設數目個等長的中間向量,上述全局背景模型是一個由性別均衡的不同說話者的大量語音樣本訓練得出的、且與說話者不相關的高斯混合模型,上述全局背景模型可以用來表征語音數據與中間向量的對應關系;上述變換模塊可以通過聯合因子分析方法、概率線性判別分析算法和辨識矢量等算法對上述預設數目個等長的中間向量進行特征變換得到預設數目個注冊聲紋特征向量;上述融合模塊對上述預設數目個注冊聲紋特征向量進行融合,生成上述用戶的注冊聲紋向量。
在本實施例的一些可選的實現方式中,上述更新單元505還可以包括獲取模塊(圖中未示出)和更新模塊(圖中未示出)。其中,上述獲取模塊可以獲取上述注冊語音數據的數量和上述用戶已存儲的各個聲紋特征向量;上述更新模塊可以根據上述用戶已存儲的各個聲紋特征向量、上述用戶已存儲的語音數據的數量、上述注冊語音數據的數量和上述注冊聲紋向量,更新注冊聲紋向量。
在本實施例的一些可選的實現方式中,上述更新模塊可以包括第一計算子模塊(圖中未示出),第二計算子模塊(圖中未示出)和更新子模塊(圖中未示出)。其中,上述第一計算子模塊可以對上述用戶已存儲的各個聲紋特征向量進行數據標準化運算,并對數據標準化運算后的向量進行求和運算,得到上述用戶已存儲的聲紋特征向量之和;上述第二計算子模塊可以利用上述注冊語音數據的數量乘以上述注冊聲紋向量,得到注冊聲紋向量之積;上述更新子模塊可以計算上述第一計算子模塊得到的上述聲紋特征向量之和與上述第二計算子模塊得到的注冊聲紋向量之積的向量和,并計算上述用戶已存儲的語音數據的數量與上述注冊語音數據的數量的數量和,利用上述向量和除以上述數量和得到更新的注冊聲紋向量。
在本實施例的一些可選的實現方式中,在注冊聲紋向量更新之后,上述更新單元可以將上述用戶已存儲的語音數據刪除,或者將其狀態標記為已使用,避免這些已使用的語音數據被反復用于更新。
在本實施例的一些可選的實現方式中,上述獲取模塊可以包括第一獲取子模塊(圖中未示出)和第一刪除子模塊(圖中未示出)。其中,上述第一獲取子模塊可以獲取上述用戶已存儲的語音數據以及該語音數據的相關信息,其中,上述相關信息包括語音數據的輸入時間點;之后,上述第一刪除子模塊可以刪除上述輸入時間點早于預設的時間分割點的語音數據,并將刪除后的語音數據作為注冊語音數據,并利用該注冊語音數據生成注冊聲紋向量。
在本實施例的一些可選的實現方式中,上述獲取模塊還可以包括生成子模塊(圖中未示出),第二獲取子模塊(圖中未示出),計算子模塊(圖中未示出)和第二刪除子模塊(圖中未示出)。其中,上述生成子模塊可以利用聚類算法對上述用戶已存儲的語音數據進行聚類,生成至少一個已存儲的語音數據的簇,其中,上述聚類算法可以包括基于劃分聚類算法、基于層次聚類算法和基于密度聚類算法等;之后,上述第二獲取子模塊可以獲取各個簇的中心點,以k-means算法為例,在給定K值和K個簇的初始中心點的情況下,把每個點分到離其最近的中心點所代表的簇中,當所有點分配完畢后,對一個簇中的所有點重新計算(例如計算平均值)得到該簇的中心點,然后再迭代的進行分配點和更新簇的中心點的步驟,直至簇的中心點的變化很小,或者達到指定的迭代次數,再獲取各個簇中的中心點;然后,上述計算子模塊可以利用距離算法計算每個已存儲的語音數據與每個已存儲的語音數據所在簇的中心點的距離,其中,上述距離算法可以包括歐式距離算法;最后,上述第二刪除子模塊可以將上述距離大于預設的距離閾值的語音數據刪除,并將刪除后的語音數據作為注冊語音數據,并利用該注冊語音數據生成注冊聲紋向量。
在本實施例的一些可選的實現方式中,上述相關信息可以包括語音數據的采集設備類型,例如,手機、電腦和智能手表等等,上述相關信息還可以包括語音數據的輸入地點,可以按照外界環境噪聲的大小將輸入地點劃分為噪聲大的場所,例如,地鐵、商場、娛樂場所等,和噪聲大的場所,例如圖書館、教室等。用于處理語音數據的裝置500還可以包括第一獲取單元(圖中未示出)和重新生成單元(圖中未示出)。其中,上述第一獲取單元可以獲取各個簇中的語音數據以及該語音數據的相關信息,之后,上述重新生成單元可以利用各個簇的語音數據重新生成上述用戶的各個注冊聲紋向量,并根據上述各個簇的語音數據的相關信息生成各個注冊聲紋向量的相關信息。
在本實施例的一些可選的實現方式中,用于處理語音數據的裝置500還可以包括第二獲取單元(圖中未示出),上述第二獲取單元在處理語音數據時,還可以獲取語音數據的相關信息;上述匹配單元503可以包括選擇模塊(圖中未示出)和匹配模塊(圖中未示出),根據上述語音數據的相關信息與上述用戶的各個注冊聲紋向量的相關信息的匹配度,上述選擇模塊可以選擇注冊聲紋向量,例如,當獲取到語音數據的輸入地點為酒吧時,則可以選擇相關信息中包含噪聲大的場所的注冊聲紋向量,當獲取到語音數據的采集設備為智能手表時,則可以選擇相關信息中包含智能手表的注冊聲紋向量;最后,上述匹配模塊可以將該聲紋特征向量與所選擇的注冊聲紋向量進行匹配,得到匹配結果。
在本實施例的一些可選的實現方式中,用于處理語音數據的裝置500還可以包括第二確定單元(圖中未示出)和執行單元(圖中未示出)。其中,當上述第二確定單元確定出上述匹配度大于或等于預設的通過閾值,則上述執行單元可以確定上述用戶身份驗證通過,并執行與驗證通過相對應的操作,例如,當用戶在進行登錄網站時的身份驗證時,可以向上述用戶返回登錄成功的頁面;當用戶在進行密碼鎖的解鎖操作時,可以解開密碼鎖。
下面參考圖6,其示出了適于用來實現本發明實施例的服務器的計算機系統600的結構示意圖。
如圖6所示,計算機系統600包括中央處理單元(CPU)601,其可以根據存儲在只讀存儲器(ROM)602中的程序或者從存儲部分608加載到隨機訪問存儲器(RAM)603中的程序而執行各種適當的動作和處理。在RAM603中,還存儲有系統600操作所需的各種程序和數據。CPU601、ROM602以及RAM603通過總線604彼此相連。輸入/輸出(I/O)接口605也連接至總線604。
以下部件連接至I/O接口605:包括鍵盤、鼠標等的輸入部分606;包括諸如陰極射線管(CRT)、液晶顯示器(LCD)等以及揚聲器等的輸出部分607;包括硬盤等的存儲部分608;以及包括諸如LAN卡、調制解調器等的網絡接口卡的通信部分609。通信部分609經由諸如因特網的網絡執行通信處理。驅動器610也根據需要連接至I/O接口605。可拆卸介質611,諸如磁盤、光盤、磁光盤、半導體存儲器等等,根據需要安裝在驅動器610上,以便于從其上讀出的計算機程序根據需要被安裝入存儲部分608。
特別地,根據本公開的實施例,上文參考流程圖描述的過程可以被實現為計算機軟件程序。例如,本公開的實施例包括一種計算機程序產品,其包括有形地包含在機器可讀介質上的計算機程序,上述計算機程序包含用于執行流程圖所示的方法的程序代碼。在這樣的實施例中,該計算機程序可以通過通信部分609從網絡上被下載和安裝,和/或從可拆卸介質611被安裝。
附圖中的流程圖和框圖,圖示了按照本發明各種實施例的系統、方法和計算機程序產品的可能實現的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段、或代碼的一部分,上述模塊、程序段、或代碼的一部分包含一個或多個用于實現規定的邏輯功能的可執行指令。也應當注意,在有些作為替換的實現中,方框中所標注的功能也可以以不同于附圖中所標注的順序發生。例如,兩個接連地表示的方框實際上可以基本并行地執行,它們有時也可以按相反的順序執行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執行規定的功能或操作的專用的基于硬件的系統來實現,或者可以用專用硬件與計算機指令的組合來實現。
描述于本發明實施例中所涉及到的單元可以通過軟件的方式實現,也可以通過硬件的方式來實現。所描述的單元也可以設置在處理器中,例如,可以描述為:一種處理器包括接收單元、提取單元、匹配單元、第一確定單元和更新單元。其中,這些單元的名稱在某種情況下并不構成對該單元本身的限定。例如,接收單元還可以被描述為“接收用戶終端發送的語音數據的單元”。
作為另一方面,本發明還提供了一種非易失性計算機存儲介質,該非易失性計算機存儲介質可以是上述實施例中上述裝置中所包含的非易失性計算機存儲介質;也可以是單獨存在,未裝配入終端中的非易失性計算機存儲介質。上述非易失性計算機存儲介質存儲有一個或者多個程序,當上述一個或者多個程序被一個設備執行時,使得上述設備:接收用戶終端發送的語音數據;提取語音數據中的聲紋特征向量;將聲紋特征向量與預先存儲的用戶的注冊聲紋向量進行匹配,并生成聲紋特征向量與注冊聲紋向量之間的匹配度;確定匹配度是否大于等于預設的更新閾值;響應于確定出匹配度大于等于預設的更新閾值,則利用聲紋特征向量和語音數據更新注冊聲紋向量。
以上描述僅為本發明的較佳實施例以及對所運用技術原理的說明。本領域技術人員應當理解,本發明中所涉及的發明范圍,并不限于上述技術特征的特定組合而成的技術方案,同時也應涵蓋在不脫離發明構思的情況下,由上述技術特征或其等同特征進行任意組合而形成的其它技術方案。例如上述特征與本發明中公開的(但不限于)具有類似功能的技術特征進行互相替換而形成的技術方案。