Files
pizerovoice/README.md
2026-02-06 13:01:35 +00:00

8.8 KiB

Pi Zero 2W + ReSpeaker - OPTIMIERT FÜR 3 KOMMANDOS

Lightweight Keyword Spotting statt vollständiges Sprachmodell


TEIL 1-3: Basis-Installation (wie vorher)

Die Schritte zur OS-Installation, SSH-Verbindung und ReSpeaker-Treiber bleiben identisch:

  1. Raspberry Pi OS (Bullseye 32-bit) installieren (TEIL 1)
  2. SSH-Verbindung + raspi-config (TEIL 2)
  3. seeed-voicecard Treiber installieren (TEIL 3)

Folge dazu der ursprünglichen Anleitung bis einschließlich TEIL 3.


TEIL 1: HARDWARE-VORBEREITUNG UND OS-INSTALLATION

1.1 Hardware-Anforderungen

Du benötigst folgende Komponenten:

  • Raspberry Pi Zero 2W (nicht Zero oder Zero W!)
  • Seed Studio ReSpeaker Pi Hat v1.2 mit 2 Mikrofonen
  • microSD-Karte: mindestens 16GB (Class 10 empfohlen)
  • USB-Stromversorgung: 2A Netzteil mit Micro-USB
  • SD-Kartenleser zum Flashen auf deinem PC
  • Computer mit Internetverbindung
  • Optional: HDMI-Monitor, USB-Tastatur/Maus zur Direktverbindung

1.2 Raspberry Pi OS Installation

Schritt 1: Raspberry Pi Imager herunterladen

  1. Öffne https://www.raspberrypi.com/software/
  2. Lade Raspberry Pi Imager für dein Betriebssystem herunter
  3. Installiere die Anwendung

Schritt 2: SD-Karte flashen

  1. Stecke die microSD-Karte in deinen Kartenleser und verbinde ihn mit dem PC
  2. Öffne Raspberry Pi Imager
  3. Klicke auf "Gerät auswählen" und wähle "Raspberry Pi Zero 2"
  4. Klicke auf "Betriebssystem auswählen" und wähle:
    • Raspberry Pi OS (Legacy, 32-Bit) - Bullseye
    • Hinweis: v1.2 des ReSpeaker-Hats ist am besten mit Bullseye kompatibel
  5. Klicke auf "Speicher auswählen" und wähle deine microSD-Karte
  6. Klicke auf das Zahnrad-Symbol (Erweiterte Optionen) und konfiguriere:
    • Hostname: respeaker-pi (oder ein beliebiger Name)
    • SSH aktivieren: Ja (mit Passwort)
    • Benutzername: pi
    • Passwort: Ein sicheres Passwort deiner Wahl (aufschreiben!)
    • WLAN konfigurieren:
      • SSID: Dein WiFi-Netzwerk
      • Passwort: Dein WiFi-Passwort
      • Land: DE (Deutschland)
    • Zeitzone: Europe/Berlin
  7. Klicke "Speichern" und dann "Schreiben"
  8. Warte bis zum Abschluss (5-10 Minuten)
  9. Entnehme die SD-Karte

Schritt 3: Erster Start

  1. Stecke die SD-Karte in den Pi Zero 2W ein
  2. Verbinde den ReSpeaker Hat mit dem Pi:
    • Ausrichten der GPIO-Pins (40-polige Reihe)
    • ReSpeaker sollte fest aufgesetzt sein
  3. Verbinde die USB-Stromversorgung
  4. Warte 1-2 Minuten für den ersten Start

Schritt 4: IP-Adresse ermitteln

Methode A (über Router):

  1. Öffne die Verwaltungsoberfläche deines WLAN-Routers
  2. Suche nach verbundenen Geräten
  3. Notiere die IP-Adresse von respeaker-pi

Methode B (mit arp-scan auf Linux/Mac):

sudo arp-scan -l | grep -i "raspberry\|b8:27"

Methode C (mit Advanced IP Scanner auf Windows):

  1. Lade Advanced IP Scanner herunter
  2. Scanne dein Netzwerk
  3. Suche nach respeaker-pi

Beispiel-IP: 192.168.1.100


TEIL 2: RASPBERRY PI KONFIGURATION

2.1 SSH-Verbindung herstellen

Auf Linux/Mac (Terminal):

ssh pi@192.168.1.100
# Gib dein Passwort ein

Auf Windows: Nutze PuTTY

  1. Lade PuTTY herunter
  2. Öffne PuTTY
  3. Host: 192.168.1.100
  4. Port: 22
  5. Klicke "Open"
  6. Login: pi
  7. Passwort: (dein gesetztes Passwort)

2.2 System aktualisieren

sudo apt update
sudo apt upgrade -y
sudo apt install -y git python3-pip python3-dev libatlas-base-dev

Dieser Prozess dauert 10-15 Minuten. Warte ab.

2.3 Audio- und I2C-Konfiguration

sudo raspi-config

Navigiere zu:

  1. SchnittstellenI2CAktivieren
  2. SchnittstellenSPIAktivieren
  3. LokalisierungsoptionenZeitzoneEuropaBerlin
  4. LokalisierungsoptionenSprachede_DE.UTF-8
  5. Bestätige alle Änderungen und Starten Sie neu.

Nach dem Reboot erneut verbinden:

ssh pi@192.168.1.100

TEIL 3: RESPEAKER HAT INSTALLATION

3.1 seeed-voicecard Treiber installieren

