VC++语音的频率域特征分析(5)
时间:2021-03-30 20:58 来源:毕业论文 作者:毕业论文 点击:次
20H~21H 2 整数 数据的调整数(按字节计算) 22H~23H 2 整数 样本数据位数 表 2 WAV文件的数据块 偏移地址 字节数 类型 内容 24H~27H 4 字符 数据标志符(data) 28H~2BH 4 长整型 采样数据总数 2CH--- --- 采样数据 2.1.2 WAV文件常用块的定义 (1)RIFF头格式 struct RIFF_HEADER { char szRiffID[4]; // 'R','I','F','F' DWORD dwRiffSize; char szRiffFormat[4]; // 'W','A','V','E' }; (2)FMT块头格式 struct FMT_BLOCK { char szFmtID[4]; // 'f','m','t',' ' DWORD dwFmtSize; WAVE_FORMAT wavFormat; }; (3)WAVE格式块 typedef struct WAVE_FORMAT { WORD wFormatTag; //编码格式 WORD wChannels; //声道数 DWORD dwSamplesPerSec; //采样频率 DWORD dwAvgBytesPerSec;//每秒的数据量 WORD wBlockAlign; //块对齐 WORD wBitsPerSample; //采样位数 }; (4)数据块 struct DATA_BLOCK { char szDataID[4]; // 'd','a','t','a' DWORD dwDataSize; }; 2.2 语音WAV文件读取操作 2.2.1 WAV文件读取操作所用到的数据结构 (1)波形音频流格式的数据结构 typedef struct tWAVEFORMATEX { WORD wFormatTag; /* 格式类型 */ WORD nChannels; /* 声道数目*/ DWORD nSamplesPerSec; /* 采样频率 */ DWORD nAvgBytesPerSec; /* 每秒的数据量*/ WORD nBlockAlign; /* 数据块的对齐标志 */ WORD wBitsPerSample; /* 采样量化位数 */ WORD cbSize; /* 该数据结构的大小 */ } WAVEFORMATEX; (2)在mmsystem.h中处理RIFF数据块信息的基本数据结构 typedef struct _MMCKINFO {源:自~优尔·论`文'网·www.youerw.com/ FOURCC ckid; /* RIFF数据块的4字节ID */ DWORD cksize; /* 数据块大小 */ FOURCC fccType; /* 数据块的形式类型 */ DWORD dwDataOffset; /* 数据块的数据起始位置偏移量 */ (责任编辑:qin) |