Bemerkung

Hallo und herzlich willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Community auf Facebook! Tauchen Sie gemeinsam mit anderen Technikbegeisterten tiefer in die Welt von Raspberry Pi, Arduino und ESP32 ein.

Warum beitreten?

  • Expertenunterstützung: Lösen Sie technische Probleme und Herausforderungen nach dem Kauf mit Unterstützung unserer Community und unseres Teams.

  • Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu erweitern.

  • Exklusive Vorschauen: Erhalten Sie vorab Einblicke in neue Produkte und Ankündigungen.

  • Sonderrabatte: Profitieren Sie von exklusiven Rabatten auf unsere neuesten Produkte.

  • Feiertagsaktionen & Verlosungen: Nehmen Sie an spannenden Verlosungen und saisonalen Aktionen teil.

👉 Bereit, mit uns gemeinsam zu entdecken und zu gestalten? Klicken Sie auf [here] und treten Sie noch heute bei!

7. KI-Sprachassistent

In dieser Lektion verwandeln Sie Ihren Pironman 5 Pro MAX in einen sprachgesteuerten KI-Assistenten. Mit dem bereitgestellten Code wird der Roboter: auf ein Weckwort warten, Ihre Spracheingabe mit Vosk transkribieren, sie an ein OpenAI-LLM senden und mit Piper TTS antworten.


Vorbereitung

Stellen Sie sicher, dass Sie Folgendes haben:

  • 1. Piper testen — Die Piper-Stimme funktioniert (z. B. können Sie „Hallo“ abspielen).

  • Vosk testen — Vosk STT funktioniert für Ihre Sprache (z. B. de).

  • 5. Verbindung zu Online-LLMs herstellen — Ihr OpenAI-API-Schlüssel, gespeichert in secret.py als OPENAI_API_KEY.

  • Ein funktionierendes Mikrofon und Lautsprecher am Pironman 5 Pro MAX.

  • Eine stabile Netzwerkverbindung (das LLM ist online).


Beispiel ausführen

cd ~/sunfounder-voice-assistant/examples/
sudo python3 voice_assistant.py

Vom Code verwendete Konfiguration:

  • LLM: OpenAI (gpt-4o-mini)

  • TTS: Piper (de_DE-thorsten-low)

  • STT: Vosk (de)

  • Weckwort: "hallo buddy"

  • Tastatureingabe: aktiviert (optionale manuelle Eingabe)

  • Bildmodus: aktiviert (WITH_IMAGE=True) — erfordert ein multimodales LLM, falls Sie später Bilder verwenden möchten

Was passiert:

  1. Der Assistent zeigt eine Willkommensnachricht mit dem Wecksatz an.

  2. Er horcht auf „hallo buddy“.

  3. Nach dem Aufwachen wird Ihre Spracheingabe transkribiert (Vosk → Text).

  4. Der Text wird zur Antwortgenerierung an OpenAI (gpt-4o-mini) gesendet.

  5. Die Antwort wird mit Piper (de_DE-thorsten-low) ausgegeben.

Beispielinteraktion

Sie: Hallo Buddy
Roboter: Hallo!

Sie: Was ist die Hauptstadt von Italien?
Roboter: Die Hauptstadt von Italien ist Rom.

Code

from sunfounder_voice_assistant.voice_assistant import VoiceAssistant
from sunfounder_voice_assistant.llm import OpenAI as LLM
from secret import OPENAI_API_KEY as API_KEY

llm = LLM(
    api_key=API_KEY,
    model="gpt-4o-mini",
)

# Name des Roboters
NAME = "Buddy"

# Bildmodus aktivieren, erfordert die Einrichtung eines multimodalen Sprachmodells
WITH_IMAGE = True

# Modelle und Sprachen einstellen
LLM_MODEL = "gpt-4o-mini"
TTS_MODEL = "de_DE-thorsten-low"
STT_LANGUAGE = "de"

# Tastatureingabe aktivieren
KEYBOARD_ENABLE = True

# Weckwort aktivieren
WAKE_ENABLE = True
WAKE_WORD = [f"hallo {NAME.lower()}"]
# Antwort auf Weckwort festlegen, leer lassen um zu deaktivieren
ANSWER_ON_WAKE = "Hallo"

