使用韵律实验室得到HTK错误[+1452],关于字典中的单词不在ord中

2024-05-15 03:46:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用prosody.lab,它使用HTK来构建语言模型。我试图训练这个新模型,但是我得到了以下HTK错误

ERROR [+1452]  ReadDictProns: word HAO' out of order in dict dictionary.dict 

下面是我的字典是如何排序的

^{pr2}$

因此,在做一些研究时,我遇到了一个website,它说产生这个错误的原因是:

Unix sort doesn't seem to match the sort HTK is looking for. Python's sort function seems to work. Numbers are sorted with '.' before 0, shorter before longer (1 < 1.0 < 10 < 100).

我想排序是因为我的字典里有特殊的字符。根据站点的指示,我将这些单词放入一个列表中,并使用python sort函数对这些单词进行排序。在

unsorted_list = ["EH", "ENSKA", "É'THO", "HAO'", "HENH", "KAHNAWAKE", "KAHYÁ:TON'"]
sorted(unsorted_list)

但是上面的代码生成一个与我的字典顺序相同的列表。在

所以我试着把我的字典放到另一个文件中(unsorted_dict.txt),并使用unix命令sort对其进行排序:

$sort unsorted_dict.txt

但这也产生了同样的顺序和我的字典。在

EH
ENSKA
É'THO
HAO'
HENH
KAHNAWAKE
KAHYÁ:TON'

我还尝试在字典文件中按如下顺序切换HAO'和{}:

EH
ENSKA
É'THO
HENH
HAO'
KAHNAWAKE
KAHYÁ:TON'

但此顺序会产生以下错误:

ERROR [+1452]  ReadDictProns: word HENH out of order in dict dictionary.dict

Tags: 字典排序顺序错误sortdicthtkhao
2条回答

错误[+1452]ReadDictProns:单词HAO'在dict中无序字典.dict在

this issue comes when "HAO'" word not exist in your input dictionary. you have to add in dictionary,that word with its cmu convertion.

任何一句话都会包含你的训练数据。在

如果它包含在你的字典中,那么错误是由于你的yaml文件配置,有一套发音列表,如果你对任何单词进行了任何新的转换,你必须在那里添加。在

注意:如果您没有对字典进行排序,请使用此命令并首先对其排序-”/排序.py语言文字“或”/排序.py<;语言文字>;新建_语言文字““

请参考此链接以获取更多信息-https://github.com/prosodylab/Prosodylab-Aligner

很可能,HTK期望的排序顺序非常幼稚,并且基于字符使用的字节序列。在本例中,É将出现在所有没有重音的字符之后。所以这个命令是正确的:

EH
ENSKA
HENH
HAO'
KAHNAWAKE
KAHYÁ:TON'
É'THO

请参见http://www.tamasoft.co.jp/en/general-info/unicode.html,了解按字节序列排序的字符。在

相关问题 更多 >

    热门问题