Nozioni di base su Speech-to-Text

Questo documento è una guida alle nozioni di base sull'utilizzo di Speech-to-Text. Questa guida concettuale illustra i tipi di richieste che puoi effettuare a Speech-to-Text, come crearle e come gestire le relative risposte. Prima di iniziare a utilizzare l'API stessa, consigliamo a tutti gli utenti di Speech-to-Text di leggere questa guida e uno dei tutorial associati.

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 ai 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 a lungo termine. Con questa operazione, puoi eseguire periodicamente un polling per i risultati del riconoscimento. Utilizza richieste asincrone per dati audio di qualsiasi durata fino a 480 minuti.

  • Riconoscimento in streaming (solo gRPC) esegue il riconoscimento dei dati audio forniti all'interno di uno stream bidirezionale gRPC. Le richieste di streaming sono progettate per il riconoscimento in tempo reale, ad esempio per acquisire audio in tempo reale da un microfono. Il riconoscimento in streaming fornisce risultati intermedi durante l'acquisizione dell'audio, consentendo la visualizzazione del risultato, 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 riconoscitore, una configurazione di riconoscimento archiviata 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 lo decodifica in base a queste informazioni. Consulta la pagina sulla codifica per conoscere i tipi di file supportati.

Per i file audio senza intestazione, l'API Speech-to-Text consente di specificare i metadati audio esplicitamente nella configurazione del riconoscimento. Per ulteriori dettagli, consulta la pagina sulla codifica.

Se hai la possibilità di scegliere durante la codifica del materiale di origine, acquisisci l'audio utilizzando una frequenza di campionamento di 16000 Hz. Valori inferiori a questo potrebbero compromettere l'accuratezza del riconoscimento vocale e i livelli più elevati non hanno alcun effetto apprezzabile sulla qualità del riconoscimento vocale.

Tuttavia, se i dati audio sono già stati registrati a una frequenza di campionamento esistente diversa da 16000 Hz, non eseguire il campionamento dell'audio a 16000 Hz. La maggior parte dell'audio di telefonia legacy, ad esempio, utilizza frequenze di campionamento di 8000 Hz, il che potrebbe dare risultati meno accurati. Se devi utilizzare questo audio, forniscilo all'API Speech-to-Text con la frequenza di campionamento nativa.

Lingue

Il motore di riconoscimento di Speech-to-Text supporta una serie di lingue e dialetti. Specifica 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. Questi vengono attivati nella configurazione del riconoscimento nelle richieste. Consulta il codice campione fornito nei link sopra riportati e la pagina Lingue per verificare la disponibilità di queste funzionalità.

Selezione del modello

Speech-to-Text può utilizzare uno di diversi modelli di machine learning per trascrivere il 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 i modelli disponibili e come selezionarne uno nelle richieste.

Contenuti audio incorporati

L'audio incorporato è incluso nella richiesta di riconoscimento vocale quando viene passato un parametro content nel campo audio_source della richiesta. L'audio incorporato fornito come contenuto all'interno di una richiesta gRPC deve essere compatibile con la serializzazione Proto3 e fornito come dati binari. L'audio incorporato fornito come contenuto all'interno di una richiesta REST deve essere compatibile con la serializzazione JSON e deve essere prima codificato in Base64. Per ulteriori informazioni, consulta [Codifica audio in base64][base64-encoding].

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.

Passare l'audio a cui fa riferimento un URI

In genere, passi un parametro uri nel campo uri della richiesta dell'API Speech-to-Text che rimandi a un file audio (in formato binario, non base64) situato su Cloud Storage nel seguente formato:audio_source

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, l'account di servizio ha accesso ai file Cloud Storage nello stesso progetto.

L'indirizzo email dell'account di servizio è il seguente:

service-PROJECT_NUMBER@gcp-sa-speech.iam.gserviceaccount.com

Per trascrivere i file di Cloud Storage in un altro progetto, puoi assegnare 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ù sul criterio IAM del progetto, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

Puoi anche concedere all'account di servizio un accesso più granulare assegnandogli l'autorizzazione per 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 gli 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 in messaggi SpeechRecognitionResult per le richieste sincrone e batch e in messaggi StreamingRecognitionResult per le richieste in streaming. Nelle richieste sincrone e batch, la risposta RPC contiene un elenco di risultati. L'elenco dell'audio riconosciuto viene visualizzato in ordine contiguous. Per le risposte in streaming, tutti i risultati contrassegnati come is_final vengono visualizzati in ordine contiguo.

Seleziona 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 attendibilità sufficiente, questa viene inclusa nella risposta. La prima alternativa nella risposta è sempre la migliore (la più probabile).

L'impostazione di max_alternatives su un valore superiore a 1 non implica né garantisce che verranno 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 in streaming.

Gestione delle trascrizioni

Ogni alternativa fornita all'interno della risposta conterrà un transcript contenente il testo riconosciuto. Se vengono fornite alternative sequenziali, devi concatenare queste trascrizioni.

Valori di confidenza

Il valore confidence è una stima compresa tra 0,0 e 1,0. Viene calcolato aggregando i valori di "probabilità " assegnati a ogni parola nell'audio. Un numero più alto indica una maggiore probabilità stimata che le singole parole siano state riconosciute correttamente. In genere, questo campo viene 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 all'utente risultati alternativi o chiedere conferma.

Tieni presente, però, che il modello determina il risultato "migliore" con il ranking più alto in base a più indicatori rispetto al solo punteggio confidence (ad esempio il contesto della frase). Per questo motivo, in alcuni casi 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 a quello previsto. Questo 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 a quello delle opzioni alternative.

Passaggi successivi