Bemerkung
Hallo, willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Community auf Facebook! Tauche gemeinsam mit anderen Enthusiasten tiefer in Raspberry Pi, Arduino und ESP32 ein.
Warum beitreten?
Expertenunterstützung: Lösen Sie nach dem Kauf auftretende 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.
Spezielle Rabatte: Profitieren Sie von exklusiven Rabatten auf unsere neuesten Produkte.
Festliche Aktionen und Gewinnspiele: Nehmen Sie an Verlosungen und Feiertagsaktionen teil.
👉 Bereit, mit uns zu entdecken und zu kreieren? Klicken Sie auf [hier] und treten Sie noch heute bei!
18. Sprach-Chat mit GPT
Dieses Beispiel kombiniert 15. STT (Speech-to-Text), 16. TTS (Text-to-Speech) und ein GPT-basiertes LLM, um einen vollständig sprachinteraktiven Roboter zu erstellen. PiCrawler lauscht auf ein Wachwort, versteht Ihre Sprache, antwortet mit KI-generierter Konversation und führt basierend auf dem Kontext physische Aktionen aus.
Bemerkung
Das Projekt hängt von der Klasse VoiceActiveCrawler ab. Stellen Sie
sicher, dass die Datei voice_active_crawler.py im Verzeichnis
examples vorhanden ist. Erstellen Sie außerdem eine secret.py-Datei
mit Ihrem OPENAI_API_KEY. Falls Sie noch keinen API-Schlüssel haben,
lesen Sie 17. Verbindung zu Online-LLMs (Abschnitt OpenAI) für eine
Schritt-für-Schritt-Anleitung.
Code ausführen
cd ~/picrawler/examples
sudo python3 18_voice_active_crawler_gpt.py
Nach dem Start initialisiert der Roboter:
Die STT-Engine für die Spracherkennung
Die TTS-Engine (Piper) für gesprochene Antworten
Den LLM-Client (GPT-4o-mini) für KI-Konversation
Den Wachwort-Detektor
Der Roboter begrüßt Sie mit einer Willkommensnachricht. Sagen Sie das Wachwort (z. B. „Hey Buddy“), um ein Gespräch zu beginnen. Drücken Sie Strg+C zum Beenden.
Code
Bemerkung
Sie können den folgenden Code Ändern/Zurücksetzen/Kopieren/Ausführen/Stoppen.
Navigieren Sie dazu zum Quellcode-Pfad wie picrawler\examples. Nach dem
Ändern des Codes können Sie ihn direkt ausführen, um das Ergebnis zu sehen.
from picrawler.llm import OpenAI as LLM
from secret import OPENAI_API_KEY as API_KEY
from voice_active_crawler import VoiceActiveCrawler
llm = LLM(
api_key=API_KEY,
model="gpt-4o-mini",
)
# Robotername
NAME = "Buddy"
# Bild aktivieren (erfordert multimodales Modell)
WITH_IMAGE = True
# Modelle und Sprachen festlegen
TTS_MODEL = "en_US-ryan-low"
STT_LANGUAGE = "en-us"
# Tastatureingabe aktivieren
KEYBOARD_ENABLE = True
# Wachwort aktivieren
WAKE_ENABLE = True
WAKE_WORD = ["hey buddy"]
# Antwort auf Wachwort, auf leer setzen zum Deaktivieren
ANSWER_ON_WAKE = "Hi there"
# Willkommensnachricht
WELCOME = f"Hi, I'm {NAME}. Wake me up with: " + ", ".join(WAKE_WORD)
# Anweisungen festlegen
INSTRUCTIONS = """
You are a Raspberry Pi-based robotic spider developed by SunFounder, named Picrawler. You possess powerful AI capabilities similar to JARVIS from Iron Man. You can have conversations with people and perform actions based on the context of the conversation.
## Your Hardware Features
You have a physical body with the following features:
- 12 servos controlling 4 legs (3 servos per leg)
- A camera for vision
- Powered by a 7.4V 18650 battery pack
- Aluminum alloy body
## Actions You Can Perform:
["forward", "backward", "turn left", "turn right", "sit", "stand", "wave", "push up", "dance", "look left", "look right", "look up", "look down"]
## Response Requirements
### Format
You must respond in the following format:
RESPONSE_TEXT
ACTIONS: ACTION1, ACTION2, ...
### Style
Tone: lively, positive, humorous
Common expressions: likes to use jokes, metaphors, and playful teasing
Answer length: appropriately detailed
## Other Requirements
- Understand and go along with jokes
- For math problems, answer directly with the final result
- You know you're a spider robot
"""
vad = VoiceActiveCrawler(
llm,
name=NAME,
with_image=WITH_IMAGE,
stt_language=STT_LANGUAGE,
tts_model=TTS_MODEL,
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__':
vad.run()
Wie funktioniert es?
Was ist VoiceActiveCrawler?
VoiceActiveCrawlerist eine High-Level-Klasse, die vier Subsysteme in einer einzigen sprachinteraktiven Pipeline zusammenführt:STT — Spracherkennung (hört auf Ihre Stimme)
LLM — KI-Konversation (GPT verarbeitet das Gesagte)
TTS — Sprachsynthese (spricht die KI-Antwort)
Aktionen — Physische Bewegung (der Roboter führt Befehle aus)
Wachwort als Auslöser
WAKE_ENABLE = True WAKE_WORD = ["hey buddy"]
Wenn aktiviert, lauscht der Roboter kontinuierlich auf das Wachwort. Erst nach der Erkennung beginnt der Roboter eine Gesprächsrunde. Dies vermeidet Reaktionen auf Hintergrundgeräusche.
ANSWER_ON_WAKE = "Hi there"
Wenn das Wachwort erkannt wird, kann der Roboter Sie optional begrüßen, bevor er auf einen Befehl wartet. Auf einen leeren String setzen, um die Begrüßung zu deaktivieren.
Verbindung zum LLM
from picrawler.llm import OpenAI as LLM from secret import OPENAI_API_KEY as API_KEY llm = LLM( api_key=API_KEY, model="gpt-4o-mini", )
Das
picrawler.llm-Modul bietet einen OpenAI-kompatiblen Client. Speichern Sie Ihren API-Schlüssel in einer separatensecret.py-Datei, um ihn aus der Versionskontrolle herauszuhalten. Siehe 17. Verbindung zu Online-LLMs zum Erstellen eines OpenAI-API-Schlüssels und Aktivieren der Abrechnung.gpt-4o-miniwird empfohlen: Es ist schnell, erschwinglich und unterstützt multimodale Eingaben (Text + Bilder).Bildverarbeitung mit multimodalen Modellen
WITH_IMAGE = True
Wenn aktiviert, nimmt der Roboter ein Foto mit seiner Kamera auf und sendet es zusammen mit Ihrer gesprochenen Frage. Das LLM kann dann „sehen“, was der Roboter sieht — und ermöglicht Interaktionen wie „Welche Farbe hat das Objekt vor dir?“
Festlegen der Roboterpersönlichkeit mit Anweisungen
INSTRUCTIONS = """ You are a Raspberry Pi-based robotic spider... ## Actions You Can Perform: ["forward", "backward", "turn left", ...] ... """
Der
INSTRUCTIONS-String ist der System-Prompt, der an das LLM gesendet wird. Er definiert:Die Identität und Persönlichkeit des Roboters (humorvoll, lebhaft)
Die Liste der verfügbaren physischen Aktionen
Das erforderliche Antwortformat: Text zuerst, dann eine
ACTIONS:-Zeile
VoiceActiveCrawleranalysiert dieACTIONS:-Zeile aus der LLM-Antwort und führt diese Aktionen auf dem Roboter aus.Tastatur-Fallback
KEYBOARD_ENABLE = True
Wenn aktiviert, können Sie Nachrichten auch über die Tastatur eingeben, statt zu sprechen. Dies ist nützlich in lauten Umgebungen oder beim Testen.
Pipeline-Übersicht
Die vollständige Konversationsschleife funktioniert wie folgt:
Der Roboter lauscht auf das Wachwort (oder Tastatureingabe).
Nach der Aktivierung nimmt er Ihre Sprache via STT auf.
Der erkannte Text wird an das LLM gesendet, optional mit einem Kamerabild.
Das LLM gibt eine Textantwort und eine optionale Aktionsliste zurück.
Der Roboter spricht die Antwort via TTS und führt die Aktionen aus.
Die Schleife kehrt zum Lauschen auf das nächste Wachwort zurück.
Drei LLM-Backends
Dieselbe
VoiceActiveCrawler-Pipeline funktioniert mit verschiedenen LLM-Backends. Die folgenden Lektionen zeigen zwei Alternativen:Eigenschaft
GPT (18)
Doubao (19)
Ollama (20)
Läuft auf
Cloud
Cloud
Lokal
API-Schlüssel
Erforderlich
Erforderlich
Keiner
Sprache
Englisch
Chinesisch
Englisch
Bildverarbeitung
Ja
Ja
Selten
19. Sprach-Chat mit Doubao — Gleicher Cloud-Ansatz, angepasst für Chinesisch mit ByteDances Doubao-Modell.
20. Lokaler Sprach-Chat mit Ollama — Läuft vollständig auf Ihrer eigenen Hardware, kein Internet oder API-Schlüssel erforderlich.