whisper-small-qc-fr — CTranslate2 int8
CTranslate2 int8 quantization of Jeremy-p/whisper-small-qc-fr,
openai/whisper-small fully fine-tuned on a Quebec-French-weighted French/English mix
(fr sampling probability 0.90 / en 0.10). 242 MB, for use with faster-whisper.
Training
Full fp32 fine-tune (fp16-autocast mixed precision), gradient checkpointing, 2-GPU DDP.
French and English training data mixed via
datasets.interleave_datasets(probabilities=[0.90, 0.10], stopping_strategy="first_exhausted").
Labels truncated/filtered at a 448-token max length. Quantized to int8 via
ct2-transformers-converter after fine-tuning.
Results
French, n=100:
| Model | WER |
|---|---|
openai/whisper-small (stock) |
49.0% |
faster-whisper base int8 |
66.9% |
Qwen3-ASR-0.6B |
40.3% |
| this model, fp32 | 37.9% |
| this model, ct2 int8 | 35.1% |
English, n=324:
| Model | WER |
|---|---|
openai/whisper-small (stock) |
5.67% |
faster-whisper base int8 |
6.13% |
Qwen3-ASR-0.6B |
2.34% |
| this model, fp32 | 3.51% |
| this model, ct2 int8 | 3.69% |
int8 quantization costs roughly 0.2pt WER on English relative to fp32 (3.51% → 3.69%, ~5% relative).
Usage
from faster_whisper import WhisperModel
model = WhisperModel("Jeremy-p/whisper-small-qc-fr-ct2-int8", compute_type="int8")
segments, info = model.transcribe("audio.wav", language="fr")
print("".join(seg.text for seg in segments))
The fp32 Transformers checkpoint is at Jeremy-p/whisper-small-qc-fr.
License
MIT