學(xué)習(xí)這篇文章之前,你如果有計(jì)算機(jī)相關(guān)的專(zhuān)業(yè)肯定是更好的鸽扁,畢竟會(huì)涉及到一些專(zhuān)業(yè)術(shù)語(yǔ),例如信號(hào)等镶骗?
有沒(méi)有人覺(jué)得很奇怪桶现,計(jì)算機(jī)是如何存儲(chǔ)到計(jì)算機(jī)的呢?如果你有基礎(chǔ)鼎姊,你應(yīng)該知道聲音屬于一種模擬信號(hào)骡和,具體化就是我們課上學(xué)的那些三角函數(shù)等,但是我們計(jì)算機(jī)存儲(chǔ)的只能是二進(jìn)制編碼吧相寇,這個(gè)大家應(yīng)該了解慰于,那么是如何將聲音這種模擬信號(hào)轉(zhuǎn)換成二進(jìn)制呢,這里有個(gè)概念叫做轉(zhuǎn)換唤衫,也就是將模擬信號(hào)(Analog Signal) 轉(zhuǎn)成數(shù)字信號(hào)(Digital Signal)進(jìn)行存儲(chǔ)婆赠。這一個(gè)過(guò)程,我們稱(chēng)為音頻數(shù)字化
- 模擬信號(hào):模擬信號(hào)稱(chēng)為連續(xù)信號(hào)佳励,它在一段連續(xù)的時(shí)間范圍內(nèi)可以在任意瞬間呈現(xiàn)為任意數(shù)值休里。
- 數(shù)字信號(hào):自變量是離散的、因變量也是離散的信號(hào)赃承,這種信號(hào)的自變量用整數(shù)表示妙黍,因變量用有限數(shù)字中的一個(gè)數(shù)字來(lái)表示。
脈沖編碼調(diào)制(PCM,Pulse Code Modulation)
這個(gè)概念我是從大學(xué)的信號(hào)與系統(tǒng)上面接觸的瞧剖,當(dāng)時(shí)候可以是說(shuō)聽(tīng)說(shuō)到一臉蒙蔽的拭嫁,pcm屬于音頻數(shù)字化的一種常見(jiàn)技術(shù)方案,里面涉及到幾個(gè)過(guò)程抓于,分別是采樣->量化->編碼做粤,具體地說(shuō),采樣就是把輸入的模擬信號(hào)按適當(dāng)?shù)臅r(shí)間間隔得到各個(gè)時(shí)刻的樣本值.量化是把經(jīng)采樣測(cè)得的各個(gè)時(shí)刻的值用二進(jìn)碼制來(lái)表示捉撮,編碼則是把量化生成的二進(jìn)制數(shù)排列在一起形成順序脈沖序列
采樣:在某些特定的時(shí)刻對(duì)模擬信號(hào)進(jìn)行測(cè)量叫做采樣怕品,得到的信號(hào)稱(chēng)為離散時(shí)間信號(hào)
采樣率:每秒采集的樣本數(shù)量,稱(chēng)為采樣率(采樣頻率呕缭,采樣速率堵泽,Sampling Rate),eg 20.1Hz表示1秒鐘采集201000個(gè)樣本修己,采樣頻率最直觀的影響是什么恢总?是影響聲音的的評(píng)率范圍表現(xiàn)力,采樣評(píng)率越高睬愤,能表現(xiàn)的評(píng)率范圍就越大片仿。44.1KHz采樣頻率,可以表現(xiàn)的頻率范圍是0Hz-22050Hz尤辱;48KHz采樣頻率可以表現(xiàn)的頻率范圍就是0Hz-24000Hz砂豌;96KHz采樣頻率可以表現(xiàn)的頻率范圍是0Hz-48000Hz厢岂。人耳能聽(tīng)到的平均頻率范圍,大概是20Hz-20000Hz阳距。
采樣定理:采樣定理
根據(jù)(奈奎斯特–香農(nóng)采樣定理塔粒,Nyquist-Shannon sampling theorem)得知:只有當(dāng)采樣率高于聲音信號(hào)最高頻率的**2**倍時(shí),才能把采集的聲音信號(hào)唯一地還原成原來(lái)的聲音筐摘。人耳能夠感覺(jué)到的最高聲音頻率為20000Hz卒茬,因此為了滿足人耳的聽(tīng)覺(jué)要求,需要至少每秒進(jìn)行40000次采樣(40kHz采樣率)咖熟。這就是為什么常見(jiàn)的CD的采樣率為44.1kHz圃酵。電話、無(wú)線對(duì)講機(jī)馍管、無(wú)線麥克風(fēng)等的采樣率是8kHZ
- 量化(Quantization):將每一個(gè)采樣點(diǎn)的樣本值數(shù)字化
- 位深度(采樣精度郭赐,采樣大小,Bit Depth):使用多少個(gè)二進(jìn)制位來(lái)存儲(chǔ)一個(gè)采樣點(diǎn)的樣本值确沸。位深度越高捌锭,表示的振幅越精確。常見(jiàn)的CD采用16bit的位深度罗捎,能表示65536(216)個(gè)不同的值舀锨。DVD使用24bit的位深度,大多數(shù)電話設(shè)備使用8bit的位深度宛逗。另外我們常見(jiàn)的16Bit(16比特)坎匿,可以記錄大概96分貝的動(dòng)態(tài)范圍。那么雷激,您可以大概知道替蔬,每一個(gè)比特大約可以記錄6分貝的聲音。同理屎暇,20Bit可記錄的動(dòng)態(tài)范圍大概就是120dB承桥;24Bit就大概是144dB。
假如根悼,我們定義0dB為峰值凶异,那么聲音振幅以向下延伸計(jì)算,那么挤巡,CD音頻可的動(dòng)態(tài)范圍就是“-96dB~0dB剩彬。”矿卑,依次類(lèi)推喉恋,24Bit的HD-Audio高清音頻的的動(dòng)態(tài)范圍就是“-144dB~0dB。”轻黑。由此可見(jiàn)糊肤,位深度較高時(shí),有更大的動(dòng)態(tài)范圍可利用氓鄙,可以記錄更低電平的細(xì)節(jié)
綜合上面的位深度和采樣馆揉,可以看到一些這樣的基本參數(shù)概念
16Bit 44.1KHz,代表這個(gè)數(shù)字音頻能夠表現(xiàn)“96dB的動(dòng)態(tài)范圍”和“0赫茲-22050赫茲”的頻率范圍抖拦;
24Bit 48KHz把介,代表這個(gè)數(shù)字音頻能夠表現(xiàn)“144dB的動(dòng)態(tài)范圍”和“0赫茲-24000赫茲”的頻率范圍。
- 編碼將采樣和量化后的數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)成二進(jìn)制碼流蟋座。
擴(kuò)展知識(shí)
聲道(Channel)
- 單聲道(mono):信號(hào)一次產(chǎn)生一組聲波數(shù)據(jù)拗踢。
- 雙聲道(stereo):一次產(chǎn)生兩組聲波數(shù)據(jù)。雙聲道在硬件中占有兩條線路向臀,一條是左聲道巢墅,一條是右聲道。
立體聲不僅音質(zhì)券膀、音色好君纫,而且能產(chǎn)生逼真的空間感。但是立體聲數(shù)字化后所占的空間比單聲道多一倍芹彬。
以CD音質(zhì)為例蓄髓,量化格式為16bite,采樣率為44100舒帮,聲道數(shù)為2会喝。這些信息描述CD音質(zhì)。那么可以CD音質(zhì)數(shù)據(jù)玩郊,比特率bit/s(單位:bps):
44100 * 16 * 2 = 1411.2Kbps
那么一分鐘的,這類(lèi)CD音質(zhì)數(shù)據(jù)需要占用存儲(chǔ)空間:
1411.2Kbps* 60 /8/1024 = 10.34MB肢执,可以看出一分鐘接近10M,這個(gè)用戶體驗(yàn)不太友好译红,如果又想在不改變音頻石長(zhǎng)的前提预茄,又要降低音頻數(shù)據(jù)的大小,我們可以考慮這兩種方法:1.降低采樣率侦厚,2.壓縮耻陕。
但是如果降低采樣率,通過(guò)上面的采樣率深度圖可以看出刨沦,會(huì)導(dǎo)致音頻質(zhì)量下降诗宣,用戶體驗(yàn)變差,因此首選壓縮方案
比特率
- 比特率(Bit Rate),指單位時(shí)間內(nèi)傳輸或處理的比特?cái)?shù)量已卷,比特每秒(bit/s或bps)梧田,還有:千比特每秒(Kbit/s或Kbps)、兆比特每秒(Mbit/s或Mbps)侧蘸、吉比特每秒(Gbit/s或Gbps)裁眯、太比特每秒(Tbit/s或Tbps)。
采樣率44.1kHZ讳癌、位深度16bit的立體聲PCM數(shù)據(jù)的比特率是多少穿稳?
pcm比特率 = 采樣率 * 位深度 * 聲道數(shù) = 1411.2Kbps,通常晌坤,采樣率逢艘、位深度越高,數(shù)字化音頻的質(zhì)量就越好骤菠。從比特率的計(jì)算公式可以看得出來(lái):比特率越高它改,數(shù)字化音頻的質(zhì)量就越好。
信噪比(Signal-to-noise ratio,SNR,S/N,信噪比)
指信號(hào)與噪音的比例商乎,用于比較信號(hào)的強(qiáng)度與背景噪音的強(qiáng)度央拖,以分貝(db)為單位,位深度限制了信噪比的最大值
位深度 | 信噪比 |
---|---|
4 | 24.08 |
8 | 48.16 |
11 | 66.22 |
12 | 72.24 |
16 | 96.33 |
18 | 108.37 |
20 | 120.41 |
24 | 144.49 |
32 | 192.65 |
48 | 288.99 |
64 | 385.32 |
音頻編碼解碼
編碼
PCM數(shù)據(jù)是未經(jīng)壓縮的原始音頻數(shù)據(jù)鹉戚,為了便于存儲(chǔ)和傳輸鲜戒,一般會(huì)使用某種音頻編碼對(duì)其進(jìn)行編碼壓縮,然后再存成某種音頻文件格式
CD音質(zhì)的數(shù)據(jù)采樣抹凳,每分鐘需要存儲(chǔ)空間為10.34MB遏餐。從存儲(chǔ)的角度或者網(wǎng)絡(luò)實(shí)時(shí)傳播的角度,這個(gè)數(shù)據(jù)量都是太大了赢底,對(duì)于存儲(chǔ)和傳輸都是非常具有挑戰(zhàn)的失都。所以我們需要通過(guò)壓縮編碼。
壓縮編碼的基本指標(biāo)就是 壓縮比幸冻,壓縮比 通常小于1(如果等于或者大于1嗅剖,是不是就失去的壓縮的意義了,壓縮目的就是為了減少數(shù)據(jù)體量)嘁扼。壓縮算法分為2種信粮,有損壓縮 和 無(wú)損壓縮。
無(wú)損壓縮
- 解壓后可以完全還原出原始數(shù)據(jù)
- 壓縮比小趁啸,體積大
有損壓縮
- 解壓后不能完全還原出原始數(shù)據(jù)强缘,會(huì)丟失一部分信息
- 壓縮比大,體積小
- 壓縮比越大不傅,丟失的信息就越多旅掂,還原后的信號(hào)失真就會(huì)越大
注意:對(duì)于有損壓縮音頻,不同的壓縮算法访娶,及時(shí)比特率相等商虐,也會(huì)導(dǎo)致音質(zhì)結(jié)果完全不同
典型代表:96kbps的WMA音頻格式的音質(zhì)明顯要比96kbps的MP3音質(zhì)好。為什么會(huì)這樣呢?因?yàn)椴煌膲嚎s算法秘车,對(duì)數(shù)據(jù)的利用率不同而造成的差異典勇。再舉例,假如MP3壓縮至48kbps以下叮趴,已經(jīng)慘不忍睹割笙,而如果是AAC音頻格式,同樣是48kbps的位速下眯亦,音質(zhì)明顯比MP3好
而對(duì)于無(wú)損壓縮音頻伤溉,即使比特率完全不同,但是最后的音質(zhì)是相同的
比如把同一個(gè)WAV文件分別壓縮成FLAC格式和APE格式妻率,得到的文件乱顾,位速是不太相同的,但是音質(zhì)卻是一樣的宫静。即使是同一種格式糯耍,壓縮級(jí)別不同,位速也完全不同囊嘉,可是最后的結(jié)果温技,音質(zhì)還是一樣(但編碼解碼時(shí),CPU占用率不同扭粱,編碼時(shí)間也不同)舵鳞。
壓縮編碼的原理實(shí)際上就是壓縮冗余的信號(hào)。冗余信號(hào)就是指不能被人耳感知的信號(hào)琢蛤。包括人耳聽(tīng)覺(jué)范圍之外的音頻信號(hào)以及被掩蓋掉的音頻信號(hào)
解碼
前面經(jīng)過(guò)將pcm數(shù)據(jù)編碼之后蜓堕,如果這個(gè)時(shí)候需要播放音頻的話,得先解碼(解壓縮)出pcm數(shù)據(jù)博其,然后再進(jìn)行播放
音頻編碼和文件格式
編碼分類(lèi)
波形編碼
波形編碼:不利用生成音頻信號(hào)的任何參數(shù)套才,直接將時(shí)間域信號(hào)變成數(shù)字信號(hào),使重構(gòu)的語(yǔ)音波形極可能與原始語(yǔ)音信號(hào)的波形性質(zhì)一致慕淡,波形編碼的基本原理:在時(shí)間軸上對(duì)模擬語(yǔ)音信號(hào)按一定的速率抽樣背伴,然后將幅度樣本分層量化,并用代碼表示優(yōu)點(diǎn):波形編碼方法簡(jiǎn)單峰髓,易于實(shí)現(xiàn)傻寂,適應(yīng)能力強(qiáng)并且語(yǔ)音質(zhì)量好
缺點(diǎn):壓縮比相對(duì)比較低,導(dǎo)致較高的編碼率携兵。
參數(shù)編碼
參數(shù)編碼:從語(yǔ)音 波形信號(hào) 中提取生成語(yǔ)音的參數(shù)疾掰,使用這些參數(shù)通過(guò)語(yǔ)音生成模型重構(gòu)出語(yǔ)音,使重構(gòu)的語(yǔ)音信號(hào)盡可能地保持原始語(yǔ)音信號(hào)的語(yǔ)意徐紧。也就是說(shuō)静檬,參數(shù)編碼是把語(yǔ)音信號(hào)產(chǎn)生的數(shù)字模型作為基礎(chǔ)炭懊,然后求出數(shù)字模型的模型參數(shù),再按照這些參數(shù)還原數(shù)字模型拂檩,進(jìn)而合成語(yǔ)音侮腹。優(yōu)點(diǎn):編碼率較低,保密性好广恢。
缺點(diǎn):可能會(huì)失真比較大凯旋,音質(zhì)低呀潭。
混合編碼
混合編碼是指同時(shí)使用兩種或兩種以上的編碼方法進(jìn)行編碼钉迷。這種編碼方法克服了波形編碼和參數(shù)編碼的弱點(diǎn),并結(jié)合了波形編碼高質(zhì)量和參數(shù)編碼的低編碼率钠署,能夠取得比較好的效果糠聪。
注意:音頻文件格式并不等于音頻編碼,比如WAV是一種音頻文件格式谐鼎,但是不是一種編碼方式舰蟆,而FLAC即是一種文件格式,又是一種編碼
音頻編碼 | 無(wú)損壓縮 | 文件擴(kuò)展名 |
---|---|---|
Monkey's Audio | ? | .ape |
FLAC(Free Lossless Audio Codec) | ? | .flac |
ALAC(Apple Lossless Audio Codec | ? | .m4a/.caf |
MP3(MPEG Audio Layer III) | ? | .mp3 |
WMA(Windows Media Audio) | ? | .wma |
AAC(Advanced Audio Coding) | ? | .acc/.mp4/.m4a |
Vorbis | ? | .ogg |
Speex | ? | .spx |
Opus | ? | .opus |
Ogg | .ogg | |
WAV(Waveform Audio File Format) | .wav | |
AIFF(Audio Interchange File Format) | .aiff狸棍、.aif |
無(wú)損
- MonKey's Audio 是一種無(wú)損的音頻編碼和文件格式身害,文件擴(kuò)展名為.ape,壓縮率一般在55%左右
- FLAC(Free Lossless Audio Codec),是一種無(wú)損的音頻編碼和文件格式,文件擴(kuò)展名為.flac.雖然壓縮率稍微比不上MonKey's Audio草戈,但是FLAC技術(shù)更加先進(jìn)塌鸯,占用資源更低,有更多的平臺(tái)及硬件產(chǎn)品支持FLAC唐片。
- ALAC
ALAC(Apple Lossless Audio Codec)丙猬,是由Apple開(kāi)發(fā)的一種無(wú)損的音頻編碼,文件擴(kuò)展名為.m4a费韭、.caf茧球。
有損
MP3(MPEG Audio Layer III),是非常流行的一種有損音頻編碼和文件格式星持,文件擴(kuò)展名為.mp3抢埋。
WMA:WMA(Windows Media Audio),是由Microsoft開(kāi)發(fā)的音頻編碼和文件格式督暂,文件擴(kuò)展名為.wma羹令。包括4種類(lèi)型:
WMA:原始的WMA編解碼器,作為MP3的競(jìng)爭(zhēng)者损痰,屬于有損音頻編碼
WMA Pro:支持更多聲道和更高質(zhì)量的音頻福侈,屬于有損音頻編碼
WMA Lossless:屬于無(wú)損音頻編碼
WMA Voice:屬于有損音頻編碼
AAC:AAC(Advanced Audio Coding),是由Fraunhofer IIS卢未、杜比實(shí)驗(yàn)室肪凛、AT&T堰汉、Sony、Nokia等公司共同開(kāi)發(fā)的有損音頻編碼和文件格式伟墙,壓縮比通常為18:1
AAC被設(shè)計(jì)為MP3格式的后繼產(chǎn)品翘鸭,通常在相同的比特率下可以獲得比MP3更高的聲音質(zhì)量,是iPhone戳葵、iPod就乓、iPad、iTunes的標(biāo)準(zhǔn)音頻格式拱烁。
AAC編碼的文件擴(kuò)展名主要有3種:.acc:傳統(tǒng)的AAC編碼生蚁,使用MPEG-2 Audio Transport Stream(ADTS)容器
.mp4:使用了MPEG-4 Part 14的簡(jiǎn)化版即3GPP Media Release 6 Basic(3gp6)進(jìn)行封裝的AAC編碼
-
.m4a:為了區(qū)別純音頻MP4文件和包含視頻的MP4文件而由Apple公司使用的擴(kuò)展名
- Apple iTunes對(duì)純音頻MP4文件采用了.m4a文件擴(kuò)展名
- M4A的本質(zhì)和音頻MP4相同,故音頻MP4文件可以直接更改文件擴(kuò)展名為.m4a
Voris
Vorbis戏自,是由Xiph.Org基金會(huì)開(kāi)發(fā)的一種有損音頻編碼邦投。通常以O(shè)gg作為容器格式,所以常合稱(chēng)為Ogg Vorbis擅笔,文件擴(kuò)展名為.ogg志衣。Speex
Speex,是由Xiph.Org基金會(huì)開(kāi)發(fā)的一種有損音頻編碼和文件格式猛们,文件擴(kuò)展名為.spx念脯。Opus
Opus,是由Xiph.Org基金會(huì)開(kāi)發(fā)的一種有損音頻編碼和文件格式弯淘,文件擴(kuò)展名為.opus绿店。用以取代Vorbis和Speedx。經(jīng)過(guò)多次盲聽(tīng)測(cè)試耳胎,在任何給定的比特率下都比其他標(biāo)準(zhǔn)音頻格式具有更高的質(zhì)量惯吕,包括MP3、AAC怕午。
文件格式
Ogg
Ogg是一種多媒體文件格式废登,由Xiph.Org基金會(huì)所維護(hù),可以納入各式各樣的音視頻編碼(音頻郁惜、視頻都可以)堡距,文件擴(kuò)展名常為.ogg。
Ogg常用的音頻編碼有:有損壓縮:Speex兆蕉、Vorbis羽戒、Opus
無(wú)損壓縮:FLAC
未壓縮:PCM
-
WAV
WAV(Waveform Audio File Format),是由IBM和Microsoft開(kāi)發(fā)的音頻文件格式虎韵,擴(kuò)展名是.wav易稠,通常采用PCM編碼,常用于Windows系統(tǒng)中包蓝。WAV的文件格式如下圖所示驶社,前面有44
NumChannels: 聲道數(shù)
SampleRate:采樣率(Hz)
ByteRate:每秒多少個(gè)字節(jié)(Byte/s)
BitsPerSample:位深度
AIFF
AIFF(Audio Interchange File Format)企量,由Apple開(kāi)發(fā)的音頻文件格式,擴(kuò)展名是.aiff亡电、.aif届巩。跟WAV一樣,通常采用PCM編碼份乒,常用于Mac系統(tǒng)中恕汇。