1. 程式人生 > 其它 >音視訊基礎——音訊基礎知識

音視訊基礎——音訊基礎知識

技術標籤:音視訊pulseaudio

愛情只有落實到穿衣、吃飯、數錢、睡覺,這些實實在在的小事上,才可以長久

一、聲音的三要素

1. 音調

人耳對聲音高低的感覺稱為音調(也叫音訊)。音調主要與聲波的頻率有關。聲波的頻率高,則音調也高。當我們分別敲擊一個小鼓和一個大鼓時,會感覺它們所發出的聲音不同。小鼓被敲擊後振動頻率快,發出的聲音比較清脆,即音調較高;而大鼓被敲擊後振動頻率較慢,發出的聲音比較低沉,即音調較低。一般音訊 兒童>女生>男生。

人耳聽覺音訊範圍是20Hz-20000Hz(做音訊壓縮時不在這個範圍內的資料就可以砍掉)。

音調波形圖

圖1.音調波形圖(圖片來自慕課網)
2. 音量

也就是響度。人耳對聲音強弱的主觀感覺稱為響度。響度和聲波振動的幅度有關。一般說來,聲波振動幅度越大則響度也越大。當我們用較大的力量敲鼓時,鼓膜振動的幅度大,發出的聲音響;輕輕敲鼓時,鼓膜振動的幅度小,發出的聲音弱。
另外,人們對響度的感覺還和聲波的頻率有關,同樣強度的聲波,如果其頻率不同,人耳感覺到的響度也不同。

在這裡插入圖片描述

圖2.音量波形圖(圖片來自慕課網)
3. 音色

也就是音品。音色是人們區別具有同樣響度、同樣音調的兩個聲音之所以不同的特性,或者說是人耳對各種頻率、各種強度的聲波的綜合反應。音色與聲波的振動波形有關,或者說與聲音的頻譜結構有關。
音叉可產生一個單一頻率的聲波,其波形為正弦波。但實際上人們在自然界中聽到的絕大部分聲音都具有非常複雜的波形,這些波形由基波和多種諧波構成。諧波的多少和強弱構成了不同的音色。各種發聲物體在發出同一音調聲音時,其基波成分相同。但由於諧波的多少不同,並且各諧波的幅度各異,因而產生了不同的音色。

在這裡插入圖片描述

圖3.基波與諧波

二、音訊的量化與編碼

1.音訊的量化過程

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

1.1 模擬訊號

現實生活中的聲音表現為連續的、平滑的波形,其橫座標為時間軸,縱座標表示聲音的強弱。

1.2 取樣

按照一定的時間間隔在連續的波上進行取樣取值,如下圖所示取了10個樣。

實現這個步驟使用的裝置是模/數轉換器(A/D轉換器,或者ADC,或者analog to digital convert)取樣率決定聲音訊率的範圍(相當於音調)

1.3 量化

將取樣得到的值進行量化處理,也就是給縱座標定一個刻度,記錄下每個取樣的縱座標的值。

1.4 編碼

將每個量化後的樣本值轉換成二進位制編碼。

1.5 數字訊號

將所有樣本二進位制編碼連起來儲存在計算機上就形成了數字訊號。

在這裡插入圖片描述

2.量化的基本概念

2.1 取樣大小

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

2.2 取樣率

也就是取樣頻率(1秒取樣次數),一般取樣率有8kHz、16kHz、32kHz、44.1kHz、48kHz等,取樣頻率越高,聲音的還原就越真實越自然,當然資料量就越大。
模擬訊號中,人類聽覺範圍是20-20000Hz,如果按照44.1kHz的頻率進行取樣,對20HZ音訊進行取樣,一個正弦波取樣2200次;對20000HZ音訊進行取樣,平均一個正弦波取樣2.2次。

5kHz的取樣率僅能達到人們講話的聲音質量。
11kHz的取樣率是播放小段聲音的最低標準,是CD音質的四分之一。
22kHz取樣率的聲音可以達到CD音質的一半,目前大多數網站都選用這樣的取樣率。
44kHz的取樣率是標準的CD音質,可以達到很好的聽覺效果。

2.3 聲道數

為了播放聲音時能夠還原真實的聲場,在錄製聲音時在前後左右幾個不同的方位同時獲取聲音,每個方位的聲音就是一個聲道。聲道數是聲音錄製時的音源數量或回放時相應的揚聲器數量,有單聲道mono、雙聲道stereo、多聲道。

