Utilisation de l'API Text-to-Speech avec C #

L'API Google Cloud Text-to-Speech (bêta) permet aux développeurs d'inclure dans leurs applications une parole humaine synthétique au son naturel comme audio jouable. L'API Text-to-Speech convertit le texte ou l'entrée SSML ( Speech Synthesis Markup Language ) en données audio telles que MP3 ou LINEAR16 (l'encodage utilisé dans les fichiers WAV).

Dans ce codelab, vous vous concentrerez sur l'utilisation de l'API Text-to-Speech avec C #. Vous apprendrez à répertorier les voix disponibles et à synthétiser l'audio à partir de texte.

Ce que tu apprendras

  • Comment utiliser Cloud Shell
  • Comment activer l'API Text-to-Speech
  • Comment authentifier les demandes d'API
  • Comment installer la bibliothèque cliente Google Cloud pour C #
  • Comment lister les voix disponibles
  • Comment synthétiser l'audio à partir de texte

Ce dont vous aurez besoin

  • Un projet Google Cloud Platform
  • Un navigateur, tel Chrome ou Firefox
  • Familiarité avec C #

Enquête

Comment allez-vous utiliser ce tutoriel?

Lisez-le uniquement Lisez-le et complétez les exercices

Comment évalueriez-vous votre expérience avec C #?

Novice Intermédiaire Compétent

Comment évalueriez-vous votre expérience d'utilisation des services Google Cloud Platform?

Novice Intermédiaire Compétent

Configuration de l'environnement à votre rythme

  1. Connectez-vous à Cloud Console et créez un nouveau projet ou réutilisez un projet existant. (Si vous ne possédez pas encore de compte Gmail ou G Suite, vous devez en créer un .)

dMbN6g9RawQj_VXCSYpdYncY-DbaRzr2GbnwoV7jFf1u3avxJtmGPmKpMYgiaMH-qu80a_NJ9p2IIXFppYk8x3wyymZXavjglgNLJJhuXieCem56JglgNLJJhuXieCem56H30hgNLJJhuXieCem56H30hgNLJJhuXieCem56H30hgNLJJhuXieCem56H30hgNLJJhuXieXieXwx8H30

ci9Oe6PgnbNuSYlMyvbXF1JdQyiHoEgnhl4PlV_MFagm2ppzhueRkqX4eLjJllZco_2zCp0V0bpTupUSKji9KkQyWqj11pqit1K1faS1V6aFxLGQdk7PLrs01aFxLGQdk

8-tA_Lheyo8SscAVKrGii2coplQp2_D1Iosb2ViABY0UUO1A8cimXUu6Wf1R9zJIRExL5OB2j946aIiFtyKTzxDcNnuznmR45vZCAg2HMoK3o67jxuojUJgCAgNCNv6

N'oubliez pas l'ID de projet, un nom unique dans tous les projets Google Cloud (le nom ci-dessus a déjà été pris et ne fonctionnera pas pour vous, désolé!). Il sera désigné plus tard dans ce codelab sous le nom de PROJECT_ID .

  1. Ensuite, vous devrez activer la facturation dans Cloud Console pour utiliser les ressources Google Cloud.

Traverser ce codelab ne devrait pas coûter cher, voire pas du tout. Assurez-vous de suivre les instructions de la section "Nettoyage" qui vous indique comment arrêter les ressources afin de ne pas engager de facturation au-delà de ce didacticiel. Les nouveaux utilisateurs de Google Cloud peuvent bénéficier du programme d' essai gratuit de 300 USD .

Démarrez Cloud Shell

Bien que Google Cloud puisse être utilisé à distance depuis votre ordinateur portable, dans ce laboratoire de codes, vous utiliserez Google Cloud Shell , un environnement de ligne de commande s'exécutant dans le Cloud.

Activer Cloud Shell

  1. Dans Cloud Console, cliquez sur Activer Cloud Shell H7JlbhKGHITmsxhQIcLwoe5HXZMhDlYue4K-SPszMxUxDjIeWfOHBfxDHYpmLQTzUmQ7Xx8o6OJUlANnQF0iBuUyfp1RzVadzq1RzVadzLZLZLZLZLZLZLZLZk2 .

zlNW0HehB_AFW1qZ4AyebSQUdWm95n7TbnOr7UVm3j9dFcg6oWApJRlC0jnU1Mvb-IQp-trP1Px8xKNwt6o3pP6fyih947sEhOFIqU2F0WbMXZWr847sEhOFIQQM2WbXWbXWbXWbXWbXWb

Si vous n'avez jamais démarré Cloud Shell auparavant, un écran intermédiaire (sous la ligne de flottaison) vous sera présenté, décrivant de quoi il s'agit. Si tel est le cas, cliquez sur Continuer (et vous ne le reverrez plus jamais). Voici à quoi ressemble cet écran unique:

kEPbNAo_w5C_pi9QvhFwWwky1cX8hr_xEMGWySNIoMCdi-Djx9AQRqWn -__ DmEpC7vKgUtl-feTcv-wBxJ8NwzzAp7mY65-fi2LJo4ho4twUoewT1s

Le provisionnement et la connexion à Cloud Shell ne devraient prendre que quelques instants.

pTv5mEKzWMWp5VBrg2eGcuRPv9dLInPToS-mohlrqDASyYGWnZ_SwE-MzOWHe76ZdCSmw0kgWogSJv27lrQE8pvA5OD6P1I47nz8vrAZqadK7yR1Nsez8vrAZK7yR1Nsebr8vrAZkxbr8Nsebr8vrAZkbxp

Cette machine virtuelle est chargée de tous les outils de développement dont vous aurez besoin. Il offre un répertoire d'accueil persistant de 5 Go et fonctionne dans Google Cloud, améliorant considérablement les performances et l'authentification du réseau. Une grande partie, sinon la totalité, de votre travail dans ce laboratoire de codes peut être effectuée simplement avec un navigateur ou votre Chromebook.

Une fois connecté à Cloud Shell, vous devriez voir que vous êtes déjà authentifié et que le projet est déjà défini sur votre ID de projet.

  1. Exécutez la commande suivante dans Cloud Shell pour confirmer que vous êtes authentifié:
gcloud auth list

Sortie de 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

Sortie de commande

[core]
project = <PROJECT_ID>

Si ce n'est pas le cas, vous pouvez le définir avec cette commande:

gcloud config set project <PROJECT_ID>

Sortie de commande

Updated property [core/project].

Avant de pouvoir commencer à utiliser l'API Text-to-Speech, vous devez activer l'API. Vous pouvez activer l'API à l'aide de la commande suivante dans Cloud Shell:

gcloud services enable texttospeech.googleapis.com

Pour faire des demandes à l'API Text-to-Speech, vous devez utiliser un compte de service . Un compte de service appartient à votre projet et est utilisé par la bibliothèque Google Client C # pour effectuer 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 les informations d'identification dont vous aurez besoin pour vous authentifier en tant que compte de service.

Tout d'abord, définissez une variable d'environnement avec votre PROJECT_ID que vous utiliserez tout au long de ce codelab:

export GOOGLE_CLOUD_PROJECT=$(gcloud config get-value core/project)

Ensuite, créez un nouveau compte de service pour accéder à l'API Text-to-Speech en utilisant:

gcloud iam service-accounts create my-text-to-speech-sa \
  --display-name "my text-to-speech codelab service account"

Ensuite, créez les informations d'identification que votre code C # utilisera pour vous connecter en tant que nouveau compte de service. Créez ces informations d'identification et enregistrez-les en tant que 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 C # de l'API Text-to-Speech, décrite à l'étape suivante, pour trouver vos informations d'identification. La variable d'environnement doit être définie sur le chemin complet du fichier JSON d'informations d'identification que vous avez créé, en utilisant:

export GOOGLE_APPLICATION_CREDENTIALS="/home/${USER}/key.json"

Vous pouvez en savoir plus sur l' authentification de l'API Text-to-Speech .

Tout d'abord, créez une application console C # simple que vous utiliserez pour exécuter des exemples d'API Text-to-Speech:

dotnet new console -n TextToSpeechApiDemo

Vous devriez voir l'application créée et les dépendances résolues:

The template "Console Application" was created successfully.
Processing post-creation actions...
...
Restore succeeded.

Ensuite, accédez au dossier TextToSpeechApiDemo :

cd TextToSpeechApiDemo/

Et ajoutez le Google.Cloud.TextToSpeech.V1 Google.Cloud.TextToSpeech.V1 au projet:

dotnet add package Google.Cloud.TextToSpeech.V1 -v 1.0.0-beta01
info : Adding PackageReference for package 'Google.Cloud.TextToSpeech.V1' into project '/home/atameldev/TextToSpeechDemo/TextToSpeechDemo.csproj'.
log  : Restoring packages for /home/atameldev/TextToSpeechDemo/TextToSpeechDemo.csproj...
...
info : PackageReference for package 'Google.Cloud.TextToSpeech.V1' version '1.0.0-beta01' added to file '/home/atameldev/TextToSpeechDemo/TextToSpeechDemo.csproj'.

Vous êtes maintenant prêt à utiliser l'API Text-to-Speech!

Dans cette section, vous listerez d'abord toutes les voix disponibles en anglais pour la synthèse audio.

Tout d'abord, ouvrez l'éditeur de code en haut à droite de Cloud Shell:

9b8f365ab5ec7f71.png

Accédez au Program.cs fichier à l' intérieur du TextToSpeechApiDemo dossier et remplacer le code par ce qui suit:

using Google.Cloud.TextToSpeech.V1;
using System;

namespace TextToSpeechApiDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = TextToSpeechClient.Create();
            var response = client.ListVoices("en");
            foreach (var voice in response.Voices)
            {
                Console.WriteLine($"{voice.Name} ({voice.SsmlGender}); Language codes: {string.Join(", ", voice.LanguageCodes)}");
            }
        }
    }
}

