複製鏈接
請複製以下鏈接發送給好友

WAVE

(文件格式)

鎖定
WAVE是錄音時用的標準的WINDOWS文件格式,文件的擴展名為“WAV”,數據本身的格式為PCM或壓縮型。WAVE文件格式是一種由微軟和IBM聯合開發的用於音頻數字存儲的標準,它採用RIFF文件格式結構,非常接近於AIFF和IFF格式。符合 PIFF Resource Interchange File Format規範。所有的WAV都有一個文件頭,這個文件頭音頻流的編碼參數 [1] 
中文名
WAVE
文件格式
標準的WINDOWS
文件擴展名
WAV
文件格式結構
RIFF
數據本身格式
PCM或壓縮型
表示聲音
採樣位數採樣頻率聲道

WAVE文件格式

WAVE WAVE
WAVE文件作為最經典的Windows多媒體音頻格式,應用非常廣泛,它使用三個參數來表示聲音:採樣位數、採樣頻率和聲道數。
聲道有單聲道和立體聲之分,採樣頻率一般有11025Hz(11kHz)、22050Hz(22kHz)和44100Hz(44kHz)三種。WAVE文件所佔容量=(採樣頻率×採樣位數×聲道)×時間/8(1字節=8bit)。
WAVE對音頻流的編碼沒有硬性規定,除了PCM之外,還有幾乎所有支持ACM規範的編碼都可以為WAV的音頻流進行編碼。多媒體應用中使用了多種數據,包括位圖音頻數據、視頻數據以及外圍設備控制信息等。 RIFF為存儲這些類型的數據提供了一種方法,RIFF文件所包含的數據類型由該文件的擴展名來標識,能以RIFF文件存儲的數據包括:
音頻視頻交錯格式數據(.AVI) 、波形格式數據(.WAV) 、位圖格式數據(.RDI) 、MIDI格式數據(.RMI) 、調色板格式(.PAL) 、多媒體電影(.RMN) 、動畫光標(.ANI) 、其它RIFF文件(.BND)
WAVE文件可以存儲大量格式的數據,通常採用的音頻編碼方式是脈衝編碼調製(PCM)。由於 WAV格式源自Windows/Intel環境,因而採用Little-Endian字節順序進行存儲。 [1] 

WAVE格式剖析

WAVE文件作為多媒體中使用的聲波文件格式之一,它是以RIFF格式為標準的。RIFF是英文Resource Interchange File Format的縮寫,每個WAVE文件的頭四個字節便是“RIFF”。WAVE文件由文件頭和數據體兩大部分組成。其中文件頭又分為RIFF/WAV文件標識段和聲音數據格式説明段兩部分。WAVE文件各部分內容及格式見附表。
常見的聲音文件主要有兩種,分別對應於單聲道(11.025KHz採樣率、8Bit的採樣值)和雙聲道(44.1KHz採樣率、16Bit的採樣值)。採樣率是指:聲音信號在“模→數”轉換過程中單位時間內採樣的次數。採樣值是指每一次採樣週期內聲音模擬信號的積分值。
對於單聲道聲音文件,採樣數據為八位的短整數(short int 00H-FFH);而對於雙聲道立體聲聲音文件,每次採樣數據為一個16位的整數(int),高八位和低八位分別代表左右兩個聲道。
WAVE文件數據塊包含以脈衝編碼調製(PCM)格式表示的樣本。WAVE文件是由樣本組織而成的。在單聲道WAVE文件中,聲道0代表左聲道,聲道1代表右聲道。在多聲道WAVE文件中,樣本是交替出現的。
WAVE文件的每個樣本值包含在一個整數i中,i的長度為容納指定樣本長度所需的最小字節數。首先存儲低有效字節,表示樣本幅度的位放在i的高有效位上,剩下的位置為0,這樣8位和16位的PCM波形樣本的數據格式

WAVE優缺點

WAV音頻格式的優點包括:簡單的編/解碼(幾乎直接存儲來自模/數轉換器(ADC)的信號)、普遍的認同/支持以及無損耗存儲。WAV格式的主要缺點是需要音頻存儲空間。對於小的存儲限制或小帶寬應用而言,這可能是一個重要的問題。WAV格式的另外一個潛在缺陷是在32位WAV文件中的2G限制,這種限制已在為SoundForge開發的W64格式中得到了改善。 [1] 

WAVE格式支持

