Views
No views yet
trust_remote_code=True, no training repo
required.| Repo | Role |
|---|---|
mlr2000/vocoder-large | Large vocoder (generates the watermarked audio) |
mlr2000/vocoder-large-watermark-detector | Watermark detector for the large model |
mlr2000/vocoder-large-speaker-encoder | Speaker encoder (this repo) |
mlr2000/vocoder-small | Small vocoder |
mlr2000/vocoder-small-watermark-detector | Watermark detector for the small model |
mlr2000/vocoder-small-speaker-encoder | Speaker encoder for the small model |
1import torchaudio, torchaudio.functional as AF
2from transformers import AutoModel
3
4enc = AutoModel.from_pretrained("mlr2000/vocoder-large-speaker-encoder", trust_remote_code=True).eval()
5
6wav, sr = torchaudio.load("reference.wav") # [C, T]
7wav = wav.mean(0, keepdim=True) # mono [1, T]
8if sr != enc.config.raw_sample_rate: # encoder expects 22.05 kHz
9 wav = AF.resample(wav, sr, enc.config.raw_sample_rate)
10
11emb = enc.embed(wav) # [1, 768] — feed as speaker_embedding to the vocoderexample_roundtrip.ipynb in this repo for the full pipeline
(reference clip → embedding → vocode → detect watermark).config.raw_sample_rate). Resample first if your audio differs.[B, 768] L2-comparable speaker embeddings.mlr2000/vocoder-large. For the small vocoder (mlr2000/vocoder-small) use the companion small speaker encoder (mlr2000/vocoder-small-speaker-encoder).1@misc{muletta2026,
2 title = {Training a Discriminator-Free Foundation Vocoder
3 with Integrated Audio Watermarking},
4 author = {Muletta, Romolo and Deriu, Jan},
5 year = {2026},
6 note = {VT2 Project Report, ZHAW School of Engineering}
7}cc-by-4.0. Trained on MLS (CC-BY-4.0) and Common Voice (CC0); builds on
BigVGAN (MIT) and wav2vec 2.0 (Apache-2.0). Please retain attribution when
redistributing or building on this model.