我想创建一个简单的方法来将新关键字添加到PocketSphinx中。这个想法是有一个临时文本文件,可用于(通过脚本)添加一个字(或短语)自动添加到corpus.txt
,dictionary.dic
和language_model.lm
。将Lmtool合并到PocketSphinx中?
目前最好的方法是使用lmtool,然后用更新后的版本替换上述文件。然而,这提出了三个问题:
- Lmtool对于大型图书馆来说很慢,所以随着更多单词的添加,这个过程将呈指数级变慢。
- Lmtool需要一个半可靠的互联网连接才能工作,我希望能够在离线状态下添加命令。
- 这不是最有效的添加命令的方式,并且不会与我放在一起的设置一起使用。
我想什么,能够做的是(如果可能)使用/创建lmtool从一个临时的文本文件(input.txt
)需要投入的离线版本对其进行处理,将内容打印成三个临时文本文件(dic.txt
,lm.txt
,corp.txt
)。
最后一步将是运行一个脚本,将:
- 就拿输出
corp.txt
并把它添加到corpus.txt
结束。 - 翻阅
dictionary.dic
并在dic.txt
中添加新单词。 - 以某种方式修改
language_model.lm
以包含lm.txt
中的新术语。 - 清除三个输出文件的内容。
我的问题是,如果有可能得到离线版本的lmtool,能够将结果输出到特定的文本文件?我知道可以自动化lmtool(根据他们的网站),但我希望能够在可能的情况下离线运行此过程。
另外,有没有人尝试过这样的事情之前,我可以用作指导?
我在树莓派上运行pocketsphinx,我知道它可能无法运行lmtool。我的计划是让lmtool在本地服务器上运行,并通过wifi/ethernet与pi同步文件。
任何帮助,将不胜感激。
第三个选项是在C + flite中实现的用于g2p转换的lmtool的自定义代码。它在这里实现,但不容易在Linux上编译:https://github.com/DanielSWolf/rhubarb-lip-sync –
字典生成的第四选项(可能)是使用espeak。首先使用IPA编写音素,然后将它们转换为ARPABet。当然,你需要一个IPA到ARPABet转换脚本。 – G10DRAS
我会检查这些建议。到目前为止,CMUCLMTK已经下载得很好,但是在Jasper网站下载Phonetisaurus的下载说明后,我留下了一个我无法解决的未满足的依赖性错误。 –