2.4 位元速率

也叫位元率,是指每秒傳送的bit數。單位為 bps(Bit Per Second),位元率越高,每秒傳送資料就越多,音質就越好。

位元速率計算公式:
位元速率 = 取樣率 * 取樣大小 * 聲道數

比如取樣率44.1kHz,取樣大小為16bit,雙聲道PCM編碼的WAV檔案:
位元速率=44.1hHz*16bit*2=1411.2kbit/s。
那麼錄製1分鐘的音樂的大小為(1411.2 * 1000 * 60) / 8 / 1024 / 1024 = 10.09M。

三、音訊壓縮技術

音訊壓縮主要包括2種方法:

3.1 消除冗餘資料

這種壓縮的主要方法是去除採集到的音訊冗餘資訊,這些被刪除掉的音訊訊號是沒法恢復的,所以稱為有失真壓縮。

冗餘資訊包括人類聽覺範圍之外的音訊訊號和被掩蔽掉的音訊訊號。什麼是被掩蔽的訊號呢?訊號的掩蔽分為頻域掩蔽和時域掩蔽。

3.1.1 頻域掩蔽效應

人類聽覺範圍是20-20000Hz,但這並不意味著只要是這個頻率範圍內的聲音都可以聽到,能否聽到還與聲音的分貝大小有關,有個分貝臨界值,高於這個臨界值的聲音才能聽到,低於這個臨界值的聲音就聽不到,在不同的頻率下這個臨界值是不一樣的。如下圖所示,橫座標為頻率,縱座標為分貝值,圖中的黑色曲線就是這個臨界值曲線,所以位於曲線下方的聲音是聽不到的。

還有一種情況,比如2個音調差不多的人同時說話,一個聲音很大,一個聲音很小,聲音小的會受到聲音大的影響,導致聲音小的無法被聽到。如下圖所示,紅色的柱子是一個很大分貝的聲音,它會產生掩蔽效應將與它頻率相近的小分貝的聲音掩蔽掉,紅柱子兩邊的藍色曲線就是它的掩蔽範圍曲線,紫色柱子都在它的掩蔽曲線覆蓋的範圍內,所以紫色柱子代表的聲音是聽不到的;而綠色柱子不在其範圍內,所以是可以聽到的。

在這裡插入圖片描述

3.1.2 時域掩蔽效應

除了同時發出的聲音之間有掩蔽現象之外,在時間上相鄰的聲音之間也有掩蔽現象,稱為時域掩蔽。時域掩蔽又分為超前掩蔽和滯後掩蔽,如下圖所示。產生時域掩蔽的主要原因是人的大腦處理資訊需要花費一定的時間。一般來說,超前掩蔽很短,只有大約5~20ms,而滯後掩蔽可以持續50~200ms。

在這裡插入圖片描述

3.2 哈夫曼無損編碼

將人類無法識別的聲音訊號刪除掉後,對剩餘的聲音訊號繼續進行壓縮編碼,經過這種壓縮後再還原時是可以復原到和原來一樣的資料的(當然,復原也只是復原到壓縮前的狀態,那些刪除的人類無法識別的部分是不能復原的),所以稱為無失真壓縮。

四、音訊編解碼器

4.1 常見音訊編解碼器

常見的音訊編解碼器包括OPUS、AAC、Vorbis、Speex、iLBC、AMR、G.711等。目前泛娛樂化直播系統採用rtmp協議,支援AAC和Speex。
效能上來看,OPUS > AAC > Vorbis,其它的逐漸被淘汰。
下圖為音訊編解碼器效能對比,橫座標是位元速率,縱座標是音訊的取樣大小等級劃分(比如取樣大小為8bit是窄帶音訊,取樣大小為16bit是寬頻音訊)。

縱軸是音訊質量(窄帶、寬頻、超寬頻、全帶、全帶立體聲),橫軸是碼流大小。

在這裡插入圖片描述

4.2 AAC編解碼器介紹

AAC(Advanced Audio Coding)編解碼器應用範圍特別廣,編解碼的音訊質量高保真,它出現的目的是取代mp3格式,因為mp3是有失真壓縮,對音訊質量有一定損耗,而AAC對於原始資料的損耗就會小很多,而且壓縮率很高。目前市面上90%以上的直播系統都是用的AAC(雖然OPUS效能最好,但是rtmp協議不支援OPUS)。

4.2.1 AAC常用規格

AAC目前常用的規格有 AAC LC、AAC HE V1、AAC HE V2。

