# EVS - Embedded Voice System ESP32-basierter Voice-Client mit: - `INMP441` als Mikrofon (I2S) - `PAM8403` als Verstärker (PWM-Audio vom ESP32) - WebSocket-Audio-Streaming zur zentralen Bridge - optionaler Home-Assistant/MQTT-Integration ## Ziel Dieses Projekt bildet die Basis für eine lokale "Echo-Alternative": - Audioaufnahme am ESP32 - Verarbeitung zentral (z. B. Home Assistant / Container) - Audioantwort zurück an den ESP32-Lautsprecher ## Projektstruktur - `src/main.cpp`: Firmware (Audio, WiFi, WebSocket, Modi) - `include/secrets.h`: lokale Umgebungswerte (nicht versioniert) - `include/secrets.example.h`: Vorlage für `secrets.h` - `bridge/`: Dockerisierte EVS-Bridge (WebSocket + MQTT + HA-Hooks) ## Firmware-Modi Serielle Kommandos (`115200 Baud`): - `l` = Local Loopback (Mic direkt auf Speaker) - `s` = Stream to Server (Audio zur Bridge) - `i` = Idle - `p` = Netzwerkstatus - `h` = Hilfe ## Setup (ESP32) 1. `include/secrets.example.h` nach `include/secrets.h` kopieren. 2. In `include/secrets.h` setzen: - WiFi-Zugang - `EVS_BRIDGE_HOST` - `EVS_WS_PORT`, `EVS_WS_PATH` - `EVS_DEVICE_ID` 3. Firmware bauen/flashen: ```bash pio run -e esp32dev_core2 -t upload pio device monitor -b 115200 ``` ## Setup (Bridge) 1. In `bridge/` wechseln. 2. `.env.example` nach `.env` kopieren und Werte setzen. 3. Bridge starten: ```bash docker compose up -d --build ``` Standard-WebSocket-Endpunkt: - `ws://:8765/audio` ## Audioformat - PCM16LE - Mono - 16 kHz ## Hinweise - `include/secrets.h` ist absichtlich in `.gitignore`. - Für den Core-3-Test ist in `platformio.ini` eine eigene Environment vorbereitet. - Details zur Bridge findest du in `bridge/README.md`.