6

是否可以从 Python 端自定义 TensorFlow CTC 实现中的光束评分器?我在 CTCBeamSearchDecoder C++ 类构造函数的评论中看到了这种可能性,但想知道如何为 Python 用户提供此功能?

我们遇到的具体问题是将语言模型插入基于 CTC 的语音解码器中。语言模型可能是一个预训练的 TensorFlow 子图,能够输出用于光束分数调整的概率。但我们需要一种方法将其注入光束计分器。

4

1 回答 1

5

目前没有用于 Python 的 API 可以将语言模型与自定义记分器一起使用。欢迎贡献,但在 Python API 中实现这一点有一些困难,因为它需要在解码器操作内的独立会话中运行 TF LM 子图,并且这些不会很好地融合在一起。

最简单的方法是在 C++ 中,并且需要扩展 BaseBeamScorer 类以及 BeamState(类似于在测试中可以看到的),并在通常会进入的 tensorflow 图的输出之上进一步运行 CTCBeamSearchDecoder::Decode ctc_beam_search_decoder 操作。

通过这样做,您的 BeamScorer 实现可以利用您手头的任何语言模型,并且只需要在将光束从一种状态扩展到另一种状态时返回适当的分数。

于 2016-06-22T10:18:51.430 回答