feat: PipecatVoice native Tactility app — voice gateway companion

Native ELF app (sibling to VoiceRecorder/ReynaBot). Mic/speaker via audio-stream +
I2S (16kHz PCM) + websocket transport (lwip, cJSON). Defaults to Hermes WS
ws://192.168.68.102:8642/api/esp32/voice/ws (voice profile) with Pipecat voice
gateway ws://<mac>:7861 second target. Adapted from ReynaBot PTT + events
(ready/listening/transcript/thinking/response_text/audio_start/audio_end/done).
Cloned ReynaBot websocket.c/h as base.
This commit is contained in:
Adolfo Reyna
2026-08-06 08:44:08 -04:00
parent 9def43b4ed
commit 6e83272c8e
6 changed files with 1163 additions and 0 deletions
+19
View File
@@ -0,0 +1,19 @@
# PipecatVoice — Tactility native voice companion
Native ESP32 ELF app (like VoiceRecorder/ReynaBot), not a web client.
- Uses `audio-stream`/`i2s_controller` APIs (see VoiceRecorder) for 16kHz PCM mic + speaker
- Uses ReynaBot's `websocket.c/h` + `lwip` for WS transport
- Default gateway: Hermes WS `ws://<mac>:8642/api/esp32/voice/ws` (voice profile, limited tools, imperfect STT)
- Optional second target: Pipecat websocket transport `ws://<mac>:7861` (when server exposes `websocket` via `create_transport`)
Build:
```
unset PYTHONPATH; export IDF_PYTHON_ENV_PATH=~/.espressif/python_env/idf5.3_py3.9_env
. ~/esp/esp-idf/export.sh
export TACTILITY_SDK_PATH=~/Projects/electronics/tactility/tactility/Buildscripts/TactilitySDK # or firmware/release/TactilitySDK if built
$IDF_PYTHON_ENV_PATH/bin/python tactility.py Apps/PipecatVoice build esp32s3 --local-sdk
$IDF_PYTHON_ENV_PATH/bin/python tactility.py Apps/PipecatVoice install 192.168.68.112 esp32s3
```
Adapted from ReynaBot (PTT + I2S + WS JSON events: ready/listening/transcript/thinking/response_text/audio_start/audio_end/done/error).