← Tools Portal
THE BLACKCAT Voice Studio
# THE BLACKCAT Voice Studio
## Purpose
Generate speech from text: voiceover for deliverables and character/UGC
voices. Paste text, pick a voice, press one button, get an MP3.
> Not to be confused with **Voice Extractor Studio**, which does the opposite
> (separates an existing voice from music). This one generates new speech.
## Providers
Three engines behind the same screen (`providers.py`). Pick a voice and the
Studio routes to whichever provider owns it.
- **edge-tts (free, default)**: ~90 curated neural voices (strong Spanish and
Latino coverage, Argentine voices first). No key, works out of the box.
- **ElevenLabs (optional)**: highest-fidelity cloning. Best choice for a
client's flagship voice. Key from `ELEVENLABS_API_KEY` or
`studios/voice-studio/.elevenlabs-key`.
- **Fish Audio (optional)**: model **S2.1 Pro**, 83 languages, ~70-90ms
time-to-first-audio, instant cloning from 10-30s of audio. Key from
`FISH_API_KEY` or `studios/voice-studio/.fishaudio-key`. Get one at
https://fish.audio/app/api-keys.
Every key is validated against its provider before being saved, stored with
permissions 600, git-ignored, and never committed.
### Which one to use
| Situation | Provider |
|---|---|
| Quick draft, internal check | edge-tts (free) |
| Client's flagship cloned voice | ElevenLabs |
| Long batches, many languages, cost matters | Fish Audio |
Cost reality check (2026-07): Fish Audio charges about **USD 15 per million
characters**; ElevenLabs overage runs **USD 240-300 per million**. For a big
voiceover batch that gap is the whole point of having both.
### Fish Audio: free vs paid model
- `s2.1-pro-free` (default): free under fair use, **no SLA**, and requests may
be used to improve their model. Fine for drafts and experiments.
- `s2.1-pro`: the paid production model, billed per character. Tick **"Usar el
modelo pago S2.1 Pro"** in Avanzado for client work - it carries an SLA and
keeps requests out of their training.
Note: the free API tier was announced as open through 2026-07-24. After that
the same model stays available on the paid tier.
## Launch
```bash
scripts/open-voice-studio.command
```
Then open `http://127.0.0.1:8776`.
## Usage
1. Paste the script/text.
2. Search and pick a voice (filter by "argentina", "mujer", "ingles", a name,
or a provider name).
3. Press **"Generar voz"**. Listen inline, download the MP3, or open the folder.
## Cloning a client's voice
In Avanzado, with at least one paid provider connected: pick the provider (a
chip row appears when both are connected), drop 1-3 minutes of clean audio,
name the voice, press **"Clonar voz"**. The sample streams straight to the
provider; nothing is stored here. The new voice appears in the list right away.
**Always clone with the person's permission.** Fish Audio does not enforce a
consent check the way ElevenLabs does, so the responsibility sits with the
operator.
**Privacy**: Fish Audio's API defaults new voice models to `public`, which
would list a client's voice on their discovery page. The Studio forces
`visibility=private` on every clone - do not remove that.
## Notes
- Generated audio lives in `output/` (git-ignored, local only).
- Text limit per generation: 5000 characters. Split longer scripts.
- Recipe from the field: to clone a natural-sounding voice, record a raw phone
sample without editing (keep filler words and breaths).