Ir para o conteúdo
ModelListadosExterno
Baixar

MuQ Eval A1

Multi-head neural evaluator for music generation quality, built on frozen MuQ representations with learned attention pooling and per-dimension MLP prediction heads.

TipoOtherVersãoRevision b082e23Bnota

Fonte do modelo

Tipo
Other
Tamanho do arquivo
1,24–1,25 GB
Versão
vRevision b082e23
Atualizado
22 de set. de 2026
Downloads
913
Fonte
Hugging Face

Descrição da fonte

MusicQualityModel — A1_frozen_mlp

Multi-head neural evaluator for music generation quality, built on frozen MuQ representations with learned attention pooling and per-dimension MLP prediction heads.

Model Details

  • Encoder: OpenMuQ/MuQ-large-msd-iter (tuning mode: frozen)
  • Pooling: Attention-weighted mean pooling
  • Heads: MI, TA
  • Loss: mse
  • Input: Audio waveform at 24000 Hz, max 10.0s

Performance

Evaluated with 5-fold cross-validation on MusicEval (2,748 clips, 31 TTM systems).

Usage

import torch
import torchaudio
from omegaconf import OmegaConf
from huggingface_hub import hf_hub_download

# Download files
config_path = hf_hub_download("zhudi2825/MuQ-Eval-A1", "config.yaml")
model_path = hf_hub_download("zhudi2825/MuQ-Eval-A1", "best_model.pt")

# Load config and build model
cfg = OmegaConf.load(config_path)
from src.model import MusicQualityModel
model = MusicQualityModel(cfg)

ckpt = torch.load(model_path, map_location="cpu", weights_only=False)
model.load_state_dict(ckpt["model_state"])
model.eval()

# Run inference
waveform, sr = torchaudio.load("audio.wav")
if sr != 24000:
    waveform = torchaudio.transforms.Resample(sr, 24000)(waveform)
waveform = waveform.mean(0)  # mono
waveform = waveform[:240000].unsqueeze(0)  # [1, samples]

with torch.no_grad():
    preds = model(waveform)
    scores = model._last_expected_scores
    for name, score in scores.items():
        print(f"{name}: {score.item():.2f}")

Training

  • Dataset: MusicEval (BAAI/MusicEval) — 5-fold stratified CV by TTM model
  • Epochs: 30
  • Batch size: 16
  • Optimizer: AdamW (lr=0.001, wd=0.01)
  • Scheduler: cosine with 500 warmup steps
  • Precision: bf16

Citation

If you use this model, please cite:

@article{zhu2026muqeval,
  title={Frozen Music Representations Suffice for Per-Sample Quality Prediction of Generated Music},
  author={Zhu, Di and Li, Zixuan},
  journal={arXiv preprint arXiv:2603.22677},
  year={2026}
}

Fontes

1 fonte
Hugging FacePrimárioVersão b082e238827df51d99ac66bdd1b6f0d2406bc90e
huggingface.co/zhudi2825/MuQ-Eval-A1/tree/b082e238827df51d99ac66bdd1b6f0d2406bc90e

Verificado 6 de set.

Artefatos de modelo

2 artefatos

best_model.pt

pt · 1,25 GB · SHA-256 681048d045e9…eaac · Hugging Face

Baixar

model_state_dict.pt

pt · 1,24 GB · SHA-256 4163ec9ba81b…1455 · Hugging Face

Baixar

Trechos de fonte

2 trechos

--- language: en library_name: pytorch license: mit pipeline_tag: audio-classification tags: - audio - music - quality-assessment - MOS-prediction - music-generation --- # MusicQualityModel — A1_frozen_mlp Multi-head neural evaluator for music generation quality, built on frozen [MuQ](https://huggingface.co/OpenMuQ/MuQ-large-msd-iter) representations with learned attention pooling and per-dimension MLP prediction heads. ## Model Details - **Encoder:** `OpenMuQ/MuQ-large-msd-iter` (tuning mode: `frozen`) - **Pooling:** Attention-weighted mean pooling - **Heads:** MI, TA - **Loss:** `mse` - **Input:** Audio waveform at 24000 Hz, max 10.0s ## Performance Evaluated with 5-fold cross-validation on MusicEval (2,748 clips, 31 TTM systems). ## Usage ```python import torch import torchaudio from omegaconf import OmegaConf from huggingface_hub import hf_hub_download # Download files config_path = hf_hub_download("zhudi2825/MuQ-Eval-A1", "config.yaml") model_path = hf_hub_download("zhudi2825/MuQ-Eval-A1", "best_model.pt") # Load config and build model cfg = OmegaConf.load(config_path) from src.model import MusicQualityModel model = MusicQualityModel(cfg) ckpt = torch.load(model_path, map_location="cpu", weights_only=False) model.load_state_dict(ckpt["model_state"]) model.eval() # Run inference waveform, sr = torchaudio.load("audio.wav") if sr != 24000: waveform = torchaudio.transforms.Resample(sr, 24000)(waveform) waveform = waveform.mean(0) # mono waveform = waveform[:240000].unsqueeze(0) # [1, samples] with torch.no_grad(): preds = model(waveform) scores = model._last_expected_scores for name, score in scores.items(): print(f"{name}: {score.item():.2f}") ``` ## Training - **Dataset:** MusicEval (BAAI/MusicEval) — 5-fold stratified CV by TTM model - **Epochs:** 30 - **Batch size:** 16 - **Optimizer:** AdamW (lr=0.001, wd=0.01) - **Scheduler:** cosine with 500 warmup steps - **Precision:** bf16 ## Citation If you use this model, please cite: ```bibtex @article{zhu2026muqeval, title={Frozen Music Representations Suffice for Per-Sample Quality Prediction of Generated Music}, author={Zhu, Di and Li, Zixuan}, journal={arXiv preprint arXiv:2603.22677}, year={2026} } ```

Source context: 913 downloads · 0 likes · Pipeline audio-classification · Library pytorch · Repo zhudi2825/MuQ-Eval-A1