毕业论文

打赏
当前位置: 毕业论文 > 计算机论文 >

VC++语音的频率域特征分析(5)

时间:2021-03-30 20:58来源:毕业论文
20H~21H 2 整数 数据的调整数(按字节计算) 22H~23H 2 整数 样本数据位数 表 2 WAV文件的数据块 偏移地址 字节数 类型 内容 24H~27H 4 字符 数据标志符(data)

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

{源:自~751·论`文'网·www.751com.cn/

FOURCC          ckid;           /* RIFF数据块的4字节ID */

DWORD           cksize;         /* 数据块大小 */

FOURCC          fccType;        /* 数据块的形式类型 */

DWORD           dwDataOffset;   /* 数据块的数据起始位置偏移量 */ VC++语音的频率域特征分析(5):http://www.751com.cn/jisuanji/lunwen_72191.html

------分隔线----------------------------
推荐内容