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

📄 dtwmex.cpp

📁 自动语音识别源码对非特定人的孤立词语音识别算法 进行研究。考虑到语音识别技术在嵌入式系统处理能力较弱、存储空间有限的问 题上进行算法的选择和优化
💻 CPP
字号:
#include <stdlib.h>
#include "mex.h"
#include "matrix.h"

/* Input Arguments */
#define DATA1		prhs[0]
#define DATA2		prhs[1]
#define WINDOWWIDTH	prhs[2]
#define ENDPOINTOPT	prhs[3]

/* Output Arguments */
#define	MINDISTANCE	plhs[0]
#define PATHSIZE	plhs[1]

#include "tempodtw.cpp"

void mexFunction(
  int nlhs,  mxArray *plhs[],
  int nrhs, const mxArray *prhs[])
{
  midType *data1, *data2;
  int size1, size2, nodeSize;
  int i, pathSize;
  int windowWidthX, windowWidthY;
  int fixLeft, fixRight;

  /* Check for proper number of arguments */
  if (nrhs != 4)
    mexErrMsgTxt("Requires 4 input arguments.");
  else if (mxGetM(DATA1) != mxGetM(DATA2))
    mexErrMsgTxt("data1 and data2 must have the same node size.");

  /*input arguments*/
  nodeSize = mxGetM(DATA1);
  size1 = mxGetN(DATA1);
  size2 = mxGetN(DATA2);
  data1 = new midType[size1 * nodeSize];
  for (i = 0; i < size1 * nodeSize; i++)
    data1[i] = mxGetPr(DATA1)[i];
  data2 = new midType[size2 * nodeSize];
  for (i = 0; i < size2 * nodeSize; i++)
    data2[i] = mxGetPr(DATA2)[i];
  if (mxGetM(WINDOWWIDTH) * mxGetN(WINDOWWIDTH) == 1)
    windowWidthX = windowWidthY = mxGetPr(WINDOWWIDTH)[0];
  else
  {
    windowWidthX = mxGetPr(WINDOWWIDTH)[0];
    windowWidthY = mxGetPr(WINDOWWIDTH)[1];
  }
  if (mxGetM(ENDPOINTOPT) * mxGetN(ENDPOINTOPT) == 1)
    fixLeft = fixRight = mxGetPr(ENDPOINTOPT)[0];
  else
  {
    fixLeft = mxGetPr(ENDPOINTOPT)[0];
    fixRight = mxGetPr(ENDPOINTOPT)[1];
  }
  /* Create a matrix for minDistance */
  MINDISTANCE = mxCreateDoubleMatrix(1, 1, mxREAL);
  PATHSIZE = mxCreateDoubleMatrix(1, 1, mxREAL);

  mxGetPr(MINDISTANCE)[0]=dtw(data1, size1, data2, size2, nodeSize, windowWidthX,
          windowWidthY, fixLeft, fixRight, &pathSize);
  mxGetPr(PATHSIZE)[0] = pathSize;

  delete [] data1;
  delete [] data2;
}                 

⌨️ 快捷键说明

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