zoukankan      html  css  js  c++  java
  • 亲自动手用HTK实现YES NO孤立词识别

    很久以前的发在研学论坛的帖子了,再重新整理了一下,希望对新手有用。

    完整版链接:http://yun.baidu.com/s/1hapcE

    第一步 创建语音文件 录音

    命令:HSLab any_name.sig

    第二步:声学分析

    抽取yes和no的mfcc特征参数。保存在data/train/lab与data/train/sig下。

    命令:HCopy.exe -A -D -C analysis.conf  -S targetlist.txt

    第三步:HMM原型定义

    建立文件yes.hmm、no.hmm、sil.hmm保存在model/下。

    第四步:HMM训练

    1.初始化:(建立文件夹yn/train/init)

     命令: HInite.exe  -A –D –T 1 –H model/yes.hmm –S trainlist.txt –M mode/proto yes

     2.训练

     命令: HRest.exe -A -D -T 1 -H model/proto/yes.hmm -S trainlist.txt -M model/proto yes

    第五步:任务定义

    1.          建立语法规则和字典

    建立语法规则文件gram.txt(在yn文件夹下),内容为:

    /*

    * Task grammar

    */

    $WORD = YES | NO;

    ( { SIL } [ $WORD ] { SIL } )

    建立字典文件dict.txt(在yn文件夹下),内容为:

    YES [yes] yes

    NO [no] no

    SIL [sil] sil

    2.          建立任务网络

    命令:HParse gram.txt net.slf

          HSGen -s net.slf dict.txt

    第六步:识别

    1.  建立文件hmmlist.txt(在yn文件夹下)文件,内容为:

    yes

    no

    sil

    注意每一列最后留一个空格。

    2.          创建待识别信号并抽取mfcc参数(文件为yes01.mfcc)

    3.          命令:Hvite.exe -H model/proto/yes.hmm -H model/proto/ no.hmm -H model/proto/sil.hmm -i reco.mlf -w net.slf dict.txt hmmlist.txt yes.mfcc

    (是model/proto/no.hmm 中间没有空格)

    识别结果自动存放在文件reco.mlf

    #!MLF!#

    "yes01.rec"

    0 34300000 yes -17771.425781

     

    第七步:识别自己写的一个perl脚本,做了一个简单的统计

    .

  • 相关阅读:
    POJ 1659 Frogs' Neighborhood
    zoj 2913 Bus Pass(BFS)
    ZOJ 1008 Gnome Tetravex(DFS)
    POJ 1562 Oil Deposits (DFS)
    zoj 2165 Red and Black (DFs)poj 1979
    hdu 3954 Level up
    sgu 249 Matrix
    hdu 4417 Super Mario
    SPOJ (BNUOJ) LCM Sum
    hdu 2665 Kth number 划分树
  • 原文地址:https://www.cnblogs.com/welen/p/3805707.html
Copyright © 2011-2022 走看看