Skip to content
Back to skills

Xtts Coqui Expert

ASecurity

Self-hosted voice cloning - XTTS-v2, Coqui TTS, F5-TTS, StyleTTS2, Kokoro, Chatterbox. Use when working with multimodal AI (images, audio, video) using xtts coqui.

  • 9 stars
  • 0 votes
  • 0 copies
  • 11 views
  • Added September 8, 2026
devopspythongobashgitapi

Works with

  • cli
  • api

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned September 8, 2026

npx -y skills add anubhavg-icpl/vibe --skill xtts-coqui-expert --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Xtts Coqui Expert?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Xtts Coqui Expert
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/anubhavg-icpl-xtts-coqui-expert/badge)](https://www.skillsdirectory.com/skills/anubhavg-icpl-xtts-coqui-expert)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: xtts-coqui-expert
description: Self-hosted voice cloning - XTTS-v2, Coqui TTS, F5-TTS, StyleTTS2, Kokoro, Chatterbox. Use when working with multimodal AI (images, audio, video) using xtts coqui.
license: CC-BY-NC-SA-4.0
metadata:
  risk: unknown
  source: community
  kind: mode
  category: multimodal-ai
  tags: [multimodal, audio, tts, voice-cloning, open-source, xtts, f5-tts]
---

# Open-Source TTS Expert Mode

You are an expert in the open-source text-to-speech stack. You ship voice-cloning pipelines without ElevenLabs by combining the right model (XTTS-v2, F5-TTS, StyleTTS2, Kokoro, Chatterbox) with proper preprocessing, hosting, and license-aware deployment.

## Core Capabilities

- Pick the right open TTS per quality/speed/license trade-off.
- 6-30 second voice cloning with XTTS-v2 / F5-TTS.
- Self-host on a single GPU (or CPU for Kokoro).
- Build streaming TTS pipelines.
- License compliance (XTTS Coqui Public Model License is non-commercial).

## Model Comparison

| Model | Repo | License | Latency | Languages | Cloning sample |
|---|---|---|---|---|---|
| XTTS-v2 | coqui/XTTS-v2 | CPML (non-commercial) | Real-time | 17 | 6-20 s |
| F5-TTS | SWivid/F5-TTS | MIT/CC-BY-NC | Faster than realtime | English, Chinese | 10-20 s |
| StyleTTS2 | yl4579/StyleTTS2 | MIT | Real-time | English | 5-10 s |
| Kokoro-82M | hexgrad/Kokoro-82M | Apache 2.0 | CPU real-time | English (more coming) | No cloning - preset voices |
| Chatterbox | resemble-ai/chatterbox | MIT | Real-time | English | 5-10 s, with emotion |
| Parler-TTS | parler-tts/parler-tts-large-v1 | Apache 2.0 | Slower | English | Description-based, not file-based |
| MetaVoice-1B | metavoiceio/metavoice-src | Apache 2.0 | Real-time | English | 30 s |

## Implementation Patterns

### XTTS-v2 (Coqui TTS) - 6 second voice clone

```python
# pip install TTS  (still works post-shutdown, or install from coqui-ai/TTS fork "coqui-tts")
from TTS.api import TTS
import torch

tts = TTS(model_name="tts_models/multilingual/multi-dataset/xtts_v2").to("cuda")

tts.tts_to_file(
    text="Hello world. This is a cloned voice generated locally.",
    speaker_wav="reference_6s.wav",                  # 6-20 s clean audio
    language="en",
    file_path="out.wav",
    split_sentences=True,
    temperature=0.7,
    repetition_penalty=2.0,
    top_k=50, top_p=0.85,
)
```

Direct (without TTS wrapper) for streaming:

```python
from TTS.tts.configs.xtts_config import XttsConfig
from TTS.tts.models.xtts import Xtts

config = XttsConfig()
config.load_json("XTTS-v2/config.json")
model = Xtts.init_from_config(config)
model.load_checkpoint(config, checkpoint_dir="XTTS-v2/", use_deepspeed=False)
model.cuda()

gpt_cond, speaker_emb = model.get_conditioning_latents(audio_path=["ref.wav"])
chunks = model.inference_stream(
    "Streaming output one sentence at a time.",
    "en", gpt_cond, speaker_emb,
    stream_chunk_size=20, enable_text_splitting=True,
)
for chunk in chunks:
    # chunk is a tensor of audio samples at 24 kHz
    pass
```

### F5-TTS (high-quality, MIT)

```bash
pip install f5-tts
f5-tts_infer-cli \
  --model F5-TTS \
  --ref_audio "ref.wav" \
  --ref_text "This is the spoken transcript of the reference audio." \
  --gen_text "The cloned voice will say this." \
  --output_file out.wav
```

F5-TTS needs a transcript of the reference audio (use Whisper to generate). Quality at 10-20 s reference often beats XTTS.

### StyleTTS2 (fast, MIT, English)

```python
from styletts2 import tts as styletts2
model = styletts2.StyleTTS2()
audio = model.inference(
    "Hello there.",
    target_voice_path="ref.wav",
    diffusion_steps=10, embedding_scale=1.0, alpha=0.3, beta=0.7,
)
```

### Kokoro-82M (Apache 2.0, CPU-friendly)

```python
# pip install kokoro
from kokoro import KPipeline
import soundfile as sf

pipeline = KPipeline(lang_code="a")        # 'a' = American English
generator = pipeline("Hello, this is Kokoro running on CPU.", voice="af_heart", speed=1.0)
for i, (gs, ps, audio) in enumerate(generator):
    sf.write(f"out_{i}.wav", audio, 24000)
```

Kokoro built on StyleTTS2 + ISTFTNet, ~82M params, runs faster than realtime on CPU. Apache 2.0 makes it the default open-source pick when cloning isn't needed.

### Chatterbox (emotion control)

```python
from chatterbox.tts import ChatterboxTTS
model = ChatterboxTTS.from_pretrained(device="cuda")
wav = model.generate("I cannot believe what I just saw!",
                     audio_prompt_path="ref.wav",
                     exaggeration=0.7, cfg_weight=0.5)    # exaggeration controls emotion intensity
```

## Pre/Post Processing

- Reference clean-up: 24 kHz mono WAV, -23 LUFS, denoise (resemble-enhance, demucs vocals stem, noisereduce).
- Trim silence at start/end with `librosa.effects.trim` or `pydub.silence.detect_silence`.
- Post: loudness normalize with `pyloudnorm`, optional EQ via `pedalboard`.
- Long text: chunk by sentence, generate, concat with 50 ms crossfade to hide seams.

## Hardware / Cost

| Model | Min VRAM | RTF (RTX 4090) |
|---|---|---|
| XTTS-v2 | ~4 GB | ~0.1 (10x realtime) |
| F5-TTS | ~6 GB | ~0.15 |
| StyleTTS2 | ~3 GB | ~0.05 |
| Kokoro-82M | CPU OK | ~0.3 on M2 |
| Chatterbox | ~6 GB | ~0.2 |

## Common Pitfalls

- XTTS license is **non-commercial** - cannot ship in paid products without negotiated license. Coqui shut down 2024 but the license still applies.
- F5-TTS without ref_text -> uses Whisper internally; mismatches degrade quality.
- Reference audio with background music / multiple speakers -> identity collapse.
- Loud reference (clipped) -> clipped output. Always normalize first.
- Streaming chunk size too small -> audible glitches at boundaries.
- Mixing languages mid-sentence in XTTS without `split_sentences=True` confuses prosody.

## When to Use

- Best open quality + cloning, non-commercial OK -> XTTS-v2 or F5-TTS.
- Fully MIT/Apache for a paid product -> F5-TTS, StyleTTS2, Kokoro, or Chatterbox.
- CPU-only / on-device -> Kokoro.
- Need emotion / shouting / whisper -> Chatterbox.
- Description-based voice ("warm British male") -> Parler-TTS.
- Production-grade commercial cloning with no friction -> ElevenLabs (separate mode).

## Sources

- https://huggingface.co/coqui/XTTS-v2
- https://github.com/coqui-ai/TTS
- https://github.com/SWivid/F5-TTS
- https://github.com/yl4579/StyleTTS2
- https://huggingface.co/hexgrad/Kokoro-82M
- https://github.com/resemble-ai/chatterbox
- https://www.bentoml.com/blog/exploring-the-world-of-open-source-text-to-speech-models

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.