Nota
Ciao, benvenuto nella community di SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts su Facebook! Approfondisci Raspberry Pi, Arduino ed ESP32 insieme agli altri appassionati.
Perché unirsi?
Supporto esperto: Risolvi i problemi post-vendita e le sfide tecniche con l’aiuto della nostra community e del nostro team.
Impara e condividi: Scambia suggerimenti e tutorial per migliorare le tue competenze.
Anteprime esclusive: Ottieni l’accesso anticipato agli annunci di nuovi prodotti e anteprime esclusive.
Sconti speciali: Goditi sconti riservati sui nostri prodotti più recenti.
Promozioni festive e giveaway: Partecipa ai giveaway e alle promozioni speciali per le festività.
👉 Sei pronto a esplorare e creare con noi? Clicca su [here] e unisciti oggi stesso!
Interazione con l’IA utilizzando GPT-4O
Nei nostri precedenti progetti, abbiamo utilizzato la programmazione per dirigere PiCar-X in compiti predeterminati, che potrebbero sembrare un po” noiosi. Questo progetto introduce un emozionante passo avanti verso un’interazione dinamica. Attenzione a non cercare di ingannare la nostra macchina—ora è dotata di una comprensione molto più avanzata che mai!
Questo progetto descrive tutti i passaggi tecnici necessari per integrare GPT-4O nel tuo sistema, compresa la configurazione degli ambienti virtuali necessari, l’installazione delle librerie essenziali e la configurazione delle chiavi API e degli ID assistenti.
Nota
Questo progetto richiede l’uso di OpenAI Platform e il pagamento per OpenAI. Inoltre, l’API di OpenAI viene fatturata separatamente rispetto a ChatGPT, con il proprio listino prezzi disponibile su https://openai.com/api/pricing/.
Pertanto, è necessario decidere se proseguire con questo progetto o assicurarsi di aver finanziato l’API di OpenAI.
Sia che tu abbia un microfono per comunicare direttamente o preferisca digitare in una finestra di comando, le risposte di PiCar-X alimentate da GPT-4O ti sorprenderanno di sicuro!
Immergiamoci in questo progetto e sblocchiamo un nuovo livello di interazione con PiCar-X!
1. Installazione dei pacchetti e delle dipendenze richiesti
Nota
Prima di tutto, è necessario installare i moduli necessari per PiCar-X. Per i dettagli, fare riferimento a: 5. Installare Tutti i Moduli (Importante).
In questa sezione, creeremo e attiveremo un ambiente virtuale, installando al suo interno i pacchetti e le dipendenze necessari. Questo garantisce che i pacchetti installati non interferiscano con il resto del sistema, mantenendo l’isolamento delle dipendenze del progetto e prevenendo conflitti con altri progetti o pacchetti di sistema.
Usa il comando
python -m venv
per creare un ambiente virtuale chiamatomy_venv
, inclusi i pacchetti a livello di sistema. L’opzione--system-site-packages
consente all’ambiente virtuale di accedere ai pacchetti installati a livello di sistema, utile quando sono necessarie librerie a livello di sistema.python -m venv --system-site-packages my_venv
Passa alla directory
my_venv
e attiva l’ambiente virtuale utilizzando il comandosource bin/activate
. Il prompt dei comandi cambierà per indicare che l’ambiente virtuale è attivo.cd my_venv source bin/activate
Ora, installa i pacchetti Python richiesti nell’ambiente virtuale attivato. Questi pacchetti saranno isolati nell’ambiente virtuale e non influenzeranno altri pacchetti di sistema.
pip3 install openai pip3 install openai-whisper pip3 install SpeechRecognition pip3 install -U sox
Infine, usa il comando
apt
per installare le dipendenze a livello di sistema, che richiedono privilegi di amministratore.sudo apt install python3-pyaudio sudo apt install sox
2. Ottenere la chiave API e l’ID assistente
Ottenere la chiave API
Visita OpenAI Platform e clicca sul pulsante Create new secret key nell’angolo in alto a destra.
Seleziona il proprietario, il nome, il progetto e le autorizzazioni come necessario, quindi clicca su Create secret key.
Una volta generata, salva questa chiave segreta in un luogo sicuro e accessibile. Per motivi di sicurezza, non potrai più visualizzarla tramite il tuo account OpenAI. Se perdi questa chiave segreta, dovrai generarne una nuova.
Ottenere l’ID assistente
Successivamente, clicca su Assistants, quindi su Create, assicurandoti di essere sulla pagina Dashboard.
Muovi il cursore qui per copiare l”ID assistente, quindi incollalo in una casella di testo o altrove. Questo è l’identificatore univoco per questo assistente.
Assegna un nome a caso, quindi copia il seguente contenuto nella casella Instructions per descrivere il tuo assistente.
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 è dotato di un modulo fotocamera che puoi abilitare per catturare immagini di ciò che vede e caricarle su GPT utilizzando il nostro codice di esempio. Pertanto, ti consigliamo di scegliere GPT-4O, che ha capacità di analisi delle immagini. Naturalmente, puoi anche scegliere gpt-3.5-turbo o altri modelli.
Ora, clicca su Playground per vedere se il tuo account funziona correttamente.
Se i tuoi messaggi o le immagini caricate vengono inviati con successo e ricevi risposte, significa che il tuo account non ha raggiunto il limite di utilizzo.
Se ricevi un messaggio di errore dopo aver inserito le informazioni, potresti aver raggiunto il tuo limite di utilizzo. Controlla il dashboard di utilizzo o le impostazioni di fatturazione.
3. Inserire la chiave API e l’ID assistente
Usa il comando per aprire il file
keys.py
.nano ~/picar-x/gpt_examples/keys.py
Inserisci la chiave API e l’ID assistente che hai appena copiato.
OPENAI_API_KEY = "sk-proj-vEBo7Ahxxxx-xxxxx-xxxx" OPENAI_ASSISTANT_ID = "asst_ulxxxxxxxxx"
Premi
Ctrl + X
,Y
e poiEnter
per salvare il file ed uscire.
4. Esecuzione dell’esempio
Comunicazione Testuale
Se il tuo PiCar-X non ha un microfono, puoi usare il testo di input della tastiera per interagire con esso eseguendo i seguenti comandi.
Ora, esegui i seguenti comandi utilizzando sudo, poiché l’altoparlante di PiCar-X non funzionerà senza di esso. Il processo richiederà un po” di tempo.
cd ~/picar-x/gpt_examples/ sudo ~/my_venv/bin/python3 gpt_car.py --keyboard
Una volta che i comandi sono stati eseguiti con successo, vedrai il seguente output, che indica che tutti i componenti di PiCar-X sono pronti.
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:
Ti verrà fornito anche un link per visualizzare il feed della fotocamera di PiCar-X nel tuo browser:
http://rpi_ip:9000/mjpg
.Ora puoi digitare i tuoi comandi nella finestra del terminale e premere Invio per inviarli. Le risposte di PiCar-X potrebbero sorprenderti.
Nota
PiCar-X deve ricevere il tuo input, inviarlo a GPT per l’elaborazione, ricevere la risposta e poi riprodurla tramite sintesi vocale. Questo processo richiede un po” di tempo, quindi sii paziente.
Se stai utilizzando il modello GPT-4O, puoi anche fare domande in base a ciò che PiCar-X vede.
Comunicazione Vocale
Se il tuo PiCar-X è dotato di un microfono, o puoi acquistarne uno cliccando su Microphone link, puoi interagire con PiCar-X utilizzando i comandi vocali.
Innanzitutto, verifica che il Raspberry Pi abbia rilevato il microfono.
arecord -l
Se ha avuto successo, riceverai le seguenti informazioni, che indicano che il tuo microfono è stato rilevato.
**** 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
Esegui il seguente comando, quindi parla a PiCar-X o emetti alcuni suoni. Il microfono registrerà i suoni nel file
op.wav
. PremiCtrl + C
per interrompere la registrazione.rec op.wav
Infine, usa il comando seguente per riprodurre il suono registrato, confermando che il microfono funziona correttamente.
sudo play op.wav
Ora, esegui i seguenti comandi utilizzando sudo, poiché l’altoparlante di PiCar-X non funzionerà senza di esso. Il processo richiederà un po” di tempo.
cd ~/picar-x/gpt_examples/ sudo ~/my_venv/bin/python3 gpt_car.py
Una volta che i comandi sono stati eseguiti con successo, vedrai il seguente output, che indica che tutti i componenti di PiCar-X sono pronti.
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 ...
Ti verrà fornito anche un link per visualizzare il feed della fotocamera di PiCar-X nel tuo browser:
http://rpi_ip:9000/mjpg
.Ora puoi parlare a PiCar-X e le sue risposte potrebbero sorprenderti.
Nota
PiCar-X deve ricevere il tuo input, convertirlo in testo, inviarlo a GPT per l’elaborazione, ricevere la risposta e poi riprodurla tramite sintesi vocale. Questo processo richiede un po” di tempo, quindi sii paziente.
Se stai utilizzando il modello GPT-4O, puoi anche fare domande in base a ciò che PiCar-X vede.
5. Modifica dei parametri [opzionale]
Nel file gpt_car.py
, trova le seguenti righe. Puoi modificare questi parametri per configurare la lingua STT, il guadagno del volume TTS e il ruolo della voce.
STT (Speech to Text) si riferisce al processo in cui il microfono di PiCar-X cattura la voce e la converte in testo da inviare a GPT. Puoi specificare la lingua per una maggiore precisione e riduzione della latenza in questa conversione.
TTS (Text to Speech) è il processo di conversione delle risposte testuali di GPT in parlato, che viene riprodotto attraverso l’altoparlante di PiCar-X. Puoi regolare il guadagno del volume e selezionare un ruolo di voce per l’output 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'
Variabile
LANGUAGE
:Migliora l’accuratezza e i tempi di risposta del Speech-to-Text (STT).
LANGUAGE = []
significa supportare tutte le lingue, ma questo potrebbe ridurre l’accuratezza dello STT e aumentare la latenza.Si consiglia di impostare una o più lingue specifiche utilizzando i codici di lingua ISO-639 per migliorare le prestazioni.
Variabile
VOLUME_DB
:Controlla il guadagno applicato all’output del Text-to-Speech (TTS).
Aumentare il valore aumenterà il volume, ma è meglio mantenere il valore inferiore a 5dB per evitare distorsioni audio.
Variabile
TTS_VOICE
:Seleziona il ruolo della voce per l’output del Text-to-Speech (TTS).
Opzioni disponibili:
alloy, echo, fable, onyx, nova, shimmer
.Puoi sperimentare diverse voci da Voice options per trovare quella che si adatta meglio al tono e al pubblico desiderati. Le voci disponibili sono attualmente ottimizzate per l’inglese.