我有一个系统,要求用户在提示后重复一个句子。它使用HTK
force-align
用户说出的句子到预定义的单词级标签文件(句子)来获得时间对齐的电话级文件。 HMM已经过大量数据的培训,并使用HVite
提供非常准确的时间对齐文件。当用户 不 说出需要说出的确切句子时,就会出现问题。让我举一个例子来说明:
需要说出的目标句子的单词级标签文件(用户已知):
这是一个非常好的日子。
用户说(案例1):这是一个非常好的日子 在这种情况下,用户重复完全相同的句子。时间对齐的文件非常准确,一切都很好。
用户说(案例2):这是一个很好的日子 在这种情况下,使用如上给出的单词级标签文件来执行强制对齐。生成的时间对齐文件显示用户从未说过的单词的时间瞬间(例如原始句子中存在的VERY,但不在此处)。
在HTK
内是否有办法检测并可能避免这种情况?
一种解决方案是某种前端预处理器可以进行语音识别(这本身就是一个非常难的问题,因为它必须有无限的词汇)并让用户知道他们说的是不正确的。
HTK
中是否有允许我这样做的工具/命令行选项?
P.S:如果需要更多细节,请告诉我。
谢谢,
Sriram
答案 0 :(得分:2)
将文本与可能不正确的转录对齐的任务相当复杂,需要专门的工具。 HTK强制对齐太简单了。而不是使用带有-a的HVite,您需要构建一个适当的wdnet,它将解释由于转录不匹配而可能的插入,删除和替换。
在CMUSphinx,我们目前正在运行一个项目来实现此功能。您已经可以使用它来将文本与不精确的转录对齐。你可以在这里查看它的进展: