我想创建一个将近 50,000 字的 ARPA 语言模型文件。我无法通过将文本文件传递给 CMU 语言工具来生成语言模型。是否有任何其他链接可以让我获得这么多单词的语言模型?
2 回答
我想我会回答这个,因为它有几票,尽管基于克里斯蒂娜的其他问题,我认为这对她来说不是一个可用的答案,因为 50,000 字的语言模型几乎肯定不会有一个可接受的词由于硬件限制,目前使用这种语言模型格式的 iOS 应用内识别系统的错误率或识别速度(甚至很可能长时间运行)。我认为值得记录它,因为我认为它可能对使用平台的其他人有所帮助,在该平台上,将这种大小的词汇表保留在内存中更可行,也许未来的设备模型也有可能。
据我所知,没有像 Sphinx 知识库工具这样的基于 Web 的工具可以处理 50,000 字的纯文本语料库并返回 ARPA 语言模型。但是,您可以通过以下步骤获得一个已经完整的 64,000 字 DMP 语言模型(可以在命令行中与 Sphinx 或其他平台实现一起使用,与 ARPA .lm 文件相同):
- 从 CMU 演讲网站下载此语言模型:
在该文件夹中有一个名为 language_model.arpaformat.DMP 的文件,它将成为您的语言模型。
- 从 CMU 语音站点下载此文件,它将成为您的发音词典:
https://cmusphinx.svn.sourceforge.net/svnroot/cmusphinx/trunk/pocketsphinx/model/lm/en_US/cmu07a.dic
将 cmu07a.dic 的内容全部转换为大写字母。
如果需要,您还可以通过删除语料库 language_model.vocabulary 中未找到的任何单词来精简发音词典(这将是一个正则表达式问题)。这些文件旨在与 Sphinx 英语声学模型之一一起使用。
如果使用 50,000 个单词的英语语言模型的愿望是由进行某种广义的大词汇量语音识别的想法驱动的,而不是出于使用非常具体的 50,000 个单词的需要(例如,像医学词典或50,000 个条目的联系人列表),如果硬件可以处理,这种方法应该会给出这些结果。可能会有一些 Sphinx 或 Pocketsphinx 设置需要更改,这将通过这种大小的模型优化搜索。
你的训练语料库有多大?如果它只有 50000 字,那将是很小/太小。
一般来说,您可以使用 CMU 或 HTK 的工具包
HTK 语音识别工具包的详细文档在这里:http ://htk.eng.cam.ac.uk/ftp/software/htkbook_html.tar.gz
这里也是对 CMU 的 SLM Toolkit 的描述:http ://www.speech.cs.cmu.edu/SLM/toolkit_documentation.html
另请参阅: 构建与 openears 兼容的语言模型
您可以采用更通用的语言模型,基于更大的语料库并用它插入您的较小语言模型..例如退避语言模型......但这不是一项简单的任务。
见:http ://en.wikipedia.org/wiki/Katz 's_back-off_model