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 temporale (timestamp) nel testo di risposta per la richiesta di riconoscimento. I valori di offset temporale mostrano l'inizio e la fine di ogni parola pronunciata riconosciuta nell'audio fornito. Un valore di offset temporale rappresenta la quantità di tempo trascorsa dall'inizio dell'audio, in incrementi di 100 ms.
Gli offset temporali sono particolarmente utili per analizzare file audio più lunghi, in cui
potresti dover cercare una parola specifica nel testo riconosciuto e
trovarla (cercarla) nell'audio originale. Speech-to-Text
supporta gli offset temporali per tutti i metodi di riconoscimento vocale:
speech:recognize
,
speech:longrunningrecognize
e streaming.
I valori di offset temporale vengono inclusi solo per la prima alternativa fornita nella risposta di riconoscimento.
Per includere gli offset temporali 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 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 name
ricevuto 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": "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 effettuando ripetutamente
la richiesta GET
finché la proprietà done
della risposta non è true
.
gcloud
Per informazioni complete, 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 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 a lunga esecuzione 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 finché non viene completata eseguendo questo 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 la sezione Librerie client di Speech-to-Text. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Speech-to-Text per Go.
Per autenticarti in Speech-to-Text, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per Speech-to-Text, consulta la sezione Librerie client di Speech-to-Text. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Speech-to-Text per Java.
Per autenticarti in Speech-to-Text, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta 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 la sezione Librerie client di Speech-to-Text. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Speech-to-Text per Node.js.
Per autenticarti in Speech-to-Text, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Speech-to-Text, consulta la sezione Librerie client di Speech-to-Text. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Speech-to-Text per Python.
Per autenticarti in Speech-to-Text, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Linguaggi aggiuntivi
C#: Segui le istruzioni di configurazione di C# nella pagina delle librerie client e poi visita 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 visita la documentazione di riferimento di Speech-to-Text per Ruby.