Dies ist eine Einführung in den von Google bereitgestellten Sprachsynthesedienst "** Cloud Text-to-Speech **". Ich habe den Ablauf von der Aktivierung des API-Dienstes bis zum Abrufen der Authentifizierungsdatei und dem Aufrufen von Ihrem eigenen Programm (C # oder Python) so detailliert wie möglich erläutert.
Überprüfen Sie grundsätzlich den Inhalt des offiziellen "Schnellstart: Client-Bibliothek verwenden". Es wird mit einem Schuss erklärt (beachten Sie, dass Schritte, die unnötig erscheinen, übersprungen werden).
** Cloud Text-to-Speech ** ist ein Cloud-Dienst, der ** vorgelesene Audiodaten ** (.mp3) aus Textdaten generiert (japanisch OK). Es ist möglich, eine natürliche Stimme auszugeben, die dem Menschen sehr nahe kommt. Sie können die Qualität überprüfen, indem Sie einen Text (Japanisch ist auch in Ordnung) von hier angeben.
Registrieren Sie sich als Nutzer in Google Cloud (https://cloud.google.com/?hl=ja).
Sie können Ihren Google Count für eine kostenlose Testversion verwenden. Zum Zeitpunkt der Registrierung ist jedoch eine Kreditkarte erforderlich. Nach Ablauf des Zeitraums wird es jedoch nicht automatisch auf ein bezahltes Konto ** übertragen, und selbst wenn Sie zu einer bezahlten Zählung wechseln, ist die Gebühr (persönlich) sehr angemessen. Lassen Sie uns ohne großen Aufwand registrieren.
Im Folgenden werden wir mit der Erklärung fortfahren, die in Google Cloud als ** registriert ** registriert ist.
Greifen Sie auf Google Cloud Platform zu und melden Sie sich an.
Ein Dialogfeld wird angezeigt. Wählen Sie "** Neues Projekt **".
Geben Sie einen geeigneten Projektnamen ein (hier "Text To Speech 20xxx") und klicken Sie auf "** Erstellen **".
Sie kehren zum Dashboard zurück. Wechseln Sie also zu dem gerade erstellten Projekt.
Klicken Sie auf das Menü oben links, um zu "** APIs und Dienste ", " Dashboard **" zu gelangen.
Wählen Sie ** APIs und Dienste aktivieren **.
Geben Sie Text to Speech in das Textfeld ein.
Wählen Sie ** Cloud Text-to-Speech API **.
Wählen Sie ** Aktivieren **.
Wählen Sie "** Anmeldeinformationen erstellen **", um den Dienst aus Ihrem eigenen Programm zu nutzen.
Sie werden zum Bildschirm "** Anmeldeinformationen zum Projekt hinzufügen " weitergeleitet. Wählen Sie " Cloud-Text-zu-Sprache-API " aus der Dropdown-Liste unten und dann " Erforderliche Authentifizierung". Klicken Sie auf "Information **".
Die Anzeige wechselt, wählen Sie also "** Nein, nicht verwendet " und klicken Sie erneut auf " Erforderliche Anmeldeinformationen **".
Geben Sie einen geeigneten ** Dienstkontonamen ** ein (hier test
). ** Es ist keine Rolle ausgewählt **. Zusätzlich wird automatisch die "Service Account ID" generiert. Wählen Sie ** Weiter **.
Der folgende Dialog wird angezeigt. Wählen Sie "** Ohne Rolle erstellen **".
Das folgende Dialogfeld wird angezeigt und die ** JSON-Datei ** mit den Authentifizierungsinformationen wird auf Ihren PC heruntergeladen.
Angenommen, Sie benennen diese Datei in " credentials.json
"um und platzieren sie in" C: \ Users \ xxx \ Desktop
".
Im offiziellen Schnellstart lautet der Pfad dieser Datei ** Umgebungsvariable **. Erklärt, wie Sie sich als "GOOGLE_APPLICATION_CREDENTIALS" registrieren und über Umgebungsvariablen im Programm auf die Informationen verweisen. Auf der anderen Seite ** Hier besteht die Methode darin, auf die Informationen zu verweisen, indem der Pfad aus dem Programm direkt angegeben wird, ohne ihn in der Umgebungsvariablen </ font> ** zu registrieren.
Starten Sie VisualStudio und wählen Sie [** Datei ] - [ Neu ] - [ Projekt ]. Wählen Sie dann " Visual C # " - " Konsolen-App (.NET Core) *. *"Wählen.
Wählen Sie im Menü die Option [** Tools ] - [ NuGet Package Manager ] - [ Package Manager Console **]. Geben Sie "Install-Package Google.Cloud.TextToSpeech.V1 -Pre" in die Konsole ein, um es auszuführen.
PM> Install-Package Google.Cloud.TextToSpeech.V1 -Pre
Schreiben Sie den Inhalt von Program.cs
wie folgt um.
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();
//Vorlesetexteinstellungen
SynthesisInput input = new SynthesisInput {
Text = "Das Ziel ist Nihonbashi."
};
//Einstellung des Sprachtyps
VoiceSelectionParams voice = new VoiceSelectionParams {
Name = "ja-JP-Wavenet-D",
LanguageCode = "ja-JP",
SsmlGender = SsmlVoiceGender.Neutral
};
//Audioausgabeeinstellungen
AudioConfig config = new AudioConfig {
AudioEncoding = AudioEncoding.Mp3,
Pitch = -2.0
};
// Text-to-Sprachanforderung generieren
var response = client.SynthesizeSpeech(new SynthesizeSpeechRequest {
Input = input,
Voice = voice,
AudioConfig = config
});
// Text-to-Speichern der Sprachantwort (Sprachdatei)
var fileName = DateTime.Now.ToString("yyyy-MM-dd_HHmmss") + ".mp3";
using (Stream output = File.Create(fileName)) {
response.AudioContent.WriteTo(output);
Console.WriteLine($"Audioinhalt'{fileName}'Gespeichert als.");
}
Console.WriteLine("Möchten Sie den Ordner öffnen, in dem Sie die Datei ausgeben?[Y]/n");
var k = Console.ReadKey();
if (k.Key != ConsoleKey.N && k.Key != ConsoleKey.Escape) {
Process.Start("explorer.exe", Directory.GetCurrentDirectory());
}
}
}
Bei der Ausführung wird eine MP3-Datei "Mokukichi is Nihonbashi" generiert.
Darüber hinaus wird auch die Sprachsynthese-Markup-Sprache ** (SSML) unterstützt, und wenn Sie sie wie folgt ändern
Es lautet: "Mokukichi ist nicht ** Nihonbashi **, sondern ** Nipponbashi **." Sie können auch ** Intervalle ** einfügen, z. B. durch "
SSML-Format
SynthesisInput input = new SynthesisInput {
Ssml = "<speak>Das Ziel ist nicht Nihonbashi,<sub alias='Nipponbashi'>Nihonbashi</sub>ist.</speak>".Replace("'", "\"")
};
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='Das Ziel ist 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