speech-to-cli MCP 服务器
使用说明(Markdown 格式)
-
项目简介
- 该仓库实现了一个 MCP 服务器(mcp_speech.py),基于 stdio JSON-RPC 与 MCP 客户端通信,为 LLM 客户端提供音频上下文服务能力。核心能力包括通过 listen、converse、speak、talk 等工具实现语音输入与输出的交互,支持多种 STT/TTS 实现,以及对资源、提示、模板等进行管理与渲染。
-
主要功能点
- 实现 MCP 协议的核心服务器端逻辑:处理 initialize、tools/list、tools/call、resources/list/read、ping、notifications 等请求与响应,以及 progress 通知。
- 提供多种 MCP 工具:listen、speak、converse、multi_speak、talk、configure、get_voices 等,支持参数化输入与执行结果返回。
- 集成 Azure Speech Services:STT(流式、VAD、本地 Whisper 等模式)与 TTS(支持多种声音、速度、音高等参数),并实现音频流、进度提示与断点续传。
- 音频相关特性:VAD、回声消除检测、音频吞吐与播放器的半双工/全双工处理、UI 提示和实时字幕/音量指示等。
- 资源与模板支持:提供 README/配置等资源的读取与渲染接口,便于客户端展示规范文档和配置描述。
- 本地化与安全性考虑:未将敏感数据送出,提供读取配置、获取声音列表等受控能力,强调 API 密钥的正确管理。
-
安装步骤
- 获取源码:git clone https://github.com/jphein/speech-to-cli.git
- 进入仓库目录:cd speech-to-cli
- 运行 MCP 服务器(示例,需替换为实际路径)
- python3 mcp_speech.py
- 依赖与前置条件(需自行在环境中安装;示例依赖(非穷尽)包括 requests、websocket-client、webrtcvad、faster_whisper、xclip/xsel、arecord/aplay 等工具,且需配置 Azure Speech Services 的凭据)
- 配置 Azure 語音服务
- 设置环境变量或在 ~/.config/speech-to-cli/config.json 中配置 key、region、voice 等字段
-
服务器配置(MCP 客户端连接信息) 服务器名称在代码中标识为 azure-speech;客户端通过 MCP 配置连接到该服务器。以下 JSON 为示例配置,展示如何在 MCP 客户端中注册并启动该服务器。 { "mcpServers": { "azure-speech": { "command": "python3", "args": ["/path/to/speech-to-cli/mcp_speech.py"] } } } 注释说明(仅为帮助理解,不属于最终代码):
- server name: azure-speech,与服务器实现中返回的 serverInfo 一致,便于区分不同 MCP 服务器。
- command: 启动服务器所使用的可执行程序,此处为 python3。
- args: 服务器脚本的路径及启动参数(此处为直接执行 mcp_speech.py)。
- MCP 客户端仅需要提供上述信息以便建立连接,实际的 API 交互由 MCP 协议处理。
-
基本使用方法
- 启动后,MCP 客户端(Copilot CLI、Claude Code、Gemini CLI 等)即可通过 listen/speak/converse 等工具与你的语音助手进行交互。
- 客户端配置好后,按工具说明调用相应方法,即可获得文本结果或执行 TTS/STT 流程的音频输出。
- 如需调整音频/设备设置,可以通过 configure 工具进行运行时修改,并持久化到配置文件。
-
备注
- 本 MCP 服务器使用 stdio 进行通信,不对外暴露网络端口,所有交互均通过本地命令和标准输入输出完成。
- 使用前需要正确配置 Azure Speech Services 的 API 密钥和区域,并在环境变量或配置文件中设定相应字段。