Metadata-Version: 2.3
Name: fasr-punc-ct-transformer
Version: 0.5.8
Summary: ct-transformer punctuation model for fasr
Author: osc
Author-email: osc <790990241@qq.com>
Requires-Dist: fasr
Requires-Dist: funasr
Requires-Python: >=3.10, <3.13
Description-Content-Type: text/markdown

# fasr-punc-ct-transformer

英文文档地址: [README_EN.md](README_EN.md)

CT-Transformer 标点恢复插件。通常作为 ASR 后面的 `sentencizer` 阶段，把无标点识别文本切成带标点的 `AudioSpan` 句子。

## 安装

```bash
pip install fasr-punc-ct-transformer
```

## 注册模型

| 注册名 | 类 | 适用场景 |
|---|---|---|
| `ct_transformer` | `CTTransformerForPunc` | 中文和中英混合标点恢复 |

默认 checkpoint 是 `iic/punc_ct-transformer_zh-cn-common-vocab272727-pytorch`。

## 流水线使用

```python
from fasr import AudioPipeline

pipeline = (
    AudioPipeline()
    .add_pipe("detector", model="fsmn")
    .add_pipe("recognizer", model="paraformer")
    .add_pipe(
        "sentencizer",
        model="ct_transformer",
        disable_log=True,
        disable_pbar=True,
    )
)
```

## Confection 配置

```toml
[punc_model]
@punc_models = "ct_transformer"
disable_update = true
disable_log = true
disable_pbar = true
```

放在流水线里：

```toml
[pipeline]
@pipelines = "AudioPipeline.v1"
pipe_order = ["sentencizer"]

[pipeline.pipes]

[pipeline.pipes.sentencizer]
@pipes = "thread_pipe"

[pipeline.pipes.sentencizer.component]
@components = "sentencizer"

[pipeline.pipes.sentencizer.component.model]
@punc_models = "ct_transformer"
disable_update = true
disable_log = true
disable_pbar = true
```

## 单独使用

```python
from fasr.config import registry

model = registry.punc_models.get("ct_transformer")()
sentences = model.restore("今天天气真好我想出去玩你觉得呢")
for sentence in sentences:
    print(sentence.text)
```

## 参数

| 参数 | 类型 | 默认值 | `true` 时 | `false` 时 | 什么时候改 |
|---|---|---|---|---|---|
| `disable_update` | `bool` | `True` | 跳过 FunASR 更新检查 | 允许检查更新 | 需要稳定启动或调试更新 |
| `disable_log` | `bool` | `True` | 隐藏后端日志 | 显示后端日志 | 调试加载或推理 |
| `disable_pbar` | `bool` | `True` | 隐藏进度条 | 显示进度条 | 交互式脚本需要进度 |

## 说明

- `restore(text)` 返回 `AudioSpanList`，不是普通字符串。
- 输入应是已经识别出来的文本；该插件不做 ASR。
- 流水线中应放在 `sentencizer` 组件上。

## 依赖

- `fasr`
- `funasr`
- Python 3.10-3.12
