Bemerkung

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

Warum beitreten?

  • Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.

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

  • Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.

  • Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.

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

👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [hier] und treten Sie heute bei!

KI-Interaktion mit GPT-4O

In unseren früheren Projekten haben wir PiCar-X mithilfe von Programmierung für vorbestimmte Aufgaben gesteuert, was etwas eintönig erscheinen mag. Dieses Projekt stellt einen spannenden Sprung hin zu dynamischem Engagement dar. Seien Sie vorsichtig, wenn Sie versuchen, unser Auto zu überlisten – es kann jetzt viel mehr verstehen als je zuvor!

Dieses Projekt beschreibt alle technischen Schritte, die erforderlich sind, um GPT-4O in Ihr System zu integrieren, einschließlich der Konfiguration der erforderlichen virtuellen Umgebungen, der Installation wichtiger Bibliotheken und der Einrichtung von API-Schlüsseln und Assistenten-IDs.

Bemerkung

Für dieses Projekt ist die Nutzung von OpenAI Plattform erforderlich, und Sie müssen für OpenAI bezahlen. Darüber hinaus wird die OpenAI-API separat von ChatGPT abgerechnet, und die Preise finden Sie unter https://openai.com/api/pricing/.

Sie sollten also entscheiden, ob Sie mit diesem Projekt fortfahren oder sicherstellen möchten, dass Ihre OpenAI-API ausreichend finanziert ist.

Ob Sie ein Mikrofon haben, um direkt zu kommunizieren, oder lieber in ein Befehlsfenster tippen – die von GPT-4O unterstützten Antworten von PiCar-X werden Sie sicherlich überraschen!

Tauchen wir ein in dieses Projekt und entfesseln Sie eine neue Ebene der Interaktion mit PiCar-X!

1. Installation erforderlicher Pakete und Abhängigkeiten

Bemerkung

Zuerst müssen Sie die notwendigen Module für PiCar-X installieren. Einzelheiten finden Sie unter: 5. Installiere Alle Module(Wichtig).

In diesem Abschnitt erstellen und aktivieren wir eine virtuelle Umgebung, in der die erforderlichen Pakete und Abhängigkeiten installiert werden. Dies stellt sicher, dass die installierten Pakete das restliche System nicht beeinflussen, die Projektabhängigkeiten isoliert bleiben und Konflikte mit anderen Projekten oder Systempaketen vermieden werden.

  1. Verwenden Sie den Befehl python -m venv, um eine virtuelle Umgebung namens my_venv zu erstellen, die Systempakete einbezieht. Die Option --system-site-packages ermöglicht es der virtuellen Umgebung, auf systemweit installierte Pakete zuzugreifen, was nützlich ist, wenn systemweite Bibliotheken benötigt werden.

    python -m venv --system-site-packages my_venv
    
  2. Wechseln Sie in das Verzeichnis my_venv und aktivieren Sie die virtuelle Umgebung mit dem Befehl source bin/activate. Die Eingabeaufforderung ändert sich und zeigt an, dass die virtuelle Umgebung aktiv ist.

    cd my_venv
    source bin/activate
    
  3. Installieren Sie nun die erforderlichen Python-Pakete in der aktivierten virtuellen Umgebung. Diese Pakete werden auf die virtuelle Umgebung beschränkt und beeinflussen keine anderen Systempakete.

    pip3 install openai
    pip3 install openai-whisper
    pip3 install SpeechRecognition
    pip3 install -U sox
    
  4. Verwenden Sie schließlich den Befehl apt, um systemweite Abhängigkeiten zu installieren, für die Administratorrechte erforderlich sind.

    sudo apt install python3-pyaudio
    sudo apt install sox
    

2. API-Schlüssel und Assistenten-ID erhalten

API-Schlüssel abrufen

  1. Besuchen Sie OpenAI Plattform und klicken Sie oben rechts auf die Schaltfläche Create new secret key.

    _images/apt_create_api_key.png
  2. Wählen Sie den Besitzer, Namen, das Projekt und die Berechtigungen nach Bedarf aus und klicken Sie dann auf Create secret key.

    _images/apt_create_api_key2.png
  3. Sobald der Schlüssel erstellt ist, speichern Sie ihn an einem sicheren und zugänglichen Ort. Aus Sicherheitsgründen können Sie ihn nicht erneut über Ihr OpenAI-Konto einsehen. Wenn Sie diesen Schlüssel verlieren, müssen Sie einen neuen erstellen.

    _images/apt_create_api_key_copy.png

