AI-ChatboxはESP32S3開発ボードをベースにした音声対話プロジェクトです。ユーザーは音声でラージモデル(LLM)に話しかけ、デバイスは音声をテキストに変換してラージモデルに送信し、回答を得た後にさらに音声放送に変換することができます。このプロジェクトはRust言語で開発され、Vosk音声認識ツールと統合されているため、子供、高齢者、視覚障害者など携帯電話アプリケーションを使用するのが不便な人々に適している。ハードウェアはXIAO ESP32S3 Senseをベースとし、音声コーディングハードウェアと組み合わせ、ソフトウェアはオープンソースコードでGitHubにホストされている。
機能一覧
- ウェイク・トゥ・ボイス&コマンド認識 ハイ、レクシン」というウェイクアップワードと、「質問があります」というコマンドワードをトリガーとした録画に対応。
- 音声テキスト Voskツールを使って、録音したWAV音声をテキストに変換します。
- 大型モデルの相互作用 スルー ディープシーク API テキストで質問を送信し、スマートな回答を得る。
- ロギング デバッグやデバイス状態の監視を容易にするリアルタイムログ表示をサポート。
- クロスデバイスアクセス Flaskを使ってRESTサービスを構築し、LAN上の他の機器から音声読み上げ機能を呼び出せるようにする。
- 組み込み最適化 Rustのコードは組み込み機器向けに最適化されており、生成されるトークンは最大512個で、パフォーマンスとリソースのバランスをとっています。
ヘルプの使用
インストールと設定
- 準備用ハードウェア
マイクと音声エンコーディングを搭載したXIAO ESP32S3 Sense開発ボードが必要です。外部の音声エンコーディングハードウェアを使用すると、音声処理を強化できます。音声モデルを保存するために、開発ボードがSDカードに接続されていることを確認してください。 - 開発環境の設定
- 公式ガイド(Rust on ESP)を参照し、Rust on ESP環境をインストールする。
- Vosk音声テキストサービスを実行するためのPython環境をインストールします。
- ボスク中国語モデルダウンロード
vosk-model-cn-0.22.zip
)をVosk公式ウェブサイトからダウンロードし、ローカルディレクトリに解凍する。 - 音声モデルファイル(
mn7_cn
そしてnsnet2
そしてvadnet1_medium
そしてwn9_hilexin
をSDカードのルート・ディレクトリーにコピーします。
- 依存関係のインストール
以下のコマンドを実行して、Pythonの依存関係をインストールする:pip install vosk flask flask-cors
Rust環境が設定されていることを確認し、ESPUP環境に入ります:
source $HOME/export-esp.sh
- ファームウェアのコンパイルとアップロード
- クローン・プロジェクト・ウェアハウス
git clone https://github.com/paul356/ai-chatbox.git
. - プロジェクト・ディレクトリに移動し、コンパイル・コマンドを実行する:
cargo build
- コンパイルに成功したら、以下のコマンドを使用してファームウェアをESP32S3開発ボードにアップロードします:
cargo espflash flash -p /dev/ttyACM0 --flash-size 8mb
- 環境変数 (Wi-Fi および DeepSeek API キー) を設定します:
export WIFI_SSID=<your-ssid> export WIFI_PASS=<your-password> export LLM_AUTH_TOKEN=<your-deepseek-token>
- クローン・プロジェクト・ウェアハウス
- テキスト読み上げサービスの実行
- ある
vosk-model-cn-0.22
ディレクトリの上位で実行される:python vosk_server.py
- サービス開始後
http://0.0.0.0:5000/transcribe
WAVファイルがあれば、WAVファイルを受け取ってテキストを返すことができる。
- ある
- 試験サービス
音声テキストサービスをテストするには、以下のコマンドを使用します:curl -X POST -F "file=@record.wav" http://127.0.0.1:5000/transcribe
ワークフロー
- プライミング装置
開発ボードを接続し、ファームウェアを実行し、以下のコマンドでログを確認する:cargo espflash monitor
- 音声対話
- ハイ、ロクシン」と目覚ましの言葉をかけてデバイスを起動させる。
- 録音モードに入るには、「質問があります」というコマンドワードを言う。
- 問題を挙げると、デバイスは2秒間の無音状態を検出し、自動的に録音を停止する。
- 音声はVoskサービスを介してテキストに変換され、DeepSeek APIに送信され、回答が取得され、ログに記録されます。
- ログを見る
ログには、デバイスの状態、音声認識結果、LLMの応答が表示される。例えば、「大きなモデルとは何ですか」という質問に対して、詳細なモデル定義と機能説明が返されることがあります。
ほら
- 澄んだ声 Voskのモデルは小さいので、認識精度を上げるためにははっきりと発音する必要があります。
- ネットワーク接続 DeepSeek APIにアクセスするには、Wi-Fi接続が必要です。
- モデル・ストレージ SDカードに音声モデルを保存するのに十分な容量(数百MB程度)があることを確認してください。
- テスト中にコンポーネントを調整する 音声読み上げとLLMのインタラクションが正しく動作していることをログで確認し、エラーメッセージは次のようにログに記録されます。
Error:
始まりだ。
アプリケーションシナリオ
- インテリジェントアシスタント
ユーザーは音声でデバイスと対話し、質問への回答や作業の支援を得ることができるため、子供や高齢者に適している。例えば、子供が "太陽はなぜ輝くのですか?"と尋ねると、デバイスはわかりやすい答えを返してくれる。 - スクリーンレス・デバイス・インタラクション
視覚障がい者や携帯電話を使うのが不便なユーザーは、音声操作で情報照会や日常会話を完結させることができる。 - 組込み開発実験
開発者はこのプロジェクトを基に、組み込み機器でのRustの使用について学び、より大きなモデルとの音声認識の統合を探求することができます。 - 教育と学習
学生は音声で学術的な質問をすることができ、デバイスは大型模型に接続して専門的な回答を提供する。
品質保証
- Voskモデルでサポートされている言語は何ですか?
現在のプロジェクトvosk-model-cn-0.22
Voskの公式サイトでは他の言語モデルも提供しており、必要に応じて入れ替えることができる。 - 音声認識の精度を上げるには?
明瞭な発音を確保し、周囲の雑音を避ける。より高性能のマイクを使用するか、より大型のモデル(例えばvosk-model-cn-0.22-large
)は効果を高めることができる。 - DeepSeek APIキーの取得方法
DeepSeek の Web サイトにアクセスして、API キーを登録および要求し、キーを環境変数として構成します。LLM_AUTH_TOKEN
. - デバイスはオフライン操作に対応していますか?
音声テキスト変換サービス(Vosk)はオフラインで動作しますが、LLMインタラクションではDeepSeek APIへのインターネットアクセスが必要です。