Moin, vermutlich bin ich der Zeit wieder total hinterher, denn ich musste mich gerade erst mal von der KI aufgleisen lassen, dass man längst nicht mehr von STT spricht. Aber eines nach dem Anderen. Ich bin begeisterter SmartHome **"Entwickler"** (hauptberuflich objektorientierte Sprachen und etwas eingerostet, was C angeht), verzeiht mir daher, wenn ich gerne auf modulare Fertiglösungen setze. Habe einen HomeServer mit etlichen Docker-Instanzen sowie ein Dutzend ESP8266 mit Tasmota laufen. Und als ich dort nun über die Limitierung von Custom-Codes zu ESPHome sowie einem ESP32 wechseln wollte, überschlugen sich die Neuerungen! Daher hier die Blaupause, die mir die KI nach ca. 30 min Gespräch ausgespuckt hat. Vorab, ich möchte von euch wissen, welche Community-Projekte sich mit diesen Themen bereits beschäftigen und was die beste Hard-/Software-Kombination für das Ganze wäre: --- **1. Anreiz:** https://www.amazon.de/gp/product/B0DRJBVQ3X/ (Den gibt es bei AliExpress auch für die Hälfte) --- **Hardware-Hinweise für viele ESP32-S3 Nodes:** - ESP32-S3 Boards mit I²S-Mikrofon (wie Waveshare 1,46″ Rundboard) - Kompakt + stromsparend → ~200 mW typischer Verbrauch - WLAN stabil → für Echtzeit-Streaming oder MQTT - Optional Mikro-Speaker → TTS Feedback über PCM5101 DAC **Software auf ESP32:** - ESPHome für Pegel/Wake Word - Custom Arduino / ESP-IDF für Audio-Paketierung und MQTT **Server-Seite:** - Docker-Container für ASR (Vosk / Coqui) - Ein zentraler leistungsfähiger Rechner → erkennt Befehle aus allen Räumen - Vorteil: nur ein Server, viele ESP32-S3 Nodes → sehr energieeffizient --- **Kurz gesagt:** ESPHome selbst unterstützt derzeit weder Wake Word Detection noch die direkte Kommunikation mit einem ASR-Server. **Workaround:** - ESP32 Firmware selbst (Arduino/ESP-IDF) liest I²S-Mikrofon aus - Pakete via MQTT / Websocket an Vosk/Coqui-Server - Wake Word lokal → Pakete nur bei Bedarf senden → reduziert Bandbreite - ESPHome kann trotzdem parallel laufen für LED-Steuerung, Taster etc. --- **ESPHome weiterhin zuständig für:** - LED-Steuerung (digital oder PWM) - Touch Taster Sensoren - MQTT Integration für Statusmeldungen **ESP32-Firmware zuständig für:** - Wake Word Detection (lokal) - Audio-Paketierung für ASR-Server --- **Konzept:** Eine einzige Firmware, die sowohl: - ESPHome-Komponenten für LEDs, Taster, Sensoren steuert - Custom-Code (Arduino / ESP-IDF) für Wake Word Detection und Audio-Paketierung enthält **Voraussetzungen:** ESPHome als Custom Component erweitern oder direkt auf ESP-IDF / Arduino Core programmieren. **Herausforderungen:** - Komplexeres Build-System - RAM/Flash des ESP32 muss reichen → Wake Word Modelle + ESPHome (+GPIOs/PWM) - Echtzeit-Streaming muss gut optimiert sein --- Hat/Hatte damit schon Jemand Erfahrungen und Kann mir Tips zum weiteren Vorgehen/Einkauf/Fehlkauf/Dimensionierung geben? LG aus dem Norden
:
Bearbeitet durch User
**Programmierergüsse der KI (Beispielcode, Custom Component, I²S, Wake Word Task, MQTT):**
1 | // =============================== |
2 | // ESPHome Custom Component Skeleton für Audio / Wake Word |
3 | // =============================== |
4 | |
5 | #include "esphome.h" |
6 | |
7 | class AudioTrigger : public Component, public PollingComponent { |
8 | public: |
9 | AudioTrigger() : PollingComponent(10) {} // Polling alle 10ms |
10 | |
11 | void setup() override { |
12 | // Mikrofon / I2S initialisieren |
13 | } |
14 | |
15 | void update() override { |
16 | // Wake Word Detection / Pegel |
17 | if (wakeword_detected()) { |
18 | // MQTT oder ESPHome Event auslösen |
19 | id(my_binary_sensor).publish_state(true); |
20 | } |
21 | } |
22 | }; |
23 | |
24 | // =============================== |
25 | // I2S Initialisierung (ESP-IDF / Arduino) |
26 | // =============================== |
27 | i2s_config_t i2s_config = { |
28 | .mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_RX), |
29 | .sample_rate = 16000, |
30 | .bits_per_sample = I2S_BITS_PER_SAMPLE_16BIT, |
31 | .channel_format = I2S_CHANNEL_FMT_ONLY_LEFT, |
32 | .communication_format = I2S_COMM_FORMAT_I2S_MSB, |
33 | .intr_alloc_flags = ESP_INTR_FLAG_LEVEL1, |
34 | .dma_buf_count = 8, |
35 | .dma_buf_len = 64, |
36 | .use_apll = false |
37 | }; |
38 | i2s_driver_install(I2S_NUM_0, &i2s_config, 0, NULL); |
39 | |
40 | // =============================== |
41 | // FreeRTOS Task für Wake Word Detection |
42 | // =============================== |
43 | xTaskCreatePinnedToCore( |
44 | wakeWordTask, // Task Funktion |
45 | "WakeWordTask", // Name |
46 | 4096, // Stackgröße |
47 | NULL, // Parameter |
48 | 1, // Priorität |
49 | NULL, // Task Handle |
50 | 1 // Core 1 |
51 | ); |
52 | |
53 | // =============================== |
54 | // Audio-Paketierung & MQTT Streaming |
55 | // =============================== |
56 | while(streaming) { |
57 | size_t bytes_read; |
58 | i2s_read(I2S_NUM_0, buffer, buffer_size, &bytes_read, portMAX_DELAY); |
59 | mqtt_publish_audio(buffer, bytes_read); |
60 | } |
PS: Irgendwie funktioniert die Formatierung hier gerade nur in der Vorschau...
D a v i d K. schrieb: > Daher hier die Blaupause, die mir die KI nach ca. 30 min Gespräch > ausgespuckt hat. Lass es doch bitte einfach bleiben. Es hat keinen Sinn, das Forum mit KI-Slop zuzumüllen.
Harald K. schrieb: > Es hat keinen Sinn, das Forum mit KI-Slop zuzumüllen. Es hieß in der Vergangenheit immer: "mehr Kontext, wir haben keine Glaskugel" Nun gebe ich den Minimalauszug meiner Recherge und es ist auch wieder falsch. (Ich hoffe es atet nun nicht wieder in Shitstorm aus, denn diese Art von Vermüllung hatten wir bereits immer) Freue mich auf hilfreiche Info (den Code kann ich gerne versuchen noch zu löschen, auch wenn ich ihn als Ansatz ebenfalls interessant fand)
Du wirst den Shitstorm eher dadurch auslösen, daß Du erst irgendwelche Dinge von der KI "programmieren lässt" und diese dann durch uns gefixt haben willst, weil die KI es eben doch nicht so richtig bringt. Ich finde es durchaus interessant, was eine KI heute für Programme schreiben kann, aber wenn man es richtig gut haben will oder irgendwas nicht so funktioniert wie es soll, dann kommt man eben immer noch nicht drum herum, selbst programmieren zu lernen. Für die ESP32 findet man sehr viele Möglichkeiten und Bibliotheken in der Arduino-Umgebung.
Alexander schrieb: > D a v i d K. schrieb: >> Freue mich auf hilfreiche Info > > Bei was denn? welche Community-Projekte sich mit diesen Themen bereits beschäftigen Ben B. schrieb: > Du wirst den Shitstorm eher dadurch auslösen, daß Du erst irgendwelche > Dinge von der KI "programmieren lässt" und diese dann durch uns gefixt > haben willst... Nein, Copilot und Co liefern immer nur Ansätze. Was mir dort die letzten 6 Monate vorgeschlagen wurde war immer schlechter als mein Code und kam nie zum Eisatz. Ich kenne die Problematik also und würde es nie von Jemand anderen verlangen. > Für die ESP32 findet man sehr viele Möglichkeiten und Bibliotheken in > der Arduino-Umgebung. Das ist ja auch nur eine Chipfamilie. Bibliotheken werde ich sicher selbständig finden. Mir geht es um ganze Projekte oder Frameworks, damit man das Rad nicht neu erfinden muss bzw. sicher auf die Kernprobleme /"das neue" konzentrieren kann. Niemand will die 30. MQTT Lib bauen oder den 101. IP-Stack für die kleinen Biester. Gleiches gilt für Displays und Touches. 95% meiner Anforderung erfüllt ja ESPHome. Einige % kommen jetzt durch die neue Hardware daher, die halt noch nicht includiert sind und ich möchte wissen wer damit bereits Erfahrungen hat. Keine Vorgebeten Endlösungen aus dem Forum hier (ich weiß nicht wieseo dies immer eines der ersten Vorwürfe ist) sondern einfach nur Hilfe zur Selbsthilfe in Form von Quellen, Stichworten oder State of the Art Erfahrungen. LG
D a v i d K. schrieb: > welche Community-Projekte sich mit > diesen Themen bereits beschäftigen Ich verstehe immernoch nicht wonach Du fragst. Suchst Du eine Alternative zu Tasmota? Der Text mit Pfeilen → und mit **Sternchen** triggert. Da er einen großen Teil Deines Posts ausmacht habe ich nicht weitergelesen. Es wäre einfacher wenn Du ein konkretes Anliegen mit eigenen Worten formulieren könntest. Welche Anforderungen sind denn bei Dir dazugekommen, was willst Du realisieren?
>> Für die ESP32 findet man sehr viele Möglichkeiten >> und Bibliotheken in der Arduino-Umgebung. > Das ist ja auch nur eine Chipfamilie. [..] So so. Das solltest Du vielleicht nochmal nachlesen. Ansonsten halt wirklich einfach was eigenes schreiben, so schwer ist MQTT nun auch wieder nicht. Umständlich ist es, obwohl es angeblich genau für kleine Controller bzw. IoT gemacht ist... aber meiner Meinung nach ist das Protokoll mit seiner dummen Längenkodierung vermischt mit den Nutzdaten der letzte Scheiß. Mit Telegrammen, in denen man einfach 2 oder 4 Byte zur Angabe der Länge der Nutzdaten hat, wäre das erheblich einfacher und übersichtlicher gewesen, auch auf kleinen Controllern.
Alexander schrieb: > was willst Du realisieren? Global in meinem IoT: Umstellung von Tasmota auf ESPHome (da ersteres nur sehr eingschränkt eigenen Code Scripte zulässt) Konkret: Einen Mikropfon-Satelliten für jeden Raum. (Der aber auch noch kleinere Sensor und Aktoren-Aufgaben übernimmt, damit ich dafür nicht erneut einen ESP benötige) PS: Mir könnte ja auch einer der Admins hier verraten, warum die Formatierung im Makroviewer der Vorschau noch funktioniert und beim finalen Absenden nicht mehr. Danke.
Die Threads die es hier für ESPHome gibt sehen alle sehr nach Einzelkämpfer aus, da ist nicht viel Input gekommen. Ich bin da auch raus.
Alexander schrieb: > Die Threads die es hier für ESPHome gibt sehen alle sehr nach > Einzelkämpfer aus, da ist nicht viel Input gekommen. Ich bin da auch > raus. Danke, ich hege aber die stille Hoffnung, dass es auch anderen guten Foren gibt und es erlaubt sei Quellen außerhalb von <<hier>> zu posten.
D a v i d K. schrieb: > und es erlaubt sei Quellen außerhalb von <<hier>> zu posten. Ist es ja auch. KI-Slop aber ist keine Quelle.
Harald K. schrieb: > D a v i d K. schrieb: >> und es erlaubt sei Quellen außerhalb von <<hier>> zu posten. > > Ist es ja auch. KI-Slop aber ist keine Quelle. Ahhhhhhhh.....soryy :P Ich brauche doch kein Forum um Selbstgespräche zu führen ;) Wenn ich eine Lösung hätte würde ich doch das Endprodukt präsentieren. Mein Anliegen ist nicht "Slop" als Quelle zu erklären, sondern euch zu bitten mir Quellen zu nennen.
D a v i d K. schrieb: > Mein Anliegen ist nicht "Slop" als Quelle zu erklären, sondern euch zu > bitten mir Quellen zu nennen. Ach. Und was sollte dann Dein Eröffnungsbeitrag hier?
> Ich geb es auf. > @Admin bitte komplett löschen. Das gibst Du auch noch auf.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.