# Willkommensnachricht
WELCOME = f"Hallo, ich bin {NAME}. Wecke mich mit: " + ", ".join(WAKE_WORD)

# Anweisungen festlegen
INSTRUCTIONS = f"""
Du bist ein hilfreicher Assistent namens {NAME}.
"""

va = VoiceAssistant(
    llm,
    name=NAME,
    with_image=WITH_IMAGE,
    tts_model=TTS_MODEL,
    stt_language=STT_LANGUAGE,
    keyboard_enable=KEYBOARD_ENABLE,
    wake_enable=WAKE_ENABLE,
    wake_word=WAKE_WORD,
    answer_on_wake=ANSWER_ON_WAKE,
    welcome=WELCOME,
    instructions=INSTRUCTIONS,
)

if __name__ == "__main__":
    va.run()

Code-Erklärung:

  • OpenAI(..., model="gpt-4o-mini") — Verwendet OpenAI als einziges LLM in dieser Lektion.

  • NAME / WAKE_WORD — Personalisieren Sie den Assistenten („Buddy“, „hallo buddy“).

  • WITH_IMAGE=True — Aktiviert den Bildmodus im Assistenten (enthält hier keine Bild-E/A-Logik).

  • TTS_MODEL="de_DE-thorsten-low" — Piper-Stimme für Antworten.

  • STT_LANGUAGE="de" — Vosk-Sprache für die Erkennung.

  • KEYBOARD_ENABLE=True — Ermöglicht während der Fehlersuche optionale manuelle Texteingabe.

  • WELCOME / INSTRUCTIONS — Startnachricht und System-Prompt für die Assistenten-Persönlichkeit.

  • va.run() — Startet die Schleife: Aufwachen → Zuhören → LLM → Sprechen.

Wechsel zu anderen LLMs oder TTS

Sie können mit nur wenigen Änderungen problemlos zu anderen LLMs, TTS oder STT-Sprachen wechseln:

  • Unterstützte LLMs:

    • OpenAI

    • Doubao

    • Deepseek

    • Gemini

    • Qwen

    • Grok

  • 1. Piper testen — Überprüfen Sie die unterstützten Sprachen von Piper TTS.

  • Vosk testen — Überprüfen Sie die unterstützten Sprachen von Vosk STT.

Zum Wechseln ändern Sie einfach den Initialisierungsteil im Code:

from sunfounder_voice_assistant.llm import Gemini as LLM
llm = LLM(api_key="IHR_SCHLÜSSEL", model="gemini-pro")

# Modelle und Sprachen einstellen
TTS_MODEL = "de_DE-thorsten-low"
STT_LANGUAGE = "de"

Fehlerbehebung

  • Roboter reagiert nicht auf Weckwort

    • Überprüfen Sie, ob das Mikrofon funktioniert.

    • Stellen Sie sicher, dass WAKE_ENABLE = True ist.

    • Passen Sie das Weckwort an Ihre Aussprache an.

    • Reduzieren Sie Hintergrundgeräusche und sprechen Sie deutlich.

  • Kein Ton vom Lautsprecher

    • Überprüfen Sie den Namen des TTS-Modells (z. B. de_DE-thorsten-low).

    • Testen Sie Piper oder Espeak manuell.

    • Überprüfen Sie Lautsprecheranschluss und Lautstärke.

  • API-Schlüssel-Fehler oder Zeitüberschreitung

    • Überprüfen Sie Ihren Schlüssel in secret.py.

    • Stellen Sie sicher, dass Ihre Netzwerkverbindung stabil ist.

    • Bestätigen Sie, dass das LLM-Modell unterstützt wird (z. B. gpt-4o-mini).

  • Weckwort funktioniert, aber keine Antwort

    • Überprüfen Sie, ob die STT-Sprache zu Ihrem Akzent passt.

    • Stellen Sie sicher, dass das Modell korrekt heruntergeladen wurde.

    • Versuchen Sie, Debug-Protokolle auszugeben, um zu bestätigen, dass STT läuft.

  • TTS funktioniert, aber keine LLM-Antwort

    • Überprüfen Sie, ob der API-Schlüssel gültig ist.

    • Überprüfen Sie Modellname und LLM-Einstellungen.

    • Stellen Sie die Internetverbindung sicher.