波形聲音
波形聲音
波形聲音,是最常用的Windows多媒體特性。波形聲音設備可以通過麥克風捕捉聲音,並將其轉換為數值,然後把它們儲存到內存或者磁碟上的波形文件中,波形文件的擴展名是 .WAV。這樣,聲音就可以播放了。數字化的波形聲音是一種使用二進位表示的串列比特流,它遵循一定的標準或者規範編碼,其數據是按時間順序組織的,文件擴展名為“wav”。
在接觸波形聲音API之前,具備一些預備知識很重要,這些知識包括物理學、聽覺以及聲音進出計算機的程序。
波形聲音
正弦波有兩個參數-振幅(也就是一個周期中的最大振幅)和頻率。人已知振幅就是音量,頻率就是音調。一般來說人耳可感受的正弦波的範圍是從20Hz(每秒周期)的低頻聲音到20,000Hz的高頻聲,但隨著年齡的增長,對高頻聲音的感受能力會逐年退化。
人感受頻率的能力與頻率是對數關係而不是線性關係。也就是說,人感受20Hz到40Hz的頻率變化與感受40Hz到80Hz的頻率變化是一樣的。在音樂中,這種加倍的頻率定義為八度音階。因此,人耳可感覺到大約10個八度音階的聲音。鋼琴的範圍是從27.5 Hz到4186 Hz之間,略小於7個八度音階。
雖然正弦波代表了振動的大多數自然形式,但純正弦波很少在現實生活中單獨出現,而且,純正弦波並不動聽。大多數聲音都很複雜。
任何周期的波形(即,一個循環波形)可以分解成多個正弦波,這些正弦波的頻率都是整倍數。這就是所謂的Fourier級數,它以法國數學家和物理學家Jean Baptiste Joseph Fourier(1768-1830)的名字命名。周期的頻率是基礎。級數中其它正弦波的頻率是基礎頻率的2倍、3倍、4倍(等等)。這些頻率的聲音稱為泛音。基礎頻率也稱作一級諧波。第一泛音是二級諧波,以此類推。
正弦波諧波的相對強度給每個周期的波形唯一的聲音。這就是「音質」,它使得喇叭吹出喇叭聲,鋼琴彈出鋼琴聲。
人們一度認為電子合成樂器僅僅需要將聲音分解成諧波並且與多個正弦波重組即可。不過,事實證明現實世界中的聲音並不是這麼簡單。代表現實世界中聲音的波形都沒有嚴格的周期。樂器之間諧波的相對強度是不同的,並且諧波也隨著每個音符的演奏時間改變。特別是樂器演奏音符的開始位置-人稱作起奏(attack)-相當複雜,但這個位置又對人感受音質至關重要。
(Pulse Code Modulation)
聲音波形編輯工具
不壓縮數據就完成此功能的最常用方法稱作「脈衝編碼調製」(PCM:pulse code modulation)。PCM可用在光碟、數字式錄音磁帶以及Windows中。脈衝編碼調製其實只是一種概念上很簡單的處理步驟的奇怪代名詞而已。
利用脈衝編碼調製,波形可以按固定的周期頻率取樣,其頻率通常是每秒幾萬次。對於每個樣本都測量其波形的振幅。完成將振幅轉換成數字信號工作的硬體是模擬數字轉換器(ADC:analog-to-digital converter)。類似地,通過數字模擬轉換器(DAC:digital-to-analog converter)可將數字信號轉換回波形電子信號。但這樣轉換得到的波形與輸入的並不完全相同。合成的波形具有由高頻組成的尖銳邊緣。因此,播放硬體通常在數字模擬轉換器后還包括一個低通濾波器。此濾波器濾掉高頻,並使合成后的波形更平滑。在輸入端,低通濾波器位於ADC前面。
脈衝編碼調製有兩個參數:取樣頻率,即每秒內測量波形振幅的次數;樣本大小,即用於儲存振幅級的位數。與您想象的一樣:取樣頻率越高,樣本大小越大,原始聲音的複製品才更好。不過,存在一個提高取樣頻率和樣本大小的極點,超過這個極點也就超過了人類分辨聲音的極限。另外,如果取樣頻率和樣本大小過低,將導致不能精確地複製音樂以及其它聲音。
取樣頻率決定聲音可被數字化和儲存的最大頻率。尤其是,取樣頻率必須是樣本聲音最高頻率的兩倍。這就是「Nyquist頻率(Nyquist Frequency)」,以30年代研究取樣程序的工程師Harry Nyquist的名字命名。
以過低的取樣頻率對正弦波取樣時,合成的波形比最初的波形頻率更低。這就是所說的失真信號。為避免失真信號的發生,在輸入端使用低通濾波器以阻止頻率大於半個取樣頻率的所有波形。在輸出端,數字模擬轉換器產生的粗糙的波形邊緣實際上是由頻率大於半個取樣頻率的波形組成的泛音。因此,位於輸出端的低通濾波器也阻止頻率大於半個取樣頻率的所有波形。
聲音CD中使用的取樣頻率是每秒44,100個樣本,或者稱為44.1kHz。這個特有的數值是這樣產生的:
人耳可聽到最高20kHz的聲音,因此要攔截人能聽到的整個聲音範圍,就需要40kHz的取樣頻率。然而,由於低通濾波器具有頻率下滑效應,所以取樣頻率應該再高出大約百分之十才行。取樣頻率就達到了44kHz。這時,人要與視訊同時記錄數字聲音,於是取樣頻率就應該是美國、歐洲電視顯示格速率的整數倍,這兩種視訊格速率分別是30Hz和25Hz。這就使取樣頻率升高到了44.1kHz。
取樣頻率為44.1kHz的光碟會產生大量的數據,這對於一些應用程序來說實在是太多了,例如對於錄製聲音而不是錄製音樂時就是這樣。把取樣頻率減半到22.05 kHz,可由一個10 kHz的泛音來簡化複製聲音的上半部分。再將其減半到11.025 kHz就向人提供了5 kHz頻率範圍。44.1 kHz、22.05 kHz和11.025 kHz的取樣頻率,以及8 kHz都是波形聲音設備普遍支持的標準。
因為鋼琴的最高頻率為4186 Hz,所以您可能會認為給鋼琴錄音時,11.025 kHz的取樣頻率就足夠了。但4186 Hz只是鋼琴最高的基礎頻率而已,濾掉大於5000Hz的所有正弦波將減少可被複制的泛音,而這樣將不能精確地捕捉和複製鋼琴的聲音。
脈衝編碼調製的第二個參數是按位計算的樣本大小。樣本大小決定了可供錄製和播放的最低音與最高音之間的區別。這就是通常所說的動態範圍。
聲音強度是波形振幅的平方(即每個正弦波一個周期中最大振幅的合成)。與頻率一樣,人對聲音強度的感受也呈對數變化。
兩個聲音在強度上的區別是以貝爾(以電話發明人Alexander Graham Bell的名字命名)和分貝(dB)為單位進行測量的。1貝爾在聲音強度上呈10倍增加。1dB就是以相同的乘法步驟成為1貝爾的十分之一。由此,1dB可增加聲音強度的1.26倍(10的10次方根),或者增加波形振幅的1.12倍(10的20次方根)。1分貝是耳朵可感覺出的聲強的最小變化。從開始能聽到的聲音極限到讓人感到疼痛的聲音極限之間的聲強差大約是100 dB。
Windows同時支持8位和16位的樣本大小。儲存8位的樣本時,樣本以無正負號位元組處理,靜音將儲存為一個值為0x80的字元串。16位的樣本以帶正負號整數處理,這時靜音將儲存為一個值為0的字元串。
要計算未壓縮聲音所需的儲存空間,可用以秒為單位的聲音持續時間乘以取樣頻率。如果用16位樣本而不是8位樣本,則將其加倍,如果是錄製立體聲則再加倍。例如,1小時的CD聲音(或者是在每個立體聲樣本佔2位元組、每秒44 ,100個樣本的速度下進行3 600秒)需要635MB,這快要接近一張CD-ROM的儲存量了。
對於第一個關於波形聲音的練習,人不打算將聲音儲存到文件中或播放錄製的聲音。人將使用低階的波形聲音API(即,前綴是waveOut的函數)來建立一個稱作SINEWAVE的聲音正弦波生成器。此程序以1 Hz的增量來生成從20Hz(人可感覺的最低值)到5,000Hz(與人感覺的最高值相差兩個八度音階)的正弦波。
波形聲音——軟體
第一次考慮這個問題(而且對PCM也一無所知)時,您大概會認為將一個周期的正弦波分成若干固定數量的樣本-例如360個-才合理。對於20 Hz的正弦波,每秒輸出7,200個樣本。對於200 Hz的正弦波,每秒則要輸出72,000個樣本。這有可能實作,但實際上卻不能這麼做。對於5,000 Hz的正弦波,就需要每秒輸出1,800,000個樣本,這的確會增大DAC的負擔!更重要的是,對於更高的頻率,這種作法會比實際需要的精確度還高。
波形聲音——軟體
問題是每周期的樣本數可能帶有小數,因此在使用時這種方法並不是很好。每個周期的尾部都會有間斷。
使它正常工作的關鍵是保留一個靜態的「相位角」變數。此角初始化為0。第一個樣本是0度正弦。隨後,相位角增加一個值,該值等於2π乘以頻率再除以取樣頻率。用此相位角作為第二個樣本,並且按此方法繼續。一旦相位角超過2π弧度,則減去2π弧度,而不要把相位角再初始化為0。
例如,假定要用11,025Hz的取樣頻率來生成1,000Hz的正弦波。即每周期有大約11個樣本。為便於理解,此處相位角按度數給出-大約前一個半周期的相位角是:0、32.65、65.31、97.96、130.61、163.27、195.92、228.57、261.22、293.88、326.53、359.18、31.84、64.49、97.14、129.80、162.45、195.10,以此類推。存入緩衝區的波形數據是這些角度的正弦值,並已縮放到每樣本的位數。為後來的緩衝區建立數據時,可繼續增加最後的相位角,而不要將它初始化為0。
記錄聲音採樣點數據的文件叫做“波形聲音”文件。波形聲音構件專門用於WAV類型聲音文件的播放。波形聲音與音響構件的區別在於,它只用於播放WAV類型。
●AVI格式:它的英文全稱為Audio Video Interleaved,即音頻視頻交錯格式。它於1992年被Microsoft公司推出,隨Windows3.1一起被人們所認識和熟知。所謂“音頻視頻交錯”,就是可以將視頻和音頻交織在一起進行同步播放。這種視頻格式的優點是圖像質量好,可以跨 多個平台使用,其缺點是體積過於龐大,而且更加糟糕的是壓縮標準不統一,最普遍的現象就是高版本Windows媒體播放器播放不了採用早期編碼編輯的AVI格式視頻,而低版本Windows媒體播放器又播放不了採用最新編碼編輯的AVI格式視頻,所以人在進行一些AVI格式的視頻播放時常會出現由於視頻編碼問題而造成的視頻不能播放或即使能夠播放,但存在不能調節播放進度和播放時只有聲音沒有圖像等一些莫名其妙的問題,如果用戶在進行AVI格式的視頻播放時遇到了這些問題,可以通過下載相應的解碼器來解決。
●nAVI格式:nAVI是newAVI的縮寫,是一個名為ShadowRealm的地下組織發展起來的一種新視頻格式(與人上面所說的AVI格式沒有太大聯繫)。它是由Microsoft ASF壓縮演演算法的修改而來的,但是又與下面介紹的網路影像視頻中的ASF視頻格式有所區別,它以犧牲原有ASF視頻文件視頻“流”特性為代價而通過增加幀率來大幅提高ASF視頻文件的清晰度。
●DV-AVI格式:DV的英文全稱是Digital Video Format,是由索尼、松下、JVC等多家廠商聯合提出的一種家用數字視頻格式。目前流行的數碼攝像機就是使用這種格式記錄視頻數據的。它可以通過電腦的IEEE 1394埠傳輸視頻數據到電腦,也可以將電腦中編輯好的的視頻數據回錄到數碼攝像機中。這種視頻格式的文件擴展名一般是.avi,所以也叫DV-AVI格式。
●MPEG格式:它的英文全稱為Moving Picture Expert Group,即運動圖像專家組格式,家裡常看的VCD、SVCD、DVD就是這種格式。MPEG文件格式是運動圖像壓縮演演算法的國際標準,它採用了有損壓縮方法減少運動圖像中的冗餘信息,說的更加明白一點就是MPEG的壓縮方法依據是相鄰兩幅畫面絕大多數是相同的,把後續圖像中和前面圖像有冗餘的部分去除,從而達到壓縮的目的(其最大壓縮比可達到200:1)。MPEG格式有三個壓縮標準,分別是MPEG-1、MPEG-2、和MPEG-4,另外,MPEG-7與MPEG-21仍處在研發階段。
MPEG-1:制定於1992年,它是針對1.5Mbps以下數據傳輸率的數字存儲媒體運動圖像及其伴音編碼而設計的國際標準。也就是人通常所見到的VCD製作格式。使用MPEG-1的壓縮演演算法,可以把一部120分鐘長的電影壓縮到1.2GB左右大小。這種視頻格式的文件擴展名包括.mpg、.mlv、.mpe、.mpeg及VCD光碟中的.dat文件等。
MPEG-2:制定於1994年,設計目標為高級工業標準的圖像質量以及更高的傳輸率。這種格式主要應用在DVD/SVCD的製作(壓縮)方面,同時在一些HDTV(高清晰電視廣播)和一些高要求視頻編輯、處理上面也有相當的應用。使用MPEG-2的壓縮演演算法,可以把一部120分鐘長的電影壓縮到4到8GB的大小。這種視頻格式的文件擴展名包括.mpg、.mpe、.mpeg、.m2v及DVD光碟上的.vob文件等。
MPEG-3(MPEG AUDIO LAYER 3)是一種具有高壓縮率的音響信號文件。雖然它音樂信號的壓 縮比例較高,但依然可以與CD/MD的音質媲美。MP3高達10比1的壓縮比例。使一張CD-R/RW上可以容納10張普通CD的音樂。達到可以長時間播放音樂。您可以從網際網路或其它渠道獲取MP3格式的音樂。
MPEG-4:制定於1998年,MPEG-4是為了播放流式媒體的高質量視頻而專門設計的,它可利用很窄的帶度,通過幀重建技術,壓縮和傳輸數據,以求使用最少的數據獲得最佳的圖像質量。目前MPEG-4最有吸引力的地方在於它能夠保存接近於DVD畫質的小體積視頻文件。另外,這種文件格式還包含了以前MPEG壓縮標準所不具備的比特率的可伸縮性、動畫精靈、交互性甚至版權保護等一些特殊功能。這種視頻格式的文件擴展名包括.asf、.mov和DivX AVI等。
小提示:細心的用戶一定注意到了,這中間怎麼沒有MPEG-3編碼?實際上,大家熟悉的MP3就是採用的MPEG-3(MPEG Layeur3)編碼。
●DivX格式:這是由MPEG-4衍生出的另一種視頻編碼(壓縮)標準,也即人通常所說的DVDrip格式,它採用了MPEG4的壓縮演演算法同時又綜合了MPEG-4與MP3各方面的技術,說白了就是使用DivX壓縮技術對DVD碟片的視頻圖像進行高質量壓縮,同時用MP3或AC3對音頻進行壓縮,然後再將視頻與音頻合成並加上相應的外掛字幕文件而形成的視頻格式。其畫質直逼DVD並且體積只有DVD的數分之一。這種編碼對機器的要求也不高,所以DivX視頻編碼技術可以說是一種對DVD造成威脅最大的新生視頻壓縮格式,號稱DVD殺手或DVD終結者。
●MOV格式:美國Apple公司開發的一種視頻格式,默認的播放器是蘋果的QuickTimePlayer。具有較高的壓縮比率和較完美的視頻清晰度等特點,但是其最大的特點還是跨平台性,即不僅能支持MacOS,同樣也能支持Windows系列。
波形聲音
●ASF格式:它的英文全稱為Advanced Streaming format,用戶可以直接使用Windows自帶的Windows Media Player對其進行播放。由於它使用了MPEG-4的壓縮演演算法,所以壓縮率和圖像的質量都很不錯(高壓縮率有利於視頻流的傳輸,但圖像質量肯定會的損失,所以有時候ASF格式的畫面質量不如VCD是正常的)。
●WMV格式:它的英文全稱為Windows Media Video,也是微軟推出的一種採用獨立編碼方式並且可以直接在網上實時觀看視頻節目的文件壓縮格式。WMV格式的主要優點包括:本地或網路回放、可擴充的媒體類型、部件下載、可伸縮的媒體類型、流的優先順序化、多語言支持、環境獨立性、豐富的流間關係以及擴展性等。
●RM格式:Real Networks公司所制定的音頻視頻壓縮規範稱為Real Media,用戶可以使用RealPlayer或RealOne Player對符合RealMedia技術規範的網路音頻/視頻資源進行實況轉播並且RealMedia可以根據不同的網路傳輸速率制定出不同的壓縮比率,從而實現在低速率的網路上進行影像數據實時傳送和播放。這種格式的另一個特點是用戶使用RealPlayer或RealOne Player播放器可以在不下載音頻/視頻內容的條件下實現在線播放。另外,RM它還可以通過其Real Server伺服器將其它格式的視頻轉換成RM視頻並由Real Server伺服器負責對外發布和播放。RM和ASF格式可以說各有千秋,通常RM視頻更柔和一些,而ASF視頻則相對清晰一些。
●RMVB格式:這是一種由RM視頻格式升級延伸出的新視頻格式,它的先進之處在於RMVB視頻格式打破了原先RM格式那種平均壓縮採樣的方式,在保證平均壓縮比的基礎上合理利用比特率資源,就是說靜止和動作場面少的畫面場景採用較低的編碼速率,這樣可以留出更多的帶寬空間,而這些帶寬會在出現快速運動的畫面場景時被利用。這樣在保證了靜止畫面質量的前提下,大幅地提高了運動圖像的畫面質量,從而圖像質量和文件大小之間就達到了微妙的平衡。另外,相對於DVDrip格式,RMVB視頻也是有著較明顯的優勢,一部大小為700MB左右的DVD影片,如果將其轉錄成同樣視聽品質的RMVB格式,其個頭最多也就400MB左右。不僅如此,這種視頻格式還具有內置字幕和無需外掛插件支持等獨特優點。要想播放這種視頻格式,可以使用RealOne Player2.0或RealPlayer8.0加RealVideo9.0以上版本的解碼器形式進行播放。
●WAV格式是微軟公司開發的一種聲音文件格式,也叫波形聲音文件,是最早的數字音頻格式,被Windows平台及其應用程序廣泛支持。WAV格式支持許多壓縮演演算法,支持多種音頻位數、採樣頻率和聲道,採用44.1kHz的採樣頻率,16位量化位數,因此WAV的音質與CD相差無幾,但WAV格式對存儲空間需求太大不便於交流和傳播。
●WMA的全稱是Windows Media Audio,是微軟力推的一種音頻格式。WMA格式是以減少數據流量但保持音質的方法來達到更高的壓縮率目的,其壓縮率一般可以達到1:18,生成的文件大小隻有相應MP3文件的一半。這對只裝配32M的機型來說是相當重要的,支持了WMA和RA格式,意味著32M的空間在無形中擴大了2倍。此外,WMA還可以通過DRM(Digital Rights Management)方案加入防止拷貝,或者加入限制播放時間和播放次數,甚至是播放機器的限制,可有力地防止盜版。