项目简介
这是一个实现了 Model Context Protocol (MCP) 标准的语音助手服务器,旨在与支持 MCP 协议的大语言模型客户端(如 Cursor、Anysphere 等)集成。它为客户端提供了将文本转换为语音播放以及将用户语音转录为文本的能力,支持构建基于语音交互的AI应用。
主要功能点
- 文本转语音 (TTS): 使用 Kokoro TTS 引擎将输入的文字合成为语音并播放。
- 语音转文本 (STT): 使用 OpenAI Whisper 模型转录用户麦克风输入的语音为文字。支持静音检测和背景噪音校准,以提高转录的准确性和用户体验。
- 对话轮次: 将文本转语音和语音转文本功能集成到一个操作中,方便LLM进行连贯的语音对话。
- 多语言支持 (TTS): 支持指定语言(如英语、西班牙语)进行文本转语音。
安装步骤
- 克隆代码仓库 到你的本地计算机。
- 创建并激活 Python 虚拟环境,推荐使用 Python 3.9-3.12。
- 在 Linux/macOS 上:'python3 -m venv venv' 然后 'source venv/bin/activate'
- 在 Windows 上:'python -m venv venv' 然后 'venv\Scripts\activate'
- 安装系统依赖 PortAudio。这是 PyAudio 库需要的音频I/O库。
- macOS (使用 Homebrew): 'brew install portaudio'
- Debian/Ubuntu: 'sudo apt-get install portaudio19-dev python3-pyaudio'
- Windows: 可能需要下载预编译的二进制文件或使用其他方法安装。
- 安装 Python 依赖。在激活的虚拟环境中,运行 'pip install -r requirements.txt'。请确保你已克隆的项目目录中包含 'requirements.txt' 文件。
服务器配置(供MCP客户端参考)
该服务器被设计为由支持 MCP 协议的客户端应用(如某些IDE或AI平台)启动和管理。你需要在客户端的配置界面中添加对这个服务器的引用。配置信息通常是 JSON 格式,指定了如何启动这个服务器脚本。
以下是一个典型配置示例所需的信息结构(不是实际的代码,请根据你的客户端界面填写):
- 服务器名称: 'Voice Assistant Server' (客户端界面中显示的名称)
- 启动命令 (command): 指定用于运行服务器脚本的 Python 解释器的绝对路径。这个路径通常指向你在步骤2中创建的虚拟环境内的 'python' 可执行文件。
- 命令参数 (args): 一个字符串列表,指定传递给启动命令的参数。通常包括:
- '-u': 确保输出不被缓冲。
- 服务器主脚本的 绝对路径:指向你克隆仓库中的 'voice_server.py' 文件。
- 工作目录 (cwd): 指定服务器脚本的 运行目录绝对路径。通常是克隆代码仓库的根目录。
- 超时设置 (timeout, 可选): 客户端等待服务器启动的最大秒数。
请将上述路径信息替换为你本地系统上实际的绝对路径。
基本使用方法
服务器由 MCP 客户端启动后,会通过标准输入/标准输出 (stdio) 与客户端通信,遵循 JSON-RPC 协议。LLM 客户端会根据其任务和用户指令,调用服务器暴露的 MCP 工具来实现语音功能。
- 客户端调用 'list_tools' RPC 方法可以获取服务器支持的工具列表及其详细描述(包括参数)。
- 客户端调用 'call_tool' RPC 方法可以执行具体的语音操作:
- 调用 'speak' 工具,附带 'text' 参数,将文本播放为语音。
- 调用 'listen' 工具,启动录音并转录用户语音为文本。
- 调用 'conversation_turn' 工具,一次性完成说话和监听用户回复的完整对话轮次。
LLM 客户端需要根据对话流程和自身逻辑,判断何时调用这些工具以及如何使用它们返回的结果(例如,将转录的文本作为用户输入进行处理)。
信息
分类
AI与计算