新聞中心

EEPW首頁(yè) > 智能計(jì)算 > 設(shè)計(jì)應(yīng)用 > 語(yǔ)音處理檢測(cè)技術(shù)端點(diǎn)檢測(cè)、降噪和壓縮詳解

語(yǔ)音處理檢測(cè)技術(shù)端點(diǎn)檢測(cè)、降噪和壓縮詳解

作者: 時(shí)間:2017-10-24 來(lái)源:網(wǎng)絡(luò) 收藏

  作為一種人機(jī)交互的手段,語(yǔ)音的在解放人類(lèi)雙手方面意義重大。同時(shí),工作環(huán)境存在著各種各樣的背景噪聲,這些噪聲會(huì)嚴(yán)重降低語(yǔ)音的質(zhì)量從而影響語(yǔ)音應(yīng)用的效果,比如會(huì)降低識(shí)別率。未經(jīng)的語(yǔ)音數(shù)據(jù),網(wǎng)絡(luò)交互應(yīng)用中的網(wǎng)絡(luò)流量偏大,從而降低語(yǔ)音應(yīng)用的成功率。因此,音頻的、和音頻始終是終端關(guān)注的重點(diǎn),目前仍是活躍的研究主題。

本文引用地址:http://m.butianyuan.cn/article/201710/367885.htm

  為了能和您一起了解的基本原理,帶您一起一窺音頻的奧秘,科大訊飛資深研發(fā)工程師李洪亮將為我們?cè)斀?a class="contentlabel" href="http://m.butianyuan.cn/news/listbylabel/label/語(yǔ)音處理">語(yǔ)音處理檢測(cè)技術(shù)中的熱點(diǎn)——端點(diǎn)檢測(cè)、和壓縮 。

  ▎端點(diǎn)檢測(cè)

  首先來(lái)看端點(diǎn)檢測(cè)(Voice Activity Detection, VAD)。音頻端點(diǎn)檢測(cè)就是從連續(xù)的語(yǔ)音流中檢測(cè)出有效的語(yǔ)音段。它包括兩個(gè)方面,檢測(cè)出有效語(yǔ)音的起始點(diǎn)即前端點(diǎn),檢測(cè)出有效語(yǔ)音的結(jié)束點(diǎn)即后端點(diǎn)。

  在語(yǔ)音應(yīng)用中進(jìn)行語(yǔ)音的端點(diǎn)檢測(cè)是很必要的,首先很簡(jiǎn)單的一點(diǎn),就是在存儲(chǔ)或傳輸語(yǔ)音的場(chǎng)景下,從連續(xù)的語(yǔ)音流中分離出有效語(yǔ)音,可以降低存儲(chǔ)或傳輸?shù)臄?shù)據(jù)量。其次是在有些應(yīng)用場(chǎng)景中,使用端點(diǎn)檢測(cè)可以簡(jiǎn)化人機(jī)交互,比如在錄音的場(chǎng)景中,語(yǔ)音后端點(diǎn)檢測(cè)可以省略結(jié)束錄音的操作。

  

  為了能更清楚說(shuō)明端點(diǎn)檢測(cè)的原理,先來(lái)分析一段音頻。上圖是一段只有兩個(gè)字的簡(jiǎn)單音頻,從圖上可以很直觀(guān)的看出,首尾的靜音部分聲波的振幅很小,而有效語(yǔ)音部分的振幅比較大,一個(gè)信號(hào)的振幅從直觀(guān)上表示了信號(hào)能量的大小:靜音部分能量值較小,有效語(yǔ)音部分的能量值較大。語(yǔ)音信號(hào)是一個(gè)以時(shí)間為自變量的一維連續(xù)函數(shù),計(jì)算機(jī)處理的語(yǔ)音數(shù)據(jù)是語(yǔ)音信號(hào)按時(shí)間排序的采樣值序列,這些采樣值的大小同樣表示了語(yǔ)音信號(hào)在采樣點(diǎn)處的能量。

  

  采樣值中有正值和負(fù)值,計(jì)算能量值時(shí)不需要考慮正負(fù)號(hào),從這個(gè)意義上看,使用采樣值的絕對(duì)值來(lái)表示能量值是自然而然的想法,由于絕對(duì)值符號(hào)在數(shù)學(xué)處理上不方便,所以采樣點(diǎn)的能量值通常使用采樣值的平方,一段包含N個(gè)采樣點(diǎn)的語(yǔ)音的能量值可以定義為其中各采樣值的平方和。

  這樣,一段語(yǔ)音的能量值既與其中的采樣值大小有關(guān),又與其中包含的采樣點(diǎn)數(shù)量有關(guān)。為了考察語(yǔ)音能量值的變化,需要先將語(yǔ)音信號(hào)按照固定時(shí)長(zhǎng)比如20毫秒進(jìn)行分割,每個(gè)分割單元稱(chēng)為幀,每幀中包含數(shù)量相同的采樣點(diǎn),然后計(jì)算每幀語(yǔ)音的能量值。

  如果音頻前面部分連續(xù)M0幀的能量值低于一個(gè)事先指定的能量值閾值E0,接下來(lái)的連續(xù)M0幀能量值大于E0,則在語(yǔ)音能量值增大的地方就是語(yǔ)音的前端點(diǎn)。同樣的,如果連續(xù)的若干幀語(yǔ)音能量值較大,隨后的幀能量值變小,并且持續(xù)一定的時(shí)長(zhǎng),可以認(rèn)為在能量值減小的地方即是語(yǔ)音的后端點(diǎn)。

  現(xiàn)在的問(wè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è)音頻起始處的一小段語(yǔ)音是靜音,這一點(diǎn)假設(shè)非常重要?。。?!在隨后的降噪介紹中也要用到這一假設(shè)。在估計(jì)E0時(shí),選取一定數(shù)量的幀比如前100幀語(yǔ)音數(shù)據(jù)(這些是“靜音”),計(jì)算其平均能量值,然后加上一個(gè)經(jīng)驗(yàn)值或乘以一個(gè)大于1的系數(shù),由此得到E0。這個(gè)E0就是我們判斷一幀語(yǔ)音是否是靜音的基準(zhǔn),大于這個(gè)值就是有效語(yǔ)音,小于這個(gè)值就是靜音。

  至于M0,比較容易理解,其大小決定了端點(diǎn)檢測(cè)的靈敏度,M0越小,端點(diǎn)檢測(cè)的靈敏度越高,反之越低。語(yǔ)音應(yīng)用的場(chǎng)景不同,端點(diǎn)檢測(cè)的靈敏度也應(yīng)該被設(shè)置為不同的值。例如,在聲控遙控器的應(yīng)用中,由于語(yǔ)音指令一般都是簡(jiǎn)單的控制指令,中間出現(xiàn)逗號(hào)或句號(hào)等較長(zhǎng)停頓的可能性很小,所以提高端點(diǎn)檢測(cè)的靈敏度是合理的,M0設(shè)置為較小值,對(duì)應(yīng)的音頻時(shí)長(zhǎng)一般為200-400毫秒左右。在大段的語(yǔ)音聽(tīng)寫(xiě)應(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ǔ)音應(yīng)用的場(chǎng)景來(lái)選擇。

  以上只是語(yǔ)音端點(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ù)來(lái)進(jìn)行語(yǔ)音的端點(diǎn)檢測(cè),實(shí)際的效果可以關(guān)注訊飛的產(chǎn)品。

  ▎降噪

  降噪又稱(chēng)噪聲抑制(Noise Reduction),前文提到,實(shí)際采集到的音頻通常會(huì)有一定強(qiáng)度的背景音,這些背景音一般是背景噪音,當(dāng)背景噪音強(qiáng)度較大時(shí),會(huì)對(duì)語(yǔ)音應(yīng)用的效果產(chǎn)生明顯的影響,比如語(yǔ)音識(shí)別率降低,端點(diǎn)檢測(cè)靈敏度下降等,因此,在語(yǔ)音的前端處理中,進(jìn)行噪聲抑制是很有必要的。

  噪聲有很多種,既有頻譜穩(wěn)定的白噪聲,又有不穩(wěn)定的脈沖噪聲和起伏噪聲,在語(yǔ)音應(yīng)用中,穩(wěn)定的背景噪音最為常見(jiàn),技術(shù)也最成熟,效果也最好。本課程只討論穩(wěn)定的白噪聲,即總是假設(shè)背景噪聲的頻譜是穩(wěn)定或者是準(zhǔn)穩(wěn)定的。

  前面講的語(yǔ)音端點(diǎn)檢測(cè)是在時(shí)域上進(jìn)行的,降噪的過(guò)程則是在頻域上進(jìn)行的,為此,我們先來(lái)簡(jiǎn)單介紹或者說(shuō)復(fù)習(xí)一下用于時(shí)域-頻域相互轉(zhuǎn)換的重要工具——傅里葉變換。

  為了更容易理解,先看高等數(shù)學(xué)中學(xué)過(guò)的傅里葉級(jí)數(shù),高等數(shù)學(xué)理論指出,一個(gè)滿(mǎn)足Dirichlet條件的周期為2T的函數(shù)f(t),可以展開(kāi)成傅里葉級(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ù)線(xiàn)性疊加而成?;蛘哒f(shuō), f(t)都可以由一個(gè)三角函數(shù)線(xiàn)性組合組成的序列來(lái)無(wú)限的逼近。信號(hào)的傅里葉級(jí)數(shù)展示的是構(gòu)成信號(hào)的頻率以及各個(gè)頻率處的振幅,因此,式子的右端又可以看做是信號(hào)f(t)的頻譜,說(shuō)的更直白一點(diǎn),信號(hào)的頻譜就是指這個(gè)信號(hào)有哪些頻率成分,各個(gè)頻率的振幅如何。上式從左到右的過(guò)程是一個(gè)求已知信號(hào)的頻譜的過(guò)程,從右到左的過(guò)程是一個(gè)由信號(hào)的頻譜重構(gòu)該信號(hào)的過(guò)程。

  雖然由信號(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é)功底不太好的朋友看不大懂也沒(méi)關(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)鍵是提取出噪聲的頻譜,然后將含噪語(yǔ)音根據(jù)噪聲的頻譜做一個(gè)反向的補(bǔ)償運(yùn)算,從而得到降噪后的語(yǔ)音。這句話(huà)很重要,后面的內(nèi)容都是圍繞這句話(huà)展開(kāi)的。

  噪聲抑制的一般流程如下圖所示:

  

  同端點(diǎn)檢測(cè)類(lèi)似,假設(shè)音頻起始處的一小段語(yǔ)音是背景音,這一假設(shè)非常重要,因?yàn)檫@一小段背景音也是背景噪聲,是提取噪聲頻譜的基礎(chǔ)。

  降噪過(guò)程:首先將這一小段背景音進(jìn)行分幀,并按照幀的先后順序進(jìn)行分組,每組的幀數(shù)可以為10或其他值,組的數(shù)量一般不少于5,隨后對(duì)每組背景噪聲數(shù)據(jù)幀使用傅里葉變換得到其頻譜,再將各頻譜求平均后得到背景噪聲的頻譜。

  得到噪聲的頻譜后,降噪的過(guò)程就非常簡(jiǎn)單了,上圖下面左側(cè)的圖中紅色部分即為噪聲的頻譜,黑色的線(xiàn)為有效語(yǔ)音信號(hào)的頻譜,兩者共同構(gòu)成含噪語(yǔ)音的頻譜,用含噪語(yǔ)音的頻譜減去噪音頻譜后得到降噪后語(yǔ)音的頻譜,再使用傅里葉逆變換轉(zhuǎn)回到時(shí)域中,從而得到降噪后的語(yǔ)音數(shù)據(jù)。

  下圖展示了降噪的效果

  

  左右兩幅圖是降噪前后時(shí)域中的對(duì)比,左面的是含噪語(yǔ)音信號(hào),從圖中可以看到噪聲還是很明顯的。右側(cè)的是降噪后的語(yǔ)音信號(hào),可以看出,背景噪聲被大大的抑制了。

  下面兩幅圖是頻域中的對(duì)比

  

  其中橫軸表示時(shí)間軸,縱軸表示頻率,左面的是含噪語(yǔ)音,其中的亮紅色部分是有效語(yǔ)音,而那些像沙子一樣的紫色的部分則是噪聲。從圖中可以看出,噪聲不僅是“無(wú)時(shí)不在”,而且還是“無(wú)處不在”,也就是在各種頻率處都有分布,右側(cè)的是降噪后的語(yǔ)音,可以很明顯的看出,降噪前那些像沙子一樣的紫色的部分淡了很多,就是噪聲被有效的抑制了。

  在實(shí)際應(yīng)用中,降噪使用的噪聲頻譜通常不是一成不變的,而是隨著降噪過(guò)程的進(jìn)行被持續(xù)修正的,即降噪的過(guò)程是自適應(yīng)的。這樣做的原因一方面是語(yǔ)音數(shù)據(jù)前部的靜音長(zhǎng)度有時(shí)不夠長(zhǎng),背景噪聲數(shù)據(jù)不足導(dǎo)致得到的噪聲頻譜往往不夠準(zhǔn)確,另一方面,背景噪聲往往不是絕對(duì)穩(wěn)定的,而是漸變的甚至?xí)蛔兊搅硪环N穩(wěn)定的背景噪聲。

  這些原因都要求在降噪的過(guò)程中對(duì)使用的噪聲頻譜做及時(shí)修正,以得到較好的降噪效果。修正噪聲頻譜的方法是使用后繼音頻中的靜音,重復(fù)噪聲頻譜提取算法,得到新的噪聲頻譜,并將之用于修正降噪所用的噪聲頻譜,所以降噪的過(guò)程中仍然要使用端點(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)陣列來(lái)進(jìn)行噪聲抑制。

  ▎音頻壓縮

  音頻壓縮的必要性眾所周知,不再贅述。所有的音頻壓縮系統(tǒng)都要求有兩種對(duì)應(yīng)的算法,一種是運(yùn)行于源端上的編碼算法(encoding),另一種是運(yùn)行于接收端或用戶(hù)終端的解碼算法(decoding)。

  編碼算法和解碼算法表現(xiàn)出一定的不對(duì)稱(chēng)性。這種不對(duì)稱(chēng)性一是表現(xiàn)在編碼算法和解碼算法的效率可以不同。音頻或視頻數(shù)據(jù)在存儲(chǔ)時(shí),通常只被編碼一次,但將被解碼成千上萬(wàn)次,所以編碼算法較復(fù)雜、效率降低、費(fèi)用昂貴是可以被接受的,但解碼算法一定要快速、簡(jiǎn)單而且廉價(jià)。編碼算法和解碼算法的不對(duì)稱(chēng)性還表現(xiàn)在編碼和解碼的過(guò)程通常是不可逆的,也就是說(shuō),解碼后得到的數(shù)據(jù)和編碼之前的原始數(shù)據(jù)可以是不同的,只要它們聽(tīng)起來(lái)或看起來(lái)是一樣的即可,這種編解碼算法通常稱(chēng)為有損的,與此對(duì)應(yīng)的是,如果解碼后得到和原始數(shù)據(jù)一致的數(shù)據(jù),這種編碼和解碼稱(chēng)為無(wú)損的。

  音視頻編解碼算法大多是有損的,因?yàn)槿淌芤恍┥倭啃畔⒌膩G失,往往可以換來(lái)壓縮率的大幅提升,音頻信號(hào)的壓縮編碼采用了數(shù)據(jù)編碼中的一些技術(shù),如熵編碼、波形編碼、參數(shù)編碼、混合編碼、感知編碼等。

  本次課重點(diǎn)介紹感知編碼,相對(duì)于其他的編碼算法,感知編碼基于人耳聽(tīng)覺(jué)的一些特性(心理聲學(xué)),去除音頻信號(hào)中的冗余,從而達(dá)到音頻壓縮的目的。相對(duì)于其他的音頻編碼算法(無(wú)損的),在人耳沒(méi)有感覺(jué)到明顯失真的條件下,可以達(dá)到10倍以上的較大壓縮率。

  首先來(lái)介紹感知編碼的心理聲學(xué)基礎(chǔ)。音頻壓縮的核心是去除冗余。所謂冗余就是語(yǔ)音信號(hào)中包含的不能為人耳所感知的信息,它對(duì)人類(lèi)確定音色、音調(diào)等信息沒(méi)有任何幫助,比如,人耳能聽(tīng)到的聲音頻率范圍為20-20KHz,無(wú)法感知頻率低于20Hz的次聲波和頻率高于20KHz的超聲波。再比如,人耳也無(wú)法聽(tīng)到一段“不夠響”的聲音。感知編碼就是利用了人類(lèi)聽(tīng)覺(jué)系統(tǒng)的這類(lèi)特性,達(dá)到去除音頻冗余信息的目的。

  感知編碼中的心理聲學(xué)主要有:頻率屏蔽、時(shí)域屏蔽、可聽(tīng)度閾值等。

  

  頻率屏蔽 頻率屏蔽在生活中處處可見(jiàn),比如你在家中坐在沙發(fā)上安靜的看電視,突然,正在裝修的鄰居家一陣很刺耳的電鉆鉆墻的聲音傳來(lái),這時(shí)你所能聽(tīng)到的只有手提電鉆發(fā)出的很強(qiáng)的噪聲,盡管此時(shí)電視所發(fā)出的聲音仍然在刺激著你的耳膜,但你卻充耳不聞,也就是說(shuō),一段強(qiáng)度很高的聲音可以完全屏蔽一段強(qiáng)度較低的聲音,這種現(xiàn)象稱(chēng)為頻率屏蔽。

  

  時(shí)域屏蔽 承接前一個(gè)例子,不僅在電鉆發(fā)出聲音的時(shí)間內(nèi)人耳聽(tīng)不到電視機(jī)的聲音,就是在電鉆的聲音剛停下來(lái)的一小段時(shí)間內(nèi),人耳也聽(tīng)不到電視機(jī)的聲音,這種現(xiàn)象稱(chēng)為時(shí)域屏蔽。產(chǎn)生時(shí)域屏蔽的原因是人類(lèi)的聽(tīng)覺(jué)系統(tǒng)是一個(gè)增益可調(diào)的系統(tǒng),聽(tīng)強(qiáng)度較大的聲音時(shí),增益較低,聽(tīng)強(qiáng)度較小的聲音時(shí),增益較高。有時(shí)人類(lèi)甚至借助外部手段來(lái)改變聽(tīng)覺(jué)系統(tǒng)的增益,比如,捂耳朵以避免強(qiáng)度很大的聲音損傷耳膜,而屏住呼吸、側(cè)耳、以手放耳廓后更是聽(tīng)較弱聲音時(shí)的常見(jiàn)行為。在上例中,強(qiáng)度很大的聲音剛消失時(shí),聽(tīng)覺(jué)系統(tǒng)需要一小段時(shí)間來(lái)調(diào)高增益,正是在這一小段時(shí)間內(nèi)產(chǎn)生了時(shí)域屏蔽。

  下面來(lái)說(shuō)可聽(tīng)度閾值,它對(duì)于音頻壓縮灰常重要。

  設(shè)想在一個(gè)安靜的房間中,一臺(tái)由計(jì)算機(jī)控制的揚(yáng)聲器可以發(fā)出某一頻率的聲音,剛開(kāi)始時(shí)揚(yáng)聲器功率較小,處于一定距離上的聽(tīng)覺(jué)正常的人聽(tīng)不到揚(yáng)聲器發(fā)出的聲音。然后開(kāi)始逐漸增大揚(yáng)聲器的功率,當(dāng)功率增大到剛好可以被聽(tīng)見(jiàn)的時(shí)候,記錄下此時(shí)揚(yáng)聲器的功率(聲強(qiáng)級(jí),單位分貝),這個(gè)功率就是這個(gè)頻率下的可聽(tīng)度閾值。

  然后改變揚(yáng)聲器所發(fā)音頻的頻率,重復(fù)以上實(shí)驗(yàn),最終獲得的可聽(tīng)度閾值隨頻率變化的曲線(xiàn)如下圖所示:

  

  由圖中可以很明顯的看出,人類(lèi)的聽(tīng)覺(jué)系統(tǒng)對(duì)頻率在1000-5000Hz范圍的聲音最敏感,頻率越接近兩側(cè),人類(lèi)聽(tīng)覺(jué)反應(yīng)越遲鈍。

  回過(guò)頭來(lái)再看頻率屏蔽的情形,這次實(shí)驗(yàn)在房間中增加一個(gè)頻率為150Hz,強(qiáng)度為60dB的信號(hào),然后重復(fù)實(shí)驗(yàn),實(shí)驗(yàn)得出的可聽(tīng)度閾值曲線(xiàn)如下圖所示:

  

  從圖中很明顯的看出,可聽(tīng)度閾值曲線(xiàn)在150Hz附近被強(qiáng)烈的扭曲了,被向上提高了很多。這意味著,本來(lái)位于可聽(tīng)度閾值之上的150Hz附近的某個(gè)頻率的聲音,有可能由于150Hz的更強(qiáng)的信號(hào)的存在而變得不可聞了,也就是被屏蔽了。

