Weasel Fine-Tune IT

Italian speech-to-text fine-tune of Cactus Whistle on the valentimarco/asr-merged-it corpus: 233,295 clips / 408.8 hours of Italian speech. It ships as a single 29.35 MB .cact file and runs on the same CPU engine as Whistle and Needle, with no GPU and no Python runtime on the device.

  • Base model: Cactus-Compute/whistle (Apache-2.0), 8 decoder layers, W4A8.
  • Fine-tune: LoRA rank 64 / alpha 128, merged into the base.
  • Language: Italian (it). The base is multilingual; this checkpoint is tuned for Italian.
  • Input: 16 kHz mono WAV, any length (one pass up to 30 s, windowed beyond).
  • Output: cased, punctuated Italian text.

Files

File What it is
weasel-finetune-it.cact Ready to run. Deployable W4A8 model, 29.35 MB.
weasel-finetune-it.safetensors Full fine-tuned weights (float32, 220 MB) for inspection and export. Use the .cact for inference.
scores.md Base vs Weasel WER/CER comparison.
scores.csv The same comparison as machine-readable rows.

Quick start

pip install cactus-needle
import needle

model = needle.Whistle("weasel-finetune-it.cact")
print(model.transcribe("clip.wav", language="it")["text"])
# Da questo luogo i predestinati potevano entrare e uscire solo profondamente addormentati.

# or the module-level helper
print(needle.transcribe("clip.wav", weights="weasel-finetune-it.cact",
                        language="it")["text"])

word_timestamps=True adds per-word start/end/probability, and keywords=[...] biases names, places and domain words during decoding, as in the base Whistle model.

Training data

The fine-tune uses the valentimarco/asr-merged-it HF bucket, a merged Italian ASR corpus:

Source Clips Hours License
VoxPopuli (it) 25,010 86.9 CC0
FLEURS (it) 4,286 14.1 CC-BY-4.0
Common Voice 27.0 (it) 203,999 307.9 CC0
Total 233,295 408.8

Audio is 16 kHz mono, normalized to -23 dBFS RMS with a -0.3 dBFS peak ceiling. The training split is 199,237 clips (343.1 h); after dropping empty transcripts and clips over 30 s, 198,623 clips were used. Common Voice contributes only the official train / dev / test modelling splits; the three splits are disjoint by sentence and speaker.

Training

Fine-tuned from Whistle 2.0.0 with a rank-64 LoRA adapter (alpha 128) on the 198,623 Italian training clips, then merged into the base and exported to W4A8 with needle whistle build.

Evaluation

Identical held-out subsets of the merged test split, scored with the Whisper BasicTextNormalizer (accents kept), corpus-level WER/CER. These are 2,000 Common Voice clips and 1,967 VoxPopuli + FLEURS clips, not the full 17,225-clip test split. Full numbers: scores.md.

Test set Base WER Weasel WER Base CER Weasel CER
Common Voice 27.0 (it) 18.89% 15.10% 5.50% 4.57%
VoxPopuli + FLEURS 19.83% 17.16% 12.55% 10.59%
Combined 19.58% 16.61% 10.68% 8.99%

By clip duration

Test set Duration Base WER Weasel WER
Common Voice 0–5 s 23.06% 18.75%
Common Voice 5–10 s 18.28% 14.57%
Common Voice 10–20 s 15.51% 11.91%
VoxPopuli + FLEURS 0–5 s 42.76% 42.54%
VoxPopuli + FLEURS 5–10 s 24.25% 21.47%
VoxPopuli + FLEURS 10–20 s 18.80% 16.30%
VoxPopuli + FLEURS 20–30 s 17.27% 14.05%

The VoxPopuli/FLEURS 0–5 s bin is dominated by 1–4 s parliamentary fragments; the base itself is at 42.76% there, so it is a data limit, not a fine-tune result. On Common Voice, the 0–5 s bin improves from 23.06% to 18.75%.

Limitations

  • Italian only. The base is multilingual; this checkpoint was fine-tuned on Italian and should not be used as a drop-in for the other six languages.
  • Short utterances are harder. Common Voice 0–5 s is 18.75% WER; the VoxPopuli/FLEURS 0–5 s bin is ~42% even for the base model.
  • Proper nouns, rare words and accents (e vs Γ¨) account for most of the remaining errors. Keyword biasing helps with names known in advance.
  • Trained on clips up to 30 s. Longer audio is handled by the engine's windowing, but that path was not part of this fine-tune's evaluation.
  • Evaluation is on held-out subsets, not the full 17,225-clip test split.
  • No speaker diarization, forced alignment, or punctuation restoration beyond what the model learned from the transcripts.

License and dataset attribution

The base Whistle model is Apache-2.0; this fine-tune is released under the same license. The training data licenses are:

  • VoxPopuli β€” CC0.
  • Common Voice 27.0 Italian β€” CC0 (Mozilla).
  • FLEURS Italian β€” CC-BY-4.0 (Google). Keep the FLEURS attribution and follow its terms when redistributing or deploying this model.

Dataset citations

VoxPopuli

Wang, C., Rivière, M., Lee, A., Wu, A., Talnikar, C., Haziza, D., Williamson, M., Pino, J., & Dupoux, E. (2021). VoxPopuli: A Large-Scale Multilingual Speech Corpus for Representation Learning, Semi-Supervised Learning and Interpretation. ACL-IJCNLP 2021. https://aclanthology.org/2021.acl-long.80/

FLEURS

Conneau, A., Ma, M., Khanuja, S., Zhang, Y., Axelrod, V., Dalmia, S., Riesa, J., Rivera, C., & Bapna, A. (2022). FLEURS: Few-shot Learning Evaluation of Universal Representations of Speech. IEEE SLT 2022. https://arxiv.org/abs/2205.12446

Common Voice 27.0 Italian

Mozilla Common Voice. Common Voice Scripted Speech 27.0 β€” Italian. CC0. https://commonvoice.mozilla.org/it/datasets

Base model

@misc{whistle_2026,
  title        = {Whistle: Speech Recognition for Tiny Devices},
  author       = {Mroz, Jakub and Ndubuaku, Henry and Mosoyan, Karen and Cylich, Noah and
                  Kumar, Satyajit and Sandhu, Parkirat and Shemet, Roman and Lee, Justin H.},
  year         = {2026},
  organization = {Cactus Compute, Inc.},
  howpublished = {\url{https://github.com/cactus-compute/needle}}
}
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for valentimarco/weasel-finetune-it

Finetuned
(9)
this model

Paper for valentimarco/weasel-finetune-it