speakturbo-tts — скилл для Claude Code: голосовой вывод за ~90 мс
Скилл даёт агенту голос: озвучивает текст вслух через локальный демон с задержкой около 90 мс. Пригодится, когда нужен быстрый звуковой отклик от Claude.
npx skills add EmZod/Speak-Turbo --skill speakturbo-tts -a claude-codeЧто делает speakturbo-tts
Скилл ставит CLI speakturbo на Rust и демон на Python с движком pocket-tts. Демон держит модель в памяти и отдаёт поток по HTTP на порт 7125, а воспроизведение идёт через rodio. Внутри 8 голосов: alba (по умолчанию), marius, javert, jean, fantine, cosette, eponine, azelma.
Первый запуск занимает 2–5 секунд, пока демон стартует и грузит модель около 100 МБ. Дальше до первого звука проходит примерно 90 мс. Демон поднимается сам при первом вызове и выключается после часа простоя.
Флаг -o пишет файл только в разрешённые каталоги: системный temp, текущую рабочую папку и ~/.speakturbo/. Для другого пути нужен --allow-dir, иначе запись не пройдёт. Клонирования голоса и эмоций вроде [laugh] здесь нет — для этого в репозитории есть отдельный скилл speak.
Какие задачи решает
- озвучить ответ агента вслух прямо во время работы
- сохранить синтезированную речь в wav-файл
- проверить, какие голоса доступны в сборке
- услышать результат длинной генерации, не дожидаясь её конца
- быстро переключиться на другой встроенный голос
Примеры запросов агенту
- Озвучь последний абзац через speakturbo-tts
- Скажи вслух «сборка прошла», используя speakturbo-tts
- Сохрани эту фразу в wav через speakturbo-tts
Как установить speakturbo-tts
1Через Skills CLI (Vercel)
npx skills add EmZod/Speak-Turbo --skill speakturbo-tts -a claude-code2Вручную: положить файлы
~/.claude/skills/speakturbo-tts/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/speakturbo-tts/
1Через Skills CLI (Vercel)
npx skills add EmZod/Speak-Turbo --skill speakturbo-tts -a codex2Вручную: положить файлы
.agents/skills/speakturbo-tts/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add EmZod/Speak-Turbo --skill speakturbo-tts -a cursor2Вручную: положить файлы
.cursor/skills/speakturbo-tts/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install EmZod/Speak-Turbo speakturbo-tts2Вручную: положить файлы
.github/skills/speakturbo-tts/SKILL.md1Через Skills CLI (Vercel)
npx skills add EmZod/Speak-Turbo --skill speakturbo-tts -a gemini-cli2Командой платформы
gemini skills install https://github.com/EmZod/Speak-TurboВручную: положить файлы
.devin/skills/speakturbo-tts/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add EmZod/Speak-Turbo --skill speakturbo-tts -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о speakturbo-tts
Как установить speakturbo-tts в Claude?
Выполните npx skills add EmZod/Speak-Turbo --skill speakturbo-tts -a claude-code. Скилл окажется в ~/.claude/skills/speakturbo-tts/SKILL.md.
Что делает speakturbo-tts?
Озвучивает текст через локальный демон с задержкой около 90 мс и 8 встроенными голосами. Умеет играть сразу или писать результат в wav.
Чем speakturbo-tts отличается от скилла speak?
speakturbo быстрее до первого звука и работает на pocket-tts, но не умеет клонировать голос и эмоции. Для клонирования и тегов вроде [laugh] нужен speak на Chatterbox.
Исходный текст
SKILL.md · MIT
---
name: speakturbo-tts
description: Give your agent the ability to speak to you real-time. Talk to your Claude! Ultra-fast TTS, text-to-speech, voice synthesis, audio output with ~90ms latency. 8 built-in voices for instant voice responses. For voice cloning, use the speak skill.
---
# speakturbo - Talk to your Claude!
Give your agent the ability to speak to you real-time. Ultra-fast text-to-speech with ~90ms latency and 8 built-in voices.
## Quick Start
```bash
# Play immediately - you should hear "Hello world" through your speakers
speakturbo "Hello world"
# Output: ⚡ 92ms → ▶ 93ms → ✓ 1245ms
# Verify it's working by saving to file
speakturbo "Hello world" -o test.wav
ls -lh test.wav # Should show ~50-100KB file
```
**Output explained:** `⚡` = first audio received, `▶` = playback started, `✓` = done
## First Run
The **first execution takes 2-5 seconds** while the daemon starts and loads the model into memory. Subsequent calls are ~90ms to first sound.
```bash
# First run (slow - daemon starting)
speakturbo "Starting up" # ~2-5 seconds
# Second run (fast - daemon already running)
speakturbo "Now I'm fast" # ~90ms
```
## Usage
```bash
# Basic - plays immediately (default voice: alba)
speakturbo "Hello world"
# Save to file (no audio playback)
speakturbo "Hello" -o output.wav
# Save to specific file
speakturbo "Goodbye" -o goodbye.wav
# Quiet mode (suppress status messages, still plays audio)
speakturbo "Hello" -q
# List available voices
speakturbo --list-voices
```
## Available Voices
| Voice | Type |
|-------|------|
| `alba` | Female (default) |
| `marius` | Male |
| `javert` | Male |
| `jean` | Male |
| `fantine` | Female |
| `cosette` | Female |
| `eponine` | Female |
| `azelma` | Female |
## Performance
| Metric | Value |
|--------|-------|
| Time to first sound | ~90ms (daemon warm) |
| First run | 2-5s (daemon startup) |
| Real-time factor | ~4x faster |
| Sample rate | 24kHz mono |
## Architecture
```
speakturbo (Rust CLI, 2.2MB)
│
│ HTTP streaming (port 7125)
▼
speakturbo-daemon (Python + pocket-tts)
│
│ Model in memory, auto-shutdown after 1hr idle
▼
Audio playback (rodio)
```
## Text Input
- **Encoding:** UTF-8
- **Quotes in text:** Use escaping: `speakturbo "She said \"hello\""`
- **Long text:** Supported, streams as it generates
## Output Path Security
The `-o` flag only writes to directories that are on the allowlist. By default, these are:
- `/tmp` and system temp directories
- Your current working directory
- `~/.speakturbo/`
If you need to write elsewhere, use `--allow-dir`:
```bash
speakturbo "Hello" -o /custom/path/audio.wav --allow-dir /custom/path
```
To permanently allow a directory, add it to `~/.speakturbo/config`:
```bash
mkdir -p ~/.speakturbo && echo "/custom/path" >> ~/.speakturbo/config
```
The config file is one directory per line. Lines starting with `#` are comments.
## Exit Codes
| Code | Meaning |
|------|---------|
| 0 | Success (audio played/saved) |
| 1 | Error (daemon connection failed, invalid args) |
## When to Use
**Use speakturbo when:**
- You need instant audio feedback (~90ms)
- Speed matters more than voice variety
- Built-in voices are sufficient
**Use `speak` instead when:**
- You need custom voice cloning (Morgan Freeman, etc.)
→ `speak "text" --voice ~/.chatter/voices/morgan_freeman.wav`
- You need emotion tags like `[laugh]`, `[sigh]`
- Quality/variety matters more than speed
See the `speak` skill documentation for full usage.
## Troubleshooting
**No audio plays:**
```bash
# Check daemon is running
curl http://127.0.0.1:7125/health
# Expected: {"status":"ready","voices":["alba","marius",...]}
# Verify by saving to file and playing manually
speakturbo "test" -o /tmp/test.wav
afplay /tmp/test.wav # macOS
aplay /tmp/test.wav # Linux
```
**Daemon won't start:**
```bash
# Check port availability
lsof -i :7125
# Manually kill and restart
pkill -f "daemon_streaming"
speakturbo "test" # Auto-restarts daemon
```
**First run is slow:**
This is expected. The daemon needs to load the ~100MB model into memory. Subsequent calls will be fast (~90ms).
## Daemon Management
The daemon auto-starts on first use and **auto-shuts down after 1 hour idle**.
```bash
# Check status
curl http://127.0.0.1:7125/health
# Manual stop
pkill -f "daemon_streaming"
# View logs
cat /tmp/speakturbo.log
```
## Comparison with speak
| Feature | speakturbo | speak |
|---------|------------|-------|
| Time to first sound | ~90ms | ~4-8s |
| Voice cloning | ❌ | ✅ |
| Emotion tags | ❌ | ✅ |
| Voices | 8 built-in | Custom wav files |
| Engine | pocket-tts | Chatterbox |
© EmZod · MIT · EmZod/Speak-Turbo