Questo documento è una guida alle nozioni di base sull'utilizzo di Speech-to-Text. Questa guida concettuale illustra i tipi di richieste che puoi inviare a Speech-to-Text, come costruirle e come gestire le risposte. Consigliamo a tutti gli utenti di Speech-to-Text di leggere questa guida e uno dei tutorial associati prima di approfondire l'API stessa.
Richieste di riconoscimento Speech-to-Text
Speech-to-Text prevede tre metodi principali per eseguire il riconoscimento vocale. Questi sono elencati di seguito:
Il riconoscimento sincrono (REST e gRPC) invia i dati audio all'API Speech-to-Text, esegue il riconoscimento su questi dati e restituisce i risultati dopo che tutto l'audio è stato elaborato. Le richieste di riconoscimento sincrono sono limitate a dati audio di durata pari o inferiore a 1 minuto.
Il riconoscimento asincrono (REST e gRPC) invia i dati audio all'API Speech-to-Text e avvia un'operazione di lunga durata. Utilizzando questa operazione, puoi eseguire periodicamente il polling per i risultati del riconoscimento. Utilizza richieste asincrone per dati audio di qualsiasi durata fino a 480 minuti.
Streaming Recognition (solo gRPC) esegue il riconoscimento dei dati audio forniti all'interno di uno stream bidirezionale gRPC. Le richieste di streaming sono progettate per scopi di riconoscimento in tempo reale, ad esempio l'acquisizione di audio dal vivo da un microfono. Il riconoscimento in streaming fornisce risultati provvisori durante l'acquisizione dell'audio, consentendo la visualizzazione dei risultati, ad esempio, mentre un utente sta ancora parlando.
Le richieste contengono parametri di configurazione e dati audio. Le richieste di riconoscimento possono facoltativamente contenere un recognizer, una configurazione di riconoscimento memorizzata e riutilizzabile.
Metadati audio
Per la maggior parte dei file audio, l'API Speech-to-Text può dedurre automaticamente i metadati audio. Speech-to-Text analizza l'intestazione del file e la decodifica in base a queste informazioni. Consulta la pagina relativa alla codifica per scoprire i tipi di file supportati.
Per i file audio senza intestazione, l'API Speech-to-Text consente di specificare i metadati audio in modo esplicito nella configurazione di riconoscimento. Per ulteriori dettagli, consulta la pagina Codifica.
Se hai la possibilità di scegliere la codifica del materiale sorgente, acquisisci l'audio utilizzando una frequenza di campionamento di 16000 Hz. Valori inferiori a questo potrebbero compromettere l'accuratezza del riconoscimento vocale, mentre livelli superiori non hanno un effetto apprezzabile sulla qualità del riconoscimento vocale.
Tuttavia, se i dati audio sono già stati registrati a una frequenza di campionamento esistente diversa da 16.000 Hz, non ricampionarli a 16.000 Hz. La maggior parte dell'audio della telefonia legacy, ad esempio, utilizza frequenze di campionamento di 8000 Hz, che potrebbero fornire risultati meno accurati. Se devi utilizzare questo tipo di audio, fornisci l'audio all'API Speech-to-Text alla sua frequenza di campionamento nativa.
Lingue
Il motore di riconoscimento di Speech-to-Text supporta una serie di lingue e
dialetti. Specifichi la lingua (e il dialetto nazionale o regionale) dell'audio nel campo languageCode
della configurazione della richiesta utilizzando un identificatore BCP-47.
Un elenco completo delle lingue supportate per ogni funzionalità è disponibile nella pagina Supporto delle lingue.
Funzionalità di riconoscimento
L'API Speech-to-Text offre funzionalità di riconoscimento aggiuntive, come la punteggiatura automatica e la confidenza a livello di parola. Queste opzioni vengono attivate nella configurazione del riconoscimento nelle richieste. Consulta il codice campione fornito nei link precedenti e la pagina delle lingue per la disponibilità di queste funzionalità.
Selezione del modello
Speech-to-Text può utilizzare uno dei diversi modelli di machine learning per trascrivere il tuo file audio. Google ha addestrato questi modelli di riconoscimento vocale per tipi e sorgenti audio specifici. Consulta la documentazione relativa alla selezione del modello per scoprire di più sui modelli disponibili e su come selezionarne uno nelle tue richieste.
Contenuti audio incorporati
L'audio incorporato è incluso nella richiesta di riconoscimento vocale quando viene passato un
parametro content
all'interno del campo audio_source
della richiesta. Per l'audio incorporato
fornito come contenuto all'interno di una richiesta gRPC, l'audio deve essere compatibile con
la serializzazione Proto3
e fornito come dati binari. Per l'audio incorporato fornito come
contenuto all'interno di una richiesta REST, l'audio deve essere compatibile con la serializzazione JSON
e deve prima essere codificato in Base64. Per ulteriori informazioni, consulta
Codifica Base64 dell'audio.
Quando crei una richiesta utilizzando una
libreria client Google Cloud,
in genere scrivi questi dati binari (o codificati in base 64)
direttamente nel campo content
.
Trasmettere l'audio a cui fa riferimento un URI
In genere, passi un parametro uri
all'interno del campo audio_source
della richiesta API Speech-to-Text, che punta a un file audio (in formato binario, non base64) che si trova in Cloud Storage nel seguente formato:
gs://bucket-name/path/to/audio/file
Speech-to-Text utilizza un account di servizio per accedere ai tuoi file in Cloud Storage. Per impostazione predefinita, il account di servizio ha accesso ai file Cloud Storage nello stesso progetto.
L'indirizzo email del account di servizio è il seguente:
service-PROJECT_NUMBER@gcp-sa-speech.iam.gserviceaccount.com
Per trascrivere i file Cloud Storage in un altro progetto, puoi concedere a questo account di servizio il ruolo Agente di servizio Speech-to-Text nell'altro progetto:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-speech.iam.gserviceaccount.com \
--role=roles/speech.serviceAgent
Per saperne di più sulla policy IAM del progetto, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Puoi anche concedere all'account di servizio un accesso più granulare concedendogli l'autorizzazione a un bucket Cloud Storage specifico:
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
--member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-speech.iam.gserviceaccount.com \
--role=roles/storage.admin
Per ulteriori informazioni sulla gestione dell'accesso a Cloud Storage, consulta Creare e gestire controllo dell'accesso dell'accesso nella documentazione di Cloud Storage.
Risposte dell'API Speech-to-Text
Una volta elaborato l'audio, l'API Speech-to-Text restituisce i risultati della trascrizione nei messaggi
SpeechRecognitionResult
per le richieste
sincrone e batch e nei messaggi
StreamingRecognitionResult
per le richieste
di streaming. Nelle richieste sincrone e batch, la risposta RPC contiene
un elenco di risultati. L'elenco dell'audio riconosciuto viene visualizzato in ordine
contiguo. Per le risposte in streaming, tutti i risultati contrassegnati come is_final
vengono visualizzati
in ordine contiguo.
Selezionare le alternative
Ogni risultato all'interno di una risposta di riconoscimento sincrono riuscita può contenere
uno o più alternatives
(se max_alternatives
è maggiore di 1
). Se Speech-to-Text determina che un'alternativa
ha un valore di confidenza sufficiente, questa alternativa viene inclusa nella
risposta. La prima alternativa nella risposta è sempre la migliore
(molto probabilmente).
Se imposti max_alternatives
su un valore superiore a 1
, non è detto che vengano restituite più alternative. In generale, più di un'alternativa è più appropriata per fornire opzioni in tempo reale agli utenti che ricevono risultati tramite una richiesta di riconoscimento dello streaming.
Gestione delle trascrizioni
Ogni alternativa fornita nella risposta conterrà un elemento transcript
contenente il testo riconosciuto. Se vengono fornite alternative sequenziali,
devi concatenare queste trascrizioni.
Valori di confidenza
Il valore di confidence
è una stima compresa tra 0,0 e 1,0. Viene calcolato
aggregando i valori di "probabilità " assegnati a ogni parola dell'audio. Un numero più alto indica una maggiore probabilità stimata che le singole parole siano state riconosciute correttamente. Questo campo viene in genere
fornito solo per l'ipotesi principale e solo per i risultati in cui
is_final=true
. Ad esempio, puoi utilizzare il valore confidence
per decidere se mostrare risultati alternativi all'utente o chiedere
la conferma.
Tieni presente, tuttavia, che il modello determina il risultato "migliore" e con il ranking più alto in base
a più indicatori rispetto al solo punteggio confidence
(ad esempio il contesto della frase).
Per questo motivo, a volte il risultato migliore non
ha il punteggio di confidenza più alto. Se non hai richiesto più risultati alternativi, il singolo risultato "migliore" restituito potrebbe avere un valore di affidabilità inferiore al previsto. Ciò può verificarsi, ad esempio, nei casi in cui vengono utilizzate parole rare. A una parola usata raramente può essere assegnato un valore di "probabilità" basso
anche se viene riconosciuta correttamente. Se il modello determina che la parola rara è
l'opzione più probabile in base al contesto, il risultato viene restituito in alto anche
se il valore confidence
del risultato è inferiore alle opzioni alternative.
Passaggi successivi
- Utilizza le librerie client per trascrivere l'audio utilizzando il tuo linguaggio di programmazione preferito.
- Scopri come trascrivere file audio corti.
- Scopri come trascrivere l'audio in streaming.
- Scopri come trascrivere file audio lunghi.