Kaldi - 如何在多个解码器之间共享语言模型?

Kaldi - how to share language model among multiple decoders?

我每天都在使用 Kaldi 解码大量音频样本。我有一个计划,将有多个解码器 运行 并行对同一语言模型进行解码。为此,如果我可以共享一种由多个解码器加载到内存中的语言模型,那就太好了。我现在有的型号是1GB的光盘,使用了大约3GB的内存,如果我能再次使用它节省内存就太好了。

有没有人想过这样的事情?可行吗?

关于这种方法还有其他想法吗?

不需要多进程,跨线程共享fst对象即可。它是常量,因此无需保护它。您在每个工作线程中创建带有 fst 指针的解码器,每个线程的解码器都是独立的。您可以使用 io_service 来处理请求。