【问题标题】:Using custom beam scorer in TensorFlow CTC (language model)在 TensorFlow CTC(语言模型)中使用自定义光束评分器
【发布时间】:2016-06-21 14:45:02
【问题描述】:

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

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

【问题讨论】:

    标签: tensorflow language-model


    【解决方案1】:

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

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

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

    【讨论】:

    • 理论上是否可以将 lambdas 函数用于 LM 子图,就像它在 while 循环中所做的那样?那么解码器操作没有调用独立会话?
    猜你喜欢
    • 1970-01-01
    • 2018-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-07
    • 2016-08-15
    • 2021-04-29
    • 1970-01-01
    相关资源
    最近更新 更多