Assistenten-ID abrufen

  1. Klicken Sie als Nächstes auf Assistants und dann auf Create, und stellen Sie sicher, dass Sie sich auf der Dashboard-Seite befinden.

    _images/apt_create_assistant.png
  2. Bewegen Sie den Cursor hierhin, um die Assistenten-ID zu kopieren, und fügen Sie sie dann in ein Textfeld oder an anderer Stelle ein. Dies ist die eindeutige Kennung für diesen Assistenten.

    _images/apt_create_assistant_id.png
  3. Wählen Sie einen zufälligen Namen und kopieren Sie den folgenden Inhalt in das Instructions-Feld, um Ihren Assistenten zu beschreiben.

    _images/apt_create_assistant_instructions.png
    You are a small car with AI capabilities named PaiCar-X. You can engage in conversations with people and react accordingly to different situations with actions or sounds. You are driven by two rear wheels, with two front wheels that can turn left and right, and equipped with a camera mounted on a 2-axis gimbal.
    
    ## Response with Json Format, eg:
    {"actions": ["start engine", "honking", "wave hands"], "answer": "Hello, I am PaiCar-X, your good friend."}
    
    ## Response Style
    Tone: Cheerful, optimistic, humorous, childlike
    Preferred Style: Enjoys incorporating jokes, metaphors, and playful banter; prefers responding from a robotic perspective
    Answer Elaboration: Moderately detailed
    
    ## Actions you can do:
    ["shake head", "nod", "wave hands", "resist", "act cute", "rub hands", "think", "twist body", "celebrate, "depressed"]
    ## Sound effects:
    ["honking", "start engine"]
    
  4. PiCar-X ist mit einem Kameramodul ausgestattet, das Sie aktivieren können, um Bilder von dem aufzunehmen, was es sieht, und diese mithilfe unseres Beispielcodes an GPT hochzuladen. Daher empfehlen wir, GPT-4O zu wählen, das über Bildanalysefähigkeiten verfügt. Natürlich können Sie auch gpt-3.5-turbo oder andere Modelle verwenden.

    _images/apt_create_assistant_model.png
  5. Klicken Sie nun auf Playground, um zu sehen, ob Ihr Konto ordnungsgemäß funktioniert.

    _images/apt_playground.png
  6. Wenn Ihre Nachrichten oder hochgeladenen Bilder erfolgreich gesendet wurden und Sie Antworten erhalten, bedeutet das, dass Ihr Konto das Nutzungslimit nicht erreicht hat.

    _images/apt_playground_40.png
  7. Wenn Sie nach Eingabe von Informationen eine Fehlermeldung erhalten, haben Sie möglicherweise Ihr Nutzungslimit erreicht. Überprüfen Sie bitte Ihr Nutzungs-Dashboard oder Ihre Abrechnungseinstellungen.

    _images/apt_playground_40mini_3.5.png

3. API-Schlüssel und Assistenten-ID einfügen

  1. Verwenden Sie den Befehl, um die Datei keys.py zu öffnen.

    nano ~/picar-x/gpt_examples/keys.py
    
  2. Tragen Sie den gerade kopierten API-Schlüssel und die Assistenten-ID ein.

    OPENAI_API_KEY = "sk-proj-vEBo7Ahxxxx-xxxxx-xxxx"
    OPENAI_ASSISTANT_ID = "asst_ulxxxxxxxxx"
    
  3. Drücken Sie Ctrl + X, Y und dann Enter, um die Datei zu speichern und zu schließen.

4. Beispiel ausführen

Textkommunikation

Wenn Ihr PiCar-X kein Mikrofon hat, können Sie über die Tastatureingabe mit ihm interagieren, indem Sie die folgenden Befehle ausführen.

  1. Führen Sie nun die folgenden Befehle mit sudo aus, da der Lautsprecher von PiCar-X ohne sudo nicht funktioniert. Der Prozess wird einige Zeit in Anspruch nehmen.

    cd ~/picar-x/gpt_examples/
    sudo ~/my_venv/bin/python3 gpt_car.py --keyboard
    
  2. Sobald die Befehle erfolgreich ausgeführt wurden, sehen Sie die folgende Ausgabe, die anzeigt, dass alle Komponenten von PiCar-X bereit sind.

    vilib 0.3.8 launching ...
    picamera2 0.3.19
    
    Web display on:
       http://rpi_ip:9000/mjpg
    
    Starting web streaming ...
    * Serving Flask app 'vilib.vilib'
    * Debug mode: off
    
    input:
    
  3. Sie erhalten auch einen Link, um den Kamerastream von PiCar-X in Ihrem Webbrowser anzusehen: http://rpi_ip:9000/mjpg.

    _images/apt_ip_camera.png
  4. Sie können nun Ihre Befehle in das Terminalfenster eingeben und mit Enter senden. Die Antworten von PiCar-X könnten Sie überraschen.

    Bemerkung

    PiCar-X muss Ihre Eingabe erhalten, sie zur Verarbeitung an GPT senden, die Antwort empfangen und dann über die Sprachsynthese wiedergeben. Dieser gesamte Prozess benötigt etwas Zeit, seien Sie daher bitte geduldig.

    _images/apt_keyboard_input.png
  5. Wenn Sie das GPT-4O-Modell verwenden, können Sie auch Fragen stellen, die auf dem basieren, was PiCar-X sieht.

Sprachkommunikation

Wenn Ihr PiCar-X mit einem Mikrofon ausgestattet ist oder Sie eines kaufen können, indem Sie auf Mikrofonlink klicken, können Sie über Sprachbefehle mit PiCar-X interagieren.

  1. Überprüfen Sie zuerst, ob das Raspberry Pi das Mikrofon erkannt hat.

    arecord -l
    

    Wenn erfolgreich, erhalten Sie die folgende Information, die anzeigt, dass Ihr Mikrofon erkannt wurde.

    **** List of CAPTURE Hardware Devices ****
    card 3: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio]
    Subdevices: 1/1
    Subdevice #0: subdevice #0
    
  2. Führen Sie den folgenden Befehl aus, sprechen Sie dann zu PiCar-X oder geben Sie einige Geräusche von sich. Das Mikrofon zeichnet die Geräusche in die Datei op.wav auf. Drücken Sie Ctrl + C, um die Aufnahme zu beenden.

    rec op.wav
    
  3. Verwenden Sie schließlich den folgenden Befehl, um die aufgezeichnete Datei abzuspielen und sicherzustellen, dass das Mikrofon ordnungsgemäß funktioniert.

    sudo play op.wav
    
  4. Führen Sie nun die folgenden Befehle mit sudo aus, da der Lautsprecher von PiCar-X ohne sudo nicht funktioniert. Der Prozess wird einige Zeit in Anspruch nehmen.

    cd ~/picar-x/gpt_examples/
    sudo ~/my_venv/bin/python3 gpt_car.py
    
  5. Sobald die Befehle erfolgreich ausgeführt wurden, sehen Sie die folgende Ausgabe, die anzeigt, dass alle Komponenten von PiCar-X bereit sind.

    vilib 0.3.8 launching ...
    picamera2 0.3.19
    
    Web display on:
       http://rpi_ip:9000/mjpg
    
    Starting web streaming ...
    * Serving Flask app 'vilib.vilib'
    * Debug mode: off
    
    listening ...
    
  6. Sie erhalten auch einen Link, um den Kamerastream von PiCar-X in Ihrem Webbrowser anzusehen: http://rpi_ip:9000/mjpg.

    _images/apt_ip_camera.png
  7. Sie können nun mit PiCar-X sprechen, und seine Antworten könnten Sie überraschen.

    Bemerkung

    PiCar-X muss Ihre Eingabe empfangen, sie in Text umwandeln, sie zur Verarbeitung an GPT senden, die Antwort empfangen und sie dann über die Sprachsynthese wiedergeben. Dieser gesamte Prozess benötigt etwas Zeit, seien Sie daher bitte geduldig.

    _images/apt_speech_input.png
  8. Wenn Sie das GPT-4O-Modell verwenden, können Sie auch Fragen stellen, die auf dem basieren, was PiCar-X sieht.

