我正在进行语音转文字和文字转语音方面的开发工作,发现OpenEars API非常有用。 这个基于cmu-slm的API的原则是使用语言模型将iPhone设备听到的语音映射。所以我决定找一个大的英语语言模型来输入到API语音识别引擎中。但我不明白voxfourge英文数据模型的格式,也不知道如何使用它与OpenEars一起工作。 有没有人知道我如何获取适用于OpenEars的英语语言模型的.languagemodel和.dic文件?
关于LM格式:据我所知,大多数语言模型使用ARPA标准的语言模型。 Sphinx / CMU语言模型被编译成二进制格式。您需要源格式才能将Sphinx LM转换为另一种格式。大多数其他语言模型都是文本格式。我建议使用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 这是我在网络上找到的ARPA格式语言模型示例:http://www.arborius.net/~jphekman/sphinx/full/index.html 您可能首先想创建一个ARPA LM,然后根据需要将其转换为任何二进制格式。总体而言:要构建语言模型,您需要大量的训练数据-以确定在观察到当前输入到此时点之后,词汇表中任何其他单词的概率是什么。您不能只通过添加要识别的单词来“制作”语言模型-您还需要大量的训练数据(=运行语音识别应用程序时观察到的典型输入)。语言模型不仅仅是单词列表-它估计输入中下一个标记(单词)的概率。为了估计这些概率,您需要运行训练过程,该过程在训练数据(例如历史数据)上进行,并观察单词频率以估计上述概率。对于您的问题,也许作为快速解决方案,只需假设所有单词具有相同的频率/概率。1.创建一个包含要识别的单词的字典(字典中的N个单词) 2.创建一个具有每个单词1 / N概率的语言模型(uni-gram语言模型)然后,您可以使用HTK工具包将该uni-gram语言模型(LM)与另一个更大语料库的LM插值。
旧问题,但也许答案仍有趣。OpenEars现在具有内置的语言模型生成功能,因此您可以使用LanguageModelGenerator类在应用程序中动态创建模型,使用MITLM库和NSScanner完成与上述CMU工具包相同的任务。在iPhone上处理一个大于5000个单词的语料库将需要很长时间,但您可以使用模拟器运行一次并从文档文件夹中获取输出并保存它。另一个大词汇识别的选项在这里解释:创建具有50,000个单词的ARPA语言模型文件。说到这一点,作为OpenEars开发者,我需要指出CMU工具的5000个单词的限制与iPhone上使用Pocketsphinx时可能具有良好准确性和处理速度的最大词汇量相当接近。因此,最后一个建议是要么重新构思您的任务,使其不绝对需要大词汇识别(例如,由于OpenEars允许您在飞行中切换模型,您可能会发现您不需要一个巨大的模型,而可以通过多个较小的模型来解决,在不同的上下文中切换),或者使用基于网络的API来进行服务器上的大词汇识别(或者制作自己的API,在自己的服务器上使用Sphinx4)。祝你好运!