Bemerkung

Hallo, willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community auf Facebook! Tauchen Sie gemeinsam mit anderen Enthusiasten tiefer in Raspberry Pi, Arduino und ESP32 ein.

Warum mitmachen?

  • Experten-Support : Lösen Sie After-Sales-Probleme und technische Herausforderungen mit Hilfe unserer Community und unseres Teams.

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

  • Exklusive Vorschauen : Erhalten Sie frühzeitigen Zugriff auf neue Produktankündigungen und exklusive Einblicke.

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

  • Festliche Aktionen und Gewinnspiele : Nehmen Sie an Gewinnspielen und saisonalen Aktionen teil.

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

7. KI-Sprachassistent

Diese Lektion verwandelt Ihren Fusion HAT+ in einen sprachzentrierten KI-Assistenten. Mit dem bereitgestellten Code wird der Roboter : auf ein Aktivierungswort warten , Ihre Sprache mit Vosk transkribieren , sie an ein OpenAI LLM senden und mit Piper TTS antworten .


Bevor Sie beginnen

Stellen Sie sicher, dass Sie Folgendes haben :

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

  • 2. Vosk testen — Vosk STT funktioniert für Ihre Sprache ( z. B. en-us ).

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

  • Ein funktionierendes Mikrofon und ein Lautsprecher am Fusion HAT.

  • Eine stabile Netzwerkverbindung ( das LLM ist online ).


Beispiel ausführen

cd ~/fusion-hat/examples/
sudo python3 voice_assistant.py

Vom Code verwendete Konfiguration:

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

  • TTS : Piper ( en_US-ryan-low )

  • STT : Vosk ( en-us )

  • Aktivierungswort : "hey buddy"

  • Tastatureingabe : aktiviert ( optionale manuelle Eingabe )

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

Was passiert:

  1. Der Assistent zeigt eine Willkommensnachricht mit der Aktivierungsphrase an.

  2. Er hört auf „hey buddy“ .

  3. Nach der Aktivierung wird Ihre Sprache transkribiert ( Vosk → Text ).

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

  5. Die Antwort wird mit Piper ( en_US-ryan-low ) gesprochen.

Beispielinteraktion

You: Hey Buddy
Robot: Hi there!

You: What’s the capital of Italy?
Robot: The capital of Italy is Rome.

Code

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

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

# Robot name
NAME = "Buddy"

# Enable image, need to set up a multimodal language model
WITH_IMAGE = True

# Set models and languages
LLM_MODEL = "gpt-4o-mini"
TTS_MODEL = "en_US-ryan-low"
STT_LANGUAGE = "en-us"

# Enable keyboard input
KEYBOARD_ENABLE = True

# Enable wake word
WAKE_ENABLE = True
WAKE_WORD = [f"hey {NAME.lower()}"]
# Set wake word answer, set empty to disable
ANSWER_ON_WAKE = "Hi there"

# Welcome message
WELCOME = f"Hi, I'm {NAME}. Wake me up with: " + ", ".join(WAKE_WORD)

# Set instructions
INSTRUCTIONS = f"""
You are a helpful assistant, named {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“, „hey buddy“ ).

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

  • TTS_MODEL="en_US-ryan-low" — Für Antworten wird die Piper-Stimme verwendet.

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

  • KEYBOARD_ENABLE=True — Ermöglicht eine optionale manuelle Texteingabe während des Debuggings.

  • WELCOME / INSTRUCTIONS — Startnachricht und Persona- bzw. System-Prompt des Assistenten.

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

Wechsel zu anderen LLMs oder TTS

Sie können mit nur wenigen Änderungen einfach 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 .

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

Um zu wechseln, ändern Sie einfach den Initialisierungsteil im Code :

from fusion_hat.llm import Gemini as LLM
llm = LLM(api_key="YOUR_KEY", model="gemini-pro")

# Set models and languages
TTS_MODEL = "en_US-ryan-low"
STT_LANGUAGE = "en-us"

Fehlerbehebung

  • Der Roboter reagiert nicht auf das Aktivierungswort

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

    • Stellen Sie sicher, dass WAKE_ENABLE = True gesetzt ist.

    • Passen Sie das Aktivierungswort an Ihre Aussprache an.

    • Reduzieren Sie Hintergrundgeräusche und sprechen Sie deutlich.

  • Kein Ton aus dem Lautsprecher

    • Überprüfen Sie den TTS-Modellnamen ( z. B. en_US-ryan-low ).

    • Testen Sie Piper oder Espeak manuell.

    • Überprüfen Sie die Lautsprecherverbindung und die 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 ).

  • Das Aktivierungswort funktioniert, aber es gibt 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 ausgeführt wird.

  • TTS funktioniert, aber keine LLM-Antwort

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

    • Überprüfen Sie den Modellnamen und die LLM-Einstellungen.

    • Stellen Sie sicher, dass eine Internetverbindung besteht.