Prenez une minute ou deux pour étudier le code *. * De retour dans Cloud Shell, exécutez l'application:

dotnet run

Vous devriez voir la sortie suivante:

en-US-Wavenet-D (Male); Language codes: en-US
en-AU-Wavenet-A (Female); Language codes: en-AU
en-AU-Wavenet-B (Male); Language codes: en-AU
en-AU-Wavenet-C (Female); Language codes: en-AU
en-AU-Wavenet-D (Male); Language codes: en-AU
en-GB-Wavenet-A (Female); Language codes: en-GB
en-GB-Wavenet-B (Male); Language codes: en-GB
en-GB-Wavenet-C (Female); Language codes: en-GB
...
en-GB-Standard-A (Female); Language codes: en-GB
en-GB-Standard-B (Male); Language codes: en-GB
en-AU-Standard-D (Male); Language codes: en-AU

Résumé

Au cours de cette étape, vous avez pu répertorier toutes les voix disponibles en anglais pour la synthèse audio. Vous pouvez également trouver la liste complète des voix disponibles sur la page Voix prises en charge .

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, notamment en sélectionnant une voix unique ou en modulant la sortie en hauteur, en volume, en fréquence de parole et en fréquence d'échantillonnage .

Pour synthétiser un fichier audio à partir du texte, accédez au Program.cs fichier à l' intérieur du TextToSpeechApiDemo dossier et remplacer le code qui suit:

