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