XiaoZhi AI と DeepSeek:デバイスと大規模モデルの役割分担

XiaoZhi AI と DeepSeek:デバイスと大規模モデルの役割分担

2025年1月15日

「XiaoZhi + DeepSeek」と聞くと、大規模モデルが ESP32 上で動いていると思われがちですが、そうではありません。XiaoZhi デバイスは大規模モデルに直接接続しません。デバイスは音声の入口で、モデルはサーバー側で接続します。上流 README のプロジェクトの位置づけは、「XiaoZhi AI チャットボットは音声インタラクションの入口として、Qwen / DeepSeek などの大規模モデルの AI 能力を利用し、MCP プロトコルで多様な端末を制御する」というものです。

この記事では、この役割分担を整理し、コミュニティ製サーバーを例に、サーバー側で DeepSeek を設定する方法を示します。

2026-10-23 に改訂しました。上流に根拠のない性能比較の数値、「ハイブリッドルーティングアルゴリズム」、ロードマップ、応用シナリオの例は削除し、ファームウェアのソースコード、公式ドキュメント、サーバーのリポジトリで確認できる内容だけを残しています。本サイトはどの大規模モデルについてもベンチマークを行っておらず、比較データも提供していません。

1. デバイスとサーバーの役割

段階場所説明
ウェイクワード検出デバイスESP-SR によるオフライン音声ウェイクアップ。カスタムウェイクワードに対応
音声の収音と再生デバイスマイクで収音して Opus ストリームにエンコードして送信し、サーバーから届いた音声をデコードして再生
表示と感情表現デバイスOLED / LCD に文字と表情を表示
音声認識(ASR)サーバー送信された音声をテキストに変換
大規模モデルとの対話(LLM)サーバーDeepSeek などの大規模モデルはこの段階で接続します
音声合成(TTS)サーバー返答テキストを音声に合成
デバイス制御デバイス側 MCP音量、照明、モーター、GPIO などを制御

上流 README によると、ファームウェアは Opus 音声ストリームを採用し、従来のストリーミング ASR + LLM + TTS 方式と、Realtime のエンドツーエンド音声モデルの両方に対応しています。デバイスとサーバー間の通信プロトコルは WebSocket と MQTT + UDP を参照してください。

2. 接続方法は 2 通り

方法モデルの選び方向いている人
公式サーバー(デフォルト)公式コンソールで提供されるもの。個人ユーザーはアカウント登録で Qwen リアルタイムモデルを無料で利用可能すぐに使いたい、サーバーを運用したくない
自前のサーバーサーバーが対応するものなら何でも。DeepSeek も可大規模モデル、音声認識、音声合成を自分で選びたい

ファームウェアには大規模モデルの API キーはありませんし、必要でもありません。キーはサーバーの設定にだけ保存してください。自前サーバーの全体像、セキュリティ上の警告、デバイスを自分のサーバーに向ける方法は自前サーバーを参照してください。

3. サーバーで DeepSeek を設定する(xiaozhi-esp32-server の例)

xinnan-tech/xiaozhi-esp32-server はコミュニティのオープンソースサーバー(MIT ライセンス)です。次の設定は、v0.9.7 タグの main/xiaozhi-server/config.yaml から抜粋したものです。

# Excerpt of main/xiaozhi-server/config.yaml (xiaozhi-esp32-server v0.9.7)
selected_module:
  LLM: DeepSeekLLM

LLM:
  DeepSeekLLM:
    type: openai
    model_name: deepseek-v4-flash
    url: https://api.deepseek.com
    api_key: <your DeepSeek API key>

補足:

  • selected_module.LLM は使用する LLM の設定名を選びます。ここでは下で定義している DeepSeekLLM を指します。
  • type: openai は OpenAI 互換インターフェースで呼び出すことを意味します。このサーバーが現在サポートする LLM の type は openai、dify、ollama です。
  • model_name は DeepSeek のモデル更新に合わせて変わるため、最新情報は DeepSeek Platform で確認してください。
  • サーバーのドキュメントでは、自分の変更を data/.config.yaml に書くことを勧めています。このファイルは config.yaml を上書きするため、アップグレードで失われません。
  • API キーは機密情報です。リポジトリにコミットしたり、公開 issue に貼り付けたりしないでください。

4. 5 ステップで最初の対話まで

  1. ファームウェアを書き込む:ファームウェアのダウンロードページでボードのバリアントを選び、書き込みツールで書き込みます。
  2. ネットワーク設定とアクティベーション:初回起動に従って Wi-Fi を設定します。
  3. サーバーをデプロイ:サーバープロジェクトのドキュメントに従ってデプロイし、OTA URL と WebSocket URL を控えます。
  4. デバイスを自分のサーバーに向ける:設定ページの「詳細設定(Advanced)」タブに OTA URL を入力するか、ビルド時に Default OTA URL を設定します。
  5. 設定と確認:サーバーに DeepSeek のエンドポイントとキーを設定し、ウェイクワードまたはボタンで会話を開始して、サーバーのログにリクエストが届いたことを確認します。

5. DeepSeek を選ぶ前に考えておくこと

以下はベンチマーク結果ではなく、一般的なエンジニアリング上の考慮点です。

  • レイテンシ:1 回の音声対話は認識、モデル、合成を順に通ります。モデルの最初のトークンが返るまでの時間が、待ち時間に直接影響します。ご自身のネットワークとサーバーで実測してください。
  • 費用とレート制限:モデルは呼び出しごとに課金され、レート制限がある場合があります。提供元の料金と利用規約を確認してください。
  • プライバシー:会話のテキストはサードパーティの API に送信されます。プライバシーが重要なら、提供元のデータポリシーを確認し、ローカルで動かせるモデルも検討してください。
  • 差し替えやすさ:サーバーは LLM を設定項目として抽象化しているため、モデルの変更は通常、設定の変更だけで済みます。モデルの詳細をビジネスロジックに埋め込まないでください。
  • セキュリティ:自前サーバーはセキュリティ評価を受けていません。インターネットに公開する場合は十分な防御を行ってください。詳しくは自前サーバーの警告を参照してください。

関連記事

出典

  • 上流 78/xiaozhi-esp32 v2.5.2 の README.md。
  • コミュニティプロジェクト xiaozhi-esp32-server の v0.9.7 タグの main/xiaozhi-server/config.yaml。
  • 確認日:2026-10-23。誤りや補足は [email protected] までご連絡ください。