Ir para o conteúdo
ModelListadosExterno
Browse files

Majestrino 1.00 Voice Experts

A collection of 57 voice dimension expert models and 1 speech detector that predict interpretable voice attributes from Majestrino-1.00 embeddings.

TipoOtherVersãoRevision 542bd2fCnota

Fonte do modelo

Tipo
Other
Tamanho do arquivo
41,8–935 KB
Versão
vRevision 542bd2f
Atualizado
17 de out. de 2026
Downloads
0
Fonte
Hugging Face

Descrição da fonte

Majestrino-1.00 Voice Experts

A collection of 57 voice dimension expert models and 1 speech detector that predict interpretable voice attributes from Majestrino-1.00 embeddings.

Overview

This repository contains expert MLP models trained to predict voice attributes across 57 dimensions (age, gender, emotion, speaking style, vocal quality, etc.) on a 0-6 scale, plus a binary speech detector. All experts operate on 768-dimensional Majestrino-1.00 embeddings extracted from audio using the laion/Majestrino-1.00 encoder (Whisper-small encoder + MLP projection).

Key Features:

  • 57 voice dimension experts with ~197K parameters each
  • Binary speech detector (10K parameters, F1=1.000)
  • Mean balanced adj±1 accuracy: 81.6%
  • Complete inference pipeline with standardization
  • Production-ready with minimal dependencies

Quick Start

import torch
import numpy as np
import torchaudio
from transformers import AutoModel, AutoFeatureExtractor
from huggingface_hub import snapshot_download

# Download all expert files
repo_path = snapshot_download(repo_id="laion/Majestrino-1.00-voice-experts")

# Load Majestrino encoder
encoder = AutoModel.from_pretrained("laion/Majestrino-1.00", trust_remote_code=True)
feature_extractor = AutoFeatureExtractor.from_pretrained("laion/Majestrino-1.00")
encoder.eval()

# Load audio file (will be resampled to 16kHz)
audio_path = "your_audio.wav"
waveform, sr = torchaudio.load(audio_path)
if waveform.shape[0] > 1:
    waveform = waveform.mean(dim=0, keepdim=True)
if sr != 16000:
    waveform = torchaudio.functional.resample(waveform, sr, 16000)

# Extract Majestrino embedding
with torch.no_grad():
    inputs = feature_extractor(waveform.squeeze().numpy(), sampling_rate=16000, return_tensors="pt")
    embedding = encoder(**inputs).last_hidden_state.mean(dim=1)  # [1, 768]
    embedding = torch.nn.functional.normalize(embedding, p=2, dim=-1)

# Load speech detector
speech_std = np.load(f"{repo_path}/speech_standardization.npz")
speech_mean, speech_std = torch.tensor(speech_std['mean']), torch.tensor(speech_std['std'])
speech_detector = torch.load(f"{repo_path}/speech_detector_best.pt", map_location='cpu')
speech_detector.eval()

# Check if audio contains speech
emb_std = (embedding - speech_mean) / speech_std
with torch.no_grad():
    is_speech = torch.sigmoid(speech_detector(emb_std)).item() > 0.5

print(f"Contains speech: {is_speech}")

if is_speech:
    # Load expert standardization
    expert_std = np.load(f"{repo_path}/expert_standardization.npz")
    expert_mean = torch.tensor(expert_std['mean'])
    expert_std_val = torch.tensor(expert_std['std'])

    # Load a few example experts
    experts = {
        'GEND': torch.load(f"{repo_path}/experts/GEND_ce.pt", map_location='cpu'),
        'AGEV': torch.load(f"{repo_path}/experts/AGEV_huber.pt", map_location='cpu'),
        'VALN': torch.load(f"{repo_path}/experts/VALN_huber.pt", map_location='cpu'),
        'TEMP': torch.load(f"{repo_path}/experts/TEMP_huber.pt", map_location='cpu'),
    }

    # Standardize embedding for experts
    emb_std = (embedding - expert_mean) / expert_std_val

    # Run inference
    results = {}
    with torch.no_grad():
        for dim, model in experts.items():
            model.eval()
            output = model(emb_std)

            if dim == 'GEND':  # CE expert
                pred = torch.argmax(output, dim=-1).item()
            else:  # Huber expert
                pred = torch.clamp(torch.round(output), 0, 6).item()

            results[dim] = int(pred)

    print("\nVoice attributes:")
    print(f"  Gender (0=M, 6=F): {results['GEND']}")
    print(f"  Age (0=child, 6=elderly): {results['AGEV']}")
    print(f"  Valence (0=negative, 6=positive): {results['VALN']}")
    print(f"  Tempo (0=very slow, 6=very fast): {results['TEMP']}")

