PocketTTS MCP
初学者工作区,用于下载和运行本地PocketTTS模型作为MCP服务器。
这包括什么
- 基于令牌的Hugging Face模型下载器脚本。
- Python依赖项的本地项目设置。
- 将机密和模型文件保存在git之外的安全默认值。
- 带有合成工具和语音列表的MCP服务器入口点。
- 本地web GUI。
- Docker和Docker组合支持。
先决条件
- Python 3.11+
- 中的有效Hugging Face访问令牌
secrets.env
快速开始
- 创建并激活虚拟环境:
py -3.11 -m venv .venv
.\.venv\Scripts\Activate.ps1- 安装依赖项:
.\.venv\Scripts\python.exe -m pip install -r requirements.txt- 确保
secrets.env包含您的令牌:
HUGGINGFACE_HUB_TOKEN=hf_xxx- 下载默认PocketTTS模型(
kyutai/pocket-tts):
.\.venv\Scripts\python.exe scripts/download_model.py该模型将下载到 models/pocket-tts 默认情况下。
运行说明
运行MCP服务器(stdio):
.\.venv\Scripts\python.exe server.py重要提示:这是MCP客户端的stdio服务器。启动后,不要在该终端中键入随机文本或按Enter键。任何手动输入都被视为JSON-RPC,可以生成 Invalid JSON 错误。 默认情况下,启动MCP还会在端口7860上启动Gradio GUI sidecar。 它将尝试自动打开您的浏览器。
如果sidecar GUI没有出现,请检查:
http://localhost:7860outputs/gui_sidecar.log启动错误
如果需要,禁用sidecar启动:
$env:POCKETTTS_AUTOSTART_GUI="0"
.\.venv\Scripts\python.exe server.py运行GUI:
.\.venv\Scripts\python.exe gui.py运行本地客户端:
.\.venv\Scripts\python.exe clients/play_client.py --text "PocketTTS is ready"注: --text 是必需的 play_client.py.
默认语音首选项为 bricktop 如果可用。
运行Docker GUI:
docker compose up --build可选:自定义模型或输出路径
.\.venv\Scripts\python.exe scripts/download_model.py --model-id kyutai/pocket-tts --output-dir models/pockettts-main冒烟测试
.\.venv\Scripts\python.exe scripts/smoke_test.pyMCP服务器的下一步
该项目包括 服务器.py,它通过MCP stdio公开PocketTTS工具。
启动MCP服务器
.\.venv\Scripts\python.exe server.py外露工具
health()list_voices()list_output_devices()get_audio_routing()set_audio_routing(output_device=None, auto_chat=None, persist_to_config=False, config_path=None, server_name="pockettts-local")synthesize(text, voice, output_path=None)synthesize_chunked(text, voice, chunk_size=180, output_dir=None, merged_output_path=None, merge_output=True)speak_now(text, voice, output_path=None, block=True, keep_file=False, output_device=None)create_voice(voice_name, audio_path, overwrite=False)
默认语音为 bricktop (回到 alba).如果 output_path 不提供,音频转到 outputs/tts_.wav对于分块生成,可以将块合并到一个文件中。 speak_now 立即在本地计算机上播放音频;默认情况下,它从内存中播放,除非 keep_file=True 或 output_path 已设置。 自动路由:如果您当前的Windows默认输出是Arctis/Sonar 游戏 设备,PocketTTS将自动将播放路由到匹配的设备 聊天 用于该通话的设备。 如果耳机路由不适用,它将恢复到正常的系统输出行为。
音频路由
PocketTTS可以将播放路由到特定的音频设备。列出可用设备:
list_output_devices()通过设置每个呼叫的路由 output_device 参数在 speak_now/synthesize.使用环境变量配置持久默认值:
POCKETTTS_OUTPUT_DEVICE--设备名称或索引(使用system默认输出)POCKETTTS_AUTO_CHAT--设置为0禁用自动游戏→ 聊天路由
SteelSeries Arctis用户:检测到TTS自动从游戏路由到聊天设备。
MCP配置
该项目包括 .vscode/mcp.json 随着 ${workspaceFolder} 路径。对于其他编辑器,请调整此模板:
{
"servers": {
"pockettts-local": {
"command": "path/to/.venv/Scripts/python.exe",
"args": ["path/to/server.py"],
"env": {
"POCKETTTS_OUTPUT_DEVICE": "system",
"POCKETTTS_AUTO_CHAT": "1"
}
}
}
}本地GUI
.\.venv\Scripts\python.exe gui.py打开http://localhost:7860
语音克隆
- 打开图形用户界面。
- 在 语音克隆,输入新的语音名称。
- 上传或录制音频样本。
- 点击 保存嵌入.
- 新语音已保存到
voice_embeddings/.safetensors并出现在语音下拉列表中。
之后,在GUI、MCP工具或本地客户端中使用保存的语音名称。
客户
.\.venv\Scripts\python.exe clients/play_client.py --text "PocketTTS is online."码头工人
docker compose up --build在端口7860上为GUI提供服务,安装 ./models 和 ./outputs.对于无头MCP模式:
docker run --rm -it --env-file secrets.env -e POCKETTTS_MODE=mcp pockettts-mcp