Der ReSpeaker benötigt die speziellen Seeed-Treiber. Diese können aus dem Rhasspy-Repo gezogen werden oder als install-respeaker-drivers.sh dieses Verzeichnisses genutzt werden.

cd ~
wget 'https://raw.githubusercontent.com/rhasspy/wyoming-satellite/refs/heads/master/etc/install-respeaker-drivers.sh'
sudo chmod 755 install-respeaker-drivers.sh
sudo ./install-respeaker-drivers.sh
sudo apt-get install libportaudio2
pip3 install sounddevice --break-system-packages

Dies dauert 5-10 Minuten. Wenn es fertig ist:

sudo reboot now

Nach dem Reboot wieder verbinden:

ssh pi@192.168.1.100

3.2 ReSpeaker-Installation verifizieren

Überprüfe, ob die Sound-Karte erkannt wurde:

aplay -l

Du solltest eine ähnliche Ausgabe sehen:

**** PLAYBACK hardware devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
card 1: seeed2miccard [seeed-2mic-voicecard], device 0: ...

Überprüfe auch die Aufnahmegeräte:

arecord -l

Du solltest auch hier seeed-2mic-voicecard sehen.

3.3 Ton-Tests

Lautsprecher testen:

speaker-test -l 1 -c 2 -t sine -f 1000 -r 48000

Du solltest einen Ton hören (drücke Ctrl+C zum Beenden).

Mikrofon testen:

arecord -D hw:1,0 -f S16_LE -c 2 -r 48000 test_recording.wav

Hierbei sind hw:1,0 so zu wählen, dass 1 für die Karte steht - kann auch 3 o.Ä. sein und 0 der Device-Index der Karte.


installieren mit lokalem Modell:

pip3 install vosk --break-system-packages

mkdir ~/vosk-models
cd ~/vosk-models
wget https://alphacephei.com/vosk/models/vosk-model-small-de-0.15.zip
unzip vosk-model-small-de-0.15.zip
mv vosk-model-small-de-0.15 model

aufnehmen mit

arecord -D plughw:1,0 --format S16_LE --rate 16000 --channels 1 --duration 5 test_mono.wav

ausfuehren mit

python3 test_simple.py test_mono.wav

vorbereitungen

mkdir ~/vosk-models

Dort alle *.py-Dateien und die per chmod 755 ausführbar gemachte start_voice.sh aus diesem Repo einfügen. Damit ohne weitere Interaktion gestartet wird, muss außerdem per sudo nano /etc/systemd/system/voicerec.service ein Service angelegt und wie folgt befüllt werden:

[Unit]
Description=starten der services fuer die spracherkennung
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=pi
Restart=always
RestartSec=10
StartLimitBurst=10000
WorkingDirectory=/home/pi
ExecStart=/home/pi/vosk-models/start_voice.sh

[Install]
WantedBy=multi-user.target
EOF

Außerdem wird ein WIFI-Reconnect Service mit Timer eingerichtet, der alle 5min zur Not die WLAN Verbindung neu aufbaut. Der Service führt die ebenfalls in ~/vosk-models/ abgelegte wifi-reconnect.sh aus, die hier ebenfalls im Repository liegt und wiederum zunächst mit chmod 755 wifi-reconnect.sh ausführbar gemacht werden muss. Für den Timer wird sudo nano /etc/systemd/system/wifi-reconnect.timer mit folgendem Inhalt befüllt:

[Unit]
Description=WiFi Reconnect Timer

[Timer]
OnBootSec=1min
OnUnitActiveSec=5min

[Install]
WantedBy=timers.target

Für den zugehörigen, zu startenden Service mittels sudo nano /etc/systemd/system/wifi-reconnect.service:

[Unit]
Description=WiFi Auto-Reconnect Service

[Service]
Type=oneshot
ExecStart=/home/pi/vosk-models/wifi-reconnect.sh

Anschließend muss folgende Befehlskette ausgeführt werden:

sudo systemctl daemon-reload
sudo systemctl enable wifi-reconnect.timer
sudo systemctl start wifi-reconnect.timer
sudo systemctl enable voicerec.service
sudo systemctl start voicerec.service

Prüfen lässt sich der aktuelle Zustand per: sudo systemctl status wifi-reconnect.timer

oder installation mit Speach-To-Text auf Server (dort Docker:)

docker run -d -p 2700:2700 -v /opt/model:/opt/vosk-model-en/model alphacep/kaldi-de:latest

wenn der Server Beispielsweise die IP 192.168.213.45 hat, dann muss diese in der server_microphone.py eingetragen werden.

Je nachdem, ob local_microphone.py oder server_microphone.py genutzt werden soll, muss die start_voice.sh-Datei entsprechend angepasst werden.

tagesschau news abspielen

Zunächst muss per sudo apt install mpg123 der entsprechende Codec für MP3s installiert werden. Danach wird das Verzeichnis ~/tagesschau angelegt, das für die tagesschau-100-sekunden MP3s als Speicherort dient. in diesen ordner kommen entsprechend auch die start_news.sh und end_news.sh-Skripte, die vorher ausführbar gemacht werden müssen. abgespielt werden die nachrichten mit "nachrichten hex hex".

dlf & nova abspiele

anlegen eines verzeichnis ~/radio und dort die start_dlf/nova.sh Skripte ablegen, welche dann mit "nova hex hex" oder "funk hex hex" abgespielt werden. zum beenden wieder "ruhe hex hex"