资源简介
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
- 上一篇:c++ xm
l处理 domsax - 下一篇:DDOS攻击源代码 VC++6
相关资源
- CCS FFT c语言算法
- 小波变换算法 c语言版
- 3des加密算法C语言实现
- DES加密算法C语言实现
- 线性回归算法c语言实现
- 基于C语言的模拟退火算法
- C语言实现的DES对称加密算法
- 用VC6.0实现多边形扫描线填充算法
- c语言编写的货郎担算法
- Em算法(使用C++编写)
- STM32烧写算法flash包
- 永磁同步电机的FOC控制算法
- Proteus仿真:PID算法输出.rar
- 一个模糊PID温度控制算法源代码
- 经典滤波算法
- KMP算法C语言程序
- SVM算法实现(源码+文档)
- 算法A律U律实现
- 人工蜂群算法.docx
- BlowFish加密算法
- C语言常用算法源代码
- c++数组快排算法
- 算法表达式求值.cpp
- PID算法.c
- QR二维码C++源码 算法实现
- 基于opencv漫水填充算法综合
- 信息学奥赛一本通——算法部分
- 银行家算法分配资源的模拟实现(m
- C语言程序设计50例.docx
- 常见排序算法比较.cpp
评论
共有 条评论