A Cloud Speech-to-Text é uma API que permite integrar as tecnologias de reconhecimento de fala do Google aos seus aplicativos de desenvolvedor. Este documento apresenta os conceitos do uso da Cloud Speech-to-Text, incluindo os tipos de solicitações possíveis, como estruturá-las e como processar as respostas retornadas pelo serviço. Antes de utilizar a API, leia este guia e um dos tutoriais associados.
Solicitações de reconhecimento da Cloud Speech-to-Text
A Cloud Speech-to-Text (STT) tem três métodos principais para realizar o reconhecimento de fala. Os seguintes métodos estão disponíveis:
O reconhecimento síncrono (REST e gRPC) envia dados de áudio para a API Cloud Speech-to-Text, executa o reconhecimento nesses dados e retorna os resultados depois que todo o áudio foi processado. As solicitações de reconhecimento síncrono processam dados de áudio de um minuto ou menos.
O reconhecimento assíncrono (REST e gRPC) envia os dados de áudio para a API Cloud Speech-to-Text e inicia uma operação de longa duração. Com essa operação, é possível pesquisar periodicamente resultados de reconhecimento. Use solicitações assíncronas para dados de áudio de qualquer duração de até 480 minutos.
O reconhecimento em streaming (somente gRPC) realiza reconhecimento em dados de áudio fornecidos em um fluxo gRPC bidirecional. As solicitações de streaming são projetadas para fins de reconhecimento em tempo real, como captura de áudio ao vivo de um microfone. O reconhecimento em streaming oferece resultados provisórios enquanto o áudio está sendo capturado, por exemplo, enquanto um usuário ainda está falando.
As solicitações contêm parâmetros de configuração, bem como dados de áudio. As solicitações de reconhecimento podem opcionalmente conter um reconhecedor, uma configuração de reconhecimento armazenada e reutilizável.
Metadados de áudio
Para a maioria dos arquivos de áudio, a API Cloud Speech-to-Text pode deduzir automaticamente os metadados. A Cloud STT analisa o cabeçalho do arquivo e o decodifica de acordo com essas informações. Consulte a página Codificação para saber quais tipos de arquivos são compatíveis.
Para arquivos de áudio sem cabeçalho, a API Cloud Speech-to-Text permite especificar os metadados explicitamente ao configurar o reconhecimento. Consulte a página de codificação para mais detalhes.
Se possível ao codificar o material de fonte, capture o áudio usando uma taxa de amostragem de 16.000 Hz. Valores inferiores a esse podem prejudicar a acurácia do reconhecimento de fala, e níveis mais altos não têm efeito prático na qualidade do reconhecimento.
No entanto, se os dados de áudio já foram gravados a uma taxa de amostragem diferente de 16.000 Hz, não faça nova amostragem para 16.000 Hz. Por exemplo, a maioria dos áudios de telefonia legados usa taxas de amostragem de 8.000 Hz, o que pode gerar resultados menos precisos. Se você precisa usar esse áudio, envie-o à API Cloud Speech-to-Text com a taxa de amostragem original.
Idiomas
O mecanismo de reconhecimento da Cloud STT é compatível com vários idiomas e dialetos. Você especifica o idioma (e o dialeto nacional ou regional) do áudio no campo languageCode da configuração da solicitação usando um identificador BCP-47.
Uma lista completa de idiomas compatíveis para cada recurso está disponível na página Idiomas compatíveis.
Recursos de reconhecimento
A API Cloud Speech-to-Text tem outros recursos de reconhecimento, como pontuação automática e nível de confiança por palavra. Você ativa esses recursos na configuração de reconhecimento nas solicitações. Consulte o exemplo de código nos links fornecidos e a página de idiomas para ver a disponibilidade de recursos.
Seleção de modelos
A Cloud STT pode usar um dos vários modelos de machine learning para transcrever seu arquivo de áudio. O Google treinou esses modelos de reconhecimento de fala para origens e tipos de áudio específicos. Consulte a documentação sobre seleção de modelos para saber mais sobre os modelos disponíveis e como selecionar um nas suas solicitações.
Conteúdo de áudio incorporado
Para incluir áudio incorporado na solicitação de reconhecimento de fala, transmita um parâmetro content no campo audio_source. O áudio incorporado enviado como conteúdo em uma solicitação gRPC precisa ser fornecido como dados binários e compatível com a serialização Proto3. O áudio incorporado em uma solicitação REST precisa ser compatível com a serialização JSON e codificado primeiro em Base64. Leia Como codificar áudios em Base64 para mais informações.
Ao criar uma solicitação usando uma biblioteca de cliente do Google Cloud, você geralmente grava esses dados binários (ou codificados em Base64) diretamente no campo content.
Transmitir o áudio referenciado por um URI
Normalmente, o parâmetro uri é enviado no campo audio_source da solicitação da API Cloud Speech-to-Text, apontando para um arquivo de áudio (em formato binário, não Base64) localizado no Cloud Storage com o seguinte formato:
gs://bucket-name/path/to/audio/file
A Speech-to-Text usa uma conta de serviço para acessar os arquivos no Cloud Storage. Por padrão, a conta de serviço tem acesso aos arquivos do Cloud Storage no mesmo projeto.
O endereço de e-mail da conta de serviço é:
service-PROJECT_NUMBER@gcp-sa-speech.iam.gserviceaccount.com
Para transcrever arquivos do Cloud Storage em outro projeto, conceda a essa conta de serviço o papel [Agente de serviço da Speech-to-Text][speech-service-agent] nesse outro projeto:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-speech.iam.gserviceaccount.com \
--role=roles/speech.serviceAgentVeja mais informações sobre a política de IAM de projetos em [Gerenciar acesso a projetos, pastas e organizações][manage-access].
Também é possível atribuir à conta de serviço um acesso mais granular, concedendo permissão para um bucket específico do Cloud Storage:
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
--member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-speech.iam.gserviceaccount.com \
--role=roles/storage.adminSaiba como gerenciar o acesso ao Cloud Storage em [Criar e gerenciar listas de controle de acesso][buckets-manage-acl] na documentação do Cloud Storage.
Respostas da API Cloud Speech-to-Text
Depois que a API Cloud Speech-to-Text processa o áudio, ela retorna os resultados da transcrição em mensagens SpeechRecognitionResult para solicitações síncronas e em lote e em mensagens StreamingRecognitionResult para solicitações de streaming. Em solicitações síncronas e em lote, a resposta RPC contém uma lista de resultados. A lista de áudios reconhecidos aparece em ordem contígua. Para respostas de streaming, todos os resultados marcados como is_final aparecem em ordem contígua.
Selecionar alternativas
Cada resultado em uma resposta de reconhecimento síncrona bem-sucedida pode conter uma ou mais alternatives (se o max_alternatives for maior que 1). Se a Cloud STT determinar que uma alternativa tem um nível de confiança suficiente, ela vai incluir essa alternativa na resposta. A primeira opção na resposta é sempre a melhor alternativa (a mais provável).
Definir max_alternatives com um valor maior do que 1 não implica nem garante que várias alternativas serão retornadas. De modo geral, disponibilizar várias alternativas é mais eficaz para oferecer opções em tempo real aos usuários que recebem resultados de uma solicitação de reconhecimento de streaming.
Como manipular transcrições
Cada alternativa na resposta contém transcript e o texto reconhecido. Quando você receber alternativas sequenciais, concatene essas transcrições.
Níveis de confiança
O valor confidence é uma estimativa entre 0,0 e 1,0. Ele é calculado agregando os valores de “probabilidade” atribuídos a cada palavra no áudio. Um número maior indica uma probabilidade estimada mais alta de que cada palavra foi reconhecida corretamente. Esse campo normalmente é fornecido apenas para a hipótese principal e somente para resultados em que is_final=true. Por exemplo, é possível usar o valor confidence para decidir se devem ser exibidas alternativas de resultado ou se é preciso solicitar uma confirmação.
No entanto, o modelo determina o melhor resultado com base outros indicadores além da pontuação de confidence isoladamente, por exemplo, o contexto da frase.
Por isso, há casos em que o principal resultado não tem o maior índice de confiança. Se você não solicitar várias alternativas de resultado, o único “melhor” resultado retornado poderá apresentar um nível de confiança menor do que o esperado.
Isso pode acontecer, por exemplo, quando palavras raras são usadas. Mesmo quando o sistema reconhece corretamente uma palavra pouco comum, ela ainda pode receber um valor baixo de “probabilidade”. Se o modelo identificar a palavra rara como a opção mais provável com base no contexto, esse resultado será retornado no topo, mesmo que seu valor de confidence seja menor do que o das alternativas.
A seguir
- Use bibliotecas de cliente para transcrever áudios usando sua linguagem de programação favorita.
- Aprenda a transcrever arquivos de áudio curtos.
- Aprenda a transcrever um áudio de streaming.
- Aprenda a transcrever arquivos de áudio longos.