欢迎来到天天文库
浏览记录
ID:7291578
大小:78.00 KB
页数:12页
时间:2018-02-10
《利用hmm的孤立字(词)语音识别系统》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、利用HMM的孤立字(词)语音识别系统/*************************************************************************//*文件名称:recog.cpp(主程序)*//****************************************************************************/#include"emhmm.h"intBR_Disp[MAX_ARCS];/*Displaymenttosavemultiplies(branch_prob)*/intME_Disp[MAX_AR
2、CS];/*Displaymenttosavemnltiplies(mean)*/intCO_Disp[MAX_ARCS];/*Displaymenttosavemultiplies(covariance)*/intTrain_Disp[MAX_ARCS+MAX_STATES];/*reallyonlyneedmax(ma,ms)*/imNum_Dimensions;intNum_Train_Sets;/*Sizeofdimensionoftrainingdata*/intTotal_Frames;intLongest_Train;/*thelengthofthelongestt
3、rainingset*/TRAININGTrain[MAX-_TRAIN_SIZE];HMMHmm[MAX_REF];main(argc,argv)intargc;char*argv[];{inti,num_ref,result;intcnt[MAX_REF];stringhmm_file;char*infile=NULL,*ref_list=NULL;charch_r[MAX_REF][8];FILE*fp;/*****************命令行参数设置****************/if(argc<5)usage(argv[0]);for(i=1;i4、{if(argv[i][0]!='-'){fprinff(stderr,"Illegalswitch%s",argv[i]);usage(amv[0]);}switch(argv[i])[1]);}case'h':ref_list=argv[++i];break;case'i':in_file=argv[++i];break;default:fprimf(stderr,"Illegalswitch%s',argv[i]);usage(argv[0]);break;}}/*****************************读取参考模型的数量,即词表的大小*******5、**********************/if((fp=fopen(ref_list,"r"))==NULL){fprinff(stderr,"%s:can'topen%storead.',ref_list);exit(0);}fscanf(fp,'%d',&num_ref);/*************读取模型的参数************/for(i=0;i6、intf("Categorysize:%d',hum_ref);/****************读取待识别语音的数据******************/if((Num_Train_Sets=read_training(in_file))>MAX_TRAIN_SIZE){fprintf(stderr,'%s:toomanytestpatternsin%s.",argv[0],in_file);exit(0);}/***********识别**********/for(i=0;i7、++cnt[result];#ifTRACEprintf("[%3d]%3d:%s",i+1,Train[i].length,ch_r[result]);fflush(stdout);#endiffree(Train[i].data);}printf("###识别结果###");for(i=0;i
4、{if(argv[i][0]!='-'){fprinff(stderr,"Illegalswitch%s",argv[i]);usage(amv[0]);}switch(argv[i])[1]);}case'h':ref_list=argv[++i];break;case'i':in_file=argv[++i];break;default:fprimf(stderr,"Illegalswitch%s',argv[i]);usage(argv[0]);break;}}/*****************************读取参考模型的数量,即词表的大小*******
5、**********************/if((fp=fopen(ref_list,"r"))==NULL){fprinff(stderr,"%s:can'topen%storead.',ref_list);exit(0);}fscanf(fp,'%d',&num_ref);/*************读取模型的参数************/for(i=0;i6、intf("Categorysize:%d',hum_ref);/****************读取待识别语音的数据******************/if((Num_Train_Sets=read_training(in_file))>MAX_TRAIN_SIZE){fprintf(stderr,'%s:toomanytestpatternsin%s.",argv[0],in_file);exit(0);}/***********识别**********/for(i=0;i7、++cnt[result];#ifTRACEprintf("[%3d]%3d:%s",i+1,Train[i].length,ch_r[result]);fflush(stdout);#endiffree(Train[i].data);}printf("###识别结果###");for(i=0;i
6、intf("Categorysize:%d',hum_ref);/****************读取待识别语音的数据******************/if((Num_Train_Sets=read_training(in_file))>MAX_TRAIN_SIZE){fprintf(stderr,'%s:toomanytestpatternsin%s.",argv[0],in_file);exit(0);}/***********识别**********/for(i=0;i7、++cnt[result];#ifTRACEprintf("[%3d]%3d:%s",i+1,Train[i].length,ch_r[result]);fflush(stdout);#endiffree(Train[i].data);}printf("###识别结果###");for(i=0;i
7、++cnt[result];#ifTRACEprintf("[%3d]%3d:%s",i+1,Train[i].length,ch_r[result]);fflush(stdout);#endiffree(Train[i].data);}printf("###识别结果###");for(i=0;i
此文档下载收益归作者所有