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脚本,做了一个简单的统计

    .

  • 相关阅读:
    为什么ip层收到的报文可能已经设置了路由
    由socket fd泄漏想到的一些问题
    Html.DropDownLis绑定数据库
    CSS 属性备注
    获取IP
    读取TXT并筛选数据写入新建TXT
    C#打印图片
    C#生成二维码
    NPOI操作Excel
    Bootstrap
  • 原文地址:https://www.cnblogs.com/welen/p/3805707.html
Copyright © 2011-2022 走看看