Python 将Lmtool合并到PocketSphinx中?

Python 将Lmtool合并到PocketSphinx中?,python,pocketsphinx,Python,Pocketsphinx,我正在尝试创建一种简单的方法,将新关键字添加到PocketSphinx中。其想法是使用一个临时文本文件(通过脚本)将自动添加的单词(或短语)添加到corpus.txt、dictionary.dic和language\u model.lm 目前最好的方法似乎是使用lmtool,然后用更新的版本替换前面提到的文件。然而,这带来了三个问题: Lmtool对于大型库来说速度较慢,因此随着添加更多的单词,处理过程将以指数级的速度变慢 Lmtool需要一个半可靠的internet连接才能工作,我希望能够在脱

我正在尝试创建一种简单的方法,将新关键字添加到PocketSphinx中。其想法是使用一个临时文本文件(通过脚本)将自动添加的单词(或短语)添加到
corpus.txt
dictionary.dic
language\u model.lm

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

  • Lmtool对于大型库来说速度较慢,因此随着添加更多的单词,处理过程将以指数级的速度变慢
  • Lmtool需要一个半可靠的internet连接才能工作,我希望能够在脱机时添加命令
  • 这不是添加命令的最有效的方法,并且与我正在进行的设置不兼容
  • 我想做的是(如果可能的话)使用/创建一个离线版本的lmtool,它从一个临时文本文件(
    input.txt
    )获取输入,处理它们并将内容打印到三个临时文本文件(
    dic.txt
    lm.txt
    corp.txt
    )中

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

  • corp.txt
    中获取输出,并将其添加到
    corpus.txt
    的末尾
  • 查看
    dictionary.dic
    并在
    dic.txt
    中添加任何新词
  • 以某种方式修改
    language\u model.lm
    ,将新术语包含在
    lm.txt
  • 擦除三个输出文件的内容
  • 我的问题是,是否有可能获得能够将结果输出到特定文本文件的lmtool的脱机版本?我知道自动化lmtool是可能的(根据他们的站点),但如果可能的话,我希望能够脱机运行该过程

    还有,以前有没有人尝试过类似的东西,我可以用它作为指导

    我在树莓pi上运行pocketsphinx,我知道它可能无法单独运行lmtool。我的计划是让lmtool在本地服务器上运行,并通过wifi/以太网与pi同步文件


    任何帮助都将不胜感激。

    如果您想在Raspberry Pi上本地生成dict和语言模型(至少2B型),您几乎没有选择余地

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

  • (SRI语言建模工具包)

  • 要在Raspbian上编译SRILM,您需要调整一些文件。 看看这里

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

  • 有了G2P型号(或者您可以自己使用生成FST),或者
  • (序列到序列G2P工具包)
  • 基于此的g2p-seq2seq在RaspberryPi上不受官方支持。有关更多详细信息,请参阅


    有关更多详细信息(用法、如何编译等…),请查阅相应工具包的文档。

    第三个选项是在C+flite中实现的lmtool的自定义代码,用于g2p转换。它是在这里实现的,但可能不容易在Linux上编译:dict生成的第四个选项(可能)是使用espeak。首先使用IPA编写音素,然后将其转换为ARPABet。当然,你需要一个IPA到ARPabe的转换脚本。我会看看那些建议。到目前为止,CMUCLMTK下载得还不错,但按照Jasper网站上Phonetisaurus的下载说明进行操作会导致一个无法解决的未满足依赖性错误。如果您正在查找旧存档,请从下载Phonetisaurus