• 大小: 8KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-16
  • 语言: C/C++
  • 标签: HMM  语音识别  算法  

资源简介

C语言实现的HMM 语音识别算法,比较经典

资源截图

代码片段和文件信息

/*
**      File:   backward.cpp
**      功能:给定观察值序列和HMM模型,利用前向后向算法
**            求取其概率
*/

#include “StdAfx.h“
#include 
#include “hmm.h“

/***************************************************************************
** 函数名称:Backward
** 功能:后向算法估计参数
** 参数:phmm:指向HMM的指针
**       T:观察值序列的长度
**       O:观察值序列
**       beta:运算中用到的临时数组
**       pprob:返回值,所要求的概率
**/
void Backward(HMM *phmm int T int *O double **beta double *pprob)
{
int     i j;   /* 状态 */
int     t;      /* 时间下标 */
double sum;
 
 
/* 1. 初始化 */
 
for (i = 1; i <= phmm->N; i++)
beta[T][i] = 1.0;
 
/* 2. 递归 */
 
for (t = T - 1; t >= 1; t--) 
{
for (i = 1; i <= phmm->N; i++) 
{
sum = 0.0;
for (j = 1; j <= phmm->N; j++)
sum += phmm->A[i][j] * (phmm->B[j][O[t+1]])*beta[t+1][j];
beta[t][i] = sum;
 
}
}
 
/* 3. 终止 */
*pprob = 0.0;
for (i = 1; i <= phmm->N; i++)
*pprob += beta[1][i];
}

/***************************************************************************
** 函数名称:BackwardWithScale
** 功能:后向算法估计参数(带比例因子修正)
** 参数:phmm:指向HMM的指针
**       T:观察值序列的长度
**       O:观察值序列
**       beta:运算中用到的临时数组
**       scale:比例因子数组
**       pprob:返回值,所要求的概率
**/
void BackwardWithScale(HMM *phmm int T int *O double **beta 
double *scale double *pprob)
{
int     i j;   /* 状态指示 */
int     t;      /* 时间下标 */
double sum;
 
 
/* 1. 初始化 */
for (i = 1; i <= phmm->N; i++)
beta[T][i] = 1.0/scale[T]; 
 
/* 2. 递归 */
for (t = T - 1; t >= 1; t--) 
{
for (i = 1; i <= phmm->N; i++) 
{
sum = 0.0;
for (j = 1; j <= phmm->N; j++)
sum += phmm->A[i][j] * (phmm->B[j][O[t+1]])*beta[t+1][j];
beta[t][i] = sum/scale[t];
}
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1919  2002-09-26 06:39  C语言的HMM算法库\backward.cpp

     文件       4045  2002-09-26 05:15  C语言的HMM算法库\baum.cpp

     文件        237  2005-04-06 20:37  C语言的HMM算法库\forword.cpp

     文件       2280  2002-09-26 04:37  C语言的HMM算法库\hmm.h

     文件         66  2005-04-06 20:33  C语言的HMM算法库\hmm.txt

     文件        434  2002-09-26 05:27  C语言的HMM算法库\hmmrand.cpp

     文件       4081  2005-04-06 20:15  C语言的HMM算法库\hmmutils.cpp

     文件      10836  2005-04-06 20:32  C语言的HMM算法库\nrutil.cpp

     文件       1448  2002-09-26 03:32  C语言的HMM算法库\nrutil.h

     文件       1190  2005-04-06 18:36  C语言的HMM算法库\ReadMe.txt

     文件        290  2005-04-06 18:36  C语言的HMM算法库\StdAfx.cpp

     文件        667  2005-04-06 18:36  C语言的HMM算法库\StdAfx.h

     文件       3020  2002-09-26 06:07  C语言的HMM算法库\viterbi.cpp

     目录          0  2005-04-07 21:47  C语言的HMM算法库

----------- ---------  ---------- -----  ----

                30513                    14


评论

共有 条评论