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 カタログ経由で提供 |
これら3つのステージは、Bun (高速なJavaScriptランタイム) で書かれた小さなNodeスタイルのサーバーで接続されています。READMEのアーキテクチャ図が示すデータフローは、マイク → Whisper → LLM → 音声合成 → スピーカー となっています。
始め方
- 言語モデルを選択
- セルフホスト – Ollamaをインストールし、モデルを選択して
.envファイルでOLLAMA_MODELを設定します。 - クラウド – OpenAI、Anthropic、Deepseek、またはTogether.ai用の適切な
*_API_KEYおよび*_MODEL変数を追加します。
- セルフホスト – Ollamaをインストールし、モデルを選択して
- スタックをインストール
- Dockerルート(簡単) – 3つのモデルファイルを
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ルート(簡単) – 3つのモデルファイルを
- 会話 – Web UIを開き、マイクに向かって話しかけると、モデルの回答が聞こえます。
READMEで強調されている設計目標
- オープン – コミュニティで管理されている音声モデル(Whisper、Kokoro音声エンコーダー)を使用。
- 効率的 – コンシューマーグレードのCPU/GPUをターゲット。唯一重いWhisperも、最新のノートPCならリアルタイムで動作可能。
- セルフホスト – クラウドLLMを選択しない限り、外部サービスは不要。
- モジュール化 – LLMプロバイダーの切り替えは環境変数の変更のみ。
ロードマップ(README時点)
- ✅ Dockerパッケージング(利用可能)
- ⬜ 推論高速化のためのCUDAアクセラレーション
- ⬜ カスタムOllamaエンドポイントサポート
- ⬜ 多言語音声サポート
- ⬜ Whisper設定オプションの公開
- ⬜ システムプロンプトのカスタマイズ
- ⬜ パイプライン全体の最適化
- ⬜ 再利用可能なライブラリとしてSageを公開
まとめ
Sageは、完全にオープンソースのコンポーネントで構築された音声ファーストのAIアシスタントの実用的なエンドツーエンドのデモです。クローズドなAPIに依存せずに音声LLMの対話を試したい愛好家にとって有用であり、音声モデル、LLMバックエンド、TTSを軽量で自己完結型のパッケージに統合する方法を示す明確な例となっています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト