語音

這也引出了聲紋識別,同時也是傳統的語音識別框架下的一個很合理的假設:將語音拆分到音素(phone)的級別,狹義的現代漢語只需要32個音素就已經足夠用了。

如果考慮到每個音素的形態還會受到前後音素的影響,構建三音素模型(tri-phone)的話,那至多也只有幾千個備選的三音素集合(不是簡單的32的三次方,我們也會去掉一些稀有的和根本不會出現的搭配),而不同說話人的三音素樣本儘管有明顯的差異,但都能在空間中的某個區域內聚類。由語音和對應的聲學特徵的這些性質啓發,1995年DA Reynolds首次將混合高斯模型(Gaussian Mixture Model,GMM)成功地應用於文本無關的聲紋識別任務,至此之後的20多年,奠定了GMM在聲紋識別中地基的地位,後續聲紋的發展演進都是以GMM作爲基礎進行改進和拓展的。

 

實際應用中,從用戶體驗和成本的角度上考慮,針對目標用戶可採集到的語料是極其有限的(按照學術上的定義,實際可用的語音是稀疏(sparse)),如何在有限的數據中完成穩定的建模與識別。

對於同一個用戶,即便採集到的兩段語音內容都是相同的,但由於情緒、語速、疲勞程度等原因,語音都會有一些差異性。如何補償這種說話人自身語音的差異性

聲音是通過錄音設備進行採集的,不同的型號的錄音設備對語音都會造成一定程度上的畸變,同時由於背景環境和傳輸信道等的差異,對語音信息也會造成不同程度的損傷,一般在研究中將這些外界影響語音的效應稱爲信道易變性(Channel Variability)

 

有研究表明,當GMM中高斯分量的數量足夠多的時候,GMM可以模擬任意的概率分佈。

主流企業

科大訊飛

出門問問

雲知聲

思必馳

百度(度祕)

騰訊小鯨(消息較少)

Google(Google Now)

微軟(小冰、小娜Cortana)

蘋果(Siri)

開源語音識別軟件

HTK

李開復團隊實現,老牌的基於HMM的語音識別工具箱

Juicer

Julius

Kaldi

據說是目前最好的開源工具箱,而且可以商業化,有用到DNN

Alize

說話人識別框架

http://mistral.univ-avignon.fr/mediawiki/index.php/Main_Page

http://alize.univ-avignon.fr/

https://github.com/ibillxia/VoicePrintReco/tree/master/Demo

https://www.researchgate.net/publication/242655641_ALIZESpkDet_a_state-of-the-art_open_source_software_for_speaker_recognition

http://dblp.l3s.de/d2r/directory/Publications

目前主流的方法

DNN-ivector

基於端到端深度學習的說話人信息提取

聲紋識別主流方法

gmm-ubm

i-vevtor-plda

deep feature

bottleneck feature

d-vector

聲紋特徵的不同的原因

特徵主要由兩個因素決定,第一個是 聲腔的尺寸 ,具體包括咽喉、鼻腔和口腔等,這些器官的形狀、尺寸和位置決定了聲帶張力的大小和聲音頻率的範圍。因此不同的人雖然說同樣的話,但是聲音的頻率分佈是不同的,聽起來有的低沉有的洪亮。每個人的發聲腔都是不同的,就像指紋一樣,每個人的聲音也就有獨特的特徵。

第二個決定聲音特徵的因素是 發聲器官被操縱的方式 ,發聲器官包括脣、齒、舌、軟齶及齶肌肉等,他們之間相互作用就會產生清晰的語音。而他們之間的協作方式是人通過後天與周圍人的交流中隨機學習到的。人在學習說話的過程中,通過模擬周圍不同人的說話方式,就會逐漸形成自己的聲紋特徵

 

文本相關及文本無關的聲紋識別

從語音字典是否受限的角度上來區分聲紋文本無關識別和文本相關識別,文本無關就是說系統對於輸入的語音的內容並不做限制,識別系統應當可以克服語音中字典信息的多變性和差異性,對語音背後的身份做出準確判斷;而文本相關識別,意思是我們預先會限制語音的字典集合的規模。

如下圖是說話人A,B分別說“四”和“九”的聲譜圖

A對應“四”的語音波形          B對應“四”的語音波形      A對應“九”的語音波形

A說“四”和“九”的聲譜圖看上去比A說“四”B說“四”的差異還大。

語音特性

