
Talkies
io.github.psyb0tPublished by GitHub account psyb0tv0.17.0Updated Oct 24, 2026
Self-hosted MCP server for speech: ASR transcription, TTS synthesis, and file staging tools.
Overview
Self-hosted Docker speech server exposing an MCP endpoint so an assistant can transcribe audio files and stage files for ASR workflows.
- What you can do
- Transcribe audio files and produce subtitles through the OpenAI-compatible transcription route, including phoneme output from IPA models
- Stage, list and delete server-side files used as transcription input
- Inspect enabled models and their modality, and unload models to free memory
- Beyond MCP, the same service offers text-to-speech synthesis, live WebSocket ASR, and voice cloning from clips dropped into a data folder
- When to use it
- Use it when you want speech-to-text inside an assistant but keep audio on your own machine instead of sending it to a hosted API, and you are comfortable running a Docker container with downloaded model weights.
- Requirements
- A local Docker runtime; the image is published as psyb0t/talkies and served over streamable HTTP on port 8000, typically mapped to loopback. A CUDA image and GPU access are needed for the larger models. Model weights are downloaded at runtime, and TALKIES_ENABLED_MODELS limits which ones are fetched on first boot. Optional bearer token via TALKIES_AUTH_TOKEN.
Installation
In SourceWeft
- Open Talkies in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
talkies
[CI] [version] [license] [Docker Pulls]
Self-hosted speech services in one Docker image: OpenAI-compatible file transcription and text-to-speech, Talkies live ASR over WebSocket, file staging, model lifecycle controls, and an MCP endpoint for ASR workflows.
Contents
- Start here
- What it provides
- Models at a glance
- Documentation
- Agent integrations
- Security in one minute
- Development
Start here
Restrict the first boot to the models you need; otherwise the entrypoint downloads every model in the bundled registry.
For CUDA-only models — Parakeet-TDT, the larger Canary models, Qwen3 TTS and
Chatterbox Turbo — use psyb0t/talkies:latest-cuda with --gpus all. The
loopback port mapping keeps the service local; see
Getting started for first boot and authentication.
What it provides
The HTTP transcription and speech routes use the corresponding OpenAI wire shapes where those contracts overlap. Streaming ASR, files, lifecycle controls, and MCP are Talkies extensions.
Models at a glance
- CPU: two Whisper models, Canary-180M-Flash, Nemotron ASR via parakeet.cpp, four English Sherpa-ONNX Zipformer choices, Vosk small English, two phoneme recognizers, and two Kokoro TTS backends.
- CUDA: the CPU set plus Parakeet-TDT, Canary 1B/Qwen ASR, five Qwen3 TTS variants, and Chatterbox Turbo.
- Live ASR: bundled Nemotron, Sherpa-ONNX, and Vosk are native; bundled Whisper is a bounded rolling decoder. Sherpa and Vosk also work through the OpenAI-compatible file-transcription endpoint.
- Phoneme recognition:
wav2vec2-xlsr-53-espeakandzipa-ipareturn the IPA phones that were spoken, not words, with no language model correcting them toward the nearest dictionary entry. Same transcription endpoint and timestamp options as the other ASR models; see Phoneme recognition. - Per-model concurrency limits cover WebSocket, HTTP, MCP, ASR, and TTS; the bundled Nemotron CPU and CUDA entries admit two requests.
- Streaming TTS: Qwen3 returns incremental raw PCM for
response_format="pcm"; other TTS formats and Kokoro are buffered. - Expressive TTS: Chatterbox Turbo (English) takes 19 inline tags such as
[sigh],[whispering]and[laugh]directly in the input text. Its output carries a neural watermark by default; setTALKIES_CHATTERBOX_WATERMARKto false to emit unmarked audio. - Voice cloning: drop a
.wavinto/data/custom-voicesand it appears onGET /v1/audio/voices. Qwen3 pairs it with an optional sibling.txttranscript; Chatterbox needs only the clip, longer than five seconds.
Exact slugs, executors, tag list, and registry format: Models and registries.
Reading phonemes
wav2vec2-xlsr-53-espeak and zipa-ipa use the same transcription call as
every other ASR slug; only the model changes. text comes back as a
space-separated IPA phone stream rather than words, and no language model
corrects a mispronunciation toward a real word.
Add -F "response_format=verbose_json" (or timestamp_granularities[]=word)
to get each phone as a words entry with start and end in seconds.
Prompting Chatterbox with emotion
Tags go inline in input, in square brackets, lowercase. They are real tokens
in the model's tokenizer, so only these 19 do anything — any other bracketed
word is spoken as literal text:
Swap "voice" for the name of any .wav you dropped in /data/custom-voices
(extension stripped) to speak the same line in a cloned voice.
Documentation
Agent integrations
The Talkies skill teaches agents to use the HTTP,
WebSocket, and MCP surfaces. Install it through the shared psyb0t marketplace
or let Codex discover it directly from this checkout.
Claude Code
Claude Code prompts for the Talkies URL and, when enabled, the bearer token; the sensitive token is stored through the client's protected configuration.
Codex
A marketplace install invokes the skill as $talkies:talkies. Codex also
discovers .agents/skills/talkies directly in this repository, where it is
invoked as $talkies without installation.
OpenClaw
The skill and MCP bridge are published through ClawHub:
The bridge connects local stdio MCP clients to a running Talkies /v1/mcp
endpoint. Set TALKIES_URL and, when authentication is enabled,
TALKIES_AUTH_TOKEN.
Security in one minute
TALKIES_AUTH_TOKEN enables a shared bearer token for every HTTP and WebSocket
route except /healthz. It is unset by default. Keep the port loopback-only or
put Talkies behind TLS, authentication, and rate limiting. If untrusted callers
can supply remote file_path URLs, set TALKIES_BLOCK_PRIVATE_DOWNLOADS=true.
See Operations and security for the complete posture.
Development
make help lists every target.
Talkies is released under the WTFPL. Model weights are downloaded at runtime and have their own terms; image component notices are in THIRD_PARTY.md. Release notes are in CHANGELOG.md.
Source: README.md at commit f157302
Tools
0Version history
1- v0.17.0LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts