Questa pagina descrive come ottenere valori di offset temporale per l'audio trascritto da Speech-to-Text.
Speech-to-Text può includere valori di offset temporale (timestamp) nel testo della 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 trascorso dall'inizio dell'audio, in incrementi di 100 ms.
Gli scarti temporali sono particolarmente utili per analizzare file audio più lunghi, in cui potresti dover cercare una parola specifica nel testo riconosciuto e individuarla (cercarla) nell'audio originale. Speech-to-Text supporta gli scarti 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 del riconoscimento.
Per includere gli scarti temporali nei risultati della richiesta, imposta il parametro enableWordTimeOffsets
su true
nella configurazione della richiesta.
Protocollo
Per informazioni dettagliate, fai riferimento all'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
che utilizza 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', 'enableWordTimeOffsets': true }, 'audio':{ 'uri':'gs://gcs-test-data/vr.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 ha esito positivo, il server restituisce un codice di stato HTTP 200 OK
e la risposta in formato JSON. Se l'operazione è incompleta (ancora in fase di 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
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 ha esito positivo, 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 ripetutamente
effettuando la richiesta GET
finché la proprietà done
della risposta non sarà 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 ha esito positivo, 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 il comando seguente.
gcloud ml speech operations wait OPERATION_ID
Al termine, 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", "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 pagina relativa alle librerie client di Speech-to-Text. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Speech-to-Text Go.
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, consulta la pagina relativa alle librerie client di Speech-to-Text. Per maggiori 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 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 la pagina relativa alle librerie client di Speech-to-Text. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Speech-to-Text Node.js.
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, consulta la pagina relativa alle librerie client di Speech-to-Text. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Speech-to-Text Python.
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 di 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 dei file 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 consulta la documentazione di riferimento di Speech-to-Text per Ruby.