Voice Assistant について
Voice Assistant は、LiveKit、Cartesia、OpenAI、Silero を用いて構築されたシンプルな音声アシスタントで、MCP により WhatsApp と連携します。WhatsApp を音声で操作したい開発者に向いています。
主な機能
- 01LiveKit による音声対話
- 02Cartesia によるテキスト読み上げ
- 03OpenAI による音声認識と LLM 呼び出し
- 04Silero による音声区間検出
- 05mcp_config.json による MCP サーバー設定
活用シーン
- 01音声による WhatsApp メッセージの検索と操作
- 02LiveKit Agents Playground でのローカル音声エージェントの検証
MCP 対応
MCP クライアントとして mcp_config.json を読み込み、ローカルで動作する whatsapp-mcp サーバーに接続します。これにより、音声アシスタントが WhatsApp 関連のツールを呼び出せます。
詳細
ボイスアシスタント
LiveKit、Cartesia、OpenAI、Silero、および WhatsApp 統合用の Multi-Content Processor (MCP) を使用したシンプルなボイスアシスタント。
前提条件
- Python >=3.13
uv(Python パッケージャーおよび仮想環境マネージャー)
セットアップ
-
リポジトリをクローンする:
git clone <your-repo-url> cd voice-assistant -
仮想環境を作成およびアクティベートする (uv を使用):
uv venv source .venv/bin/activate # On Linux/macOS # .\.venv\Scripts\activate # On Windows -
依存関係をインストールする:
uv sync -
環境変数をセットアップする:
プロジェクトのルートに
.envという名前のファイルを作成し、以下の環境変数を実際の値で追加してください。 下の例をコピーできます:LIVEKIT_URL= LIVEKIT_API_KEY= LIVEKIT_API_SECRET= CARTESIA_API_KEY= OPENAI_API_KEY=LIVEKIT_URL: LiveKit サーバーの URL。LIVEKIT_API_KEY: LiveKit API キー。LIVEKIT_API_SECRET: LiveKit API シークレット。CARTESIA_API_KEY: テキスト音声変換用の Cartesia API キー。OPENAI_API_KEY: 音声テキスト変換および LLM 操作用の OpenAI API キー。
-
WhatsApp MCP (Multi-Content Processor) を設定する:
このプロジェクトは MCP を使用して WhatsApp と対話します。WhatsApp MCP サーバーが実行中で設定されている必要があります。
このプロジェクトのルートの
mcp_config.jsonファイルを、MCP セットアップの正しいパスで更新してください:{ "mcpServers": { "whatsapp": { "command": "{{PATH_TO_UV}}", "args": [ "--directory", "{{PATH_TO_SRC}}/whatsapp-mcp/whatsapp-mcp-server", "run", "main.py" ] } } }{{PATH_TO_UV}}をuv実行ファイルの絶対パスに置き換えてください。ターミナルでwhich uv(Linux/macOS) またはwhere uv(Windows) を実行することで見つけられます。{{PATH_TO_SRC}}をwhatsapp-mcpプロジェクトを含むディレクトリの絶対パスに置き換えてください。例えば、whatsapp-mcpプロジェクトが/Users/me/dev/whatsapp-mcpにある場合、この値は/Users/me/devであるべきです。設定ファイルの最終パスは/Users/me/dev/whatsapp-mcp/whatsapp-mcp-serverになります。
アシスタントを実行する
-
(オプション) 必要なモデルファイルをダウンロードする (例: Silero VAD):
voice.pyスクリプトはコマンドを持つか、初回実行時に必要なモデルを自動的にダウンロードする可能性があります。以下の例は、voice.pyがサポートしている場合の仮想的なコマンドを示しています。# voice.py にダウンロードコマンドがある場合、例: # uv run python voice.py download-files現在、
voice.pyスクリプトはlivekit.agents.cli.run_appを使用しており、通常は Silero のようなプラグインのセットアップを独自に処理します。 -
ボイスアシスタントを起動する:
uv run voice-assistant-cliこれは
pyproject.tomlで定義されたvoice-assistant-cliスクリプトを使用します。
Playground に接続する
アシスタントが実行中になると、ブラウザで LiveKit Agents Playground を読み込み、ローカルエージェントに接続できます。
注: このREADME は、uv がシステム PATH にインストールおよび設定されていることを前提としています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。