1. Présentation
L'API Google Cloud Text-to-Speech permet aux développeurs d'intégrer dans leurs applications une voix humaine synthétique aux sonorités naturelles. L'API Text-to-Speech convertit une entrée au format texte ou dans le langage de balisage de synthèse vocale (SSML) 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 d'un 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
- Afficher les voix disponibles
- Comment synthétiser des contenus audio à partir de texte
Prérequis
- Un projet Google Cloud Platform
- Un navigateur tel que Chrome ou Firefox
- Connaissances de base sur 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 ?
<ph type="x-smartling-placeholder">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 gratuite. 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 gratuit 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
Pour pouvoir commencer à 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. Le compte de service appartient à votre projet. Il permet à la bibliothèque cliente Google Node.js de générer des requêtes 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 des identifiants dont vous aurez besoin 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 que votre code Node.js utilisera pour se connecter en tant que 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 est utilisée par la bibliothèque Node.js de l'API Text-to-Speech, décrite à l'étape suivante, pour 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 dans cet atelier sur l'API Text-to-Speech, puis initialisez un nouveau 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
.
Installez ensuite la bibliothèque Google Cloud Speech dans le projet:
npm install --save @google-cloud/text-to-speech
Pour savoir comment configurer un 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 minute ou deux 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, le volume, la vitesse d'élocution et le taux d'échantillonnage de la sortie.
Accédez au fichier index.js
à l'intérieur de et ajoutez 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 minute ou deux 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: la suppression du projet est programmée.
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 Google Cloud Node.js: https://googlecloudplatform.github.io/google-cloud-node/
Licence
Ce document est publié sous une licence Creative Commons Attribution 2.0 Generic.