Jeremy-p/whisper-small-qc-fr
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).
Two formats are published:
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.
Results
French, n=100:
English, n=324:
This model improves on stock Whisper-small and faster-whisper base on both languages, and beats Qwen3-ASR-0.6B on French while trailing it on English. int8 quantization costs roughly 0.2pt WER on English (fp32 3.51% → int8 3.69%, ~5% relative); on the smaller French sample it was directionally better, more likely sampling noise than a real effect.
Usage
fp32 via transformers
from transformers import WhisperProcessor, WhisperForConditionalGeneration
processor = WhisperProcessor.from_pretrained("Jeremy-p/whisper-small-qc-fr")
model = WhisperForConditionalGeneration.from_pretrained("Jeremy-p/whisper-small-qc-fr")CTranslate2 int8 via faster-whisper — recommended
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))License
MIT
