Breeze-ASR-25 — CTranslate2 format for faster-whisper
CTranslate2 (CT2) quantized variants of MediaTek-Research/Breeze-ASR-25, ready to drop into faster-whisper, whisper-streaming, WhisperLiveKit, and any tool that loads CTranslate2 Whisper models.
Breeze-ASR-25 is a Whisper-large-v2 fine-tune by MediaTek Research, optimized for Taiwanese Mandarin and Mandarin–English code-switching (intra- and inter-sentential). On Taiwan-flavored mixed-language input it outperforms vanilla Whisper-large-v2 by a substantial margin while preserving Whisper's English ability.
Available variants
Each subfolder is a self-contained CTranslate2 model directory.
| Subfolder | Size | Quant | When to pick |
|---|---|---|---|
float16/ |
2.9 GB | fp16 | GPU deployment with ample VRAM; baseline quality |
int8_float16/ ⭐ |
1.5 GB | INT8 weights + FP16 compute | Recommended sweet spot — works on both GPU and Mac CPU (see compute_type note below) |
int8/ |
1.5 GB | INT8 throughout | Pure CPU servers; slightly more aggressive quantization |
Each subfolder contains the full CT2 layout: model.bin, config.json, vocabulary.json, plus tokenizer + preprocessor files for faster-whisper.
⚠️ Mac CPU compute_type warning
The int8_float16 storage format does not map 1:1 to a runtime compute_type on every device. Mac CPU (Apple Silicon) lacks efficient fp16 compute paths, so you cannot pass compute_type="int8_float16" literally on Mac CPU — you'll get:
ValueError: Requested int8_float16 compute type,
but the target device or backend do not support efficient int8_float16 computation.
Use compute_type="default" and let CT2 pick the best runtime path:
# Pre-download the variant you want (each subfolder is a self-contained CT2 model)
hf download shdennlin/breeze-asr-25-ct2 --include "int8_float16/*" --local-dir ./models
from faster_whisper import WhisperModel
# Recommended — works on both Mac CPU and CUDA GPU
model = WhisperModel(
"./models/int8_float16",
device="auto",
compute_type="default", # auto: int8_float16 on GPU, int8_float32 on Mac CPU
)
CTranslate2 will print a benign warning on Mac CPU that says it converted the weights to int8_float32 at load time — that's expected and correct behavior.
For NVIDIA GPU you can still pin compute_type="int8_float16" explicitly if you want.
Quick start
faster-whisper
pip install faster-whisper huggingface_hub
Step 1 — download the quantization you want (each subfolder is a self-contained CT2 model):
hf download shdennlin/breeze-asr-25-ct2 --include "int8_float16/*" --local-dir ./models
Step 2 — load and transcribe:
from faster_whisper import WhisperModel
model = WhisperModel(
"./models/int8_float16",
device="auto",
compute_type="default", # see Mac CPU warning above
)
segments, info = model.transcribe(
"your-audio.wav",
beam_size=5,
language="zh", # or omit for auto-detect
)
print(f"Detected language: {info.language}")
for seg in segments:
print(f"[{seg.start:.2f}-{seg.end:.2f}] {seg.text}")
Note: faster-whisper's
WhisperModel(repo_id, revision=...)shortcut only works for size aliases (tiny/base/small/...) or Systran-prefixed repos. For custom CT2 repos like this one, pre-download then pass the local path.
Streaming with whisper-streaming
pip install whisper-streaming faster-whisper
from whisper_online import FasterWhisperASR, OnlineASRProcessor
asr = FasterWhisperASR(
lan="zh",
modelsize=None,
cache_dir=None,
model_dir="./models/int8_float16", # pre-downloaded CT2 dir
)
online = OnlineASRProcessor(asr)
# ... feed audio chunks ...
Device / compute_type cheatsheet
| Device | Recommended subfolder | compute_type |
Notes |
|---|---|---|---|
| NVIDIA GPU (Ampere+) | int8_float16 |
int8_float16 or default |
Tensor Cores fully utilized |
| NVIDIA GPU (older / 8GB VRAM) | int8_float16 |
default |
Lets CT2 pick |
| Mac CPU (Apple Silicon) | int8_float16 |
default ⚠️ |
NEVER literal int8_float16 — fp16 not supported on CPU |
| x86 CPU (no AVX-512 BF16) | int8 |
int8 or default |
INT8 throughout is most efficient |
| High-VRAM GPU server | float16 |
float16 |
Highest quality |
Model details
- Base model: openai/whisper-large-v2 (1.55B parameters)
- Fine-tuned by: MediaTek Research
- Original HF repo: MediaTek-Research/Breeze-ASR-25
- Paper: Breeze ASR 25 / Twister (arXiv 2506.11130)
- Languages: Traditional Chinese (zh-TW), English, Mandarin-English code-switching
- Architecture: Whisper-large-v2 encoder-decoder (32 layers each, n_audio_state=1280)
Conversion provenance
These CT2 variants were produced from MediaTek-Research/Breeze-ASR-25's HuggingFace transformers format using ct2-transformers-converter (CTranslate2 4.7.1), with the standard Whisper tokenizer + preprocessor files copied. Verified on macOS arm64 — faster-whisper successfully transcribes the JFK sample with all three quantization levels.
License
Apache 2.0 — inherited from the upstream Breeze-ASR-25 model and Whisper-large-v2 base. See LICENSE in the original repo.
Companion repo
For whisper.cpp / VoiceInk users (GGML .bin format, Core ML ANE acceleration), see the GGML variants: shdennlin/breeze-asr-25-ggml.
Acknowledgments
Massive thanks to:
- MediaTek Research for releasing Breeze-ASR-25 under Apache 2.0
- OpenNMT / CTranslate2 team for the inference engine
- SYSTRAN for faster-whisper
- OpenAI for the original Whisper model
Model tree for shdennlin/breeze-asr-25-ct2
Base model
openai/whisper-large-v2