Note
Bonjour, bienvenue dans la communauté des passionnés de Raspberry Pi, Arduino et ESP32 de SunFounder sur Facebook ! Plongez dans l’univers de Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.
Pourquoi nous rejoindre ?
Support d’experts : Résolvez les problèmes après-vente et les défis techniques avec l’aide de notre communauté et de notre équipe.
Apprendre et partager : Échangez des conseils et des tutoriels pour améliorer vos compétences.
Aperçus exclusifs : Accédez en avant-première aux annonces de nouveaux produits et à des aperçus exclusifs.
Réductions spéciales : Profitez de réductions exclusives sur nos nouveaux produits.
Promotions et cadeaux festifs : Participez à des concours et à des promotions festives.
👉 Prêt à explorer et à créer avec nous ? Cliquez sur [here] et rejoignez-nous dès aujourd’hui !
Interaction avec l’IA utilisant GPT-4O
Dans nos projets précédents, nous avons utilisé la programmation pour diriger PiCar-X dans des tâches prédéfinies, ce qui pouvait sembler un peu fastidieux. Ce projet introduit un saut passionnant vers une interaction dynamique. Attention à ne pas essayer de tromper notre voiture, car elle est maintenant équipée pour comprendre bien plus que jamais !
Cette initiative détaille toutes les étapes techniques nécessaires pour intégrer GPT-4O dans votre système, y compris la configuration des environnements virtuels nécessaires, l’installation des bibliothèques essentielles et la mise en place des clés API et des identifiants d’assistant.
Note
Ce projet nécessite l’utilisation de OpenAI Platform, et il est nécessaire de payer pour OpenAI. De plus, l’API OpenAI est facturée séparément de ChatGPT, avec ses propres tarifs disponibles sur https://openai.com/api/pricing/.
Par conséquent, vous devez décider si vous souhaitez continuer avec ce projet ou vous assurer d’avoir financé l’API OpenAI.
Que vous disposiez d’un microphone pour communiquer directement ou que vous préfériez taper dans une fenêtre de commande, les réponses de PiCar-X alimentées par GPT-4O vont sûrement vous étonner !
Plongeons dans ce projet et débloquons un nouveau niveau d’interaction avec PiCar-X !
1. Installation des paquets et des dépendances requises
Note
Vous devez d’abord installer les modules nécessaires pour PiCar-X. Pour plus de détails, veuillez vous référer à : 5. Installer tous les modules (Important).
Dans cette section, nous allons créer et activer un environnement virtuel, en installant les paquets et les dépendances nécessaires à l’intérieur. Cela garantit que les paquets installés n’interfèrent pas avec le reste du système, en maintenant l’isolement des dépendances du projet et en évitant les conflits avec d’autres projets ou paquets système.
Utilisez la commande
python -m venv
pour créer un environnement virtuel nommémy_venv
, y compris les paquets système. L’option--system-site-packages
permet à l’environnement virtuel d’accéder aux paquets installés au niveau système, ce qui est utile lorsque des bibliothèques système sont nécessaires.python -m venv --system-site-packages my_venv
Passez au répertoire
my_venv
et activez l’environnement virtuel en utilisant la commandesource bin/activate
. L’invite de commande changera pour indiquer que l’environnement virtuel est actif.cd my_venv source bin/activate
Maintenant, installez les paquets Python requis dans l’environnement virtuel activé. Ces paquets seront isolés dans l’environnement virtuel et n’affecteront pas les autres paquets système.
pip3 install openai pip3 install openai-whisper pip3 install SpeechRecognition pip3 install -U sox
Enfin, utilisez la commande
apt
pour installer les dépendances au niveau système, qui nécessitent des privilèges administrateur.sudo apt install python3-pyaudio sudo apt install sox
2. Obtenir la clé API et l’ID de l’assistant
Obtenir la clé API
Visitez OpenAI Platform et cliquez sur le bouton Create new secret key dans le coin supérieur droit.
Sélectionnez le Propriétaire, le Nom, le Projet et les autorisations si nécessaire, puis cliquez sur Create secret key.
Une fois générée, enregistrez cette clé secrète dans un endroit sûr et accessible. Pour des raisons de sécurité, vous ne pourrez plus la visualiser via votre compte OpenAI. Si vous perdez cette clé secrète, vous devrez en générer une nouvelle.
Obtenir l’ID de l’assistant
Ensuite, cliquez sur Assistants, puis sur Create, en vous assurant que vous êtes sur la page Dashboard.
Déplacez votre curseur ici pour copier l”ID de l’assistant, puis collez-le dans une boîte de texte ou ailleurs. Il s’agit de l’identifiant unique pour cet assistant.
Attribuez un nom aléatoire, puis copiez le contenu suivant dans la boîte Instructions pour décrire votre assistant.
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"]
PiCar-X est équipé d’un module caméra que vous pouvez activer pour capturer des images de ce qu’il voit et les télécharger sur GPT en utilisant notre code d’exemple. Par conséquent, nous recommandons de choisir GPT-4O, qui possède des capacités d’analyse d’images. Bien sûr, vous pouvez également choisir gpt-3.5-turbo ou d’autres modèles.
Maintenant, cliquez sur Playground pour vérifier si votre compte fonctionne correctement.
Si vos messages ou images téléchargés sont envoyés avec succès et que vous recevez des réponses, cela signifie que votre compte n’a pas atteint la limite d’utilisation.
Si vous rencontrez un message d’erreur après avoir saisi des informations, il se peut que vous ayez atteint votre limite d’utilisation. Veuillez vérifier votre tableau de bord d’utilisation ou vos paramètres de facturation.
3. Remplir la clé API et l’ID de l’assistant
Utilisez la commande pour ouvrir le fichier
keys.py
.nano ~/picar-x/gpt_examples/keys.py
Remplissez la clé API et l’ID de l’assistant que vous venez de copier.
OPENAI_API_KEY = "sk-proj-vEBo7Ahxxxx-xxxxx-xxxx" OPENAI_ASSISTANT_ID = "asst_ulxxxxxxxxx"
Appuyez sur
Ctrl + X
,Y
, puisEnter
pour enregistrer le fichier et quitter.
4. Exécution de l’exemple
Communication par texte
Si votre PiCar-X n’a pas de microphone, vous pouvez utiliser la saisie de texte au clavier pour interagir avec lui en exécutant les commandes suivantes.
Maintenant, exécutez les commandes suivantes en utilisant sudo, car le haut-parleur de PiCar-X ne fonctionnera pas sans cela. Le processus prendra un peu de temps pour se terminer.
cd ~/picar-x/gpt_examples/ sudo ~/my_venv/bin/python3 gpt_car.py --keyboard
Une fois que les commandes ont été exécutées avec succès, vous verrez la sortie suivante, indiquant que tous les composants de PiCar-X sont prêts.
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:
Un lien vous sera également fourni pour visualiser le flux de la caméra de PiCar-X sur votre navigateur web :
http://rpi_ip:9000/mjpg
.Vous pouvez maintenant taper vos commandes dans la fenêtre du terminal, et appuyer sur Entrée pour les envoyer. Les réponses de PiCar-X pourraient vous surprendre.
Note
PiCar-X doit recevoir votre saisie, l’envoyer à GPT pour traitement, recevoir la réponse, puis la lire via la synthèse vocale. Ce processus prend un certain temps, alors soyez patient.
Si vous utilisez le modèle GPT-4O, vous pouvez également poser des questions en fonction de ce que voit PiCar-X.
Communication vocale
Si votre PiCar-X est équipé d’un microphone, ou que vous pouvez en acheter un en cliquant sur Microphone link, vous pouvez interagir avec PiCar-X en utilisant des commandes vocales.
Tout d’abord, vérifiez que le Raspberry Pi a détecté le microphone.
arecord -l
Si c’est réussi, vous recevrez les informations suivantes, indiquant que votre microphone a été détecté.
**** 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
Exécutez la commande suivante, puis parlez à PiCar-X ou émettez des sons. Le microphone enregistrera les sons dans le fichier
op.wav
. Appuyez surCtrl + C
pour arrêter l’enregistrement.rec op.wav
Enfin, utilisez la commande ci-dessous pour lire le son enregistré, confirmant que le microphone fonctionne correctement.
sudo play op.wav
Maintenant, exécutez les commandes suivantes en utilisant sudo, car le haut-parleur de PiCar-X ne fonctionnera pas sans cela. Le processus prendra un peu de temps pour se terminer.
cd ~/picar-x/gpt_examples/ sudo ~/my_venv/bin/python3 gpt_car.py
Une fois que les commandes ont été exécutées avec succès, vous verrez la sortie suivante, indiquant que tous les composants de PiCar-X sont prêts.
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 ...
Un lien vous sera également fourni pour visualiser le flux de la caméra de PiCar-X sur votre navigateur web :
http://rpi_ip:9000/mjpg
.Vous pouvez maintenant parler à PiCar-X, et ses réponses pourraient vous surprendre.
Note
PiCar-X doit recevoir votre saisie, la convertir en texte, l’envoyer à GPT pour traitement, recevoir la réponse, puis la lire via la synthèse vocale. Ce processus prend un certain temps, alors soyez patient.
Si vous utilisez le modèle GPT-4O, vous pouvez également poser des questions en fonction de ce que voit PiCar-X.
5. Modification des paramètres [facultatif]
Dans le fichier gpt_car.py
, localisez les lignes suivantes. Vous pouvez modifier ces paramètres pour configurer la langue STT, le gain du volume TTS et le rôle de la voix.
STT (Speech to Text) fait référence au processus où le microphone de PiCar-X capte la voix et la convertit en texte à envoyer à GPT. Vous pouvez spécifier la langue pour une meilleure précision et une latence réduite dans cette conversion.
TTS (Text to Speech) est le processus de conversion des réponses textuelles de GPT en parole, qui est lue via le haut-parleur de PiCar-X. Vous pouvez ajuster le gain du volume et sélectionner un rôle de voix pour la sortie TTS.
# 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 volume gain, preferably less than 5db
# select tts voice role, could be "alloy, echo, fable, onyx, nova, and shimmer"
# https://platform.openai.com/docs/guides/text-to-speech/supported-languages
TTS_VOICE = 'nova'
Variable
LANGUAGE
:Améliore la précision et le temps de réponse du Speech-to-Text (STT).
LANGUAGE = []
signifie prendre en charge toutes les langues, mais cela peut réduire la précision du STT et augmenter la latence.Il est recommandé de définir une ou plusieurs langues spécifiques en utilisant les codes de langue ISO-639 pour améliorer les performances.
Variable
VOLUME_DB
:Contrôle le gain appliqué à la sortie du Text-to-Speech (TTS).
Augmenter la valeur augmentera le volume, mais il est préférable de garder la valeur en dessous de 5dB pour éviter les distorsions audio.
Variable
TTS_VOICE
:Sélectionnez le rôle de voix pour la sortie du Text-to-Speech (TTS).
Options disponibles :
alloy, echo, fable, onyx, nova, shimmer
.Vous pouvez expérimenter avec différentes voix à partir de Voice options pour trouver celle qui convient le mieux au ton et au public souhaité. Les voix disponibles sont actuellement optimisées pour l’anglais.