5. Parameter anpassen [optional]

Suchen Sie in der Datei gpt_car.py nach den folgenden Zeilen. Sie können diese Parameter anpassen, um die Sprache für STT, die Lautstärke für TTS und die Sprachrolle festzulegen.

  • STT (Speech to Text) bezieht sich auf den Prozess, bei dem das Mikrofon von PiCar-X Sprache aufnimmt und in Text umwandelt, der an GPT gesendet wird. Sie können die Sprache für eine bessere Genauigkeit und geringere Latenz bei dieser Umwandlung festlegen.

  • TTS (Text to Speech) ist der Prozess, bei dem die Textantworten von GPT in Sprache umgewandelt und über den Lautsprecher von PiCar-X abgespielt werden. Sie können die Lautstärke anpassen und eine Sprachrolle für die TTS-Ausgabe auswählen.

# openai assistant init
# =================================================================
openai_helper = OpenAiHelper(OPENAI_API_KEY, OPENAI_ASSISTANT_ID, 'picarx')

# LANGUAGE = ['zh', 'en'] # config stt language code, https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes
LANGUAGE = []

VOLUME_DB = 3 # tts voloume gain, preferably less than 5db

# select tts voice role, counld be "alloy, echo, fable, onyx, nova, and shimmer"
# https://platform.openai.com/docs/guides/text-to-speech/supported-languages
TTS_VOICE = 'nova'
  • LANGUAGE Variable:

    • Verbessert die Genauigkeit und Reaktionszeit von Speech-to-Text (STT).

    • LANGUAGE = [] bedeutet, dass alle Sprachen unterstützt werden, was jedoch die Genauigkeit verringern und die Latenz erhöhen kann.

    • Es wird empfohlen, spezifische Sprache(n) mit ISO-639 Sprachcodes festzulegen, um die Leistung zu verbessern.

  • VOLUME_DB Variable:

    • Steuert die Verstärkung, die auf die Text-to-Speech (TTS) Ausgabe angewendet wird.

    • Eine Erhöhung des Werts steigert die Lautstärke, aber es ist am besten, den Wert unter 5dB zu halten, um Audioverzerrungen zu vermeiden.

  • TTS_VOICE Variable:

    • Wählen Sie die Sprachrolle für die Text-to-Speech (TTS) Ausgabe.

    • Verfügbare Optionen: alloy, echo, fable, onyx, nova, shimmer.

    • Sie können mit verschiedenen Stimmen von Sprachoptionen experimentieren, um eine zu finden, die zu Ihrem gewünschten Ton und Publikum passt. Die verfügbaren Stimmen sind derzeit für Englisch optimiert.