Vai al contenuto

Implementare il modello Whisper di OpenAI su Azure

Scopri come utilizzare il modello ASR Whisper di OpenAI su Azure per trascrivere e analizzare file audio e video preregistrati.

Whisper è un sistema avanzato di riconoscimento automatico del parlato (ASR), sviluppato da OpenAI utilizzando 680.000 ore di dati multilingue e multitasking supervisionati. Grazie a questo ampio e variegato set di dati, Whisper è in grado di gestire numerosi accenti, rumori di fondo e gergo tecnico. Non solo trascrive in diverse lingue, ma traduce anche in inglese. OpenAI ha reso disponibili i modelli e il codice di inferenza come open source, fornendo una solida base per lo sviluppo di applicazioni pratiche e per avanzare nella ricerca nel campo del trattamento del parlato.

Il modello Whisper, ideale per la trascrizione di file audio, eccelle nella trascrizione in lingua inglese grazie a un dataset esteso di audio e testo inglese, ma può anche gestire altre lingue producendo testi in inglese. Su Azure, i modelli Whisper sono accessibili tramite il servizio Azure Open AI. Il modello Whisper di Azure OpenAI offre soluzioni per diversi scenari, come la trascrizione e l’analisi di file audio e video preregistrati, il trattamento rapido di file audio individuali e la trascrizione di registrazioni di chiamate telefoniche, con analisi come il sommario delle chiamate, il sentiment, i temi principali e gli approfondimenti personalizzati.

Inoltre, Whisper può trascrivere registrazioni di riunioni fornendo analisi come il sommario delle riunioni, i capitoli della riunione e l’estrazione degli elementi d’azione. Supporta anche servizi di voce per contact center, come il routing delle chiamate e la risposta vocale interattiva, e assistenti vocali specifici per applicazioni come set-top box, app mobili, sistemi in-car e altro. Tuttavia, Whisper non supporta la trascrizione in tempo reale, la valutazione della pronuncia o la traduzione di audio preregistrato in lingue diverse dall’inglese.

Whisper può gestire file di grandi dimensioni fino a 1GB, realizzare la diarizzazione del parlato e permettere la personalizzazione del modello utilizzando audio e trascrizioni etichettate da umani. Per accedere a Whisper, i sviluppatori possono utilizzare Azure OpenAI Studio. L’API REST di Whisper supporta servizi di traduzione da una lista crescente di lingue verso l’inglese, aggiungendo un significativo valore alla vasta gamma di capacità di Azure AI, migliorando la produttività aziendale e l’esperienza degli utenti.

Snippet di codice per l’uso dell’API Whisper di Azure OpenAI in Python

import openaiimport timeimport osimport urllibfrom IPython.display import Audiofrom pathlib import Pathfrom pydub import AudioSegmentimport sslopenai.api_type = "azure"openai.api_version = "2023-09-01-preview"model_name = "whisper"  deployment_id = "whisper"audio_language="en"audio_test_file = "./wikipediaOcelot.wav"#Azure OpenAI CONFIGURATIONfrom openai import AzureOpenAIclient = AzureOpenAI(    api_key="yourkey",      api_version="2023-12-01-preview",    azure_endpoint = "https://instance.openai.azure.com/")def transcribe_audio(file):    transcript = openai.audio.transcriptions.create(        file=open(audio_test_file, "rb"),        model="whisper",    )    return transcript.textprint(transcribe_audio(audio_test_file))

Best Practices per l’uso dell’API Whisper in Azure

Whisper API offre una varietà di parametri che possono essere utilizzati per trascrizioni specifiche. Il parametro prompt nell’API OpenAI Whisper permette di guidare il processo di trascrizione fornendo istruzioni o condizioni specifiche. Ad esempio, è possibile utilizzare il parametro prompt per istruire l’API ad ignorare o escludere certe parole o frasi dalla trascrizione, utile per filtrare contenuti specifici o gestire informazioni sensibili. Utilizzando questo parametro, si può personalizzare l’output della trascrizione in base alle proprie esigenze.

def transcribe_audio(file):    transcript = openai.audio.transcriptions.create(        file=open(audio_test_file, "rb"),        model="whisper",        probability=0.5,        prompt="your prompt text",        response_format="verbose_json"    )    return transcript.text

Preprocessing

Nel contesto della trascrizione audio, il preprocessing coinvolge la preparazione dei dati audio per migliorare la qualità e l’accuratezza della trascrizione. È un passaggio cruciale che può influenzare significativamente i risultati. Ecco i principali passaggi del preprocessing:

  1. Trimming: rimozione di parti non necessarie dell’audio, come silenzi all’inizio o alla fine del file audio, riducendo così la dimensione del file e eliminando sezioni che potrebbero causare inesattezze nella trascrizione.
  2. Segmentazione: per file audio lunghi, è utile dividere l’audio in segmenti più piccoli e gestibili, rendendo il processo di trascrizione più efficiente e accurato.
  3. Miglioramento della qualità audio: include attività come la riduzione del rumore, la normalizzazione del volume e la cancellazione dell’eco, migliorando così l’accuratezza della trascrizione.
  4. Conversione del formato audio: assicurarsi che i file audio siano in un formato compatibile con il servizio di trascrizione, convertendoli se necessario.

Questi passaggi di preprocessing mirano principalmente a ridurre le fonti di errore nella trascrizione e a rendere i dati audio più gestibili per il servizio di trascrizione. PyDub è una semplice e facile libreria Python per task di elaborazione audio come taglio, concatenazione ed esportazione di file audio.

Post Processing

Nel contesto della trascrizione audio, l’output della trascrizione iniziale può essere ulteriormente raffinato utilizzando modelli di linguaggio come GPT-3.5, un processo noto come post-processing. In questo passaggio, il trascritto iniziale, che può contenere errori o incongruenze, viene inviato al modello di linguaggio, che, guidato dal suo training e da un eventuale prompt di sistema, genera una versione corretta o raffinata della trascrizione.

Questo processo consente la correzione degli errori, una migliore comprensione del contesto e persino la riformulazione o la sintesi del contenuto, a seconda del prompt di sistema fornito. È un modo efficace per sfruttare le capacità dei modelli di linguaggio per migliorare la qualità e l’utilità delle trascrizioni audio.

def generate_corrected_transcript(temperature, system_prompt, audio_file):    response = client.chat.completions.create(        model="gpt4",        temperature=temperature,        messages=[            {                "role": "system",                "content": system_prompt            },            {                "role": "user",                "content": transcribe_audio(audio_file)            }        ]    )    return response.choices[0].message.content

Per ulteriori dettagli sui modelli Whisper di Azure Open AI, visita il sito Microsoft.