1. Übersicht
Mit der Google Cloud Text-to-Speech API 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 Node.js. 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 Node.js installieren
- Verfügbare Stimmen auflisten
- Audioinhalte aus Text synthetisieren
Voraussetzungen
- Google Cloud Platform-Projekt
- Browser, z. B. Chrome oder Firefox
- Vorkenntnisse im Umgang mit Node.js
Umfrage
Wie möchten Sie diese Anleitung nutzen?
<ph type="x-smartling-placeholder">Wie würden Sie Ihre Erfahrung mit Node.js 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 Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes Projekt. Wenn Sie noch kein Gmail- oder G Suite-Konto haben, müssen Sie ein Konto erstellen.
Notieren Sie sich die Projekt-ID, also den projektübergreifend nur einmal vorkommenden Namen eines Google Cloud-Projekts. Der oben angegebene Name ist bereits vergeben und kann leider nicht mehr verwendet werden. Sie wird in diesem Codelab später als PROJECT_ID
bezeichnet.
- Als Nächstes müssen Sie in der Cloud Console die Abrechnung aktivieren, um Google Cloud-Ressourcen nutzen zu können.
Dieses Codelab sollte möglichst wenig kosten. Folgen Sie der Anleitung im Abschnitt „Bereinigen“, . Hier erfahren Sie, wie Sie Ressourcen herunterfahren, damit Ihnen über dieses Tutorial hinaus keine Kosten entstehen. Neue Google Cloud-Nutzer können an einem kostenlosen Testzeitraum mit 300$Guthaben teilnehmen.
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 verwenden, wird ein Zwischenbildschirm (below the fold) angezeigt, in dem beschrieben wird, worum es sich dabei handelt. Klicken Sie in diesem Fall auf Weiter. Der Chat wird nie wieder angezeigt. So sieht dieser einmalige Bildschirm aus:
Die Bereitstellung und Verbindung mit Cloud Shell dauert nur einen Moment.
Diese virtuelle Maschine verfügt über sämtliche Entwicklertools, die Sie benötigen. 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 Sie ganz einfach mit einem Browser oder Ihrem Chromebook erledigen.
Sobald Sie mit Cloud Shell verbunden sind, sollten Sie sehen, dass Sie bereits authentifiziert sind und dass das Projekt bereits 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`
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. API-Anfragen authentifizieren
Für Anfragen an die Text-to-Speech API benötigen Sie ein Dienstkonto. Ein Dienstkonto gehört zu Ihrem Projekt und wird von der Google Client Node.js-Bibliothek für Text-to-Speech API-Anfragen verwendet. Wie jedes andere Nutzerkonto wird auch ein Dienstkonto durch eine E-Mail-Adresse repräsentiert. In diesem Abschnitt verwenden Sie das Cloud SDK, um ein Dienstkonto zu erstellen. Anschließend erstellen Sie Anmeldedaten, die Sie als Dienstkonto authentifizieren müssen.
Legen Sie zuerst mit GOOGLE_CLOUD_PROJECT
eine Umgebungsvariable fest, die Sie in diesem Codelab verwenden werden:
export GOOGLE_CLOUD_PROJECT=$(gcloud config get-value core/project)
Erstellen Sie als Nächstes ein neues Dienstkonto, um mit dem folgenden Befehl auf die Text-to-Speech API zuzugreifen:
gcloud iam service-accounts create my-text-to-speech-sa \
--display-name "my text-to-speech codelab service account"
Erstellen Sie als Nächstes Anmeldedaten, mit denen Ihr Node.js-Code sich als neues Dienstkonto anmeldet. Erstellen Sie diese Anmeldedaten und speichern Sie sie als JSON-Datei „~/key.json“. indem Sie den folgenden Befehl verwenden:
gcloud iam service-accounts keys create ~/key.json \
--iam-account my-text-to-speech-sa@${GOOGLE_CLOUD_PROJECT}.iam.gserviceaccount.com
Legen Sie schließlich die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS
fest, die von der Node.js-Bibliothek der Text-to-Speech API verwendet wird, die im nächsten Schritt beschrieben wird, um Ihre Anmeldedaten zu finden. Die Umgebungsvariable sollte auf den vollständigen Pfad der JSON-Datei mit den Anmeldedaten festgelegt werden, indem Sie Folgendes verwenden:
export GOOGLE_APPLICATION_CREDENTIALS="/home/${USER}/key.json"
5. Google Cloud Text-to-Speech API-Clientbibliothek für Node.js installieren
Erstellen Sie zuerst ein Projekt, mit dem Sie dieses Text-to-Speech API-Lab ausführen, und initialisieren Sie ein neues Node.js-Paket in einem Ordner Ihrer Wahl:
npm init
In NPM werden verschiedene Fragen zur Projektkonfiguration gestellt, z. B. Name und Version. Drücken Sie für jede Frage ENTER
, um die Standardwerte zu übernehmen. Der Standardeinstiegspunkt ist eine Datei mit dem Namen index.js
.
Installieren Sie als Nächstes die Google Cloud Speech-Bibliothek im Projekt:
npm install --save @google-cloud/text-to-speech
Weitere Informationen zum Einrichten einer Node.js-Entwicklung für Google Cloud finden Sie im Einrichtungsleitfaden.
Jetzt sind Sie bereit, die Text-to-Speech API zu verwenden.
6. Verfügbare Stimmen auflisten
In diesem Abschnitt listen Sie zuerst alle verfügbaren Stimmen für die Audiosynthese auf Englisch auf.
Gehen Sie zur Datei index.js
im Code und ersetzen Sie den Code durch Folgendes:
'use strict';
/**
* Lists available voices for the specified language.
*
* @param {string} languageCode - The language code.
*/
async function listVoices(languageCode) {
const textToSpeech = require('@google-cloud/text-to-speech');
const client = new textToSpeech.TextToSpeechClient();
const [result] = await client.listVoices({languageCode});
const voices = result.voices;
voices.forEach((voice) => {
console.log(`${voice.name} (${voice.ssmlGender}): ${voice.languageCodes}`);
});
}
listVoices('en');
Nehmen Sie sich ein bis zwei Minuten Zeit, um sich den Code anzusehen. Führen Sie die Anwendung aus:
node .
Es sollte folgende Ausgabe angezeigt werden:
en-US-Standard-A (MALE): en-US
en-US-Standard-B (MALE): en-US
en-US-Standard-C (FEMALE): en-US
en-US-Standard-D (MALE): en-US
en-US-Standard-E (FEMALE): en-US
en-US-Standard-F (FEMALE): en-US
...
7. 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.
Gehen Sie zur Datei index.js
im Verzeichnis und hängen Sie den folgenden Code an:
/**
* Sythesizes sample text into an .mp3 file.
*/
async function synthesize() {
const textToSpeech = require('@google-cloud/text-to-speech');
const fs = require('fs');
const util = require('util');
const client = new textToSpeech.TextToSpeechClient();
const text = 'This is a demonstration of the Google Cloud Text-to-Speech API';
const request = {
input: {text: text},
voice: {languageCode: 'en-US', ssmlGender: 'NEUTRAL'},
audioConfig: {audioEncoding: 'MP3'},
};
const [response] = await client.synthesizeSpeech(request);
// Write the binary audio content to a local file
const writeFile = util.promisify(fs.writeFile);
await writeFile('output.mp3', response.audioContent, 'binary');
console.log('Audio content written to file: output.mp3');
}
synthesize();
Nehmen Sie sich ein bis zwei Minuten Zeit, um sich den Code anzusehen und zu sehen, wie damit eine Audiodatei aus Text erstellt wird.
node .
Es sollte folgende Ausgabe angezeigt werden:
Audio content written to file "output.mp3"
8. Glückwunsch!
Sie haben gelernt, wie Sie die Text-to-Speech API mit Node.js 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
- Node.js auf der Google Cloud Platform: https://cloud.google.com/nodejs/
- Node.js-Client für Google Cloud: https://googlecloudplatform.github.io/google-cloud-node/
Lizenz
Dieser Text ist mit einer Creative Commons Attribution 2.0 Generic License lizenziert.