laion/voiceclap-large —
better on every benchmark we measure.emotion_annotation scalars,
argmax over per-emotion z-scores vs corpus base rates (raw argmax is
degenerate — high-base-rate dimensions win ~99% of clips). z ≥ 1.5
labels ~80-98% of emolia across all 39 emotion classes.| Model | Emo bal@pp | Emo ρ | Ext bal@pp | Ext ρ |
|---|---|---|---|---|
| voiceclap-small | 0.6754 | 0.3176 | 0.6576 | 0.1116 |
| voiceclap-large (anchor re-run) | 0.6991 | 0.3598 | 0.6739 | 0.1897 |
| this model (PCL ep1) | 0.7069 | 0.3865 | 0.6816 | 0.2125 |
| emolia per-emo | emonet top-1 | emonet ρ | |
|---|---|---|---|
| InfoNCE only | 0.6984 | 0.1411 | 0.3651 |
| + PCL w=0.1 | 0.7053 | 0.1544 | 0.3993 |
gijs/voiceclap-lco-7b-lora and the k=10 MOSS variant sets the current
VoiceNet records (Emo bal@pp 0.7102; Ext bal@pp 0.6883).| Data | 9 corpora (emolia-balanced, Got Talent, Majestrino, bursts, EARS, Expresso, VoxCeleb1/2) |
| Captions | original / k=2-sampled MOSS-Audio sentences, 50/50 |
| Samples seen | 76,000 (1 epoch; best checkpoint) |
| LoRA | r=16, α=32, dropout 0.05, all-linear |
| PCL | weight 0.1, 39 prototypes, temp 0.1, proto-lr 1e-3, z≥1.5 pseudo-labels |
| lr / wd | 1e-4 / 0.01, warmup 200, cosine |
| Batch | 4 × accum 8 × 4 GH200 = effective 128 |
| Precision | bf16 |
1import torch
2from sentence_transformers import SentenceTransformer
3
4model = SentenceTransformer(
5 "laion/voiceclap-large-v2",
6 trust_remote_code=True,
7 model_kwargs={"torch_dtype": torch.bfloat16},
8)
9audio_emb = model.encode("clip.flac")
10text_emb = model.encode("A person speaking with quiet pride in their voice")
11score = (audio_emb @ text_emb.T).item()