Ein sarkastischer Sprachassistent, der komplett lokal auf dem Raspberry Pi läuft und einen KY-038 Soundsensor für die Spracherkennung verwendet.
- Funktionen
- Hardware-Anforderungen
- Projektstruktur
- Installation
- Konfiguration
- Nutzung
- Fehlerbehebung
- Entwicklung und Anpassung
- Vollständig lokale Sprachverarbeitung ohne Internetverbindung
- Sarkastische Antworterzeugung mittels lokalem LLM (Phi-2)
- Spracherkennung über KY-038 Soundsensor
- Automatischer Start beim Systemboot
- Einfache Konfiguration und Anpassung
- Raspberry Pi 4 (mindestens 4GB RAM empfohlen)
- KY-038 Soundsensor
- Lautsprecher (3.5mm oder USB)
- SD-Karte (mindestens 32GB empfohlen)
- Optional: Gehäuse für Raspberry Pi
KY-038 Pin | Raspberry Pi Pin
-----------|----------------
VCC | 3.3V (Pin 1)
GND | Ground (Pin 6)
DO | GPIO17 (Pin 11)
AO | GPIO27 (Pin 13)
LLM4RPI/
├── install.sh # Hauptinstallationsskript
├── setup_llama.sh # Skript für LLM-Setup
├── start_llm4rpi.sh # Startskript
├── README.md # Diese Datei
├── config.json # LLM-Konfiguration
├── models/
│ └── phi-2-q4_k_m.gguf # Quantisiertes LLM-Modell
├── src/
│ └── llm4rpi.py # Hauptprogramm
├── bin/
│ └── ... # Kompilierte Binaries
├── llama.cpp/ # LLM Backend
└── venv/ # Python virtuelle Umgebung
- Frische Installation von Raspberry Pi OS (64-bit)
- Internetverbindung für die Installation
- Mindestens 10GB freier Speicherplatz
- Repository klonen:
git clone https://github.com/yourusername/LLM4RPI.git
cd LLM4RPI
- Installationsskript ausführbar machen und ausführen:
chmod +x install.sh
sudo ./install.sh
- System neustarten:
sudo reboot
{
"model_path": "/path/to/models/phi-2-q4_k_m.gguf",
"n_ctx": 2048,
"n_threads": 4,
"n_gpu_layers": 0
}
Der Service wird automatisch eingerichtet und startet beim Systemboot. Manuelle Steuerung:
sudo systemctl start llm4rpi # Starten
sudo systemctl stop llm4rpi # Stoppen
sudo systemctl restart llm4rpi # Neustarten
sudo systemctl status llm4rpi # Status anzeigen
-
Hardware anschließen
- KY-038 Sensor gemäß Verkabelungsplan anschließen
- Lautsprecher anschließen
- Raspberry Pi starten
-
Spracherkennung
- Der Sensor erkennt automatisch, wenn gesprochen wird
- Eine kurze Aufnahme wird gemacht
- Die Antwort wird über die Lautsprecher ausgegeben
-
Log-Dateien einsehen
sudo journalctl -u llm4rpi -f
- GPIO-Fehler
# GPIO-Berechtigungen überprüfen
ls -l /dev/gpiomem
# Benutzer zur gpio Gruppe hinzufügen
sudo usermod -a -G gpio $USER
- Audio-Probleme
# Audio-Ausgabegerät testen
speaker-test -t wav
# Standard-Ausgabegerät setzen
raspi-config
- LLM-Fehler
# Modell neu konvertieren
./setup_llama.sh
Die Prompts für die Antworterzeugung können in src/llm4rpi.py
angepasst werden:
prompts = {
'leise': """Du bist ein sarkastischer Assistent...""",
'laut': """Du bist ein sarkastischer Assistent...""",
'normal': """Du bist ein sarkastischer Assistent..."""
}
In config.json können verschiedene Parameter angepasst werden:
n_ctx
: Kontextgrößen_threads
: CPU-Threadstemperature
: Kreativität der Antworten
- GPIO-Pins können in
src/llm4rpi.py
angepasst werden - Verschiedene Audio-Aufnahmeparameter können justiert werden