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 inviare a Speech-to-Text, come crearle e come gestirne 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 dati audio all'API Speech-to-Text, esegue il riconoscimento su tali dati e restituisce i risultati dopo l'elaborazione di tutto l'audio. Le richieste di riconoscimento sincrono sono limitate ai dati audio della durata massima di 1 minuto.

  • Il riconoscimento asincrono (REST e gRPC) invia dati audio all'API Speech-to-Text e avvia un'operazione a lunga esecuzione. Con questa operazione, puoi eseguire periodicamente il sondaggio per ottenere i risultati del riconoscimento. Utilizza le richieste asincrone per dati audio di qualsiasi durata fino a 480 minuti.

  • Il riconoscimento streaming (solo gRPC) esegue il riconoscimento sui dati audio forniti all'interno di uno stream bidirezionale gRPC. Le richieste di streaming sono progettate per scopi di riconoscimento in tempo reale, come l'acquisizione di audio in diretta da un microfono. Il riconoscimento dello streaming fornisce risultati intermedi durante l'acquisizione dell'audio, consentendo la visualizzazione dei risultati, ad esempio mentre l'utente sta ancora parlando.

Le richieste contengono parametri di configurazione e dati audio. Facoltativamente, le richieste di riconoscimento possono contenere un riconoscimento, una configurazione di riconoscimento archiviata e riutilizzabile.

Metadati audio

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

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

Se puoi scegliere di codificare il materiale di origine, acquisisci l'audio utilizzando una frequenza di campionamento di 16000 Hz. Valori inferiori a questo valore potrebbero compromettere la precisione del riconoscimento vocale; inoltre, i livelli più alti non hanno un effetto apprezzabile sulla qualità del riconoscimento vocale.

Tuttavia, se i tuoi 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. La maggior parte delle registrazioni audio delle telefonate precedenti, ad esempio, utilizza frequenze di campionamento di 8000 Hz, che potrebbero fornire risultati meno precisi. Se devi utilizzare questo tipo di audio, fornisci l'audio all'API Speech-to-Text con la sua frequenza di campionamento nativa.

Linguaggi

Il motore di riconoscimento di Speech-to-Text supporta una varietà di lingue e dialetti. Devi specificare 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 dispone di funzionalità di riconoscimento aggiuntive come punteggiatura automatica e confidenza a livello di parola. Questi vengono abilitati nella configurazione del riconoscimento nelle richieste. Controlla il codice campione fornito nei link precedenti e nella pagina delle lingue per conoscere la disponibilità di queste funzionalità.

Selezione del modello

Speech-to-Text può utilizzare uno dei numerosi modelli di machine learning per trascrivere il file audio. Google ha addestrato questi modelli di riconoscimento vocale per origini e tipi audio specifici. Consulta la documentazione sulla selezione dei modelli 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 si passa un parametro content nel campo audio_source della richiesta. Per l'audio incorporato fornito come contenuto all'interno di una richiesta gRPC, questo audio deve essere compatibile per la serie 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 prima deve essere codificato in Base64. Consulta la sezione [Codifica Base64 dell'audio][codifica base64] per ulteriori informazioni.

Quando crei una richiesta utilizzando una libreria client di Google Cloud, in genere scrivi questi dati binari (o codificati in base 64) direttamente all'interno del campo content.

Trasmettere l'audio a cui fa riferimento un URI

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

gs://bucket-name/path/to/audio/file

Speech-to-Text utilizza un account di servizio per accedere ai file in Cloud Storage. Per impostazione predefinita, l'account di servizio ha accesso ai file di 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 concedere a questo account di servizio il ruolo di 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 ulteriori informazioni 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 concedendo l'autorizzazione a un bucket Cloud Storage specifico:

gsutil iam ch serviceAccount:service-PROJECT_NUMBER@gcp-sa-speech.iam.gserviceaccount.com:admin \
    gs://BUCKET_NAME

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 nei messaggi SpeechRecognitionResult per le richieste sincrone e in batch e nei messaggi di StreamingRecognitionResult per le richieste di streaming. Nelle richieste sincrone e batch, la risposta RPC contiene un elenco di risultati. L'elenco degli audio riconosciuti viene visualizzato in ordine contiguo. Per le risposte dinamiche, tutti i risultati contrassegnati come is_final vengono visualizzati in ordine contiguo.

Seleziona alternative

Ciascun risultato in 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, l'alternativa viene inclusa nella risposta. La prima alternativa nella risposta è sempre l'alternativa migliore (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 ottengono 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 le 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 maggiore indica una stima maggiore probabilità che le singole parole siano state riconosciute correttamente. Questo campo in genere viene fornito solo per l'ipotesi superiore 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 una conferma all'utente.

Tuttavia, tieni presente che il modello determina il risultato "migliore" con il miglior ranking in base a più indicatori rispetto al solo punteggio confidence (ad esempio il contesto della frase). Per questo motivo, ci sono casi occasionali in cui il risultato migliore non presenta il punteggio di confidenza più alto. Se non hai richiesto più risultati alternativi, il singolo risultato "migliore" restituito potrebbe avere un valore di affidabilità più basso del previsto. Questo può accadere, ad esempio, in casi in cui vengono utilizzate parole rare. A una parola usata raramente può essere assegnato un valore di "probabilità" basso, anche se è 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 rispetto alle opzioni alternative.

Passaggi successivi