1. Übersicht
Mit der Google Cloud Text-to-Speech API (Beta) können Entwickler natürlich klingende, synthetische menschliche Sprache als Audiowiedergabe in ihre Anwendungen einbinden. Die Text-to-Speech API wandelt Text- oder SSML-Eingaben (Speech Synthesis Markup Language) in Audiodaten wie MP3 oder LINEAR16 um. Letzteres ist die in WAV-Dateien verwendete Codierung.
In diesem Codelab konzentrieren wir uns auf die Verwendung der Text-to-Speech API mit C#. Sie erfahren, wie Sie verfügbare Stimmen auflisten und Audioinhalte aus Text synthetisieren können.
Aufgaben in diesem Lab
- Cloud Shell verwenden
- Text-to-Speech API aktivieren
- API-Anfragen authentifizieren
- Google Cloud-Clientbibliothek für C# installieren
- Verfügbare Stimmen auflisten
- Audioinhalte aus Text synthetisieren
Voraussetzungen
Umfrage
Wie möchten Sie diese Anleitung nutzen?
<ph type="x-smartling-placeholder">Wie würden Sie Ihre Erfahrung mit C# bewerten?
<ph type="x-smartling-placeholder">Wie würden Sie Ihre Erfahrungen im Umgang mit Google Cloud Platform-Diensten bewerten?
<ph type="x-smartling-placeholder">2. Einrichtung und Anforderungen
Umgebung für das selbstbestimmte Lernen einrichten
- Melden Sie sich in der Google Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes Projekt. Wenn Sie noch kein Gmail- oder Google Workspace-Konto haben, müssen Sie eines erstellen.
- Der Projektname ist der Anzeigename für die Projektteilnehmer. Es handelt sich um eine Zeichenfolge, die von Google APIs nicht verwendet wird. Sie können sie jederzeit aktualisieren.
- Die Projekt-ID ist für alle Google Cloud-Projekte eindeutig und unveränderlich. Sie kann nach dem Festlegen nicht mehr geändert werden. Die Cloud Console generiert automatisch einen eindeutigen String. ist Ihnen meist egal, was es ist. In den meisten Codelabs musst du auf deine Projekt-ID verweisen, die üblicherweise als
PROJECT_ID
bezeichnet wird. Wenn Ihnen die generierte ID nicht gefällt, können Sie eine weitere zufällige ID generieren. Alternativ können Sie einen eigenen verwenden und nachsehen, ob er verfügbar ist. Sie kann nach diesem Schritt nicht mehr geändert werden und bleibt für die Dauer des Projekts erhalten. - Zur Information gibt es noch einen dritten Wert, die Projektnummer, die von manchen APIs verwendet wird. Weitere Informationen zu allen drei Werten finden Sie in der Dokumentation.
- Als Nächstes müssen Sie in der Cloud Console die Abrechnung aktivieren, um Cloud-Ressourcen/APIs verwenden zu können. Dieses Codelab ist kostengünstig. Sie können die von Ihnen erstellten Ressourcen oder das Projekt löschen, um Ressourcen herunterzufahren, um zu vermeiden, dass über diese Anleitung hinaus Kosten anfallen. Neue Google Cloud-Nutzer haben Anspruch auf das kostenlose Testprogramm mit 300$Guthaben.
Cloud Shell starten
Sie können Google Cloud zwar von Ihrem Laptop aus der Ferne bedienen, in diesem Codelab verwenden Sie jedoch Google Cloud Shell, eine Befehlszeilenumgebung, die in der Cloud ausgeführt wird.
Cloud Shell aktivieren
- Klicken Sie in der Cloud Console auf Cloud Shell aktivieren
.
Wenn Sie Cloud Shell zum ersten Mal starten, wird ein Zwischenbildschirm mit einer Beschreibung der Funktion angezeigt. Wenn ein Zwischenbildschirm angezeigt wird, klicken Sie auf Weiter.
Die Bereitstellung und Verbindung mit Cloud Shell dauert nur einen Moment.
Diese virtuelle Maschine verfügt über alle erforderlichen Entwicklertools. Es bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und wird in Google Cloud ausgeführt. Dadurch werden die Netzwerkleistung und die Authentifizierung erheblich verbessert. Viele, wenn nicht sogar alle Arbeiten in diesem Codelab können mit einem Browser erledigt werden.
Sobald Sie mit Cloud Shell verbunden sind, sollten Sie sehen, dass Sie authentifiziert sind und das Projekt auf Ihre Projekt-ID eingestellt ist.
- Führen Sie in Cloud Shell den folgenden Befehl aus, um zu prüfen, ob Sie authentifiziert sind:
gcloud auth list
Befehlsausgabe
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
- Führen Sie in Cloud Shell den folgenden Befehl aus, um zu prüfen, ob der gcloud-Befehl Ihr Projekt kennt:
gcloud config list project
Befehlsausgabe
[core] project = <PROJECT_ID>
Ist dies nicht der Fall, können Sie die Einstellung mit diesem Befehl vornehmen:
gcloud config set project <PROJECT_ID>
Befehlsausgabe
Updated property [core/project].
3. Text-to-Speech API aktivieren
Bevor Sie die Text-to-Speech API verwenden können, müssen Sie sie aktivieren. Sie können die API mit dem folgenden Befehl in Cloud Shell aktivieren:
gcloud services enable texttospeech.googleapis.com
4. Google Cloud Text-to-Speech API-Clientbibliothek für C# installieren
Erstellen Sie zuerst eine einfache C#-Konsolenanwendung, mit der Sie Text-to-Speech API-Beispiele ausführen:
dotnet new console -n TextToSpeechApiDemo
Die erstellte Anwendung und die Abhängigkeiten sollten aufgelöst werden:
The template "Console Application" was created successfully.
Processing post-creation actions...
...
Restore succeeded.
Gehen Sie dann zum Ordner TextToSpeechApiDemo
:
cd TextToSpeechApiDemo/
Fügen Sie dem Projekt außerdem das NuGet-Paket Google.Cloud.TextToSpeech.V1
hinzu:
dotnet add package Google.Cloud.TextToSpeech.V1
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'.
Jetzt sind Sie bereit, die Text-to-Speech API zu verwenden.
5. Verfügbare Stimmen auflisten
In diesem Abschnitt listen Sie zuerst alle verfügbaren Stimmen für die Audiosynthese auf Englisch auf.
Öffnen Sie zuerst oben rechts in Cloud Shell den Code-Editor:
Gehen Sie zur Datei Program.cs
im Ordner TextToSpeechApiDemo
und ersetzen Sie den Code durch folgenden Code:
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)}");
}
}
}
}
Nimm dir ein oder zwei Minuten Zeit, um den Code zu studieren.* Führen Sie die Anwendung in Cloud Shell aus:
dotnet run
Es sollte folgende Ausgabe angezeigt werden:
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
Zusammenfassung
In diesem Schritt konnten Sie alle verfügbaren Stimmen für die Audiosynthese auf Englisch auflisten. Die vollständige Liste der verfügbaren Stimmen finden Sie auch auf der Seite Unterstützte Stimmen.
6. Audioinhalte aus Text synthetisieren
Mit der Text-to-Speech API können Sie einen String in Audiodaten umwandeln. Sie können die Ausgabe der Sprachsynthese auf verschiedene Arten konfigurieren, z. B. durch die Auswahl einer bestimmten Stimme oder die Modulation der Ausgabe bezüglich Tonhöhe, Lautstärke, Sprechgeschwindigkeit und Abtastrate.
Wenn Sie eine Audiodatei aus Text synthetisieren möchten, rufen Sie die Datei Program.cs
im Ordner TextToSpeechApiDemo
auf und ersetzen Sie den Code durch folgenden Code:
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\"");
}
}
}
Nehmen Sie sich ein bis zwei Minuten Zeit, um sich mit dem Code vertraut zu machen und zu erfahren, wie damit eine Audiodatei aus Text erstellt wird.*
Führen Sie die Anwendung in Cloud Shell aus:
dotnet run
Es sollte folgende Ausgabe angezeigt werden:
Audio content written to file "output.mp3"
Im Code-Editor können Sie die MP3-Datei herunterladen und lokal auf Ihrem Computer abspielen.
Zusammenfassung
In diesem Schritt konnten Sie mithilfe der Text-to-Speech API einen String in eine MP3-Audiodatei konvertieren. Weitere Informationen zum Erstellen von Sprach-Audiodateien
7. Glückwunsch!
Sie haben gelernt, wie Sie die Text-to-Speech API mit C# verwenden, um verschiedene Arten von Transkriptionen für Audiodateien durchzuführen.
Bereinigen
So vermeiden Sie, dass Ihr Google Cloud Platform-Konto für die in diesem Schnellstart verwendeten Ressourcen belastet wird:
- Rufen Sie die Cloud Platform Console auf.
- Wählen Sie das Projekt aus, das Sie beenden möchten, und klicken Sie auf „Löschen“. oben: Dadurch wird das Projekt zum Löschen vorgemerkt.
Weitere Informationen
- Google Cloud Text-to-Speech API: https://cloud.google.com/text-to-speech/docs
- C#/.NET auf der Google Cloud Platform: https://cloud.google.com/dotnet/
- Google Cloud-.NET-Client: https://googlecloudplatform.github.io/google-cloud-dotnet/
Lizenz
Dieser Text ist mit einer Creative Commons Attribution 2.0 Generic License lizenziert.