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

Este documento contém recomendações sobre como fornecer dados de voz à API Speech-to-Text. Estas diretrizes foram concebidas para uma maior eficiência e precisão, bem como tempos de resposta razoáveis do serviço. A utilização da API Speech-to-Text funciona melhor quando os dados enviados para o serviço estão dentro dos parâmetros descritos neste documento.

Se seguir estas diretrizes e não obtiver os resultados esperados da API, consulte a secção Resolução de problemas e apoio técnico.

Para resultados ideais… Se possível, evite…
Capturar áudio com uma taxa de amostragem de 16 000 Hz ou superior. As taxas de amostragem mais baixas podem reduzir a precisão. No entanto, evite a nova amostragem. Por exemplo, na telefonia, a taxa nativa é normalmente de 8000 Hz, que é a taxa que deve ser enviada para o serviço.
Usar um codec sem perdas para gravar e transmitir áudio. Recomendamos FLAC ou LINEAR16. A utilização de mp3, mp4, m4a, mu-law, a-law ou outros codecs com perdas durante a gravação ou a transmissão pode reduzir a precisão. Se o áudio já estiver numa codificação não suportada pela API, transcodifique-o para FLAC sem perdas ou LINEAR16. Se a sua aplicação tiver de usar um codec com perdas para conservar a largura de banda, recomendamos os codecs AMR_WB, OGG_OPUS ou SPEEX_WITH_HEADER_BYTE, por esta ordem de preferência.
O reconhecedor foi concebido para ignorar vozes e ruídos de fundo sem supressão de ruído adicional. No entanto, para obter resultados ideais, posicione o microfone o mais próximo possível do utilizador, especialmente quando houver ruído de fundo. O ruído de fundo excessivo e os ecos podem reduzir a precisão, especialmente se também for usado um codec com perdas.
Se estiver a captar áudio de mais do que uma pessoa e cada pessoa for gravada num canal separado, envie cada canal separadamente para obter os melhores resultados de reconhecimento. No entanto, se todos os oradores estiverem misturados numa gravação de canal único, envie a gravação tal como está. Várias pessoas a falar ao mesmo tempo ou com volumes diferentes podem ser interpretadas como ruído de fundo e ignoradas.
Use sugestões de palavras e expressões para adicionar nomes e termos ao vocabulário e aumentar a precisão de palavras e expressões específicas. O identificador tem um vocabulário muito grande. No entanto, os termos e os nomes próprios que não fazem parte do vocabulário não são reconhecidos.
Para consultas ou comandos curtos, use StreamingRecognize com single_utterance definido como verdadeiro. Isto otimiza o reconhecimento de expressões curtas e também minimiza a latência. Usar Recognize ou LongRunningRecognize para utilizações de comandos ou consultas curtas.

Taxa de amostragem

Se possível, defina a taxa de amostragem da fonte de áudio para 16 000 Hz. Caso contrário, defina o parâmetro sample_rate_hertz para corresponder à taxa de amostragem nativa da fonte de áudio (em vez de voltar a fazer a amostragem).

Tamanho do frame

O reconhecimento de streaming reconhece o áudio em direto à medida que é captado por um microfone ou outra fonte de áudio. A stream de áudio é dividida em frames e enviada em mensagens StreamingRecognizeRequest consecutivas. Qualquer tamanho de frame é aceitável. Os frames maiores são mais eficientes, mas adicionam latência. Recomendamos um tamanho de frame de 100 milissegundos como um bom compromisso entre a latência e a eficiência.

Pré-processamento de áudio

É melhor fornecer áudio o mais limpo possível usando um microfone de boa qualidade e bem posicionado. No entanto, a aplicação do processamento de sinais de redução de ruído ao áudio antes de o enviar para o serviço reduz normalmente a precisão do reconhecimento. O serviço foi concebido para processar áudio com ruído.

Para ter os melhores resultados:

  • Posicione o microfone o mais próximo possível da pessoa que está a falar, especialmente quando houver ruído de fundo.
  • Evite o recorte de áudio.
  • Não use o controlo automático de ganho (AGC).
  • Todo o processamento de redução de ruído deve estar desativado.
  • Ouça algumas amostras de áudio. Deve ser claro, sem distorção nem ruído inesperado.

Pedir configuração

Certifique-se de que descreve com precisão os dados de áudio enviados com o seu pedido para a API Speech-to-Text. Garantir que o RecognitionConfig do seu pedido descreve o sampleRateHertz, o encoding e o languageCode corretos resulta na transcrição e faturação mais precisas para o seu pedido.