首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >构建兼容openears的语言模型

构建兼容openears的语言模型
EN

Stack Overflow用户
提问于 2011-03-07 22:08:44
回答 2查看 6.7K关注 0票数 17

我正在做一些语音到文本和文本到语音的开发,我发现OpenEars应用程序接口非常有用。

这个基于cmu-slm的应用程序接口的原理是,它使用语言模型来映射iPhone设备收听的语音。因此,我决定寻找一个大型英语语言模型来为API语音识别器引擎提供支持。但是我不能理解OpenEars使用的voxfourge英语数据模型的格式。

有没有人知道怎样才能让英文版的.languagemodel和.dic文件在OpenEars上工作?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-19 03:28:44

这是一个老问题,但也许答案仍然很有趣。OpenEars现在具有内置的语言模型生成功能,因此您可以选择使用LanguageModelGenerator类在应用程序中根据需要动态创建模型,该类使用MITLM库和NSScanner来完成与上面提到的CMU工具包相同的任务。在iPhone上处理>5000字的语料库将需要很长时间,但您始终可以使用模拟器运行一次,并从documents文件夹中获取输出并保留它。

这里解释了用于大词汇量识别的另一个选项:

Creating ARPA language model file with 50,000 words

话虽如此,我需要指出的是,作为OpenEars开发人员,CMU工具的5000个单词的限制与最大词汇表大小非常接近,当使用Pocketsphinx时,该最大词汇表大小在iPhone上可能具有良好的准确性和处理速度。因此,最后一个建议是,要么重新定义任务的概念,使其绝对不需要大量的词汇表识别(例如,由于OpenEars允许动态切换模型,您可能会发现您不需要一个庞大的模型,而是可以使用多个较小的模型,以便在不同的上下文中切换),或者使用可以在服务器上执行大型词汇表识别的基于网络的应用编程接口(或者在自己的服务器上使用Sphinx4创建自己的应用编程接口)。祝好运!

票数 2
EN

Stack Overflow用户

发布于 2011-04-20 01:41:47

关于LM格式的

AFAIK大多数语言模型使用语言模型的ARPA标准。Sphinx / CMU语言模型被编译成二进制格式。您需要源格式才能将Sphinx LM转换为另一种格式。大多数其他语言模型都是文本格式的。

我推荐使用HTK Speech Recognition Toolkit;详细文档在这里:http://htk.eng.cam.ac.uk/ftp/software/htkbook_html.tar.gz

这里还描述了CMU的SLM工具包:http://www.speech.cs.cmu.edu/SLM/toolkit_documentation.html

这是我在网上找到的ARPA格式的语言模型的一个例子:http://www.arborius.net/~jphekman/sphinx/full/index.html

您可能希望首先创建一个ARPA LM,然后根据需要将其转换为任意二进制格式。

通用的

要构建语言模型,您需要大量的训练数据-在观察当前输入到此时间点后,确定您的词汇表中任何其他单词的概率。

您不能仅仅通过添加您想要识别的单词来“创建”一个语言模型--您还需要大量的训练数据(=运行语音识别应用程序时观察到的典型输入)。

语言模型不仅仅是一个单词列表--它估计输入中下一个标记(单词)的概率。要估计这些概率,您需要运行一个训练过程,该过程遍历训练数据(例如历史数据),并观察那里的词频以估计上述概率。

对于你的问题,也许作为一个快速的解决方案,只要假设所有的单词都有相同的频率/概率。

创建包含要识别的单词的字典(在dictionary)

  • create中为N个单词是一种语言模型,该模型具有1/N作为每个单词的概率(-gram语言模型)

然后,您可以使用HTK Toolkit将单文法语言模型( LM )与另一个LM进行插值,以获得更大的语料库

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5220661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档