Bonnes pratiques pour fournir des données à l'API Speech-to-Text

Ce document contient des recommandations sur la façon de fournir des données vocales à l'API Speech-to-Text. 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 Speech-to-Text est optimale lorsque les données envoyées au service sont conformes aux paramètres décrits dans ce document.

Si vous suivez ces instructions et que vous n'obtenez pas les résultats escomptés de l'API, consultez la page Assistance et dépannage.

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. Les taux d'échantillonnage inférieurs, qui peuvent réduire la précision. 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 mp3, mp4, m4a, mu-law, a-law, ou autres codecs avec perte pendant l'enregistrement ou la transmission, qui peuvent réduire la précision. 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 perte afin de préserver la bande passante, nous vous recommandons les codecs AMR_WB, OGG_OPUS ou SPEEX_WITH_HEADER_BYTE, dans cet ordre de préférence.
Le programme de reconnaissance est conçu pour ignorer les voix et bruits de fond, sans suppression supplémentaire de bruit. Toutefois, pour obtenir des résultats optimaux, placez le micro le plus près possible de l'utilisateur, notamment en cas de bruits de fond. Les bruits de fond et échos excessifs qui peuvent réduire la précision, en particulier si un codec avec perte est aussi utilisé.
Si vous enregistrez du contenu audio auprès de plusieurs personnes et que vous utilisez un canal distinct pour chacune d'elle, envoyez chaque canal séparément pour obtenir les meilleurs résultats de reconnaissance possible. Toutefois, si tous les locuteurs sont enregistrés sur un seul et même canal, envoyez l'enregistrement tel quel. Que plusieurs personnes ne parlent en même temps ou à des volumes différents, car cela pourrait être interprété comme un bruit de fond et être ignoré.
Utilisez des mots et expressions clés pour ajouter des noms et des termes au vocabulaire, et pour améliorer la précision de mots et d'expressions spécifiques. Les termes et noms propres hors vocabulaire, qui ne seront pas reconnus malgré le vocabulaire très riche du programme de reconnaissance.
Pour des requêtes ou des commandes courtes, utilisez StreamingRecognize avec single_utterance défini sur true. Cela optimise la reconnaissance des énoncés courts et minimise également la latence. Les paramètres Recognize ou LongRunningRecognize pour des requêtes ou commandes courtes.

Taux d'échantillonnage

Si possible, définissez le taux d'échantillonnage de la source audio sur 16 000 Hz. 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).

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 StreamingRecognizeRequest 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 est en effet 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

Prenez soin de décrire avec précision les données audio envoyées avec votre requête à l'API Speech-to-Text. Si la configuration RecognitionConfig de votre requête spécifie les paramètres sampleRateHertz, encoding et languageCode corrects, la transcription et la facturation de votre requête seront plus précises.