6e83272c8e
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.
20 lines
1.1 KiB
Markdown
20 lines
1.1 KiB
Markdown
# 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).
|