Bonnes pratiques

Ce document contient des recommandations sur la manière de fournir des données vocales à l'API Media Translation. Ces instructions visent à améliorer l'efficacité et la précision du service, ainsi qu'à obtenir des temps de réponse raisonnables. L'utilisation de l'API Media Translation est optimale lorsque les données envoyées au service sont conformes aux paramètres décrits dans ce document.

Pour des résultats optimaux… Dans la mesure du possible, évitez…
Enregistrez le contenu audio avec un taux d'échantillonnage de 16 000 Hz ou plus. Sinon, configurez le paramètre sample_rate_hertz sur le taux d'échantillonnage natif de la source audio (au lieu de ré-échantillonner le contenu). Les taux d'échantillonnage inférieurs, qui peuvent réduire la précision de la reconnaissance. Si c'est le cas, la précision de la traduction sera également réduite. Cela étant dit, évitez aussi de ré-échantillonner le contenu audio. Par exemple, le taux natif en téléphonie est généralement de 8 000 Hz, et c'est ce taux qui doit être envoyé au service.
Ayez recours à un codec sans perte tel que FLAC ou LINEAR16 recommandé pour enregistrer et transmettre un contenu audio. Les codecs mu-law ou autres codecs avec perte pendant l'enregistrement ou la transmission, qui peuvent réduire la précision de la reconnaissance. Si l'encodage actuel de votre contenu audio n'est pas compatible avec l'API, transcodez-le vers le codec sans perte FLAC ou LINEAR16. Si votre application doit utiliser un codec avec pertes afin de préserver la bande passante, nous vous recommandons les codecs AMR_WB ou OGG_OPUS, dans cet ordre de préférence.
Utilisez le codec LINEAR16 pour obtenir une bonne latence de réponse de streaming. D'autres types de codec qui peuvent également augmenter la latence de réponse de streaming, car ils nécessitent une étape de décodage supplémentaire. Pour un même codec, un taux d'échantillonnage plus élevé peut avoir une latence plus élevée.
Placez le micro le plus près possible du haut-parleur, notamment en cas de bruits de fond. Le programme de reconnaissance est conçu pour ignorer les voix et bruits de fond, sans suppression supplémentaire de bruit. Cependant, les bruits de fond et échos excessifs peuvent réduire la précision, en particulier si un codec avec pertes est également utilisé.
Utilisez un modèle amélioré pour obtenir de meilleurs résultats avec un contenu audio qui comporte des bruits de fond excessifs. Le modèle non amélioré peut ne pas fonctionner correctement avec les bruits de fond et échos excessifs.
Spécifiez source_language_code à l'aide du code de langue "langue-région" ; spécifiez target_language_code à l'aide du code de langue sans région (sauf zh-CN et zh-TW). Si la région n'est pas spécifiée dans source_language_code, nous choisissons la région par défaut, qui peut ne pas correspondre à la région du contenu vocal et réduire la précision. target_language_code n'a pas besoin de région, car la traduction est fournie via un contenu textuel. Toutefois, les langues zh-CN et zh-TW seront rendues différemment dans le texte.

Énoncé unique

Pour les requêtes ou les commandes courtes, utilisez StreamingTranslateSpeechConfig avec single_utterance défini sur "true". Cela optimise la reconnaissance des énoncés courts et minimise également la latence. Le service interrompt automatiquement la traduction en cas de longue interruption ou de pause. Lorsque vous utilisez le mode "single_utterance", le service renvoie END_OF_SINGLE_UTTERANCE en tant que valeur "speech_event_type". Le client est censé arrêter d'envoyer des requêtes lorsqu'il reçoit la réponse END_OF_SINGLE_UTTERANCE, et continuer à recevoir les réponses restantes.

Taille de trame

La reconnaissance en streaming reconnaît le contenu audio en direct tel qu'il est enregistré par un micro ou une autre source audio. Le flux audio est divisé en trames et envoyé dans des messages StreamingTranslateSpeechRequest consécutifs. Toutes les tailles de trames sont acceptables. Les trames plus grandes sont plus efficaces, mais ajoutent de la latence. Une taille de trame de 100 millisecondes est recommandée, car elle constitue un bon compromis entre latence et efficacité.

Prétraitement du contenu audio

Il est préférable de fournir un contenu audio aussi propre que possible en utilisant un micro de bonne qualité et bien positionné. Cependant, le fait d'appliquer un traitement de signal de réduction de bruit au contenu audio avant de l'envoyer au service réduit généralement la précision de la reconnaissance. Le service de reconnaissance est conçu pour gérer les contenus audio bruyants.

Pour des résultats optimaux, procédez comme suit :

  • Placez le micro le plus près possible de la personne qui parle, en particulier en cas de bruits de fond.
  • Évitez les découpages audio.
  • N'utilisez pas le contrôle automatique du gain (CAG).
  • Tout traitement de réduction du bruit doit être désactivé.
  • Écoutez un échantillon du contenu audio. Celui-ci doit être clair, sans distorsion ni bruit inattendu.

Configurer la requête

Assurez-vous de décrire avec précision les données audio envoyées avec votre requête à l'API Media Translation. Si la configuration TranslateSpeechConfig de votre requête spécifie les paramètres sample_rate_hertz, audio_encoding, source_language_code et target_language_code corrects, la transcription et la facturation de votre requête seront plus précises.