www.pudn.com > viterbi.rar > viterbi.cpp
#include#include #include #include #include #include #include"viterbi.h" //录入音序表 void yinxu(){ yinxubiao[0].pinyin="wo";yinxubiao[0].count=4; yinxubiao[0].yinxudui[0]=53966; yinxubiao[0].yinxudui[1]=54734; yinxubiao[0].yinxudui[2]=54478; yinxubiao[0].yinxudui[3]=53710; yinxubiao[1].pinyin="ai";yinxubiao[1].count=4; yinxubiao[1].yinxudui[0]=44720; yinxubiao[1].yinxudui[1]=42160; yinxubiao[1].yinxudui[2]=43952; yinxubiao[1].yinxudui[3]=43440; yinxubiao[2].pinyin="kan";yinxubiao[2].count=4; yinxubiao[2].yinxudui[0]=46271; yinxubiao[2].yinxudui[1]=46015; yinxubiao[2].yinxudui[2]=44991; yinxubiao[2].yinxudui[3]=45247; yinxubiao[3].pinyin="shu";yinxubiao[3].count=4; yinxubiao[3].yinxudui[0]=59850; yinxubiao[3].yinxudui[1]=63434; yinxubiao[3].yinxudui[2]=64970; yinxubiao[3].yinxudui[3]=60618; yinxubiao[4].pinyin="yun";yinxubiao[4].count=4; yinxubiao[4].yinxudui[0]=52180; yinxubiao[4].yinxudui[1]=50900; yinxubiao[4].yinxudui[2]=51924; yinxubiao[4].yinxudui[3]=52948; yinxubiao[5].pinyin="dong";yinxubiao[5].count=4; yinxubiao[5].yinxudui[0]=44982; yinxubiao[5].yinxudui[1]=44726; yinxubiao[5].yinxudui[2]=43958; yinxubiao[5].yinxudui[3]=46262; yinxubiao[6].pinyin="yao";yinxubiao[6].count=4; yinxubiao[6].yinxudui[0]=41426; yinxubiao[6].yinxudui[1]=43730; yinxubiao[6].yinxudui[2]=43474; yinxubiao[6].yinxudui[3]=42962; } //求最小转移概率和 void function(int i,int j){ //默认第一个转移概率最大 node[i][j].sum=zhuanyibiao[node[i][j].innercode].zhuanyidui[0].zhuanyigailu+node[i-1][0].sum; //比较其他,求最小转移概率 for(int k=1;k 0)cout<0)cout< >total; cout< >daichabiao[i].pinyin; cout< =0;i--){ result[i]=node[i][c].innercode; c=node[i][c].parentcolumn; } //输出结果 cout<<"结果是:"< >8; l=result[i]&0x0000ff; putchar(l); putchar(y); } cout< >m; if(m==1){ FILE *fp; if((fp=fopen("reslut.txt","w"))==NULL){ cout<<"file cannot be opened!!!"< >n; } //----------------结束语---------------------- cout<