--- license: apache-2.0 base_model: FireRedTeam/FireRedPunc pipeline_tag: automatic-speech-recognition library_name: openasr tags: - openasr - oasr - firered-punc ---
# FireRedPunc ยท OpenASR **Chinese punctuation restoration for OpenASR -- a BERT token classifier that adds full-width marks to unpunctuated transcripts, fully on-device** [![License](https://img.shields.io/badge/license-Apache--2.0-2563eb.svg)](https://huggingface.co/FireRedTeam/FireRedPunc) [![Format](https://img.shields.io/badge/format-.oasr-7c3aed.svg)](https://github.com/QuintinShaw/openasr) [![Runtime](https://img.shields.io/badge/runtime-OpenASR-111827.svg)](https://openasr.org) [![Base model](https://img.shields.io/badge/base-FireRedPunc-f59e0b.svg)](https://huggingface.co/FireRedTeam/FireRedPunc) A capability-pack support model for the **[OpenASR](https://github.com/QuintinShaw/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 ```bash # 1. Install the OpenASR CLI ยท https://openasr.org # 2. Pull the pack openasr pull firered-punc:fp16 # 3. Use it as an opt-in refinement for another model's transcribe call openasr transcribe meeting.wav --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](https://huggingface.co/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](https://huggingface.co/FireRedTeam/FireRedPunc)). 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](https://huggingface.co/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 - ๐Ÿฆ€ **OpenASR** โ€” - ๐ŸŒ **Website** โ€” - ๐Ÿค— **Upstream model** โ€” [FireRedTeam/FireRedPunc](https://huggingface.co/FireRedTeam/FireRedPunc)