cond-id-xtts-v2 / README.md
RootAccess4Life's picture
Rename cond-DIM to cond-ID (method renamed with the paper)
a65507d verified
|
Raw History Blame Contribute Delete
3.99 kB
---
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.