【发布时间】:2011-04-21 11:24:07
【问题描述】:
我想创建一个包含近 50,000 个单词的 ARPA 语言模型文件。我无法通过将我的文本文件传递给 CMU 语言工具来生成语言模型。是否有任何其他链接可以让我获得这么多单词的语言模型?
【问题讨论】:
-
你的意思是说你需要一个英文单词集合吗?
标签: speech-recognition cmusphinx n-gram language-model
我想创建一个包含近 50,000 个单词的 ARPA 语言模型文件。我无法通过将我的文本文件传递给 CMU 语言工具来生成语言模型。是否有任何其他链接可以让我获得这么多单词的语言模型?
【问题讨论】:
标签: speech-recognition cmusphinx n-gram language-model
我想我会回答这个问题,因为它有几票,尽管基于克里斯蒂娜的其他问题,我认为这对她来说不是一个可用的答案,因为 50,000 字的语言模型几乎肯定不会有由于硬件限制,目前使用这种语言模型格式的 iOS 应用内识别系统具有可接受的单词错误率或识别速度(甚至很可能长时间运行)。我认为值得记录它,因为我认为它可能对使用平台的其他人有所帮助,在该平台上,将这种大小的词汇表保留在内存中更可行,也许未来的设备模型也有可能。
据我所知,没有像 Sphinx 知识库工具这样的基于 Web 的工具可以处理 50,000 字的纯文本语料库并返回 ARPA 语言模型。但是,您可以通过以下步骤获得一个已经完整的 64,000 字 DMP 语言模型(可以在命令行中与 Sphinx 一起使用,也可以在其他平台实现中以与 ARPA .lm 文件相同的方式使用):
在该文件夹中有一个名为 language_model.arpaformat.DMP 的文件,它将成为您的语言模型。
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 工具包的描述:http://www.speech.cs.cmu.edu/SLM/toolkit_documentation.html
另见: Building openears compatible language model
您可以采用更通用的语言模型,基于更大的语料库并用它插入您的更小的语言模型......例如退避语言模型......但这不是一项简单的任务。
见:http://en.wikipedia.org/wiki/Katz's_back-off_model
【讨论】: