1. Présentation
L'API Speech-to-Text permet aux développeurs de convertir du contenu audio en texte dans plus de 125 langues et variantes, en appliquant de puissants modèles de réseaux de neurones via une API facile à utiliser.
Dans ce tutoriel, vous allez vous concentrer sur l'utilisation de l'API Speech-to-Text avec Python.
Points abordés
- Configurer votre environnement
- Transcrire des fichiers audio en anglais
- Transcrire des fichiers audio avec des codes temporels pour les mots
- Transcrire des fichiers audio dans différentes langues
Prérequis
Enquête
Comment allez-vous utiliser ce tutoriel ?
Quel est votre niveau d'expérience avec Python ?
Comment évalueriez-vous votre expérience des services Google Cloud ?
<ph type="x-smartling-placeholder">2. Préparation
Configuration de l'environnement au rythme de chacun
- Connectez-vous à la console Google Cloud, puis créez un projet ou réutilisez un projet existant. Si vous n'avez pas encore de compte Gmail ou Google Workspace, vous devez en créer un.
- Le nom du projet est le nom à afficher pour les participants au projet. Il s'agit d'une chaîne de caractères non utilisée par les API Google. Vous pourrez toujours le modifier.
- L'ID du projet est unique parmi tous les projets Google Cloud et non modifiable une fois défini. La console Cloud génère automatiquement une chaîne unique (en général, vous n'y accordez d'importance particulière). Dans la plupart des ateliers de programmation, vous devrez indiquer l'ID de votre projet (généralement identifié par
PROJECT_ID
). Si l'ID généré ne vous convient pas, vous pouvez en générer un autre de manière aléatoire. Vous pouvez également en spécifier un et voir s'il est disponible. Après cette étape, l'ID n'est plus modifiable et restera donc le même pour toute la durée du projet. - Pour information, il existe une troisième valeur (le numéro de projet) que certaines API utilisent. Pour en savoir plus sur ces trois valeurs, consultez la documentation.
- Vous devez ensuite activer la facturation dans la console Cloud pour utiliser les ressources/API Cloud. L'exécution de cet atelier de programmation est très peu coûteuse, voire sans frais. Pour désactiver les ressources et éviter ainsi que des frais ne vous soient facturés après ce tutoriel, vous pouvez supprimer le projet ou les ressources que vous avez créées. Les nouveaux utilisateurs de Google Cloud peuvent participer au programme d'essai sans frais pour bénéficier d'un crédit de 300 $.
Démarrer Cloud Shell
Bien que Google Cloud puisse être utilisé à distance depuis votre ordinateur portable, vous allez utiliser Cloud Shell dans cet atelier de programmation, un environnement de ligne de commande exécuté dans le cloud.
Activer Cloud Shell
- Dans Cloud Console, cliquez sur Activer Cloud Shell
.
Si vous démarrez Cloud Shell pour la première fois, un écran intermédiaire vous explique de quoi il s'agit. Si un écran intermédiaire vous s'est présenté, cliquez sur Continue (Continuer).
Le provisionnement et la connexion à Cloud Shell ne devraient pas prendre plus de quelques minutes.
Cette machine virtuelle contient tous les outils de développement nécessaires. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute dans Google Cloud, ce qui améliore considérablement les performances du réseau et l'authentification. Une grande partie, voire la totalité, de votre travail dans cet atelier de programmation peut être effectué dans un navigateur.
Une fois connecté à Cloud Shell, vous êtes authentifié et le projet est défini sur votre ID de projet.
- Exécutez la commande suivante dans Cloud Shell pour vérifier que vous êtes authentifié :
gcloud auth list
Résultat de la commande
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
- Exécutez la commande suivante dans Cloud Shell pour vérifier que la commande gcloud connaît votre projet:
gcloud config list project
Résultat de la commande
[core] project = <PROJECT_ID>
Si vous obtenez un résultat différent, exécutez cette commande :
gcloud config set project <PROJECT_ID>
Résultat de la commande
Updated property [core/project].
3. Cofiguration de l'environnement
Avant de pouvoir utiliser l'API Speech-to-Text, vous devez l'activer en exécutant la commande suivante dans Cloud Shell:
gcloud services enable speech.googleapis.com
L'écran qui s'affiche devrait ressembler à ce qui suit :
Operation "operations/..." finished successfully.
Vous pouvez maintenant utiliser l'API Speech-to-Text.
Accédez à votre répertoire d'accueil:
cd ~
Créez un environnement virtuel Python pour isoler les dépendances:
virtualenv venv-speech
Activez l'environnement virtuel :
source venv-speech/bin/activate
Installez IPython et la bibliothèque cliente de l'API Speech-to-Text:
pip install ipython google-cloud-speech
L'écran qui s'affiche devrait ressembler à ce qui suit :
... Installing collected packages: ..., ipython, google-cloud-speech Successfully installed ... google-cloud-speech-2.25.1 ...
Vous êtes maintenant prêt à utiliser la bibliothèque cliente de l'API Speech-to-Text.
Dans les étapes suivantes, vous allez utiliser un interpréteur Python interactif appelé IPython, que vous avez installé à l'étape précédente. Démarrez une session en exécutant ipython
dans Cloud Shell:
ipython
L'écran qui s'affiche devrait ressembler à ce qui suit :
Python 3.9.2 (default, Feb 28 2021, 17:03:44) Type 'copyright', 'credits' or 'license' for more information IPython 8.18.1 -- An enhanced Interactive Python. Type '?' for help. In [1]:
Vous êtes prêt à envoyer votre première demande...
4. Transcrire des fichiers audio
Dans cette section, vous allez transcrire un fichier audio en anglais.
Copiez le code suivant dans votre session IPython:
from google.cloud import speech
def speech_to_text(
config: speech.RecognitionConfig,
audio: speech.RecognitionAudio,
) -> speech.RecognizeResponse:
client = speech.SpeechClient()
# Synchronous speech recognition request
response = client.recognize(config=config, audio=audio)
return response
def print_response(response: speech.RecognizeResponse):
for result in response.results:
print_result(result)
def print_result(result: speech.SpeechRecognitionResult):
best_alternative = result.alternatives[0]
print("-" * 80)
print(f"language_code: {result.language_code}")
print(f"transcript: {best_alternative.transcript}")
print(f"confidence: {best_alternative.confidence:.0%}")
Prenez quelques instants pour étudier le code et découvrir comment il utilise la méthode de la bibliothèque cliente recognize
pour transcrire un fichier audio*.* Le paramètre config
indique comment traiter la requête, et le paramètre audio
spécifie les données audio à reconnaître.
Envoyer une requête:
config = speech.RecognitionConfig(
language_code="en",
)
audio = speech.RecognitionAudio(
uri="gs://cloud-samples-data/speech/brooklyn_bridge.flac",
)
response = speech_to_text(config, audio)
print_response(response)
Vous devriez obtenir le résultat suivant :
-------------------------------------------------------------------------------- language_code: en-us transcript: how old is the Brooklyn Bridge confidence: 98%
Mettez à jour la configuration pour activer la ponctuation automatique et envoyez une nouvelle requête:
config.enable_automatic_punctuation = True
response = speech_to_text(config, audio)
print_response(response)
Vous devriez obtenir le résultat suivant :
-------------------------------------------------------------------------------- language_code: en-us transcript: How old is the Brooklyn Bridge? confidence: 98%
Résumé
Au cours de cette étape, vous avez réussi à transcrire un fichier audio en anglais en utilisant différents paramètres, puis à imprimer le résultat. Découvrez comment transcrire des fichiers audio.
5. Obtenir les horodatages au niveau du mot
Speech-to-Text peut détecter les décalages temporels (horodatages) pour le contenu audio transcrit. Les décalages temporels indiquent le début et la fin de chaque mot prononcé dans le contenu audio fourni. Une valeur de décalage temporel représente la durée écoulée depuis le début du contenu audio, par incréments de 100 ms.
Pour transcrire un fichier audio avec des codes temporels, mettez à jour votre code en copiant les éléments suivants dans votre session IPython:
def print_result(result: speech.SpeechRecognitionResult):
best_alternative = result.alternatives[0]
print("-" * 80)
print(f"language_code: {result.language_code}")
print(f"transcript: {best_alternative.transcript}")
print(f"confidence: {best_alternative.confidence:.0%}")
print("-" * 80)
for word in best_alternative.words:
start_s = word.start_time.total_seconds()
end_s = word.end_time.total_seconds()
print(f"{start_s:>7.3f} | {end_s:>7.3f} | {word.word}")
Prenez un moment pour étudier le code et découvrez comment il transcrit un fichier audio avec les codes temporels des mots*.* Le paramètre enable_word_time_offsets
indique à l'API de renvoyer les décalages temporels pour chaque mot (consultez la documentation pour en savoir plus).
Envoyer une requête:
config = speech.RecognitionConfig(
language_code="en",
enable_automatic_punctuation=True,
enable_word_time_offsets=True,
)
audio = speech.RecognitionAudio(
uri="gs://cloud-samples-data/speech/brooklyn_bridge.flac",
)
response = speech_to_text(config, audio)
print_response(response)
Vous devriez obtenir le résultat suivant :
-------------------------------------------------------------------------------- language_code: en-us transcript: How old is the Brooklyn Bridge? confidence: 98% -------------------------------------------------------------------------------- 0.000 | 0.300 | How 0.300 | 0.600 | old 0.600 | 0.800 | is 0.800 | 0.900 | the 0.900 | 1.100 | Brooklyn 1.100 | 1.400 | Bridge?
Résumé
Au cours de cette étape, vous avez réussi à transcrire un fichier audio en anglais avec des horodatages au niveau des mots et à imprimer le résultat. Découvrez comment obtenir des codes temporels pour les mots.
6. Transcrire d'autres langues
L'API Speech-to-Text reconnaît plus de 125 langues et variantes. Vous pouvez consulter la liste des langues acceptées sur cette page.
Dans cette section, vous allez transcrire un fichier audio en français.
Pour transcrire le fichier audio en français, mettez à jour votre code en copiant ce qui suit dans votre session IPython:
config = speech.RecognitionConfig(
language_code="fr-FR",
enable_automatic_punctuation=True,
enable_word_time_offsets=True,
)
audio = speech.RecognitionAudio(
uri="gs://cloud-samples-data/speech/corbeau_renard.flac",
)
response = speech_to_text(config, audio)
print_response(response)
Vous devriez obtenir le résultat suivant :
-------------------------------------------------------------------------------- language_code: fr-fr transcript: Maître corbeau sur un arbre perché Tenait dans son bec un fromage maître Renard par l'odeur alléché lui tint à peu près ce langage et bonjour monsieur du corbeau. confidence: 94% -------------------------------------------------------------------------------- 0.000 | 0.700 | Maître 0.700 | 1.100 | corbeau 1.100 | 1.300 | sur 1.300 | 1.600 | un 1.600 | 1.700 | arbre 1.700 | 2.000 | perché 2.000 | 3.000 | Tenait 3.000 | 3.000 | dans 3.000 | 3.200 | son 3.200 | 3.500 | bec 3.500 | 3.700 | un 3.700 | 3.800 | fromage ... 10.800 | 11.800 | monsieur 11.800 | 11.900 | du 11.900 | 12.100 | corbeau.
Résumé
Au cours de cette étape, vous avez réussi à transcrire un fichier audio en français et à imprimer le résultat. En savoir plus sur les langues acceptées
7. Félicitations !
Vous avez appris à utiliser l'API Speech-to-Text avec Python pour effectuer différents types de transcription sur des fichiers audio.
Effectuer un nettoyage
Pour nettoyer votre environnement de développement à partir de Cloud Shell:
- Si vous êtes toujours dans votre session IPython, revenez au shell:
exit
- Cessez d'utiliser l'environnement virtuel Python:
deactivate
- Supprimez le dossier d'environnement virtuel:
cd ~ ; rm -rf ./venv-speech
.
Pour supprimer votre projet Google Cloud à partir de Cloud Shell, procédez comme suit:
- Récupérez l'ID de votre projet actuel:
PROJECT_ID=$(gcloud config get-value core/project)
- Assurez-vous qu'il s'agit bien du projet que vous souhaitez supprimer:
echo $PROJECT_ID
- Supprimez le projet:
gcloud projects delete $PROJECT_ID
En savoir plus
- Testez la démonstration dans votre navigateur: https://cloud.google.com/speech-to-text
- Documentation Speech-to-Text: https://cloud.google.com/speech-to-text/docs
- Python sur Google Cloud: https://cloud.google.com/python
- Bibliothèques clientes Cloud pour Python: https://github.com/googleapis/google-cloud-python
Licence
Ce document est publié sous une licence Creative Commons Attribution 2.0 Generic.