wave[檔案格式]

wave[檔案格式]

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

檔案格式

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位元組順序進行存儲。

格式剖析

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波形樣本的數據格式。

優缺點

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

格式支持

Wave格式支持MSADPCM、CCITTALaw、CCITT μ Law和其它壓縮算法,支持多種音頻位數、採樣頻率和聲道,但其缺點是檔案體積較大(一分鐘44kHZ、16bit Stereo的WAV檔案約要占用10MB左右的硬碟空間),所以不適合長時間記錄。

在Windows中,把聲音檔案存儲到硬碟上的擴展名為WAV。WAV記錄的是聲音的本身,所以它占的硬碟空間大的很。例如:16位的44.1KHZ的立體聲聲音一分鐘要占用大約10MB的容量,和MIDI相比就差的很遠。

格式轉換

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了。

在轉換時,如果想控制檔案大小,如想讓聲音更好聽或要使檔案更加小巧,可以在視窗的“聲音選定”中選擇其中的“屬性”,在該欄中選擇更低或更高的採樣頻率就可以了。

檔案播放

在多媒體軟體的開發設計中,聲音是一個相當重要的多媒體元素,優秀的聲音設計會為多媒體軟體增色不少。而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檔案。

其他音頻格式

CD格式

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

AIFF與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的包容特性,所以它支持許多壓縮技術。

MPEG

MPEG是動態圖象專家組的英文縮寫。這個專家組始建於1988年,專門負責為CD建立視頻和音頻壓縮標準。MPEG音頻檔案指的是MPEG標準中的聲音部分即MPEG音頻層。目前INTERNET上的音樂格式以MP3最為常見。雖然它是一種有損壓縮,但是它的最大優勢是以極小的聲音失真換來了較高的壓縮比。MPEG含有格式包括:MP1、MP2、MP3、MP4。

相關詞條

相關搜尋

熱門詞條

聯絡我們