# 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://:8642/api/esp32/voice/ws` (voice profile, limited tools, imperfect STT) - Optional second target: Pipecat websocket transport `ws://: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).