# Talkies

A self-hosted speech server in one Docker image. Useful when an agent has to transcribe audio or speak text back.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed · ★ 7
- Author: psyb0t
- License: WTFPL · policy=link-only · description only; the file stays with the author
- Source: https://github.com/psyb0t/docker-talkies
- Updated: 2026-10-19
- HTML: https://affpapa.org/en/nevibecode/mcp/talkies

## What it does

Talkies runs as a local container. It covers file transcription, live ASR over WebSocket, speech synthesis in several formats, server-side file staging and model lifecycle controls. Agents reach the same features through the `/v1/mcp` endpoint, which exposes ASR and file tools. The transcription and speech routes mirror the OpenAI wire shapes where the contracts overlap; streaming, files, lifecycle and MCP are Talkies extensions.

On the first boot, pass `TALKIES_ENABLED_MODELS` to pull only the models you need. Skip it and the entrypoint downloads the whole bundled registry. Some models are CUDA-only: Parakeet-TDT, the larger Canary entries, Qwen3 TTS and Chatterbox Turbo need the `psyb0t/talkies:latest-cuda` image plus `--gpus all`. Keep the port on loopback as in the example, `127.0.0.1:8000` — `GET /healthz` is the one route that skips authentication.

Voice cloning is folder-based. Drop a `.wav` into `/data/custom-voices` and it shows up in `GET /v1/audio/voices`. Qwen3 can pair it with a sibling `.txt` transcript; Chatterbox takes the clip alone, and it has to run past five seconds. Chatterbox Turbo understands 19 inline tags such as `[sigh]` or `[whispering]`, written lowercase in square brackets inside the input text. Any other bracketed word gets read out as literal text. Its audio carries a neural watermark unless you set `TALKIES_CHATTERBOX_WATERMARK` to false.

## Requirements
- Needs: Docker
- Works with: Docker

## Install

### Claude Code (native platform)

**Install**
- The MCP registry has no launch command for it: see the repository README

## When to use it
- turn a meeting recording into text with timestamps
- get IPA phones for what was actually spoken
- render a line as mp3 with a chosen voice
- stage an audio file on the server and fetch it by name
- evict a model from memory once you are done

## Example prompts
- Transcribe `clip.wav` with `whisper-large-v3-turbo` and give me the text
- Synthesize this line with `chatterbox-turbo` as mp3
- Copy `intro.wav` into `/data/custom-voices` and list the voices

## Similar
- [MCP Toolbox for Databases](https://affpapa.org/en/nevibecode/mcp/googleapis-mcp-toolbox-for-databases.md) — MCP server · ★ 16730
- [labelhead-artist-momentum](https://affpapa.org/en/nevibecode/mcp/labelhead-artist-momentum.md) — MCP server · ★ 107701
- [Agent Skills Search Server](https://affpapa.org/en/nevibecode/mcp/agent-skills-search-server.md) — MCP server · ★ 26673
- [Skyvern](https://affpapa.org/en/nevibecode/mcp/skyvern.md) — MCP server · ★ 23283
- [Nhost](https://affpapa.org/en/nevibecode/mcp/nhost.md) — MCP server · ★ 9369
- [PraisonAI](https://affpapa.org/en/nevibecode/mcp/praisonai.md) — MCP server · ★ 9298

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
