Avertissement: ce n'est pas un produit Google officiel.
Voice Builder est un outil de construction de text-to-speech opensource (TTS) qui se concentre sur la simplicité, la flexibilité et la collaboration. Notre outil permet à toute personne ayant des compétences informatiques de base d'exécuter des expériences de formation vocale et d'écouter la voix synthétisée résultante.
Nous espérons que cet outil réduira la barrière pour créer de nouvelles voix et accélérer la recherche TTS, en facilitant l'expérimentation et la collaboration interdisciplinaire plus rapide. Nous pensons que notre outil peut aider à améliorer la recherche TTS, en particulier pour les langues à faible ressource, où davantage d'expériments sont souvent nécessaires pour tirer le meilleur parti des données limitées.
Publication - https://ai.google/research/pubs/pub46977
Créez un projet sur Google Cloud Platform (GCP).
Si vous n'avez pas encore de compte, veuillez en créer un pour vous-même.
Activer la facturation et demander plus de quota pour votre projet
Installer Docker
Allez sur Firebase.com et importez le projet sur Firebase Platform
Si vous n'avez pas encore de compte, veuillez en créer un pour vous-même.
Installez l'outil de ligne CMD Gcloud en installant le SDK Cloud
Installer Node.js
Installez l'outil de ligne CMD Firebase
Activez tous les services GCP suivants:
Utilisez cette URL pour les activer tous en même temps.
Habituellement, il faudrait quelques minutes pour permettre aux API et GCP vous amènera à une autre page pour définir des informations d'identification pour ceux-ci. Veuillez simplement sauter et fermer la page car nous n'avons pas besoin de nouveaux paramètres d'identification.
[Facultatif] Configuration de votre propre exportateur de données personnalisé
Si vous n'avez pas terminé toutes les conditions préalables, veuillez le faire avant d'aller plus loin dans les étapes suivantes.
Clone ce projet à votre répertoire actuel par:
git clone https://github.com/google/voice-builder.git && cd voice-builder
Si vous ne vous êtes pas encore connecté à votre compte via Gcloud, veuillez vous connecter par:
gcloud auth login
De plus, si vous ne vous êtes pas connecté à votre compte via Firebase, veuillez vous connecter par:
firebase login --no-localhost
Ouvrir deploy.sh et modifier les variables suivantes:
Créez des seaux GCS pour le constructeur de voix pour stocker chaque donnée
./deploy.sh initial_setup
Déployer le composant des fonctions cloud
./deploy.sh cloud_functions
Déployer le composant d'interface utilisateur
./deploy.sh ui create
Après le déploiement, vous devriez obtenir un IP auquel vous pouvez accéder à partir du résultat de la ligne de commande (external_ip). Vous pouvez accéder à votre instance de Voice Builder en visitant http: // external_ip: 3389 dans votre navigateur.
À cette étape, vous devez avoir tous les composants en place et accéder à l'interface utilisateur sur http: // external_ip: 3389. VoiceBuilder vous fournit initialement deux exemples de moteurs TTS (Festival et Merlin) et les données publiques de Language Resources Repo.
Vous pouvez tester si tout fonctionne maintenant correctement en créant vous-même une nouvelle voix en utilisant notre moteur de festival fourni par:
L'exportateur de données est un autre composant supplémentaire que vous pouvez ajouter au système. Normalement, le constructeur de voix peut fonctionner sans exportateur de données. Sans cela, la voix Builder n'utiliserait que les fichiers d'entrée tels qu'ils sont.
Cependant, dans certains cas, vous souhaitez appliquer une conversion à vos fichiers d'entrée avant de les alimenter dans des algorithmes TTS. Par exemple:
Voice Builder vous offre la flexibilité d'ajouter votre propre exportateur de données que vous pouvez utiliser pour manipuler des données avant d'exécuter l'algorithme TTS réel. Votre exportateur de données personnalisé obtiendra une spécification vocale contenant l'emplacement du fichier, l'algorithme TTS choisi, les paramètres de réglage, etc. Vous pouvez utiliser ces informations pour manipuler / convertir vos données. En fin de compte, votre exportateur de données doit mettre tous les fichiers nécessaires dans le dossier de travail désigné pour déclencher l'algorithme TTS réel à exécuter.
Premièrement, vous devez donner à votre exportateur de données un accès aux seaux GCS.
Ouvrir /deploy.sh et modifier les variables suivantes:
Exécutez la commande pour donner data_exporter_service_account un accès ACL aux seaux GCS
./deploy.sh acl_for_data_exporter
Deuxièmement, vous devez définir l'URL de votre exportateur de données dans config.js afin que le constructeur de voix sache où envoyer des informations de spécification vocale.
Ouvrir /config.js et ajouter data_exporter_api à la configuration comme suit:
DATA_EXPORTER_API: {
BASE_URL: '<DATA_EXPORTER_URL>',
API_KEY: '<DATA_EXPORTER_API_KEY>',
}
où Base_URL est votre URL d'exportateur de données et API_KEY est la clé API de votre exportateur de données.
Redéploiter l'instance de l'interface utilisateur du constructeur vocal afin qu'il ait maintenant une nouvelle configuration et sait où envoyer des informations de spécification vocale. à votre exportateur de données
./deploy.sh ui update
Essayez de créer un nouvel emploi! Voice Builder devrait désormais envoyer une demande à votre data_exporter_url avec la spécification vocale du travail créé.
VoiceBuildingSpecification est une définition JSON de la spécification vocale. Cette spécification est créée par le backend du constructeur de voix lorsqu'un utilisateur déclenche une demande de construction de voix de l'interface utilisateur. Il peut être utilisé par l'exportateur de données (transmis à l'exportateur de données via son API) pour convertir les fichiers et par le moteur TTS pour ses paramètres de formation.
{
"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)],
}
| Champs | Description |
|---|---|
| identifiant | ID de travail mondial unique. |
| vocal_name | Nom de la voix convivial (par exemple, voix de haut-parleurs). |
| créé_by | Le nom de l'utilisateur qui a créé la voix. |
| job_folder | Le chemin vers le dossier du travail GCS. C'est là que toutes les données liées au travail sont en magasin. |
| lexique_path | Chemin vers le lexique. |
| phonologie_path | Chemin vers la phonologie. |
| wavs_path | Chemin vers les wavs (devrait être un fichier TAR). |
| wavs_info_path | Chemin vers le fichier contenant le mappage du nom et des invites WAV. |
| échantillon | Échantillon à laquelle la voix doit être construite. |
| TTS_ENGINE | Type de moteur TTS pour former la voix. La valeur pour cela serait le moteur_id à partir du moteur TTS sélectionné.json. |
| moteur_params | Les paramètres supplémentaires pour le moteur TTS. |
EngineParam contient un paramètre pour le moteur TTS Backend.
{
"key": string,
"value": string
}
| Champs | Description |
|---|---|
| clé | Clé de paramètre. |
| valeur | Valeur pour la touche de paramètre. |
Path contient des informations sur le chemin du fichier.
{
"path": string
"file_type": string
}
| Champs | Description |
|---|---|
| chemin | Chemin vers le fichier. |
| file_type | Format du fichier. |
Par exemple, si vous configurez votre exportateur de données, lorsque vous créez une voix à l'aide de notre moteur de festival prédéfini, la voix Builder enverra le corps de demande similaire à ci-dessous à votre exportateur de données. Votre exportateur de données doit ensuite prétraiter les données et les mettre dans l'emplacement job_folder (qui est gs://your-voice-builder-jobs/1 dans cet exemple). Une fois que tous les fichiers nécessaires sont placés dans le dossier, le processus réel de construction de voix commencera automatiquement comme prévu.
{
"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"
},
}