Google Cloud - Text to Speech

Brouillon

À venir

0 commentaire

image

Google vient de sortir, en beta, un service sur Google Cloud Platform permettant de convertir du texte en données audio.

Le rendu audio est bien meilleur qu’avec le SpeechSynthesizer du Framework .Net.

Pour information, il existe le même service sur Azure en beta lui aussi.

 

Activation de l’API Cloud Text-to-Speech

Il faut commencer par activer l’API sur votre compte Google Cloud Platform.

 

Rendez-vous sur votre compte Google Cloud Platform et cliquez, dans la partie “API et services”, sur “Tableau de bord”.

Puis cliquez sur “Activer les API et les services”

image

Recherchez l’API “Cloud Text-to-Speech”.

image

Cliquez dessus pour continuer.

image

Cliquez sur le bouton “Activer”.

L’API est maintenant active sur votre compte Google Cloud.

 

Authentification à Google Cloud Platform

On va maintenant gérer l’authentification sur Google Cloud Platform.

 

Rendez-vous sur votre compte Google Cloud Platform et cliquez, dans la partie “API et services”, sur “Identifiants”.

image

Dans la partie « Clés de compte de service » sur l’écran qui s’affiche, cliquez sur “Gérer les comptes de service”.

  

Si vous n’en avez pas, créez un compte de service pour votre application

 image

 

  Enfin, dans la partie “Actions”, cliquez sur “Créer une clé”.

image

 

Cliquez sur « Créer » pour générer votre clé privée. Garder précieusement le fichier Json contenant votre clé privée, dont le nom est au format : “softfluent-127924-89b6632e0173.json”.

 image

Copiez ce fichier dans un répertoire, par exemple : “C:\Credentials”

 

Variable d’environnement

La variable d’environnement GOOGLE_APPLICATION_CREDENTIALS doit contenir le chemin vers la clé privée générée précédemment.

Exemple: “C:\Credentials\softfluent-127924-89b6632e0173.json”

 

Vous pouvez, par exemple, setter la variable d’environnement en C# :

Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "C:\\Credentials\\softfluent-127924-89b6632e0173.json");

 

Package NuGet

Il ne vous reste plus qu’à installer dans votre projet le package NuGet TextToSpeech de Google qui est, à l’heure où j’écris cet article, en version beta.

Google.Cloud.TextToSpeech.V1

Une fois installé, vous pourrez utiliser le client TextToSpeech fourni par Google pour accéder à ce service.

 

Code

La méthode ci-dessous créé un Stream audio à partir d’une chaine de caractère.

    public static Stream CreateStreamAudio(string text)
        {
            TextToSpeechClient client = TextToSpeechClient.Create();
            SynthesizeSpeechRequest request = new SynthesizeSpeechRequest();
            request.Input = new SynthesisInput();
            request.Input.Text = text;
            
            request.AudioConfig = new AudioConfig();
            request.AudioConfig.AudioEncoding = AudioEncoding.Linear16;
            request.AudioConfig.SampleRateHertz = 44100;
            request.Voice = new VoiceSelectionParams();
            request.Voice.LanguageCode = "fr-FR";
            request.Voice.SsmlGender = SsmlVoiceGender.Male;
            SynthesizeSpeechResponse response = client.SynthesizeSpeech(request);
            
            Stream stream = new MemoryStream();
            response.AudioContent.WriteTo(stream);

            stream.Position = 0;

            return stream;
        }

Pour la voix on peut spécifier la langue, avec le code de la langue, ici “fr-FR”.

On peut aussi spécifier le genre, c’est-à-dire homme ou femme.

Le type d’encodage peut être définis en Linear16 (Wave), en Mp3, etc.

 

Le service nous renvoie, dans la propriété AudioContent, le contenu audio qui est au format ByteString (Tableau de byte).

Pour l’utiliser dans un Stream par exemple il suffit d’appeler la méthode suivante.

 response.AudioContent.WriteTo(stream);

 

Tarif

Aujourd’hui, le service est gratuit jusqu’à 1 million de caractères par mois en WaveNet (Technologie reposant sur du machine Learning et permettant d’avoir une voix plus naturelle), au-delà le tarif est de 16$ par million de caractère supplémentaire.

Le service, en qualité basique, est gratuit jusqu’à 4 millions de caractères par mois, au-delà le tarif est de 4$ par million de caractère supplémentaire.

 

 

Vous êtes maintenant prêt à faire parler vos applications, avec une voix plus naturelle et moins robotique que ce qui se faisait jusqu’à aujourd’hui.

 

.

Xavier ARDISSON

Diplomé de l'école polytechnique universitaire de Paris VI (UPMC)

Profil de l'auteur