Model Details

Architecture

Voice Experts (57 models):

  • Input: 768-dim standardized Majestrino embedding
  • Architecture: 768 → 256 → ReLU → Dropout(0.3) → 128 → ReLU → Dropout(0.3) → 64 → ReLU → output
  • Huber experts (43): output=1 neuron (regression), predictions rounded and clipped to 0-6
  • CE experts (14): output=7 neurons (classification), argmax to 0-6
  • Parameters: ~197K per expert

Speech Detector:

  • Input: 768-dim standardized Majestrino embedding
  • Architecture: 768 → 13 → ReLU → Dropout(0.5) → 1
  • Loss: BCEWithLogitsLoss
  • Parameters: 10,011
  • Performance: 100% accuracy, F1=1.000 on validation set
  • Training data: 9K speech + 6K non-speech samples

Training

  • Optimizer: AdamW with weight decay
  • Loss functions: Huber loss (regression), CrossEntropy loss (classification)
  • Data: Annotated samples from Majestrino dataset with human labels
  • Validation: Balanced holdout sets + Gemini Pro 2.0 validation
  • Selection: Best performing loss type (Huber vs CE) chosen per dimension

Performance

Per-Dimension Results

All 57 voice dimension experts with validation accuracies (adj±1 = correct within ±1 value):

DimensionNameTypeBalanced HoldoutGemini ProSamples
AGEVPerceived AgeHuber90.8%92.2%1,560
AROUArousalHuber90.1%89.4%2,256
ARSHArousal ShiftCE88.7%91.8%150
ATCKAttackHuber87.8%93.4%1,344
BKGNBackground NoiseHuber86.0%72.9%270
BRGTBrightnessCE68.2%64.3%108
CHNKChunkingHuber81.0%89.1%456
CLRTArticulation ClarityCE83.2%91.1%765
COGLCognitive LoadHuber57.7%71.7%912
DARCDynamic ArcHuber62.4%73.7%144
DFLUDisfluencyHuber69.7%75.9%870
EMPHEmphasisHuber85.8%90.5%672
ESTHEstheticsHuber87.3%93.7%7,455
EXPLExplicitnessHuber88.7%90.8%372
FOCSFocusCE83.3%80.3%1,446
FULLFullnessCE73.5%69.0%138
GENDPerceived GenderCE70.9%82.2%1,080
HARMHarmonicityHuber82.9%89.3%1,190
METLMetallic CharacterHuber88.6%93.9%565
RANGPitch RangeCE75.5%82.8%312
RCQLRecording QualityHuber91.2%88.2%3,212
REGSRegisterHuber78.7%81.5%570
RESPRespirationHuber85.1%87.4%1,164
ROUGRoughnessHuber81.3%84.6%678
R_CHSTChest ResonanceHuber84.4%88.1%2,616
R_HEADHead ResonanceHuber85.0%90.2%1,848
R_MASKMask ResonanceHuber82.6%91.9%1,236
R_MIXDMixed ResonanceCE77.9%87.0%390
R_NASLNasal ResonanceHuber86.3%84.9%168
R_ORALOral ResonanceCE77.8%87.1%126
R_THRTThroat ResonanceHuber82.6%85.7%798
SMTHSmoothnessHuber80.8%90.4%5,125
STNCStanceHuber78.6%85.8%3,300
STRUStructureCE84.5%91.0%1,098
S_ASMRASMR StyleHuber86.8%93.6%2,130
S_AUTHAuthoritative StyleHuber81.8%89.1%2,712
S_CARTCartoonish StyleHuber82.2%86.6%1,674
S_CASUCasual StyleHuber78.5%85.6%768
S_CONVConversational StyleHuber83.3%82.9%1,110
S_DRAMDramatic StyleHuber77.6%88.0%2,502
S_FORMFormal StyleHuber92.1%91.1%1,505
S_MONOMonologue StyleHuber68.0%70.0%18,990
S_NARRNarrator StyleHuber88.1%80.2%4,695
S_NEWSNewsreader StyleHuber90.9%68.6%8,270
S_PLAYPlayful StyleHuber83.6%84.0%5,700
S_RANTRanting/Angry StyleCE82.9%86.5%7,230
S_STRYStorytelling StyleHuber86.8%84.0%3,725
S_TECHTeacher/Didactic StyleHuber91.5%71.5%4,785
S_WHISWhisper StyleHuber90.0%89.2%744
TEMPTempoHuber78.3%75.7%246
TENSTensionHuber86.8%87.2%1,644
VALNValenceHuber86.3%90.5%9,648
VALSValence ShiftHuber49.7%32.6%80
VFLXVelocity FluxCE92.9%94.3%30
VOLTVolatilityHuber71.0%87.6%348
VULNVulnerabilityCE78.3%82.9%1,734
WARMWarmthHuber82.2%88.5%1,092

