将 Lmtool 合并到 PocketSphinx 中?

Incorporating Lmtool into PocketSphinx?

我正在尝试创建一种将新关键字添加到 PocketSphinx 中的简单方法。这个想法是有一个临时文本文件,可以用来(通过脚本)添加一个单词(或短语)自动添加到 corpus.txtdictionary.diclanguage_model.lm.

目前最好的方法似乎是使用 lmtool 然后用更新版本替换上述文件。然而,这会带来三个问题:

  1. Lmtool 对于大型图书馆来说很慢,所以随着添加更多的单词,这个过程会呈指数级变慢。
  2. Lmtool 需要半可靠的互联网连接才能工作,我希望能够在离线时添加命令。
  3. 这不是添加命令的最有效方式,并且不适用于我正在组合的设置。

我想做的是(如果可能的话)use/create lmtool 的离线版本,它从临时文本文件 (input.txt) 中获取输入并处理它们并打印出来内容分为三个临时文本文件(dic.txtlm.txtcorp.txt)。

最后一步是 运行 一个脚本,它将:

  1. 获取 corp.txt 中的输出并将其添加到 corpus.txt 的末尾。
  2. 浏览 dictionary.dic 并在 dic.txt 中添加任何新词。
  3. 以某种方式修改 language_model.lm 以包含 lm.txt 中的新术语。
  4. 擦除三个输出文件的内容。

我的问题是是否可以获得能够将结果输出到特定文本文件的离线版本的 lmtool?我知道可以使 lmtool 自动化(根据他们的网站),但我希望能够 运行 如果可能的话离线处理。

另外,有没有人尝试过类似的东西,我可以作为指导?

我 运行ning pocketsphinx 在 raspberry pi 上,我知道它可能无法单独 运行 lmtool。我的计划是在本地服务器上安装 lmtool 运行 并通过 wifi/ethernet 与 pi 同步文件。

如有任何帮助,我们将不胜感激。

你别无选择,如果你想在 Raspberry Pi(至少模型 2B)上本地生成字典和语言模型

对于语言模型生成,您可以使用

  1. CMUCLMTK

  2. SRILM(SRI 语言建模工具包)

要在 Raspbian 上编译 SRILM,您需要调整一些文件。 看这里https://github.com/G10DRAS/SRILM-on-RaspberryPi

对于字典生成,您可以使用

  1. Phonetisaurus with G2P Model available here (or you can generate FST by yourself using phonetisaurus-cmudict-split), 或
  2. g2p-seq2seq(序列到序列 G2P 工具包)

g2p-seq2seq 基于 TensorFlow which is not officially supported on RaspberryPi. For more details see Installing TensorFlow on Raspberry Pi 3

更多详细信息(用法,如何编译等....)请查看相应工具包的文档。