短時平穩特性

10--30ms內可以認爲語音信號近似不變

聲音的基本概念

音素

語音中最小的基本單位是音素,音素是人類能區別一個單詞和另一個單詞的基礎。音素構成音節,音節又構成不同的詞和短語。音素又分爲元音和輔音。狹義的現代漢語只需要32個音素就已經足夠用了。如果考慮到每個音素的形態還會受到前後音素的影響,構建三音素模型(tri-phone)[a1] 的話,那至多也只有幾千個備選的三音素集合(不是簡單的32的三次方,我們也會去掉一些稀有的和根本不會出現的搭配)

元音,輔音

元音,又稱母音,是音素的一種,與輔音相對。元音是在發音過程中由氣流通過口腔而不受阻礙發出的音。不同的元音是由口腔不同的形狀造成的。(元音和共振峯關係密切)

輔音,氣流在口腔或咽頭受到阻礙而形成的音叫做輔音,又叫子音。不同的輔音是由發音部位和發音方法的不同造成的。

清音,濁音

清音:清音和濁音的概念在文獻中涉及較多。嚴格來講,很多特徵的提取都需要區分清音和濁音。當氣流通過聲門時,如果聲道中某處面積很小,氣流高速衝過此處時產生湍流,當氣流速度與橫截面積之比大於某個臨界速度便產生摩擦音,即清音。簡單來說,發清音時聲帶不振動,因此清音沒有週期性。清音由空氣摩擦產生,在分析研究時等效爲噪聲。

濁音:語音學中,將發音時聲帶振動的產生音稱爲濁音。輔音有清有濁,而多數語言中的元音均爲濁音。濁音具有週期性。

發清音時聲帶完全舒展,發濁音時聲帶緊繃在氣流作用下作週期性動作

響度,音高,音色

響度,音高,音色都是一種主觀心理量

目前自己的理解:

不同頻率上的能量分佈決定了音色

不同的頻率高低決定了音調

不同的振幅決定了響度

聲譜圖

語音信號——短時傅里葉變換à頻率和能量(幅度)——幅度映射到一個灰度級表示à形成聲譜圖


共振峯formants

共振峯是指在聲音的頻譜中能量相對集中的一些區域,共振峯不但是音質的決定因素,而且反映了聲道(共振腔)的物理特徵。聲音在經過共振腔時,受到腔體的濾波作用,使得頻域中不同頻率的能量重新分配,一部分因爲共振腔的共振作用得到強化,另一部分則受到衰減。由於能量分佈不均勻,強的部分猶如山峯一般,故而稱之爲共振峯。在語音聲學中,共振峯決定着元音的音質。

共振峯是表徵語音信號特徵的基本參數之一。它在語音信號合成、語音識別和語音編碼等方面起着重要作用。共振峯可以等效爲聲道系統函數的復極點對,由於人的聲道平均長度爲17cm,而語音信號的能量主要集中在0-5kHz。因此語音通常包含4到5個穩定的共振峯,一般只需要研究前三個共振峯。

共振峯的一個示意圖

從圖中可以看到:1語音信號的能量在頻率上存在頻譜傾斜;2共振峯位置與譜包絡位置很一致(這也是譜包絡法提取共振峯的原理)


普通話10個元音共振峯均值數據表(Hz)

基音頻譜及基音週期

聲帶振動的頻率稱爲基音頻率,相應的週期就成爲基音週期。

語音信號分爲清音跟濁音,濁音又稱有聲語言,攜帶者語言中大部分的能量,濁音在時域上呈現出明顯的週期性;而清音類似於白噪聲,沒有明顯的週期性。發濁音時,氣流通過聲門使聲帶產生張弛震盪式振動,產生準週期的激勵脈衝串。這種聲帶振動的頻率稱爲基音頻率,相應的週期就成爲基音週期。基音週期信息在語音識別、說話人識別、語音分析與語音合成,以及低碼率語音編碼、發音系統疾病診斷、聽覺殘障者的語言指導等多個領域有着廣泛的應用。(因爲女性基頻比男性高,所以有些算法中使用基頻來區分性別,還挺準的)

頻譜的包絡

基音,泛音

一般的聲音都是由發音體發出的一系列頻率、振幅各不相同的振動複合而成的。這些振動中有一個頻率最低的振動,由它發出的音就是基音(fundamental tone),其餘爲泛音

基音幀的能量