Wave格式支持MSADPCM、CCITTALaw、CCITT μ Law和其它壓縮算法,支持多種音頻位數、採樣頻率和聲道,但其缺點是文件體積較大(一分鐘44kHZ、16bit Stereo的WAV文件約要佔用10MB左右的硬盤空間),所以不適合長時間記錄。
在Windows中,把聲音文件存儲到硬盤上的擴展名為WAV。WAV記錄的是聲音的本身,所以它佔的硬盤空間大的很。例如:16位的44.1KHZ的立體聲聲音一分鐘要佔用大約10MB的容量,和MIDI相比就差的很遠。

WAVE格式轉換

AVI和WAV在文件結構上是非常相似的,不過AVI多了一個視頻流而已。我們接觸到的AVI有很多種,因此我們經常需要安裝一些Decode才能觀看一些AVI,我們接觸到比較多的DivX就是一種視頻編碼,AVI可以採用DivX編碼來壓縮視頻流,當然也可以使用其他的編碼壓縮。同樣,WAV也可以使用多種音頻編碼來壓縮其音頻流,不過我們常見的都是音頻流被PCM編碼處理的WAV,但這不表示WAV只能使用PCM編碼,MP3編碼同樣也可以運用在WAV中,和AVI一樣,只要安裝好了相應的dDecode,就可以欣賞這些WAV了。
在Windows平台下,基於PCM編碼的WAV是被支持得最好的音頻格式,所有音頻軟件都能完美支持,由於本身可以達到較高的音質的要求,因此,WAV也是音樂編輯創作的首選格式,適合保存音樂素材。因此,基於PCM編碼的WAV被作為了一種中介的格式,常常使用在其他編碼的相互轉換之中,例如MP3轉換成WMA
MP3大家一定很熟悉,但要將WAV格式的聲音文件轉換成MP3格式,你可能首先想到的是找專門的格式轉換工具,其實不必那麼複雜,你身邊就有一個現成的工具,這就是Windows附件中所帶的“錄音機”,使用這個工具能最簡便實現WAV格式轉為MP3格式,具體操作方法如下:
依次單擊“開始→程序→附件→娛樂→錄音機”,打開錄音機程序,然後單擊文件菜單,從文件中打開需要轉換的WAV文件,再單擊“文件→另存為”,在“另存為”對話框中單擊“更改”按鈕,在“格式”框中選擇“MPEG Layer-3”格式,一切就OK了。
在轉換時,如果想控制文件大小,如想讓聲音更好聽或要使文件更加小巧,可以在窗口的“聲音選定”中選擇其中的“屬性”,在該欄中選擇更低或更高的採樣頻率就可以了。 [1] 

WAVE文件播放

