Cloud Speech-to-Text est une API qui vous permet d'intégrer les technologies de reconnaissance vocale de Google à vos applications en développement. Ce document aborde les principes de base de l'utilisation de Cloud Speech-to-Text et décrit les types de requêtes que vous pouvez envoyer à Cloud STT, ainsi que la façon de créer ces requêtes et de gérer leurs réponses. Avant de vous lancer dans l'utilisation de l'API, lisez ce guide et l'un des tutoriels associés.
Requêtes de reconnaissance Cloud Speech-to-Text
Cloud Speech-to-Text (STT) a recours à trois grandes méthodes de reconnaissance vocale. Les méthodes disponibles sont les suivantes :
La reconnaissance synchrone (REST et gRPC) envoie des données audio à l'API Cloud Speech-to-Text, procède à la reconnaissance de ces données et renvoie les résultats une fois que tout le contenu audio a été traité. Les requêtes de reconnaissance synchrone traitent les données audio d'une durée maximale d'une minute.
La reconnaissance asynchrone (REST et gRPC) envoie des données audio à l'API Cloud Speech-to-Text et lance une opération de longue durée. Cette opération vous permet d'interroger périodiquement les résultats de reconnaissance. Les requêtes asynchrones permettent de traiter les données audio d'une durée allant jusqu'à 480 minutes.
La reconnaissance en streaming (gRPC uniquement) effectue la reconnaissance des données audio fournies dans un flux gRPC bidirectionnel. Les requêtes en streaming sont conçues à des fins de reconnaissance en temps réel, par exemple pour l'enregistrement de contenu audio en direct à partir d'un micro. La reconnaissance en streaming fournit des résultats intermédiaires au fil de l'enregistrement audio. Par exemple, des résultats de transcription peuvent s'afficher au fur et à mesure qu'un utilisateur parle.
Les requêtes contiennent des paramètres de configuration ainsi que des données audio. Les requêtes de reconnaissance peuvent éventuellement contenir un outil de reconnaissance, une configuration de reconnaissance stockée et réutilisable.
Métadonnées audio
Pour la plupart des fichiers audio, l'API Cloud Speech-to-Text peut déduire automatiquement les métadonnées audio. Cloud STT analyse l'en-tête du fichier et le décode en fonction de ces informations. Consultez la page encodage pour connaître les types de fichiers compatibles.
Pour les fichiers audio sans en-tête, l'API Cloud Speech-to-Text vous permet de spécifier explicitement les métadonnées audio dans la configuration de reconnaissance. Consultez la page encodage pour obtenir plus de détails.
Si vous avez le choix entre plusieurs types d'encodage pour votre fichier source, enregistrez le contenu audio en utilisant un taux d'échantillonnage de 16 000 Hz. En effet, des valeurs inférieures pourraient compromettre la justesse de la reconnaissance vocale, tandis que des niveaux plus élevés n'auraient pas d'effet notable sur la qualité de la reconnaissance vocale.
Toutefois, si vos données audio ont déjà été enregistrées à un taux d'échantillonnage différent de 16 000 Hz, ne refaites pas d'échantillonnage du contenu audio à 16 000 Hz. La plupart des anciens systèmes audio de téléphonie, par exemple, utilisent des taux d'échantillonnage de 8 000 Hz, ce qui peut donner des résultats moins précis. Si vous devez utiliser ce type de contenu audio, fournissez-le à l'API Cloud Speech-to-Text à son taux d'échantillonnage d'origine.
Langues
Le moteur de reconnaissance de Cloud STT est compatible avec un grand nombre de langues et de dialectes. Vous spécifiez la langue (et le dialecte national ou régional) de votre contenu audio dans le champ languageCode de la configuration de la requête, à l'aide d'un identifiant BCP-47.
La liste complète des langues compatibles pour chaque fonctionnalité est disponible sur la page Langues acceptées.
Fonctionnalités de reconnaissance
L'API Cloud Speech-to-Text possède des fonctionnalités de reconnaissance supplémentaires telles que la ponctuation automatique et la confiance au niveau du mot. Vous activez ces fonctionnalités dans la configuration de reconnaissance dans les requêtes. Consultez l'exemple de code dans les liens fournis et la page langues pour connaître leur disponibilité.
Sélection du modèle
Cloud STT peut s'appuyer sur différents modèles de machine learning pour transcrire votre fichier audio. Google a entraîné ces modèles de reconnaissance vocale pour des types de contenu audio et des sources audio spécifiques. Consultez la documentation sur la sélection des modèles pour en savoir plus sur les modèles disponibles et savoir comment en choisir un dans vos requêtes.
Contenu audio intégré
Pour inclure l'audio intégré dans la requête de reconnaissance vocale, vous devez transmettre un paramètre content dans le champ audio_source de la requête. L'audio intégré que vous fournissez en tant que contenu dans une requête gRPC doit être compatible avec la sérialisation Proto3 et transmis sous forme de données binaires. L'audio intégré que vous fournissez en tant que contenu dans une requête REST doit être compatible avec la sérialisation JSON et doit d'abord être encodé en base64. Pour en savoir plus, consultez Encoder du contenu audio en base64.
Lorsque vous créez une requête à l'aide d'une bibliothèque cliente Google Cloud, vous écrivez généralement ces données binaires (ou encodées en base64) directement dans le champ content.
Transmettre du contenu audio référencé via un URI
De manière plus générale, vous transmettrez un paramètre uri dans le champ audio_source de la requête API Cloud Speech-to-Text et le ferez pointer vers un fichier audio (au format binaire, et non en base64) situé sur Cloud Storage sous cette forme :
gs://bucket-name/path/to/audio/file
Speech-to-Text utilise un compte de service pour accéder à vos fichiers dans Cloud Storage. Par défaut, le compte de service a accès aux fichiers Cloud Storage dans le même projet.
L'adresse e-mail du compte de service est la suivante :
service-PROJECT_NUMBER@gcp-sa-speech.iam.gserviceaccount.com
Pour transcrire des fichiers Cloud Storage situés dans un autre projet, vous pouvez attribuer au compte de service le rôle [Agent de service Speech-to-Text][speech-service-agent] dans l'autre projet :
gcloud projects add-iam-policy-binding PROJECT_ID \
--member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-speech.iam.gserviceaccount.com \
--role=roles/speech.serviceAgentPour en savoir plus sur la stratégie IAM du projet, consultez [Gérer l'accès aux projets, aux dossiers et aux organisations][manage-access].
Vous pouvez également accorder au compte de service un accès plus précis en lui attribuant une autorisation sur un bucket Cloud Storage spécifique :
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
--member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-speech.iam.gserviceaccount.com \
--role=roles/storage.adminPour en savoir plus sur la gestion des accès à Cloud Storage, consultez la section [Créer et gérer des listes de contrôle d'accès][buckets-manage-acl] de la documentation Cloud Storage.
Réponses de l'API Cloud Speech-to-Text
Une fois le contenu audio traité, l'API Cloud Speech-to-Text renvoie les résultats de transcription dans des messages SpeechRecognitionResult pour les requêtes synchrones et par lot, et dans des messages StreamingRecognitionResult pour les requêtes en streaming. Dans les requêtes synchrones et par lot, la réponse RPC contient une liste de résultats. La liste des éléments audio reconnus s'affiche dans un ordre contigu. Pour les réponses en streaming, tous les résultats marqués is_final s'affichent dans un ordre contigu.
Sélectionner des alternatives
Chaque résultat d'une réponse de reconnaissance synchrone réussie peut contenir une ou plusieurs alternatives (si la valeur de max_alternatives est supérieure à 1). Si Cloud STT estime qu'une alternative présente un niveau de confiance suffisant, cette alternative est incluse dans la réponse. La première alternative proposée dans la réponse est toujours la meilleure (la plus probable).
Définir max_alternatives sur une valeur supérieure à 1 ne signifie pas, ni ne garantit, que plusieurs alternatives seront renvoyées. De manière générale, il est plus approprié de fournir plusieurs alternatives afin que les utilisateurs puissent choisir des options en temps réel lorsqu'ils obtiennent des résultats via une requête de reconnaissance en streaming.
Traiter les transcriptions
Chaque alternative fournie dans la réponse contient un transcript avec le texte reconnu. Lorsque vous recevez des alternatives séquentielles, concaténez ces transcriptions.
Niveaux de confiance
La valeur de confidence (le niveau de confiance) est une estimation comprise entre 0,0 et 1,0. Elle est calculée par agrégation des valeurs de "probabilité" attribuées à chaque mot du contenu audio. Plus le nombre est élevé, plus la probabilité estimée que chaque mot est correctement reconnu est grande. Ce champ n'est généralement fourni que pour la première hypothèse, et seulement pour les résultats où is_final=true. Par exemple, vous pouvez utiliser la valeur de confidence pour décider si vous préférez afficher les autres alternatives ou confirmer le résultat.
Notez toutefois que le modèle détermine le "meilleur" résultat (le mieux classé) sur la base d'un ensemble de signaux allant au-delà du seul score confidence (tels que le contexte de la phrase).
De ce fait, il arrive parfois que le meilleur résultat ne soit pas celui présentant le niveau de confiance le plus élevé. Si vous n'avez pas demandé plusieurs alternatives, le "meilleur" résultat renvoyé peut présenter un niveau de confiance inférieur à celui attendu.
Cela peut se produire, par exemple, si des mots rares sont utilisés. Même si le système reconnaît correctement un mot rarement utilisé, il peut se voir attribuer une valeur de "probabilité" faible. Si le modèle considère que ce mot rare est l'option la plus probable dans ce contexte, ce résultat est renvoyé en tant que meilleur résultat et ce, même si sa valeur confidence est inférieure à celle des autres résultats possibles.
Étapes suivantes
- Utilisez des bibliothèques clientes pour transcrire des fichiers audio à l'aide de votre langage de programmation favori.
- Découvrez comment transcrire des fichiers audio courts.
- Découvrez comment transcrire du contenu audio diffusé en streaming.
- Découvrez comment transcrire des fichiers audio longs.