Files
tactility_apps/Apps/PipecatVoice/README.md
T
Adolfo Reyna 6e83272c8e 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.
2026-08-06 08:44:08 -04:00

1.1 KiB

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).