VoIP學習筆記第二部分 語音編碼

2021-04-14 02:47:27 字數 2343 閱讀 1659

我們在前一節提到過mos(mean opinion score)這個概念, 我們在傳輸語音的過程中, 因為頻寬的限制問題理所當然的會把對語音資料進行有損的壓縮.這樣的話,語音的質量就會降低,但是通訊的壓力會很小,相應的mos的得分就會低一些.語音編碼技術的目標就是在保持相對較少的資訊量的情況下使mos盡可能的高.

語音分為三種主要的型別:

1) 濁音. 空氣從肺部向聲道不斷進行開合震動的聲帶所阻斷的時候就產生了濁音,聲帶開合的速率決定了聲音的音調.有明顯的週期性,週期一般在2ms-20ms之間

2) 清音  當聲門保持敞開的狀態,通過聲道的收縮來高速驅動空氣產生的類似雜訊的雜亂聲音的時候就是清音,這樣的聲音基本上沒有週期性。

3) 爆破音 聲道完全閉合,空氣壓力閉合後增大,然後突然被釋放而產生的。

在語音抽樣上,主要還是根據nyqusit頻率進行取樣,人的語音頻帶在200hz--3800hz之間,可以認為最大頻率都小於4000hz,那麼使用低通濾波器過濾掉4000hz以上的頻率資訊,在每秒中取8000個樣本.這樣的取樣方法可以滿足會話的質量,但是對於唱歌或其他與會話差別較大的頻帶來講,這樣的取樣就會失敗,對於這種情況設定合理的截止值是很有必要的。

我們在通訊中使用有限的bit數來表示無窮的資料範圍,實際上,必須使用量化來進行資料歸類.由量化造成的損失我們稱之為量化噪音.解決這個問題最好的辦法就是使用更多的位元來進行量化,這樣就可以得到更細的粒度.

接下來,我們來看一下語音編碼器的種類.總體上來講,它一共有三種分類:波形編解碼器,源編解碼器,混合編解碼器.

波形編解碼器提供了高質量的輸出,而且實現很簡單,問題在於它使用了大量的頻寬,不是進行編碼比較合適的選擇.源編譯碼順口溜試圖使輸入的訊號符合於語音產生的數學模型.他們通常使用聲道的線性**過濾模型.用乙個清濁音標誌來代表使用的過濾器的激發訊號.而聲編解碼器以低位元速率執行,但是試圖形成合成的語音.使用較高的位元速率並不能提供任何的幫助.一般用於私人通訊系統或是軍事中.所以在編碼

語音的過程中,我們一般使用混合編解碼器.

g.711編碼標準

它是現在用的最普遍的編碼技術.它是目前全世界電路交換**網中使用的編碼技術.它以8000hz為取樣頻率,如果使用編一量化的方式,話音中通常的訊號層次的每乙個樣本需要用12位元來表示,這樣就有96kbps的位元率,如果用不統一量化模式,就可以達到64kbps的位元速率,這樣就可以進行流暢的語音傳輸互動了.

g.711的mos等級在4.3左右,所以質量就相當不錯了,但是問題在於它需要64kbps的頻寬,如果能再小的話,那就更理想了.

在g.711中pcm編解碼器把各個樣本傳輸到遠端終端,由於語音變化的速度比較慢,所以從先前的樣本中**出當前的樣本的可能性是很大的,這樣我們就可以通過樣本**值與實際樣本之差進行編碼,這樣的技術被稱為差分pcm(dpcm).

在有了dpcm的模型之後,我們還有乙個更為先進一些的模型: 自適音訊脈衝編碼(adpcm),adpcm是由以前的樣本資訊通過語音的變化科研部中提取出公共資訊作為**值.在adpcm上最主要的標準就是.726.pcm與adpcm都沒有演算法上的時延,所以可以進行實時的編譯碼.

更加複雜的編碼器有分析-綜合編解碼器(abs codecs)比如g.728 ld-celp,它實現了乙個濾波器,它包括乙個語音學向量的編碼本,每個向量包括一系列元素.這些元素代表激發訊號的不同特徵.所以這時語音頻號傳輸的內容就是一系列的濾波器係數,增益以及指向選定激發向量的指標.這樣在解碼器端就可以精確進行訊號的重組了.而ld-celp則是由5個樣本決定與之最匹配的編碼本向量的濾波器係數,通過這樣的方式,g.728可以把位元速率降低到16kbps以下.

g.723.1 acelp

g.723.1定義了一種同時支援兩種速率的語音編碼方法,分別是6.3kbps以及5.3kbps. 編碼器取出輸入訊號, 然 後進行標準的pcm量化,形成16位的訊號,接下來編碼器在240個樣本構成的塊或幀上操作.這樣每個幀就對應到30ms的語音資料.加上乙個7.5ms的前瞻,這樣的話,一共得到的時延是37.5ms. 這樣需要進行傳輸的資料有**係數,增益係數,以及激發編碼本索引值.

在通話的過程中總會有靜默期,在此時通過不以傳語音的同樣速率傳靜音來節約頻寬.g.723.1 annex中提供了這樣的一種方法.使用sid靜音描述符來進行標記.

g.723.1的mos的值大約在3.8左右.

g.729

它使用10ms為幀長,加上5ms的前瞻,這樣的話,時延只有15ms,比起g.723.1就小很多了,而且還提出了語音活動檢測,不連續傳輸和補償噪音等再生的建議.它的mos值大約為4.0

當然對於像cdma,g**這樣的特定網路下,有特定的編解碼器,不再多講.

從編碼技術上講,音訊編碼的內容很多,且看以後需不需要再專門花一些時間來看看前人是怎麼編碼語音的再寫下文.

c 學習筆記第二部分

part 2 一 陣列 指標 在c 中的陣列std string str string是std類裡面的乙個物件 這個語句就是命名乙個陣列名字叫做str 2.c 允許指標群 p,就是多個指標有同樣的值 int p1 myint int p2 myint c 支援無型別 void 指標,就是沒有被宣告為...

linux筆記第二部分

其實我只是想記錄下自己的學習軌跡,順便讓自己的部落格裡面稍微有點東西。之前筆記都是儲存在evernote上,因為是普通使用者,貌似不能共享。就拷過來了。總之這是第二部分 linux磁碟及檔案系統管理以及如何獲取幫助 linux 08磁碟基本概念 linux 09使用fdisk進行磁碟管理 1.fdi...

Web API 第二部分

web api 第二部分 元素偏移量 offset element.offsettop element.offsetleft element.offsetwidth 可以得到元素的大小 寬度和高度 是包含padding border width element.offsetheight elemen...