映画「TED」風AIキャラクターと15分間対話できるシステム「ElatoAI」がオープンソースで公開

FabScene(ファブシーン)| テクノロジーの「現場」を記録するメディア

ESP32-S3マイコンボードを使用してリアルタイムAI音声対話を実現するオープンソースプロジェクト「ElatoAI」がGitHubで公開された。開発者のAkash Deb氏が2025年8月20日頃に発表したもので、OpenAI Realtime APIとセキュアWebSocketを組み合わせて、最大15分間以上の連続音声対話を可能にしている点が特徴だ。

ElatoAIは、ESP32-S3デバイス、Denoエッジ関数、Next.jsフロントエンドの3つのコンポーネントで構成されている。ユーザーがESP32-S3デバイスに話しかけると、音声データがセキュアWebSocket経由でDenoエッジサーバーに送信され、OpenAI Realtime APIで処理された後、AI生成音声として再生される仕組みだ。

高品質音声とグローバル対応を実現

システムは12kbpsのOpus音声コーデックを採用し、高音質でありながら低帯域幅での音声通信を実現している。Denoエッジ関数により世界中どこからでも2秒未満のレイテンシーで応答でき、最大17分間の連続対話テストにも成功している。

技術的には、ESP32-S3でPSRAMを必要とせずに動作する設計が特徴的だ。ArduinoJson、WebSockets、ESPAsyncWebServer、arduino-audio-tools、arduino-libopusなどのライブラリを組み合わせて実装されている。音声認識にはサーバー側のVAD(Voice Activity Detection)を使用し、スムーズな会話フローを制御している。

デバイス管理機能も充実しており、Webアプリからのボリューム制御、OTA(Over The Air)ファームウェア更新、WiFi管理用キャプティブポータル、工場出荷時リセット機能を搭載している。ボタンまたはタッチセンサーでデバイス制御が可能で、ピッチファクター調整によりカートゥーン風の音声キャラクターも作成できる。

カスタムAIキャラクター作成に対応

ElatoAIでは、異なる個性と音声を持つカスタムAIエージェントの作成が可能だ。Next.jsで構築されたWebアプリケーションでキャラクター設定を行い、作成したAIキャラクターをESP32デバイスに「送信」して会話できる。会話履歴はSupabaseデータベースに保存され、リアルタイム文字起こしも提供される。

セキュリティ面では、セキュアWebSocket(WSS)による暗号化データ転送、オプションでの256bit AES APIキー暗号化、Supabaseによるセキュア認証、全テーブルでのSupabase RLS(Row Level Security)を実装している。

ハードウェア構成として、開発者は1500mAhのLiPoバッテリー(3.7V)とTP4054充電モジュールを使用したポータブル構成を紹介している。これにより、映画「TED」のキャラクターのような音声で対話できるデバイスを実現している。

現在の制限として、エッジサーバーの制限時間を超過すると停止する問題、ESP32での音声割り込み検出未対応、3秒~4秒のコールドスタート時間などがある。今後の改善として、ESP32での音声割り込み検出機能、Arduino IDE対応、Denoエッジでのツール呼び出し機能の追加が予定されている。

プロジェクトはMITライセンスで公開されており、フォーク、機能追加、プルリクエストによる貢献を歓迎している。開発環境にはPlatformIO、Supabase CLI、Docker Desktopが必要で、ローカル開発とホストされたエッジサーバーの両方に対応している。

関連情報

プロジェクトページ(GitHub)

fabsceneの更新情報はXで配信中です

この記事の感想・意見をSNSで共有しよう
  • URLをコピーしました!