Transcription de texte avec l'API Cloud Speech-to-Text

L'API Cloud Speech permet de transcrire des fichiers audio dans plus de 80 langues.

Dans cet atelier, nous allons enregistrer un fichier audio et l'envoyer à l'API Cloud Speech pour qu'il soit transcrit.

Points abordés

  • Créer une requête API Speech et appeler l'API avec curl
  • Appeler l'API Speech avec des fichiers audio dans différentes langues

Prérequis

  • Un projet Google Cloud Platform
  • Un navigateur tel que Chrome ou Firefox

Comment allez-vous utiliser ce tutoriel ?

Je vais le lire uniquement Je vais le lire et effectuer les exercices

Quel est votre niveau d'expérience avec Google Cloud Platform ?

Débutant Intermédiaire Compétent

Configuration de l'environnement au rythme de chacun

Si vous n'avez pas encore de compte Google (Gmail ou Google Apps), vous devez en créer un. Connectez-vous à la console Google Cloud Platform (console.cloud.google.com) et créez un projet:

Capture d'écran du 10/02/2016 12:45:26.png

Mémorisez l'ID du projet. Il s'agit d'un nom unique permettant de différencier chaque projet Google Cloud (le nom ci-dessus est déjà pris ; vous devez en trouver un autre). Il sera désigné par le nom PROJECT_ID tout au long de cet atelier de programmation.

Vous devez ensuite activer la facturation dans Cloud Console afin d'utiliser les ressources Google Cloud.

Suivre cet atelier de programmation ne devrait pas vous coûter plus d'un euro. Cependant, cela peut s'avérer plus coûteux si vous décidez d'utiliser davantage de ressources ou si vous n'interrompez pas les ressources (voir la section "Effectuer un nettoyage" à la fin du présent document).

Les nouveaux utilisateurs de Google Cloud Platform peuvent bénéficier d'un essai offert de 300 $.

Cliquez sur l'icône de menu en haut à gauche de l'écran.

Sélectionnez le tableau de bord API et services dans la liste déroulante.

Cliquez sur Activer les API et les services.

Ensuite, saisissez "Speech" dans le champ de recherche. Cliquez sur Google Cloud Speech API (API Google Cloud Speech) :

Cliquez sur Activer pour activer l'API Cloud Speech:

Patientez quelques secondes. Vous verrez ce message s'afficher une fois l'option activée:

Google Cloud Shell est un environnement de ligne de commande fonctionnant dans le cloud. Cette machine virtuelle basée sur Debian contient tous les outils de développement dont vous aurez besoin (gcloud, bq, git, etc.). Elle offre un répertoire de base persistant de 5 Go. Nous utiliserons Cloud Shell pour créer notre requête auprès de l'API Speech.

Pour commencer à utiliser Cloud Shell, cliquez sur l'icône Capture d'écran 2015-06-08 à 17:30.32 PM.pngActiver Google Cloud Shell en haut à droite de la barre d'en-tête.

Une session Cloud Shell s'ouvre dans un nouveau cadre en bas de la console et affiche une invite de ligne de commande. Attendez que l'invite "user@project:~$" s'affiche.

Étant donné que nous allons utiliser curl pour envoyer une requête à l'API Speech, nous devrons générer une clé API pour transmettre l'URL de la requête. Pour créer une clé API, accédez à la section API et services, services et identifiants du tableau de bord de votre projet:

Cliquez ensuite sur Create credentials (Créer des identifiants) :

Dans le menu déroulant, sélectionnez API key (Clé API) :

Ensuite, copiez la clé que vous venez de générer et sélectionnez Fermer (ne pas restreindre la clé).

Vous disposez désormais d'une clé API. Enregistrez sa valeur dans une variable d'environnement afin d'éviter de l'insérer à chaque requête. Vous pouvez le faire dans Cloud Shell. Veillez à remplacer <your_api_key> par la clé que vous venez de copier.

export API_KEY=<YOUR_API_KEY>

Vous pouvez créer votre requête auprès de l'API Speech dans un fichier request.json. Pour créer et modifier ce fichier, vous pouvez utiliser l'un de vos éditeurs de ligne de commande préférés (nano, vim, emacs) ou l'éditeur Web intégré de Cloud Shell:

Créez le fichier dans votre répertoire d'accueil afin de pouvoir le référencer facilement et ajoutez les éléments suivants à votre fichier request.json :

json.json

{
  "config": {
      "encoding":"FLAC",
      "languageCode": "en-US"
  },
  "audio": {
      "uri":"gs://cloud-samples-tests/speech/brooklyn.flac"
  }
}

Le corps de la requête possède un objet config et audio. Dans config, nous indique à l'API Speech comment traiter la requête. Le paramètre encoding indique à l'API le type d'encodage audio que vous utilisez pour le fichier audio que vous envoyez à l'API. FLAC est le type d'encodage des fichiers .raw (consultez la documentation pour en savoir plus sur le type d'encodage). Vous pouvez ajouter d'autres paramètres à votre objet config, mais encoding est le seul paramètre obligatoire. En anglais, languageCode sera sélectionné par défaut en anglais.

Dans l'objet audio, vous pouvez transmettre à l'API soit l'URI de notre fichier audio dans Cloud Storage, soit l'audio encodé en base64 en tant que chaîne. Vous utilisiez ici des URL Cloud Storage. L'étape suivante consiste à appeler l'API Speech.

Vous pouvez à présent transmettre à l'API Speech le corps de votre requête, ainsi que la variable d'environnement de clé API que vous avez enregistrée précédemment, en exécutant la commande curl suivante (dans une seule ligne de commande):

curl -s -X POST -H "Content-Type: application/json" --data-binary @request.json "https://speech.googleapis.com/v1/speech:recognize?key=${API_KEY}"

La réponse renvoyée par cette commande curl doit se présenter comme suit:

{
  "results": [
    {
      "alternatives": [
        {
          "transcript": "how old is the Brooklyn Bridge",
          "confidence": 0.98267895
        }
      ]
    }
  ]
}

La valeur transcript renvoie la transcription du texte de l'API Speech de votre fichier audio, et la valeur confidence indique le degré de certitude avec lequel l'API a transcrit le fichier audio.

Vous remarquerez que nous avons appelé la méthode recognize dans notre requête ci-dessus. L'API Speech est compatible avec une transcription audio synchrone ou asynchrone. Dans cet exemple, nous lui avons envoyé un fichier audio complet, mais vous pouvez également utiliser la méthode longrunningrecognize pour transcrire le texte en streaming pendant que l'utilisateur parle.

Êtes-vous multilingue ? L'API Speech est compatible avec la transcription audio dans plus de 100 langues. Vous pouvez modifier le paramètre languageCode dans request.json. Vous trouverez la liste des langues acceptées sur cette page.

Testons un fichier audio en français. Cliquez ici si vous souhaitez un aperçu. Remplacez votre fichier request.json par le code suivant:

json.json

 {
  "config": {
      "encoding":"FLAC",
      "languageCode": "fr"
  },
  "audio": {
      "uri":"gs://speech-language-samples/fr-sample.flac"
  }
}

Vous devriez voir la réponse suivante :

{
  "results": [
    {
      "alternatives": [
        {
          "transcript": "maître corbeau sur un arbre perché tenait en son bec un fromage",
          "confidence": 0.9710122
        }
      ]
    }
  ]
}

Voici une phrase tirée d'un conte populaire pour enfants français. Si vous avez des fichiers audio dans une autre langue, vous pouvez essayer de les ajouter à Cloud Storage et de modifier le paramètre languageCode dans votre requête.

Vous avez appris à effectuer une transcription audio avec l'API Speech. Dans cet exemple, vous avez transmis à l'API l'URI Google Cloud Storage de votre fichier audio. Vous pouvez également lui transmettre votre contenu audio sous la forme d'une chaîne encodée en base64.

Points abordés

  • Transmettre l'URI Google Cloud Storage d'un fichier audio à l'API Speech
  • Créer une requête API Speech et appeler l'API avec curl
  • Appeler l'API Speech avec des fichiers audio dans différentes langues

Étapes suivantes