单音子模型的假设是一个音素的实际发音与其左右的音素无关。这个假设与实际并不符合。由于单音子模型过于简单,识别结果不能达到最好,因此需要继续优化升级。就此引入多音子的模型。最为熟悉的就是三音子模型,即上下文相关的声学模型。以kaldi的thchs30为例。
作者 | AI大道理
来源 | AI大道理
总 过 程 三音子模型训练 train_deltas.sh 源码解析:需要的文件:
$alidir/final.mdl $alidir/ali.1.gz $data/feats.scp $lang/phones.txt
过程
累计相关统计量 acc-tree-stats.cc功能:为决策树的构建累积相关的统计量。
输入:声学模型、特征、对齐
输出:统计量。
源码解析
过程
源码解析:
1)数据结构
std::map tree_stats
那么如何确定以b为中间音素的三音子的第二个状态下面挂着的pdf-id呢?pdf-2怎么得到?
函数声明:
函数过程:
SplitToPhones()
3)BuildTreeStatsType
构建决策树所用到的统计量可以表示成:
typedef std::vector<:pair clusterable> >
BuildTreeStatsType;
sum-tree-stats.cc功能:语音上下文树构建的总和统计。
总 结 扫码关注我们带你了解更多干货内容快速掌握一手学习资料