Nesta página, veja como transcrever arquivos de áudio longos (com mais de um minuto) usando o reconhecimento de fala assíncrono.
O reconhecimento de fala assíncrono inicia uma operação de processamento de áudio de longa duração. Use o reconhecimento de fala assíncrono para áudios com mais de um minuto. Para áudios mais curtos, o reconhecimento de fala síncrono é mais rápido e mais simples.
É possível recuperar os resultados da operação usando o método google.longrunning.Operations. Os resultados permanecem disponíveis para recuperação por 5 dias (120 horas). O conteúdo de áudio pode ser enviado diretamente para o Speech-to-Text de um arquivo local, ou a API pode processar o conteúdo de áudio armazenado em { storage_name }. Os arquivos de áudio com mais de um minuto precisam ser armazenados em um bucket do Cloud Storage para serem transcritos pelo Speech-to-Text. Executar o reconhecimento de fala assíncrono em um arquivo local com mais de um minuto resultará em um erro ou uma transcrição incompleta.
Transcrição de arquivos de áudio longos usando um arquivo do Google Cloud Storage
Essas amostras usam um bucket do Cloud Storage para armazenar a entrada de áudio bruta para o processo de transcrição de longa duração. Para um exemplo de uma
resposta de operação longrunningrecognize
típica, consulte a
documentação
Princípios básicos do Speech-to-Text.
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
. Nele, é usado o token de acesso de uma conta de serviço configurada para o projeto usando o SDK do Cloud do Google Cloud. Consulte o guia de início rápido para ver instruções de como instalar o SDK do Cloud, configurar um projeto com uma conta de serviço e conseguir um token de acesso.
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' }, '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:
{ "name": "7612202767953098924" }
onde name
é o nome da operação de longa execução criada para a solicitação.
Aguarde o processamento ser concluído. O tempo de processamento varia de acordo com o
áudio da fonte. Na maioria dos casos, você terá resultados com metade
do comprimento do áudio de origem.
Você pode ver o status de sua operação de longa execução fazendo uma solicitação GET
para o endpoint
https://speech.googleapis.com/v1/operations/
. Substitua your-operation-name
pelo name
retornado da sua solicitação longrunningrecognize
. Você pode ver o progresso estimado
da solicitação no
campo
progressPercent
.
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 a solicitação for bem-sucedida, o servidor retornará 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.96096134, } ] }, { "alternatives": [ { ... } ] } ] } }
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 voz assíncrono, use a ferramenta de linha de comando gcloud
,
fornecendo o caminho de um arquivo local ou um
URL do Google Cloud Storage.
gcloud ml speech recognize-long-running \ 'gs://cloud-samples-tests/speech/brooklyn.flac' \ --language-code='en-US' --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" } ] } ] }
C#
Go
Java
Node.js
PHP
Python
Ruby
Como transcrever arquivos de áudio longos usando um arquivo local
Essas amostras usam um arquivo local para armazenar a entrada de áudio bruta para o processo de transcrição de longa duração. Para um exemplo de uma
resposta de operação longrunningrecognize
típica, consulte a
documentação
Princípios básicos do Speech-to-Text.
C#
Go
Java
Node.js
PHP
Python
Ruby