kaldi源码分析(一)--kaldi脚本

数据准备

发音词典 L.fst

将之前的词典转换为L.fst 以及 topo文件

utils/prepare_lang.sh --position-dependent-phones false lang/dict “<UNK>” lang/local lang/lang


提取特征

脚本使用
steps/make_mfcc.sh根据wav.scp提取特征
steps/compute_cmvn_stats.sh根据feats.scp计算cmn

声学模型训练

脚本作用
steps/train_mono.sh单音素训练 ,一共进行40次迭代,每两次迭代进行一次对齐操作
steps/train_deltas.sh以单音素模型为输入训练上下文相关的三音素模型
steps/train_lda_mllt.sh用来进行线性判别分析和最大似然线性转换
steps/train_sat.sh用来训练发音人自适应,基于特征空间最大似然线性回归
steps/nnetsnnet3神经网络
脚本作用
utils/format_lm.sh上述的语言工具基于第三方工具,为ARPA-format,脚本的作业是将其转换为fst,方便与之前的字典fst(L.fst)结合,发挥fst的优势。 脚本最后会检测G.fst中是否存在没有单词的空回环,如果存在会报错,因为这会导致后续HLG determinization的出现错误。脚本utils/format_lm.sh解决把ARPA格式的语言模型转换成OpenFST格式类型。
utils/fix_data_dir.sh该脚本会修复排序错误,并会移除那些被指明需要特征数据或标注,但是却找不到被需要的数据的那些发音

语言模型训练

解码

解码的过程需要对模型进行构图,也就是生成HCLG的过程,模型的构图是按照G L C H 的构图方式进行的,其中

G.fst 表示语言模型

FSA grammar,通过n-gram语言模型得到,将字对应词组

L_disambig.fst The Phonetic Dictionary with Disambiguation Symbols FST

构成一个FST,将发音单元转化为字

C.fst: The Context FST

把triphone 转化成monophone,即在第2步骤中扩展了context,即扩展为triphone,最终输出是CLG.fst

H.fst: The HMM FST

把HMM的state映射到triphone ,即把pdf-id映射到triphone,也就是扩展了HMM,即输入时pdf-id,输出是发音单元

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值