码迷,mamicode.com
首页 > 其他好文 > 详细

【sphinx】sphinx4学习笔记

时间:2015-12-22 19:16:57      阅读:493      评论:0      收藏:0      [点我收藏+]

标签:

  • sphinx-core工程是个java工程,内带两个例子,一个是helloword,其中涵多个功能,例如录音,对齐等。(还未挨个实验)
  • 另一个是hellongram,就是语音识别。可以用到的参数文件有hellongram0.xml,hellongram9.xml,hellongram1.xml.其中1.xml中没有用到语言模型,而是用JSFG来定义句子的语言规则,貌似是用正则表达式规定了待识别的句子只有如下可能:(hello)(jim|kate|tom)等。
  • hellongram0.xml是用于ngram语言模型的例子,xml文件中定义了声学模型,语言模型,词典的存放路径。
  • recognize开始,先load所有可用的模型,到如下阶段,load模型定义文件mdef,然后分别根据均值,方差,转换矩阵分配池子和大小。然后对每一个声元(senone)建立一个池子(distFloor:最低分数值,看起来是识别最低阈值,varianceFloor:最低方差值)
variancePool = loadDensityFile(dataLocation + "variances",
                varianceFloor);
        mixtureWeightsPool = loadMixtureWeights(dataLocation
                + "mixture_weights", mixtureWeightFloor);
        transitionsPool = loadTransitionMatrices(dataLocation
                + "transition_matrices");
        transformMatrix = loadTransformMatrix(dataLocation
                + "feature_transform");

        senonePool = createSenonePool(distFloor, varianceFloor);
  • 目前问题:试用demo自带的wsj模型目录时候,加载成功可以运行。而读取我训练的模型时候,加载错误。debug问题发现两个模型之间有如下不同
    ================
    wsg-0.xml模型格式:
    -------------------------------
    senone:4147
    numGausePerSenone:8
    means:33176=4147*8
    variances:33176
    streams:1
    
    =================
    
    
    male_result(my)模型格式:
    -----------------------------------
    senone:186
    GaussianPerSenone:256
    means:1024
    varians:1024
    streams:4

    分析原因,是否针对sphinx4加载的模型,有些参数是固定的,比如streams的个数,以及Gauss个数

【解决】

     修改sphinx-config训练参数文件中,将semi改为cont,应该注意到其后的备注,使用pocketsphinx时候,是用semi格式,用sphinx3时候有cont格式,则对应的stream是1,gause数目是8.以此,得到cont模型,加载到sphinx4环境中,编译,ok!运行顺利,使用自己的模型,然后用自己的声音测试,结果如下:

Start speaking. Press Ctrl-C to quit.

resultList.size=1
bestFinalToken=0050 -6.8291255E06 0.0000000E00 -1.0008177E04 lt-WordNode </s>(*SIL ) p 0.0 -10008.177{[长城][</s>]}
50 </s> -10008.177 0.0
50 长城 68886.47 0.0
4 <sil> 0.0 0.0
0 <s> 0.0 0.0
0result=<s> <sil> 长城 </s>
resultList.size=1
bestFinalToken=0050 -6.8291255E06 0.0000000E00 -1.0008177E04 lt-WordNode </s>(*SIL ) p 0.0 -10008.177{[长城][</s>]}
50 </s> -10008.177 0.0
50 长城 68886.47 0.0
4 <sil> 0.0 0.0
0 <s> 0.0 0.0
resultList.size=2
bestFinalToken=0077 -7.2286605E06 0.0000000E00 -1.0008177E04 lt-WordNode </s>(*SIL ) p 0.0 -10008.177{[长城][</s>]}
77 </s> -10008.177 0.0
59 长城 68886.47 0.0
4 <sil> 0.0 0.0
0 <s> 0.0 0.0
1result=<s> <sil> 长城 </s>
resultList.size=2
bestFinalToken=0077 -7.2286605E06 0.0000000E00 -1.0008177E04 lt-WordNode </s>(*SIL ) p 0.0 -10008.177{[长城][</s>]}
best token=0077 -7.2286605E06 0.0000000E00 -1.0008177E04 lt-WordNode </s>(*SIL ) p 0.0 -10008.177{[长城][</s>]}
77 </s> -10008.177 0.0
59 长城 68886.47 0.0
4 <sil> 0.0 0.0
0 <s> 0.0 0.0
You said: [长城]

Start speaking. Press Ctrl-C to quit.

 

 sphinx4白皮书

 

【sphinx】sphinx4学习笔记

标签:

原文地址:http://www.cnblogs.com/lijieqiong/p/5066813.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!