<!-- skill: AI Voice | version: 1.0.0 | description: Design voices, clone with consent, ship ElevenLabs and local TTS | category: AI & Automation -->
## Instructions
- Choose path deliberately: ElevenLabs cloud for quality/emotion, Piper local for private/offline, XTTS for cloning.
- Design voices with prompts: age + gender + texture + pace + accent, 2-3 sentences, test same 30-word script.
- Require cloning consent: written release, identity check, no public-figure mimic, store consent PDF with voice id.
- Disclose AI voice: verbal This is an AI voice + show notes tag, never pass robocalls as human.
- Normalize text first: expand 3pm to 3 P M, $12 to twelve dollars, split 200-word chunks at sentence ends.
- Set synthesis params: stability 0.5 narration / 0.3 drama, similarity 0.75 clone, 22050Hz local, MP3 128k delivery.
- Pair with tts-say plugin: plugin handles playback plumbing, this skill owns voice choice, prompts, ethics.
- Master loudness: -16 LUFS podcast, -14 LUFS shortform, true-peak -1.5dB, 0.8s room-tone head/tail.
- Version voices: aria-v1.2 stability-50, keep sample WAV + prompt + consent hash in voices/ git folder.
- Batch efficiently: off-peak cloud renders, local Piper queue overnight, cache repeated intros/outros by hash.
- Handle 3 languages max per voice: separate model per language family, native-speaker check before publish.
- Provide fallback: if API down, auto-switch to Piper en_US-lessac-medium with notice in show notes.
## Examples
- Example 1: Podcast host: ElevenLabs aria-v1.2 stability 0.55, 30-min render, -16 LUFS, AI-voice disclosed.
- Example 2: Offline kiosk: Piper en_US-lessac-medium 22kHz on Pi 5, 0.4s latency, no cloud PII leaves device.
- Example 3: Consent clone: narrator release signed, 3-min clean sample, similarity 0.75, consent PDF archived.
- Example 4: Refusal: public-figure impression request declined, offered original voice design instead.
## Workflows
- Workflow A — Design: 1. Prompt draft 2. 30-word test 3. 3 variants 4. Listener vote 5. Lock v1.0.
- Workflow B — Clone: 1. Consent sign 2. 3-min sample 3. Denoise 4. Train/XTTS ref 5. Similarity test 6. Archive.
- Workflow C — Produce: 1. Normalize text 2. Chunk 200w 3. Synthesize 4. Loudness master 5. Disclosure tag.
- Workflow D — Fallback: 1. Health check 2. Piper switch 3. Notice note 4. Re-render cloud later.
## Templates
- Voice design prompt: `Warm female 30s, smoky texture, slow 0.9x pace, soft Irish lilt, bedtime-story calm, no fry.`.
- ElevenLabs request:
```json
{"voice_id": "aria-v1-2", "model_id": "eleven_multilingual_v2", "stability": 0.55, "similarity_boost": 0.75, "style": 0.3, "text": "Welcome back. Today we test three mics under forty dollars."}
```
- Piper local render:
```bash
echo "Welcome back." | piper --model en_US-lessac-medium --output_file ep12.wav
ffmpeg -i ep12.wav -ar 22050 -b:a 128k ep12.mp3 && loudnorm -I ep12.mp3
```
- Disclosure line: `Voice: AI-generated (ElevenLabs aria-v1.2) with consent where cloned — full release on file.`.
## Tools
- ElevenLabs — top-tier emotion/cloning, multilingual v2, starter $5/mo beats DIY for hero voices.
- Piper TTS — fast local offline voices on Pi/CPU, 22050Hz, 30+ languages, zero per-char cost.
- XTTS v2 / Coqui — local cloning with 3-min sample, style transfer, runs on 8GB VRAM.
- Audacity / ffmpeg — denoise clone samples, loudnorm to -16/-14 LUFS, MP3 chapter encode.
- tts-say plugin — SARAH playback wiring, queue, fallback switching this skill configures.
- Consent form template — release text, usage scope, revocation clause stored per voice id.
## Advanced
- Clone quality: 3-min 48kHz dry closet sample, RNNoise strip, -3dB peaks, no music bleed or reverb.
- Tune prosody: SSML breaks 300ms sentences, emphasis on prices/names, spell acronyms with spaces.
- Multilingual keep: separate XTTS checkpoint per language, 0.7 similarity cap avoids accent bleed.
- Cut cost: cache intro/outro/ad-reads by text hash, reuse MP3, cloud only for new body copy.
- A/B voices: same script two designs, 20-listener blind vote on warmth/clarity before series lock.
- Live latency: Piper streaming chunks 15 words, 0.4s first-audio, ElevenLabs Turbo only for realtime bots.
- Watermark provenance: embed AI-voice tag in ID3 + show notes URL to consent record for disputes.
- Monitor drift: re-render golden 30-word script monthly, diff MOS score, repin model_id on change.
- Backup voices: export ElevenLabs voice settings + Piper .onnx to voices/ with consent hash quarterly.
- Test intelligibility: run 100-word number/acronym script, fix misreads via alias dictionary before series.
## Documentation
- ElevenLabs docs — voices, models, stability/similarity tuning, cloning consent and pricing.
- Piper README — model list, sample rates, CLI flags and Pi 5 performance table.
- XTTS v2 docs — sample requirements, VRAM table, multilingual limits and fine-tune steps.
- FTC/FCC robocall rules — AI-voice disclosure, consent, and telemarketing restriction summaries.
- Loudness standards — podcast -16 vs shortform -14 LUFS, true-peak and delivery specs.
