Downloads · 30 days
6
14% of all-time downloads
banhchungtuongot/whisper-vi-telephony-lora-encoder
whisper-vi-telephony-lora-encoder is a automatic speech recognition model from banhchungtuongot. Use it when you need speech turned into text. It is set up for peft. The card lists the license as apache-2.0.
A PEFT LoRA adapter that makes the Vietnamese noise-augmented Whisper-small (banhchungtuongot/whisper-small-vi-en-noise-aug, "Exp C") robust to telephony degradation (8 kHz band-limit + µ-law + babble + reverb) withou…
Downloads · 30 days
6
14% of all-time downloads
All-time downloads
43
Public
Repo size
21.3 MB
Likes
0
Public
Click a slice to open those files.
.safetensors21.3 MB · 100%
From the Hugging Face model README
A PEFT LoRA adapter that makes the Vietnamese noise-augmented Whisper-small
(banhchungtuongot/whisper-small-vi-en-noise-aug, "Exp C") robust to telephony
degradation (8 kHz band-limit + µ-law + babble + reverb) without forgetting
clean speech.
LoRA is applied to the encoder linear layers only (decoder fully frozen) and trained multi-condition with an encoder-consistency loss (keep the adapted encoder ≈ the frozen base encoder on clean inputs). The adapter is selected on a held-out validation set disjoint from the test set (no test leakage).
| Model | Telephony WER | Clean WER | Trainable | Size |
|---|---|---|---|---|
| Base Exp C | 0.7419 | 0.2016 | — | 944 MB |
| Full fine-tune | 0.6015 | 0.2339 | 100% | 944 MB |
| This adapter | 0.5393 | 0.1972 | 2.15% | 21 MB |
Telephony −27% vs base; clean preserved (≈ base). Dominates full fine-tune
on both axes at ~47× fewer trainable parameters. Telephony test set = FLEURS vi +
telephony_sim (8k/µ-law/babble/reverb, ESC-50 held-out cats 40–49, SNR 0–15).
from transformers import WhisperForConditionalGeneration, WhisperProcessor
from peft import PeftModel
base = WhisperForConditionalGeneration.from_pretrained("banhchungtuongot/whisper-small-vi-en-noise-aug")
model = PeftModel.from_pretrained(base, "banhchungtuongot/whisper-vi-telephony-lora-encoder")
processor = WhisperProcessor.from_pretrained("openai/whisper-small")
processor.tokenizer.set_prefix_tokens(language="vi", task="transcribe")
# decode with num_beams=5 for the reported numbers
Deploy tip: keep one clean base + hot-swap this 21 MB adapter for the telephony / call-center domain.
Training code & full analysis:
https://github.com/NguyenDucAnforwork/asr-h100-noise-robust
(training/finetune_whisper_tele_lora_v2.py, reports/telephony_lora_finetune.md).