基音共振峯的出現頻率

基音共振峯的軌跡

音頻採樣率

音頻採樣率是指錄音設備在一秒鐘內對聲音信號的採樣次數,採樣頻率越高聲音的還原就越真實越自然。在當今的主流採集卡上,採樣頻率一般共分爲22.05KHz、44.1KHz、48KHz三個等級,22.05KHz只能達到FM廣播的聲音品質,44.1KHz則是理論上的CD音質界限,48KHz則更加精確一些,關於大小的計算:


實際上大小是26460552字節,:

44100(每秒採樣率)*4(左右聲道,每個聲道兩字節)*150(音頻長爲150)

Nyquist奈奎斯特定理

任何模擬信號由各種不同頻率的成份所組成。最簡單的情形是正弦波,其中所有的信號能量在某一頻率集中。實際上,模擬信號通常有複雜的波形,有許多頻率的成分。模擬信號的最高頻率成份決定那個信號的帶寬。如果所有的其他因素不變,則頻率愈高,帶寬也愈大。

假設給定的模擬信號的最高的頻率成份(用赫茲表示)是 fmax。依照 Nyquist 定理,取樣率必須至少是 2 fmax,或最高的模擬頻率成份的兩倍如果那個取樣率少於 2 fmax,模擬輸入信號的一些最高的頻率成份將不能在數字輸出中正確表現。當一個這樣的數字信號被數模轉換器轉換回模擬形式的時候,錯誤的頻率成份看起來不是最初的模擬信號中的頻率成分。這種不合需要的情況是失真的一種形式叫做混淆現象。

如果採樣率爲44100 = 2*fmax,則可以得到fmax = 44100/2;

MFCC 梅爾頻率倒譜系數

人的發聲系統大致如下:


對應的語音信號產生的時域模型如下:

氣流通過聲道摩擦形成清音,類似於噪聲,聲帶開關閉合震動形成濁音,我們聽到的聲音是清音和濁音的混合,而濁音因爲不同人的聲帶,發音方式,聲道共振相異而不一,其週期,通過聲道形成的共振鋒,軌跡等是語音識別,聲紋識別的重要特徵,頻率倒譜系數是將濁音和清音頻率分開,並進一步分析共振峯,軌跡,週期的一種方法。

頻率倒譜系數

       清音+濁音在時域表現爲“+”,在頻率表現爲“*”,在時域我們能觀測到的是清音+濁音的結果,無法將他們分離,因此需要轉換到頻域,即所謂的聲譜圖。下面是一段音頻採樣的頻譜。


這裏會與圖像不同,圖像系統的噪點很大程度是與有效信息並存,並可觀測到,影響我們對圖像內容的判斷,這種噪聲很多在高頻內,因此在頻域用低通濾波就可以去除噪點(同時邊緣等有用的高頻信息也會受影響)


語音由於清音(噪聲)與濁音混合在一起,需要更進一步的處理,如果原始信號爲 ,濁音爲 ,噪聲爲 有:


頻率取log後,叫做倒譜,英文Cepstrum(頻譜spectrum的前面四個字母順序倒過來就是倒譜了),進一步,我們將頻率再看成時域,經過傅里葉變換得到倒譜的頻域(僞頻域pseudo-frequency),將僞頻域的低頻和高頻分離再做IFFT逆傅里葉變換,即可得到分離的 。

梅爾頻率轉換

對於人類聽覺感知的實驗表明,人類聽覺的感知只聚焦在某些特定的區域,而不是整個頻譜包絡。

而Mel頻率分析就是基於人類聽覺感知實驗的。實驗觀測發現人耳就像一個濾波器組一樣,它只關注某些特定的頻率分量(人的聽覺對頻率是有選擇性的)。也就說,它只讓某些頻率的信號通過,而壓根就直接無視它不想感知的某些頻率信號。但是這些濾波器在頻率座標軸上卻不是統一分佈的,在低頻區域有很多的濾波器,他們分佈比較密集,但在高頻區域,濾波器的數目就變得比較少,分佈很稀疏。

       人的聽覺系統是一個特殊的非線性系統,它響應不同頻率信號的靈敏度是不同的。在語音特徵的提取上,人類聽覺系統做得非常好,它不僅能提取出語義信息, 而且能提取出說話人的個人特徵,這些都是現有的語音識別系統所望塵莫及的。如果在語音識別系統中能模擬人類聽覺感知處理特點,就有可能提高語音的識別率。

