关于 Voice Assistant
Voice Assistant 是基于 LiveKit、Cartesia、OpenAI 和 Silero 构建的简单语音助手,并通过 MCP 连接 WhatsApp。适合希望以语音方式与 WhatsApp 交互的开发者。
主要功能
- 01基于 LiveKit 的语音交互
- 02Cartesia 文本转语音
- 03OpenAI 语音识别与 LLM 调用
- 04Silero VAD 语音活动检测
- 05通过 mcp_config.json 配置 MCP 服务
适用场景
- 01通过语音查询和操作 WhatsApp 消息
- 02在 LiveKit Agents Playground 中测试本地语音 Agent
MCP 相关
作为 MCP 客户端,读取 mcp_config.json 连接本地运行的 whatsapp-mcp 服务,使语音助手能够调用其 WhatsApp 相关功能。
详细介绍
语音助手
一个使用 LiveKit、Cartesia、OpenAI、Silero 和多内容处理器 (MCP) 进行 WhatsApp 集成的简单语音助手。
前置要求
- Python >=3.13
uv(Python 包管理器和虚拟环境管理器)
设置
-
克隆仓库:
git clone <your-repo-url> cd voice-assistant -
创建并激活虚拟环境(使用 uv):
uv venv source .venv/bin/activate # 在 Linux/macOS 上 # .\.venv\Scripts\activate # 在 Windows 上 -
安装依赖:
uv sync -
设置环境变量:
在项目根目录创建名为
.env的文件,并添加以下环境变量及其实际值。 你可以复制下面的示例:LIVEKIT_URL= LIVEKIT_API_KEY= LIVEKIT_API_SECRET= CARTESIA_API_KEY= OPENAI_API_KEY=LIVEKIT_URL:你的 LiveKit 服务器 URL。LIVEKIT_API_KEY:你的 LiveKit API 密钥。LIVEKIT_API_SECRET:你的 LiveKit API 密钥。CARTESIA_API_KEY:你的 Cartesia API 密钥,用于文本转语音。OPENAI_API_KEY:你的 OpenAI API 密钥,用于语音转文本和大模型操作。
-
配置 WhatsApp MCP(多内容处理器):
此项目使用 MCP 与 WhatsApp 交互。你需要运行并配置 WhatsApp MCP 服务。
使用正确的路径更新项目根目录中的
mcp_config.json文件以进行 MCP 设置:{ "mcpServers": { "whatsapp": { "command": "{{PATH_TO_UV}}", "args": [ "--directory", "{{PATH_TO_SRC}}/whatsapp-mcp/whatsapp-mcp-server", "run", "main.py" ] } } }- 将
{{PATH_TO_UV}}替换为uv可执行文件的绝对路径。你可以在终端上运行which uv(Linux/macOS)或where uv(Windows)找到此路径。 - 将
{{PATH_TO_SRC}}替换为包含whatsapp-mcp项目的目录的绝对路径。例如,如果你的whatsapp-mcp项目在/Users/me/dev/whatsapp-mcp,那么此值应为/Users/me/dev。配置中的最终路径为/Users/me/dev/whatsapp-mcp/whatsapp-mcp-server。
- 将
运行助手
-
(可选)下载必要的模型文件(例如 Silero VAD):
voice.py脚本可能有一个命令或在首次运行时自动下载必要的模型。下面的示例显示一个假设的命令,如果你的voice.py支持该命令。# 如果你的 voice.py 有下载命令,例如: # uv run python voice.py download-files目前,
voice.py脚本使用livekit.agents.cli.run_app,它通常为 Silero 等插件处理自己的设置。 -
启动语音助手:
uv run voice-assistant-cli这使用
pyproject.toml中定义的voice-assistant-cli脚本。
连接到 Playground
助手运行后,你可以在浏览器中加载 LiveKit Agents Playground,并连接到本地 Agent。
注意:此 README 假设你已在系统 PATH 中安装并配置了 uv。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。