JAVA音視頻解決方案----音頻基礎知識

序言

     參考2個博客地址:

  1. https://blog.csdn.net/byxdaz/article/details/80703970
  2. https://www.jianshu.com/p/f56114df9c0b

概念

       從信息論的觀點來看,描述信源的數據是信息和數據冗餘之和,即:數據=信息+數據冗餘。音頻信號在時域和頻域上具有相關性,也即存在數據冗餘。將音頻作爲一個信源,音頻編碼的實質是減少音頻中的冗餘。

        擬信號是可以聽見的聲音經過音頻線或話筒的傳輸都是一系列的模擬信號,模擬信號是可以聽見的。而數字信號就是用一堆數字記號(二進制1和0)來記錄聲音,而不是用物理手段來保存信號,實際上我們聽不到數字信號。

        比較一下模擬時代的錄音製作與數碼時代的區別:模擬時代是把原始信號以物理方式錄製到磁帶上(當然在錄音棚裏完成),然後加工、剪接、修改,最後錄製到磁帶、LP等廣大聽衆可以欣賞的載體上。這一系列過程全是模擬的,每一步都會損失一些信號,到了聽衆手裏自然是差了好遠,更不用說什麼HI-FI(高保真)了。數碼時代是第一步就把原始信號錄成數碼音頻資料,然後用硬件設備或各種軟件進行加工處理,這個過程與模擬方法相比有無比的優越性,因爲它幾乎不會有任何損耗。對於機器來說這個過程只是處理一下數字而已,當然丟碼的可能性也有,但只要操作合理就不會發生。最後把這堆數字信號傳輸給數字記錄設備如CD等,損耗自然小很多。

 

音頻處理流程

        模擬信號經過->採樣->量化->編碼->數字信號.

        現實生活中,我們聽到的聲音都是時間連續的,我們把這種信號叫模擬信號。模擬信號(連續信號)需要量化成數字信號(離散的、不連續的信號)以後才能在計算機中使用。如下圖所示量化過程分爲5個步驟:

  1.  模擬信號: 現實生活中的聲音表現爲連續的、平滑的波形,其橫座標爲時間軸,縱座標表示聲音的強弱。
  2.  採樣: 按照一定的時間間隔在連續的波上進行採樣取值,如下圖所示取了10個樣。
  3.  量化: 將採樣得到的值進行量化處理,也就是給縱座標定一個刻度,記錄下每個採樣的縱座標的值。
  4.  編碼: 將每個量化後的樣本值轉換成二進制編碼。
  5.  數字信號: 將所有樣本二進制編碼連起來存儲在計算機上就形成了數字信號。

 

採樣(sample)

       數碼音頻系統是通過將聲波波形轉換成一連串的二進制數據來再現原始聲音的(原始聲音是模擬信號),實現這個步驟使用的設備是模/數轉換器(A/D轉換器,或者ADC,或者analog to digital convert)。它以每秒上萬次的速率對聲波進行採樣,每一次採樣都記錄下了原始模擬聲波在某一時刻的狀態,稱之爲樣本將一串的樣本連接起來,就可以描述一段聲波了,把每一秒鐘所採樣的數目稱爲採樣頻率或採率,單位爲HZ(赫茲)。採樣頻率越高所能描述的聲波頻率就越高。採樣率決定聲音頻率的範圍(相當於音調),可以用數字波形表示。以波形表示的頻率範圍通常被稱爲帶寬。要正確理解音頻採樣可以分爲採樣的位數和採樣的頻率。

 

採樣率(sample rate)

     單位時間內對媒體對象的採樣次數,單位Hz。採樣頻率是指錄音設備在一秒鐘內對聲音信號的採樣次數,採樣頻率越高聲音的還原就越真實越自然。在當今的主流採集卡上,採樣頻率一般共分爲 22.05KHz、44.1KHz(44100Hz)、48KHz三個等級,22.05 KHz只能達到FM廣播的聲音品質,44.1KHz則是理論上的CD音質界限,48KHz則更加精確一些。對於高於48KHz的採樣頻率人耳已無法辨別出來了,所以在電腦上沒有多少使用價值。
  5kHz的採樣率僅能達到人們講話的聲音質量。
  11kHz的採樣率是播放小段聲音的最低標準,是CD音質的四分之一。
  22kHz採樣率的聲音可以達到CD音質的一半,目前大多數網站都選用這樣的採樣率。
  44kHz的採樣率是標準的CD音質,可以達到很好的聽覺效果。

 