多媒體軟件的開發設計中,聲音是一個相當重要的多媒體元素,優秀的聲音設計會為多媒體軟件增色不少。而WAV格式的聲音文件是一種最常用的聲音文件格式,也最容易得到,比如通過Win 95中的“錄音機”程序,利用麥克風就可以非常簡單地錄製WAV文件。VB是一個相當經典的多媒體開發的工具,在VB中播放WAV文件的方法主要有這樣幾種。
一、利用OLE控件
建一窗體,用鼠標選擇OLE控件,在窗體上拖出OLE區域,在圖一的窗口中選擇新建和聲音然後按確定鍵就完成了在窗口中添加OLE控件。
這樣就可以在OLE控件的ResourceDoc屬性中選擇所要播放的文件,程序運行時雙擊OLE控件即可。
在實際的程序設計當中,往往需要單擊某個圖標或按鈕來控制聲音的播放,其實現方法是這樣的:首先將OLE控件的VISIBLE屬性設置為FALSE,然後在圖標或按鈕的單擊事件中編寫如下的程序:
Private Sub Contol_Click()
OLE1.Action = 7
End Sub
二、利用MMControl控件
VB5.0提供了許多設計多媒體的控件,在PROJECT/COMPENENTS/CONTROLS中選擇MMControls 控件,窗體上就出現了多媒體控件對象,在這個對象上有不同的圖形功能標識,其名稱從左到右分別是Pre、Next、Play、Pause、Back、Step、Stop、Record 、Eject。
這個多媒體控件可以播放多種格式的聲音,播放WAV格式聲音文件的程序代碼
Private Sub form_load()
MMControl1.DeviceType = "waveaudio"
MMControl1.filename = "c:\win95\media\ding.wav"
MMControl1.Command = "open"
End Sub '以下是為圖形標識Play事件編寫的代碼
Private Sub MMControl_playclick(cancel As Integer)
MMControl1.Command = "play"
End Sub
當運行這個程序時,MMControl控件中的Play鍵被激活,點取此按鈕即可播放ding.wav文件。
在實際的軟件設計當中,更多的情況是鼠標點擊按鈕或圖標來控制聲音的播放, 其實現方法是這樣的:首先將MMControl控件的VISIBLE屬性設置為FALSE,然後在圖標或按鈕的單擊事件中編寫如下的程序:
Private Sub Control1_Click()
MMControl1.Command = "play"
End Sub
運行程序時單擊相用的按鈕或圖標,WAV文件照樣可以播放。用自行設計的按鈕或圖標取代多媒體控件中的固定按鈕,可設計出更加靈活方便的用户界面。
三、利用VB的API函數
在窗體的DECLARATIONS(聲明)中輸入如下代碼:
P  rivate Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal_lpszSoundName As String, ByVal uFlags As Long) As Long
'lpszSoundName是一個字符串變量,表示一個WAV格式的文件名。
'uFlags 用於設定播放狀態的各種選項。參數值為0X00時,實現同步播放,參數值為0X01時實現非同步播放。
命令按鈕的單擊事件中輸入如下代碼:
Private Sub Command1_Click()
Dim plays As Long
plays = sndPlaySound(“E:\WINDOWS\MEDIA\DING.WAV", &H0)
End Sub
運行時單擊命令按鈕即可播放WAV文件。

WAVE其他音頻格式

WAVECD格式

在大多數播放軟件的“打開文件類型”中,都可以看到*.cda格式,這就是CD音軌。標準CD格式也就是44.1K的採樣頻率,速率88K/秒,16位量化位數,因為CD音軌可以説是近似無損的,因此它的聲音基本上是忠於原聲的,因此如果你如果是一個音響發燒友的話,CD是你的首選。它會讓你感受到天籟之音。CD光盤可以在CD唱機中播放,也能用電腦裏的各種播放軟件來重放。一個CD音頻文件是一個*.cda文件,這只是一個索引信息,並不是真正的包含聲音信息,所以不論CD音樂的長短,在電腦上看到的“*.cda文件”都是44字節長。注意:不能直接的複製CD格式的*.cda文件到硬盤上播放,需要使用象EAC這樣的抓音軌軟件把CD格式的文件轉換成WAV,這個轉換過程如果光盤驅動器質量過關而且EAC的參數設置得當的話,可以説是基本上無損抓音頻。推薦大家使用這種方法。

WAVEAIFF與AU

AIFF(Audio Interchange File Format)格式和AU格式,它們都和WAV非常相像,在大多數的音頻編輯軟件中也都支持它們這幾種常見的音樂格式。
AIFF音頻交換文件格式的英文縮寫。是APPLE公司開發的一種音頻文件格式,被MACINTOSH平台及其應用程序所支持,NETSCAPE瀏覽器中LIVEAUDIO也支持AIFF格式。所以大家都不常見。AIFF是Apple蘋果電腦上面的標準音頻格式,屬於QuickTime技術的一部分。這一格式的特點就是格式本身與數據的意義無關,因此受到了Microsoft的青睞,並據此搞出來WAV格式。AIFF雖然是一種很優秀的文件格式,但由於它是蘋果電腦上的格式,因此在PC平台上並沒有得到很大的流行。不過由於Apple電腦多用於多媒體製作出版行業,因此幾乎所有的音頻編輯軟件和播放軟件都或多或少地支持AIFF格式。只要蘋果電腦還在,AIFF就始終還佔有一席之地。由於AIFF的包容特性,所以它支持許多壓縮技術。 [1] 

WAVEMPEG

MPEG是動態圖象專家組的英文縮寫。這個專家組始建於1988年,專門負責為CD建立視頻和音頻壓縮標準。MPEG音頻文件指的是MPEG標準中的聲音部分即MPEG音頻層。目前INTERNET上的音樂格式以MP3最為常見。雖然它是一種有損壓縮,但是它的最大優勢是以極小的聲音失真換來了較高的壓縮比。MPEG含有格式包括:MP1MP2、MP3、MP4
參考資料
  • 1.    Behrouz Forouzan著 劉藝 瞿高峯譯.《計算機科學導論》:機械工業出版社,2010