[转]kaldi基于GMM做分类问题
2024-09-21 14:52:25
转自:http://blog.csdn.net/zjm750617105/article/details/55211992
对于每个类别的GMM有几种思路:
第一是将所有训练数据按类别分开,每类的数据训练一个GMM模型
第二是将所有的数据训练一个UBM模型,然后将训练数据按类别分开,用MAP去训练每个类别的GMM(对角UBM的MAP貌似kaldi 没有)
第三就是将所有的数据训练一个UBM模型,然后不做MAP,直接用训好的UBM所GMM的初始值,然后将所有训练数据按类别分开,训练三个GMM模型(在第一种方法的GMM初始化用训好的UBM)
准备测试集数据,如果训练GMM是用的是原始的MFCC特征的话,也就是不经过add-delta apply-cmvn selected-voiced 等操作的话,那就直接用测试集的MFCC特征的feats.scp文件就好了。
但是如果你的特征在训GMM的脚本里经过一些处理,那就是按照相同的处理,意思就是在输入模型之前特征的前端处理必须保持一致
比如:
select-voiced-frames scp:feats.scp scp:vad.scp ark:- | compute-cmvn-stats ark:- ark:- | apply-cmvn --norm-vars=false ark:- scp:feats.scp ark:- | add-deltas --delta-window=3 --delta-order=2 ark:- ark:- | select-voiced-frames ark:- scp:vad.scp ark,t:final_feats.txt
#经过处理之后的特征在final_feats.txt中,可以直接vim打开验证一下维度对不对.
训好三个diag_GMM之后, 可以直接用kaldi的工具进行计算对数似然值:
#这个可以,计算的每一帧的似然值
gmm-global-get-frame-likes final.dubm scp:feats.scp ark,t:F_likes
#对每一帧的似然值取平均,每句话得到一个似然值
gmm-global-get-frame-likes --average=true final.dubm scp:feats.scp ark,t:F_likes
#由于上面测试集的数据是 final_feats.txt,那么我们的脚本就是:
gmm-global-get-frame-likes --average=true final.dubm ark,t:final_feats.txt ark,t:F_likes
#得到的输出文件F_likes,内容格式: uttId score
计算似然值的公式也很简单,很多现有值在GMM的模型里已经算出来了, weights , gconst , invvars, means_invvars直接根据这些结果只进行计算就可以了。
训练得到的diag gmm 模型是 final.dubm ,可以用转化成文本
gmm-global-copy --binary=false final.dubm final_dubm.txt
最新文章
- JSOUP选择器语法说明
- 屏幕取色工具推荐 ColorPix
- 2015年8月TIOBE编程语言排行榜
- Java组待开发的任务
- android 文件的权限
- Linux之在CentOS上一次艰难的木马查杀过程
- golang 的 http cookie 用法
- 2.Spring 拦截器应用
- Leetcode 526
- $scope作用域与依赖注入
- Kettle-6.1安装部署及使用教程
- 【CF438E】The Child and Binary Tree(多项式运算,生成函数)
- iOS:tableView表头下拉放大的效果
- HashMap和Hashtable的比较
- spring入门学习感悟
- MySQL存储引擎 -- MyISAM 与 InnoDB 实现
- 应用交付工程师Troubleshooting经验分享
- https微信分享看不到图片的坑
- Code-NFine:.NET快速开发平台 NFine.Framework Web框架
- UNIDAC不能识别CLIENTDATASET的TSINGLEFIELD
热门文章
- Rational AppScan 标准版可扩展性和二次开发能力简介
- odoo KeyError
- 手把手教学在Springboot中搭建使用Guava cache,包教包会,不会我输一包辣条给你
- VSCode的使用
- TypeError: unsupported operand type(s) for +: 'float' and 'decimal.Decimal'
- docker-3 Apache
- VNF网络性能提升解决方案及实践
- 递归求6的阶乘(考虑int类型溢出)
- jquery倒计时按钮常用于验证码倒计时
- JAVA实训第二次作业