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 → 语音合成 → 扬声器。


开始使用

  1. 选择语言模型
    • 自托管 – 安装 Ollama,选择一个模型,并在 .env 文件中设置 OLLAMA_MODEL。
    • 云端 – 为 OpenAI、Anthropic、Deepseek 或 Together.ai 添加对应的 *_API_KEY 和 *_MODEL 变量。
  2. 安装堆栈
    • 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 启动。
  3. 对话 – 开启网页 UI,对着麦克风说话,并聆听模型的回答。

README 中强调的设计目标

  • 开放 – 使用社区维护的语音模型(Whisper、Kokoro 语音编码器)。
  • 高效 – 针对消费级 CPU/GPU;唯一沉重的部分是 Whisper,它可以在现代笔记本电脑上实时运行。
  • 自托管 – 除非您选择云端 LLM,否则不需要外部服务。
  • 模块化 – 切换 LLM 供应商只需更改环境变量。

路线图(截至 README)

  • ✅ Docker 打包(已提供)
  • ⬜ CUDA 加速以实现更快的推理
  • ⬜ 自定义 Ollama 端点支持
  • ⬜ 多语言语音支持
  • ⬜ 公开 Whisper 配置选项
  • ⬜ 系统提示词自定义
  • ⬜ 一般流程优化
  • ⬜ 将 Sage 发布为可重复使用的库

总结

Sage 是一个实用的端到端演示,展示了完全由开源组件构建的语音优先 AI 助手。对于想要在不依赖封闭 API 的情况下尝试语音 LLM 交互的爱好者来说非常有用,它提供了一个清晰的示例,说明如何将语音模型、LLM 后端和 TTS 整合在一个轻量级、自包含的套件中。

相关

  • 项目
  • 项目
  • 项目
  • 项目