
Talkies
io.github.psyb0t由 GitHub 帳號 psyb0t 發布v0.17.0更新於 Oct 24, 2026
Self-hosted MCP server for speech: ASR transcription, TTS synthesis, and file staging tools.
概覽
自架式的 Docker 語音服務,提供 MCP 端點,讓助理轉寫音訊檔案並為 ASR 流程暫存檔案。
- 可以做什麼
- 透過相容於 OpenAI 的轉寫介面轉寫音訊檔案並產生字幕,包含 IPA 模型輸出的音素結果
- 在伺服器端暫存、列出與刪除作為轉寫輸入的檔案
- 檢視已啟用的模型及其模態,並卸載模型以釋放記憶體
- 除 MCP 外,同一服務還提供語音合成、WebSocket 即時 ASR,以及用放入資料目錄的音訊片段進行聲音複製
- 適用情境
- 當你想在助理內做語音轉文字,但希望音訊留在本機而非送到託管 API,且願意執行一個會下載模型權重的 Docker 容器時使用。
- 執行需求
- 本機 Docker 執行環境;映像為 psyb0t/talkies,透過 streamable HTTP 在 8000 埠提供服務,通常只對應到回環位址。較大的模型需要 CUDA 映像與 GPU。模型權重在執行時下載,可用 TALKIES_ENABLED_MODELS 限制首次啟動時抓取的模型。可選用 TALKIES_AUTH_TOKEN 設定 bearer 權杖。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Talkies,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
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.
來源:README.md,提交 f157302
工具
0版本歷史
1- v0.17.0最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分