Summary Statistics:

  • 43 Huber experts, 14 CE experts
  • Mean balanced adj±1 accuracy: 81.6%
  • Best performers: VFLX (92.9%), S_FORM (92.1%), RCQL (91.2%)
  • Most training data: S_MONO (18,990), VALN (9,648), S_NEWS (8,270)

Files

experts/
├── AGEV_huber.pt          # Perceived Age expert
├── AROU_huber.pt          # Arousal expert
├── ARSH_ce.pt             # Arousal Shift expert
├── ... (54 more experts)
├── WARM_huber.pt          # Warmth expert
speech_detector_best.pt    # Binary speech classifier
expert_standardization.npz # Mean/std for expert inputs
speech_standardization.npz # Mean/std for speech detector
inference.py               # Complete inference script

Dimension Descriptions

Core Attributes

  • AGEV: Perceived age (0=child, 6=elderly)
  • GEND: Perceived gender (0=masculine, 6=feminine)
  • TEMP: Speaking tempo (0=very slow, 6=very fast)

Emotional Dimensions

  • VALN: Valence/sentiment (0=negative, 6=positive)
  • AROU: Arousal/energy (0=low, 6=high)
  • VALS: Valence shift over time
  • ARSH: Arousal shift over time
  • VULN: Vulnerability (0=guarded, 6=vulnerable)
  • WARM: Warmth (0=cold, 6=warm)
  • TENS: Tension (0=relaxed, 6=tense)

Vocal Quality

  • HARM: Harmonicity (0=noisy, 6=pure tone)
  • ROUG: Roughness/hoarseness
  • METL: Metallic character
  • BRGT: Brightness
  • FULL: Fullness/richness
  • SMTH: Smoothness
  • ATCK: Attack/onset sharpness

Resonance (R_*)

  • R_CHST: Chest resonance
  • R_HEAD: Head resonance
  • R_MASK: Mask resonance
  • R_NASL: Nasal resonance
  • R_ORAL: Oral resonance
  • R_THRT: Throat resonance
  • R_MIXD: Mixed resonance

Delivery Style

  • CLRT: Articulation clarity
  • EMPH: Emphasis/stress patterns
  • EXPL: Explicitness/directness
  • FOCS: Focus/concentration
  • STNC: Stance/attitude
  • STRU: Structural organization
  • CHNK: Chunking/phrasing
  • DFLU: Disfluency (stutters, fillers)
  • RESP: Respiration audibility