梅爾頻率倒譜系數(Mel Frequency CepstrumCoefficient, MFCC)考慮到了人類的聽覺特徵,先將線性頻譜映射到基於聽覺感知的Mel非線性頻譜中,然後轉換到倒譜上。

將普通頻率轉化到Mel頻率的公式是:2595*log10(1+f/700)

由下圖可以看到,它可以將不統一的頻率轉化爲統一的頻率,也就是統一的濾波器組。

在Mel頻域內,人對音調的感知度爲線性關係。舉例來說,如果兩段語音的Mel頻率相差兩倍,則人耳聽起來兩者的音調也相差兩倍。

 

梅爾頻率濾波原理(三角帶通濾波器)計算過程:

三角帶通濾波器在「梅爾頻率」(Mel Frequency)上是平均分佈的,先將頻率轉到梅爾頻率,然後按濾波器組個數平均分佈得到每個濾波器的兩端的梅爾頻率,再轉換到普通頻率域計算每個濾波器的端點頻率。

三角帶通濾波器有兩個主要目的: 
對頻譜進行平滑化,並消除諧波的作用,突顯原先語音的共振峯。(因此一段語音的音調或音高,是不會呈現在 MFCC 參數內,換句話說,以 MFCC 為特徵的語音辨識系統,並不會受到輸入語音的音調不同而有所影響。

http://neural.cs.nthu.edu.tw/jang/books/audiosignalprocessing/speechFeatureMfcc_chinese.asp?title=12-2%20MFCC

梅爾頻率倒譜系數計算流程

1)先對語音進行預加重、分幀和加窗;

2)對每一個短時分析窗,通過FFT得到對應的頻譜;

3)將上面的頻譜通過Mel濾波器組得到Mel頻譜;

4)在Mel頻譜上面進行倒譜分析(取對數,做逆變換,實際逆變換一般是通過DCT離散餘弦變換來實現,取DCT後的第2個到第13個係數作爲MFCC係數),獲得Mel頻率倒譜系數MFCC,這個MFCC就是這幀語音的特徵;

這時候,語音就可以通過一系列的倒譜向量來描述了,每個向量就是每幀的MFCC特徵向量。

DTW動態時間規整

語音信號具有相當大的隨機性,即使同一個人在不同時刻發同一個音,也不可能具有完全的時間長度,大部分情況下,兩個序列整體上具有非常相似的形狀,但是這些形狀在x軸上並不是對齊的。

所以我們在比較他們的相似度之前,需要將其中一個(或者兩個)序列在時間軸下warping扭曲,以達到更好的對齊。而DTW就是實現這種warping扭曲的一種有效方法。DTW通過把時間序列進行延伸和縮短,來計算兩個時間序列性之間的相似性。動態時間規整DTW是一個典型的優化問題,其使用滿足一定條件的時間規整函數W(n)描述測試模板和參考模板的時間對應關係,求解兩模板匹配時累計距離最小所對應的規整函數。DTW的約束條件爲:

1.邊界條件:任何一種語音的發音快慢都有可能變化,但是其各部分的先後次序不可能改變,因此所選的路徑必定是從左下角出發,在右上角結束;

2.連續性:一個特徵點不可能跨過某個點去匹配,只能和自己相鄰的點對齊;

3.單調性:點必須是隨着時間單調進行的。

DTW過程大致如下:

設有兩個時間序列:

Q =q1,q2,…,qi,…,qn;

C =c1,c2,…,cj,…,cm;

爲了對齊這兩個序列,DTW需要構造一個n x m的矩陣網格,其中n,m爲兩個序列的長度,矩陣元素(i, j)表示序列Q的每一個點和序列C的每一個點之間的相似度,距離越小則相似度越高,一般採用歐式距離表示。每一個矩陣元素(i, j)表示點qi和cj的對齊。DP算法可以歸結爲在約束條件下尋找一條通過此網格中若干格點的路徑,路徑通過的格點即爲兩個序列進行計算的對齊的點。

 

i-vector特徵(Identity Vector)

理解I-vector需要先理解:

1、  Total-Variability Modeling全變異模型

2、  JFA算法

3、  信號的子空間表示

 

信道補償-LDA、PLDA、WCCN、NAP

線性鑑別分析LDA

信道補償算法有很多,先說一下LDA。關於LDA的資料很多,這裏簡單說一下爲什麼LDA能夠用在說話人識別而且是如何進行信道補償的。

