2016-06-21 85 views
5

是否有可能在Python端定製TensorFlow CTC實現中的梁記分器?我在CTCBeamSearchDecoder C++類構造函數中看到了這種可能性,但想知道如何爲Python用戶提供這種功能?在TensorFlow CTC(語言模型)中使用自定義梁記錄器

我們的具體問題是將語言模型插入基於CTC的語音解碼器。語言模型可能是一個預先訓練的TensorFlow子圖,能夠輸出波束分數調整的概率。但是我們需要一種方法將其注入射束得分手。

回答

5

目前沒有用於Python的語言模型與自定義記分器的API。貢獻是值得歡迎的,但在Python API中實現這一點存在一些困難,因爲它需要在解碼器內部的獨立會話中運行TF LM子圖,並且這些不會很好地融合在一起。

這樣做的最簡單方法是使用C++,並且需要擴展BaseBeamScorer類以及BeamState(類似於可以在測試中看到的內容),並進一步在來自tensorflow圖的輸出之上運行CTCBeamSearchDecoder :: Decode通常會進入ctc_beam_search_decoder操作。

通過這樣做,你的BeamScorer實現可以利用你在手,只是需要從一個國家擴展束到另一個時返回相應分數的任何語言模型。

+0

從理論上講,是否可以對LM子圖使用lambdas函數,就像它爲while循環完成一樣?所以解碼器不是在調用獨立會話? –