Nesta página, descrevemos como ter acesso aos valores de ajuste de tempo de áudios transcritos pela Speech-to-Text.
A Speech-to-Text pode incluir valores de ajuste de tempo (carimbo de data e hora) no texto de resposta à solicitação de reconhecimento. Os valores de ajuste de tempo mostram o início e o fim de cada palavra falada reconhecida no áudio fornecido. Um valor de ajuste de tempo representa a quantidade de tempo decorrido desde o início do áudio, em incrementos de 100 ms.
Os ajustes de tempo são especialmente úteis para analisar arquivos de áudio mais longos, quando
é necessário pesquisar uma determinada palavra no texto reconhecido e
localizá-la (procurar) no áudio original. A Speech-to-Text
aceita ajustes de tempo para todos os métodos de reconhecimento de fala:
speech:recognize
,
speech:longrunningrecognize
e streaming.
Os valores de ajuste de tempo só são incluídos para a primeira alternativa apresentada na resposta de reconhecimento.
Para incluir ajustes de tempo nos resultados da solicitação, defina o
parâmetro enableWordTimeOffsets
como true
na configuração da solicitação.
Protocolo
Consulte o endpoint da API speech:longrunningrecognize
para conferir todos os detalhes.
Para realizar o reconhecimento de fala síncrono, faça uma solicitação POST
e forneça o
corpo de solicitação apropriado. Confira a seguir um exemplo de uma solicitação POST
que usa
curl
. O exemplo usa a CLI do Google Cloud para gerar um token
de acesso. Para saber como instalar a gcloud CLI,
consulte o guia de início rápido.
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"
Consulte as documentações de referência de RecognitionConfig e RecognitionAudio para saber como configurar o corpo da solicitação.
Quando a solicitação é bem-sucedida, o servidor retorna um código de status HTTP 200 OK
e
a resposta no formato JSON: Se a operação estiver incompleta (ainda em processamento),
a resposta será semelhante ao seguinte:
{ "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}" } }
Quando o processo for concluído, a saída será semelhante ao seguinte:
{ "name": "7612202767953098924" }
em que name
é o nome da operação de longa duração criada para a solicitação.
O processamento do arquivo vr.flac
leva cerca de 30 segundos para ser concluído. Para recuperar
o resultado da operação, faça uma solicitação GET
para
o endpoint https://speech.googleapis.com/v1/operations/
. Substitua
your-operation-name
pelo name
recebido da
solicitação 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"
Quando a solicitação é bem-sucedida, o servidor retorna um código de status HTTP 200 OK
e a resposta no 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 a operação não for concluída, você poderá pesquisar o endpoint repetidamente
fazendo a solicitação GET
até que a propriedade done
da resposta seja true
.
gcloud
Consulte o comando
recognize-long-running
para conferir todos os detalhes.
Para realizar o reconhecimento de fala assíncrono, use a
CLI do Google Cloud, fornecendo
o caminho de um arquivo local ou um
URL do Google Cloud Storage. Inclua a 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 a solicitação for bem-sucedida, o servidor vai retornar o ID da operação de longa duração no formato JSON.
{ "name": OPERATION_ID }
Você poderá receber informações sobre a operação executando o comando a seguir.
gcloud ml speech operations describe OPERATION_ID
Você também pode pesquisar a operação até que ela seja concluída executando o comando a seguir.
gcloud ml speech operations wait OPERATION_ID
Após a conclusão da operação, ela vai retornar uma transcrição do áudio no 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
Para aprender a instalar e usar a biblioteca de cliente da Speech-to-Text, consulte Bibliotecas de cliente da Speech-to-Text. Para mais informações, consulte a documentação de referência da API Speech-to-Text Go.
Para se autenticar na Speech-to-Text, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para aprender a instalar e usar a biblioteca de cliente da Speech-to-Text, consulte Bibliotecas de cliente da Speech-to-Text. Para mais informações, consulte a documentação de referência da API Speech-to-Text Java.
Para se autenticar na Speech-to-Text, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para aprender a instalar e usar a biblioteca de cliente da Speech-to-Text, consulte Bibliotecas de cliente da Speech-to-Text. Para mais informações, consulte a documentação de referência da API Speech-to-Text Node.js.
Para se autenticar na Speech-to-Text, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para aprender a instalar e usar a biblioteca de cliente da Speech-to-Text, consulte Bibliotecas de cliente da Speech-to-Text. Para mais informações, consulte a documentação de referência da API Speech-to-Text Python.
Para se autenticar na Speech-to-Text, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Linguagens adicionais
C#: siga as instruções de configuração de C# na página das bibliotecas de cliente e acesse a documentação de referência da Speech-to-Text para .NET.
PHP: siga as instruções de configuração de PHP na página das bibliotecas de cliente e acesse a documentação de referência da Speech-to-Text para PHP.
Ruby: siga as instruções de configuração do Ruby na página das bibliotecas de cliente e acesse a documentação de referência da Speech-to-Text para Ruby.