版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
目錄 11.1. 41.1.1. 41.1.2. 41.1.3. 51.1.4. 81.2. 101.2.1. 101.2.2. 121.2.3.ROC 131.2.4. 141.2.5. 141.2.6. 151.3. 151.3.1. 151.3.2. 161.3.3.高斯混合模型- 221.3.4.高斯混合模型- 231.3.5. 261.4. 291.4.1. 301.4.2. 36 363.4.4 361.4.3. 383.12 404. 415. 431. 452. 493. 514. 55 561.5. 571.5.1. 571.5.2. 581.5.3. 601.5.4. 651.6. 681.6.1. 681.6.2. 691.7. 721.7.1. 721.7.2. 721.7.3. 721.7.4. 731.7.5. 731.7.6.CN- 731.7.7. 731.7.8. 741.7.9. 74 術(shù),還是第6章將要介紹的基于聲紋的語音合成、人聲分離及語音活動檢測等,都離不開trained),也可以是聯(lián)合訓(xùn)練(jointtraining)得到的。因此,本章也是本書最重要、最核聲紋識別,也稱為說話人識別,在英文中對應(yīng)若干種說法,例如voicerecognition、speakerrecognition、voiceprintrecognition、talkerrecognition等都是同一個概念,也就是這里要注意將聲紋識別與語音識別(speechrecognition)技術(shù)進(jìn)行區(qū)分。語音識別是1.1節(jié)就提到過,每個人的發(fā)音器官(包括聲帶、聲道等)的大小與形狀有所差異,verification)及聲紋辨認(rèn)(speakeridentification或speakermatching)。聲紋驗證技術(shù)需要由目標(biāo)說話人(targetspeaker)事先提供音頻樣本,通過特定的算稱為聲紋錄入(voiceenrollment)或聲紋注冊(voiceregistration)。聲紋驗證對應(yīng)的應(yīng)用主要是喚醒和安全。在智能手機或智能音箱等產(chǎn)品上,可以對領(lǐng)域(如門禁系統(tǒng)、支付系統(tǒng)等),確保操作來自被授權(quán)的用戶,而非冒名頂替者。 speakers)集合之中。假如這個集合包含了M位說話人,那么聲紋辨認(rèn)可以看作一個M元名頂替者(imposter)的類別,此時聲紋辨認(rèn)便成了一個M+1元分類問題。有時,我們將無論是閉集還是開集,聲紋辨認(rèn)需要集合中的M位候選說話人各自提供音頻樣本。也就是說,這M位候選說話人的集合是由所有完成了聲紋錄入步驟的說話人組成的集合。一個最直觀的聲紋辨認(rèn)系統(tǒng)的實現(xiàn)方式,便是對集合中的M位候選說話人一一進(jìn)行聲紋辨認(rèn)對應(yīng)的應(yīng)用場景主要是個性化。例如,對于智能音箱產(chǎn)品而言,這里的候別出正在使用產(chǎn)品的用戶是哪一位家庭成員,并由此提供個性化的交互。例如用戶對于聲紋辨認(rèn)來說,通常認(rèn)為M越大,任務(wù)越難,識別準(zhǔn)確率也會越低。直觀上在實際應(yīng)用中,文本相關(guān)的聲紋識別系統(tǒng)主要用于喚醒詞或驗證口令的聲紋識別。的音頻進(jìn)行聲紋識別。中文或者英文,此時我們稱之為語言相關(guān)、文本無關(guān)的聲紋識別。如果不對說話內(nèi)容的語言做限定,則稱之為語言無關(guān)、文本無關(guān)的聲紋識別。至衍生出了不少新興的研究方向和應(yīng)用。第5章將要介紹的聲紋分割聚類技術(shù),以及第6門的分支來研究如何區(qū)分原始的聲音和轉(zhuǎn)錄后的聲音,被稱作反欺詐,我們會在7.2.3節(jié)系統(tǒng)的運作都包含兩個階段:事先完成的聲紋錄入階段和實際運行時的識別階段。我們將這兩個階段的大致流程分別用圖3.1與圖3.2表示。圖3.1圖3.2語音,先通過第2章介紹的方法進(jìn)行分幀、加窗并提取特征,然后用本章將要介紹的方法征該說話人的聲紋特征。后面將要提到的超向量、i-vector、d-vector等,都是說話人模型表3.1類問題中常用的平均精度均值(meanaverageprecision,mAP)指標(biāo),聲紋識別領(lǐng)域中通從圖3.2中可以看出,常見的聲紋識別系統(tǒng)在識別階段主要包括特征提取、聲紋建模、相似匹配和判別這四個模塊。特征提取模塊在第2章已經(jīng)進(jìn)行了詳細(xì)的介紹,聲紋建紋模型。其輸出是一個實數(shù),通常稱為匹配分?jǐn)?shù)(o)——這個分?jǐn)?shù)越高,表示兩個聲紋模型越接近,我們越傾向于認(rèn)為驗證音頻來自目標(biāo)說話人。假如需要匹配的聲紋模型可以表示為兩個嵌入碼向量e1與e2,那么相似匹配可以采取以下幾種形式(如圖3.3所示)。圖3.3余弦相似度(cosine 該相似度表示e與e兩個向量在多維空間中的夾角的余弦值。如果e與e 歐氏距離(Euclidean數(shù)f(e1,e2|θ)。這里θ表示機器學(xué)習(xí)模型f(·)的參數(shù)集合。聲紋識別所用的測試數(shù)據(jù)集,每個說話人都會有多段不同的語音(un),其中哪些音頻用于錄入,哪些用于識別。因此,一般需要將測試集分割成兩個互不重疊的子集:錄入集(nont)與驗證集(von)。需要注意的是,錄入集與驗證集都需要涵蓋測試集中全部說話人;但是對于每一個說話人,這兩個子集需要包含來自該說話人的不同的語音。舉一個簡單的例子,假如測試集用了來自1號說話人的3段語音{U11,U12,U13},以及來自2號說話人的3段語音{U21,U22,U23},那么一個可行的分割方案為:每個說話人取兩(如圖3.1所示),最終得到一個包含了所有說話人聲紋模型的模型庫。之后便可以將驗證集中的語音與模型庫中的說話人模型進(jìn)行相似匹配(如圖3.2所示),并根據(jù)該模型是在一些公開的數(shù)據(jù)集中,有時會提供一個實驗語音對(trialpairs)的列表,如3.7.5節(jié)將介紹的VoxCeleb數(shù)據(jù)集。這種測試相當(dāng)于以上方法的一個特例,那就是錄入集中每個試集中的音頻,訓(xùn)練數(shù)據(jù)集必須不能包括任何在測試集中出現(xiàn)過的說話人。圖3.4給出了訓(xùn)練集、錄入集、驗證集之間關(guān)系的簡單示例。圖3.4訓(xùn)練集、錄入集、驗證集之間關(guān)系的簡單示例。圖中每一個小方塊代表一段語音,同一行的小方塊代表來ROCROC曲線的全稱是接收者操作特征曲線(receiveroperatingcharacteristiccurve),是驗證可以看作一個二值判別的問題,因此可以用ROC曲線評價聲紋驗證系統(tǒng)的表現(xiàn)。 的“說話人-語音對”{(S,U)},這里S表示由錄入集得到的第i個說話人的聲紋模型,而U表示驗證集中第i′個說話人的第j段語音。如果i=i′,則該說話人-語音對構(gòu)成一個正 值得注意的是,對于任意U,如果S 入,計算出相似匹配的分?jǐn)?shù)s。給定任意一個判別閾值t,判別結(jié)果為 ≥t),而真實結(jié)果為yi,i′j=δ(i=i′)。通過對所有與yi,i′j的比較,可以計算出該測試集上的正確接受率(trueaccept,TA)、正確拒絕率(truereject,TR)、錯誤接受率(falseaccept,F(xiàn)A),以及錯誤拒絕率(falsereject,F(xiàn)R)。在統(tǒng)計學(xué)中,F(xiàn)A與FR分別被稱作第一類錯誤(typeIerror)與第二類錯誤(typeIIerror)。如果考慮以FA為橫坐標(biāo),TA為縱坐標(biāo)的平面,則每一個判別閾值t都對應(yīng)了該平面上的一個點。如果將t的值從s的取值范圍內(nèi)掃過,那么隨著t的增加,F(xiàn)A與TA都會減小,從而在該平面上繪制出一條單調(diào)遞增的曲線。該曲線便是ROC曲線。曲線與x軸之間的面積,被稱為曲線下面積(areaundercurve,AUC在聲紋識別領(lǐng)域,常常以FA為橫坐標(biāo),以FR(而非TA)為縱坐標(biāo)繪制單調(diào)遞減的ROC曲線。這種形式的ROC曲線更利于我們觀察在判別閾值變化的過程中,F(xiàn)A與FR這兩類錯誤之間的取舍。在這種設(shè)定下,ROC曲線下方的面積越小,意味著系統(tǒng)的識別能邊界情況的處理,等等。這些細(xì)節(jié)的不同,可能導(dǎo)致同一組匹配分?jǐn)?shù),在不同的AUC實與曲線下面積相比,等錯率(equalerrorrate,EER)的定義與實現(xiàn)都更加簡單清晰,因此也成了聲紋識別領(lǐng)域最常用的評價指標(biāo)。顧名思義,等錯率表示當(dāng)FA與FR兩類錯誤數(shù)值相等時的FA與FR數(shù)值。在以FA為橫坐標(biāo),F(xiàn)R為縱坐標(biāo)的ROC曲線上,等錯率表示該ROC曲線與直線y=x的交點。該點對應(yīng)的判別閾值,通常稱為等錯率閾值。在實際計算等錯率的時候,由于會對判別閾值進(jìn)行掃描,一般會得到ROC曲線上與y=x最接近的兩個點。我們通常會通過這兩個點擬合出一條直線(即ROC曲線的切線),計算其與y=x的交點,從而得到等錯率。雖然這種做法在某種程度上也會受到判別積那樣依賴ROC曲線上所有的點,在掃描判別閾值的時候,可以采用二分查找法進(jìn)行掃值得注意的是,因為等錯率表示FA與FR相等時的數(shù)值,所以在等錯率閾值這一點,真正的錯誤率是FA與FR之和,也就是等錯率的兩倍,而非等錯率本身。率只能非常粗略地反映ROC曲線的位置,并不包含有關(guān)ROC曲線形狀的信息。因此,只有當(dāng)兩條ROC曲線的形狀大致相同時,等錯率才有最佳的可比性。如果兩條ROC曲線的(tolerance)。一般來說,喚醒類應(yīng)用傾向于采用FR更低的閾值,安全類應(yīng)用傾向于采用FA更低的閾值。這是因為,對于智能手機、智能音箱上的喚醒系統(tǒng)而言,F(xiàn)R意味著用戶的交互得不到響應(yīng),會導(dǎo)致較差的產(chǎn)品體驗;而在很多情況下,F(xiàn)A(例如語音識別結(jié)果等)FA意味著冒名頂替者成功通過驗證,會對用戶的信息、財產(chǎn)安全造成損害;而FR因此,美國國家標(biāo)準(zhǔn)與技術(shù)研究所(NIST)提出了基于檢測代價函數(shù)(detectioncost 這里C和C分別表示FR與FA這兩類錯誤所對應(yīng)的代價,P與P則分別表示真實說話人與冒名頂替者出現(xiàn)的先驗概率;而使得C的值最小的判別閾值,稱為最小檢測代價函數(shù)閾值。顯然,喚醒類應(yīng)用傾向于采用更大的 有時也會用到辨認(rèn)準(zhǔn)確率(identificationaccuracy)。 前面提到過,聲紋驗證系統(tǒng)的評價指標(biāo)基于“說話人-語音對”{(S,U)}。對于聲紋辨認(rèn)系統(tǒng),我們需要用到多個說話人模型與語音組成的元組{(S,S,···,S,U)},這里k ···,S中,有一個來自真實說話人,其余說話人模型則來自隨機選取的冒名頂替者。我們將語音U與這k個說話人模型進(jìn)行匹配,并取分?jǐn)?shù)最高的模型作為匹配結(jié)果。在所有元組中,語音被匹配到了正確的說話人模型的比例,稱為k類辨認(rèn)準(zhǔn)確率。關(guān)于k值的選取,則取決于實際應(yīng)用的場景。例如家用的智能音箱,其通常需要辨認(rèn)多個家庭成員的聲音,因此k值可以選取為購買該音箱的所有家庭的平均家庭成員數(shù)。我們已經(jīng)介紹了圖3.1和圖3.2所對應(yīng)的聲紋識別系統(tǒng)流程的大部分模塊。從本節(jié)開法,并分別在本節(jié)和3.4節(jié)進(jìn)行介紹。這樣分類的原因是:基于深度學(xué)習(xí)的方法目前已經(jīng)早在1.3.2節(jié)與1.3.3節(jié)便已介紹了一些早期的基于模板匹配和統(tǒng)計量的聲紋建模方第一種改進(jìn)方法是基于矢量量化[5]的方法。這種方法將音頻特征所在的d維特征空間劃分為K個子區(qū)域,每個區(qū)域由一個中心點(centroid)表示。矢量量化,然后將得到的K個區(qū)域中心點稱為該說話人的碼表(codebook)。碼表的構(gòu)建通常采用K-均值(K-means)算法[55]或者LBG算法[56]。而在識別階段,我們提取驗證音頻似然比失真度(likelihoodratiodistortion)的計算方法。第二種改進(jìn)方法基于動態(tài)時間歸正(dynamictimewarping,DTW)[4]技術(shù)。這種方的音頻特征矢量組成的序列X=(x1,x2,···,xM)與Y=(y1,y2,···,yN),這里M/=N。真度最小。通過采用動態(tài)規(guī)劃(dynamicprogramming)算法,求解動態(tài)時間歸正的時間1.3.4節(jié)曾提到過,高斯混合模型(Gaussianmixturemodel,GMM)是統(tǒng)計學(xué)中一個的概率分布,如圖3.5所示。在聲紋識別領(lǐng)域,采用高斯混合模型的動機也可以直觀地理圖3.5本節(jié)介紹的基于高斯混合模型的聲紋識別方法,主要參考DouglasReynolds等人發(fā)表于1995年的論文[9]。該論文的一個核心設(shè)定是:將每個說話人的音頻特征用一個高斯混合模型來表示。假如該說話人的音頻特征序列為X=(x1,x2,···,xN),我們希望用以下概率分布擬合X中特征的分布:這里λ表示該高斯混合模型的所有參數(shù)的集合,M 數(shù),c≥0表示第i個高斯分量的權(quán)重,并滿足其和為1:N(x)表示第i 這里K表示音頻特征x的維度,μ和Σ分別是第i個高斯分量的均值向量及協(xié)方差矩陣。|Σ|是矩陣 回到式(3.4),從式(3.7)中可以看出,ci是實數(shù),i是一維向量,而Σi模型的總參數(shù)數(shù)量為M(12),其中大部分參數(shù)都被協(xié)方差矩陣占據(jù)。尤其是當(dāng)音頻特征x的維度K出現(xiàn)嚴(yán)重的過擬合。此時,等式(3.6)其中σi=[σi1,σi2,···,σiK]是由對角協(xié)方差矩陣的對角元素的平方根組成的一維向量,而參數(shù)的總數(shù)量減少為M·(1+2K)。我們將完整的協(xié)方差矩陣簡化為對角矩陣的理論依據(jù)是:具有M個完整協(xié)方差高斯參考文獻(xiàn)9對多種協(xié)方差矩陣的選取進(jìn)行了實驗,并最終認(rèn)為,讓每個說話人的每做法。此后的大多數(shù)研究都沿用了這種做法。就是對高斯混合模型進(jìn)行參數(shù)估計(parameterestimation)。常用的做法是進(jìn)行最大似然估計(maximumlikelihoodestimation,MLE),也就是說,對于說話人的音頻特征序列X=(x1,x2,···,xN),找到一組參數(shù)λ,使得以下似然函數(shù)最大化:算。高斯混合模型參數(shù)估計的EM算法大致如下:在第t步迭代中,假設(shè)當(dāng)前參數(shù)為λ(t-1)。計算每一個x在第i個高斯分量上的后驗概率為這一步稱為EM算法的E-步驟。根據(jù)后驗概率p(i|x,λ(t-1)),得到一組新的參數(shù)估計λ(t),其分別為混合權(quán)這一步稱為EM算法的M- 在實際的參數(shù)估計過程中,如果某個方差2 的值過小,則會導(dǎo)致似然函數(shù)的計算現(xiàn)奇異點(nguy)。在數(shù)據(jù)不足時很容易出現(xiàn)這種情況。為了避免奇異點的產(chǎn)生,一個普遍的做法是對方差的取值進(jìn)行限制。取定某個2 作為下限,一旦在迭代過程中個2的值小于該下限,便將其取值更改為2 對比圖3.2所示的流程圖,高斯混合模型的參數(shù)估計對應(yīng)著圖中的聲紋建模模塊,我們還需要定義一種相應(yīng)的相似匹配算法。假如X=(x,x,···,x)是待識別的音頻信號特征序列,S個待識別的說話人的高斯混合模型參數(shù)分別為λ,λ,···,λ 本節(jié)以Python語言的機器學(xué)習(xí)庫scikit-learn中的高斯混合模型實現(xiàn)為例,介紹對應(yīng)方實踐4假如特征序列X來自目標(biāo)說話人的錄入音頻,特征序列Y來自驗證音頻,用高斯混合模型計在scikit-learn中,要使用高斯混合模型,需要先創(chuàng)建一個高斯混合模型的對象,其創(chuàng)n_components表示高斯分量的個數(shù),對應(yīng)式(3.4)中的M;covariance_type希望所有高斯分量共享同一個完整協(xié)方差矩陣,則可以用'tied';max_iter表示使用EM算法進(jìn)行參數(shù)估計時的最大迭代次數(shù);n_iter表示初始化的次數(shù),在多次初始化的嘗試中,最好的一組初始化結(jié)果將被保存;init_params表示初始化所采用的算法,'kmeans'表示K- 高斯混合模型-了由S個說話人組成的閉集之中。如果待驗證音頻還可能來自這S個說話人之外的冒名頂 于2000年提出的通用背景模型(universalbackgroundmodel,UBM)[10]則很好地解決角度分析,如果用H表示驗證音頻來自S位待驗證說話人,用H表示驗證音頻來自冒名頂替者,用λ 這里λ除此之外,參考文獻(xiàn)10所提出的高斯混合模型-通用背景模型()框架說話人的高斯混合模型參數(shù)都可以由通用背景模型進(jìn)行初始化,然后通過貝葉斯自適應(yīng)(Bayesianadaptation)在GMM-UBM框架中,首先,利用來自所有說話人的音頻特征,估算出一組高斯混算法與3.3.2節(jié)描述的M算法有所不同,其區(qū)別主要體現(xiàn)在步驟上。貝葉斯自適應(yīng)的步驟利用一組依賴于數(shù)據(jù)本身的混合系數(shù),對上一步得到的參數(shù)進(jìn)行修正,從而在新的公式較多,本書就不詳細(xì)列舉了。感興趣的讀者可以自行參閱參考文獻(xiàn)10。參數(shù)。大量的實驗表明,只對均值進(jìn)行自適應(yīng),而將混合權(quán)重和方差保持固定,有著最好的識別性能。高斯混合模型-在深度學(xué)習(xí)技術(shù)普及之前,支持向量機(supportvectormachine,SVM)[58]可以算是項工作,常被稱為GMM-SVM方法[11]。 考慮一組由N個數(shù)據(jù)點構(gòu)成的二元分類數(shù)據(jù)集{(x,y),···,(x,y)},其中x是表示特征的向量,y∈{-1,1}是其所屬的真實類別。我們需要將y=1與y=-1對應(yīng)的兩類點分開,相當(dāng)于在特征空間內(nèi)尋找一個超平面w·x-b=0,使得y=1與y=-1 問題1對于數(shù)據(jù)集{(x1,y1),···,(xN,yN)},我們希望尋找這樣一組w與b,使得超平面b=0將yi=1與yi=-1對應(yīng)點集分隔后的間隔 最大(等同于使得∥w∥最小),并對所有1≤i≤N滿足以 顯然,如果數(shù)據(jù){(x,y),···,(x,y)}本身不是線性可分的,則不存在對所有1≤i≤N都滿足式(3.18)的 此時的優(yōu)化問題變?yōu)槠渲械摹败涢g隔”參數(shù)λ用來調(diào)整間隔的大小與分類正確性之間的一旦求解出w與b,便可以根據(jù)g(x)=w·x-b計算分類的分?jǐn)?shù),再根據(jù)該分?jǐn)?shù)的符號非線性變化φ(·),先將所有特征向量x映射到變換后的空間φ(x),再對φ(x)進(jìn)行分幸運的是,借助核技巧(kerneltrick)[59]式(3.22)中,αi≥0,1i≤N N。少數(shù)滿足α>0的α所對應(yīng)的 GMM-SVM框架提出了兩種用于聲紋識別的核函數(shù):超向量線性核和L2回顧3.3.3節(jié)介紹的高斯混合模型-通用背景模型,在該方法中,先用所有語音獲取一音,如果將貝葉斯自適應(yīng)之后得到的不同高斯分量的M個均值向量μi,按照固定的順序拼接在一起,則可以將得到的向量稱為GMM超向量(supervector)。假如有兩段語音Ua與Ub,通過高斯混合模型-通用背景模型的貝葉斯自適應(yīng)得到的均則用于區(qū)分Ua與Ub的聲紋特征的超向量線性核函數(shù)定義為相應(yīng)地,L2 方法,在聲紋識別任務(wù)上的表現(xiàn)都要優(yōu)于原始GMM-UBM在GMM-UBM框架中,通過通用背景模型自適應(yīng)得到的超向量,盡管能夠在一定程景環(huán)境相關(guān)的信道信息等。聯(lián)合因子分析(jointfactoranalysis,JFA)[12,60,61]方法的提出,因子分析(factoranalysis)是數(shù)據(jù)挖掘領(lǐng)域的一種統(tǒng)計方法。在該方法中,通過將觀 考慮p個隨機變量x,假設(shè)其均值為μ 這里f,···,f是k個潛在變量(或稱為公共因子),且k<p;而? 將這p 如果有N個觀察到的x,則也有N個相對應(yīng)的f與?,而μ與L是與觀察值獨立的。L 在因子分析方法中,需要假設(shè)f (1)f與? (2)f期望為零:E(f) (3)f協(xié)方差為單位矩陣:cov(f)= 聯(lián)合因子分析方法將因子分析的思想運用到了基于GMM-UBM的聲紋識別中。對于一段語音,考慮其通過通用背景模型自適應(yīng)得到的超向量s,如果GMM一共有M個高斯分量,音頻特征的維度為K,則s的維度為MK×1。聯(lián)合因子分析方法認(rèn)為超向量s不僅包含這里m是與說話人無關(guān)的MK×1維超向量,我們可以直接采用通用背景模型的超向量作為m;y是一個低維的用來表示說話人信息的因子,并服從標(biāo)準(zhǔn)多元正態(tài)分布(每個元素都服從N(0,1));V是y的載荷矩陣,V矩陣的列也被稱為本征音(eigenvoice);x??;U是x的載荷矩陣,該矩陣的列也被稱為本征信道(eigenchannel);z是MK×1維的與說話人相關(guān)的殘差項,也被稱為公共因子,服從標(biāo)準(zhǔn)多元正態(tài)分布;D是一個MK×MK為“聯(lián)合”因子分析法。在一個常見的問題設(shè)定中,如果音頻特征采用K=39維的MFCC特征,高斯混合模型采用M=512個高斯分量,那么超向量s的維度為19968×1——這個維度息及信道信息分別建模,例如可以取y的維度為300×1,x的維度為100×1。此時,V的維度為19968×300,U的維度為19968×100,D的維度為19968×19968。聯(lián)合因子分析方法最大的難點在于參數(shù)估計,也就是求取矩陣V、U與D的過程。具中描述的JFA-SVM框架,便提出采用單獨的說話人因子y,或者同時利用說話人因子y與公共因子z構(gòu)建支持向量機的核函數(shù),從而實現(xiàn)聲紋識別。i-vector在基于深度學(xué)習(xí)的聲紋識別方法出現(xiàn)之前,于2011年提出的基于i-vector的聲紋識別vector技術(shù)本身并不神秘,它是聯(lián)合因子分析技術(shù)的一種改進(jìn),或者說是一種簡化。本節(jié)將對i-vector技術(shù)進(jìn)行簡要介紹。在聯(lián)合因子分析方法中,通過將GMM-UBM的超向量分解為信道因子x、說話人因子y及公共因子z,令x只對信道進(jìn)行建模,y只對說話人進(jìn)行建模。這個思想雖然沒有問題,但是在實際情況下,x通常也會包含一部分說話人信息,使得y中的說話人信息被弱參考文獻(xiàn)[63]中進(jìn)行了一組有意思的實驗,那就是通過信道因子x進(jìn)行聲紋識別。在表明,僅僅用信道因子來實現(xiàn)聲紋識別,居然能達(dá)到20%左右的等錯率,也就是說x中其實依然包含了大量與說話人有關(guān)的信息。在基于說話人因子y的聲紋識別系統(tǒng)中,這部分基于以上考慮,i-vector方法將式(3.31)中U所表示的信道空間和V所表示的說話人空間合二為一,得到一個新的總體變化(totalvariability)空間,用矩陣T表示。而對應(yīng)的因子則稱為總體因子(totalfactor),用w表示:這里m是與說話人和信道都無關(guān)的超向量,可以直接采用通用背景模型的超向量作為m;而w是一個服從標(biāo)準(zhǔn)多元正態(tài)分布的隨機向量,維度通常選取在400到600之間??傮w因子w也被稱為“身份向量”(identityvector),簡寫為i-vector。式(3.32)可以解讀為:s是一個服從多元正態(tài)分布的隨機向量,其均值向量為m,協(xié)方差矩陣為TTT。在i-vector方法中,總體變化矩陣T的參數(shù)估計方法與聯(lián)合因子分析中V矩陣的估計i-vector在式(3.32)中,總體變化矩陣T直接對說話人和信道同時建模,因此得到的總體因子w會包含信道相關(guān)的信息,而這是我們不希望見到的。因此,為了移除信道的影響,還需要對i-vector進(jìn)行信道補償。這里涉及了聯(lián)合因子分析與i-vector這兩種方法的核心區(qū)別:聯(lián)合因子分析在高維的超向量空間移除信道的影響,而i-vector則在低維的總體因i-vector的信道補償有很多種做法,其基本原理都在于尋找某個投影矩陣(projectionmatrix)A,使得補償后的向量w′=Aw不包含信道信息,再利用w′而非w完成聲紋識別。 covariancenormalization,WCCN)、線性判別分析(lineardiscriminantanalysis,LDA),以及擾動屬性投影(nuisanceattributeprojection,NAP)。其中,線性判別分析后,概率線性判別分析(probabilisticlineardiscriminantanalysis,PLDA)[64]的引入更是令i-vector方法的性能得到了進(jìn)一步提升[65]?;趇-vector 假設(shè)兩段語音經(jīng)過信道補償后的i-vector分別為w與w,則可以定義如下的余弦核函數(shù):有了核函數(shù),便能利用 除了支持向量機,還有一種更簡單的判別法,那就是直接計算目標(biāo)說話人的vor與驗證音頻的vor 之間的余弦相似度,再將該余弦相似度與某個事先選定的全局閾進(jìn)行比較。盡管神經(jīng)網(wǎng)絡(luò)(neuralnetwork)技術(shù),甚至是卷積神經(jīng)網(wǎng)絡(luò)及長短期記憶網(wǎng)絡(luò)等高級的網(wǎng)絡(luò)結(jié)構(gòu)早在20世紀(jì)末已被提出,但這些技術(shù)的真正爆炸式發(fā)展,以及在計算機視 LeCun、YoshuaBengio及GeoffreyHinton這三位神經(jīng)網(wǎng)絡(luò)領(lǐng)域的元老級人物于2015年《自然》期刊上發(fā)表的Deeplearning一文[66],更是讓相關(guān)的技術(shù)受到了業(yè)內(nèi)前所未有的關(guān)機的硬件性能。圖形處理器通用計算(general-purposecomputingongraphicsprocessingunifieddevicearchitecture,CUDA),則成了深度學(xué)習(xí)技術(shù)背后的重要助力。除此之外,發(fā)展。例如,早期的CIFAR-10圖像分類數(shù)據(jù)集只有10個類別[67],而ImageNet數(shù)據(jù)集經(jīng)過型、通用背景模型、支持向量機、聯(lián)合因子分析及i-vector的技術(shù)。因此,筆者將基于深入了解相關(guān)概念的讀者,推薦直接閱讀由IanGoodfellow等人編著的Deeplearning一書[69]。該書的HTML版本和PDF版本都能直接在網(wǎng)絡(luò)上免費獲取,并且能夠在GitHub上找到開在3.3.2節(jié)介紹高斯混合模型時曾經(jīng)提到過,高斯混合模型之所以能夠在諸多領(lǐng)域有回顧圖3.1與圖3.2中描述的聲紋識別系統(tǒng)流程,可以將音頻特征到說話人模型的聲紋前饋神經(jīng)網(wǎng)絡(luò)(feed-forwardneuralnetwork)是神經(jīng)網(wǎng)絡(luò)中最簡單的一種,其元函 網(wǎng)絡(luò)第k層的普遍表示:圖3.6常用的激活函數(shù)包括Sigmoid函數(shù)σ(x)=(1+exp(-x))-1,反正切函數(shù) 在許多文獻(xiàn)中,前饋神經(jīng)網(wǎng)絡(luò)有時也被稱為完全連接網(wǎng)絡(luò) network),或者簡稱為深度神經(jīng)網(wǎng)絡(luò)(deepneuralnetwork)。圖3.7給出了一個簡單的用前饋神經(jīng)網(wǎng)絡(luò)來擬合函數(shù)y=x3-2x的示例。可以看到,即使只有少數(shù)幾個節(jié)點,也能夠達(dá)圖3.7用激活函數(shù)為雙曲正切函數(shù)的前饋神經(jīng)網(wǎng)絡(luò)擬合函數(shù)yx3-2x的效果示意圖。第一個神經(jīng)網(wǎng)絡(luò)只有一層,該層包含3個節(jié)點;第二個神經(jīng)網(wǎng)絡(luò)有兩層,每層包含3個節(jié)點音頻、視頻等高維多媒體輸入的時候,則出現(xiàn)了問題??紤]一張64×64像素的圖像,如果100個節(jié)點,那么式(3.37)中的Wk將會包含64×64×100=409600個參數(shù)。對于尺寸更大減少網(wǎng)絡(luò)的總參數(shù)數(shù)量。而卷積神經(jīng)網(wǎng)絡(luò)(convolutionalneuralnetwork,CNN)的提卷積神經(jīng)網(wǎng)絡(luò)由卷積層(convolutionallayer)(convolutionalkernel),或稱為卷積濾波器(convolutionalfilter)。每一個卷積內(nèi)核被重則常被用來處理視頻或者3D醫(yī)學(xué)圖像。圖3.83.8()所示為一維序列經(jīng)過三組空間上互不重疊的卷積核后,得到的三個新的序列,其中卷積內(nèi)核的大小和步長均為4;圖3.8(b)所示為二維圖像的局部在經(jīng)過卷積運算后,成為輸出圖像的一個像素。圖3.8來。而循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrentneuralnetwork,RNN)的提出,正是為了更好地對序列藏向量ht,而ht不僅取決于當(dāng)前時刻的輸入xt,還取決于前一時刻的隱藏向量ht-1,從而使得 這里,σ(·)與σ(·)分別是隱藏向量與輸出向量的激活函數(shù)。圖3.9以折疊和展開到,循環(huán)神經(jīng)網(wǎng)絡(luò)的參數(shù)集合{W,U,b, 圖3.9式(3.38)與式(3.39)所示為循環(huán)神經(jīng)網(wǎng)絡(luò)中最簡單的一種,常被稱為原味循環(huán)經(jīng)網(wǎng)絡(luò)(vna )。在實際使用中,這種簡單的循環(huán)神經(jīng)網(wǎng)絡(luò)的效果并不理想,為其很難保留長期的信息,并且訓(xùn)練過程中會遇到梯度消失問題(vnhng gdntpob)。為了克服這些困難,循環(huán)神經(jīng)網(wǎng)絡(luò)出現(xiàn)了很多變種,其中最有名的便是長短期記憶網(wǎng)絡(luò)(ong hom oy,)22。長短期記憶網(wǎng)絡(luò)通過增加輸入門(inputgate)、輸出門(outputgate)和遺忘門(forgetgate),來維持一組擁有更長期記憶能力的節(jié)點狀態(tài)向量(cellstatevector),從而實現(xiàn)長期記憶功能。其實現(xiàn)細(xì)節(jié)可以參門控循環(huán)單元(gatedrecurrentunit,GRU)[70]是一種類似于長短期記憶網(wǎng)絡(luò)的循環(huán)神具備自己的參數(shù),例如式(3.34)中的w與b,因此神經(jīng)網(wǎng)絡(luò)也會擁有大量的參數(shù)。為了讓神經(jīng)網(wǎng)絡(luò)實現(xiàn)我們希望其具備的功能,需要定義一個損失函數(shù)(lossfunction),來描數(shù),最小化損失函數(shù)的過程。關(guān)于如何設(shè)計聲紋識別問題中的損失函數(shù),會在3.4.4節(jié)進(jìn) 如神經(jīng)網(wǎng)絡(luò)的輸入x是一張人臉圖像,y是該人臉對應(yīng)的真實年齡,而 =f(x;θ)是通 人臉圖像構(gòu)成的訓(xùn)練數(shù)據(jù)集{(x,y)} 式(3.40)所描述的問題,是一個標(biāo)準(zhǔn)的無約束優(yōu)化(unconstrainedoptimization)問題。如果神經(jīng)網(wǎng)絡(luò)=f(x;θ)與損失函數(shù)L(y,)都可導(dǎo),則可以通過以梯度下降法(gradientdescent)為代表的數(shù)值優(yōu)化算法求解。在神經(jīng)網(wǎng)絡(luò)中,梯度的計算需要用 表示第k步時神經(jīng)網(wǎng)絡(luò)的參數(shù),而γ>0是梯度下降的學(xué)習(xí)率(learning這種做法稱為隨機梯度下降(stochasticgradientdescent,SGD)。隨機梯度下降的學(xué)習(xí)率的學(xué)習(xí)率。目前最常用的是自適應(yīng)的學(xué)習(xí)率,包括Adagrad[73]、AdaDelta[74]及Adam[75]等算串聯(lián)深度特征(ndmdpu)76]是上海交通大學(xué)于2014年提出的一種將神經(jīng)網(wǎng)絡(luò)間接用于聲紋識別的技術(shù)。這種方法依然采用3.3.3節(jié)介紹的高斯混合模型模型作為聲紋識別的基本框架。與之不同的是,傳統(tǒng)的高斯混合模型通用背景模型的輸入為C或P特征提取模塊,提取出更高級的特征,與音頻特征拼接后再作為高斯混合模型通用背景模型的輸入。(donnhn,),這是一種非監(jiān)督式的神經(jīng)網(wǎng)絡(luò)。通過這種網(wǎng)絡(luò)獲得的特征可能包括音素(phon)、說話人和信道等多方面的信息。第二種是用于將三連音素(phon)進(jìn)行分類的監(jiān)督式前饋神經(jīng)網(wǎng)絡(luò)。第三種則是用于將說話人進(jìn)行分3.4.4基于神經(jīng)網(wǎng)絡(luò)的i-基于神經(jīng)網(wǎng)絡(luò)的i-vector[77]是另一項于2014年提出的將神經(jīng)網(wǎng)絡(luò)間接用于聲紋識別的技術(shù)。這種方法的基本框架依然是3.3.6節(jié)介紹的i-vector方法。其差別在于,傳統(tǒng)的i-vector方法基于高斯混合模型-通用背景模型;而參考文獻(xiàn)[77]中描述的框架則將高斯混合這里提到的用于語音識別的神經(jīng)網(wǎng)絡(luò)(),非常類似于串聯(lián)深度特征一節(jié)提到的參考文獻(xiàn)76中的第二種網(wǎng)絡(luò)。這種網(wǎng)絡(luò)對音頻特征幀進(jìn)行分類,而分類的目標(biāo)則為各種三連音素。高斯混合模型可以看作對音頻特征的分布的一種概率描述,這里三音素的個數(shù)對應(yīng)著高斯混合模型的高斯分量的個數(shù);類似地,用于語音識別的神經(jīng)網(wǎng)絡(luò)可以看作對音頻特征的分布的一種描述,此時三連音素對應(yīng)著神經(jīng)網(wǎng)絡(luò)輸出層的節(jié)點數(shù)因此,可以將高斯混合模型替代為用于語音識別的神經(jīng)網(wǎng)絡(luò),而將vor 框架的其他部分保持不變。聯(lián)合向量j-聯(lián)合向量(onvo)方法,或稱vor方法,是上海交通大學(xué)于2015年提出的一種基于神經(jīng)網(wǎng)絡(luò)的聲紋識別方法21。這種方法用同一個神經(jīng)網(wǎng)絡(luò)同時完成兩個任務(wù):從語音中識別出文本,以及從語音中識別出說話人。該方法的具體實現(xiàn)是:兩個任務(wù)的神網(wǎng)絡(luò)底部若干層是共用的,然后用共用層的最上面一層的輸出向量,也就是vo,實現(xiàn)兩個不同任務(wù)的損失函數(shù),進(jìn)行聯(lián)合訓(xùn)練。最后,利用概率線性判別分析A 的方法,讓vor更好地區(qū)分說話人。。而串聯(lián)深度特征,基于神經(jīng)網(wǎng)絡(luò)的i-vector,以及j-vector方法,都將語音識別神經(jīng)網(wǎng)絡(luò)性能較差,無法直接與經(jīng)過多年發(fā)展的高斯混合模型-通用背景模型或者i-vector等成熟技代碼實現(xiàn),還是在產(chǎn)品、服務(wù)中的部署,都變得比i-vector等方法容易得多。此后,完全輯的不同;其二是訓(xùn)練過程中的損失函數(shù)的不同。3.4.3節(jié)與3.4.4節(jié)將對這兩個方面的各若不考慮上述兩方面的不同,大部分直接用于聲紋識別的神經(jīng)網(wǎng)絡(luò)都可以用圖3.10所示的通用架構(gòu)進(jìn)行概括。圖3.10的左側(cè)為長度不一的各個音頻特征序列,這些序列可以自不同的說話人。每一段音頻特征序列經(jīng)過神經(jīng)網(wǎng)絡(luò)后,得到一個固定長度的嵌入碼,或稱為dvo。因此,該神經(jīng)網(wǎng)絡(luò)也常被稱作聲紋編碼器(pkrnod)。運行時的推理邏輯,指的是從音頻特征序列得到嵌入碼的過程。根據(jù)這些嵌入碼及每段音頻特征列所對應(yīng)的真實說話人,可以計算出某個用以衡量嵌入碼性能的損失函數(shù)。在訓(xùn)練過程中,我們用隨機梯度下降或dm 等算法75對損失函數(shù)進(jìn)行優(yōu)化,從而更新神經(jīng)網(wǎng)絡(luò)編碼器的參數(shù),直至其收斂為止。圖3.10 合方法,便是取每一幀輸出的平均向量作為最終的嵌入碼,如圖3.11所示。圖3.11前面介紹過的串聯(lián)深度特征76絡(luò)。該網(wǎng)絡(luò)單獨用于聲紋識別時性能不佳,只有將其與傳統(tǒng)方法結(jié)合才能達(dá)到不錯的性能。固定窗推理方法較早也較具代表性的工作,是谷歌于2014年發(fā)表的一篇論文[14]。該論文中的聲紋識別系統(tǒng)被用于識別谷歌的喚醒詞“OKGoogle”所對應(yīng)的說話人。喚醒詞檢測算法[78]持續(xù)在長度為800毫秒的窗口上運行,一旦喚醒詞被檢測到,聲紋識別網(wǎng)絡(luò)便會觸發(fā),并在對應(yīng)的800毫秒窗口上運行。3.12考文獻(xiàn)[14]中的系統(tǒng),每幀包含40維特征,幀間距為10毫秒,那么800毫秒的固定窗便會包含總共3200個特征。如果每幀特征或者固定窗的長度增加,則神經(jīng)網(wǎng)絡(luò)的輸入維度也時候,引入了dropout[79]的方法(具體來說是maxout方法[80])。而后谷歌于2015年提出了圖3.12序列推理(fullsequenceinference)的神經(jīng)網(wǎng)絡(luò)了。環(huán)神經(jīng)網(wǎng)絡(luò)會重置其狀態(tài)(states,如式(3.38)中的ht)為初始狀態(tài)(initialstates)。我池化(pooling)的全序列推理;另一種是基于末幀(lastframe)的全序列推理,分別如圖3.13中的(a)與(b)所示。常見的做法,便是計算其輸入序列的平均值向量,例如百度的dppkr聲紋識別系統(tǒng)便采用了這種做法18。除了平均值向量,還可以計算出標(biāo)準(zhǔn)差向量,作為額外的統(tǒng)計量,與平均值向量進(jìn)行拼接,得到更大的嵌入碼,例如約翰斯·霍普金斯大學(xué)的聲紋識別系統(tǒng)便采用了這種做法19,82。值得注意的是,無論是百度還是約翰斯·霍普金斯大學(xué)的聲紋識別算的魯棒性。圖3.13基于池化的全序列推理,乍看上去與圖3.11所示的逐幀推理十分相似,但兩者卻有著基于末幀的方法,通常取決于具體產(chǎn)品的要求。如果是離線推理(offlineinference),并來并避免各自的缺陷呢?谷歌于2018年的論文中提出的滑動窗推理(slidingwindow滑動窗推理神經(jīng)網(wǎng)絡(luò)的基本原理如圖3.14輸入,完成推理,并得到末幀的輸出,類似于圖3.13(b)中的全序列推理。最后,取所有滑動窗的末幀輸出的向量平均值,作為最終的嵌入碼,這一點類似于圖3.11中的逐幀推理。圖3.14如果相鄰滑動窗的重疊度為N%,那么每一幀音頻特征需要經(jīng)過100/N次推理。如果我們考慮由M個說話人組成的閉集內(nèi)的聲紋辨認(rèn)問題,那么該問題可以近似地看作一個M元的分類(classification)問題。對于用于多元分類的神經(jīng)網(wǎng)絡(luò),機器學(xué)習(xí)領(lǐng)域已經(jīng)存在一些非常成熟的標(biāo)準(zhǔn)做法,其中最常用的便是交叉熵(crossentropy)損失函列,y∈,·,}表示對應(yīng)說話人在閉集中的身份標(biāo)簽。我們可以將y看成一個遵循概率分布p(p1,·,p)的隨機變量。在訓(xùn)練數(shù)據(jù)中,y的值是已知的,因此在p第y位置的值為p,其他y的位置的值為p0。這里的向量p也被稱作單熱點(on-ho)向量,因為其始終只有一個值為1,其余值為0。單熱點向量常被用來對類別進(jìn)行編碼,例如說話人、音素、語言等。若要使用交叉熵?fù)p失函數(shù),神經(jīng)網(wǎng)絡(luò)的最后一層需要采用M (softmaxfunction),而該函數(shù)前一層的輸出必須為M維的向量。假設(shè)該M維向量為z=(z,···,z),那么歸一化指數(shù)函數(shù)的輸出也是M維向量q=(q, 從式(3.42)中很容易得到0≤q≤1,并且 函數(shù)的輸出q也可以看作一個概率分布。 此外,從式(3.42)中還能看出,如果在位置i=k處,z是所有z中的最大值,那么q也將是所有q中的最大值。通過指數(shù)函數(shù)的作用,最大值q與其他值之間的差距會被放大,導(dǎo)致q看起來更近似于一個單熱點向量。例如,當(dāng)z=(1,2,3)時,歸一化指數(shù)函數(shù)的輸出為q≈(0.09,0. 來區(qū)分隱馬爾可夫模型(hiddenMarkovmodel,HMM)的狀態(tài)[83];在計算機視覺中,大名鼎鼎的ImageNet任務(wù)也采用這種方法對圖像進(jìn)行分類[45]。盡管交叉熵?fù)p失函數(shù)在分類問題上大顯神威,不過具體到聲紋識別領(lǐng)域,卻出現(xiàn)了個問題,那就是限定在某個閉集內(nèi)的聲紋辨認(rèn)其實并不太實用。更多時候,我們希望將過交叉熵?fù)p失函數(shù)訓(xùn)練得到的神經(jīng)網(wǎng)絡(luò),應(yīng)用于閉集之外的說話人的聲紋驗證中。要實這一目的,常用的做法是,選取歸一化指數(shù)函數(shù)的前面一層的輸入向量作為嵌入碼,如圖3.15所示,然后對該嵌入碼采用余弦相似度等方法進(jìn)行聲紋驗證。通過這種方法得到嵌入碼,其性能通常并不會太好,尤其是難以在閉集之外的說話人上取得較好的效果。過,隨著訓(xùn)練數(shù)據(jù)所包含的說話人數(shù)量M 的增大,嵌入碼的性能會有所提升。理論上當(dāng)訓(xùn)練數(shù)據(jù)包含的說話人數(shù)量M 足夠大,并覆蓋足夠多的變化形式時,嵌入碼也應(yīng)該備不錯的性能。圖3.15別通常是固定的,例如最龐大的圖像數(shù)據(jù)庫ImageNet[68],其最初發(fā)布時只有約5000別,直至2019年也才有約20000個類別;而后者的類別理論上幾乎是無限多的(地球上現(xiàn)過的每一個人的聲音),如谷歌的訓(xùn)練數(shù)據(jù)動輒數(shù)十萬個說話人16。假設(shè)我們需要維度為K的嵌入碼,訓(xùn)練數(shù)據(jù)包含M個說話人,那么歸一化指數(shù)函數(shù)前面的一層網(wǎng)絡(luò)則要將K維向量轉(zhuǎn)換為M 維向量,也就是需要一個包含K ·M 個參數(shù)的矩陣。假25,M100000,那么該矩陣將包含兩千多萬個參數(shù),這樣的網(wǎng)絡(luò)訓(xùn)練起來將會十分昂貴。因此,交叉熵?fù)p失函數(shù)一般只在早期的工作中比較常見,較為先進(jìn)的聲紋識別系一般不會采用這種訓(xùn)練方式。三元損失函數(shù)(tripletloss)便是基于這種思路設(shè)計出來的一種損失函數(shù)。在谷歌于2015年發(fā)表的一篇論文中,首次將該方法用于大規(guī)模人臉識別與聚類系統(tǒng)FaceNet上,并三元損失函數(shù)的基本原理示意圖如圖3.16所示。首先,從訓(xùn)練數(shù)據(jù)中選擇一段音頻作圖3.16網(wǎng)絡(luò)編碼器為f(·),那么三元損失函數(shù)可以定義為這里α≥0 [x=max(x,0)表示取正數(shù)部分,∥·∥ 式(3.44)所示的三元損失函數(shù)是FaceNet原論文中所使用的形式,一些聲紋識別系在使用三元損失函數(shù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)時,一個重要的問題是,應(yīng)該如何選取由錨定樣想應(yīng)該是選擇最困難的樣本——至少也要使得操作符內(nèi)為正數(shù)。也就是說,應(yīng)該選擇百度在其deepspeaker論文[18]中提出,可以先采用前面提到的基于歸一化指數(shù)函數(shù)及近年來的許多基于神經(jīng)網(wǎng)絡(luò)的聲紋識別系統(tǒng)都自稱是端到端(ndond)的系統(tǒng)。征:需要注意的是,端到端的神經(jīng)網(wǎng)絡(luò)不同于端到端的損失函數(shù)。端到端損失函數(shù)最早由谷歌于2016年提出15,其設(shè)計思想是——訓(xùn)練時的損失函數(shù)應(yīng)該盡可能地“模擬證系統(tǒng)運行時的性能指標(biāo)。而這里的“模擬,主要涉及兩個方面:端到端損失函數(shù)的示意圖如圖3.17所示。假如在實際運行階段,我們事先要求用戶提供M段錄入音頻,以構(gòu)建用戶的說話人模型,那么在訓(xùn)練過程中,同樣要構(gòu)建一個M+1元組,其中包含了M段錄入音頻,以及一段驗證音頻——這里的M段錄入音頻{x1,···,圖3.17所有的M+1段音頻先經(jīng)過神經(jīng)網(wǎng)絡(luò)編碼器f(·), 假如錄入音頻的嵌入碼為e,··· ,e,驗證音頻的嵌入碼為e′ 這一步對應(yīng)圖3.1最后,計算驗證音頻的嵌入碼和錄入音頻聚合嵌入碼之間的余弦相似度 式(3.48)中,y=1表示該M+1元組為正樣本,y=0表示該M+1元組中,都涵蓋了正樣本與負(fù)樣本;而端到端損失函數(shù)采用了M+1元組的形式,更好地約翰斯·霍普金斯大學(xué)發(fā)表于2016年的一篇論文中,對端到端損失函數(shù)做了一些小的改動[82],其將圖3.17中的余弦相似度替換為受概率線性判別方法啟發(fā)的如下距離函數(shù):式(3.49)中的方陣S與常數(shù)b優(yōu)化。此外,該論文的另一個改動是在式(3.48)中,對于負(fù)樣本(即0)的情況,在損失函數(shù)前面乘以一個常數(shù)0<<1,這樣即使在訓(xùn)練過程中負(fù)樣本的數(shù)量遠(yuǎn)遠(yuǎn)多于正樣本的數(shù)量,正負(fù)樣本在損失函數(shù)中的比重也能得到較好的平衡。廣義端到端損失函數(shù)是谷歌于 年提出的針對傳統(tǒng)端到端損失函數(shù)的一種改[16]類似于3.3.4節(jié)介紹的支持向量機所采用的“最大間隔” 廣義端到端損失函數(shù)的原理如圖3.18所示??紤]一個批的數(shù)據(jù)中來自第j個說話人的第i段音頻x,其對應(yīng)的嵌入碼表示為e。假如第j個說話人所有嵌入碼的向量平均值,也就是該說話人在嵌入碼空間的中心為c,那么首先,我們希望嵌入碼e能夠盡可能地接近c,從而保證每個說話人在嵌入碼空間所對應(yīng)的區(qū)域盡可能地“緊致 圖3.18此外,我們還希望嵌入碼eji盡量遠(yuǎn)離其他說話人在嵌入碼空間所對應(yīng)的中心。根據(jù)最大間隔原理,只需要找到距離該嵌入碼最近的除說話人j之外的說話人(即最近冒名頂替者)中心即可。圖3.18中說話人k與k′都為冒名頂替者,但因ck相較于ck′距離eji更近,所以我們希望eji盡可能地遠(yuǎn)離ck,而暫時忽略ck′。下面給出廣義端到端損失函數(shù)的數(shù)學(xué)表述。首先,假設(shè)一個批的數(shù)據(jù)包含N×M頻,也就是包含N個說話人,而每個說話人有M段音頻,向量e表示第j個說話人的第i段音頻的嵌入碼,c表示第k個說話人的中心,這里1≤j,k≤N且1≤i≤M。構(gòu)建一個NM×N的相似度矩陣S,其中表示嵌入碼e與說話人k的相似度。這里w>0與b是兩個可以通過可以看到,式(3.51)中如果將分子與分母都除以分子,那么分母中k=j對應(yīng)的一項便成了常數(shù)1;而其他k/=j的諸項中,在歸一化指數(shù)函數(shù)的作用下,最大的一項將得到最化。而最大項被保留的程度,則由前面提到的可訓(xùn)練的參數(shù)w與b決定。式(3.53)(3.51)Sji,j盡可能大,而最大的Sji,k,k/=j盡可能小。兩者的差異在于求取最大Sji,k,k/=j的方法。對比度函數(shù)的實現(xiàn)是直接 入碼中心c的計算。在計算嵌入碼e的真實說話人中心時,最好的做法是將 過程中不會出現(xiàn)所有嵌入碼e都收斂到同一點的平凡解(trivialsolution)。嵌入碼{e}之后,可以統(tǒng)一地計算相似度矩陣S,然后利用該矩陣同時對所有嵌入碼計算出”(garbagein,garbageout,GIGO)說話人數(shù)量對于聲紋識別模型而言,最重要的一項指標(biāo)便是,對于未出現(xiàn)在訓(xùn)每個說話人的語音數(shù)量在前面的章節(jié)中我們提到過,在聲紋識別模型的訓(xùn)練中,文本的多樣性對于文本相關(guān)的聲紋識別而言,需要保證音頻所對應(yīng)的文本的準(zhǔn)確·口音、語調(diào)、錄制設(shè)備及環(huán)境的多樣性除了文本的多樣性,許多其他方面的多樣數(shù)據(jù)的正確性看似最顯而易見的一點,其實也是最重要的一點,那就是數(shù)據(jù)的正頻特征時,我們通常需要利用事先訓(xùn)練好的語音檢測(voiceactivitydetection,VAD)模們直接將其丟棄,不作為后續(xù)模塊的輸入。6.4節(jié)會對語音檢測進(jìn)行更多的介紹。體細(xì)節(jié)可參考第2章內(nèi)容。在實現(xiàn)特征提取的時候,通常有兩種做法:行分組。例如,我們希望每一個批包含8個說話人,而每個說話人有4段音頻,那么在處理數(shù)據(jù)時,可以按照同樣的方法存儲——將每個說話人的音頻分成4個一組,再把這些組結(jié)構(gòu),會產(chǎn)生不同的混響(vbon)效果。不同的錄制場景也會含有不同的背景噪識別的性能便會有所下降。 VoxCeleb等免費數(shù)據(jù)集,而這類數(shù)據(jù)集通常很難滿足環(huán)境的多樣性要求。此外,即使是數(shù)據(jù)增強(dataaugmentation),是通過模擬算法增加數(shù)據(jù)多樣性的一種技術(shù)。在計改變語音信號的采樣率。考慮到傳統(tǒng)的電話線路用8000Hz的采樣率來傳輸信號,通即使只是簡單地將每一份訓(xùn)練音頻復(fù)制為0.9倍速、1倍速,以及1.1倍速共三份,也能有統(tǒng)的影響。因此,早在1987年,參考文獻(xiàn)[87]便提出了多風(fēng)格訓(xùn)練(multi-styletraining,能專門在汽車中錄制每個說話人的語音,并且在汽車行駛的每一個檔位都錄制一遍。因此,通常利用數(shù)據(jù)增強的方法,人工生成噪聲環(huán)境下的語音8890。這種方法的原理非常簡單,那就是先用特定的房間模擬軟件生成若干組房間沖擊響應(yīng)(oompuepon,)信號,用來表示特定信號源到麥克風(fēng)的傳輸過程中會發(fā)生的混響效果。再將這些房間沖擊響應(yīng)與各個信號源和噪聲源進(jìn)行卷積并相加,便能得到最終增強后的音頻信號。 為h(t);環(huán)境中存在M h(t),其中1≤i≤M;此外,環(huán)境中還存在加性噪聲d(t)。那么,所有這些信號混合在一起,得到的增強信號x( 其中的*性。例如約翰斯·霍普金斯大學(xué)的x-vector方法論文中,就介紹了引入數(shù)據(jù)增強后對聲紋識別性能帶來的影響[19]。7.3.1節(jié)會對更多的數(shù)據(jù)增強方法進(jìn)行介紹。動手實踐:用pyroomacoustics我們以一個具體的實例介紹如何用Python工具庫pyroomacoustics進(jìn)行多風(fēng)格訓(xùn)練的實踐5給定一段 的單信道純噪聲音首先,用Python的軟件包管理系統(tǒng)pip接下來,用pyroomacousticsShoeBox表示我們的房間為長方體(鞋盒形狀),room_dim表示我們的房間長寬高都等于4米,rt60表示聲音衰減60分貝需要0.3秒。mic_locs表示麥克風(fēng)的位置。在設(shè)置信號源的delay參數(shù)時,假設(shè)噪聲信號一直都在,而語音信號則從第2秒才開始。最后,調(diào)用simulate來。以噪聲信號到麥克風(fēng)為例,通過下面的程序可以繪制出如圖3.19所示的房間沖擊響
圖3.19通過pyroomacoustics識別任務(wù)。例如,用同一個文本無關(guān)的模型支持多種語言下的聲紋識別,以及用同一個文本相關(guān)的模型支持多個關(guān)鍵詞。包含的音頻是英文數(shù)據(jù)集的100倍,那么無論是輪流交替訓(xùn)練,還是將兩個數(shù)據(jù)集亂序混 例如,如果較小的數(shù)據(jù)集D與較大數(shù)據(jù)集D所包含的音頻數(shù)量比例為1:99。那么將數(shù)據(jù)亂序混合后,從中構(gòu)建一個大小為n=32的數(shù)據(jù)批,批中每一段音頻來自D的概率為p=0.01,來自D的概率為p=0.99。為了保證基于該批的訓(xùn)練能夠有效覆蓋 模型在D1類數(shù)據(jù)上必然準(zhǔn)確率非常低。為解決以上幾個問題,較具代表性的方法是谷歌于 年提出的多讀取量,如圖3.20所示。其中每個數(shù)據(jù)集的權(quán)重與數(shù)據(jù)集的大小無關(guān),該權(quán)重僅表示該數(shù)據(jù)集圖3.20 數(shù)據(jù)集D,在D 集D 支持“OKGoogle”和“HeyGoogle”兩個喚醒詞,這種方法相比直接將兩個數(shù)據(jù)集混合在一其中方陣S與標(biāo)量b其中方陣S在聲紋驗證流程中,利用3.6.2節(jié)介紹的驗證方法得到余弦相似度等驗證分?jǐn)?shù)之后,Z-normZ-norm,或稱為零正則化(zeronormalization),考慮在驗證的過程中,除了將驗證含N段來自不同說話人的音頻集群(cohort)中,提取出N條嵌入碼,并同樣與目標(biāo)說話人進(jìn)行相似匹配,得到N個分?jǐn)?shù)。從這N個分?jǐn)?shù)中,計算出這些分?jǐn)?shù)的均值與標(biāo)準(zhǔn)差,再對驗證分?jǐn)?shù)進(jìn)行正則化,得到最終的分?jǐn)?shù)。該過程如圖3.21所示。在實際計算中,音頻集圖3.21Z-normT-normT-norm,或稱為測試正則化(testnormalization),考慮在驗證過程中,加入來自集群中的N個說話人模型,與驗證音頻的嵌入碼計算驗證分?jǐn)?shù),如圖3.22所示。T-norm與Z-norm十分相似,但是T-norm采用的是說話人模型集群,而Z-norm采用的是音頻嵌入碼集圖3.22T-normT-norm正則化還有一個自適應(yīng)的變體
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 未來五年大數(shù)據(jù)分析優(yōu)化育種管理企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略分析研究報告
- 未來五年騾飼養(yǎng)企業(yè)縣域市場拓展與下沉戰(zhàn)略分析研究報告
- 銀行防搶應(yīng)急演練方案
- 2025-2030物聯(lián)網(wǎng)平臺服務(wù)行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025-2030物流行業(yè)需求分析及資源配置優(yōu)化評估物流園發(fā)展布局分析研究報告
- 2025-2030牛奶糖制造行業(yè)市場供需平衡現(xiàn)狀分析報告
- 餐飲企業(yè)食品采購質(zhì)量控制標(biāo)準(zhǔn)
- 墻面乳膠漆施工技術(shù)要點
- 生產(chǎn)車間績效考核方案設(shè)計
- 土地制度政策優(yōu)化
- 中藥外洗治療化療導(dǎo)致外周神經(jīng)毒課件
- 2025-2026學(xué)年人教版(新教材)小學(xué)數(shù)學(xué)三年級下冊(全冊)教學(xué)設(shè)計(附目錄P208)
- 2026年孝昌縣供水有限公司公開招聘正式員工備考題庫及參考答案詳解一套
- 2025版中國慢性乙型肝炎防治指南
- 2026年及未來5年市場數(shù)據(jù)中國草酸行業(yè)發(fā)展前景預(yù)測及投資戰(zhàn)略數(shù)據(jù)分析研究報告
- 臨床技能培訓(xùn)中的教學(xué)理念更新
- 2025年太原理工大學(xué)馬克思主義基本原理概論期末考試參考題庫
- 2026屆廣東東莞七校高三上學(xué)期12月聯(lián)考政治試題含答案
- 感染科結(jié)核病防治培訓(xùn)指南
- 思想政治教育研究課題申報書
- 開發(fā)區(qū)再生水資源化利用建設(shè)項目可行性研究報告
評論
0/150
提交評論