Files
ESP32_ZACUS/box3_voice/main/Kconfig.projbuild
T
clement 43dc1478b1
CI / platformio (pull_request) Failing after 3m44s
CI / platformio (push) Failing after 3m34s
box3: fix gamebook audio, accents, and crashes
The BOX-3 touch gamebook had several blocking bugs that made the
voiced+foley story packs unusable. This fixes them end to end.

- Stack overflow on story start: gb_play_task kept a 2 KB buffer on
  its 4 KB stack and rebooted the board. Buffers are now static (the
  task is a singleton) and the stack is 6 KB.
- No sound at all: the ES8311 codec was never initialised — main.c
  wrote raw I2S to a muted DAC. Output (and the mic) now go through
  the BSP esp_codec_dev (bsp_audio_codec_speaker/microphone_init,
  esp_codec_dev_write/read). The power amplifier (GPIO46) is also
  forced on and volume set to 100, as the es8311 pa_pin handling did
  not drive it in practice.
- First passage silent: gb_play re-mounted the SD that the gamebook
  had already mounted; the failed second bsp_sdcard_mount tore down
  the VFS so the first fopen failed. Now we open the file first and
  only mount if that fails. A short silence lead-in also primes the
  codec/PA ramp.
- No accents: the gamebook used ASCII-only lv_font_montserrat_14/24.
  Added custom Montserrat fonts (font_fr_14/24, Latin-1 + œŒŸ « » ’ …,
  uncompressed so they render without LV_USE_FONT_COMPRESSED).
- Mic/voice streaming gated behind CONFIG_BOX3_VOICE_STREAMING
  (default off): as a gamebook the BOX-3 needs no mic, and the
  constant codec reads + bridge reconnects interfered with playback
  and flooded the log.

plip_virtual + cmd_exec handle types switched from i2s_chan_handle_t
to esp_codec_dev_handle_t accordingly.
2026-06-21 11:07:34 +02:00

85 lines
2.8 KiB
Plaintext

menu "Zacus BOX-3 Voice Configuration"
config BOX3_VOICE_STREAMING
bool "Enable microphone + voice-bridge streaming"
default n
help
Start the mic capture task and the WebSocket voice-bridge client.
Off by default: as a touch gamebook the BOX-3 needs no microphone,
and the continuous codec reads + bridge reconnect attempts interfere
with speaker playback (the first narration clip came out silent) and
flood the log. Enable only when using the BOX-3 as a voice device.
config ZACUS_WIFI_SSID
string "WiFi SSID"
default "zacus-net"
help
WiFi network name for connecting to the voice bridge.
config ZACUS_WIFI_PASSWORD
string "WiFi Password"
default ""
help
WiFi password. Leave empty for open networks.
config ZACUS_WIFI_CHANNEL
int "WiFi channel hint (0 = auto)"
default 0
range 0 13
help
Bias the STA scan to start on this channel (1-13). Set this to the
master's WiFi channel so ESP-NOW peers land co-channel — required
for the scenario relay on multi-AP / mesh networks where the same
SSID is broadcast on several channels. 0 = auto (scan all).
config ZACUS_VOICE_BRIDGE_URL
string "Voice Bridge WebSocket URL"
default "ws://192.168.0.119:8200/voice/ws"
help
WebSocket endpoint for the mascarade voice bridge.
The bridge routes voice commands to the hints engine.
config ZACUS_MASTER_URL
string "Zacus Master Base URL"
default "http://10.2.5.42"
help
Base URL of the Zacus master ESP32. The virtual PLIP annex
reports hook transitions to <url>/voice/hook. Prefer a plain
IP (mDNS .local names need the mdns component).
config ZACUS_VOICE_TOKEN
string "Voice Bridge Auth Token"
default ""
help
Authentication token for the voice bridge.
If set, appended as ?token=<value> query parameter.
config ZACUS_WAKE_WORD
string "Wake Word"
default "hi esp"
help
Wake word for ESP-SR WakeNet activation.
Supported: "hi esp", "alexa", "hey siri" (WakeNet9).
config ZACUS_SPEAKER_VOLUME
int "Default Speaker Volume (0-100)"
default 70
range 0 100
help
Default speaker volume at boot.
config ZACUS_MIC_GAIN
int "Microphone Gain (0-100)"
default 80
range 0 100
help
Microphone input gain for speech recognition.
config ZACUS_ENABLE_DISPLAY
bool "Enable LCD Display"
default y
help
Enable the ILI9341 display for status feedback.
endmenu