farshed/sage
Self-hosted voice chat with LLMs
Sage – 用语音与 LLM 对话
它是什么 – Sage 是一款开源应用程序,让您可以与大型语言模型 (LLM) 进行语音对话。它将语音转文字模型、LLM(通过 Ollama 自托管或通过云端 API 访问)以及文字转语音组件串联起来,全部在本地运行,确保您的数据不会离开机器。
为什么重要 – 大多数语音助手演示都依赖专有服务。Sage 展示了完整的语音-LLM 流程可以由免费提供的模型组装而成,并在消费级硬件上以适度的延迟运行。
核心组件
| 组件 | 角色 | 使用的模型示例 |
|---|---|---|
| 语音转文字 | 将麦克风输入转为文字 | Whisper (ggml‑large‑v3‑turbo) |
| LLM | 生成回复 | 任何由 Ollama 服务的模型 (例如 deepseek-r1:7b) 或云端供应商 (OpenAI, Anthropic, Deepseek, Together.ai) |
| 文字转语音 | 将 LLM 回复朗读出来 | 未明确命名,但通过 voices.json 目录提供 |
这三个阶段通过一个使用 Bun(快速的 JavaScript 执行环境)编写的小型 Node 风格服务器连接在一起。README 中的架构图显示了数据流:麦克风 → Whisper → LLM → 语音合成 → 扬声器。
开始使用
- 选择语言模型
- 自托管 – 安装 Ollama,选择一个模型,并在
.env文件中设置OLLAMA_MODEL。 - 云端 – 为 OpenAI、Anthropic、Deepseek 或 Together.ai 添加对应的
*_API_KEY和*_MODEL变量。
- 自托管 – 安装 Ollama,选择一个模型,并在
- 安装堆栈
- Docker 路径(较简单) – 将三个模型文件放入
models/文件夹,执行bun docker-build然后执行bun docker-run。UI 会出现在http://localhost:3000(注意:Whisper 在 Docker 内运行速度会慢约 4‑5 倍)。 - 原生路径(较快) – 安装 Bun、Rust、OpenSSL、LLVM/Clang 和 CMake。执行平台特定的
setup‑unix.sh或setup‑win.bat来下载权重并编译 Whisper 二进制文件。使用bun start启动。
- Docker 路径(较简单) – 将三个模型文件放入
- 对话 – 开启网页 UI,对着麦克风说话,并聆听模型的回答。
README 中强调的设计目标
- 开放 – 使用社区维护的语音模型(Whisper、Kokoro 语音编码器)。
- 高效 – 针对消费级 CPU/GPU;唯一沉重的部分是 Whisper,它可以在现代笔记本电脑上实时运行。
- 自托管 – 除非您选择云端 LLM,否则不需要外部服务。
- 模块化 – 切换 LLM 供应商只需更改环境变量。
路线图(截至 README)
- ✅ Docker 打包(已提供)
- ⬜ CUDA 加速以实现更快的推理
- ⬜ 自定义 Ollama 端点支持
- ⬜ 多语言语音支持
- ⬜ 公开 Whisper 配置选项
- ⬜ 系统提示词自定义
- ⬜ 一般流程优化
- ⬜ 将 Sage 发布为可重复使用的库
总结
Sage 是一个实用的端到端演示,展示了完全由开源组件构建的语音优先 AI 助手。对于想要在不依赖封闭 API 的情况下尝试语音 LLM 交互的爱好者来说非常有用,它提供了一个清晰的示例,说明如何将语音模型、LLM 后端和 TTS 整合在一个轻量级、自包含的套件中。
相关
- 项目
- 项目
- 项目
- 项目