Last chance! 50% off DataCamp Premium
Sale ends in

Whisper è un modello di riconoscimento vocale automatico generalista, addestrato su un ampio dataset audio. Il modello può eseguire trascrizioni multilingue, traduzione del parlato e rilevamento della lingua.
Whisper può essere usato come assistente vocale, chatbot, traduzione del parlato in inglese, automazione per prendere appunti durante le riunioni e trascrizione.
La trascrizione è il processo di conversione del linguaggio parlato in testo. In passato veniva fatta manualmente, oggi abbiamo strumenti basati sull’IA come Whisper che comprendono il parlato con grande precisione.
Se hai conoscenze di base del linguaggio Python, puoi integrare l’API OpenAI Whisper nella tua applicazione. La Whisper API fa parte di openai/openai-python, che ti consente di accedere a vari servizi e modelli OpenAI.
Scopri di più su come creare applicazioni di IA con LangChain nel nostro Building Multimodal AI Applications with LangChain & the OpenAI API AI Code Along, dove scoprirai come trascrivere contenuti di video YouTube con l’IA speech-to-text Whisper e poi usare GPT per fare domande sul contenuto.
Le lingue supportate per trascrizioni e traduzioni dalla Whisper API di OpenAI sono:
Afrikaans, Arabo, Armeno, Azerbaigiano, Bielorusso, Bosniaco, Bulgaro, Catalano, Cinese, Croato, Ceco, Danese, Olandese, Inglese, Estone, Finlandese, Francese, Galiziano, Tedesco, Greco, Ebraico, Hindi, Ungherese, Islandese, Indonesiano, Italiano, Giapponese, Kannada, Kazako, Coreano, Lettone, Lituano, Macedone, Malese, Marathi, Maori, Nepalese, Norvegese, Persiano, Polacco, Portoghese, Rumeno, Russo, Serbo, Slovacco, Sloveno, Spagnolo, Swahili, Svedese, Tagalog, Tamil, Thai, Turco, Ucraino, Urdu, Vietnamita e Gallese.
La ripartizione della Word Error Rate (WER) per il dataset di Fleur usando il modello large-v2 è mostrata nella figura qui sotto, per lingua. Minore è la WER, migliore è l’accuratezza della trascrizione.

I formati di file supportati dalla Whisper API sono mp3, mp4, mpeg, mpga, m4a, wav e webm. Attualmente, la dimensione del file da caricare è limitata a 25 MB. Se hai file più grandi, puoi suddividerli in parti più piccole usando pydub.
In questa sezione useremo l’API di OpenAI per trascrizione e traduzione. Inoltre, vedremo anche vari tipi di formati di output.
Puoi installare la Python API di OpenAI usando pip.
pip install openai
Dopodiché, dobbiamo generare le chiavi API accedendo alla pagina OpenAI API, cliccando sull’immagine del profilo e selezionando l’opzione "View API keys". Tutti i nuovi account OpenAI includono 5 $ di crediti gratuiti, quindi non serve aggiungere subito i dati della carta di credito.

Poi, clicca sul pulsante “Create new security key”, scrivi il nome della chiave e quindi copia la chiave generata.

Possiamo impostare la chiave API nel nostro sistema locale digitando il comando seguente nel terminale. Imposterà una variabile d’ambiente dell’API per usare i servizi OpenAI.
export OPENAI_API_KEY='sk-...kMEM'
Puoi impostare una chiave all’interno del tuo programma Python usando openai.api_key. Questo metodo non è consigliato perché espone la tua API pubblicamente.
import openai
openai.api_key = "sk-...kMEM"
Se usi DataLab, devi cliccare su Environment > l’icona "più" e poi inserire nomi e valori delle tue variabili d’ambiente.

Dopodiché, devi abilitare la variabile d’ambiente cliccando sul pulsante Connect.