首先,LDA至多可生成C-1維子空間(C爲分類類別數),LDA降維後的度區間在 [1,C-1] ,與原始特徵數n無關,因此二分類問題至多可以降維到一維,導致有些線性不可分數據分佈情況無法分類。在說話人識別中,大部分情況是二分類問題,所以這裏LDA的作用是將原始高維特徵數據降維到一維,這樣每一個樣本特徵向量映射爲一維上的一個點,這個點的數值表示該點到原點的距離。

當一個說話人有很多語音時,表現爲這些語音在說話人空間中聚集爲一簇。如果這些語音收到信道的影響,那麼就表現爲這個說話人的語音的方差很大。然後,LDA嘗試着找到一個新的方向,將原來的所有數據投影到這個方向,使得在這個方向中同一說話人的數據具有最小的類內方差,同時不同說話人之間的距離儘量大。這樣,就達到減小信道差異的影響了。

LDA其實也是一種降維方法。它儘量去移除不需要的方向,最小化類內的方差信息量。也就是,LDA尋找一個新的方向去更好地對不同的類做出分類。可見,LDA非常適合作爲說話人識別系統的信道補償算法。

當使用LDA對測試數據和模型的I-vector進行重新投影后,然後計算它們之間的cosine距離,就可以作爲最後的得分。

最後簡單說一下,LDA如何找到這個映射方向。前面不是說LDA的目的是最大化類間距離,最小化類內距離麼。我們很容易認爲只要定義一個目標函數然後去用一般的最優化方法去求近似解就好了。其實,不用這麼麻煩的,LDA是可以直接求取解析解的。具體方法就是對目標函數求導並且令導數爲零。但是在求導之前,記得對分母進行歸一化,因爲如果不歸一化的話,映射方向擴大任意倍等成立,所以不好確定映射方向的具體值。

OK,求解析解的過程中,經過一系列變化,我們最終只要求出原始樣本的均值和方差就可以最佳映射方向 w,這就是Fisher 於 1936年提出的線性判別分析。

WCCN 類內方差歸一化

預處理---分幀,加抖動,去均值,預加重,加窗

分幀

因爲短時平穩特性,所以進行分幀

加抖動

隨機加高斯噪聲,這樣處理後,訓練出的模型抗干擾性要強點

去均值

一定程度的解決音量歸一化問題

預加重

語音信號的預加重,目的是爲了對語音的高頻部分進行加重,去除口脣輻射的影響,增加語音的高頻分辨率。一般通過傳遞函數爲 一階FIR高通濾波器來實現預加重,其中a爲預加重係數,0.9<a<1.0。設n時刻的語音採樣值爲x(n),經過預加重處理後的結果爲y(n)=x(n)-ax(n-1),這裏取a=0.98。

加窗

將語音信號分爲一些較短片段來進行處理,這就是分幀,通常使用加窗來實現。分幀是避免在傅里葉變換的過程中損失時域信息,因爲如果對整個音頻信息進行傅里葉變換的話,時域信息是沒有保存的,小波也是使用類似的方法保存時域信息。另外就是語音固有的短時平穩特性,即語音信號一般在10ms到30ms之間,我們可以把它看成是平穩的明智的解決辦法就是每次取一段數據,進行分析,然後再取下一段數據,再進行分析。

窗口函數有:

1.矩形窗

2.三角窗

3.Hanning窗

4.Hamming窗

5.Blackman窗

6.Kaiser窗

等,語音常用的是Hamming窗,函數如下:


在傅里葉變換的過程中,因爲是假設處理的數據在時間維度上是週期信號,這一假設實際上是引入了誤差,和頻率泄露,窗口函數一定程度的減少了這種情況,窗口函數的選擇主要取決於窗口函數頻譜的主瓣寬度和旁瓣衰減強度。

基音包絡計算

 

聲紋識別的兩種模式

說話人確認和說話人辨認

 

疑問

1、左右聲道對識別的影響

2、20ms的分幀,這20ms對應說話內容的什麼呢?

我們說話是連續的,20ms是構成說話內容的音素。例如說“我們”,時間上在時間維度上是【我-我-我-們-們…】

3、短時平穩特性更進一步的理解

4、GMM的訓練流程

5、8k語音文件訓練可能會影響結果

發佈了55 篇原創文章 · 獲贊 18 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章