
精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
锐英源精品原创,禁止全文或局部转载,禁止任何形式的非法使用,侵权必究。锐英源软件对经典开源项目有大量翻译,翻译内容技术层次较高,对初学者有深究意义。本文也是解决问题中查到的线索,有类似问题的朋友可以联系交流。有幸浏览到的朋友请关注头条号,可以获取最新更新。致谢kaldi开源团队,原文链接:https://sourceforge.net/p/kaldi/discussion/1355348/thread/a20f6e45/?limit=25#09dd/ddaa
我希望通过只交换AM而不交换LM来在2种语言之间进行跨语言识别。那么只交换 final.mdl 文件就足够了吗? 还是我也需要交换 HCLG.fst(和任何其他文件)?
2)填充声音(在silence.txt中列出)是否用于准备LM?即准备 HCLG.fst 文件?
Hclg是LM的代表
你想做的事情没可能。final.mdl 中的上下文相关状态在HCLG 图中编码,因此它只能与该模型一起使用。在任何情况下,除非两种语言共享同一个音素集(这是不可能的),否则没有明智的方法将一种语言的 LM 与另一种语言的 AM 一起使用。如果音素相同,并且phones.txt 文件相同,则可以使用一种语言的“lang”目录和另一种语言的exp/whatever 目录构建图形。这将很少适用。
谢谢。
1) 两种语言的非静音音素设置相同。但是 lang1 包含 10 个额外的静音(填充)音素(除了 sil),而 lang2 只包含 sil。我可以用 final.mdl_1 解码 lang2,但反之则不行。我怀疑 HCLG.fst_1 也包含静音音素信息。我想我需要重新准备 没有 10 个静音音素下的 HCLG_1.fst。
2)删除过多的处理方法是什么?例如我获得的如下所示。
461 ins, 47232 del, 16159 sub
如果您使用 HCLG.fst 和不匹配的 final.mdl 进行解码,则有两种可能性:
(1) HCLG.fst 来自具有更大 #pdfs 的 final.mdl -> 解码会崩溃
(2) HCLG.fst 来自来自具有更小或等于 #pdfs ->解码的final.mdl将给出无意义的结果。
两个都不是你想要的结果。可能最简单的方法是使用相同的音素集构建两种语言,然后使用一种语言的 lang 目录和另一种的 final.mdl构建 HCLG 。
但是,将有关此线程的更多问题发送至 dpovey@gmail.com-- 我认为让整个列表看到有关此问题的任何进一步讨论都没有意义。