Nesta página, você aprende a receber valores de ajuste de tempo para áudios transcritos pela Cloud Speech-to-Text.
A Cloud STT pode incluir valores de ajuste de tempo (carimbo de data/hora) no texto de resposta da 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 Cloud STT
permite o uso de 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á parecida com esta:
{
"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 saber como instalar e usar a biblioteca de cliente da Cloud STT, consulte Bibliotecas de cliente da Cloud STT. Saiba mais na documentação de referência da API Cloud STT para Go.
Para se autenticar na Cloud STT, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente da Cloud STT, consulte Bibliotecas de cliente da Cloud STT. Saiba mais na documentação de referência da API Cloud STT para Java.
Para se autenticar na Cloud STT, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente da Cloud STT, consulte Bibliotecas de cliente da Cloud STT. Saiba mais na documentação de referência da API Cloud STT para Node.js.
Para se autenticar na Cloud STT, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente da Cloud STT, consulte Bibliotecas de cliente da Cloud STT. Saiba mais na documentação de referência da API Cloud STT para Python.
Para se autenticar na Cloud STT, 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 Cloud STT 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 Cloud STT para PHP.
Ruby: siga as instruções de configuração de Ruby na página das bibliotecas de cliente e acesse a documentação de referência da Cloud STT para Ruby.