AAC LC

AAC LC (Low Complexity) 是低複雜度,一般位元速率128kb/s。

AAC HE V1

AAC HE V1是在AAC LC基礎上加入了SBR(Spectral Band Replication)技術,也就是分頻複用,加入這種技術後使碼流變得更低,而且音質更好。比如按照44.1kHz取樣率,20Hz頻段一個正弦波取樣2200個,這太浪費了,而在20000Hz頻段一個正弦波取樣2.2次,取樣次數太少導致音質較差。採用SBR進行分頻處理,在低頻段降低取樣率,在高頻段提高取樣率,這樣既能降低位元速率又能提高音質。AAC HE V1一般位元速率為64kbt/s左右。

AAC HE V2

AAC HE V2在AAC HE V1的基礎上又增加了PS(Parametric Stereo)技術。也就是將立體聲雙聲道分別儲存,一個聲道的資料完整儲存,另一個聲道只儲存一些差異性的引數資訊,因為兩個聲道資訊相關性非常強,可以通過那些差異性引數來還原這個聲道的資訊。AAC HE V2一般位元速率為32kbt/s左右。

在這裡插入圖片描述

4.2.2 AAC格式

AAC的格式有ADIF和ADTS兩種

AAC ADIF(Audio Data Interchange Format)

這種格式的AAC檔案只在最開始的地方存有一個頭,頭裡麵包括取樣率、取樣大小、聲道數等資訊。每拿出一個音訊幀都用這個頭資訊來進行解析。它只能從開頭位置開始解碼,一般用於磁碟檔案中。

AAC ADTS(Audio Data Transport Stream)

這種格式的AAC檔案在每一個音訊幀的前面都有一個同步字,也就是加一個小的頭(7-9個位元組),所以它可以從任何位置開始解碼。它的優點就是進行流傳輸時每拿到一個音訊幀直接就可以進行解碼播放,缺點就是每個音訊幀都多出一個頭,所以相對於ADIF格式它會多出一些資料量。

五、音訊傳輸

這裡主要是指網路傳輸,通過網路把音訊資料傳給對方。語音和音樂兩種場景下有明顯的區別。

對於語音來說,實時性要求很高,主要用RTP/UDP做承載,由於UDP是不可靠傳輸,會丟包亂序等,影響語音質量,所以要採取相應的措施,主要有PLC(丟包補償)、FEC(前向糾錯)、重傳、jitterbuffer等。

對於音樂來說,以前是播放本地音樂檔案,近些年隨著網路頻寬的加大,可以播放雲端的音樂檔案了。播放時要把音樂檔案傳給播放器,一般是邊播放邊下載,播放音樂對實時性要求不高,一般用HTTP/TCP做承載,也就不存在丟包亂序等問題了。

六、音訊分析軟體

  1. 免費的音訊處理軟體Audacity:https://www.audacityteam.org/

  2. Sound Forge

    是能夠非常方便、直觀地實現對音訊檔案(wav檔案)以及視訊檔案(avi檔案)中的聲音部分進行各種bai處理,滿足從最普通使用者到最專業的錄音師的所有使用者的各種要求,所以一直是多媒體開發人員首選的音訊處理軟體之一。

  3. WavePad Audio Editor(WavePad音訊編輯器)

    是適用於Windows和Mac的音訊和音樂編輯器(也適用於iOS和Android)。 它允許使用者錄製並編輯音樂、錄音和其他聲音。作為一個編輯器,使用者可以在其中剪下、複製、貼上、刪除、插入、靜音和自動修剪錄音,然後在VST外掛和免費音訊庫的支援下新增增強、歸一化、均衡器、包絡線、混響、回聲、倒放等效果。

  4. Adobe Audition

    是美國Adobe Systems 公司 (前Syntrillium Software Corporation)開發的一款功能強大、效果出色的多軌錄音和音訊處理軟體。主要用於對MIDI訊號的處理加工,它具有聲音錄製、混音合成、編輯特效等功能。

  5. GoldWave

    是一個集聲音編輯、播放、錄製和轉換的音訊工具。它還可以對音訊內容進行轉換格式等處理。支援許多格式的音訊檔案,包括WAV、OGG、VOC、 IFF、AIFF、 AIFC、AU、SND、MP3、 MAT、 DWD、 SMP、 VOX、SDS、AVI、MOV、APE等音訊格式。

參考

https://www.jianshu.com/p/f56114df9c0b