音頻壓縮1#e#

  感知編碼的基本規(guī)則就是,永遠(yuǎn)不需要對(duì)人耳聽(tīng)不到的信號(hào)進(jìn)行編碼,簡(jiǎn)單來(lái)說(shuō)就是,聽(tīng)不到的信號(hào)不需要編碼,這句廢話(huà)恰恰是語(yǔ)音壓縮研究的重點(diǎn)之一。廢話(huà)的另外一種含義就是非常容易理解的正確的話(huà)。言歸正傳,哪些東西聽(tīng)不見(jiàn)呢?功率低于可聽(tīng)度閾值的信號(hào)或者說(shuō)分量,被屏蔽的信號(hào)或者說(shuō)分量,這些人耳都聽(tīng)不見(jiàn),都是上文提到的“冗余”。

  以上是心里聲學(xué)的一些東西。要想很好的理解音頻壓縮,還需要理解一個(gè)更重要的概念:子帶。子帶(subband)是指這樣的一種頻率范圍,當(dāng)兩個(gè)音調(diào)的頻率位于一個(gè)子帶內(nèi)時(shí),人就會(huì)把兩個(gè)音調(diào)聽(tīng)成一個(gè)。更一般的情況是,如果一個(gè)復(fù)雜信號(hào)的頻率分布位于一個(gè)子帶內(nèi)時(shí),人耳的感覺(jué)是該信號(hào)等價(jià)于一個(gè)頻率位于該子帶中心頻率處的簡(jiǎn)單信號(hào),這是子帶的核心內(nèi)涵。簡(jiǎn)單說(shuō),子帶是指一個(gè)頻率范圍,頻譜位于這個(gè)范圍內(nèi)的信號(hào)可以用一個(gè)單一頻率的分量來(lái)代替。

  

  一般等價(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à)的頻率分量來(lái)替換。這樣,一個(gè)具有復(fù)雜頻譜的信號(hào)可以等價(jià)為一個(gè)頻譜構(gòu)成灰常簡(jiǎn)單的信號(hào)——頻譜被大大簡(jiǎn)化了,需要存儲(chǔ)的東西就非常少了。

  從以上過(guò)程不難知道,子帶如何劃分對(duì)壓縮后音頻的質(zhì)量影響很大(畢竟是近似等價(jià))。子帶的劃分方法是子帶編碼的一個(gè)很重要的研究主題,大致可以分為等寬子帶編碼和變寬子帶編碼,見(jiàn)名知意,不解釋。

  子帶劃分后子帶數(shù)量的不同導(dǎo)致了壓縮算法的不同等級(jí)。容易知道,碼率越低壓縮率越高時(shí),子帶數(shù)量少,同時(shí)音質(zhì)較差。相反的情況也容易理解。

  理解了子帶編碼,音頻壓縮就很容易理解了,一個(gè)信號(hào)經(jīng)過(guò)一組三角濾波器(等同于一組子帶)后,被精簡(jiǎn)為數(shù)量很少的頻率分量。然后考察這些頻率分量,能量或者說(shuō)振幅位于可聽(tīng)度閾值曲線(xiàn)之下的直接無(wú)視(刪除該分量,因?yàn)槁?tīng)不到)。再考察余下的兩兩相鄰的頻率分量,如果其中一個(gè)被旁邊的頻率屏蔽,也刪除掉。經(jīng)過(guò)以上的處理,一個(gè)復(fù)雜信號(hào)的頻譜所含有的頻率分量就很簡(jiǎn)單了,使用很少的數(shù)據(jù)就可以存儲(chǔ)或者傳輸這些信息。

  解碼的時(shí)候使用傅里葉逆變換將上面得到的簡(jiǎn)單頻譜重構(gòu)到時(shí)域上,得到解碼后的語(yǔ)音。

  以上就是音頻壓縮的簡(jiǎn)單原理,下面談?wù)勔纛l編解碼庫(kù)。

  可以公開(kāi)獲取的音頻編解碼開(kāi)源庫(kù)很多,其特點(diǎn)和能力也有所不同,如下圖:

  

  由圖中可以看到,AAC和MP3等走的是“高端路線(xiàn)”,用來(lái)對(duì)高采樣率的音樂(lè)進(jìn)行編碼,而AMR和SPEEX等走的是中低端路線(xiàn),可以處理16K采樣率以下的語(yǔ)音信號(hào),這對(duì)于語(yǔ)音合成、語(yǔ)音識(shí)別、聲紋識(shí)別等語(yǔ)音應(yīng)用足夠了。

  科大訊飛語(yǔ)音云使用的是SPEEX系列,算法相關(guān)信息如下圖所示:

  

  Speex編解碼庫(kù)壓縮率變換范圍較廣,壓縮等級(jí)可供選擇的范圍較寬,所以應(yīng)用在網(wǎng)絡(luò)狀況較為復(fù)雜的移動(dòng)終端應(yīng)用中甚為合適。

  好了,以上就是本次課分享的全部?jī)?nèi)容。

  小結(jié):

  音頻端點(diǎn)檢測(cè)、降噪和語(yǔ)音壓縮,很多人覺(jué)得神秘、難于理解和難以把握。但經(jīng)李老師娓娓道來(lái),平時(shí)感覺(jué)高大上的語(yǔ)音處理技術(shù)也被講的深入淺出。原來(lái),不需要很高深的理論功底也可以理解這些技術(shù)的關(guān)鍵:音頻端點(diǎn)檢測(cè)的關(guān)鍵是根據(jù)前面的靜音確定用來(lái)分辨靜音和有效語(yǔ)音的標(biāo)尺,降噪的關(guān)鍵是使用前面的一小段背景噪音提取出噪聲的頻譜,音頻壓縮方法之一是充分利用人類(lèi)的心里聲學(xué),劃分子帶,去除冗余等。

  讓我們一起關(guān)注語(yǔ)音處理技術(shù)在以上幾個(gè)方面的最新發(fā)展吧。

  演講嘉賓介紹

  李洪亮,畢業(yè)于中國(guó)科學(xué)技術(shù)大學(xué)。科大訊飛資深研發(fā)工程師,長(zhǎng)期從事語(yǔ)音引擎和語(yǔ)音類(lèi)云計(jì)算相關(guān)開(kāi)發(fā),科大訊飛語(yǔ)音云的締造者之一,主導(dǎo)研發(fā)的用于訊飛語(yǔ)音云平臺(tái)上的語(yǔ)音編解碼庫(kù),日使用量超過(guò)二十億。主導(dǎo)語(yǔ)音類(lèi)國(guó)家標(biāo)準(zhǔn)體系的建設(shè),主導(dǎo)、參與多個(gè)語(yǔ)音類(lèi)國(guó)家標(biāo)準(zhǔn)的制定。 他今天的分享將分為兩大部分,第一部分是端點(diǎn)檢測(cè)和降噪,第二部分是音頻壓縮。



評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