Questa pagina descrive come ottenere i valori di offset temporale per l'audio trascritto da Speech-to-Text.
Speech-to-Text può includere valori di offset di tempo (timestamp) nel testo della risposta per la richiesta di riconoscimento. I valori dell'offset temporale mostrano l'inizio e la fine di ogni parola pronunciata riconosciuta nell'audio fornito. Un valore di offset temporale rappresenta il tempo trascorso dall'inizio dell'audio, in incrementi di 100 ms.
Gli offset di tempo sono particolarmente utili per analizzare file audio più lunghi, in cui potresti dover cercare una determinata parola nel testo riconosciuto e trovarla (eseguire la ricerca) nell'audio originale. Speech-to-Text supporta gli offset di tempo per tutti i metodi di riconoscimento vocale: speech:recognize
, speech:longrunningrecognize
e Streaming.
I valori dell'offset di tempo sono inclusi solo per la prima alternativa fornita nella risposta al riconoscimento.
Per includere gli offset di tempo nei risultati della richiesta, imposta il parametro enableWordTimeOffsets
su true
nella configurazione della richiesta.
Protocollo
Per informazioni dettagliate, consulta l'endpoint API 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 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', 'enableWordTimeOffsets': true }, 'audio':{ 'uri':'gs://gcs-test-data/vr.flac' } }" "https://speech.googleapis.com/v1/speech:longrunningrecognize"
Per ulteriori informazioni sulla configurazione del corpo della richiesta, consulta la documentazione di riferimento di RecognitionConfig e RecognitionAudio.
Se la richiesta riesce, il server restituisce un codice di stato HTTP 200 OK
e la risposta in formato JSON. Se l'operazione è incompleta (è ancora in corso l'elaborazione),
la risposta sarà simile alla seguente:
{ "name": "2885768779530032514", "metadata": { "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeMetadata", "progressPercent": 97, "startTime": "2020-12-14T03:11:54.492593Z", "lastUpdateTime": "2020-12-14T03:15:57.484509Z", "uri": "gs://{BUCKET_NAME}/{FILE_NAME}" } }
Al termine del processo, l'output sarà simile al seguente:
{ "name": "7612202767953098924" }
dove name
è il nome dell'operazione a lunga esecuzione creata per la richiesta.
L'elaborazione del file vr.flac
richiede circa 30 secondi. Per recuperare il risultato dell'operazione, invia una richiesta GET
all'endpoint https://speech.googleapis.com/v1/operations/
. Sostituisci
your-operation-name
con il valore name
ricevuto dalla
longrunningrecognize
richiesta.
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": "okay so what am I doing here...(etc)...", "confidence": 0.96596134, "words": [ { "startTime": "1.400s", "endTime": "1.800s", "word": "okay" }, { "startTime": "1.800s", "endTime": "2.300s", "word": "so" }, { "startTime": "2.300s", "endTime": "2.400s", "word": "what" }, { "startTime": "2.400s", "endTime": "2.600s", "word": "am" }, { "startTime": "2.600s", "endTime": "2.600s", "word": "I" }, { "startTime": "2.600s", "endTime": "2.700s", "word": "doing" }, { "startTime": "2.700s", "endTime": "3s", "word": "here" }, { "startTime": "3s", "endTime": "3.300s", "word": "why" }, { "startTime": "3.300s", "endTime": "3.400s", "word": "am" }, { "startTime": "3.400s", "endTime": "3.500s", "word": "I" }, { "startTime": "3.500s", "endTime": "3.500s", "word": "here" }, ... ] } ] }, { "alternatives": [ { "transcript": "so so what am I doing here...(etc)...", "confidence": 0.9642093, } ] } ] } }
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
Per informazioni dettagliate, consulta il comando
recognize-long-running
.
Per eseguire il riconoscimento vocale asincrono, utilizza Google Cloud CLI, fornendo il percorso di un file locale o un URL di Google Cloud Storage. Includi il flag --include-word-time-offsets
.
gcloud ml speech recognize-long-running \ 'gs://cloud-samples-tests/speech/brooklyn.flac' \ --language-code='en-US' --include-word-time-offsets --async
Se la richiesta riesce, il server restituisce l'ID dell'operazione di lunga durata in formato JSON.
{ "name": OPERATION_ID }
Puoi quindi ottenere informazioni sull'operazione eseguendo il comando seguente.
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", "words": [ { "endTime": "0.300s", "startTime": "0s", "word": "how" }, { "endTime": "0.600s", "startTime": "0.300s", "word": "old" }, { "endTime": "0.800s", "startTime": "0.600s", "word": "is" }, { "endTime": "0.900s", "startTime": "0.800s", "word": "the" }, { "endTime": "1.100s", "startTime": "0.900s", "word": "Brooklyn" }, { "endTime": "1.500s", "startTime": "1.100s", "word": "Bridge" } ] } ] } ] }
Go
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 Go.
Per autenticarti 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, consulta Librerie client di Speech-to-Text. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Speech-to-Text Java.
Per autenticarti 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, 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 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, 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 maggiori informazioni, consulta Configurare 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.