1. Présentation
L'API Google Cloud Text-to-Speech permet aux développeurs d'inclure une voix humaine synthétique aux sonorités naturelles en tant que contenu audio lisible dans leurs applications. L'API Text-to-Speech convertit une entrée au format texte ou dans le langage de balisage de synthèse vocale (SSML, Speech Synthesis Markup Language) en données audio au format MP3 ou LINEAR16 (encodage utilisé dans les fichiers WAV).
Dans cet atelier de programmation, vous allez vous concentrer sur l'utilisation de l'API Text-to-Speech avec Node.js. Vous apprendrez à lister les voix disponibles et à synthétiser des contenus audio à partir de texte.
Points abordés
- Utiliser Cloud Shell
- Activer l'API Text-to-Speech
- Authentifier les requêtes API
- Installer la bibliothèque cliente Google Cloud pour Node.js
- Répertorier les voix disponibles
- Synthétiser des contenus audio à partir de texte
Prérequis
- Un projet Google Cloud Platform
- Un navigateur tel que Chrome ou Firefox
- Vous maîtrisez l'utilisation de Node.js.
Enquête
Comment allez-vous utiliser ce tutoriel ?
Comment évalueriez-vous votre expérience avec Node.js ?
Quel est votre niveau d'expérience avec les services Google Cloud Platform ?
2. Préparation
Configuration de l'environnement d'auto-formation
- Connectez-vous à Cloud Console, puis créez un projet ou réutilisez un projet existant. (Si vous n'avez pas encore de compte Gmail ou G Suite, vous devez en créer un.)
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 pour pouvoir utiliser les ressources Google Cloud.
L'exécution de cet atelier de programmation est très peu coûteuse, voire sans frais. Veillez à suivre les instructions de la section "Nettoyer" qui indique comment désactiver les ressources afin d'éviter les frais une fois ce tutoriel terminé. 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, nous allons nous servir de Google Cloud Shell pour 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 n'avez encore jamais démarré Cloud Shell, un écran intermédiaire s'affiche en dessous de la ligne de séparation pour décrire de quoi il s'agit. Si tel est le cas, cliquez sur Continuer (cet écran ne s'affiche qu'une seule fois). Voici à quoi il ressemble :
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 intègre un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud, ce qui améliore nettement les performances réseau et l'authentification. Vous pouvez réaliser une grande partie, voire la totalité, des activités de cet atelier dans un simple navigateur ou sur votre Chromebook.
Une fois connecté à Cloud Shell, vous êtes en principe authentifié et le projet est défini avec 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`
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. Activer l'API Text-to-Speech
Avant de pouvoir utiliser l'API Text-to-Speech, vous devez l'activer. Vous pouvez activer l'API à l'aide de la commande suivante dans Cloud Shell :
gcloud services enable texttospeech.googleapis.com
4. Authentifier les requêtes API
Pour envoyer des requêtes à l'API Text-to-Speech, vous devez utiliser un compte de service. Ce compte de service appartient à votre projet. Il permet à la bibliothèque cliente Node.js de Google d'envoyer des requêtes à l'API Text-to-Speech. Comme tout autre compte utilisateur, un compte de service est représenté par une adresse e-mail. Dans cette section, vous allez utiliser le SDK Cloud pour créer un compte de service, puis créer les identifiants nécessaires pour vous authentifier en tant que compte de service.
Commencez par définir une variable d'environnement avec votre GOOGLE_CLOUD_PROJECT, que vous utiliserez tout au long de cet atelier de programmation :
export GOOGLE_CLOUD_PROJECT=$(gcloud config get-value core/project)
Créez ensuite un compte de service pour accéder à l'API Text-to-Speech à l'aide de la commande suivante :
gcloud iam service-accounts create my-text-to-speech-sa \
--display-name "my text-to-speech codelab service account"
Créez ensuite des identifiants permettant à votre code Node.js de se connecter avec ce nouveau compte de service, et enregistrez-les dans un fichier JSON ~/key.json à l'aide de la commande suivante :
gcloud iam service-accounts keys create ~/key.json \
--iam-account my-text-to-speech-sa@${GOOGLE_CLOUD_PROJECT}.iam.gserviceaccount.com
Enfin, définissez la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS, qui permet à la bibliothèque Node.js de l'API Text-to-Speech, abordée à l'étape suivante, de trouver vos identifiants. La variable d'environnement doit être définie sur le chemin d'accès complet au fichier JSON d'identifiants que vous avez créé, à l'aide de la commande suivante :
export GOOGLE_APPLICATION_CREDENTIALS="/home/${USER}/key.json"
5. Installer la bibliothèque cliente de l'API Google Cloud Text-to-Speech pour Node.js
Commencez par créer un projet que vous utiliserez pour exécuter cet atelier sur l'API Text-to-Speech, puis initialisez un package Node.js dans le dossier de votre choix :
npm init
GPR pose plusieurs questions sur la configuration du projet, telles que son nom et sa version. Pour chaque question, appuyez sur ENTER pour accepter les valeurs par défaut. Le point d'entrée par défaut est un fichier nommé index.js.
Ensuite, installez la bibliothèque Google Cloud Speech dans le projet :
npm install --save @google-cloud/text-to-speech
Pour obtenir plus d'instructions sur la configuration d'un environnement de développement Node.js pour Google Cloud, consultez le guide de configuration.
Vous êtes maintenant prêt à utiliser l'API Text-to-Speech.
6. Lister les voix disponibles
Dans cette section, vous allez d'abord lister toutes les voix disponibles en anglais pour la synthèse audio.
Accédez au fichier index.js et remplacez le code par ce qui suit :
'use strict';
/**
* Lists available voices for the specified language.
*
* @param {string} languageCode - The language code.
*/
async function listVoices(languageCode) {
const textToSpeech = require('@google-cloud/text-to-speech');
const client = new textToSpeech.TextToSpeechClient();
const [result] = await client.listVoices({languageCode});
const voices = result.voices;
voices.forEach((voice) => {
console.log(`${voice.name} (${voice.ssmlGender}): ${voice.languageCodes}`);
});
}
listVoices('en');
Prenez une ou deux minutes pour étudier le code. Exécutez l'application :
node .
Vous devriez obtenir le résultat suivant :
en-US-Standard-A (MALE): en-US
en-US-Standard-B (MALE): en-US
en-US-Standard-C (FEMALE): en-US
en-US-Standard-D (MALE): en-US
en-US-Standard-E (FEMALE): en-US
en-US-Standard-F (FEMALE): en-US
...
7. Synthétiser des contenus audio à partir de texte
Vous pouvez utiliser l'API Text-to-Speech pour convertir une chaîne en données audio. Vous pouvez configurer la sortie de la synthèse vocale de différentes manières, par exemple en sélectionnant une voix unique ou en modulant la hauteur vocale, le volume, la vitesse d'élocution et le taux d'échantillonnage de la sortie.
Accédez au fichier index.js et ajoutez-y le code suivant :
/**
* Sythesizes sample text into an .mp3 file.
*/
async function synthesize() {
const textToSpeech = require('@google-cloud/text-to-speech');
const fs = require('fs');
const util = require('util');
const client = new textToSpeech.TextToSpeechClient();
const text = 'This is a demonstration of the Google Cloud Text-to-Speech API';
const request = {
input: {text: text},
voice: {languageCode: 'en-US', ssmlGender: 'NEUTRAL'},
audioConfig: {audioEncoding: 'MP3'},
};
const [response] = await client.synthesizeSpeech(request);
// Write the binary audio content to a local file
const writeFile = util.promisify(fs.writeFile);
await writeFile('output.mp3', response.audioContent, 'binary');
console.log('Audio content written to file: output.mp3');
}
synthesize();
Prenez une ou deux minutes pour étudier le code et voir comment il est utilisé pour créer un fichier audio à partir de texte.
node .
Vous devriez obtenir le résultat suivant :
Audio content written to file "output.mp3"
8. Félicitations !
Vous avez appris à utiliser l'API Text-to-Speech avec Node.js pour effectuer différents types de transcription sur des fichiers audio.
Effectuer un nettoyage
Afin d'éviter que des frais ne soient facturés sur votre compte Google Cloud Platform pour les ressources utilisées dans ce démarrage rapide, procédez comme suit :
- Accédez à la console Cloud Platform.
- Sélectionnez le projet que vous souhaitez arrêter, puis cliquez sur "Supprimer" en haut de la page. Le projet sera alors programmé pour suppression.
En savoir plus
- API Google Cloud Text-to-Speech : https://cloud.google.com/text-to-speech/docs
- Node.js sur Google Cloud Platform : https://cloud.google.com/nodejs/
- Client Node.js Google Cloud : https://googlecloudplatform.github.io/google-cloud-node/
Licence
Ce document est publié sous une licence Creative Commons Attribution 2.0 Generic.