fluxions-ai/vui
Vui Nano — a small, context-aware text-to-speech model trained on real conversations. 219M active params (305M total), Apache 2.0, voice cloning, streaming, runs on CPU (dependency-free C build). Ships with a full real-time voice assistant: WebRTC, ASR, local LLM, OpenAI Realtime API compatible.
Vui – 流式对话语音助手
是什么 – Vui (发音为 “vooey”) 是一个开源的实时语音助手技术栈。通过单个 Python 服务器将语音转文本 (speech-to-text)、本地大语言模型 (LLM) 和流式文本转语音 (TTS) 模型粘合在一起,让你能够与计算机交谈并立即听到语音回复。
核心模型 – Vui Nano – 一个基于 Qwen-3 TTS codec 构建的 300 M 参数语音 Transformer。它在对话式语音(包括呼吸、笑声、犹豫)上进行了训练,并且可以克隆为几种预设的人格。
关键能力
- 全双工语音循环 – WebRTC + WebSocket 流水线:ASR → LLM → TTS,具有 VAD 驱动的轮次切换和 barge-in(你可以中断回复)。
- 流式 TTS – 在 RTX 4090 上使用 bf16 推理和 CUDA graphs,速度约为实时速度的 9 倍。
- OpenAI Realtime API 兼容性 – 为任何遵循 OpenAI 规范的客户端提供即插即用的
ws://…/v1/realtime端点。 - 单次语音笔记端点 –
POST /v1/voice-note通过单个 HTTP 调用运行整个流水线(输入音频,输出带有 base64-WAV 的 JSON)。 - 可插拔后端 – 在 Ollama, vLLM, 或任何 OpenAI 兼容的服务中选择 LLM;为 ASR 选择 faster-whisper (GPU) 或 Moonshine (CPU/ONNX)。
- 工具路由 (“thoughts stream”) – 一个并行的 LLM 会观察每个轮次并可以调用约 15 种内置工具(记忆、计时器、网页搜索、委派给 Claude 风格的任务服务器)而无需唤醒词语法。
- 语音克隆与调节 – 上传一个样本来克隆说话人;两个调节向量允许你偏置语音质量 (six SQ channels) 和每秒字数 (WPS)。
- 跨平台支持 – 用于 Linux + NVIDIA GPU 的 Docker-compose,用于 macOS (MLX 后端用于 Apple Silicon) 的原生安装,以及通过 Cloudflare Tunnel 或 Tailscale 进行移动端访问的文档化路径。
安装
# 一行命令安装程序 (检测 Docker 与原生安装,拉取依赖,下载模型)
curl -fsSL https://install.fluxions.ai | bash
该脚本会将仓库克隆到 ~/vui,设置 Python (uv),安装 ffmpeg, Ollama, 和 Claude Code CLI,然后启动 UI 在 http://localhost:8080。
典型的 Docker 工作流
- 安装 Docker + NVIDIA Container Toolkit。
- 为 Ollama 拉取一个 LLM,例如
ollama pull qwen3.5:4b。 docker compose up -d– 启动 Vui 流式容器(以及可选的 Ollama/Claude 边车容器)。- 打开浏览器,允许麦克风访问,并开始交谈。
原生工作流 (无 Docker) – 安装 ffmpeg,运行 uv sync (或者在 Apple Silicon 上仅运行 uv sync),启动 Ollama,拉取一个模型,然后:
python -m vui.serving.stream # server on http://localhost:8080
环境变量 (VUI_OLLAMA_URL, VUI_OLLAMA_MODEL, VUI_LLM_BACKEND, 等) 允许你将服务器指向任何兼容的 LLM 后端。
演示工具
demo.py– 一个 Gradio UI,可以单独运行 TTS 模型 (语音克隆上传, CLI 渲染)。docker compose配置集允许你添加一个 Ollama 容器或一个 Claude-task 边车容器,用于委派、多步操作 (邮件, calendar, 网页研究)。
可扩展性
- ASR – 在 UI 中切换 faster-whisper (GPU) 和 Moonshine (CPU/ONNX)。
- LLM – 任何 Ollama 模型, vLLM 服务器, 或 OpenAI 兼容的端点。
- Tools – “thoughts” 路由是可插拔的的;你可以通过
docs/thoughts-tools.md指南通过添加你自己的本地函数 (计时器, smart-home toggles) 来实现。 - Search providers – Serper, Brave, 或 Tavily APIs 用于单次查询的事实性查找。
了解更多
- 实时演示: https://fluxions.ai/talk
- 发布博客文章 (设计笔记 & 路线图): https://fluxions.ai/blog/vui-launch
- Hugging Face 上的模型: https://huggingface.co/fluxions/vui
- 完整 API 规范:
docs/realtime-api.md - 配置详情:
docs/configuration.md - Claude task-server 文档:
docs/claude-task-server.md
总结 – Vui 提供了一个生产级的、端到端的语音助手流水线,你可以本地 (GPU 或 Apple Silicon) 是否可以运行,或者在 Docker 中运行,具有可插换的 ASR/LLM/TTS 组件、工具集成、以及 OpenAI 兼容的实时接口。它是一个真正的 AI/ML 项目,专注于以语音为中心的对话式智能体。
相关
- 项目
- 项目
- 项目
- 项目
- 项目