Haftungsausschluss: Dies ist kein offizielles Google -Produkt.
Voice Builder ist ein OpenSource Text-to-Speech (TTS) Voice Building Tool, das sich auf Einfachheit, Flexibilität und Zusammenarbeit konzentriert. Unser Tool ermöglicht jedem mit grundlegenden Computerkenntnissen, Sprachtraining -Experimente durchzuführen und die resultierende synthetisierte Stimme anzuhören.
Wir hoffen, dass dieses Tool die Barriere für die Erstellung neuer Stimmen verringert und die TTS -Forschung beschleunigt, indem Experimente schneller und interdisziplinäre Zusammenarbeit erleichtert werden. Wir glauben, dass unser Tool dazu beitragen kann, die TTS-Forschung zu verbessern, insbesondere für Sprachen mit niedrigem Ressourcen, bei denen häufig mehr Experimente erforderlich sind, um die begrenzten Daten optimal zu nutzen.
Veröffentlichung - https://ai.google/research/pubs/pub46977
Erstellen Sie ein Projekt auf Google Cloud Platform (GCP).
Wenn Sie noch kein Konto haben, erstellen Sie bitte eines für sich.
Aktivieren Sie die Abrechnung und fordern Sie mehr Quoten für Ihr Projekt an
Docker installieren
Gehen Sie zu Firebase.com und importieren Sie das Projekt auf die Firebase -Plattform
Wenn Sie noch kein Konto haben, erstellen Sie bitte eines für sich.
Installieren Sie das GCLOUD -CMD -Line -Tool, indem Sie Cloud SDK installieren
Installieren Sie node.js
Installieren Sie das Firebase CMD Line Tool
Aktivieren Sie alle folgenden GCP -Dienste:
Verwenden Sie diese URL, um sie alle gleichzeitig zu aktivieren.
Normalerweise dauert es ein paar Minuten, bis APIs APIs und GCP auf eine andere Seite bringen, um Anmeldeinformationen für diese festzulegen. Bitte überspringen Sie und schließen Sie die Seite, da wir keine neue Anmeldeinformationen benötigen.
[Optional] Richten Sie Ihren eigenen benutzerdefinierten Datenexporteur ein
Wenn Sie nicht alle Voraussetzungen abgeschlossen haben, tun Sie dies bitte, bevor Sie in den folgenden Schritten weiter gehen.
Klonen Sie dieses Projekt in Ihr aktuelles Verzeichnis durch:
git clone https://github.com/google/voice-builder.git && cd voice-builder
Wenn Sie sich noch nicht über GCLOUD in Ihrem Konto angemeldet haben, melden Sie sich bitte an:
gcloud auth login
Wenn Sie sich nicht über Firebase in Ihrem Konto angemeldet haben, melden Sie sich bitte an:
firebase login --no-localhost
Öffnen Sie deploy.sh und bearbeiten Sie die folgenden Variablen:
Erstellen Sie GCS -Eimer für den Sprachbuilder, um jede Jobdaten zu speichern
./deploy.sh initial_setup
Bereitstellen Sie die Cloud -Funktionskomponente bereit
./deploy.sh cloud_functions
Bereitstellung der UI -Komponente
./deploy.sh ui create
Nach der Bereitstellung sollten Sie eine IP erhalten, auf die Sie aus dem Ergebnis der Befehlszeile (external_ip) zugreifen können. Sie können auf Ihre Instanz von Voice Builder zugreifen, indem Sie http: // external_ip: 3389 in Ihrem Browser besuchen.
In diesem Schritt sollten Sie alle Komponenten an Ort und Stelle haben und auf die Benutzeroberfläche unter http: // external_ip: 3389 zugreifen können. VoiceBuilder bietet Ihnen zunächst zwei Beispiel -TTS -Engines (Festival und Merlin) und öffentliche Daten von Language Resources Repo.
Sie können testen, ob jetzt alles korrekt funktioniert, indem Sie selbst eine neue Stimme erstellen, indem Sie unsere bereitgestellte Festival -Engine verwenden:
Der Datenexporteur ist eine weitere zusätzliche Komponente, die Sie dem System hinzufügen können. Normalerweise kann Voice Builder ohne Datenexporteur arbeiten. Ohne sie würde Voice Builder die Eingabedateien so verwenden, wie sie sind.
In einigen Fällen möchten Sie jedoch einige Konvertierungen in Ihre Eingabedateien anwenden, bevor Sie sie in TTS -Algorithmen einfügen. Zum Beispiel:
Voice Builder bietet Ihnen die Flexibilität, Ihren eigenen Datenexporteur hinzuzufügen, mit dem Sie Daten manipulieren können, bevor Sie den tatsächlichen TTS -Algorithmus ausführen. Ihr benutzerdefinierter Datenexporteur erhält eine Sprachspezifikation mit Dateispeicherort, ausgewählten TTS -Algorithmus, Tuning -Parametern usw. Sie können diese Informationen verwenden, um Ihre Daten zu manipulieren/konvertieren. Am Ende sollte Ihr Datenexporteur alle erforderlichen Dateien in den angegebenen Jobordner einfügen, um den tatsächlichen TTS -Algorithmus auszulösen.
Zunächst müssen Sie Ihren Datenexporteurzugriff auf GCS -Eimer gewähren.
Öffnen Sie /deploy.sh und bearbeiten Sie die folgenden Variablen:
Führen Sie den Befehl aus, um data_exporter_service_account einen ACL -Zugriff auf GCS -Eimer zu geben
./deploy.sh acl_for_data_exporter
Zweitens müssen Sie die URL Ihres Datenexporteurs in config.js festlegen, damit Voice Builder weiß, wohin Informationen zur Sprachspezifikation gesendet werden sollen.
Öffnen Sie /config.js und fügen Sie der Konfiguration data_exporter_api wie folgt hinzu:
DATA_EXPORTER_API: {
BASE_URL: '<DATA_EXPORTER_URL>',
API_KEY: '<DATA_EXPORTER_API_KEY>',
}
Wo Base_url Ihre Datenexporter -URL und API_KEY ist, ist der API -Schlüssel Ihres Datenexporteers.
Redeploy Voice Builder UI -Instanz so, dass sie jetzt eine neue Konfiguration hat und weiß, wo Sie Sprachspezifikationsinformationen senden können. an Ihren Datenexporteur
./deploy.sh ui update
Versuchen Sie, einen neuen Job zu erstellen! Voice Builder sollte nun eine Anfrage an Ihre data_exporter_url mit der Sprachspezifikation des erstellten Jobs senden.
VoiceBuildingSpecification ist eine JSON -Definition der Sprachspezifikation. Diese Spezifikation wird vom Voice Builder -Backend erstellt, wenn ein Benutzer eine Voice -Building -Anfrage aus der Benutzeroberfläche auslöst. Es kann vom Datenexporteur (über seine API an den Datenexporteur übergeben) verwendet werden, um Dateien und die TTS -Engine für seine Trainingsparameter zu konvertieren.
{
"id": int,
"voice_name": string,
"created_by": string,
"job_folder": string,
"lexicon_path": object(Path),
"phonology_path": object(Path),
"wavs_path": object(Path),
"wavs_info_path": object(Path),
"sample_rate": int,
"tts_engine": string,
"engine_params": [object(EngineParam)],
}
| Felder | Beschreibung |
|---|---|
| Ausweis | Einzigartige globale Job -ID. |
| Voice_Name | Benutzerfreundlicher Sprachname (zB Multi -Lautsprecher -Stimme). |
| erstellt_by | Der Name des Benutzers, der die Stimme erstellt hat. |
| Job_Folder | Der Weg zum GCS -Jobordner. Hier sind alle Daten im Zusammenhang mit dem Auftrag gespeichert. |
| Lexikon_Path | Weg zum Lexikon. |
| Phonology_Path | Weg zur Phonologie. |
| Wavs_Path | Pfad zu den WAVs (sollte eine TAR -Datei sein). |
| Wavs_info_Path | Pfad zur Datei mit Zuordnung von WAV -Namen und Aufforderungen. |
| sample_rate | Probenrate, mit der die Stimme gebaut werden sollte. |
| tts_engine | Art des TTS -Motors, um die Stimme zu trainieren. Der Wert hierfür wäre der Engine_ID des ausgewählten TTS Engine Engine.json. |
| motor_params | Die zusätzlichen Parameter für TTS -Engine. |
EngineParam enthält einen Parameter für TTS -Backend -Engine.
{
"key": string,
"value": string
}
| Felder | Beschreibung |
|---|---|
| Schlüssel | Parameterschlüssel. |
| Wert | Wert für den Parameterschlüssel. |
Path enthält Informationen zum Dateipfad.
{
"path": string
"file_type": string
}
| Felder | Beschreibung |
|---|---|
| Weg | Pfad zur Datei. |
| Datei_Type | Format der Datei. |
Wenn Sie beispielsweise Ihren Datenexporteur einrichten, sendet Voice Builder beim Erstellen einer Stimme mithilfe unserer vordefinierten Festival -Engine die Anforderungsbehörde ähnlich wie unten an Ihren Datenexporteur. Ihr Datenexporteur muss dann Daten vorverarbeiten und sie in job_folder Standort einfügen (das ist in diesem Beispiel gs://your-voice-builder-jobs/1 ). Nachdem alle erforderlichen Dateien im Ordner platziert sind, beginnt der tatsächliche Sprachaufbauprozess wie erwartet automatisch.
{
"id": 1,
"voice_name": "my_voice",
"createdBy": "[email protected]",
“job_folder”: "gs://your-voice-builder-jobs/1";
"engine_params": [
{
"key": "param_for_festival1",
"value": "50"
},
{
"key": "param_for_festival2",
"value": "30"
}
],
"sample_rate": "22050",
"tts_engine": "festival",
"lexicon_path": {
"path": "gs://voice-builder-public-data/examples/sinhala/lexicon.scm",
"file_type": "SCM"
},
"phonology_path": {
"path": "gs://voice-builder-public-data/examples/sinhala/phonology.json",
"file_type": "JSON_EXTERNAL_PHONOLOGY"
},
"wavs_path": {
"path": "gs://voice-builder-public-data/examples/sinhala/wavs.tar.gz",
"file_type": "TAR"
},
"wavs_info_path": {
"path": "gs://voice-builder-public-data/examples/sinhala/txt.done.data",
"file_type": "LINE_INDEX"
},
}