Práticas recomendadas

Este documento contém recomendações sobre como fornecer dados de fala à API Media Translation. 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 API Media Translation funciona melhor quando os dados enviados ao serviço estão dentro dos parâmetros descritos neste documento.

Para os melhores resultados... Se possível, evite...
Capture o áudio com uma taxa de amostra de 16.000 Hz ou superior. Caso contrário, defina sample_rate_hertz para corresponder à taxa de amostragem nativa da fonte de áudio (em vez de repetir a amostragem). Taxas de amostragem mais baixas podem reduzir a precisão do reconhecimento. Assim, a precisão da tradução também será reduzida. 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. O uso de lei mu ou outros codecs com perdas durante a gravação ou transmissão pode reduzir a precisão do reconhecimento. 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 ou OGG_OPUS, nessa ordem.
Use o codec LINEAR16 para ter uma boa latência de resposta de streaming. Outros tipos de codec também podem aumentar a latência da resposta de streaming porque precisam de uma etapa a mais de decodificação. Com o mesmo codec, uma taxa de amostragem maior pode ter uma latência maior.
Posicione o microfone o mais próximo possível do falante, principalmente se houver ruído de fundo. O serviço de reconhecimento foi projetado para ignorar vozes e ruídos de fundo sem cancelamento de ruído adicional. No entanto, o excesso de ruído de fundo e ecos podem reduzir a precisão, especialmente se um codec com perdas também for usado.
Use um modelo aprimorado para conseguir resultados melhores com um áudio de fundo barulhento. Um modelo não aprimorado pode não ter um bom desempenho com um áudio barulhento/com ecos.
Especifique source_language_code usando o código de idioma "language-region", especifique target_language_code usando o código de idioma sem a região (exceto zh-CN e zh-TW). Se "region" não for especificado em source_language_code, será escolhida a região padrão, que pode não corresponder à região da fala, o que reduz a precisão. target_language_code não precisa de região porque a tradução é texto, mas zh-CN e zh-TW serão diferentes em texto.

Enunciado único

Para consultas ou comandos curtas, use StreamingTranslateSpeechConfig com single_utterance definido como verdadeiro. Isso otimiza o reconhecimento de enunciados curtos e também minimiza a latência. Além disso, o serviço interromperá a tradução automaticamente quando houver uma pausa ou longo silêncio. Ao usar o modo "single_utterance", o serviço retornará um END_OF_SINGLE_UTTERANCE como speech_event_type na resposta. O cliente deve parar de enviar solicitações quando receber a resposta END_OF_SINGLE_UTTERANCE e continuar recebendo as demais respostas.

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 StreamingTranslateSpeechRequest 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 de reconhecimento foi projetado para lidar com áudio barulhento.

Para 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

Descreva com precisão os dados de áudio enviados com sua solicitação para a API Media Translation. Se o TradutorSpeechConfig da sua solicitação descrever o sample_rate_hertz, audio_encoding, source_language_code e target_language_code corretos, a transcrição e o faturamento dela serão mais exatos.