www.pudn.com > exp_001.rar > exp_001.c
#include#include #include #define FRAME_SIZE 160 // 11KHz, 20ms #define FRAME_SHIFT 80 // 11KHz, 10ms #undef PI #define PI 3.1415926535897932384626434 /* WAV文件读取 */ int ReadWaveFile( char *fn, // I: 文件名 int *fs, // O: 文件大小 short **dat // O: 语音数据 ) { FILE *fp; int dsize; if ((fp = fopen(fn, "rb")) == NULL) { fprintf(stderr, "%s: No such file \n", fn); return(-1); } fseek(fp, 0L, SEEK_END); dsize = ftell(fp)/2; fseek(fp, 0L, SEEK_SET); if ((*dat = (short *)malloc(sizeof(short)*dsize)) == NULL) { fprintf(stderr, "Memory Error \n"); return(-1); } if (fread(*dat, sizeof(short), dsize, fp) != (unsigned int)dsize) { free(*dat); return(-1); } fclose(fp); *fs = dsize; return(0); } /* 短时能量 */ float RawEnergy( int fm, // I: 帧长 short wav[] // I: 帧波形数据wav[0]-wav[fm-1] ) { int i; float raw_E; raw_E = 0.0; for (i=0;i