Demandez à Google Text-to-Speech de créer des données audio (narration) pour le matériel vidéo (avec des échantillons C # et Python)

Aperçu

Ceci est une note d'introduction du service de synthèse vocale "** Cloud Text-to-Speech **" fourni par Google. J'ai expliqué le plus en détail possible le flux entre l'activation du service API et l'obtention du fichier d'authentification et son appel depuis votre propre programme (C # ou Python).

En gros, examinez le contenu du "[Quickstart: Use Client Library] officiel (https://cloud.google.com/text-to-speech/docs/quickstart-client-libraries?hl=ja)" Il est expliqué par un plan (notez que les étapes qui semblent inutiles sont sautées).

** Cloud Text-to-Speech ** est un service cloud qui génère ** des données audio lues à voix haute ** (.mp3) à partir de données texte (OK en japonais). Il est possible de produire une voix naturelle assez proche des humains. Vous pouvez vérifier la qualité en donnant n'importe quel texte (le japonais est également OK) depuis ici.

Inscrivez-vous sur Google Cloud Platform

Inscrivez-vous en tant qu'utilisateur de Google Cloud (https://cloud.google.com/?hl=ja).

Vous pouvez utiliser votre compte Google pour un essai gratuit. Cependant, une carte de crédit est requise au moment de l'inscription. Cependant, après la fin de la période, il ne sera pas automatiquement transféré sur un compte payant **, et même si vous passez à un compte payé, les frais seront très raisonnables (personnellement). Inscrivons-nous sans trop d'efforts.

2020-04-30_10h18_41.png

Frais d'utilisation estimés

Ci-dessous, nous allons procéder à l'explication comme ** enregistré ** sur Google Cloud.
2020-04-30_14h35_05.png

Activation du service Text-to-Speech et acquisition de fichiers d'authentification

Accédez à Google Cloud Platform et connectez-vous.
2020-04-30_13h13_35.png

Une boîte de dialogue s'affiche. Sélectionnez "** Nouveau projet **".
2020-04-30_13h23_04.png

Entrez un nom de projet approprié (ici, Text To Speech 20xxx) et cliquez sur" ** Créer ** ".
2020-04-30_13h24_501.png

Vous serez redirigé vers le tableau de bord, alors ** basculez vers le projet que vous venez de créer **.
2020-04-30_13h27_19.png

Cliquez sur le menu en haut à gauche pour accéder à "** API et services ", " Tableau de bord **".
2020-04-30_13h32_01.png

Sélectionnez ** Activer les API et les services **.
2020-04-30_13h34_24.png

Tapez Text to Speech dans la zone de texte.
2020-04-30_13h36_53.png

Sélectionnez ** API Cloud Text-to-Speech **. 2020-04-30_13h37_58.png

Sélectionnez ** Activer **.
2020-04-30_13h39_35.png

Sélectionnez «** Créer les informations d'identification **» requis pour utiliser le service à partir de votre propre programme.
2020-04-30_13h40_59.png

Vous serez redirigé vers l'écran «** Ajouter des informations d'identification au projet », sélectionnez « API Cloud Text-to-Speech » dans la liste déroulante ci-dessous, puis « Authentification requise» Cliquez sur "Information **".

L'affichage changera, alors sélectionnez "** Non, non utilisé " et cliquez à nouveau sur " Informations d'identification requises **".
2020-04-30_13h53_29.png

Entrez un ** nom de compte de service ** approprié (ici, test). ** Aucun rôle n'est sélectionné **. De plus, «l'ID de compte de service» est généré automatiquement. Sélectionnez ** Suivant **.
2020-04-30_13h54_42.png

La boîte de dialogue suivante s'affiche. Sélectionnez "** Créer sans rôle **".
2020-04-30_13h57_51.png

La boîte de dialogue suivante s'affiche et le ** fichier JSON ** contenant les informations d'authentification est téléchargé sur votre PC.
2020-04-30_13h58_37.png

Supposons que vous renommez ce fichier en " credentials.json "et le placez dans" C: \ Users \ xxx \ Desktop".

Dans le [Quick Start] officiel (https://cloud.google.com/text-to-speech/docs/quickstart-client-libraries?hl=ja), le chemin de ce fichier est défini sur ** variable d'environnement **. Explique comment s'inscrire en tant que GOOGLE_APPLICATION_CREDENTIALS et se référer aux informations via les variables d'environnement dans le programme. Par contre, ** Ici, la méthode consiste à se référer à l'information en spécifiant directement le chemin du programme sans l'enregistrer dans la variable d'environnement </ font> **.

Appel depuis un programme C # (.NET Core)

Démarrez VisualStudio et sélectionnez [** Fichier ] - [ Nouveau ] - [ Projet ], puis sélectionnez " Visual C # " - " Console App (.NET Core) * *"Choisir.

Sélectionnez [** Outils ] - [ NuGet Package Manager ] - [ Package Manager Console **] dans le menu. Entrez ʻInstall-Package Google.Cloud.TextToSpeech.V1 -Pre` dans la console pour l'exécuter.

PM> Install-Package Google.Cloud.TextToSpeech.V1 -Pre

Réécrivez le contenu de Program.cs comme suit.

Program.cs


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

public class QuickStart {
  public static void Main(string[] args) {

    var credentialsFilePath = @"C:\Users\xxx\Desktop\credentials.json";

    var textToSpeechClientBuilder = new TextToSpeechClientBuilder() {
      CredentialsPath = credentialsFilePath
    };
    var client = textToSpeechClientBuilder.Build();

    //Paramètres de texte en lecture à voix haute
    SynthesisInput input = new SynthesisInput {
      Text = "La destination est Nihonbashi."
    };

    //Réglage du type de voix
    VoiceSelectionParams voice = new VoiceSelectionParams {
      Name = "ja-JP-Wavenet-D",
      LanguageCode = "ja-JP",
      SsmlGender = SsmlVoiceGender.Neutral
    };

    //Paramètres de sortie audio
    AudioConfig config = new AudioConfig {
      AudioEncoding = AudioEncoding.Mp3,
      Pitch = -2.0
    };

    // Text-to-Générer une demande de parole
    var response = client.SynthesizeSpeech(new SynthesizeSpeechRequest {
      Input = input,
      Voice = voice,
      AudioConfig = config
    });

    // Text-to-Enregistrement de la réponse vocale (fichier vocal)
    var fileName = DateTime.Now.ToString("yyyy-MM-dd_HHmmss") + ".mp3";
    using (Stream output = File.Create(fileName)) {
      response.AudioContent.WriteTo(output);
      Console.WriteLine($"Contenu audio'{fileName}'Enregistré sous.");
    }

    Console.WriteLine("Voulez-vous ouvrir le dossier dans lequel vous exportez le fichier?[Y]/n");
    var k = Console.ReadKey();
    if (k.Key != ConsoleKey.N && k.Key != ConsoleKey.Escape) {
      Process.Start("explorer.exe", Directory.GetCurrentDirectory());
    }
  }
}

Une fois exécuté, un fichier MP3 indiquant "Mokukichi est Nihonbashi" sera généré.

De plus, le ** langage de balisage de synthèse vocale ** (SSML) est également pris en charge, et si vous le modifiez comme suit Il dit: "Mokukichi n'est pas ** Nihonbashi **, mais ** Nipponbashi **." Vous pouvez également insérer des ** intervalles **, comme par <break time =" 200ms "/>.

Format SSML


SynthesisInput input = new SynthesisInput {
  Ssml = "<speak>La destination n'est pas Nihonbashi,<sub alias='Nipponbashi'>Nihonbashi</sub>est.</speak>".Replace("'", "\"")
};

Appel depuis un programme Python

pip install --upgrade google-cloud-texttospeech

python


from datetime import datetime
from pytz import timezone
from google.cloud import texttospeech
from google.oauth2 import service_account

credentials = service_account.Credentials.from_service_account_file('credentials.json')
client = texttospeech.TextToSpeechClient(credentials=credentials)

synthesis_input = texttospeech.types.SynthesisInput(
  text='La destination est Akihabara.')

voice = texttospeech.types.VoiceSelectionParams(
  language_code='ja-JP',
  name='ja-JP-Wavenet-D',
  ssml_gender=texttospeech.enums.SsmlVoiceGender.NEUTRAL)

audio_config = texttospeech.types.AudioConfig(
  audio_encoding=texttospeech.enums.AudioEncoding.MP3,
  pitch = -2.0
  )

response = client.synthesize_speech(synthesis_input, voice, audio_config)

now = datetime.now(timezone('Asia/Tokyo'))
filename = now.strftime('%Y-%m-%d_%H%M%S.mp3')
with open(filename, 'wb') as out:
  out.write(response.audio_content)
  print(f'Audio content written to file {filename}')

Recommended Posts

Demandez à Google Text-to-Speech de créer des données audio (narration) pour le matériel vidéo (avec des échantillons C # et Python)
Benchmarks langage C, Java, Python avec factorisation prime
Obtenez des données de l'API d'analyse avec le client API Google pour python
Créez un fichier audio avec la fonction de synthèse vocale de Google Text To Speak et vérifiez le texte comme guide de parole pendant 3 minutes.
Créez des rendez-vous pour le concours AtCoder sur Google Agenda avec Python et GAS
Créez une illusion rayée avec correction gamma pour Python3 et openCV3
Créer un Ubuntu de démarrage USB avec un environnement Python pour l'analyse des données
Créer Awaitable avec l'API Python / C
Créez des données audio bruyantes avec SoX
Créez et modifiez des feuilles de calcul dans n'importe quel dossier sur Google Drive avec python
Acquisition et visualisation des données de capteurs pour la croissance des plantes avec Intel Edison et Python
J'ai 0 ans d'expérience en programmation et je défie le traitement des données avec python
Modifier la diapositive (Powerpo pour Google) avec Python (cas RPA à faible coût avec API Google et Python)
Créer et décrypter du code César avec python
RaspberryPi L Chika avec Python et C #
Communication de données chiffrées entre Python et C #
Acquisition de données à partir de l'API d'analyse avec l'application Web Client API Google pour python Partie 2
Comment utiliser OAuth et API de compte de service avec le client API Google pour python
Alignez le nombre d'échantillons entre les classes de données pour l'apprentissage automatique avec Python
Créez des données de test comme ça avec Python (partie 1)
Raisonnement causal et recherche causale par Python (pour les débutants)
Essayez d'exécuter Google Chrome avec Python et Selenium
Créer un LINE BOT avec Minette pour Python
Envelopper C avec Cython pour une utilisation à partir de Python
Envelopper C ++ avec Cython pour une utilisation à partir de Python
Testez les modèles et fonctions Python déployés en ligne avec Cloud Pack for Data avec des données d'entrée au format formulaire
Créez rapidement un tableau de bord d'analyse de données Python avec Streamlit et déployez-le sur AWS
Pour ceux qui débutent en programmation mais qui ont décidé d'analyser les données avec Python