Speaking Styles (S_*)

  • S_MONO: Monologue style
  • S_CONV: Conversational style
  • S_NARR: Narrator style
  • S_STRY: Storytelling style
  • S_NEWS: Newsreader style
  • S_TECH: Teacher/didactic style
  • S_FORM: Formal style
  • S_CASU: Casual style
  • S_DRAM: Dramatic style
  • S_AUTH: Authoritative style
  • S_PLAY: Playful style
  • S_RANT: Ranting/angry style
  • S_WHIS: Whisper style
  • S_CART: Cartoonish style
  • S_ASMR: ASMR style

Technical/Context

  • RCQL: Recording quality
  • BKGN: Background noise
  • COGL: Cognitive load
  • DARC: Dynamic arc (progression)
  • RANG: Pitch range
  • REGS: Register (chest/head voice)
  • VFLX: Velocity flux (rhythm variation)
  • VOLT: Volatility (unpredictability)
  • ESTH: Overall esthetics/pleasantness

Usage Notes

  1. Input Requirements: Audio must be converted to Majestrino-1.00 embeddings first using the base encoder
  2. Standardization: Always apply mean/std normalization before inference
  3. Speech Detection: Run speech detector first to filter non-speech audio
  4. Expert Types: CE experts use argmax, Huber experts use round+clip
  5. Scale: All dimensions output 0-6 integer values

Citation

