Bemerkung
Hallo, willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Community auf Facebook! Tauchen Sie mit anderen Enthusiasten tiefer in Raspberry Pi, Arduino und ESP32 ein.
Warum beitreten?
Expertenunterstützung: Lösen Sie Probleme nach dem Kauf 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 Zugang zu neuen Produktankündigungen und Sneak Peeks.
Sonderrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.
Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.
👉 Bereit, mit uns zu entdecken und zu gestalten? Klicken Sie auf [here] und treten Sie noch heute bei!
7. AI-Sprachassistent
In dieser Lektion verwandeln Sie Ihr Fusion HAT+ in einen sprachgesteuerten AI-Assistenten. Mit dem bereitgestellten Code wird der Roboter: auf ein Aktivierungswort warten, Ihre Sprache mit Vosk transkribieren, sie an ein OpenAI LLM senden und anschließend mit Piper TTS antworten.
Bevor Sie beginnen
Stellen Sie sicher, dass Sie Folgendes vorbereitet haben:
1. Piper testen — Piper-Sprachausgabe funktioniert (z. B. können Sie „Hello“ abspielen).
Programm ausführen — Vosk-STT funktioniert für Ihre Sprache (z. B.
en-us).5. Verbindung mit Online-LLMs — Ihr OpenAI API-Schlüssel ist in
secret.pyalsOPENAI_API_KEYgespeichert.Ein funktionierendes Mikrofon und Lautsprecher am Fusion HAT+.
Eine stabile Netzwerkverbindung (das LLM läuft online).
Beispiel ausführen
cd ~/ai-lab-kit/llm/
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 multimodales LLM, falls Sie später Bilder verwenden möchten
Ablauf:
Der Assistent zeigt eine Begrüßungsnachricht mit dem Aktivierungswort an.
Er lauscht auf „hey buddy“.
Nach der Aktivierung wird Ihre Sprache transkribiert (Vosk → Text).
Der Text wird an OpenAI (gpt-4o-mini) gesendet, um eine Antwort zu generieren.
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 den Assistenten („Buddy“, „hey buddy“).WITH_IMAGE=True— Aktiviert den Bildmodus im Assistenten (hier ohne Bild-Ein-/Ausgabe-Logik).TTS_MODEL="en_US-ryan-low"— Piper-Stimme für die Sprachausgabe.STT_LANGUAGE="en-us"— Vosk-Sprache für die Spracherkennung.KEYBOARD_ENABLE=True— Ermöglicht optionale manuelle Texteingabe während des Debuggings.WELCOME/INSTRUCTIONS— Startmeldung und Assistenten-Persona/System-Prompt.va.run()— Startet die Hauptschleife: Aktivieren → Zuhören → LLM → Sprechen.
Zu anderen LLMs oder TTS wechseln
Sie können problemlos zu anderen LLMs, TTS-Systemen oder STT-Sprachen wechseln, indem Sie nur wenige Änderungen vornehmen:
Unterstützte LLMs:
OpenAI
Doubao
Deepseek
Gemini
Qwen
Grok
1. Piper testen — Unterstützte Sprachen von Piper TTS prüfen.
Programm ausführen — Unterstützte Sprachen von Vosk STT prüfen.
Zum Wechseln passen Sie einfach die Initialisierung im Code an:
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
Roboter reagiert nicht auf das Aktivierungswort
Prüfen Sie, ob das Mikrofon funktioniert.
Stellen Sie sicher, dass
WAKE_ENABLE = Truegesetzt ist.Passen Sie das Aktivierungswort an Ihre Aussprache an.
Reduzieren Sie Hintergrundgeräusche und sprechen Sie deutlich.
Kein Ton aus dem Lautsprecher
Prüfen Sie den Namen des TTS-Modells (z. B.
en_US-ryan-low).Testen Sie Piper oder Espeak manuell.
Überprüfen Sie Lautsprecheranschluss und Lautstärke.
API-Schlüssel-Fehler oder Timeout
Prü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).
Aktivierungswort funktioniert, aber keine Antwort
Prüfen Sie, ob die STT-Sprache zu Ihrem Akzent passt.
Stellen Sie sicher, dass das Modell korrekt heruntergeladen wurde.
Aktivieren Sie Debug-Logs, um zu prüfen, ob STT korrekt läuft.
TTS funktioniert, aber keine LLM-Antwort
Prüfen Sie, ob der API-Schlüssel gültig ist.
Überprüfen Sie Modellname und LLM-Konfiguration.
Stellen Sie sicher, dass eine Internetverbindung besteht.