採樣位數(採樣精度)

       一個採樣用多少個bit存放,常用的是16bit(這就意味着上述的量化過程中,縱座標的取值範圍是0-65535,聲音是沒有負值的)。

       電腦中的聲音文件是用數字0和1來表示的。所以在電腦上錄音的本質就是把模擬聲音信號轉換成數字信號。反之,在播放時則是把數字信號還原成模擬聲音信號輸出。採樣位數可以理解爲採集卡處理聲音的解析度。這個數值越大,解析度就越高,錄製和回放的聲音就越真實。採集卡的位是指採集卡在採集和播放聲音文件時所使用數字聲音信號的二進制位數。採集卡的位客觀地反映了數字聲音信號對輸入聲音信號描述的準確程度。8位代表2的8次方0~256,16 位則代表2的16次方-32768~32767。

 

通道數(channel)

       分爲單聲道mono;立體聲stereo。當然還存在更多的通道數。舉個列子,聲道多,效果好,兩個聲道,說明只有左右兩邊有聲音傳過來,四聲道,說明前後左右都有聲音傳過來

        PCM中的聲音數據沒有被壓縮,如果是單聲道的文件,採樣數據按時間的先後順序依次存入。如果是雙聲道的文件,採樣數據按時間先後順序交叉的存入,比如:左聲道數據、右聲道數據、左聲道數據、右聲道數據…。

 

比特率(bitrate)

    也叫碼率。針對編碼格式,表示壓縮編碼後每秒的音頻數據量大小。計算公式:比特率 = 採樣率 x 採樣精度 x 聲道數。單位kbps,這裏的k爲1000

 

有損和無損

       根據採樣和量化的過程可知,音頻編碼最多隻能做到無限接近自然界的信號,至少目前的技術還不可能將其完全一樣。這是因爲自然界的信號是連續的,而音頻編碼後的值是離散的。因此,任何數字音頻編碼方案都是有損的,這也就意味着任何的音頻都不可能完全還原出自然界的聲音。
  在計算機應用中, PCM編碼能夠達到最高保真水平。它已經被廣泛地應用於素材保存及音樂欣賞,包括CD、DVD以及 WAV文件等等。因此,PCM約定俗成了無損編碼,但是這並不意味着PCM就能夠確保信號絕對保真,PCM也只能做到最大程度的無限接近。

 

音頻傳輸

       這裏主要是指網絡傳輸,通過網絡把音頻數據傳給對方。語音和音樂兩種場景下有明顯的區別。對於語音來說,實時性要求很高,主要用RTP/UDP做承載,由於UDP是不可靠傳輸,會丟包亂序等,影響語音質量,所以要採取相應的措施,主要有PLC(丟包補償)、FEC(前向糾錯)、重傳、jitterbuffer等。[email protected]
對於音樂來說,以前是播放本地音樂文件,近些年隨着網絡帶寬的加大,可以播放雲端的音樂文件了。播放時要把音樂文件傳給播放器,一般是邊播放邊下載,播放音樂對實時性要求不高,一般用HTTP/TCP做承載,也就不存在丟包亂序等問題了。

 

音頻編碼

       根據編碼方式的不同,音頻編碼技術分爲如下三種.一般來說,波形編碼的話音質量高,但編碼速率也很高;參數編碼的編碼速率很低,產生的合成語音的音質不高;混合編碼使用參數編碼技術和波形編碼技術,編碼速率和音質介於它們之間。

  1. 波形編碼
  2. 參數編碼
  3. 混合編碼

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章