@misc{majestrino-voice-experts,
  title={Majestrino-1.00 Voice Experts: Interpretable Voice Attribute Prediction},
  author={LAION},
  year={2026},...

Fontes

1 fonte
Hugging FacePrimárioVersão 542bd2f5881190898dddfd759a3ed5ba3aa7dd96
huggingface.co/laion/Majestrino-1.00-voice-experts/tree/542bd2f5881190898dddfd759a3ed5ba3aa7dd96

Verificado 29 de ago.

Download files

Artefatos de modelo

58 artefatos

experts/AGEV_huber.pt

pt · 933 KB · SHA-256 d89032186f7d…c293 · Hugging Face

Download file

experts/AROU_huber.pt

pt · 933 KB · SHA-256 3975a78c2e8d…ac80 · Hugging Face

Download file

experts/ARSH_ce.pt

pt · 934 KB · SHA-256 40b50bde3ac3…14f1 · Hugging Face

Download file

experts/ATCK_huber.pt

pt · 933 KB · SHA-256 b61aa9e07996…6a4a · Hugging Face

Download file

experts/BKGN_huber.pt

pt · 933 KB · SHA-256 d8159785d5b7…c3fc · Hugging Face

Download file

experts/BRGT_ce.pt

pt · 934 KB · SHA-256 28af4a4e4a76…7757 · Hugging Face

Download file

experts/CHNK_huber.pt

pt · 933 KB · SHA-256 db43e7802bcf…960d · Hugging Face

Download file

experts/CLRT_ce.pt

pt · 934 KB · SHA-256 9f08b06c084f…acfe · Hugging Face

Download file

experts/COGL_huber.pt

pt · 933 KB · SHA-256 325f6e6fc879…dd8e · Hugging Face

Download file

experts/DARC_huber.pt

pt · 933 KB · SHA-256 74ecef1249d9…ac12 · Hugging Face

Download file

experts/DFLU_huber.pt

pt · 933 KB · SHA-256 86ef511cbcd3…5135 · Hugging Face

Download file

experts/EMPH_huber.pt

pt · 933 KB · SHA-256 0c6f9643bb50…2365 · Hugging Face

Download file

experts/ESTH_huber.pt

pt · 933 KB · SHA-256 b0928f2f081c…5672 · Hugging Face

Download file

experts/EXPL_huber.pt

pt · 933 KB · SHA-256 6f466e37fc66…ed2c · Hugging Face

Download file

experts/FOCS_ce.pt

pt · 934 KB · SHA-256 d49e01be01ac…15f3 · Hugging Face

Download file

experts/FULL_ce.pt

pt · 934 KB · SHA-256 aa55d7c45609…8cdb · Hugging Face

Download file

experts/GEND_ce.pt

pt · 934 KB · SHA-256 1f0c9588323f…e351 · Hugging Face

Download file

experts/HARM_huber.pt

pt · 933 KB · SHA-256 cb4b819418b1…6015 · Hugging Face

Download file

experts/METL_huber.pt

pt · 933 KB · SHA-256 6d25d4d2859f…2cb0 · Hugging Face

Download file

experts/R_CHST_huber.pt

pt · 933 KB · SHA-256 57caad264aeb…4005 · Hugging Face

Download file

experts/R_HEAD_huber.pt

pt · 933 KB · SHA-256 5a760a6d5e4c…117f · Hugging Face

Download file

experts/R_MASK_huber.pt

pt · 933 KB · SHA-256 090c3c26c87a…57a1 · Hugging Face

Download file

experts/R_MIXD_ce.pt

pt · 935 KB · SHA-256 b626d2d4f3eb…777b · Hugging Face

Download file

experts/R_NASL_huber.pt

pt · 933 KB · SHA-256 139edfccad51…1f1d · Hugging Face

Download file

experts/R_ORAL_ce.pt

pt · 935 KB · SHA-256 5893c0a7fa81…c5f8 · Hugging Face

Download file

experts/R_THRT_huber.pt

pt · 933 KB · SHA-256 3eb2d0bc06d4…74d7 · Hugging Face

Download file

experts/RANG_ce.pt

pt · 934 KB · SHA-256 13030a5edd54…7ea7 · Hugging Face

Download file

experts/RCQL_huber.pt

pt · 933 KB · SHA-256 514f41d235b8…7aa0 · Hugging Face

Download file

experts/REGS_huber.pt

pt · 933 KB · SHA-256 c62353b57f99…a93f · Hugging Face

Download file

experts/RESP_huber.pt

pt · 933 KB · SHA-256 97a6e7aff670…aade · Hugging Face

Download file

experts/ROUG_huber.pt

pt · 933 KB · SHA-256 76df283e3588…82c1 · Hugging Face

Download file

experts/S_ASMR_huber.pt

pt · 933 KB · SHA-256 d3227a68cc22…6b79 · Hugging Face

Download file

experts/S_AUTH_huber.pt

pt · 933 KB · SHA-256 920187ab07d5…9a02 · Hugging Face

Download file

experts/S_CART_huber.pt

pt · 933 KB · SHA-256 c33c54f59aff…b96e · Hugging Face

Download file

experts/S_CASU_huber.pt

pt · 933 KB · SHA-256 7f868c26fa2e…ffc0 · Hugging Face

Download file

experts/S_CONV_huber.pt

pt · 933 KB · SHA-256 a88f2d090f10…ef6c · Hugging Face

Download file

experts/S_DRAM_huber.pt

pt · 933 KB · SHA-256 bd5051193351…9add · Hugging Face

Download file

experts/S_FORM_huber.pt

pt · 933 KB · SHA-256 23c11fb40054…5e4e · Hugging Face

Download file

experts/S_MONO_huber.pt

pt · 933 KB · SHA-256 27019538bf00…5bac · Hugging Face

Download file

experts/S_NARR_huber.pt

pt · 933 KB · SHA-256 0c073ab97d9b…ec2d · Hugging Face

Download file

experts/S_NEWS_huber.pt

pt · 933 KB · SHA-256 fd1e571cc26c…5b64 · Hugging Face

Download file

experts/S_PLAY_huber.pt

pt · 933 KB · SHA-256 70224a54ee76…6443 · Hugging Face

Download file

experts/S_RANT_ce.pt

pt · 935 KB · SHA-256 b40a1acbbc97…c197 · Hugging Face

Download file

experts/S_STRY_huber.pt

pt · 933 KB · SHA-256 2ffd1619922b…07d2 · Hugging Face

Download file

experts/S_TECH_huber.pt

pt · 933 KB · SHA-256 7294684a8840…c76d · Hugging Face

Download file

experts/S_WHIS_huber.pt

pt · 933 KB · SHA-256 6beab4fb9bc0…3cb3 · Hugging Face

Download file

experts/SMTH_huber.pt

pt · 933 KB · SHA-256 319323f042ff…4bef · Hugging Face

Download file

experts/STNC_huber.pt

pt · 933 KB · SHA-256 5f4c8139c238…e864 · Hugging Face

Download file

experts/STRU_ce.pt

pt · 934 KB · SHA-256 9d3f9b540df2…40a7 · Hugging Face

Download file

experts/TEMP_huber.pt

pt · 933 KB · SHA-256 cc61fced8be0…d52d · Hugging Face

Download file

experts/TENS_huber.pt

pt · 933 KB · SHA-256 a6b5777ab793…798e · Hugging Face

Download file

experts/VALN_huber.pt

pt · 933 KB · SHA-256 88be24517992…eac7 · Hugging Face

Download file

experts/VALS_huber.pt

pt · 933 KB · SHA-256 30d774a16214…328c · Hugging Face

Download file

experts/VFLX_ce.pt

pt · 934 KB · SHA-256 518e8c7441a2…8b7f · Hugging Face

Download file

experts/VOLT_huber.pt

pt · 933 KB · SHA-256 3bd1303cd6e3…6d9e · Hugging Face

Download file

experts/VULN_ce.pt

pt · 934 KB · SHA-256 685461b3b64c…fdc6 · Hugging Face

Download file

experts/WARM_huber.pt

pt · 933 KB · SHA-256 6dfe083d5b4c…94aa · Hugging Face

Download file

speech_detector_best.pt

pt · 41,8 KB · SHA-256 e108371f6de4…edd6 · Hugging Face

Download file

Trechos de fonte

2 trechos

--- license: mit tags: - audio - speech - voice-analysis - embeddings - voice-attributes - speech-classification - majestrino language: - en library_name: transformers pipeline_tag: audio-classification --- # Majestrino-1.00 Voice Experts A collection of 57 voice dimension expert models and 1 speech detector that predict interpretable voice attributes from Majestrino-1.00 embeddings. ## Overview This repository contains expert MLP models trained to predict voice attributes across 57 dimensions (age, gender, emotion, speaking style, vocal quality, etc.) on a 0-6 scale, plus a binary speech detector. All experts operate on 768-dimensional Majestrino-1.00 embeddings extracted from audio using the [laion/Majestrino-1.00](https://huggingface.co/laion/Majestrino-1.00) encoder (Whisper-small encoder + MLP projection). **Key Features:** - 57 voice dimension experts with ~197K parameters each - Binary speech detector (10K parameters, F1=1.000) - Mean balanced adj±1 accuracy: 81.6% - Complete inference pipeline with standardization - Production-ready with minimal dependencies ## Quick Start ```python import torch import numpy as np import torchaudio from transformers import AutoModel, AutoFeatureExtractor from huggingface_hub import snapshot_download # Download all expert files repo_path = snapshot_download(repo_id="laion/Majestrino-1.00-voice-experts") # Load Majestrino encoder encoder = AutoModel.from_pretrained("laion/Majestrino-1.00", trust_remote_code=True) feature_extractor = AutoFeatureExtractor.from_pretrained("laion/Majestrino-1.00") encoder.eval() # Load audio file (will be resampled to 16kHz) audio_path = "your_audio.wav" waveform, sr = torchaudio.load(audio_path) if waveform.shape[0] > 1: waveform = waveform.mean(dim=0, keepdim=True) if sr != 16000: waveform = torchaudio.functional.resample(waveform, sr, 16000) # Extract Majestrino embedding with torch.no_grad(): inputs = feature_extractor(waveform.squeeze().numpy(), sampling_rate=16000, return_tensors="pt") embedding = encoder(**inputs).last_hidden_state.mean(dim=1) # [1, 768] embedding = torch.nn.functional.normalize(embedding, p=2, dim=-1) # Load speech detector speech_std = np.load(f"{repo_path}/speech_standardization.npz") speech_mean, speech_std = torch.tensor(speech_std['mean']), torch.tensor(speech_std['std']) speech_detector = torch.load(f"{repo_path}/speech_detector_best.pt",...

Source context: 0 downloads · 1 likes · Pipeline audio-classification · Library transformers · Repo laion/Majestrino-1.00-voice-experts