Joblib
Safetensors
hubert

HuBERT VP-20

HuBERT VP-20 is a HuBERT base model pretrained on a subset of 6k hours and 20 languages of VoxPopuli (all EU languages except English, French, and German) for the DiscoPhon benchmark. It was pretrained using the minimal_hubert library.

You can load it with HuggingFace Transformers:

from transformers import HubertModel

model = HubertModel.from_pretrained("coml/hubert-base-vp20")

Or with minimal_hubert:

from huggingface_hub import hf_hub_download
from minimal_hubert import HuBERT, HuBERTPretrain

# Standard model
model = HuBERT.from_pretrained("coml/hubert-base-vp20")
# With pretraining head for classification
model_for_pretraining = HuBERTPretrain.from_pretrained(hf_hub_download("coml/hubert-base-vp20", "it2.pt"))

Check out minimal_hubert if you are interested in pretraining or want to load HuBERT checkpoints from different libraries.

Files:

  • model.safetensors and config.json: HuggingFace Transformers checkpoint and config.
  • it1.pt: 1st iteration checkpoint (model weights with pretraining head, epoch and step).
  • it2.pt: 2nd iteration checkpoint (model weights with pretraining head, epoch and step). Converted to HuggingFace state_dict to get model.safetensors.
  • km100-mfcc.joblib: K-means trained on MFCCs of VoxPopuli-20. Used to train the 1st iteration.
  • km500-it1-l10.joblib: K-means trained on features from the 10th layer of the 1st iteration model. Used to train the 2nd iteration.
  • km256-it2-l11.joblib: K-means trained on features from the 11th layer of the 2nd iteration model. Used for DiscoPhon finetuning.

Intermediate checkpoints

The checkpoints branch contains the intermediate checkpoints of both iterations, as saved by minimal_hubert: it1/step_*.pt and it1/final.pt for the 1st iteration, it2/step_*.pt and it2/final.pt for the 2nd one. The step_*.pt files contain the model weights (with pretraining head), epoch and step. The final.pt files also contain the optimizer, scheduler and gradient scaler states, to resume training.

List them with hf models ls coml/hubert-base-vp20 -R --revision checkpoints, and load one with:

from huggingface_hub import hf_hub_download
from minimal_hubert import HuBERT, HuBERTPretrain

path = hf_hub_download("coml/hubert-base-vp20", "it1/step_50000.pt", revision="checkpoints")
model = HuBERT.from_pretrained(path)
model_for_pretraining = HuBERTPretrain.from_pretrained(path)

Citing

@inproceedings{poli2026discophon,
  title     = {{DiscoPhon: Benchmarking the Unsupervised Discovery of Phoneme Inventories With Discrete Speech Units}},
  author    = {Maxime Poli and Manel Khentout and Angelo {Ortiz Tandazo} and Ewan Dunbar and Emmanuel Chemla and Emmanuel Dupoux},
  year      = {2026},
  booktitle = {{Interspeech 2026}},
  pages     = {6664--6669},
  doi       = {10.21437/Interspeech.2026-2791},
  issn      = {2958-1796},
}
Downloads last month
18
Safetensors
Model size
94.4M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Collection including coml/hubert-base-vp20