#ctc #ken-lm #beam-search

ctclib-pp

与CTC相关的实用工具集合,目标是快速且高度灵活,具有KenLM模型的困惑度得分

1个不稳定版本

0.2.0 2023年2月23日

#851 in 数学

每月 21 下载次数
用于 ungoliant

MIT 协议

115KB
773 代码行

ctclib

ctclib at crates.io .github/workflows/ci.yml

注意:目前正在开发中。

与CTC相关的实用工具集合,目标是快速且高度灵活。

特性

  • CTC解码
    • 贪婪解码器
    • 束搜索解码器
    • 带KenLM的束搜索解码器
    • 带用户定义LM的束搜索解码器
    • Python绑定

安装

ctclib 依赖于 kpu/kenlm。您必须安装以下库作为KenLM依赖项。

  • Boost
  • Eigen3

例如,如果您使用Ubuntu(或基于Debian的某些Linux),您可以通过运行以下命令来安装它们

apt install libboost-all-dev libeigen3-dev

使用Rust中的ctclib

目前,ctclib 在crates.io上不可用,但您可以将它用作git依赖项。

[dependencies]
ctclib = { version = "*", git = "https://github.com/agatan/ctclib" }

使用Python中的ctclib

ctclib 提供名为 pyctclib 的Python接口。目前,pyctclib 在PyPI上不可用,但您可以将它作为git依赖项安装。请确保您已安装 cargolibclang-dev

pip install 'git+https://github.com/agatan/ctclib.git#egg=pyctclib&subdirectory=bindings/python'

示例

import pyctclib

decoder = pyctclib.BeamSearchDecoderWithKenLM(
    pyctclib.BeamSearchDecoderOptions(
      beam_size=100,
      beam_size_token=1000,
      beam_threshold=1,
      lm_weight=0.5,
    ),
    "/path/to/model.arpa",
    ["a", "b", "c", "_"],
)
decode.decode(log_probs)

# or you can use user-defined LM
# See pyctclib.LMProtocol

依赖项

~0.9–7.5MB
~54K SLoC