Bonnes pratiques

Ce document contient des recommandations sur la façon de transmettre des données vocales à l'API Cloud Speech-to-Text. Ces instructions visent à améliorer l'efficacité et la précision du service, ainsi qu'à obtenir des délais de réponse raisonnables. L'utilisation de l'API Cloud 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. Des taux d'échantillonnage inférieurs peuvent réduire la justesse. Cela étant dit, évitez aussi de ré-échantillonner le contenu audio. Par exemple, le taux en téléphonie est généralement de 8 000 Hz, et c'est ce taux qui doit être envoyé au service.
Recourez à un codec sans perte pour l'enregistrement et la transmission du contenu audio. Les codecs recommandés sont FLAC ou LINEAR16. 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 peuvent réduire la justesse, 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. Malgré le vocabulaire très riche de l'outil de reconnaissance, les termes et noms propres qui n'en font pas partie ne seront pas reconnus.
Pour les requêtes ou les 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 d'origine 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, l'application d'un traitement de signal de réduction de bruit au contenu audio avant de l'envoyer au service réduit généralement la justesse 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 (AGC).
  • 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 Cloud 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 beaucoup plus précises.