チップ対応とストレージ仕様
ボードを選ぶ前、または新しいボードを移植する前に、次の 3 点を確認してください。ファームウェアがどのチップに対応しているか、チップごとにどのオーディオ/ウェイクワード経路が使われるか、フラッシュ容量にどのパーティションテーブルが対応するか、です。このページには、ファームウェアのソースとリリースマニフェストで確認できる内容だけを記載しています。チップ自体の電気的パラメータは、Espressif 公式のデータシートを参照してください。
1. 対応チップ
下表の数は v2.5.2 のリリースマニフェスト(ボードディレクトリ 154、ファームウェアバリアント 188)に基づきます。完全な一覧は対応ボード一覧を参照してください。
| チップ | ボードディレクトリ | ファームウェアバリアント | オーディオ入力エンジン | ローカルウェイクワード |
|---|---|---|---|---|
| ESP32-S3 | 114 | 126 | AfeAudioEngine | PSRAM がある場合は既定で Wakenet model with AFE。MultiNet のカスタムウェイクワードも選択可 |
| ESP32-P4 | 6 | 27 | AfeAudioEngine | ESP32-S3 と同じ |
| ESP32-C3 | 10 | 10 | LiteAudioEngine | Wakenet model without AFE を選択可 |
| ESP32-C6 | 10 | 10 | LiteAudioEngine | ESP32-C3 と同じ |
| ESP32 | 6 | 7 | LiteAudioEngine | Wakenet model without AFE の選択には PSRAM が必要 |
| ESP32-S31 | 4 | 4 | AfeAudioEngine | ESP32-S3 と同じ。ESP-IDF 6.1 以上が必要 |
| ESP32-C5 | 4 | 4 | LiteAudioEngine | ESP32-C3 と同じ |
根拠:上流の main/audio/README.md(エンジンと対象チップの対応)と main/Kconfig.projbuild(WAKE_WORD_TYPE の depends on 条件)。
2 つのエンジンの違い:
AfeAudioEngine:FD AFE インスタンスを 1 つ使い、ウェイクワード検出とアップリンクの音声処理で共有します。オーディオ処理を有効にすると、エコーキャンセル(AEC)と VAD が使えます。LiteAudioEngine:生のモノラル PCM をそのまま出力し、AEC と VAD は行いません。ウェイクワード(設定した場合)は独立した WakeNet を使います。
2. PSRAM 要件
- ESP32-S3 / P4 / S31:カスタムウェイクワード(MultiNet)、AFE ウェイクワード、AFE オーディオ処理(
USE_AUDIO_PROCESSOR)はいずれも PSRAM が必要です。 - ESP32:PSRAM がない場合、ウェイクワードは既定で無効です。ボタンまたは外付けモジュールで会話を開始します。ESP32 エコノミー版を参照してください。
- ディスプレイライブラリ LVGL のメモリプールにも、PSRAM あり/なしの 2 つの実装があります(
main/display/lvgl_psram_pool.h、lvgl_no_psram_pool.h)。 - N8R2(フラッシュ 8 MB、PSRAM 2 MB)などの構成で必要な追加設定は、ハードウェア構築ガイドを参照してください。
3. パーティションテーブル(v2)
v2 のパーティションテーブルは、アプリパーティションに加えて assets パーティションを持ちます。ウェイクワードモデル、フォント、絵文字、チャット背景を格納します。詳細はカスタム Assets ガイドを参照してください。
| ファイル | アプリパーティション | assets |
|---|---|---|
4m.csv | factory が 1 つ(0x2F0000)、デュアル OTA なし | 1 MB |
8m.csv | ota_0 / ota_1 が各 0x2F0000 | 2 MB |
16m.csv | ota_0 / ota_1 が各 0x3F0000(約 4 MB) | 8 MB |
16m_c3.csv | ota_0 / ota_1 が各 0x3F0000(約 4 MB) | 4000K(利用可能な mmap ページ数による制限) |
32m.csv | ota_0 / ota_1 が各 4 MB | 16 MB |
partitions/v1/ には旧レイアウトが残っています(モデルは model パーティションに置かれ、assets パーティションはありません)。
4. オーディオパラメータ
- 多くのボードの
config.hはAUDIO_INPUT_SAMPLE_RATE 16000とAUDIO_OUTPUT_SAMPLE_RATE 24000を定義しています。アップリンクでエンコーダに渡されるのは 16 kHz のモノラル PCM です。 - Opus のフレーム長は 60 ms です(
OPUS_FRAME_DURATION_MS)。 - オンボードマイクのチャンネルは、既定で
M(シングルマイク)またはMR(シングルマイク+再生リファレンス)として宣言します。宣言は、コーデックが返すインターリーブ PCM と一致している必要があります。
5. 開発環境
ファームウェアは ESP-IDF v6.0.1 以上を必要とし、release/v6.1 ブランチを推奨します。v2.5.2 のリリースマトリクスは ESP-IDF 6.1.0 でビルドされています。環境構築は ESP-IDF 開発環境のセットアップを参照してください。
関連ドキュメント
- ファームウェアコードガイド:ディレクトリ構成、ステートマシン、ボード抽象化
- カスタムボードガイド:新しいボードの追加
- 対応ボード一覧:すべてのファームウェアバリアント
出典:78/xiaozhi-esp32 v2.5.2 の main/audio/README.md、main/Kconfig.projbuild、partitions/v2/。