Skip to content
Back to skills

Voice

ASecurity

Narration and text-to-speech on the user's machine through Guaardvark's Audio Foundry (Chatterbox, Kokoro, Piper) and consent-gated voice cloning from a reference clip. Use when the user wants a voiceover, narration of a script, a spoken line, or "make it sound like this voice".

  • 253 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 19, 2026
ai-agentsgobashexpressapibackend

Works with

  • cli
  • api
  • mcp

Security analysis

A100/100

Scanned October 7, 2026

npx -y skills add guaardvark/guaardvark --skill voice --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Voice?

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

Security grade badge for Voice
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/guaardvark-voice/badge)](https://www.skillsdirectory.com/skills/guaardvark-voice)

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: voice
description: >-
  Narration and text-to-speech on the user's machine through Guaardvark's Audio Foundry
  (Chatterbox, Kokoro, Piper) and consent-gated voice cloning from a reference clip. Use
  when the user wants a voiceover, narration of a script, a spoken line, or "make it sound
  like this voice".
---

# Voice with Guaardvark

Read `setup` first. Expressive voices need the `audio_foundry` plugin running;
Piper works without it. `B=${GUAARDVARK_URL:-http://localhost:5000}`.

## Which engine

| engine | route | when |
|---|---|---|
| Chatterbox | Audio Foundry `backend: "chatterbox"` | expressive, emotion presets, **cloning** |
| Kokoro | Audio Foundry `backend: "kokoro"` | fast, clean, 10+ built-in voices (`af_heart` default) |
| Piper | `/api/voice/text-to-speech` | offline fallback, no GPU |

`GET $B/api/audio-foundry/voices` lists what is installed. `GET $B/api/voice/voices` lists Piper voices.

## Speak a line or a script

Over MCP, call `generate_speech` (`text` up to 3000 characters, optional `voice` such as
`af_heart`, `engine` auto | kokoro | chatterbox); it waits and returns the file with a download
link. Cloning is not offered over MCP. Without MCP, or for the Chatterbox knobs, use REST:

```bash
curl -s -X POST $B/api/audio-foundry/generate/voice -H 'Content-Type: application/json' -d '{
  "text": "The line to speak.",
  "backend": "auto",            # auto | chatterbox | kokoro
  "voice_id": "af_heart",       # Kokoro voice, or omit
  "emotion": "calm",            # Chatterbox preset, or omit
  "exaggeration": 0.5, "cfg_weight": 0.5, "temperature": 0.8,   # Chatterbox knobs, optional
  "seed": 7, "output_format": "wav", "async": true
}'
```
- Short text returns the file directly (`path`, `document_id`). With `"async": true` or long
  text you get `202 {"job_id"}`: poll `GET $B/api/audio-foundry/jobs/<job_id>` until `status`
  is `done`; the result has `path` and `document_id`. Cancel: `POST .../jobs/<job_id>/cancel`.
- Multi-section narration with pauses: `POST $B/api/voice/narrate`
  `{"script": "...", "engine": "kokoro", "voice": "...", "pause_between_sections": 0.6, "output_format": "wav"}`.
- Piper only: `POST $B/api/voice/text-to-speech {"text", "voice": "libritts"}` returns `audio_url`.

## Clone a voice (consent-gated)

1. The reference must go through the upload route; that is what records consent. Arbitrary
   file paths are refused with 403.
   ```bash
   curl -s -X POST $B/api/audio-foundry/voice-clips/upload -F file=@/abs/path/ref.wav -F name="Narrator sample"
   ```
   The response gives the stored path. `GET $B/api/audio-foundry/voice-clips` lists clips.
2. Generate with `"backend": "chatterbox", "reference_clip_path": "<that path>"`.
3. Before uploading, ask whether the voice belongs to the user or someone who consented. Do not
   clone a public figure or anyone who has not agreed. Refuse politely if unclear.

## Rules

- 10 to 20 seconds of clean speech is enough for a clone; more is not better.
- Say which engine ran (the response reports it); `auto` falls back to Kokoro on a Chatterbox error.
- Audio files are local under `data/outputs/`; they also appear in the Audio library page.

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.