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コーデックに基づいた300Mパラメータの音声トランスフォーマーです。会話的な音声(呼吸、笑い、ためらいを含む)でトレーニングされており、いくつかのプリセットされたパーソナリティにボイスクローンを作成できます。
主な機能
- フルデュプレックス音声ループ – 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出力)。 - プラグイン可能なバックエンド – LLMにはOllama、vLLM、またはOpenAI互換のサービスを選択できます。ASRにはfaster-whisper(GPU)またはMoonshine(CPU/ONNX)を選択できます。
- ツール・ルーティング(「thoughts stream」) – 並列のLLMが各ターンを監視し、ウェイクワードなしで約15個の組み込みツール(メモリ、タイマー、ウェブ検索、Claudeスタイルのタスクサーバーへの委任)を呼び出すことができます。
- ボイスクローン & コンディショニング – サンプルをアップロードして話者をクローンします。2つのコンディショニング・ベクトルにより、音声品質(6つのSQチャンネル)と1秒あたりの単語数(WPS)を調整できます。
- クロスプラットフォーム対応 – Linux + NVIDIA GPU用のDocker-compose、macOS(Apple Silicon用のMLXバックエンド)用のネイティブ・インストール、およびCloudflare TunnelやTailscale経由でのモバイルアクセス用のドキュメント化されたパスを提供します。
インストール
# One-liner installer (Docker vs native, dependencies, model download)
curl -fsSL https://install.fluxions.ai | bash
このスクリプトは、リポジトリを ~/vui にクローンし、Python (uv) をセットアップし、ffmpeg、Ollama、Claude Code CLIをインストールし、http://localhost:8080 でUIを起動します。
一般的な 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– TTS モデル単体で動作する Gradio UI です(ボイスクローン・アップロード、CLIレンダリング)。docker composeプロファイルを使用して、Ollama コンテナや、委任されたマルチステップ・アクション(メール、カレンダー、ウェブ検索)用の Claude-task サイドカーを追加できます。
拡張性
- ASR – UI から faster-whisper (GPU) と Moonshine (CPU/ONNX) を切り替えます。
- LLM – 任意の Ollama モデル、vLLM サーバー、または OpenAI 互換のエンドポイント。
- ツール – 「thoughts」ルーターはプラグイン可能です。
docs/thoughts-tools.mdのガイドに従って、独自のローカル関数(タイマー、スマートホームの切り替え)を追加できます。 - 検索プロバイダー – 単一クエリの事実確認のための Serper, Brave, または Tavily API。
詳細についてはこちら
- ライブデモ: 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 タスクサーバーのドキュメント:
docs/claude-task-server.md
結論 – Vui は、ASR/LLM/TTS コンポーネントを入れ替え可能な、プロダクション・グレードの、エンドツーエンドの音声アシスタント・パイプラインを提供します。ローカル(GPU または Apple Silicon)または Docker で実行可能で、OpenAI Realtime API 互換性、ツール統合、ツール・ルーティング、および OpenAI 互換のリアルタイム・インターフェースを提供します。これは、音声中心の会話型エージェントに焦点を当てた、真の AI/ML プロジェクトです。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト