Presentiamo Eleven v4Scopri Eleven v4, il nostro modello più espressivo di sempre. Con 3 volte più crediti inclusi in Creator+ fino al 12 ottobre

Vai al contenuto

Tutorial sul riconoscimento vocale in Python: dal file audio alla trascrizione

Scritto da
Jack Limebear
Pubblicato
Ultimo aggiornamento

AscoltaAscolta questo articolo

Integrare funzionalità di riconoscimento vocale in un'app Python era un processo complesso. Gli sviluppatori Python dovevano gestire direttamente il processo di trascrizione, inclusi il pretrattamento dell'audio, l'estrazione delle caratteristiche e l'integrazione del modello. Inoltre, i team di ingegneria dovevano affrontare la gestione dell'audio a basso livello, una qualità di trascrizione insufficiente e ritardi tra le parole pronunciate e i sottotitoli in tempo reale. 

I progressi nei modelli audio e negli SDK per il riconoscimento vocale hanno cambiato tutto questo.

In questo tutorial sul riconoscimento vocale in Python, scoprirai come integrare i modelli audio Speech to Text di ElevenLabs nel tuo progetto Python per creare app di trascrizione pronte per l'uso commerciale. 

In sintesi

  • I modelli Speech to Text per uso commerciale offrono funzionalità come la diarizzazione dei parlanti, timestamp a livello di parola e keyterm prompting, che mancano ai modelli di riconoscimento vocale di base. 
  • ElevenAPI aggiunge funzionalità di riconoscimento vocale al tuo codice Python con Scribe v2 e Scribe v2 Realtime. 
  • Gli sviluppatori possono installare le skill di ElevenLabs su una piattaforma di coding IA per generare codice Python accurato basato sulla documentazione API ufficiale. 
  • Puoi provare gratuitamente l'API ElevenLabs prima di sottoscrivere un piano a pagamento per lo sviluppo commerciale. 
Five steps for Python speech recognition tutorial: setup, transcription, streaming, and enterprise features.

Cosa comprende questo tutorial sul riconoscimento vocale in Python

Questo tutorial tratta i prerequisiti, l'integrazione API e le funzionalità avanzate di trascrizione che ti aiutano a creare un'app Python di riconoscimento vocale per casi d'uso aziendali.  

Il riconoscimento vocale è maturato negli ultimi anni, soprattutto grazie ai modelli linguistici di grandi dimensioni e alle reti neurali di deep learning, che hanno cambiato il modo in cui gli sviluppatori Python usano gli SDK di trascrizione. Molti tutorial mostrano come creare app di trascrizione di base, ma pochi trattano le funzionalità necessarie a un prodotto pronto per l'uso commerciale.

Abbiamo scritto questo tutorial per colmare questa lacuna. 

Ad esempio, molte soluzioni di trascrizione aziendale richiedono queste funzionalità:

  • Diarizzazione dei parlanti: La capacità di identificare e distinguere i singoli parlanti nella trascrizione.
  • Timestamp: L'associazione accurata di ogni parola alle ore, ai minuti e ai secondi relativi in cui viene pronunciata. 
  • Supporto multilingue: Rileva discorsi in lingue diverse all'interno di una singola registrazione o di uno stream in tempo reale, con bassi tassi di errore sulle parole. 
  • Keyterm prompting: L'associazione di parole speciali, come brand, nomi di prodotti e termini tecnici, per evitare errori di trascrizione. 
  • Trascrizione a bassa latenza: Risposta speech-to-text in millisecondi che abilita app di trascrizione in tempo reale. 

Nota: questo tutorial va oltre la creazione di semplici script personali per hobby o progetti individuali. Non include la logica applicativa sviluppata sopra l'integrazione dell'API Speech to Text, poiché varia in base all'azienda. 

Enterprise transcription needs: diarization, word timestamps, languages, keyterms, and low latency.

Prerequisiti per l'integrazione del riconoscimento vocale in Python 

Abbiamo progettato questo tutorial attorno a ElevenAPI, un'API di livello produttivo di ElevenLabs che semplifica l'interazione con i modelli vocali nel tuo codice. Con ElevenAPI hai accesso a Scribe v2 e Scribe v2 Realtime, i nostri principali modelli vocali per la trascrizione batch e in tempo reale. 

Invece di accedere direttamente ai modelli Speech to Text di ElevenLabs, trasmetti registrazioni audio, stream in tempo reale e argomenti tramite chiamate API. Il modello audio converte quindi i dati audio in testo. Al termine, ricevi le trascrizioni nel codice o tramite webhook. 

Per iniziare, segui questi passaggi di preparazione. 

  1. Registrati a ElevenLabs.
  2. Crea la tua chiave API.
  3. Registra una conversazione e caricala in un archivio accessibile pubblicamente. 

Quando sei pronto, passa alla sezione successiva. 

Configurare l'ambiente 

Prima di integrare i modelli ElevenLabs, configura l'ambiente Python per proteggere la tua chiave API ElevenLabs. Come per tutte le chiavi API, consigliamo di archiviarla come variabile d'ambiente (un segreto gestito) nel file .env. 

ELEVENLABS_API_KEY=<your_api_key_here>

Quando effettui una chiamata API, passi la variabile d'ambiente. Così eviti di esporre accidentalmente la chiave API quando effettui richieste API tramite una rete pubblica. 

Poi esegui un comando Bash per installare elevenlabs, l'SDK di ElevenLabs, nel tuo ambiente Python. L'SDK ti consente di accedere a diversi modelli vocali. In questo caso, puoi scegliere tra Scribe v2 e Scribe v2 Realtime.

pip install elevenlabs
pip install python-dotenv

Dovrai installare anche python-dotenv, che consente al tuo codice Python di accedere alle variabili d'ambiente archiviate nel file .env. 

Scrivere il primo script di trascrizione 


Dopo aver configurato l'ambiente Python, puoi trascrivere il file audio con ElevenLabs Scribe v2. 

ElevenLabs Scribe v2 è un modello di riconoscimento vocale leader nel settore che ti consente di trascrivere file audio su larga scala. Rileva i fonemi con elevata accuratezza anche quando la registrazione audio contiene un notevole rumore di fondo. Per trascrivere l'audio, invii la registrazione al modello tramite l'API ElevenLabs e recuperi la trascrizione completata. 

Di seguito trovi uno snippet di codice Python che converte un file audio in una trascrizione con timestamp e diarizzazione. 

# example.py
import os
from dotenv import load_dotenv
from io import BytesIO
import requests
from elevenlabs.client import ElevenLabs

load_dotenv()

elevenlabs = ElevenLabs(
  api_key=os.getenv("ELEVENLABS_API_KEY"),
)

audio_url = (
    "https://storage.googleapis.com/eleven-public-cdn/audio/marketing/nicole.mp3"
)
response = requests.get(audio_url)
audio_data = BytesIO(response.content)

transcription = elevenlabs.speech_to_text.convert(
    file=audio_data,
    model_id="scribe_v2", # Model to use
    tag_audio_events=True, # Tag audio events like laughter, applause, etc.
    language_code="eng", # Language of the audio file. If set to None, the model will detect the language automatically.
    diarize=True, # Whether to annotate who is speaking
)

print(transcription)

Il codice carica le librerie necessarie, che forniscono le funzioni richieste. Carica inoltre nell'ambiente del programma le variabili d'ambiente che hai dichiarato. 

Crea quindi un client ElevenLabs usando la chiave API archiviata nella variabile d'ambiente. Successivamente, scarica il file audio e lo converte in dati binari. 

Una volta ottenuti i dati audio grezzi, li invii all'API ElevenLabs insieme a diversi parametri.

  • model_id indica il modello speech-to-text che vuoi usare. Poiché stai passando un file audio, Scribe v2 è l'opzione migliore.
  • tag_audio_events ti consente di evidenziare segmenti non vocali, come risate, passi e altri rumori di fondo.
  • language_code rappresenta la lingua delle conversazioni nel file di registrazione. Se impostato su None, il modello rileverà automaticamente la lingua. 
  • diarize indica se vuoi che il modello identifichi e distingua i diversi parlanti in base alle caratteristiche delle loro voci.

Infine, esegui il codice e vedrai l'audio trascritto nel terminale. 

Speech-to-text API parameters: model, audio events, language, and speaker diarization.

Riconoscimento vocale in streaming in Python

L'esempio precedente tratta la trascrizione batch, adatta ai file preregistrati. ElevenLabs offre però anche API che ti consentono di creare funzionalità di riconoscimento vocale in streaming. A differenza dell'elaborazione batch, questa modalità esegue il riconoscimento vocale in tempo reale per generare trascrizioni durante la conversazione. 

Per farlo, connetti il tuo codice Python al modello Scribe v2 Realtime tramite l'API WebSocket. 

Scribe v2 Realtime offre un'architettura progettata per lo streaming, con una latenza di trascrizione inferiore a 150 ms. Puoi usare Scribe v2 Realtime per creare applicazioni come agenti per riunioni, strumenti di accessibilità e automazioni attivate vocalmente. Il modello restituisce una trascrizione parziale mentre elabora lo stream audio. Restituisce la trascrizione finale solo quando il codice conferma un segmento audio, automaticamente o manualmente. 

In base alla sorgente audio e al tipo di applicazione, integri il riconoscimento vocale con l'API ElevenLabs lato server o lato client. 

  • Streaming lato client ti consente di trasmettere direttamente dal microfono o tramite stream audio suddivisi manualmente in blocchi.
  • Streaming lato server instrada i dati audio da un URL o da una sorgente audio al modello vocale. 

Sia lo streaming lato client sia quello lato server ti consentono di usare un workflow asincrono. Invece di eseguire continuamente il polling dell'API, usa WebSocket per gestire i risultati. Nel tuo codice, devi creare handler che ricevono trascrizioni parziali e finalizzate. 

Scribe v2 transcribes prerecorded files; Realtime streams live audio with under-150 ms latency.

Approfondimento: diarizzazione, timestamp e vocabolario personalizzato 

Oltre al riconoscimento vocale automatico, i modelli Speech to Text di ElevenLabs supportano la diarizzazione, i timestamp e il vocabolario personalizzato. 

  • Diarizzazione: solo la trascrizione batch supporta la diarizzazione dei parlanti. Puoi abilitare la diarizzazione impostando l'argomento diarize. Tuttavia, la trascrizione multicanale, una modalità della trascrizione batch, non supporta la diarizzazione.
  • Timestamp: quando esegui una trascrizione batch, puoi scegliere tra timestamp a livello di parola o di carattere. Per farlo, imposta il parametro timestamps_granularity quando usi il metodo convert.  
  • Vocabolario personalizzato: Sia la trascrizione in tempo reale sia quella batch supportano il keyterm prompting. Questa funzionalità indirizza il modello verso la trascrizione di termini chiave specifici inclusi in un elenco. Scribe v2 Realtime supporta fino a 50 termini chiave, mentre Scribe v2 ne supporta 1.000. 

Usare la skill ElevenLabs negli assistenti di coding IA 

Gli assistenti di coding IA accelerano lo sviluppo. Se usi strumenti come Claude Code, Cursor, Codex o strumenti di coding IA simili, puoi aggiungere le skill di ElevenLabs nell'ambiente di coding. 

Ti basta eseguire questo comando nel terminale della tua piattaforma:

 npx skills add elevenlabs/skills --skill speech-to-text 

L'agente di coding IA scaricherà la skill speech-to-text dal repository GitHub di ElevenLabs e la installerà nella directory locale delle skill. Così puoi generare automaticamente codice Python per il riconoscimento vocale basato sulla documentazione ufficiale di ElevenLabs, invece di scrivere da zero l'intera integrazione API. 

Una volta installata, puoi generare codice Python per il riconoscimento vocale semplicemente descrivendo in modo conversazionale ciò che deve fare. In base alla descrizione, l'assistente di coding genera automaticamente il codice usando la skill speech-to-text, con il modello e i parametri corretti.

Ad esempio, se digiti in Codex “Crea uno snippet Python per il riconoscimento vocale che trascriva con diarizzazione e timestamp a livello di parola”, otterrai uno snippet simile a quello riportato di seguito. 

Chat showing Python code for ElevenLabs speech transcription with speaker diarization and word timestamps.

Inizia a usare ElevenAPI per il riconoscimento vocale

ElevenAPI ti consente di accedere a modelli Speech to Text avanzati per creare app di riconoscimento vocale in Python.

Usando ElevenAPI, eviti di scrivere da zero il codice di integrazione, rallentando l'innovazione del prodotto. Puoi invece usare SDK che offrono servizi Speech to Text conformi ai requisiti per l'uso commerciale, come keyterm prompting, diarizzazione e timestamp. 

Ottieni subito la tua chiave API ElevenLabs ed esplora la nostra documentazione ufficiale per scoprire come funziona l'API. 

Domande frequenti

Scritto da

Jack Limebear fa parte del team Growth e si occupa di scrivere contenuti e definire strategie per il blog e le pagine insights. Prima di arrivare in ElevenLabs, ha guidato la strategia dei contenuti per oltre dieci anni in realtà che vanno da startup SaaS in rapida crescita a grandi aziende Fortune 500. Ha conseguito un Master in Letteratura Inglese presso l’Università di Cambridge.

Articoli simili

Crea con l'audio IA della massima qualità