使用5万个单词创建ARPA语言模型文件

14

我想创建一个包含近50000个单词的ARPA语言模型文件。我无法通过将我的文本文件传递给CMU Language Tool来生成语言模型。是否有其他链接可以获取这么多单词的语言模型?


你的意思是需要一个包含英语单词的集合吗? - Sujit Agarwal
2个回答

10

我认为我应该回答这个问题,因为它有一些赞同票,尽管根据克里斯蒂娜的其他问题,我不认为这会是她可以使用的答案,因为一个50,000字的语言模型几乎肯定不会有合适的单词错误率或识别速度(甚至长时间工作)与目前使用这种语言模型格式的iOS应用程序识别系统相容,这归因于硬件限制。 我觉得记录它很值得,因为我认为它可能对使用保留该大小词汇的平台的其他人有帮助,并且也可能成为未来设备型号的可能性。

我不知道是否有像Sphinx Knowledge Base Tool一样的基于Web的工具,可以混合50,000字的纯文本语料库并返回ARPA语言模型。 但是,您可以通过以下步骤获得已经完整的64,000字DMP语言模型(可以在Sphinx命令行或其他平台实现中与ARPA .lm文件以相同方式使用),如下所示:

  1. 从CMU语音网站下载此语言模型:

http://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/US%20English%20HUB4%20Language%20Model/HUB4_trigram_lm.zip

在该文件夹中有一个名为language_model.arpaformat.DMP的文件,这将成为您的语言模型。

  1. 从CMU语音网站下载此文件,它将成为您的发音词典:

https://cmusphinx.svn.sourceforge.net/svnroot/cmusphinx/trunk/pocketsphinx/model/lm/en_US/cmu07a.dic

将 cmu07a.dic 的内容转换为全部大写字母。

如果您愿意,还可以通过删除语料库 language_model.vocabulary 中找不到的任何单词来缩小发音字典的大小(这将是一个正则表达式问题)。 这些文件旨在与 Sphinx 的英语语言声学模型之一一起使用。

如果使用 50000 个单词的英语语言模型的想法是由进行某种广义大词汇语音识别的需要而不是使用非常特定的 50000 个单词(例如医学词典或 50000 条联系人列表之类的专业内容),那么如果硬件能够处理,该方法应该会产生这些结果。 有些 Sphinx 或 Pocketsphinx 设置可能需要更改以优化对此规模模型的搜索。


1
开耳朵新版本0.91内置了创建语言模型文件的功能。这真正解决了我的问题。希望每个人都能从中得到帮助。 - Vipin
嗨,克里斯蒂娜,很高兴听到OpenEars .91动态语言模型生成对你有用,但我很惊讶它可以用于生成一个50,000个单词的语言模型。这是在设备上工作还是只在模拟器上? - Halle
我只是出于好奇问一下,因为当我设计LanguageModelGenerator类时,我不知道它会被用于这样大的模型或可用于这样大的模型 - 我当时考虑的是上下文特定命令和控制语言模型的10-500个单词。 - Halle
并不是每当我们想为任何单词创建新的语言模型时,就可以动态创建它,我尚未测试过这么多单词。 - Vipin
那么如何创建一个包含大约12k个单词的语言模型呢? - ravoorinandan
我可以按照以下方式使用上述两个文件吗?NSString *lmPath = [[NSBundle mainBundle] pathForResource:@"OpenEarsLanguageFile" ofType:@"DMP"]; NSString *dicPath = [[NSBundle mainBundle] pathForResource:@"OpenEarsLanguageFile" ofType:@"dic"]; [self.pocketsphinxController startListeningWithLanguageModelAtPath:lmPath dictionaryAtPath:dicPath languageModelIsJSGF:NO];如果这种方法不正确,请告诉我正确的使用方法。 - mhrrt

0

你的训练语料库有多大?如果只有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

另请参阅: 构建与openears兼容的语言模型

你可以采用更通用的语言模型,基于更大的语料库,然后将你的较小语言模型与之插值。例如,后退(back-off)语言模型...但这不是一个简单的任务。

参见: http://en.wikipedia.org/wiki/Katz的后退(back-off)模型


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接