No description https://studio-umzu.de
  • Python 48.6%
  • Shell 20.8%
  • JavaScript 17.7%
  • HTML 7%
  • CSS 5.7%
  • Other 0.2%
Find a file
2026-10-19 21:22:35 +02:00
diy-ai deploy: auto commit 2026-10-16 10:03:24 2026-10-16 10:03:24 +02:00
flasher docs: refresh all READMEs and align button behavior notes 2026-04-01 21:10:18 +02:00
hub fix synchrony 2026-04-02 14:31:29 +02:00
scripts deploy: auto commit 2026-10-19 20:55:38 2026-10-19 20:55:38 +02:00
setup deploy: auto commit 2026-10-19 21:19:38 2026-10-19 21:19:38 +02:00
shared/tts-service deploy: auto commit 2026-10-19 10:19:33 2026-10-19 10:19:33 +02:00
wifi-setup overhauled setup 2026-10-13 22:33:20 +02:00
.env deploy: auto commit 2026-10-19 10:31:03 2026-10-19 10:31:03 +02:00
.env.example deploy: auto commit 2026-10-19 10:19:33 2026-10-19 10:19:33 +02:00
.gitignore deploy: auto commit 2026-10-19 10:19:33 2026-10-19 10:19:33 +02:00
.python-version working machine 2025-12-05 16:07:47 +01:00
aiy_compat.py Add GLOBAL_VOLUME env option, apply in aiy_compat.py and document in README 2025-12-11 10:53:55 +01:00
main.py deploy: auto commit 2026-10-19 21:22:35 2026-10-19 21:22:35 +02:00
README.md working button binder 2026-09-08 19:51:59 +02:00
requirements.txt Unified setup: merged launcher, flasher UI, and shared TTS service 2026-04-01 11:27:10 +02:00
setup.sh Unified setup: merged launcher, flasher UI, and shared TTS service 2026-04-01 11:27:10 +02:00
voicebot.service service: allow binding landing to port 80 2026-04-01 19:06:14 +02:00

Voicebot

Hier ist der Source Code für DIY AI und den Calliope Flasher, beide laufen parallel auf einem Raspberry Pi 4 und nutzen das Google diy Voice kit.

Projekte

  1. Calliope Flasher + Voicebot (calliope-flasher)

    • Flash-Weboberfläche für .hex Dateien (iPad/Safari)
    • Voicebot mit Calliope-Serial-Eingaben und TTS-Ausgabe
    • Projekt-README: flasher/README.md
  2. DIY-AI Werkstatt (diy-ai)

    • Prompt-Workshop mit Live-Streaming + Sprache
    • Orchestrator + TTS-Service + Ollama
    • Projekt-README: diy-ai/README.md
  3. Wi-Fi Setup (wifi-setup)

    • Erkennt eine funktionierende Wi-Fi-Verbindung automatisch
    • Öffnet bei Bedarf den Access Point Voicebot-Setup
    • Wi-Fi-Zugangsdaten können über http://10.42.0.1:8080 eingegeben werden
    • Projekt-README: wifi-setup/README.md

Teaching-Material

Knopf-Verhalten (Voicebot)

  • 1x drücken: kurzer KI-Kommentar
  • 2x drücken: laufende Audioausgabe sofort stoppen
  • 3x drücken: Presence Protocol auslösen

Schnellstart (alles zusammen)

Für den Betrieb auf einem Gerät mit Landing-Page und Slug-Routing:

./setup.sh --all
python3 hub/run_merged.py

Dann öffnen:

  • Landing: http://voicepi-2.local/
  • Calliope Flasher: http://voicepi-2.local/calliope-flasher/
  • DIY-AI Werkstatt: http://voicepi-2.local/diy-ai/

Wichtige URLs lokal

Bei lokalem Start auf einem Rechner ohne Reverse-Proxy:

  • Flasher direkt: http://localhost:1024
  • DIY-AI direkt: http://localhost:8000
  • TTS Health: http://localhost:8088/health

Konfiguration (Kurzüberblick)

Die zentrale Konfiguration liegt in .env im Repo-Root.

Wichtige Variablen:

  • OLLAMA_SERVER – Ollama Endpoint (z. B. Mac im LAN)
  • OLLAMA_MODEL – Modellname, aktuell gemma4:12b-mlx
  • OLLAMA_TEMPERATURE=1.0, OLLAMA_TOP_K=64, OLLAMA_TOP_P=0.95 – Gemma-4-empfohlene Sampling-Werte
  • OLLAMA_NUM_CTX=32768 – praktischer Laufzeit-Kontext; Gemma 4 unterstützt bis zu 256K
  • OLLAMA_KEEP_ALIVE=10m – hält das Modell zwischen Button-Anfragen warm
  • BUTTON_MAX_TOKENS=48 – kürzere Generierung für schnelle Button-Antworten
  • OLLAMA_THINKING=off / OLLAMA_THINK=false – Thinking für kurze Sprachantworten deaktivieren
  • GLOBAL_VOLUME – globale Lautstärkeobergrenze
  • REMOTE_TTS_ENABLED + TTS_BASE_URL + REMOTE_TTS_VOICE – Button-/Joke-Ausgaben verwenden denselben Mac-/synthesize-Dienst wie DIY-AI; Standardstimme ist Anna (Premium)
  • TTS_VOICE – lokale Fallback-Stimme (wenn Remote-TTS ausfällt oder deaktiviert ist, z. B. mb-de7 auf dem Pi)
  • WORKSHOP_SERVER_TTS_PLAYBACK – false: Audio nur am Client, true: zusätzlich Pi-Lautsprecher (DIY-AI)
  • HUB_VOICEBOT_SLUG – Standard: calliope-flasher
  • HUB_WORKSHOP_SLUG – Standard: diy-ai
  • WIFI_SETUP_AP_SSID + WIFI_SETUP_AP_PASSWORD – temporärer Zugangspunkt für neue Netzwerke
  • WIFI_SETUP_PORT – Setup-Seite, Standard: 8080
  • an Button binden – nicht gespeicherte DIY-AI-Option: physische Buttondrücke nutzen den aktiven Workshop-Prompt statt der Witzliste

Startpunkt für Defaults: .env.example

Betrieb als Service (Pi)

sudo systemctl restart voicebot
sudo systemctl status voicebot

Service-Definition: voicebot.service

Repository-Struktur

voicebot/
├── README.md
├── main.py
├── flasher/                 # Calliope-Flasher + Voicebot-nahe Weboberfläche
├── diy-ai/                  # DIY-AI Workshop
├── hub/                     # Merged runner + Landing/Proxy
├── wifi-setup/              # Wi-Fi detection and first-connection AP
├── shared/tts-service/      # Gemeinsamer TTS-Service
├── setup/                   # Setup-Logik und Guides
├── examples/
│   ├── schueler/
│   └── lehrer/
├── requirements.txt
└── voicebot.service

Nächster Schritt

Für projekt-spezifische Details direkt in die jeweiligen READMEs gehen: