No description
https://studio-umzu.de
- Python 48.6%
- Shell 20.8%
- JavaScript 17.7%
- HTML 7%
- CSS 5.7%
- Other 0.2%
| diy-ai | ||
| flasher | ||
| hub | ||
| scripts | ||
| setup | ||
| shared/tts-service | ||
| wifi-setup | ||
| .env | ||
| .env.example | ||
| .gitignore | ||
| .python-version | ||
| aiy_compat.py | ||
| main.py | ||
| README.md | ||
| requirements.txt | ||
| setup.sh | ||
| voicebot.service | ||
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
-
Calliope Flasher + Voicebot (
calliope-flasher)- Flash-Weboberfläche für
.hexDateien (iPad/Safari) - Voicebot mit Calliope-Serial-Eingaben und TTS-Ausgabe
- Projekt-README: flasher/README.md
- Flash-Weboberfläche für
-
DIY-AI Werkstatt (
diy-ai)- Prompt-Workshop mit Live-Streaming + Sprache
- Orchestrator + TTS-Service + Ollama
- Projekt-README: diy-ai/README.md
-
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:8080eingegeben werden - Projekt-README: wifi-setup/README.md
Teaching-Material
- Schüler-Material: flasher/examples/schueler/README.md
- Lehrer-Material: flasher/examples/lehrer/README.md
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, aktuellgemma4:12b-mlxOLLAMA_TEMPERATURE=1.0,OLLAMA_TOP_K=64,OLLAMA_TOP_P=0.95– Gemma-4-empfohlene Sampling-WerteOLLAMA_NUM_CTX=32768– praktischer Laufzeit-Kontext; Gemma 4 unterstützt bis zu 256KOLLAMA_KEEP_ALIVE=10m– hält das Modell zwischen Button-Anfragen warmBUTTON_MAX_TOKENS=48– kürzere Generierung für schnelle Button-AntwortenOLLAMA_THINKING=off/OLLAMA_THINK=false– Thinking für kurze Sprachantworten deaktivierenGLOBAL_VOLUME– globale LautstärkeobergrenzeREMOTE_TTS_ENABLED+TTS_BASE_URL+REMOTE_TTS_VOICE– Button-/Joke-Ausgaben verwenden denselben Mac-/synthesize-Dienst wie DIY-AI; Standardstimme istAnna (Premium)TTS_VOICE– lokale Fallback-Stimme (wenn Remote-TTS ausfällt oder deaktiviert ist, z. B.mb-de7auf dem Pi)WORKSHOP_SERVER_TTS_PLAYBACK–false: Audio nur am Client,true: zusätzlich Pi-Lautsprecher (DIY-AI)HUB_VOICEBOT_SLUG– Standard:calliope-flasherHUB_WORKSHOP_SLUG– Standard:diy-aiWIFI_SETUP_AP_SSID+WIFI_SETUP_AP_PASSWORD– temporärer Zugangspunkt für neue NetzwerkeWIFI_SETUP_PORT– Setup-Seite, Standard:8080an 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: