0

我正在制作一个语音识别系统,Julius 在这项工作中显示出不错的结果。示例 .voca 文件中的单词可以完美识别,但如何将自己的单词和转录内容放入文件中?

我已经尝试过 VoxForge ( http://www.voxforge.org/ ) 的最新版本,并使用他们的词汇表为声学模型进行夜间构建,但我在 julius 开始时遇到了很多错误,如下所示:

Error: voca_load_htkdict: line 19: triphone "r-d+v" not found
Error: voca_load_htkdict: line 19: triphone "d-v+aa" not found
Error: voca_load_htkdict: the line content was: 2   [AARDVARK]  aa r d v aa r k
Error: voca_load_htkdict: begin missing phones
Error: voca_load_htkdict: r-d+v
Error: voca_load_htkdict: d-v+aa
Error: voca_load_htkdict: end missing phones
Error: init_voca: error in reading /usr/src/custom/julius/quickstart/grammar/sample.dict
ERROR: failed to read dictionary "/usr/src/custom/julius/quickstart/grammar/sample.dict"
ERROR: m_fusion: some error occured in reading grammars
ERROR: Error in loading model

有人知道 .voca 文件的单词转录规则吗?

4

1 回答 1

2

错误原因:当您的字典包含未在声学模型中训练的单词时,julius optput 这些消息,因为“voca_load_htkdict.c”试图将 dict 文件中的三音素与声学模型中的三音素列表相匹配,所以当它没有找到它,它显示此错误并停止程序。

可能的错误解决方案: 1. 启用 -forcedict 选项或取消注释 jconf 文件以跳过字典中的错误词并强制运行。或.. 2. 将“未找到的三音素”映射到 hmmlist 文件“tiedlist”中最接近的物理三音素。例如: b-ey+t v-eh+t 第一列是 triphone 的名称(从您的字典中生成),第二列是您的 AM 中实际定义的 HMM 的名称。

但是如果“未找到的三音素”很少而不是太多,则可以完成此解决方案。

  1. 最好的解决方案是不要在您的 dict 文件中包含不在 AM 中的单词注意,前两个解决方案仅用于测试 julius,因为对于生产或商业项目,您必须使用相同的语料库训练声学模型和语言模型。
于 2011-02-14T08:15:06.130 回答