Instructions to use OpenASR/xasr-zh-en with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- OpenASR
How to use OpenASR/xasr-zh-en with OpenASR:
# Install the openasr CLI: https://github.com/QuintinShaw/openasr/releases openasr pull xasr-zh-en openasr transcribe audio.wav --model xasr-zh-en
- Notebooks
- Google Colab
- Kaggle
| license: apache-2.0 | |
| base_model: GilgameshWind/X-ASR-zh-en | |
| pipeline_tag: automatic-speech-recognition | |
| library_name: openasr | |
| tags: | |
| - automatic-speech-recognition | |
| - speech-to-text | |
| - openasr | |
| - oasr | |
| - xasr | |
| <div align="center"> | |
| # X-ASR zh-en Β· OpenASR | |
| **Bilingual Chinese + English streaming speech recognition β a compact icefall Zipformer2 transducer** | |
| [](https://huggingface.co/GilgameshWind/X-ASR-zh-en/blob/main/README.md) | |
| [](https://github.com/QuintinShaw/openasr) | |
| [](https://openasr.org) | |
| [](https://huggingface.co/GilgameshWind/X-ASR-zh-en) | |
| Native speech-to-text in the **[OpenASR](https://github.com/QuintinShaw/openasr)** runtime β | |
| engineered for peak performance on CPU & GPU, **no Python at inference time**. | |
| </div> | |
| --- | |
| ## β¨ Highlights | |
| - π¨π³π¬π§ **Chinese + English** β one bilingual checkpoint for zh/en speech, including code-switched audio | |
| - β‘ **Streaming-first, offline-capable** β a cache-aware streaming Zipformer2 transducer for low-latency captions that also runs full-file offline transcription | |
| - πͺΆ **Compact ~0.16B** β a 6-stack Zipformer2 encoder + stateless RNN-T decoder + tanh joiner over a 5000-token BPE vocab, light enough for on-device CPU | |
| - π¦ **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 a build (pick a quant β see the table below) | |
| openasr pull xasr-zh-en:q8 | |
| # 3. Transcribe | |
| openasr transcribe audio.wav --model xasr-zh-en | |
| ``` | |
| All builds for this model: | |
| ```bash | |
| openasr pull xasr-zh-en:fp16 | |
| openasr pull xasr-zh-en:q8 | |
| openasr pull xasr-zh-en:q4 | |
| ``` | |
| ## π¦ Available builds | |
| | Quant | File (`.oasr`) | Size | RAM peak | RTF Β· M1 CPU | RTF Β· M1 GPU | JFK ΞWER vs fp16 | | |
| |:------|:---------------|-----:|---------:|-------------:|-------------:|-----------------:| | |
| | fp16 | `xasr-zh-en-fp16.oasr` | 315 MB | 824 MB | 0.07Γ | 0.12Γ | 0.0% | | |
| | q8_0 | `xasr-zh-en-q8_0.oasr` | 176 MB | 549 MB | 0.06Γ | 0.12Γ | 0.0% | | |
| | q4_k | `xasr-zh-en-q4_k.oasr` | 112 MB | 423 MB | 0.06Γ | 0.12Γ | 0.0% | | |
| <sub>RTF = real-time factor on the fixed 11s JFK clip (**lower is faster**); RAM peak measured per pack | |
| in an isolated subprocess. JFK ΞWER compares each quantized build's JFK transcript to this model's | |
| fp16 JFK transcript, so it measures quantization drift rather than absolute recognition accuracy. | |
| **q8_0** is the recommended default β near-reference quality at a fraction of the | |
| footprint.</sub> | |
| ## π§ About X-ASR zh-en | |
| X-ASR-zh-en is a compact **bilingual (Chinese + English)** streaming speech-recognition model from | |
| **GilgameshWind**, built with the **icefall / k2** recipe as a cache-aware **Zipformer2 RNN-T | |
| transducer** (a 6-stack, 19-layer Zipformer2 encoder, a stateless RNN-T decoder, and a tanh joiner | |
| over a 5000-token BPE vocabulary, ~0.16B parameters). The same checkpoint serves both low-latency | |
| **streaming** captions and full-file **offline** transcription, making it a good fit for on-device | |
| Chinese/English dictation and real-time subtitles. This OpenASR repo repackages the weights as | |
| `.oasr` packs that run natively in the OpenASR runtime β no Python at inference time, all decoding | |
| local. The **q8_0** build is the recommended default (it matched the fp16 transcript bit-for-bit in | |
| OpenASR's verification); **q4_k** is the smallest build for tight-memory devices and **fp16** is for | |
| maximum fidelity or verification. | |
| ## βοΈ How these packs were made | |
| Converted from [GilgameshWind/X-ASR-zh-en](https://huggingface.co/GilgameshWind/X-ASR-zh-en) with the OpenASR importer: | |
| ```bash | |
| openasr model-pack import xasr-zipformer <src> <out>.oasr \ | |
| --package-id xasr-zh-en --quantization {fp16,q8-0,q4-k} | |
| ``` | |
| The `.oasr` container is GGUF-backed; packs use zero-copy mmap weight binding and graph | |
| buffer reuse to keep peak memory low. | |
| ## βοΈ License | |
| These packs **inherit the upstream model's license: Apache-2.0** | |
| ([source](https://huggingface.co/GilgameshWind/X-ASR-zh-en/blob/main/README.md)). OpenASR packaging retains the upstream copyright and | |
| NOTICE; the only modifications are format conversion and quantization. | |
| ## π Acknowledgements | |
| This pack is a redistribution of **X-ASR-zh-en**, created and open-sourced by **GilgameshWind** | |
| ([GilgameshWind/X-ASR-zh-en](https://huggingface.co/GilgameshWind/X-ASR-zh-en)). All credit for the | |
| original architecture, training, and weights belongs to the author; the license is inherited from and | |
| identical to the upstream model (Apache-2.0). The model is built on the **icefall** / | |
| **k2 / Next-gen Kaldi** Zipformer2 transducer recipe β thank you to the icefall team and to | |
| GilgameshWind for releasing their work openly. OpenASR only performs format conversion, quantization, | |
| runtime verification, and local-inference adaptation. | |
| ## π Links | |
| - π¦ **OpenASR** β <https://github.com/QuintinShaw/openasr> | |
| - π **Website** β <https://openasr.org> | |
| - π€ **Upstream model** β [GilgameshWind/X-ASR-zh-en](https://huggingface.co/GilgameshWind/X-ASR-zh-en) | |