(一)文件格式
1、RIFF文件結構和WAVE文件格式
Windows支持兩種RIFF(Resource Interchange File Format,"資源交互文件格式")格式的音頻文件,MIDI的RMID文件和波形音頻文件格式WAVE文件,其中在計算機領域最常用的數字化聲音文件格式是后者,它是微軟專門為Windows系統定義的波形文件格式,本文涉及到的聲音文件所指的就是WAVE文件;常見的WAVE語音文件主要有兩種,分別對應于單聲道(11.025KHz采樣率、8Bit的采樣值)和雙聲道(44.1KHz采樣率、16Bit的采樣值);
RIFF文件結構可以看作是樹狀結構,其基本構成是稱為"塊"(Chunk)的單元,每個塊有"標志符"、"數據大小"及"數據"所組成,塊的結構如下:
|
塊的標志符(4BYTES)
|
|
數據大小 (4BYTES)
|
|
數據
|
其中"標志符"為4個字符所組成的代碼,如"RIFF","LIST"等,指定塊的標志ID;數據大小用來指定塊的數據域大小,它的尺寸也為4個字符;數據用來描述具體的聲音信號,它可以由若干個子塊構成,一般情況下塊與塊是平行的,不能相互嵌套,但是有兩種類型的塊可以嵌套子塊,他們是"RIFF"或"LIST"標志的塊,其中RIFF塊的級別最高,它可以包括LIST塊;
RIFF塊和LIST塊與其他塊不同,RIFF塊的數據總是以一個指定文件中數據存儲格式的四個字符碼(稱為格式類型)開始,如WAVE文件有一個"WAVE"的格式類型;LIST塊的數據總是以一個指定列表內容的4個字符碼(稱為列表類型)開始,例如擴展名為".AVI"的視頻文件就有一個"strl"的列表類型,RIFF和LIST的塊結構如下:
|
RIFF/LIST標志符
|
|
|
數據1大小
|
|
|
數據1
|
格式/列表類型 |
| 數據 | |
WAVE文件結構,WAVE是非常簡單的一種RIFF文件,它的格式類型為"WAVE";RIFF塊包含兩個子塊,這兩個子塊的ID分別是"fmt"和"data",其中"fmt"子塊由結構PCMWAVEFORMAT所組成,數據組成就是PCMWAVEFORMAT結構中的數據,WAVE文件的結構如下:
|
標志符(RIFF)
|
|
數據大小
|
|
格式類型("WAVE")
|
|
"fmt"
|
|
Sizeof(PCMWAVEFORMAT)
|
|
PCMWAVEFORMAT
|
|
"data"
|
|
聲音數據大小
|
|
聲音數據
|
Wave的具體格式,請閱讀wav文件格式分析
浙公網安備 33010602011771號