mcpField
T
Talkies

Talkies

本地服务
github.com/psyb0t媒体与设计71 周前更新

关于 Talkies

Talkies 是可自托管的语音服务,面向需要语音识别与合成的应用和 Agent。它将 HTTP、实时 WebSocket、文件暂存和模型管理集中在一个 Docker 镜像中。

主要功能

  1. 01文件语音转写与字幕
  2. 02WebSocket 实时语音识别
  3. 03多格式语音合成
  4. 04服务端文件暂存
  5. 05模型检查与卸载

适用场景

  1. 01转写录音并生成字幕
  2. 02处理实时语音流
  3. 03将文本合成为语音
  4. 04为语音工作流暂存文件

MCP 相关

Talkies 提供 Streamable HTTP MCP 端点 `/v1/mcp`,向 MCP 客户端开放语音识别和文件工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"psyb0t-talkies": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"docker.io/psyb0t/talkies:v0.17.0"
]
}
}
}
启动命令docker run -i --rm docker.io/psyb0t/talkies:v0.17.0

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocidocker.io/psyb0t/talkies:v0.17.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

talkies

CI version license Docker Pulls

一个 Docker 镜像中集成的可自托管语音服务:兼容 OpenAI 的文件转录和文本转语音、通过 WebSocket 提供的 Talkies 实时 ASR、文件暂存、模型生命周期控制,以及用于 ASR 工作流的 MCP 端点。

目录

从这里开始

首次启动时,请仅启用所需的模型;否则,入口点会下载内置注册表中的所有模型。

docker run --rm -it --name talkies \
  -p 127.0.0.1:8000:8000 \
  -v "$PWD/talkies-data:/data" \
  -e TALKIES_ENABLED_MODELS=whisper-large-v3-turbo,kokoro-82m \
  psyb0t/talkies:latest

curl -s http://127.0.0.1:8000/healthz
curl -s http://127.0.0.1:8000/v1/audio/transcriptions \
  -F "file=@/path/to/clip.wav" \
  -F "model=whisper-large-v3-turbo"

对于仅支持 CUDA 的模型——Parakeet-TDT、较大的 Canary 模型、Qwen3 TTS 和 Chatterbox Turbo——请使用 psyb0t/talkies:latest-cuda 并添加 --gpus all。回环端口映射可确保服务仅在本地运行;首次启动和身份验证请参阅入门指南。

功能简介

