Nesta página, veja como transcrever arquivos de áudio longos (com mais de 1 minuto) usando a API Cloud Speech-to-Text e o reconhecimento de fala assíncrono.
Sobre 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 transcrever áudios com mais de 60 segundos. Para áudios mais curtos, o reconhecimento de fala síncrono é mais rápido e mais simples. O limite máximo para o reconhecimento de fala assíncrono é de 480 minutos.
Cloud Speech-to-Text e processamento assíncrono
O conteúdo de áudio pode ser enviado diretamente para o Cloud Speech-to-Text a partir de um arquivo local para processamento assíncrono. No entanto, o limite de tempo de áudio para arquivos locais é de 60 segundos. A tentativa de transcrever arquivos de áudio locais com mais de 60 segundos resultará em um erro. Para usar o reconhecimento de fala assíncrono para áudios com mais de 60 segundos, os dados precisam ser salvos em um bucket do Cloud Storage.
É 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). Você também tem a opção de fazer o upload dos resultados diretamente para um bucket do Cloud Storage.
Transcrever arquivos de áudio longos usando um bucket do 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 resposta típica da operação longrunningrecognize, consulte a documentação de referência.
Protocolo
Consulte o endpoint da API speech:longrunningrecognize para 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' }, 'audio':{ 'uri':'gs://cloud-samples-tests/speech/brooklyn.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"
}Em que 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.
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": "how old is the Brooklyn Bridge", "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 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 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 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" } ] } ] }
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. Se quiser 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. Se quiser 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. Se quiser 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. Se quiser 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 acesse a Documentação de referência da Cloud STT para .NET.
PHP: siga as Instruções de configuração do 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 do Ruby na página das bibliotecas de cliente e acesse a Documentação de referência da Cloud STT para Ruby.
Fazer upload dos resultados de transcrição para um bucket do Cloud Storage
A Cloud Speech-to-Text é compatível com o upload direto dos resultados de reconhecimento de longa duração para um bucket do Cloud Storage. Se você implementar esse recurso com gatilhos do Cloud Storage, os uploads do Cloud Storage poderão acionar notificações que chamam o Cloud Functions e eliminam a necessidade de pesquisar resultados da Cloud Speech-to-Text.
Para que os resultados sejam enviados para um bucket do Cloud Storage, forneça a configuração de saída TranscriptOutputConfig opcional na sua solicitação de reconhecimento de longa duração.
message TranscriptOutputConfig {
oneof output_type {
// Specifies a Cloud Storage URI for the recognition results. Must be
// specified in the format: `gs://bucket_name/object_name`
string gcs_uri = 1;
}
}
Protocolo
Consulte o endpoint da API longrunningrecognize
para todos os detalhes.
Veja no exemplo a seguir como enviar uma solicitação POST usando curl,
em que o corpo da solicitação especifica o caminho para um bucket do Cloud
Storage. Os resultados são enviados para esse local como um arquivo JSON que armazena
SpeechRecognitionResult.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'config': {...}, 'output_config': { 'gcs_uri':'gs://bucket/result-output-path.json' }, 'audio': { 'uri': 'gs://bucket/audio-path' } }" "https://speech.googleapis.com/v2/speech:longrunningrecognize"
O LongRunningRecognizeResponse
inclui o caminho para o bucket do Cloud Storage quando houve uma tentativa de fazer upload. Se
o upload não foi bem-sucedido, um erro de resposta será retornado. Se já existir
um arquivo com o mesmo nome, o upload gravará os resultados em um novo arquivo com um
carimbo de data/hora como o sufixo.
{
...
"metadata": {
...
"outputConfig": {...}
},
...
"response": {
...
"results": [...],
"outputConfig": {
"gcs_uri":"gs://bucket/result-output-path"
},
"outputError": {...}
}
}
Faça um teste
Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho da Cloud STT em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
Faça um teste sem custos financeiros da Cloud STT