using Google.Cloud.TextToSpeech.V1;
using System;
using System.IO;

namespace TextToSpeechApiDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = TextToSpeechClient.Create();

            // The input to be synthesized, can be provided as text or SSML.
            var input = new SynthesisInput
            {
                Text = "This is a demonstration of the Google Cloud Text-to-Speech API"
            };

            // Build the voice request.
            var voiceSelection = new VoiceSelectionParams
            {
                LanguageCode = "en-US",
                SsmlGender = SsmlVoiceGender.Female
            };

            // Specify the type of audio file.
            var audioConfig = new AudioConfig
            {
                AudioEncoding = AudioEncoding.Mp3
            };

            // Perform the text-to-speech request.
            var response = client.SynthesizeSpeech(input, voiceSelection, audioConfig);
            
            // Write the response to the output file.
            using (var output = File.Create("output.mp3"))
            {
                response.AudioContent.WriteTo(output);
            }
            Console.WriteLine("Audio content written to file \"output.mp3\"");
        }
    }
}

Prenez une minute ou deux pour étudier le code et voir comment il est utilisé pour créer un fichier audio à partir de texte *. *

De retour dans Cloud Shell, exécutez l'application:

dotnet run

Vous devriez voir la sortie suivante:

Audio content written to file "output.mp3"

Dans l'éditeur de code, vous pouvez télécharger le fichier mp3 et le lire localement sur votre machine.

4b49734846b5d15c.png

Résumé

Dans cette étape, vous avez pu utiliser l'API Text-to-Speech pour convertir une chaîne en un fichier audio mp3. En savoir plus sur la création de fichiers audio vocaux .

Vous avez appris à utiliser l'API Text-to-Speech en utilisant C # pour effectuer différents types de transcription sur des fichiers audio!

Nettoyer

Pour éviter que des frais ne soient facturés sur votre compte Google Cloud Platform pour les ressources utilisées dans ce guide de démarrage rapide:

  • Accédez à la console Cloud Platform .
  • Sélectionnez le projet que vous souhaitez arrêter, puis cliquez sur «Supprimer» en haut: cela planifie la suppression du projet.

Apprendre encore plus

Licence

Ce travail est concédé sous une licence générique Creative Commons Attribution 2.0.