Questa pagina mostra come trascrivere file audio lunghi (più lunghi di 1 minuto) in testo utilizzando l'API Speech-to-Text e il riconoscimento vocale asincrono.
Informazioni sul riconoscimento vocale asincrono
Il riconoscimento vocale asincrono avvia un'operazione di elaborazione audio a lunga esecuzione. Usa il riconoscimento vocale asincrono per trascrivere audio di durata superiore a 60 secondi. Per audio più brevi, il riconoscimento vocale sincrono è più veloce e semplice. Il limite massimo per il riconoscimento vocale asincrono è di 480 minuti.
Elaborazione Speech-to-Text e asincrona
I contenuti audio possono essere inviati direttamente a Speech-to-Text da un file locale per l'elaborazione asincrona. Il limite di tempo per i file locali, invece, è di 60 secondi. Se provi a trascrivere file audio locali di durata superiore a 60 secondi, verrà visualizzato un errore. Per utilizzare il riconoscimento vocale asincrono per trascrivere audio più lunghi di 60 secondi, i tuoi dati devono essere salvati in un bucket Google Cloud Storage.
Puoi recuperare i risultati dell'operazione utilizzando il metodo google.longrunning.Operations. I risultati rimangono disponibili per il recupero per 5 giorni (120 ore). Puoi anche caricare i risultati direttamente in un bucket Google Cloud Storage.
Trascrivere file audio lunghi utilizzando un file Google Cloud Storage
Questi esempi utilizzano un
bucket Cloud Storage
per archiviare l'input audio non elaborato
per il processo di trascrizione a lunga esecuzione. Per un esempio di risposta tipica di un'operazione longrunningrecognize
, consulta la documentazione di riferimento.
Protocollo
Per informazioni dettagliate, consulta l'endpoint API di speech:longrunningrecognize
.
Per eseguire il riconoscimento vocale sincrono, effettua una richiesta POST
e fornisci il
corpo della richiesta appropriato. Di seguito è riportato un esempio di richiesta POST
mediante curl
. L'esempio utilizza Google Cloud CLI per generare un token
di accesso. Per istruzioni sull'installazione di gcloud CLI, consulta la quickstart.
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'config': { 'language_code': 'en-US' }, 'audio':{ 'uri':'gs://cloud-samples-tests/speech/brooklyn.flac' } }" "https://speech.googleapis.com/v1/speech:longrunningrecognize"
Consulta la documentazione di riferimento di RecognitionConfig e RecognitionAudio per ulteriori informazioni sulla configurazione del corpo della richiesta.
Se la richiesta riesce, il server restituisce un codice di stato HTTP 200 OK
e la risposta in formato JSON:
{ "name": "7612202767953098924" }
dove name
è il nome dell'operazione a lunga esecuzione creata per la richiesta.
Attendi il completamento dell'elaborazione. Il tempo di elaborazione varia a seconda
dell'audio sorgente. Nella maggior parte dei casi, la lunghezza
dell'audio sorgente sarà dimezzata.
Puoi ottenere lo stato della tua operazione a lunga esecuzione effettuando una richiesta GET
all'endpoint https://speech.googleapis.com/v1/operations/
. Sostituisci your-operation-name
con il valore name
restituito dalla richiesta longrunningrecognize
.
curl -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ "https://speech.googleapis.com/v1/operations/your-operation-name"
Se la richiesta riesce, il server restituisce un codice di stato HTTP 200 OK
e la risposta in formato JSON:
{ "name": "7612202767953098924", "metadata": { "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeMetadata", "progressPercent": 100, "startTime": "2017-07-20T16:36:55.033650Z", "lastUpdateTime": "2017-07-20T16:37:17.158630Z" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeResponse", "results": [ { "alternatives": [ { "transcript": "how old is the Brooklyn Bridge", "confidence": 0.96096134, } ] }, { "alternatives": [ { ... } ] } ] } }
Se l'operazione non è stata completata, puoi eseguire il polling dell'endpoint
effettuando ripetutamente la richiesta GET
fino a quando la proprietà done
della risposta non sarà true
.
gcloud
Per i dettagli completi, consulta il comando
recognize-long-running
.
Per eseguire il riconoscimento vocale asincrono, utilizza Google Cloud CLI, che fornisce il percorso di un file locale o un URL di Google Cloud Storage.
gcloud ml speech recognize-long-running \ 'gs://cloud-samples-tests/speech/brooklyn.flac' \ --language-code='en-US' --async
Se la richiesta riesce, il server restituisce l'ID dell'operazione a lunga esecuzione in formato JSON.
{ "name": OPERATION_ID }
Puoi quindi ottenere informazioni sull'operazione eseguendo questo comando.
gcloud ml speech operations describe OPERATION_ID
Puoi anche eseguire il polling dell'operazione fino al completamento eseguendo questo comando.
gcloud ml speech operations wait OPERATION_ID
Al termine dell'operazione, l'operazione restituisce una trascrizione dell'audio in formato JSON.
{ "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeResponse", "results": [ { "alternatives": [ { "confidence": 0.9840146, "transcript": "how old is the Brooklyn Bridge" } ] } ] }
Go
Per scoprire come installare e utilizzare la libreria client per Speech-to-Text, vedi Librerie client di Speech-to-Text. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Go di Speech-to-Text.
Per eseguire l'autenticazione a Speech-to-Text, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per Speech-to-Text, vedi Librerie client di Speech-to-Text. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di Speech-to-Text.
Per eseguire l'autenticazione a Speech-to-Text, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Speech-to-Text, vedi Librerie client di Speech-to-Text. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js di Speech-to-Text.
Per eseguire l'autenticazione a Speech-to-Text, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Speech-to-Text, vedi Librerie client di Speech-to-Text. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python di Speech-to-Text.
Per eseguire l'autenticazione a Speech-to-Text, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Linguaggi aggiuntivi
C#: segui le istruzioni per la configurazione di C# nella pagina delle librerie client e poi consulta la documentazione di riferimento di Speech-to-Text per .NET.
PHP: segui le istruzioni per la configurazione di PHP nella pagina delle librerie client e poi consulta la documentazione di riferimento di Speech-to-Text per PHP.
Ruby: segui le istruzioni per la configurazione di Ruby nella pagina delle librerie client e visita la documentazione di riferimento di Speech-to-Text per Ruby.
Carica i risultati della trascrizione in un bucket Cloud Storage
Speech-to-Text supporta il caricamento dei risultati del riconoscimento a lunga esecuzione direttamente in un bucket Cloud Storage. Se implementi questa funzionalità con i trigger di Cloud Storage, i caricamenti di Cloud Storage possono attivare notifiche che chiamano Cloud Functions e rimuovere la necessità di eseguire il polling di Speech-to-Text per i risultati del riconoscimento.
Per fare in modo che i risultati vengano caricati in un bucket Cloud Storage, fornisci la configurazione facoltativa dell'output TranscriptOutputConfig
nella richiesta di riconoscimento a lunga esecuzione.
message TranscriptOutputConfig {
oneof output_type {
// Specifies a Cloud Storage URI for the recognition results. Must be
// specified in the format: `gs://bucket_name/object_name`
string gcs_uri = 1;
}
}
Protocollo
Per i dettagli completi, consulta
l'endpoint API di longrunningrecognize
.
L'esempio seguente mostra come inviare una richiesta POST
utilizzando curl
,
in cui il corpo della richiesta specifica il percorso di un bucket Cloud Storage. I risultati vengono caricati in questa posizione come file JSON
in cui vengono archiviati
SpeechRecognitionResult
.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'config': {...}, 'output_config': { 'gcs_uri':'gs://bucket/result-output-path.json' }, 'audio': { 'uri': 'gs://bucket/audio-path' } }" "https://speech.googleapis.com/v1p1beta1/speech:longrunningrecognize"
LongRunningRecognizeResponse
include il percorso del bucket Cloud Storage in cui è stato tentato il caricamento. Se
il caricamento non è riuscito, verrà restituito un errore di output. Se esiste già un file con lo stesso nome, il caricamento scrive i risultati in un nuovo file con un timestamp come suffisso.
{ ... "metadata": { ... "outputConfig": {...} }, ... "response": { ... "results": [...], "outputConfig": { "gcs_uri":"gs://bucket/result-output-path" }, "outputError": {...} } }
Provalo
Se non hai mai utilizzato Google Cloud, crea un account per valutare le prestazioni di Speech-to-Text in scenari reali. I nuovi clienti ricevono anche 300 $ di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
Prova Speech-to-Text gratuitamente