Esta página descreve como obter valores de ajuste de horário para áudio transcrito por Speech-to-Text.
A Speech-to-Text pode incluir valores de ajuste de horário (carimbo de data e hora) no texto de resposta para sua solicitação de reconhecimento. Os valores de ajuste de horário mostram o início e o fim de cada palavra falada que é reconhecida no áudio fornecido. Um valor de ajuste de horário representa a quantidade de tempo decorrido desde o início do áudio, em incrementos de 100 ms.
Os ajustes de horário são especialmente úteis para analisar arquivos de áudio mais longos, quando for necessário pesquisar uma determinada palavra no texto reconhecido e localizá-la (procurar) no áudio original. A Speech-to-Text oferece suporte a ajustes de horário para todos os métodos de reconhecimento de fala: speech:recognize
, speech:longrunningrecognize
e Streaming.
Os valores de ajuste de horário só são incluídos para a primeira alternativa apresentada na resposta de reconhecimento.
Para incluir ajustes de horário 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 ver todos os detalhes.
Para executar o reconhecimento de fala síncrono, faça uma solicitação POST
e forneça o corpo apropriado a ela. Veja a seguir um exemplo de uma solicitação POST
usando curl
. O exemplo usa a CLI do Google Cloud para gerar um token de acesso. Para instruções sobre 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 RecognitionConfig e RecognitionAudio para mais informações sobre 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 a esta:
{ "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 a esta:
{ "name": "7612202767953098924" }
onde name
é o nome da operação de longa execuçã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 sua 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 ver todos os detalhes.
Para realizar o reconhecimento de fala assíncrono, use o Google Cloud CLI, fornecendo
o caminho de um arquivo local ou um
URL do Google Cloud Storage. Inclui a sinalização
--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 retornará o código 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 poderá 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 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 autenticar no 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 autenticar no 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 autenticar no 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 autenticar no Speech-to-Text, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Outras linguagens
C#: Siga as instruções de configuração do C# na página das bibliotecas de cliente e, em seguida, acesse 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 de cliente e, em seguida, 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, em seguida, acesse a documentação de referência do Speech-to-Text para Ruby.