白話音訊1-音訊格式

音訊本身涉及到的內容很多很多,例如音訊編碼壓縮、音訊音效處理、音訊分離,如果是涉及到編曲的音樂方面的內容又是一門很大的內容,這麼多的內容我一直在想是否能寫一些針對初學者和普通人能理解能看懂的文章,從而能對基礎的一些音訊知識有一些瞭解,而不用去看那些艱深的音訊技術資料或訊號處理類的文章。

鑑於此,本人就嘗試一點點來寫一些關於音訊的內容,文筆有限,希望對讀者有所幫助,不明白的也可以隨時評論,我會盡量用簡單的語言來回答大家。

由於是白話音訊,所以涉及的內容不會太複雜,也嘗試用大白話容易理解的語句來寫,儘量能幫大家解釋清楚一些基本的概念和知識。

這麼多的內容,從哪裡開始呢? 我也不想象教材一樣從一個離大家很遠的音訊訊號這類很高深的內容講起,就從我們大家熟知的mp3和aac音樂來講起,然後一點點地展開,希望大家能從最熟悉的內容來了解。

音訊格式

大家最熟悉的音樂格式估計就是mp3或aac了,在過去mp3還泛指mp3播放器,那mp3這種究竟是什麼檔案呢?

其實,mp3是一種音訊的壓縮技術,它用一種特殊的處理方法把這些內容變得更小更易存放,和大家平時在電腦上壓縮文件一樣,在壓縮前很大,但壓縮後就變小了,就更容易存放;而為了方便記憶和標識這種檔案,所以檔案的字尾名就為mp3了;(注:mp全稱是mpeg的組織,而mp3是mpeg1的第三層壓縮標準layer3);

以為類推,aac也是一種壓縮技術,只是用了與mp3不同的處理方法,它的處理方法更優秀,可以把音訊內容壓得更小(同等音質下);

好了,你肯定馬上會想到現在常用的m4a,一定會說那m4a也是一種壓縮演算法。 那你就錯了,m4a其實就是音訊檔案的一種標識,雖然同為字尾名,但它不是標識的壓縮的方法,而是打包這個音訊的方法,可能你有點迷糊了,我再仔細解釋一下;

音訊檔案的字尾名一般有兩種命名方式,一種是以該音訊檔案的壓縮演算法來命名的,例如我們熟知的mp3和aac; 另一種則是以該音訊檔案的打包格式來命名的,如m4a

。 什麼是以音訊檔案的打包格式來命名呢? 其實簡單的說, 就是為這個音訊檔案穿一層“制服”, 這個制服名就是m4a,表示這個音訊檔案是屬於mp4這個家族的,而且是這個家話的音訊格式檔案,翻譯過來就是mp4格式裡的audio,簡稱下來就是m4a了; 那m4a是“制服”名字,那個這音訊裡用的壓縮演算法又是什麼呢? m4a的話,一般都用aac的壓縮形式,所以在這個m4a的檔案裡,裡面是用的aac的壓縮方法儲存的檔案;

講到這裡,那你可能要問,為什麼不用壓縮演算法來命名,而非要穿一層“制服”呢?這個我說一點我的看法吧,不代表標準答案!

一方面,音訊格式分為

流式的音訊格式

或者

有檔案頭描述資訊的音訊格式

,而這一層“制服”就方便把不同的壓縮格式的音訊打包起來,方便解析或標識; 這裡又引入新概念了,我來解釋一下:流式的音訊格式,就是每一小段音訊(專業術語叫:音訊幀,一般在20ms左右),它都有一個音訊頭資訊(專業術語叫:幀頭),這個頭資訊就是描述了這一幀的基本資訊或同步資訊,使得即使中間掉了,那在解碼這小段音訊時也不會失敗,能重新開始; 而有檔案頭描述資訊的音訊格式,就是所有的音訊解碼資訊都在這個最前面的音訊頭裡,如果沒有這個頭,那從後面的音訊資料去解碼就會失敗! 例如:mp3和aac就是流式的音訊格式,它們可以從任意一幀解碼(注:aac也分兩種,一種是流式有ADTS頭的,一種沒有ADTS頭的也必須在頭資訊裡獲取解碼的一些基礎資訊), 而未壓縮過的wav檔案則是非流式的有檔案頭資訊的,要解碼wav必須要解碼頭資訊(注:頭資訊裡必須有哪些資訊,我在後面會講,這裡你就嘗試理解為一把鑰匙,有了這把鑰匙你才能開啟門,才能從對應的門裡取出音訊內容來)

另一方面,

“制服”其實是容器,這個容器裝什麼樣的內容不重要

,按這個容器的“規矩”來存放這些內容更重要,所以同一個字尾名的音訊檔案可能就是滿足同一種存放規矩的音訊內容,而這個容器中的音訊內容是怎麼壓縮得到的,這種檔案格式不關心,這種檔案字尾只關心標準和規矩; 其實,我們熟知的mp4就是一種容器格式,在mp4檔案裡的音影片可以是很多不同的編碼器壓縮出來的!

好了,這裡我又要深入了!上面從mp3,aac,m4a這三種我們常見的音訊格式解釋了音訊壓縮演算法和音訊格式名的命名,現在我要再深入講一些其它的音訊格式了!

mp3,aac,m4a這些其實是我們聽“音樂”時經常遇到的格式,這種檔案大部分用於音樂方面的壓縮,它表示的頻率範圍寬(頻率後面的我還要細講,此時你可以認為就是我們人耳聽到的音訊很豐富,有很低沉的,也有很高很尖的一些聲音),而現實中,還有一些音訊格式大部分用於傳遞我們人的說話資訊(專業術語叫:語音),而對於語音的壓縮處理方法又有很多,而這些方法一般最早是運用在“電話”上面,這類壓縮演算法的原理和壓縮音樂有所不同,你可以這樣理解:

音樂的壓縮方法,一般是根據它的形狀(專業術語:波形,就是在時間軸上有高有低的一些音量線)來壓縮,這樣的壓縮可以保留很多細節,但壓縮率不是很高(專業術語:波形編碼),這樣的壓縮基本上保留了原來的音訊大部分的東西; 而語音的壓縮方法,則是根據它的特徵(專業術語:音訊特徵,音訊引數,提取你的音色或音訊特徵資訊)來壓縮,由於只提取了特徵,比如你的音調音色這些,所以這個你可以認為是我在克隆你的DNA, 用你的DNA資訊來重新恢復你,這樣這個新的語音其實不是原來的了,是克隆仿製出來的,但卻很像原來的語音(專業術語:引數編碼)

好了,解釋完了壓縮的演算法(波形編碼,引數編碼),那我們的語音的引數編碼的音訊有哪些呢,例如g729, opus(語音編碼模式),現在可能大家熟知的就是opus了,還有微信語音用的amr其實在低位元速率的語音裡用的也是引數編碼; 用這種主要就是傳輸快,低佔用空間;

好了,關於音訊格式的一些很基本的,普通人需要理解和掌握的就這麼多了,如果有不清楚或需要了解更多細節的同學,可以在評論區留言,我儘量給大家滿意的回答!

如果想了解一些常用的音訊格式的,可以到XAudioPro的官方網站進去後,在“音訊轉碼”頁面檢視一些查用的音訊格式, 嘗試用不同的格式轉碼,聽聽不同的壓縮方法和不同的設定下音質有哪些不同?

XAudioPro官方網址: www。xaudiopro。com