--- license: other license_name: coqui-public-model-license license_link: https://coqui.ai/cpml base_model: coqui/XTTS-v2 pipeline_tag: text-to-speech library_name: coqui tags: - text-to-speech - zero-shot-tts - voice-cloning - machine-unlearning - speaker-unlearning - cond-id - reproducibility - mirror --- # XTTS-v2 — pinned mirror for cond-ID An **unmodified, commit-pinned mirror** of [`coqui/XTTS-v2`](https://huggingface.co/coqui/XTTS-v2), published so the results in the cond-ID paper stay reproducible even if the upstream repository moves, is retagged, or disappears. > ⚠️ **Non-commercial.** XTTS-v2 is released under the > [Coqui Public Model License (CPML)](https://coqui.ai/cpml). That license applies > unchanged to this mirror and to any model edited on top of it. Read it before use. ## What this is | | | |---|---| | Upstream | [`coqui/XTTS-v2`](https://huggingface.co/coqui/XTTS-v2) | | Pinned commit | `6c2b0d75eae4b7047358e3b6bd9325f857d43f77` | | Modifications | **None.** Byte-identical weights. | | Purpose | Reproducibility anchor for the cond-ID paper | This is **not** an unlearned model. It is the *base* checkpoint that cond-ID edits. The unlearning method itself is a few-step fine-tune of the speaker-conditioning path and is distributed as a small adapter patch, not as full weights. ## Files ``` config.json XTTS-v2 model config model.pth main checkpoint (1.87 GB) dvae.pth discrete VAE (211 MB) mel_stats.pth mel statistics speakers_xtts.pth built-in speaker embeddings vocab.json tokenizer vocabulary LICENSE.txt Coqui Public Model License 1.0.0 ``` ### Note: the Hub's "Invalid JSON for config file config.json" warning This warning is expected and harmless. Upstream's `config.json` uses bare `Infinity` literals for two fields: ```json "max_audio_len": Infinity, "max_text_len": Infinity, ``` `Infinity` is valid to Python's `json` module but is **not** part of the JSON spec, so the Hub's strict parser rejects the file and shows the warning. The identical warning appears on [`coqui/XTTS-v2`](https://huggingface.co/coqui/XTTS-v2) itself. Both fields are **training-time dataset filters** and are never read during synthesis, so nothing is broken. The file is left exactly as upstream published it: this repository exists to be a byte-identical reproducibility anchor, and silently editing the config would defeat that. Coqui's own loader (`XttsConfig`) parses it without complaint. ## Usage Fetch it the way the paper's code does: ```python from huggingface_hub import snapshot_download snapshot_download( repo_id="RootAccess4Life/cond-id-xtts-v2", local_dir="models/xtts_v2", ) ``` Then point cond-ID at it: ```bash export CD_XTTS_DIR=models/xtts_v2 python scripts/run_eval.py --config configs/xtts.yaml ``` To fetch from upstream instead (the default in the repo): ```bash python scripts/download_models.py --model xtts ``` ## Why XTTS-v2 in this paper XTTS-v2 is an autoregressive codec language model, and it is the backbone where cond-ID faces its strongest adversary: XTTS ships an official codec LM loss, which makes a white-box **relearn attack** (re-finetuning to recover an erased speaker) genuinely threatening. Relearn-robustness is therefore reported on XTTS-v2 in the paper. ## Related - 💻 Code: https://github.com/pujariaditya/cond-id-tts-unlearning - 🔇 Live demo: https://huggingface.co/spaces/RootAccess4Life/cond-id-demo - 🎧 Audio samples: https://huggingface.co/datasets/RootAccess4Life/cond-id-samples - 📦 IndexTTS-1.5 mirror: https://huggingface.co/RootAccess4Life/cond-id-indextts-1.5 ## Citation ```bibtex @misc{pujari_condid, title = {cond-ID: Conditioning-Space Identity Redirection for Speaker Unlearning in Zero-Shot TTS}, author = {Pujari, Aditya and Rattani, Ajita}, note = {Preprint}, } ``` Please also cite Coqui XTTS-v2 upstream. All credit for these weights belongs to Coqui.