Esta página descreve como obter valores de desvio de tempo para áudio transcrito pelo Cloud Speech-to-Text.
O STT do Google Cloud 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 deslocamentos 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. O Cloud STT 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 em 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
sinalização.
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 Cloud STT, consulte as bibliotecas cliente do Cloud STT. Para mais informações, consulte a documentação de referência da API Go Cloud STT.
Para se autenticar no Cloud STT, 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 Cloud STT, consulte as bibliotecas cliente do Cloud STT. Para mais informações, consulte a documentação de referência da API Java Cloud STT.
Para se autenticar no Cloud STT, 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 Cloud STT, consulte as bibliotecas cliente do Cloud STT. Para mais informações, consulte a documentação de referência da API Node.js Cloud STT.
Para se autenticar no Cloud STT, 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 Cloud STT, consulte as bibliotecas cliente do Cloud STT. Para mais informações, consulte a documentação de referência da API Python Cloud STT.
Para se autenticar no Cloud STT, 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 de cliente e, em seguida, visite a documentação de referência do Cloud STT 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 STT do Google Cloud para PHP.
Ruby: Siga as instruções de configuração do Ruby na página das bibliotecas cliente e, de seguida, visite a documentação de referência do Cloud STT para Ruby.