語音信號(聲音是什么)
聲音是由物體振動產生的聲波,是通過介質(空氣或固體、液體)傳播並能被人或動物聽覺器官所感知的波動現象,最初發出振動的物體叫聲源。聲音(語音消息)的基本模擬形式是一種稱為語音信號的聲學波。語音信號可以通過麥克風轉化成電信號,轉換成語音波形圖,如下圖為消息"should we chase"的波形圖。橫坐標表示時間,縱坐標表示振幅。文本"should we chase"按照發音可以表示成音素的形式[SH UH D - W IY - CH EY S],聲波圖中的每一段表示一個音素,在ARBAbet音素集中包含近64 = 2^6個符號。
聲音作為波的一種,頻率(聲源在一秒內振動的次數)和振幅是描述波的重要屬性,頻率的大小與我們通常所說的音高對應,而振幅影響聲音的大小。聲音可以被分解為不同頻率不同強度正弦波的疊加,正弦波是頻率成分最為單一的一種信號,任何復雜信號都可以看成由許許多多頻率不同、大小不等的正弦波復合而成。這種變換(或分解)的過程,稱為傅立葉變換,通過這種分解我們可以把時域圖轉為頻域圖。
正弦信號表達式為\(y = A \sin(\omega x + \varphi)\)。其中A表示振幅。
\(\omega/2\pi\)表示頻率。
對於(空氣中的)聲振動而言,振幅是聲壓與靜止壓強之差的最大值。其中聲壓是聲波在空氣中傳播時形成壓縮和稀疏交替變化的壓力增值。麥克風錄制聲音的原理就是將空氣中的壓力變動波轉化成電信號的變動。
而我們平常說的聲音強度(響亮程度)就是由振幅決定的,聲音強度的單位是分貝(dB),計算公式如下,用實測聲壓和參考聲壓之比的常用對數(常用對數lg以10為底,自然對數ln以e為底)的20倍來表示。下式中分母是參考值的聲壓,通常為20微帕,人類能聽到的最小聲壓。
分貝表示功率量之比時,等於功率強度之比的常用對數的10倍。
分貝表示場量之比時,等於場強幅值之比的常用對數的20倍。
### 語音鏈(聲音是怎么發出的) 從語音信號的產生到感知的過程稱為語音鏈,如下圖所示。 下面是語音信號產生的四個步驟。
1. 文本:消息以某種形式出現在說話者的大腦中,消息攜帶的信息可認為有着不同的表示形式,例如最初可能以英語文本的形式表示。假設書面語有32個符號,也就是2^5,用5個bit表示一個符號。正常的平均說話速率為15個符號每秒。上圖例子中有15個字母“should we chase”,持續了0.6秒,信息流的速率為15x5/0.6 = 125 bps。
2. 音素:為了"說出"這條消息,說話者隱式地將文本轉換成對應口語形式的聲音序列的符號表示,即文本符號轉成音素符號,音素符號用來描述口語形式消息的基本聲音及聲音發生的方式(即語速和語調)。ARBAbet音素集中包含近64 = 2^6個符號,用6個bit表示一個音素,上圖例子中有8個音素,持續了0.6秒,信息流的速率為8x6/0.6 = 80 bps,考慮描述信號韻律特征的額外信息(比如段長,音高,響度),文本信息編碼成語音信號后,總信息速率需要再加上100bps。
3. 發音:神經肌肉系統以一種與產生口語形式消息及其語調相一致的方式,移動舌頭,唇,牙齒,頜,軟齶,使這些聲道發聲器官按規定的方式移動,進而發出期望的聲音。
4. 刺激共振:聲道系統產生物理生源和恰當的時變聲道形狀,產生上圖所示的聲學波形。
前兩個階段的信息表示是離散的,用一些簡單假設就可以估計信息流的速率。
但是后兩個階段信息是連續的,以關節運動的形式發出,想要度量這些連續信息,需要進行恰當的采樣和量化獲得等效的數字信號,才能估計出數據的速率。事實上,因為連續的模擬信號容易收到噪聲的影響,抗噪能力弱,通常會轉為離散的數字信號。
在第三階段,進行采樣和量化后得到的數據率約為2000bps。
在最后一個階段,數字語音波形的數據率可以從64kbps變化到700kbps。該數據是通過測量“表示語音信號時為達到想要的感知保真度”所需要的采樣率和量化計算得到的。
比如,“電話質量”的語音處理需要保證寬帶為0~4kHz,這意味着采樣率為8000個樣本每秒(根據香農采樣定理,為了不失真地恢復模擬信號,采樣頻率應該不小於模擬信號頻譜中最高頻率的2倍),每個樣本可以量化成8比特,從而得到數據率64000bps。這種表示方式很容易聽懂,但對於大多數傾聽者來說,語音聽起來與說話者發出的原始語音會有不同。
另一方面,語音波形可以表示成“CD質量”,采用44100個樣本每秒的采樣率,每個樣本16比特,總數據率為705600bps,此時復原的聲學波聽起來和原始信號幾乎沒有區別。
現在在音樂app上下載歌曲的時一般有四種音樂品質選擇,標准(128kbps),較高(192kbps),極高(320kbps),無損品質。
將消息從文本表示轉換成采樣的語音波形時,數據率會增大10000倍。這些額外信息的一部分能夠代表說話者的一些特征比如情緒狀態,說話習慣等,但主要是由簡單采樣和對模擬信號進行精細量化的低效性導致的。因此,處於語音信號固有的低信息速率考慮,很多數字語音處理的重點是用更低的數據率對語音進行數字表示(通常希望數據率越低越好,同時保證重現語音信號的感知質量滿足需要的水平)。
### 語音信號的ADC,即Analog-Digital Converter,“模-數”變換(聲音是怎么保存的) **0. 預濾波(反混疊濾波)**:語音信號在采樣之前要進行預濾波處理。目的有兩個,一是抑制輸入信號各頻率分量中頻率超過fs/2的所有分量(fs為采樣頻率),以防止混疊干擾;二是抑制50Hz的電源工頻干擾。
1. 采樣:原始的語音信號是連續的模擬信號,需要對語音進行采樣,轉化為時間軸上離散的數據。
采樣后,模擬信號被等間隔地取樣,這時信號在時間上就不再連續了,但在幅度上還是連續的。經過采樣處理之后,模擬信號變成了離散時間信號。
采樣頻率是指一秒鍾內對聲音信號的采樣次數,采樣頻率越高聲音的還原就越真實越自然。
在當今的主流采集卡上,采樣頻率一般共分為22.05KHz、44.1KHz、48KHz三個等級,22.05KHz只能達到FM廣播的聲音品質,44.1KHz則是理論上的CD音質界限(人耳一般可以感覺到20-20K Hz的聲音,根據香農采樣定理,采樣頻率應該不小於最高頻率的兩倍,所以40KHz是能夠將人耳聽見的聲音進行很好的還原的一個數值,於是CD公司把采樣率定為44.1KHz),48KHz則更加精確一些。
對於高於48KHz的采樣頻率人耳已無法辨別出來了,所以在電腦上沒有多少使用價值。
2. 量化:進行分級量化,將信號采樣的幅度划分成幾個區段,把落在某區段的采樣到的樣品值歸成一類,並給出相應的量化值。根據量化間隔是否均勻划分,又分為均勻量化和非均勻量化。
均勻量化的特點為“大信號的信噪比大,小信號的信噪比小”。缺點為“為了保證信噪比要求,編碼位數必須足夠大,但是這樣導致了信道利用率低,如果減少編碼位數又不能滿足信噪比的要求”(根據信噪比公式,編碼位數越大,信噪比越大,通信質量越好)。
通常對語音信號采用非均勻量化,基本方法是對大信號使用大的量化間隔,對小信號使用小的量化間隔。由於小信號時量化間隔變小,其相應的量化噪聲功率也減小(根據量化噪聲功率公式),從而使小信號時的量化信噪比增大,改善了小信號時的信噪比。
量化后,信號不僅在時間上不再連續,在幅度上也不連續了。經過量化處理之后,離散時間信號變成了數字信號。
3. 編碼:在量化之后信號已經變成了數字信號,需要將數字信號編碼成二進制。“CD質量”的語音采用44100個樣本每秒的采樣率,每個樣本16比特,這個16比特就是編碼的位數。
采樣,量化,編碼的過程稱為A/D轉換,如下圖所示。反過程為D/A轉換,因為A/D之前進行了預濾波,D/A轉換后面還需要加一個平滑濾波器。A/D轉換,D/A轉換,濾波這些功能都可以用一塊芯片來完成,在市面上能買到各種這樣的芯片。
### 語音信號的預處理(聲音要做什么預處理) 語音信號的預處理一般包括預加重,分幀,加窗,端點檢測。
1. 預加重:求語音信號頻譜(頻譜是指時域信號在頻域下的表示方式,關於頻域和時域的理解如下圖所示,圖源見參考資料[4]),頻率越高相應的成分越小,高頻部分的頻譜比低頻部分的難求,為此要在預處理中進行預加重(Pre-emphasis)處理。預加重的目的是提高高頻部分,使信號的頻譜變得平坦,以便於頻譜分析或者聲道參數分析。預加重可在語音信號數字化時在反混疊濾波器之前進行,但一般是在語音信號數字化之后。
2. 短時分析:語音信號從整體來看是隨時間變化的,是一個非平穩過程,不能用處理平穩信號的數字信號處理技術對其進行分析處理。但是,由於不同的語音是由人的口腔肌肉運動構成聲道某種形狀而產生的響應,這種運動對於語音頻率來說是非常緩慢的,所以從另一方面看,雖然語音信號具有時變特性,但是在一個短時間范圍內(一般認為在10-30ms)其特性基本保持相對穩定,即語音具有短時平穩性。所以任何語音信號的分析和處理必須建立在“短時”的基礎上,即進行“短時分析”。
3. 分幀:為了進行短時分析,將語音信號分為一段一段,其中每一段稱為一幀,一般取10-30ms,為了使幀與幀之間平滑過渡,保持連續性,使用交疊分段的方法,可以想成一個指針p從頭開始,截取一段頭為p,長度為幀長的片段,然后指針p移動,移動的步長就稱為幀移,每移動一次都截取一段,這樣就得到很多幀。
4. 加窗:加窗就是用一定的窗函數\(w(n)\)來乘\(s(n)\),從而形成加窗語音信號\(s_w(n) = s(n) * w(n)\),常用的窗函數是矩形窗和漢明窗,用矩形窗其實就是不加窗,窗函數中有個N,指的是窗口長度(樣本點個數),對應一幀,通常在8kHz取樣頻率下,N折中選擇為80-160(即10-20ms持續時間)。
5. 端點檢測:從一段語音信號中准確地找出語音信號的起始點和結束點,它的目的是為了使有效的語音信號和無用的噪聲信號得以分離。對於一些公共的語音數據集可以不做這步操作,因為這些語音的內容就是有效的語音信號(可以認為研究人員已經對數據做過端點檢測)。
### 語音信號的特征(聲音的特征) 特征的選取是語音處理的關鍵問題,特征的好壞直接影響到語音處理(比如語音識別)的精度。然而在語音領域中,沒有一個所謂的標准特征集,不同的語音系統選取的特征組合不盡相同。
語音的特征一般是由信號處理專家定義的,比較流行的特征是MFCC(梅爾頻率倒譜系數)。
最近看的一些論文大都用CNN從聲譜圖中抽取特征。聲譜圖就是對原始的語音信號(raw waveform)分幀加窗,對每一幀做FFT后獲得的圖。聲譜圖的橫坐標是時間,縱坐標是頻率,坐標點值為振幅(或功率),振幅值的大小是通過顏色來表示。
在論文筆記:語音情感識別(四)語音特征之聲譜圖,log梅爾譜,MFCC,deltas中我有介紹聲譜圖(又分為線性的和梅爾的)和MFCC的計算過程。
其它比較流行的特征如共振峰頻率,基因周期,過零率和能量等等。
2013 InterSpeech其中一個挑戰賽中用的特征集ComParE features set,有6373維的特征。
有另一個比較精簡的特征集GeMAPS(Geneva Minimalistic Acoustic Parameter Set)包含62個特征。加上擴展的有88個特征,稱為eGeMAPS(extended GeMAPS)。
最近看的論文中常常會出現有兩個詞,LLDs(low level descriptors)和HSFs(high level statistics functions),其中LLDs指的是人工設計的一些低水平特征,LLDs可以作為幀特征,而HSFs指的是在LLDs的基礎上做一些統計而得到的特征,比如均值,最大值等等,HSFs可以作為utterance(一段語音,比幀高一級的語音單位,通常指一句話,一個語音樣本)特征。
在論文筆記:語音情感識別(五)語音特征集之eGeMAPS,ComParE,09IS,BoAW中我有介紹LLDs,HSFs,eGeMAPS和ComparE特征集。
語音情感數據庫介紹
計算機對從傳感器采集來的信號進行分析和處理,得出對方正處在的情感狀態,這種行為叫作情感識別。
目前對於情感識別有兩種方式,一種是檢測生理信號如呼吸,心律和體溫等,另一種是檢測情感行為如面部表情識別,語音情感識別和姿態識別。
語音情感數據集是研究語音情感識別的重要基礎,按照情感描述類型可將數據集分為離散情感數據庫和維度情感數據庫,前者以離散的語言標簽(如高興,悲傷等)作為情感標注,后者以連續的實數坐標值表示情感。
下面介紹一些離散語音情感數據集。
1. Belfast英語情感數據庫:40位錄音者(20男20女,18-69歲),對五個段落(每個段落7-8個句子)進行演講錄制,演講者按照五種情感傾向進行演講:生氣(anger),悲傷(sadness),高興(happiniess),害怕(fear),中性(neutral)。
2. 柏林Emo-DB情感數據庫:德國柏林工業大學錄制,10位演員(5男5女),對10個德語語音進行表演,包含了七種情感:生氣(anger),悲傷(sadness),高興(happiniess),害怕(fear),中性(neutral),厭惡(disgust),無聊(boredom)。共包含800句語料(10 位演員 x10 句話 x7 種情感+100 條某些語句的二次版本),后經過篩選得到500多條,采樣率為 48kHz (后壓縮至 16kHz),16bit 量化。語料文本的選取遵從語義中性、無情感傾向的原則,且為日常口語化風格,無過多的書面語修飾。語音的錄制在專業錄音室中完成,要求演員在表演某個特定情感片段前通過回憶自身真實經歷或體驗進行情緒的醞釀,來增強情緒的真實感。
3. FAU AIBO兒童德語情感數據庫:2009年在Interspeech會議上舉辦Emotion Challenge評比中指定的語音情感數據庫。通過兒童與索尼公司的AIBO機器狗進行自然交互,從而進行情感數據的采集。說話人由51名兒童組成,年齡段為10-13歲,其中30個為女性。語料庫包含9.2小時的語音,48401個單詞。采樣頻率為48kHz(后壓縮至 16kHz),16比特量化。該數據庫中情感數據的自然度高,數據量足夠大,是較為流行的一個語音情感數據庫。
4. CASIA漢語情感數據庫:中科院自動化所錄制,兩男兩女錄制500句不同的文本,通過演講者不同的感情演講得出,最后的語音又人工篩選,得到了大約9600條語句。分為六類情感。
5. ACCorpus系列漢語情感數據庫:清華大學和中科院心理研究所合作錄制,相對於CASIA錄制工作者更多,代表性更強。包含如下 5 個相關子庫:ACCorpus_MM 多模態、多通道的情感數據庫;ACCorpus_SR 情感語音識別數據庫;ACCorpus_SA 漢語普通話情感分析數據庫;ACCorpus_FV 人臉表情視頻數據庫;ACCorpus_FI 人臉表情圖像數據庫。以 ACCorpus_SR 為例,該子庫是由 50 位錄音人(25 男25女)對 5類情感(中性、高興、生氣、恐懼和悲傷)各自表演得到,16kHz 采樣,16bit 量化。
6. IEMOCAP: 南加利福尼亞大學錄制的,10個演員,1男1女演繹一個session,共5個session。錄制了將近12小時的數據,有視頻,語音,人臉的變動捕捉和文本。包括即興自發的和照着稿子念的。每個utterance至少三個人評估。包括9種情感(anger,happiness,excitement,sadness,frustration,fear,surprise,other和neural)的離散標簽,以及三個維度的維度標簽(valence, activation and dominance)。
7. 其它:除此之外,還有一些日語,丹麥語等情感數據庫。
語音情感識別算法
1. 常用的機器學習分類器:模式識別領域的諸多算法(傳統)都曾用於語音情感識別的研究,比如GMM(高斯混合模型),SVM,KNN,HMM(隱馬爾可夫模型)。用LLDs(low level descriptors)和HSFs(high level statistics functions)這些手工設計特征喂進去訓練。
2. 聲譜圖+CRNN:最近很多人用聲譜圖加上CNN,LSTM這些深度學習模型來做。還有手工特征加聲譜圖一起作為特征丟進深度學習模型。也有人用DBN但是相對少很多。具體的一些模型我在另一篇筆記論文筆記:語音情感識別(二)聲譜圖+CRNN中有介紹。
3. 手工特征+CRNN:也有人用手工特征加CRNN做。具體的一些模型我在另一篇筆記論文筆記:語音情感識別(三)手工特征+CRNN中有介紹。
參考資料
[1] 數字語音處理理論與應用(Theory and Applications of Digital Speech Processing的中譯書籍)
[2] Theory and Applications of Digital Speech Processing(電子書)
[3] 語音信號處理(趙力著,第三版)
[4] 知乎:傅里葉分析之掐死教程