Questa pagina mostra come trascrivere in testo file audio lunghi (più di 1 minuto) 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. Utilizza il riconoscimento vocale asincrono per trascrivere l'audio più di 60 secondi. Per audio più brevi, il riconoscimento vocale sincrono è più rapido e semplice. Il limite massimo per il riconoscimento vocale asincrono è 480 minuti.
Speech-to-Text ed elaborazione asincrona
I contenuti audio possono essere inviati direttamente a Speech-to-Text da un file locale per l'elaborazione asincrona. Tuttavia, il limite di tempo audio per i file locali è di 60 secondi. Il tentativo di trascrivere file audio locali più lunghi di 60 secondi causerà un errore. Per utilizzare il riconoscimento vocale asincrono più di 60 secondi, devi aver salvato i dati in una Bucket Google Cloud Storage.
Puoi recuperare i risultati dell'operazione utilizzando google.longrunning.Operations. I risultati rimangono disponibili per il recupero per 5 giorni (120 ore). Hai anche la possibilità di 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 memorizzare l'input audio RAW
per il processo di trascrizione a lunga durata. Per un esempio di un tipico
Risposta dell'operazione longrunningrecognize
, consulta le
documentazione di riferimento.
Protocollo
Per informazioni complete, consulta l'endpoint API speech:longrunningrecognize
i dettagli.
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
che utilizza
curl
. L'esempio utilizza Google Cloud CLI per generare un
token di accesso. Per istruzioni sull'installazione di gcloud CLI, consulta la guida rapida.
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 RecognitionConfig e RecognitionAudio documentazione di riferimento 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 in base al
sorgente audio. Nella maggior parte dei casi, i risultati
la durata dell'audio di origine.
Puoi ottenere lo stato di un'operazione a lunga esecuzione effettuando un GET
richiesta al https://speech.googleapis.com/v1/operations/
endpoint. Sostituisci your-operation-name
con name
restituito dalla tua 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 inviando ripetutamente la richiesta GET
finché la proprietà done
della risposta non è true
.
gcloud
Consulta le
recognize-long-running
per avere informazioni dettagliate.
Per eseguire il riconoscimento vocale asincrono, utilizza Google Cloud CLI, il percorso di un file locale o di 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 del modello in formato JSON.
{ "name": OPERATION_ID }
Puoi quindi ottenere informazioni sull'operazione eseguendo il seguente comando.
gcloud ml speech operations describe OPERATION_ID
Puoi anche eseguire il polling dell'operazione fino al completamento eseguendo il seguente comando.
gcloud ml speech operations wait OPERATION_ID
Al termine dell'operazione, viene restituita 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 Speech-to-Text Go.
Per autenticarti a Speech-to-Text, configura le credenziali predefinite dell'applicazione. Per ulteriori 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, consulta Librerie client di Speech-to-Text. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Speech-to-Text Java.
Per eseguire l'autenticazione a Speech-to-Text, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Speech-to-Text, consulta Librerie client di Speech-to-Text. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Speech-to-Text Node.js.
Per autenticarti a Speech-to-Text, configura le credenziali predefinite dell'applicazione. Per ulteriori 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, consulta Librerie client di Speech-to-Text. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Speech-to-Text Python.
Per autenticarti a Speech-to-Text, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Linguaggi aggiuntivi
C#: segui le istruzioni di configurazione per C# riportate nella pagina delle librerie client e consulta la documentazione di riferimento di Speech-to-Text per .NET.
PHP: segui le istruzioni di 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 di configurazione di Ruby nella pagina delle librerie client e poi consulta 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 gli attivatori Cloud Storage, i caricamenti di Cloud Storage possono attivare notifiche che richiamano Cloud Functions e non è più necessario eseguire il polling di Speech-to-Text per i risultati di riconoscimento.
Per fare in modo che i risultati vengano caricati in un bucket Cloud Storage, fornisci
facoltativo TranscriptOutputConfig
configurazione dell'output 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 informazioni dettagliate, consulta l'endpoint dell'API longrunningrecognize
.
L'esempio seguente mostra come inviare una richiesta POST
utilizzando curl
,
in cui il corpo della richiesta specifica il percorso di un
di sincronizzare la directory di una VM
con un bucket. I risultati vengono caricati in questa posizione come file JSON
che archivia
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 è andato a buon fine, verrà restituito un errore di output. Se un file con
lo stesso nome esiste già, il caricamento scrive i risultati in un nuovo file con
come suffisso.
{ ... "metadata": { ... "outputConfig": {...} }, ... "response": { ... "results": [...], "outputConfig": { "gcs_uri":"gs://bucket/result-output-path" }, "outputError": {...} } }
Provalo
Se non conosci 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