はじめに
xiaozhi-esp32-serverは、以下の新しいサーバーである。 小市AIチャットボット(xiaozhi-esp32)バックエンド・サービスのためのツールを提供します。Pythonで書かれており、WebSocketプロトコルに基づいているため、ESP32デバイスを制御するサーバーを素早く構築することができる。このプロジェクトは、すでにESP32ハードウェアを購入し、バックエンドを自分で構築したい人に適しています。その機能は、音声対話、多言語認識、スマートホーム制御のサポートなど、非常に実用的です。このプロジェクトはGitHubでオープンソースとして公開されており、最終更新は2025年3月で、詳細な公式ドキュメントと活発なコミュニティがある。まだ開発中であり、本番環境で直接使用することは推奨されていないことに注意してください。
機能一覧
- WebSocket通信xiaozhi-esp32プロトコルを使ってリアルタイムでハードウェアとデータを交換する。
- ボイス・ダイアログウェイクアップ・ダイアログ、手動ダイアログ、リアルタイム割り込みがサポートされており、長時間使用されないと自動的にハイバネートする。
- 意図認識大規模なモデルでユーザーの意図を認識し、関数を呼び出して命令を実行することもできる。
- 多言語サポートFunASRは中国語、広東語、英語、日本語、韓国語に対応しています。
- 言語モデルの切り替えChatGLM: ChatGLMはデフォルトで使用されていますが、Alibaba RefinementやDeepSeekなどもサポートしています。
- 音声合成自然な音声を生成するEdgeTTSとVolcano Engine TTSをサポート。
- メモリーモード超ロング・メモリー、ローカル・サマリー、メモリーなしの3つのオプションがある。
- スマート・ホーム・コントロールHomeAssistantに接続し、家電製品のオン・オフをコントロールできる。
ヘルプの使用
設置プロセス
xiaozhi-esp32-serverを使用するには、ハードウェアと環境を準備する必要があります。以下はその手順です:
1.準備作業
- ソフトウェア: xiaozhi-esp32ファームウェアをサポートするESP32デバイス。公式リスト.
- ラップトップ4コアCPU、8GB RAMを推奨。音声認識APIを使用する場合は、2コア、2GBでも動作します。
- ハードウェアPython 3.10とCondaをインストールします。
2.プロジェクトのダウンロード
- オープンhttps://github.com/xinnan-tech/xiaozhi-esp32-server。
- Code "をクリックし、"Download ZIP "を選択してダウンロードする。
- 解凍してフォルダ名を "xiaozhi-esp32-server "に変更してください。
3.Conda環境の設定
- コマンドラインを開き、実行する:
conda create -n xiaozhi-esp32-サーバー python=3.10 -y
conda は xiaozhi-esp32-serverを起動する。
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda libopus をインストール -y
conda install ffmpeg -y
- 各ステップの出力をチェックし、エラーが報告されていないことを確認する。
4.依存関係のインストール
- プロジェクトフォルダーに移動する:
cd xiaozhi-esp32-server/main/xiaozhi-server。
- 国内ソースを設定し、インストールする:
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
pip install -r requirements.txt
5.モデルのダウンロード
- デフォルトでは、FunASR音声認識が使用されています。公式ガイドライン(README参照)からモデルをダウンロードし、modelsフォルダに入れてください。
- SenseVoiceSmall "フォルダに "model.pt "があるか確認し、なければダウンロードしてください。
6.コンフィギュレーションの変更
- config.yaml "ファイルを開き、設定を調整する:
- 言語モデルデフォルトChatGLM。 ディープシーク またはHomeAssistant。
- 音声合成デフォルトのEdgeTTS、交換可能なVolcano Engine TTS。
- サイレントタイム: put
最小静寂時間
1000にチューニングする(ゆっくり話す場合)。 - ファイルを保存する。
7.サーバーの起動
- xiaozhi-server "フォルダ内で実行:
python main.py
- Server running on port 8000 "と表示されれば成功です。
8.ファームウェアのアップデート
- サーバーのアドレス(例えば
http://你的IP:8000
)がxiaozhi-esp32ファームウェアに書き込まれている。 - プレスファームウェア・コンパイルのガイドライン再コンパイルして焼く。
その他の配備方法
- Dockerラピッド・デプロイメント初心者向き。ランニング
docker pull xinnan-tech/xiaozhi-esp32-server
スタートアップのガイドラインに従ってください。 - Dockerソースの実行コードを変更する人に向いている。まずDockerをインストールし、公式ドキュメントを見ながらプロジェクトを実行する。
- 詳しくはデプロイメント・ドキュメンテーション.
機能操作
ボイス・ダイアログ
- 目覚めるウェイクワード(ファームウェアで設定)を言うと、サーバーが応答します。
- 手動トリガーデバイスボタンを押すと対話が始まります。
- もぎ取る通話中の割り込みはデバイスが即座に処理します。
- 操作方法:デバイスに「ハロー」と言い、返事を聞く。
多言語認識
- 5言語に対応。優先順位は設定ファイルで調整可能。
- 操作:「こんにちは」または「コンニチハ」と言えば、デバイスは理解する。
音声合成
- TTSを設定すると、テキストが音声になる。
- アクション:テストスクリプトで「今日の天気」を入力すると、デバイスがそれを読み上げる。
- トグル:コンフィギュレーション・ファイルでTTSインターフェースを変更する。
スマートホーム
- ホームアシスタントを接続するトークンを埋めてください。
- 操作:「ライトを点けて」と言うとライトが点く。
- テスト:実行
python performance_tester.py
スピードをチェックする。
ほら
- 網目安定性を保つために、WebSocketはリアルタイム接続に依存している。
- 確実性パブリック・ネットワークの展開とオープン・プロテクション (
auth: 有効: true
). - テスト中にコンポーネントを調整するコマンドラインのログを見て、問題を解決してください。
アプリケーションシナリオ
- スマートホーム
- HomeAssistantに接続し、「エアコンを止めて」と言えば、エアコンは止まる。
- 音声アシスタント
- テーブルの上に置いて、「明日の天気は」と聞けば教えてくれる。
- 言語練習
- 英語での会話、このデバイスは発音の練習に役立ちます。
品質保証
- 文字化けした言語の認識についてはどうだろう?
- models/SenseVoiceSmall "に "model.pt "があるか確認してください。なければガイドラインダウンロード
- ファイルが存在しないというTTSエラー?
- 確認済み。
リブパス
歌で応えるffmpeg
.ロードせずに実行する。conda install conda-forge::libopus
歌で応えるconda install conda-forge::ffmpeg
.
- 反応が遅すぎる場合は?
- AliLLM + DoubaoTTSのような高速モデルに切り替える。
python performance_tester.py
測定してみよう。
- 口下手で、自分の言葉を奪われてしまったら?
- config.yaml "に
最小静寂時間
1000に変更。
- 電化製品のコントロールは?
- コンフィギュレーションで、HomeAssistantを選択し、トークンを記入し、コマンドを言う。