⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dtwrecoge.h

📁 m文件dtw,mfcc,vad,转换为c语言文件。用于声音检测
💻 H
字号:
/***vdtwrecoge.h*********************************************************************/ 
#ifndef vdtwrecoge_h 
#define vdtwrecoge_h 
 
#include 
#include 
 
#define DTWMAXNUM 2000 
#define MAX(a,b) ((a)>(b)?(a):(b)) 
#define MIN(a,b) ((a)<(b)?(a):(b)) 
#define ABS(a) ((a)>0?(a):(-(a))) 
#define DTWVERYBIG 100000000.0 
#define MAX_DIM 8 
 
struct VECTOR 
{ 
	int num;	//向量的维数 
	double  data[MAX_DIM]; 
}; 
 
typedef struct VECTOR  mvector; 
typedef struct VECTOR* pmvector; 
 
/*****************************************************************************/ 
/*VectorMul(mvector *A,double mul) 向量数乘 
/*  
/*****************************************************************************/ 
void VectorMul(mvector *A,double mul); 
 
 
/*****************************************************************************/ 
/*VectorInit(mvector *A,int dim) 向量初始化 
/* dim 维数 
/******************************************************************************/ 
 
void VectorInit(mvector *A,int dim); 
 
/*****************************************************************************/ 
/* VectorAdd(mvector *A,mvector *B,mvector *C) 
/* 向量加法,结果存放在C中 
/*****************************************************************************/ 
void VectorAdd(mvector *A,mvector *B,mvector *C); 
/*****************************************************************************/ 
/* VectorDistance,用于求两个向量之间的距离,欧氏距离 
/* A和B是待求距离的两个向量 
/*****************************************************************************/ 
double VectorDistance(mvector *A,mvector *B); 
 
/*****************************************************************************/ 
/* DTWDistance,求两个数组之间的匹配距离 
/* A,B分别为第一第二个数组,I,J为其数组长度,r为匹配窗口的大小 
/* r的大小一般取为数组长度的1/10到1/30 
/* 返回两个数组之间的匹配距离,如果返回-1.0,表明数组长度太大了 
/*****************************************************************************/ 
double VDTWDistanceFun(mvector *A,int I,mvector *B,int J,int r); 
 
/*****************************************************************************/ 
/* DTWTemplate,进行建立模板的工作 
/* 其中A为已经建立好的模板,我们在以后加入训练样本的时候, 
/* 以已建立好的模板作为第一个参数,I为模板的长度,在这个模板中不再改变 
/* B为新加入的训练样本,J为B的长度,turn为训练的次数,在第一次 
/* 用两个数组建立模板时,r为1,这是出于权值的考虑 
/* temp保存匹配最新训练后的模板,建议temp[DTWMAXNUM],函数返回最新训练后模板的长度 
/* 如果函数返回-1,表明训练样本之间距离过大,需要重新选择训练样本, 
/* tt为样本之间距离的阈值,自行定义 
/*****************************************************************************/ 
int VDTWTemplate(mvector *A,int I,mvector *B,int J,mvector *temp,int turn,double tt,double *rltdistance); 
 
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -