Práticas recomendadas para fornecer dados à API Speech-to-Text

Este documento contém recomendações sobre como fornecer dados de fala para a API Speech-to-Text. Essas diretrizes foram criadas para aumentar a eficiência e a precisão, bem como os tempos de resposta razoáveis do serviço. O uso da Speech-to-Text API é melhor quando os dados enviados ao serviço estão dentro dos parâmetros descritos neste documento.

Se você seguir estas diretrizes e não conseguir os resultados que espera da API, consulte Solução de problemas e suporte.

Para os melhores resultados... Se possível, evite...
Capture o áudio com uma taxa de amostra de 16.000 Hz ou superior. Baixas taxas de amostra podem reduzir a precisão. No entanto, evite a repetição da coleta de amostras. Por exemplo, na telefonia, a taxa nativa geralmente é 8.000 Hz, que é a taxa que precisa ser enviada ao serviço.
Use um codec sem perdas para gravar e transmitir áudio. É recomendado FLAC ou LINEAR16. Usar mp3, mp4, m4a, mu-law, a-law ou outros codecs com perdas durante a gravação ou transmissão pode reduzir a precisão. Se o áudio já estiver em uma codificação não compatível com a API, transcodifique-a para FLAC ou LINEAR16 sem perda. Se o aplicativo precisar usar um codec com perdas para economizar largura de banda, recomendamos os codecs AMR_WB, OGG_OPUS ou SPEEX_WITH_HEADER_BYTE, nessa ordem.
O reconhecedor foi projetado para ignorar ruídos e vozes de fundo sem cancelamento de ruído complementar. No entanto, para resultados ideais, posicione o microfone o mais próximo possível do usuário, particularmente quando houver ruído de fundo. Ruído de fundo excessivo e ecos podem reduzir a precisão, especialmente se um codec com perdas também é usado.
Se você está capturando áudio de mais de uma pessoa e cada pessoa é gravada em um canal separado, envie cada canal separadamente para receber os melhores resultados de reconhecimento. No entanto, se todos os alto-falantes estiverem misturados em uma gravação em um único canal, envie a gravação como ela está. Muitas pessoas que falam ao mesmo tempo ou em volumes diferentes podem ser interpretadas como ruído de fundo e ignoradas.
Use dicas de palavras e frases para adicionar nomes e termos ao vocabulário e aumentar a precisão de palavras e frases específicas. O reconhecedor tem um vocabulário muito grande. No entanto, os termos e nomes próprios fora do vocabulário não serão reconhecidos.
Para consultas ou comandos curtas, use StreamingRecognize com single_utterance definido como verdadeiro. Isso otimiza o reconhecimento de enunciados curtos e também minimiza a latência. Usar Recognize ou LongRunningRecognize para usos de consultas ou comandos curtos.

Taxa de amostra

Se possível, ajuste a taxa de amostra da fonte de áudio para 16.000 Hz. Caso contrário, defina o sample_rate_hertz para que corresponda à taxa de amostra nativa da fonte de áudio em vez de fazer uma nova amostra.

Tamanho do frame

O reconhecimento de streaming detecta áudio ao vivo porque ele é capturado de um microfone ou de outra fonte de áudio. O stream de áudio é dividido em frames e enviado em mensagens StreamingRecognizeRequest consecutivas. Qualquer tamanho de frame é aceitável. Os frames maiores são mais eficientes, mas aumentam a latência. Um frame com tamanho de 100 milissegundos é recomendado como um bom equilíbrio entre latência e eficiência.

Pré-processamento de áudio

É melhor fornecer áudio que seja o mais limpo possível, usando um microfone de boa qualidade e bem posicionado. No entanto, aplicar ao áudio um processamento de sinal de redução de ruídos antes de enviá-lo ao serviço geralmente reduz a precisão do reconhecimento. O serviço foi projetado para lidar com áudios com ruídos.

Para conseguir os melhores resultados:

  • posicione o microfone o mais próximo possível da pessoa que está falando, especialmente quando houver ruído de fundo;
  • evite recortar o áudio;
  • não use controle de ganho automático (AGC);
  • todo o processamento de redução de ruído deve ser desativado;
  • ouça algumas amostras do áudio. Ele precisa soar claro, sem distorção ou ruído inesperado.

Configuração das solicitações

Certifique-se de descrever com precisão os dados de áudio enviados com sua solicitação para a API Speech-to-Text. Garantir que o RecognitionConfig da solicitação descreva sampleRateHertz, encoding e languageCode corretamente faz com que a transcrição e o faturamento sejam mais precisos.