FireRedPunc · OpenASR
Chinese punctuation restoration for OpenASR -- a BERT token classifier that adds full-width marks to unpunctuated transcripts, fully on-device
A capability-pack support model for the
OpenASR
runtime — pure-Rust inference,
no Python at inference time. Not a standalone
transcription model: it augments another OpenASR ASR model's own decode path.
✨ Highlights
- 🈶 Chinese punctuation restoration -- restores full-width
,。?! on an unpunctuated ASR transcript (e.g. Dolphin, FireRedASR2-AED) in a finalize-only post-processing pass
- 🧠 BERT token classifier -- a 12-layer
chinese-lert-base encoder with a 5-class head predicting which of none/,。?! follows each subword
- 🇨🇳 Chinese-only by construction -- the released label set has no English half-width marks, so only Chinese text is punctuated
- 🔌 Opt-in and auto-gated -- runs only when the ASR model is unpunctuated and this pack is installed, so punctuating families are never double-punctuated
- 🦀 Native in OpenASR —
.oasr packs run with no Python at inference, engineered for peak performance on CPU & GPU
🚀 Quickstart
1# 1. Install the OpenASR CLI · https://openasr.org
2# 2. Pull the pack
3openasr pull firered-punc:fp16
4
5# 3. Use it as an opt-in refinement for another model's transcribe call
6openasr transcribe meeting.wav --model <asr-model> --word-timestamps=aligned
📦 Pack
| Quant | File (.oasr) | Size |
|---|
| fp16 | firered-punc-fp16.oasr | 204 MB |
🧠 About FireRedPunc
FireRedPunc is a punctuation-prediction model from FireRedTeam, part of the
FireRedASR2S all-in-one ASR system. It adopts a BERT-style encoder initialized from
chinese-lert-base (a 12-layer, 768-hidden, 12-head BERT) with a token-classification head
that predicts, for each subword, which of five classes follows it: none, or one of the four
Chinese full-width marks ,, 。, ?, !. It is a text-in / labels-out post-processor,
not an ASR model -- no audio frontend, no autoregressive decode.
In OpenASR it is packaged as an optional punctuation capability pack: an unpunctuated
family's finished transcript (e.g. Dolphin or FireRedASR2-AED) is passed through the classifier
once, and the predicted marks are re-inserted into the original characters. The stage is
auto-gated on the ASR model's catalog emits_punctuation == false and only runs when this pack
is installed, so punctuating families are never double-punctuated. Because the released label
set is Chinese-only, the integration is Chinese-only by construction (the architecture cannot
emit English half-width marks).
This OpenASR repo repackages the upstream weights as .oasr packs that run natively in the
OpenASR runtime -- no Python at inference, all decoding local. It ships in fp16.
Not a standalone transcription model. This pack cannot transcribe audio by itself; it is an
opt-in post-process applied to an unpunctuated ASR model's output.
Verification status: this is a brand-new catalog entry (no prior public listing). Local
verification covers exact per-token label parity against the upstream PyTorch forward across a
set of Chinese golden sentences (all four punctuation classes plus the no-mark class). This
pack is staged in a private repo, not yet publicly listed.
⚙️ How this pack was made
Converted from
FireRedTeam/FireRedPunc with the OpenASR local-source
converter (
convert_local_qwen_forced_aligner_source_to_runtime_pack, not yet wired
to a public
openasr model-pack import subcommand -- the pack format and tensor
mapping are stable, but CLI/family-registry wiring is a separate stage).
The .oasr container is GGUF-backed; packs use zero-copy mmap weight binding.
⚖️ License
This pack
inherits the upstream model's license: Apache-2.0
(
source). OpenASR packaging retains the upstream copyright;
the only modifications are format conversion and quantization.
🙏 Acknowledgements
This pack is a redistribution of
FireRedPunc, created and open-sourced by
FireRedTeam
(
FireRedTeam/FireRedPunc). All credit for the
original architecture, training, and weights belongs to the authors; the license is inherited
from and identical to the upstream model (Apache-2.0). OpenASR only performs format conversion,
runtime verification, and local-inference adaptation.
🔗 Links