接口用途参考
POST /v1/audio/transcriptions文件转录和字幕HTTP API
WS /v1/audio/transcriptions/stream实时 16 kHz PCM ASR流式处理
POST /v1/audio/speech支持六种格式的语音合成HTTP API
GET /v1/models已启用的模型标识及其模态HTTP API
GET /v1/audio/voices带有来源标签的各模型语音目录模型
GET/PUT/DELETE /v1/files/*服务端文件暂存HTTP API
/api/ps、/unload模型检查和卸载运维
/v1/mcp提供 ASR/文件工具的流式 HTTP MCPHTTP API
GET /healthz存活探针;唯一无需身份验证的路由运维

HTTP 转录和语音路由在契约兼容的范围内采用相应的 OpenAI 数据格式。流式 ASR、文件、生命周期控制和 MCP 则是 Talkies 扩展功能。

模型一览

  • CPU:两个 Whisper 模型、Canary-180M-Flash、通过 parakeet.cpp 运行的 Nemotron ASR、四种英文 Sherpa-ONNX Zipformer 选项、Vosk 英文小型模型、两个音素识别器,以及两个 Kokoro TTS 后端。
  • CUDA:CPU 配置中的模型,外加 Parakeet-TDT、Canary 1B/Qwen ASR、五种 Qwen3 TTS 变体,以及 Chatterbox Turbo。
  • 实时 ASR:内置的 Nemotron、Sherpa-ONNX 和 Vosk 均为原生实现;内置 Whisper 使用有界滚动解码器。Sherpa 和 Vosk 也可通过 OpenAI 兼容的文件转录端点使用。
  • 音素识别:wav2vec2-xlsr-53-espeak 和 zipa-ipa 返回实际发出的 IPA 音素,而非单词;不会使用语言模型将其纠正为最接近的词典词条。使用与其他 ASR 模型相同的转录端点和时间戳选项;请参阅音素识别。
  • 每个模型的并发限制适用于 WebSocket、HTTP、MCP、ASR 和 TTS;内置的 Nemotron CPU 和 CUDA 配置各允许两个请求。
  • 流式 TTS:Qwen3 在 response_format="pcm" 时会增量返回原始 PCM;其他 TTS 格式和 Kokoro 则会缓冲。
  • 富有表现力的 TTS:Chatterbox Turbo(英语)可直接在输入文本中识别 19 种内联标签,例如 [sigh]、[whispering] 和 [laugh]。其输出默认带有神经水印;将 TALKIES_CHATTERBOX_WATERMARK 设为 false 可生成无水印音频。
  • 声音克隆:将 .wav 文件放入 /data/custom-voices,即可通过 GET /v1/audio/voices 获取。Qwen3 可选配同名 .txt 转录文件;Chatterbox 只需音频片段,且时长须超过五秒。

确切的 slug、执行器、标签列表和注册表格式: 模型和注册表。

解读音素

wav2vec2-xlsr-53-espeak 和 zipa-ipa 使用与其他所有 ASR slug 相同的转录调用;只有模型不同。返回的 text 是以空格分隔的 IPA 音素流,而非单词;语言模型不会将误读纠正为真实单词。

curl -s http://127.0.0.1:8000/v1/audio/transcriptions \
  -F "file=@/path/to/clip.wav" \
  -F "model=zipa-ipa"
# {"text": "a ɪ m k ə n f j u z ...", ...}

添加 -F "response_format=verbose_json"(或 timestamp_granularities[]=word),即可在 words 条目中获取每个音素及其以秒为单位的 start 和 end 时间。

通过情绪提示 Chatterbox

标签以小写形式置于 input 中,并用方括号括起。它们是模型分词器中的真实令牌,因此只有这 19 个标签有效——其他任何带方括号的词都会作为字面文本朗读:

[angry] [fear] [surprised] [whispering] [advertisement] [dramatic] [narration]
[crying] [happy] [sarcastic] [clear throat] [sigh] [shush] [cough] [groan]
[sniff] [gasp] [chuckle] [laugh]
curl -s http://127.0.0.1:8000/v1/audio/speech \
  -H 'Content-Type: application/json' \
  -d '{
        "model": "chatterbox-turbo",
        "voice": "builtin",
        "input": "Oh, that is hilarious. [chuckle] Anyway [sigh] back to work.",
        "response_format": "mp3"
      }' --output out.mp3

将 "voice" 替换为你放入 /data/custom-voices 的任意 .wav 文件名(不含扩展名),即可用克隆的声音朗读同一句话。

文档

指南内容
快速入门运行 CPU/CUDA、持久化数据、进行身份验证、验证
模型和注册表内置 slug、镜像可用性、自定义注册表
架构请求流程、后端选择、磁盘布局
HTTP API请求、响应、文件、生命周期、MCP
流式处理实时 ASR 协议、流式后端、PCM TTS
配置支持的环境变量和限制
运维与安全暴露、模型内存、数据保留、日志
开发Make 目标、测试套件、镜像构建

Agent 集成

Talkies 技能指导 Agent 使用 HTTP、WebSocket 和 MCP 接口。可通过共享的 psyb0t marketplace 安装,也可让 Codex 直接从此代码检出目录发现它。

Claude Code
claude plugin marketplace add psyb0t/agents
claude plugin install talkies@psyb0t

Claude Code 会提示输入 Talkies URL;如果已启用,还会提示输入 bearer token。敏感令牌会通过客户端的受保护配置存储。

Codex
codex plugin marketplace add psyb0t/agents
codex plugin add talkies@psyb0t

通过 marketplace 安装后,可将技能作为 $talkies:talkies 调用。Codex 也会直接发现此仓库中的 .agents/skills/talkies,无需安装即可通过 $talkies 调用。

OpenClaw

该技能和 MCP 桥接器通过 ClawHub 发布:

openclaw skills install @psyb0t/talkies
openclaw plugins install clawhub:@psyb0t/talkies

该桥接器将本地 stdio MCP 客户端连接到运行中的 Talkies /v1/mcp 端点。设置 TALKIES_URL,并在启用身份验证时设置 TALKIES_AUTH_TOKEN。

一分钟了解安全性

TALKIES_AUTH_TOKEN 会为除 /healthz 之外的所有 HTTP 和 WebSocket 路由启用共享承载令牌。默认未设置。请将端口限制为仅允许回环访问,或 在 Talkies 前部署 TLS、身份验证和速率限制。如果不受信任的调用方 可以提供远程 file_path URL,请设置 TALKIES_BLOCK_PRIVATE_DOWNLOADS=true。 完整的安全措施请参阅运维与安全。

开发

make check                 # lint + unit tests in the dev image
make lint                  # flake8 + mypy only
make test-unit             # fast offline unit tests
make run                   # run the CPU image locally
make test-streaming        # real CPU native WebSocket ASR test
make test-streaming-custom # real CPU Sherpa/Vosk WebSocket + HTTP tests
make test-streaming-custom-cuda # real CUDA Sherpa WebSocket + HTTP test
make compile-heavy         # regenerate the hash-locked ML requirements
make build-all             # CPU and CUDA production images

make help 会列出所有目标。

Talkies 基于 WTFPL 发布。模型权重会在运行时下载,并适用各自的条款;图像组件声明请见 THIRD_PARTY.md。发行说明请见 CHANGELOG.md。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。