偏移地址 字节数 数据类型 内容 文件头定义为 00H 4 char "RIFF" char riff_id[4]="RIFF" 04H 4 long int 文件总长-8 long int size0=文总长-8 08H 8 char "WAVEfmt " char wave_fmt[8] 10H 4 long int 10 00 00 00H(PCM) long int size1=0x10 14H 2 int 01 00H int fmttag=0x01 16H 2 int int channel=1 或2 18H 4 long int 采样率 long int samplespersec 1CH 4 long int 每秒播放字节数 long int bytepersec 20H 2 int 采样一次占字节数 int blockalign=声道数*量化数/8 22H 2 int 量化数 int bitpersamples=8或16 24H 4 char "data" char data_id="data" 28H 4 long int 采样数据字节数 long int size2=文长-44 2CH 到文尾 char 采样数据
表1 8KHz采样、16比特量化的线性PCM语音信号的WAVE文件头格式表(共44字节)
偏移地址
字节数
数据类型
内容
文件头定义为
00H
4
char
"RIFF"
char riff_id[4]="RIFF"
04H
4
long int
文件总长-8
long int size0=文总长-8
表2 8KHz采样、8比特A律量化的PCM语音信号的WAVE文件头格式表(共58字节)
偏移地址 字节数 数据类型 内容 文件头定义为 00H 4 char "RIFF" char riff_id[4]="RIFF" 04H 4 long int 文件总长-8 long int size0=文总长-8 08H 8 char "WAVEfmt " char wave_fmt[8] 10H 4 long int 12000000H(ALAW) long int size1=0x12 14H 2 int 06 00H int fmttag=0x06 16H 2 int 声道数 int channel=1 或2 18H 4 long int 采样率 long int samplespersec 1CH 4 long int 每秒播放字节数 long int bytepersec 20H 2 int 采样一次占字节数 int blockalign=0x01 22H 4 long int 量化数 long int bitpersamples=8 26H 4 char "fact" char wave_fact="fact" 2AH 8 char 0400000000530700H定 char temp 32H 4 char "data" char wave_data="data" 36H 4 long int 采样数据字节数 lont int size2=文长-58
表3 8KHz采样、8比特U律量化的PCM语音信号的WAVE文件头格式表(共58字节)
偏移地址 字节数 数据类型 内容 文件头定义为 00H 4 char "RIFF" char riff_id[4]="RIFF" 04H 4 long int 文件总长-8 long int size0=文总长-8 08H 8 char "WAVEfmt " char wave_fmt[8] 10H 4 long int 12000000H(ULAW) long int size1=0x12 14H 2 int 07 00H int fmttag=0x07 16H 2 int 声道数 int channel=1 或2 18H 4 long int 采样率 long int samplespersec 1CH 4 long int 每秒播放字节数 long int bytepersec 20H 2 int 采样一次占字节数 int blockalign=0x01 22H 4 long int 量化数 long int bitpersamples=8 26H 4 char "fact" char wave_fact="fact" 2AH 8 char 0400000000530700H定 char temp 32H 4 char "data" char wave_data="data" 36H 4 long int 采样数据字节数 lont int size2=文长-58
表4 ADPCM语音编码后的WAVE文件头格式表(共90字节)
偏移地址 字节数 数据类型 内容 文件头定义为 00H 4 char "RIFF" char riff_id[4]="RIFF" 04H 4 long int 文件总长-8 long int size0=文总长-8 08H 8 char "WAVEfmt " char wave_fmt[8] 10H 4 long int 32000000H(ADPCM) long int size1=0x32 14H 2 int 02 00H int fmttag=0x02 16H 2 int 声道数 int channel=1 或2 18H 4 long int 采样率 long int samplespersec 1CH 4 long int 每秒播放字节数 long int bytepersec 20H 2 int 采样一次占字节数 int blockalign=声道数*量化数/8 22H 2 int 量化数 int bitpersamples=4 24H 34 char 固定字节 char temp1 46H 4 char "fact" char wave_fact="fact" 4AH 8 char 0400000004930600H定 char temp2 52H 4 char "data" char wave_data="data" 56H 4 long int 采样数据字节数 lont int size2=文长-90 5AH 到文尾 采样数据
表5 GSM语音编码后的WAVE文件头格式表(共60字节)
偏移地址 字节数 数据类型 内容 文件头定义为 00H 4 char "RIFF" char riff_id[4]="RIFF" 04H 4 long int 文件总长-8 long int size0=文总长-8 08H 8 char "WAVEfmt " char wave_fmt[8] 10H 4 long int 14000000H(GSM) long int size1=0x14 14H 2 int 31 00H int fmttag=0x31 16H 2 int 声道数 int channel=1 或2 18H 4 long int 采样率 long int samplespersec 1CH 4 long int 每秒播放字节数 long int bytepersec 20H 8 char 4100000002004001H定 char temp1 28H 8 char 6661637404000000H定 char temp2 30H 4 char 40 E2 05 00H定 char temp3 34H 4 char "data" char wave_data="data" 38H 4 long int 采样数据字节数 lont int size2=文长-60 3CH 到文尾 采样数据
表6 SBC语音编码后的WAVE文件头格式表(共58字节)
偏移地址 字节数 数据类型 内容 文件头定义为 00H 4 char "RIFF" char riff_id[4]="RIFF" 04H 4 long int 文件总长-8 long int size0=文总长-8 08H 8 char "WAVEfmt " char wave_fmt[8] 10H 4 long int 12000000H(SBC) long int size1=0x12 14H 2 int 71 00H int fmttag=0x71 16H 2 int 声道数 int channel=1 或2 18H 4 long int 采样率 long int samplespersec 1CH 4 long int 每秒播放字节数 long int bytepersec 20H 2 int 采样一次占字节数 int blockalign=0x25 22H 4 long int 量化数 long int bitpersamples=16 26H 4 char "fact" char wave_fact="fact" 2AH 8 char 0400000076280400H定 char temp 32H 4 char "data" char wave_data="data" 36H 4 long int 采样数据字节数 lont int size2=文长-59
表7 CELP语音编码后的WAVE文件头格式表(共58字节)
偏移地址 字节数 数据类型 内容 文件头定义为 00H 4 char "RIFF" char riff_id[4]="RIFF" 04H 4 long int 文件总长-8 long int size0=文总长-8 08H 8 char "WAVEfmt " char wave_fmt[8] 10H 4 long int 12000000H(CELP) long int size1=0x12 14H 2 int 70 00H int fmttag=0x70 16H 2 int 声道数 int channel=1 或2 18H 4 long int 采样率 long int samplespersec 1CH 4 long int 每秒播放字节数 long int bytepersec 20H 2 int 采样一次占字节数 int blockalign=0x0C 22H 4 long int 量化数 long int bitpersamples=16 26H 4 char "fact" char wave_fact="fact" 2AH 8 char 0400000060520700H定 char temp 32H 4 char "data" char wave_data="data" 36H 4 long int 采样数据字节数 lont int size2=文长-58