語音處理檢測(cè)技術(shù)端點(diǎn)檢測(cè)、降噪和壓縮詳解
作為一種人機(jī)交互的手段,語音的端點(diǎn)檢測(cè)在解放人類雙手方面意義重大。同時(shí),工作環(huán)境存在著各種各樣的背景噪聲,這些噪聲會(huì)嚴(yán)重降低語音的質(zhì)量從而影響語音應(yīng)用的效果,比如會(huì)降低識(shí)別率。未經(jīng)壓縮的語音數(shù)據(jù),網(wǎng)絡(luò)交互應(yīng)用中的網(wǎng)絡(luò)流量偏大,從而降低語音應(yīng)用的成功率。因此,音頻的端點(diǎn)檢測(cè)、降噪和音頻壓縮始終是終端語音處理關(guān)注的重點(diǎn),目前仍是活躍的研究主題。
本文引用地址:http://2s4d.com/article/201710/367885.htm為了能和您一起了解端點(diǎn)檢測(cè)和降噪的基本原理,帶您一起一窺音頻壓縮的奧秘,科大訊飛資深研發(fā)工程師李洪亮將為我們?cè)斀?a class="contentlabel" href="http://2s4d.com/news/listbylabel/label/語音處理">語音處理檢測(cè)技術(shù)中的熱點(diǎn)——端點(diǎn)檢測(cè)、降噪和壓縮 。
▎端點(diǎn)檢測(cè)
首先來看端點(diǎn)檢測(cè)(Voice Activity Detection, VAD)。音頻端點(diǎn)檢測(cè)就是從連續(xù)的語音流中檢測(cè)出有效的語音段。它包括兩個(gè)方面,檢測(cè)出有效語音的起始點(diǎn)即前端點(diǎn),檢測(cè)出有效語音的結(jié)束點(diǎn)即后端點(diǎn)。
在語音應(yīng)用中進(jìn)行語音的端點(diǎn)檢測(cè)是很必要的,首先很簡(jiǎn)單的一點(diǎn),就是在存儲(chǔ)或傳輸語音的場(chǎng)景下,從連續(xù)的語音流中分離出有效語音,可以降低存儲(chǔ)或傳輸?shù)臄?shù)據(jù)量。其次是在有些應(yīng)用場(chǎng)景中,使用端點(diǎn)檢測(cè)可以簡(jiǎn)化人機(jī)交互,比如在錄音的場(chǎng)景中,語音后端點(diǎn)檢測(cè)可以省略結(jié)束錄音的操作。
為了能更清楚說明端點(diǎn)檢測(cè)的原理,先來分析一段音頻。上圖是一段只有兩個(gè)字的簡(jiǎn)單音頻,從圖上可以很直觀的看出,首尾的靜音部分聲波的振幅很小,而有效語音部分的振幅比較大,一個(gè)信號(hào)的振幅從直觀上表示了信號(hào)能量的大?。红o音部分能量值較小,有效語音部分的能量值較大。語音信號(hào)是一個(gè)以時(shí)間為自變量的一維連續(xù)函數(shù),計(jì)算機(jī)處理的語音數(shù)據(jù)是語音信號(hào)按時(shí)間排序的采樣值序列,這些采樣值的大小同樣表示了語音信號(hào)在采樣點(diǎn)處的能量。
采樣值中有正值和負(fù)值,計(jì)算能量值時(shí)不需要考慮正負(fù)號(hào),從這個(gè)意義上看,使用采樣值的絕對(duì)值來表示能量值是自然而然的想法,由于絕對(duì)值符號(hào)在數(shù)學(xué)處理上不方便,所以采樣點(diǎn)的能量值通常使用采樣值的平方,一段包含N個(gè)采樣點(diǎn)的語音的能量值可以定義為其中各采樣值的平方和。
這樣,一段語音的能量值既與其中的采樣值大小有關(guān),又與其中包含的采樣點(diǎn)數(shù)量有關(guān)。為了考察語音能量值的變化,需要先將語音信號(hào)按照固定時(shí)長(zhǎng)比如20毫秒進(jìn)行分割,每個(gè)分割單元稱為幀,每幀中包含數(shù)量相同的采樣點(diǎn),然后計(jì)算每幀語音的能量值。
如果音頻前面部分連續(xù)M0幀的能量值低于一個(gè)事先指定的能量值閾值E0,接下來的連續(xù)M0幀能量值大于E0,則在語音能量值增大的地方就是語音的前端點(diǎn)。同樣的,如果連續(xù)的若干幀語音能量值較大,隨后的幀能量值變小,并且持續(xù)一定的時(shí)長(zhǎng),可以認(rèn)為在能量值減小的地方即是語音的后端點(diǎn)。
現(xiàn)在的問題是,能量值閾值E0怎么???M0又是多少?理想的靜音能量值為0,故上面算法中的E0理想狀態(tài)下取0。不幸的是,采集音頻的場(chǎng)景中往往有一定強(qiáng)度的背景音,這種單純的背景音當(dāng)然算靜音,但其能量值顯然不為0,因此,實(shí)際采集到的音頻其背景音通常有一定的基礎(chǔ)能量值。
我們總是假設(shè)采集到的音頻在起始處有一小段靜音,長(zhǎng)度一般為幾百毫秒,這一小段靜音是我們估計(jì)閾值E0的基礎(chǔ)。對(duì),總是假設(shè)音頻起始處的一小段語音是靜音,這一點(diǎn)假設(shè)非常重要!?。?!在隨后的降噪介紹中也要用到這一假設(shè)。在估計(jì)E0時(shí),選取一定數(shù)量的幀比如前100幀語音數(shù)據(jù)(這些是“靜音”),計(jì)算其平均能量值,然后加上一個(gè)經(jīng)驗(yàn)值或乘以一個(gè)大于1的系數(shù),由此得到E0。這個(gè)E0就是我們判斷一幀語音是否是靜音的基準(zhǔn),大于這個(gè)值就是有效語音,小于這個(gè)值就是靜音。
至于M0,比較容易理解,其大小決定了端點(diǎn)檢測(cè)的靈敏度,M0越小,端點(diǎn)檢測(cè)的靈敏度越高,反之越低。語音應(yīng)用的場(chǎng)景不同,端點(diǎn)檢測(cè)的靈敏度也應(yīng)該被設(shè)置為不同的值。例如,在聲控遙控器的應(yīng)用中,由于語音指令一般都是簡(jiǎn)單的控制指令,中間出現(xiàn)逗號(hào)或句號(hào)等較長(zhǎng)停頓的可能性很小,所以提高端點(diǎn)檢測(cè)的靈敏度是合理的,M0設(shè)置為較小值,對(duì)應(yīng)的音頻時(shí)長(zhǎng)一般為200-400毫秒左右。在大段的語音聽寫應(yīng)用中,由于中間會(huì)出現(xiàn)逗號(hào)或句號(hào)等較長(zhǎng)時(shí)間的停頓,宜將端點(diǎn)檢測(cè)的靈敏度降低,此時(shí)M0值設(shè)置為較大值,對(duì)應(yīng)的音頻時(shí)長(zhǎng)一般為1500-3000毫秒。所以M0的值,也就是端點(diǎn)檢測(cè)的靈敏度,在實(shí)際中應(yīng)該做成可調(diào)整的,它的取值要根據(jù)語音應(yīng)用的場(chǎng)景來選擇。
以上只是語音端點(diǎn)檢測(cè)的很簡(jiǎn)單的一般原理,實(shí)際應(yīng)用中的算法遠(yuǎn)比上面講的要復(fù)雜。作為一個(gè)應(yīng)用較廣的語音處理技術(shù),音頻端點(diǎn)檢測(cè)仍然是一個(gè)較為活躍的研究方向??拼笥嶏w已經(jīng)使用循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks, RNN)技術(shù)來進(jìn)行語音的端點(diǎn)檢測(cè),實(shí)際的效果可以關(guān)注訊飛的產(chǎn)品。
▎降噪
降噪又稱噪聲抑制(Noise Reduction),前文提到,實(shí)際采集到的音頻通常會(huì)有一定強(qiáng)度的背景音,這些背景音一般是背景噪音,當(dāng)背景噪音強(qiáng)度較大時(shí),會(huì)對(duì)語音應(yīng)用的效果產(chǎn)生明顯的影響,比如語音識(shí)別率降低,端點(diǎn)檢測(cè)靈敏度下降等,因此,在語音的前端處理中,進(jìn)行噪聲抑制是很有必要的。
噪聲有很多種,既有頻譜穩(wěn)定的白噪聲,又有不穩(wěn)定的脈沖噪聲和起伏噪聲,在語音應(yīng)用中,穩(wěn)定的背景噪音最為常見,技術(shù)也最成熟,效果也最好。本課程只討論穩(wěn)定的白噪聲,即總是假設(shè)背景噪聲的頻譜是穩(wěn)定或者是準(zhǔn)穩(wěn)定的。
前面講的語音端點(diǎn)檢測(cè)是在時(shí)域上進(jìn)行的,降噪的過程則是在頻域上進(jìn)行的,為此,我們先來簡(jiǎn)單介紹或者說復(fù)習(xí)一下用于時(shí)域-頻域相互轉(zhuǎn)換的重要工具——傅里葉變換。
為了更容易理解,先看高等數(shù)學(xué)中學(xué)過的傅里葉級(jí)數(shù),高等數(shù)學(xué)理論指出,一個(gè)滿足Dirichlet條件的周期為2T的函數(shù)f(t),可以展開成傅里葉級(jí)數(shù):
對(duì)于一般的連續(xù)時(shí)域信號(hào)f(t),設(shè)其定義域?yàn)椋?,T],對(duì)其進(jìn)行奇延拓后,其傅里葉級(jí)數(shù)如下式:
bn的計(jì)算同上,由上式可知,任何一個(gè)連續(xù)的時(shí)域信號(hào)f(t),都可以由一組三角函數(shù)線性疊加而成?;蛘哒f, f(t)都可以由一個(gè)三角函數(shù)線性組合組成的序列來無限的逼近。信號(hào)的傅里葉級(jí)數(shù)展示的是構(gòu)成信號(hào)的頻率以及各個(gè)頻率處的振幅,因此,式子的右端又可以看做是信號(hào)f(t)的頻譜,說的更直白一點(diǎn),信號(hào)的頻譜就是指這個(gè)信號(hào)有哪些頻率成分,各個(gè)頻率的振幅如何。上式從左到右的過程是一個(gè)求已知信號(hào)的頻譜的過程,從右到左的過程是一個(gè)由信號(hào)的頻譜重構(gòu)該信號(hào)的過程。
雖然由信號(hào)的傅里葉級(jí)數(shù)很容易理解頻譜的概念,但在實(shí)際中求取信號(hào)的頻譜時(shí),使用的是傅里葉級(jí)數(shù)的一種推廣形式——傅里葉變換。
傅里葉變換是一個(gè)大的家族,在不同的應(yīng)用領(lǐng)域,有不同的形式,在這里我們只給出兩種形式——連續(xù)形式的傅里葉變換和離散傅里葉變換:
其中的j是虛數(shù)單位,也就是j*j=-1,其對(duì)應(yīng)的傅里葉逆變換分別為:
在實(shí)際應(yīng)用中,將數(shù)字采樣信號(hào)進(jìn)行傅里葉變換后,可以得到信號(hào)的頻譜。頻域上的處理完成后,可以使用傅里葉逆變換將信號(hào)由頻域轉(zhuǎn)換到時(shí)域中。對(duì),傅里葉變換是一個(gè)可以完成由時(shí)域向頻域轉(zhuǎn)換的重要工具,一個(gè)信號(hào)經(jīng)傅里葉變換后,可以得到信號(hào)的頻譜。
以上是傅里葉變換的簡(jiǎn)單介紹,數(shù)學(xué)功底不太好的朋友看不大懂也沒關(guān)系,只要明白,一個(gè)時(shí)域信號(hào)進(jìn)行傅里葉變換后,可以得到這個(gè)信號(hào)的頻譜,即完成如下轉(zhuǎn)換:
左面的是時(shí)域信號(hào),右面的是對(duì)應(yīng)的頻譜,時(shí)域信號(hào)一般關(guān)注的是什么時(shí)間取什么值,頻域信號(hào)關(guān)心的是頻率分布和振幅。
有了以上的理論作為基礎(chǔ),理解降噪的原理就容易多了,噪音抑制的關(guān)鍵是提取出噪聲的頻譜,然后將含噪語音根據(jù)噪聲的頻譜做一個(gè)反向的補(bǔ)償運(yùn)算,從而得到降噪后的語音。這句話很重要,后面的內(nèi)容都是圍繞這句話展開的。
噪聲抑制的一般流程如下圖所示:
同端點(diǎn)檢測(cè)類似,假設(shè)音頻起始處的一小段語音是背景音,這一假設(shè)非常重要,因?yàn)檫@一小段背景音也是背景噪聲,是提取噪聲頻譜的基礎(chǔ)。
降噪過程:首先將這一小段背景音進(jìn)行分幀,并按照幀的先后順序進(jìn)行分組,每組的幀數(shù)可以為10或其他值,組的數(shù)量一般不少于5,隨后對(duì)每組背景噪聲數(shù)據(jù)幀使用傅里葉變換得到其頻譜,再將各頻譜求平均后得到背景噪聲的頻譜。
得到噪聲的頻譜后,降噪的過程就非常簡(jiǎn)單了,上圖下面左側(cè)的圖中紅色部分即為噪聲的頻譜,黑色的線為有效語音信號(hào)的頻譜,兩者共同構(gòu)成含噪語音的頻譜,用含噪語音的頻譜減去噪音頻譜后得到降噪后語音的頻譜,再使用傅里葉逆變換轉(zhuǎn)回到時(shí)域中,從而得到降噪后的語音數(shù)據(jù)。
下圖展示了降噪的效果
左右兩幅圖是降噪前后時(shí)域中的對(duì)比,左面的是含噪語音信號(hào),從圖中可以看到噪聲還是很明顯的。右側(cè)的是降噪后的語音信號(hào),可以看出,背景噪聲被大大的抑制了。
下面兩幅圖是頻域中的對(duì)比
其中橫軸表示時(shí)間軸,縱軸表示頻率,左面的是含噪語音,其中的亮紅色部分是有效語音,而那些像沙子一樣的紫色的部分則是噪聲。從圖中可以看出,噪聲不僅是“無時(shí)不在”,而且還是“無處不在”,也就是在各種頻率處都有分布,右側(cè)的是降噪后的語音,可以很明顯的看出,降噪前那些像沙子一樣的紫色的部分淡了很多,就是噪聲被有效的抑制了。
在實(shí)際應(yīng)用中,降噪使用的噪聲頻譜通常不是一成不變的,而是隨著降噪過程的進(jìn)行被持續(xù)修正的,即降噪的過程是自適應(yīng)的。這樣做的原因一方面是語音數(shù)據(jù)前部的靜音長(zhǎng)度有時(shí)不夠長(zhǎng),背景噪聲數(shù)據(jù)不足導(dǎo)致得到的噪聲頻譜往往不夠準(zhǔn)確,另一方面,背景噪聲往往不是絕對(duì)穩(wěn)定的,而是漸變的甚至?xí)蛔兊搅硪环N穩(wěn)定的背景噪聲。
這些原因都要求在降噪的過程中對(duì)使用的噪聲頻譜做及時(shí)修正,以得到較好的降噪效果。修正噪聲頻譜的方法是使用后繼音頻中的靜音,重復(fù)噪聲頻譜提取算法,得到新的噪聲頻譜,并將之用于修正降噪所用的噪聲頻譜,所以降噪的過程中仍然要使用端點(diǎn)檢測(cè)中用到的如何判斷靜音。噪聲頻譜修正的方法或者是新舊頻譜進(jìn)行加權(quán)平均,或者使用新的噪聲頻譜完全替換使用中的噪聲頻譜。
以上介紹的是降噪的非常簡(jiǎn)單的原理。實(shí)際應(yīng)用中的降噪算法遠(yuǎn)比上面介紹的要復(fù)雜,現(xiàn)實(shí)中的噪聲源多種多樣,其產(chǎn)生的機(jī)理和特性也較為復(fù)雜,所以噪聲抑制在現(xiàn)今仍然是一個(gè)較為活躍的研究領(lǐng)域,各種新技術(shù)也層出不窮,比如在實(shí)際應(yīng)用中已經(jīng)使用了多麥克風(fēng)陣列來進(jìn)行噪聲抑制。
▎音頻壓縮
音頻壓縮的必要性眾所周知,不再贅述。所有的音頻壓縮系統(tǒng)都要求有兩種對(duì)應(yīng)的算法,一種是運(yùn)行于源端上的編碼算法(encoding),另一種是運(yùn)行于接收端或用戶終端的解碼算法(decoding)。
編碼算法和解碼算法表現(xiàn)出一定的不對(duì)稱性。這種不對(duì)稱性一是表現(xiàn)在編碼算法和解碼算法的效率可以不同。音頻或視頻數(shù)據(jù)在存儲(chǔ)時(shí),通常只被編碼一次,但將被解碼成千上萬次,所以編碼算法較復(fù)雜、效率降低、費(fèi)用昂貴是可以被接受的,但解碼算法一定要快速、簡(jiǎn)單而且廉價(jià)。編碼算法和解碼算法的不對(duì)稱性還表現(xiàn)在編碼和解碼的過程通常是不可逆的,也就是說,解碼后得到的數(shù)據(jù)和編碼之前的原始數(shù)據(jù)可以是不同的,只要它們聽起來或看起來是一樣的即可,這種編解碼算法通常稱為有損的,與此對(duì)應(yīng)的是,如果解碼后得到和原始數(shù)據(jù)一致的數(shù)據(jù),這種編碼和解碼稱為無損的。
音視頻編解碼算法大多是有損的,因?yàn)槿淌芤恍┥倭啃畔⒌膩G失,往往可以換來壓縮率的大幅提升,音頻信號(hào)的壓縮編碼采用了數(shù)據(jù)編碼中的一些技術(shù),如熵編碼、波形編碼、參數(shù)編碼、混合編碼、感知編碼等。
本次課重點(diǎn)介紹感知編碼,相對(duì)于其他的編碼算法,感知編碼基于人耳聽覺的一些特性(心理聲學(xué)),去除音頻信號(hào)中的冗余,從而達(dá)到音頻壓縮的目的。相對(duì)于其他的音頻編碼算法(無損的),在人耳沒有感覺到明顯失真的條件下,可以達(dá)到10倍以上的較大壓縮率。
首先來介紹感知編碼的心理聲學(xué)基礎(chǔ)。音頻壓縮的核心是去除冗余。所謂冗余就是語音信號(hào)中包含的不能為人耳所感知的信息,它對(duì)人類確定音色、音調(diào)等信息沒有任何幫助,比如,人耳能聽到的聲音頻率范圍為20-20KHz,無法感知頻率低于20Hz的次聲波和頻率高于20KHz的超聲波。再比如,人耳也無法聽到一段“不夠響”的聲音。感知編碼就是利用了人類聽覺系統(tǒng)的這類特性,達(dá)到去除音頻冗余信息的目的。
感知編碼中的心理聲學(xué)主要有:頻率屏蔽、時(shí)域屏蔽、可聽度閾值等。
頻率屏蔽 頻率屏蔽在生活中處處可見,比如你在家中坐在沙發(fā)上安靜的看電視,突然,正在裝修的鄰居家一陣很刺耳的電鉆鉆墻的聲音傳來,這時(shí)你所能聽到的只有手提電鉆發(fā)出的很強(qiáng)的噪聲,盡管此時(shí)電視所發(fā)出的聲音仍然在刺激著你的耳膜,但你卻充耳不聞,也就是說,一段強(qiáng)度很高的聲音可以完全屏蔽一段強(qiáng)度較低的聲音,這種現(xiàn)象稱為頻率屏蔽。
時(shí)域屏蔽 承接前一個(gè)例子,不僅在電鉆發(fā)出聲音的時(shí)間內(nèi)人耳聽不到電視機(jī)的聲音,就是在電鉆的聲音剛停下來的一小段時(shí)間內(nèi),人耳也聽不到電視機(jī)的聲音,這種現(xiàn)象稱為時(shí)域屏蔽。產(chǎn)生時(shí)域屏蔽的原因是人類的聽覺系統(tǒng)是一個(gè)增益可調(diào)的系統(tǒng),聽強(qiáng)度較大的聲音時(shí),增益較低,聽強(qiáng)度較小的聲音時(shí),增益較高。有時(shí)人類甚至借助外部手段來改變聽覺系統(tǒng)的增益,比如,捂耳朵以避免強(qiáng)度很大的聲音損傷耳膜,而屏住呼吸、側(cè)耳、以手放耳廓后更是聽較弱聲音時(shí)的常見行為。在上例中,強(qiáng)度很大的聲音剛消失時(shí),聽覺系統(tǒng)需要一小段時(shí)間來調(diào)高增益,正是在這一小段時(shí)間內(nèi)產(chǎn)生了時(shí)域屏蔽。
下面來說可聽度閾值,它對(duì)于音頻壓縮灰常重要。
設(shè)想在一個(gè)安靜的房間中,一臺(tái)由計(jì)算機(jī)控制的揚(yáng)聲器可以發(fā)出某一頻率的聲音,剛開始時(shí)揚(yáng)聲器功率較小,處于一定距離上的聽覺正常的人聽不到揚(yáng)聲器發(fā)出的聲音。然后開始逐漸增大揚(yáng)聲器的功率,當(dāng)功率增大到剛好可以被聽見的時(shí)候,記錄下此時(shí)揚(yáng)聲器的功率(聲強(qiáng)級(jí),單位分貝),這個(gè)功率就是這個(gè)頻率下的可聽度閾值。
然后改變揚(yáng)聲器所發(fā)音頻的頻率,重復(fù)以上實(shí)驗(yàn),最終獲得的可聽度閾值隨頻率變化的曲線如下圖所示:
由圖中可以很明顯的看出,人類的聽覺系統(tǒng)對(duì)頻率在1000-5000Hz范圍的聲音最敏感,頻率越接近兩側(cè),人類聽覺反應(yīng)越遲鈍。
回過頭來再看頻率屏蔽的情形,這次實(shí)驗(yàn)在房間中增加一個(gè)頻率為150Hz,強(qiáng)度為60dB的信號(hào),然后重復(fù)實(shí)驗(yàn),實(shí)驗(yàn)得出的可聽度閾值曲線如下圖所示:
從圖中很明顯的看出,可聽度閾值曲線在150Hz附近被強(qiáng)烈的扭曲了,被向上提高了很多。這意味著,本來位于可聽度閾值之上的150Hz附近的某個(gè)頻率的聲音,有可能由于150Hz的更強(qiáng)的信號(hào)的存在而變得不可聞了,也就是被屏蔽了。
音頻壓縮1#e#
感知編碼的基本規(guī)則就是,永遠(yuǎn)不需要對(duì)人耳聽不到的信號(hào)進(jìn)行編碼,簡(jiǎn)單來說就是,聽不到的信號(hào)不需要編碼,這句廢話恰恰是語音壓縮研究的重點(diǎn)之一。廢話的另外一種含義就是非常容易理解的正確的話。言歸正傳,哪些東西聽不見呢?功率低于可聽度閾值的信號(hào)或者說分量,被屏蔽的信號(hào)或者說分量,這些人耳都聽不見,都是上文提到的“冗余”。
以上是心里聲學(xué)的一些東西。要想很好的理解音頻壓縮,還需要理解一個(gè)更重要的概念:子帶。子帶(subband)是指這樣的一種頻率范圍,當(dāng)兩個(gè)音調(diào)的頻率位于一個(gè)子帶內(nèi)時(shí),人就會(huì)把兩個(gè)音調(diào)聽成一個(gè)。更一般的情況是,如果一個(gè)復(fù)雜信號(hào)的頻率分布位于一個(gè)子帶內(nèi)時(shí),人耳的感覺是該信號(hào)等價(jià)于一個(gè)頻率位于該子帶中心頻率處的簡(jiǎn)單信號(hào),這是子帶的核心內(nèi)涵。簡(jiǎn)單說,子帶是指一個(gè)頻率范圍,頻譜位于這個(gè)范圍內(nèi)的信號(hào)可以用一個(gè)單一頻率的分量來代替。
一般等價(jià)的頻率取子帶的中心頻率,振幅取子帶內(nèi)個(gè)頻率分量振幅的加權(quán)和,更簡(jiǎn)單的方法則是將各頻率分量的振幅直接相加,作為等價(jià)信號(hào)的振幅,這樣一個(gè)范圍內(nèi)的頻率分量用一個(gè)分量就可以代替了。
設(shè)一個(gè)信號(hào)的頻譜頻率最低值為w0,最大值為w1。子帶編碼就是將w0-w1之間的頻率范圍劃分成若干子帶,然后每個(gè)子帶范圍內(nèi)的分量用一個(gè)等價(jià)的頻率分量來替換。這樣,一個(gè)具有復(fù)雜頻譜的信號(hào)可以等價(jià)為一個(gè)頻譜構(gòu)成灰常簡(jiǎn)單的信號(hào)——頻譜被大大簡(jiǎn)化了,需要存儲(chǔ)的東西就非常少了。
從以上過程不難知道,子帶如何劃分對(duì)壓縮后音頻的質(zhì)量影響很大(畢竟是近似等價(jià))。子帶的劃分方法是子帶編碼的一個(gè)很重要的研究主題,大致可以分為等寬子帶編碼和變寬子帶編碼,見名知意,不解釋。
子帶劃分后子帶數(shù)量的不同導(dǎo)致了壓縮算法的不同等級(jí)。容易知道,碼率越低壓縮率越高時(shí),子帶數(shù)量少,同時(shí)音質(zhì)較差。相反的情況也容易理解。
理解了子帶編碼,音頻壓縮就很容易理解了,一個(gè)信號(hào)經(jīng)過一組三角濾波器(等同于一組子帶)后,被精簡(jiǎn)為數(shù)量很少的頻率分量。然后考察這些頻率分量,能量或者說振幅位于可聽度閾值曲線之下的直接無視(刪除該分量,因?yàn)槁牪坏剑?。再考察余下的兩兩相鄰的頻率分量,如果其中一個(gè)被旁邊的頻率屏蔽,也刪除掉。經(jīng)過以上的處理,一個(gè)復(fù)雜信號(hào)的頻譜所含有的頻率分量就很簡(jiǎn)單了,使用很少的數(shù)據(jù)就可以存儲(chǔ)或者傳輸這些信息。
解碼的時(shí)候使用傅里葉逆變換將上面得到的簡(jiǎn)單頻譜重構(gòu)到時(shí)域上,得到解碼后的語音。
以上就是音頻壓縮的簡(jiǎn)單原理,下面談?wù)勔纛l編解碼庫。
可以公開獲取的音頻編解碼開源庫很多,其特點(diǎn)和能力也有所不同,如下圖:
由圖中可以看到,AAC和MP3等走的是“高端路線”,用來對(duì)高采樣率的音樂進(jìn)行編碼,而AMR和SPEEX等走的是中低端路線,可以處理16K采樣率以下的語音信號(hào),這對(duì)于語音合成、語音識(shí)別、聲紋識(shí)別等語音應(yīng)用足夠了。
科大訊飛語音云使用的是SPEEX系列,算法相關(guān)信息如下圖所示:
Speex編解碼庫壓縮率變換范圍較廣,壓縮等級(jí)可供選擇的范圍較寬,所以應(yīng)用在網(wǎng)絡(luò)狀況較為復(fù)雜的移動(dòng)終端應(yīng)用中甚為合適。
好了,以上就是本次課分享的全部?jī)?nèi)容。
小結(jié):
音頻端點(diǎn)檢測(cè)、降噪和語音壓縮,很多人覺得神秘、難于理解和難以把握。但經(jīng)李老師娓娓道來,平時(shí)感覺高大上的語音處理技術(shù)也被講的深入淺出。原來,不需要很高深的理論功底也可以理解這些技術(shù)的關(guān)鍵:音頻端點(diǎn)檢測(cè)的關(guān)鍵是根據(jù)前面的靜音確定用來分辨靜音和有效語音的標(biāo)尺,降噪的關(guān)鍵是使用前面的一小段背景噪音提取出噪聲的頻譜,音頻壓縮方法之一是充分利用人類的心里聲學(xué),劃分子帶,去除冗余等。
讓我們一起關(guān)注語音處理技術(shù)在以上幾個(gè)方面的最新發(fā)展吧。
演講嘉賓介紹
李洪亮,畢業(yè)于中國科學(xué)技術(shù)大學(xué)??拼笥嶏w資深研發(fā)工程師,長(zhǎng)期從事語音引擎和語音類云計(jì)算相關(guān)開發(fā),科大訊飛語音云的締造者之一,主導(dǎo)研發(fā)的用于訊飛語音云平臺(tái)上的語音編解碼庫,日使用量超過二十億。主導(dǎo)語音類國家標(biāo)準(zhǔn)體系的建設(shè),主導(dǎo)、參與多個(gè)語音類國家標(biāo)準(zhǔn)的制定。 他今天的分享將分為兩大部分,第一部分是端點(diǎn)檢測(cè)和降噪,第二部分是音頻壓縮。
評(píng)論