Esta página descreve como obter valores de deslocamento de tempo para áudio transcrito pelo Speech-to-Text.
A conversão de voz em texto pode incluir valores de desvio de tempo (data/hora) no texto de resposta para o seu pedido de reconhecimento. Os valores de desvio de tempo mostram o início e o fim de cada palavra falada que é reconhecida no áudio fornecido. Um valor de desvio de tempo representa a quantidade de tempo decorrido desde o início do áudio, em incrementos de 100 ms.
Os desvios de tempo são especialmente úteis para analisar ficheiros de áudio mais longos, nos quais pode ter de pesquisar uma palavra específica no texto reconhecido e localizá-la (procurá-la) no áudio original. A conversão de voz em texto
suporta desvios de tempo para todos os métodos de reconhecimento de voz:
speech:recognize
,
speech:longrunningrecognize
e Streaming.
Os valores de desvio de tempo só são incluídos para a primeira alternativa fornecida na resposta de reconhecimento.
Para incluir desvios de tempo nos resultados do seu pedido, defina o parâmetro
enableWordTimeOffsets
como true
na configuração do pedido.
Protocolo
Consulte o ponto final da API speech:longrunningrecognize
para ver os detalhes completos.
Para realizar o reconhecimento de voz síncrono, faça um pedido POST
e forneça o corpo do pedido adequado. O exemplo seguinte mostra um pedido POST
com curl
. O exemplo usa a Google Cloud CLI para gerar um token de acesso. Para ver instruções sobre a instalação da CLI gcloud,
consulte o 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 a documentação de referência RecognitionConfig e RecognitionAudio para obter mais informações sobre a configuração do corpo do pedido.
Se o pedido for bem-sucedido, o servidor devolve um código de estado HTTP 200 OK
e a resposta no formato JSON. Se a operação estiver incompleta (ainda em processamento),
a resposta será semelhante à 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 estiver concluído, o resultado será semelhante ao seguinte:
{ "name": "7612202767953098924" }
em que name
é o nome da operação de longa duração criada para o pedido.
O processamento do ficheiro vr.flac
demora cerca de 30 segundos a concluir. Para obter
o resultado da operação, faça um pedido GET
ao ponto final https://speech.googleapis.com/v1/operations/
. Substitua your-operation-name
pelo name
recebido do seu pedido de 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 o pedido for bem-sucedido, o servidor devolve um código de estado 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 estiver concluída, pode sondar o ponto final fazendo repetidamente o pedido GET
até que a propriedade done
da resposta seja true
.
gcloud
Consulte o comando
recognize-long-running
para ver os detalhes completos.
Para realizar o reconhecimento de voz assíncrono, use a CLI Google Cloud, indicando o caminho de um ficheiro local ou um URL do Google Cloud Storage. Inclua a --include-word-time-offsets
denúncia.
gcloud ml speech recognize-long-running \ 'gs://cloud-samples-tests/speech/brooklyn.flac' \ --language-code='en-US' --include-word-time-offsets --async
Se o pedido for bem-sucedido, o servidor devolve o ID da operação de longa duração no formato JSON.
{ "name": OPERATION_ID }
Em seguida, pode obter informações sobre a operação executando o seguinte comando.
gcloud ml speech operations describe OPERATION_ID
Também pode sondar a operação até que seja concluída executando o seguinte comando.
gcloud ml speech operations wait OPERATION_ID
Após a conclusão da operação, a operação devolve 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 saber como instalar e usar a biblioteca cliente do Speech-to-Text, consulte o artigo Bibliotecas cliente do Speech-to-Text. Para mais informações, consulte a documentação de referência da API Go Speech-to-Text.
Para se autenticar no Speech-to-Text, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca cliente do Speech-to-Text, consulte o artigo Bibliotecas cliente do Speech-to-Text. Para mais informações, consulte a documentação de referência da API Java Speech-to-Text.
Para se autenticar no Speech-to-Text, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca cliente do Speech-to-Text, consulte o artigo Bibliotecas cliente do Speech-to-Text. Para mais informações, consulte a documentação de referência da API Node.js Speech-to-Text.
Para se autenticar no Speech-to-Text, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca cliente do Speech-to-Text, consulte o artigo Bibliotecas cliente do Speech-to-Text. Para mais informações, consulte a documentação de referência da API Python Speech-to-Text.
Para se autenticar no Speech-to-Text, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Idiomas adicionais
C#: Siga as instruções de configuração do C# na página das bibliotecas cliente e, em seguida, visite a documentação de referência do Speech-to-Text para .NET.
PHP: Siga as instruções de configuração do PHP na página das bibliotecas cliente e, em seguida, visite a documentação de referência do Speech-to-Text para PHP.
Ruby: Siga as instruções de configuração do Ruby na página das bibliotecas cliente e, em seguida, visite a documentação de referência do Speech-to-Text para Ruby.