首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在多个解码器之间共享语言模型?

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

Stack Overflow用户
提问于 2016-08-15 13:27:50
回答 1查看 432关注 0票数 1

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

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

  • 我在Kaldi文档中没有发现任何关于它的东西。
  • 我正在考虑使用boost::interprocess库来管理对象fst::VectorFst fst::ReadFstKaldi(),因为这是最大的对象。但是这看起来是个大问题,因为它是一个复杂的自定义对象,我不确定boost::interprocess是否能够处理这些问题。我不想深入定制Kaldi对象,让它们得到boost内存共享的支持。

关于这个方法还有什么其他的想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-15 15:11:49

您不需要多个进程,只需跨线程共享fst对象。它是不变的,所以没有必要保护它。您在每个工作人员中创建带有fst指针的解码器,每个线程的解码器是分开的。您可以使用服务处理请求。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38955989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档