Panoramica di Cloud Speech-to-Text

Cloud Speech-to-Text è un'API che ti consente di integrare le tecnologie di riconoscimento vocale di Google nelle tue applicazioni per sviluppatori. Questo documento illustra le nozioni di base sull'utilizzo di Cloud Speech-to-Text, inclusi i tipi di richieste che puoi effettuare a Cloud STT, come creare queste richieste e come gestire le relative risposte. Prima di iniziare a utilizzare l'API, leggi questa guida e uno dei tutorial correlati.

Richieste di riconoscimento Cloud Speech-to-Text

Cloud Speech-to-Text (STT) prevede tre metodi principali per eseguire il riconoscimento vocale. Sono disponibili i seguenti metodi:

  • Il riconoscimento sincrono (REST e gRPC) invia dati audio all'API Cloud Speech-to-Text, esegue il riconoscimento su questi dati e restituisce i risultati dopo l'elaborazione di tutto l'audio. Le richieste di riconoscimento sincrono elaborano dati audio di 1 minuto o meno.

  • Il riconoscimento asincrono (REST e gRPC) invia i dati audio all'API Cloud 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 i dati audio di qualsiasi durata fino a 480 minuti.

  • Riconoscimento streaming (solo gRPC) esegue il riconoscimento dei dati audio forniti all'interno di un flusso gRPC bidirezionale. Le richieste di streaming sono progettate per scopi di riconoscimento in tempo reale, ad esempio l'acquisizione di audio live da un microfono. Il riconoscimento in streaming fornisce risultati provvisori durante l'acquisizione dell'audio. Ad esempio, i risultati possono essere visualizzati 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 archiviata e riutilizzabile.

Metadati audio

Per la maggior parte dei file audio, l'API Cloud Speech-to-Text può dedurre automaticamente i metadati audio. Cloud STT analizza l'intestazione del file e la decodifica in base a queste informazioni. Consulta la pagina Codifica per i tipi di file supportati.

Per i file audio senza intestazione, l'API Cloud Speech-to-Text ti consente di specificare i metadati audio in modo esplicito nella configurazione del 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 possono compromettere l'accuratezza del riconoscimento vocale, mentre valori 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 ricampionare l'audio a 16.000 Hz. Ad esempio, la maggior parte dell'audio di telefonia legacy utilizza frequenze di campionamento di 8000 Hz, che possono fornire risultati meno accurati. Se devi utilizzare questo tipo di audio, fornisci l'audio all'API Cloud Speech-to-Text alla frequenza di campionamento originale.

Lingue

Il motore di riconoscimento di Cloud STT supporta una vasta gamma 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 Lingue supportate.

Funzionalità di riconoscimento

L'API Cloud Speech-to-Text offre funzionalità di riconoscimento aggiuntive come la punteggiatura automatica e l'affidabilità a livello di parola. Puoi abilitare queste funzionalità nella configurazione del riconoscimento nelle richieste. Consulta il codice campione nei link forniti e la pagina delle lingue per la disponibilità delle funzionalità.

Selezione del modello

Cloud STT può utilizzare uno dei 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 di più sui modelli disponibili e su come selezionarne uno nelle tue richieste.

Contenuti audio incorporati

Per includere l'audio incorporato nella richiesta di riconoscimento vocale, passa un parametro content all'interno del campo audio_source della richiesta. Per l'audio incorporato che fornisci 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 che fornisci come contenuto all'interno di una richiesta REST, l'audio deve essere compatibile con la serializzazione JSON e deve essere codificato in Base64. Per ulteriori informazioni, vedi Codifica Base64 dell'audio.

Quando crei una richiesta utilizzando una libreria client Google Cloud, in genere scrivi questi dati binari (o codificati in Base64) 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 dell'API Cloud Speech-to-Text, che punta a un file audio (in formato binario, non Base64) che si trova su 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][speech-service-agent] 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 [Gestisci l'accesso a progetti, cartelle e organizzazioni][manage-access].

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 [Create and Manage controllo dell'accesso lists][buckets-manage-acl] nella documentazione di Cloud Storage.

Risposte dell'API Cloud Speech-to-Text

Dopo che l'API Cloud Speech-to-Text elabora l'audio, 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.

Seleziona 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 Cloud STT determina che un'alternativa ha un valore di confidenza sufficiente, la include nella risposta. La prima alternativa nella risposta è sempre la migliore (più probabile).

L'impostazione di max_alternatives su un valore superiore a 1 non implica né garantisce la restituzione di 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 nella risposta contiene un transcript con il testo riconosciuto. Quando ricevi alternative sequenziali, concatenale.

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 vengano 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 o chiedere la tua 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" può avere unvalore di affidabilitàa inferiore al previsto. Ciò può verificarsi, ad esempio, quando vengono utilizzate parole rare. Anche se il sistema riconosce correttamente una parola usata raramente, può essere assegnato un valore di "probabilità" basso. Se il modello determina che la parola rara è l'opzione più probabile in base al contesto, restituisce questo risultato in alto anche se il valore di confidence è inferiore rispetto alle opzioni alternative.

Passaggi successivi