whisper-large-v3-turbo-da
Fine-tuned openai/whisper-large-v3-turbo for Danish telephone speech transcription.
Training
- Base model:
openai/whisper-large-v3-turbo - Method: LoRA fine-tuning (rank 32, alpha 64, targeting
q_proj/v_proj) - Training data:
- ~40,500 pseudo-label segments from a Danish phone-call transcription pipeline (self-training)
- 82 human-verified corrections collected via a manual ASR-review UI, oversampled 30× to give meaningful training weight
- Epochs: 3
- Final train loss: 2.73
Domain
Danish telephone calls (8 kHz narrowband, upsampled to 16 kHz). Optimised for the acoustic conditions of mobile/landline calls: background noise, codec artefacts, fast conversational speech.
Usage
from transformers import WhisperForConditionalGeneration, WhisperProcessor
import torch
model = WhisperForConditionalGeneration.from_pretrained("x2q/whisper-large-v3-turbo-da")
processor = WhisperProcessor.from_pretrained("x2q/whisper-large-v3-turbo-da", language="danish", task="transcribe")
# audio: 16 kHz mono numpy array
inputs = processor.feature_extractor(audio, sampling_rate=16000, return_tensors="pt").input_features
with torch.no_grad():
ids = model.generate(inputs, language="danish", task="transcribe", no_repeat_ngram_size=3)
text = processor.tokenizer.decode(ids[0], skip_special_tokens=True)
Also compatible with faster-whisper after CTranslate2 conversion.
Limitations
- Optimised specifically for Danish telephone speech; may perform worse on broadcast/studio audio
- Training pseudo-labels were generated by the same base model family, so systematic errors in the base model may persist
- 82 human-verified examples is a small correction set; further annotation would improve robustness