Useremo una piccola parte del video YouTube intervista a Marvin Minsky sull’IA e la convertiremo in audio. Il file marvin_minsky.mp3 dura un minuto e pesa 970 KB.
Abbiamo tagliato una piccola parte dal video YouTube in spagnolo How Are People in Barcelona Using AI? per creare un file Easy_spanish_315.mp3. Pesa 509 KB e dura 20 secondi.
L’API per le trascrizioni è semplice. Devi solo caricare il file audio con l’istruzione with e passare l’oggetto audio a openai.Audio.transcribe. La funzione transcribe richiede solo il nome del modello e l’oggetto audio, ma puoi fornire argomenti di language per una maggiore accuratezza.
import openai
with open("Audio/marvin_minsky.mp3", "rb") as audio_file:
transcript = openai.Audio.transcribe(
file = audio_file,
model = "whisper-1",
response_format="text",
language="en"
)
print(transcript)
of theories called Steps Toward Artificial Intelligence around 1970. That sort of charted several possible lines of research, which pretty much predicted what several communities of researchers would do in the next 20 years. Those predictions started to fall apart around--so that paper was 1970, roughly. By the late 1980s, the world had changed. It was interesting because when I started research in that general area, almost all of my students soon became professors.
Dai un’occhiata allo schema riassuntivo OpenAI API Python per un rapido ripasso di cosa fa ogni funzione. Possiamo usarlo per imparare i vari comandi dell’API di OpenAI per generazione di testo, trascrizione del parlato, generazione di immagini, embedding e altro.
Nell’esempio precedente abbiamo impostato il formato di risposta dell’output come semplice testo, ma puoi sempre cambiarlo in sottotitoli subrip (response_format="srt"), sottotitoli video text track (response_format="vtt") e metadati (response_format="verbose_json").
Nei nostri esempi, cambieremo response_format in “srt” per ottenere i sottotitoli come output.
with open("Audio/marvin_minsky.mp3", "rb") as audio_file:
transcript2 = openai.Audio.transcribe(
file = audio_file,
model = "whisper-1",
response_format="srt",
language="en"
)
print(transcript2)
Come si vede, il testo in output è suddiviso in base ai timestamp.
1
00:00:00,000 --> 00:00:10,960
of theories called Steps Toward Artificial Intelligence around 1970.
2
00:00:10,960 --> 00:00:24,320
That sort of charted several possible lines of research, which pretty much predicted what
3
00:00:24,320 --> 00:00:31,920
several communities of researchers would do in the next 20 years.
4
00:00:31,920 --> 00:00:42,040
Those predictions started to fall apart around--so that paper was 1970, roughly.
5
00:00:42,040 --> 00:00:48,200
By the late 1980s, the world had changed.
6
00:00:48,200 --> 00:00:56,760
It was interesting because when I started research in that general area, almost all
7
00:00:56,760 --> 00:01:16,920
of my students soon became professors.
Whisper è stato addestrato in 98 lingue, il che gli consente di trascrivere in più lingue. Per farlo, devi cambiare l’argomento language.
Nel nostro caso, stiamo trascrivendo audio in spagnolo e per questo abbiamo impostato language="es"
with open("Audio/easy_spanish_315.mp3", "rb") as audio_file:
transcript_es = openai.Audio.transcribe(
file = audio_file,
model = "whisper-1",
response_format="text",
language="es"
)
print(transcript_es)
¿Qué crees que es la inteligencia artificial? ¿Qué creo que es? Eh... no sé, no sé cómo describirlo. Algo que no es natural, obviamente. Eh... Pues la inteligencia artificial es mediante... mediante datos, eh... introducirle a un algoritmo.
Puoi tradurre il tuo audio solo in trascrizione inglese.
Nell’esempio, forniremo alla funzione `translate` un audio in spagnolo, e tradurrà l’audio in lingua spagnola in inglese.
with open("Audio/easy_spanish_315.mp3", "rb") as audio_file:
translate = openai.Audio.translate(
file = audio_file,
model = "whisper-1",
response_format="text",
language="en"
)
print(translate)
What do you think artificial intelligence is? What do I think it is? I don't know how to describe it. Something that is not natural, obviously. Artificial intelligence is, through data, introduced to an algorithm.
Prova questo esempio andando a questo workbook DataLab. Include file audio e codice sorgente. Devi solo farne una copia e impostare una variabile d’ambiente perché funzioni.
Dai anche un’occhiata al tutorial Using ChatGPT via the OpenAI API in the Python. Ti insegnerà come usare l’API di OpenAI per le chat completions con il modello gpt-3.5-turbo.
Possiamo migliorare la qualità della trascrizione usando un argomento prompt. Fornendo una trascrizione parziale nel parametro prompt, aiutiamo il modello a comprendere stile di scrittura, punteggiatura, maiuscole e ortografia.
Un grande svantaggio dell’attuale sistema di prompting è che offre poco controllo sul testo generato. Inoltre, il processo di prompting non può essere automatizzato, poiché implica che una persona trascriva parzialmente l’audio manualmente.
Puoi usare il codice di esempio di questo tutorial per creare un assistente vocale o per dare vita a J.A.R.V.I.S. di Iron Man. Per riuscirci, devi solo definire l’interfaccia utente e come combinare Whisper, text-to-speech e l’API di ChatGPT, che abbiamo trattato in questo live training.
Se sei nuovo su ChatGPT, puoi seguire il corso Introduction to ChatGPT per imparare le best practice per scrivere prompt e trasformare ChatGPT in valore per il business. E se ti interessa scoprire GPT-4 e come funzionano i modelli generativi, leggi What is GPT-4 and Why Does it Matter? Qui sotto trovi anche altre risorse:

{count, plural, one {blog} other {blogs}}
Abid Ali Awan
10 min

{count, plural, one {blog} other {blogs}}
Abid Ali Awan
15 min
{count, plural, one {blog} other {blogs}}
Tim Lu
12 min