Synthèse vocale dans Godot : répliques et voix en jeu
Les jeux Godot sont souvent faits par une personne ou une petite équipe, et le doublage est rarement dans le budget. La synthèse vocale donne une voix à chaque réplique le jour où elle est écrite : pour les prototypes, les dialogues provisoires, les tutoriels et les jeux qui gardent volontairement une voix de synthèse.
Le moteur gratuit SuperClonica vocalise hors ligne sur un processeur ordinaire. Ce guide montre les deux façons de l’utiliser avec Godot, fichiers WAV générés à l’avance et voix en jeu depuis GDScript, et quelles voix vous pouvez publier.
Deux façons de donner une voix à un jeu Godot
L’ordinateur d’un joueur ne fera pas tourner de serveur vocal, un jeu solo publié doit donc embarquer les fichiers.
- Fichiers générés à l’avance : vocalisez chaque réplique pendant le développement et gardez les WAV dans le projet. Ils sont exportés avec le jeu comme n’importe quel son.
- Voix en jeu : le jeu envoie du texte à un serveur SuperClonica et joue la réponse. Idéal pour les outils d’éditeur, les prototypes et les jeux en ligne avec leur propre serveur.
- Dans les deux cas, la synthèse tourne sur un processeur ordinaire, sans frais par caractère.
- Le modèle parle 31 langues ; le chinois n’est pas encore pris en charge.
Choisir des voix gratuitement
Sur la page de n’importe quelle voix, saisissez une réplique de votre personnage, 30 à 100 caractères, choisissez la langue et cliquez sur le bouton de synthèse. En quelques secondes, vous entendez si la voix convient, sans compte.
Générer les dialogues à l’avance
Le même texte, la même voix et le même seed donnent toujours le même audio : ne régénérez que les répliques modifiées et versionnez le script, pas l’audio.
- Installez le moteur : python -m pip install superclonica-cpu.
- Gardez les répliques dans un tableau avec un identifiant, une langue et le texte.
- Un court script le parcourt : superclonica --text "Bienvenue au village" --voice npc.json --lang fr --output voice/npc_greeting_01.wav.
- Godot importe tout seul les nouveaux WAV du projet ; jouez-les avec un AudioStreamPlayer.
La voix en jeu depuis GDScript
Lancez le serveur sur n’importe quel processeur : docker run -d -p 8000:8000 -v superclonica-models:/models superclonica/superclonica:cpu. Dans Godot 4.4 ou plus récent, le nœud HTTPRequest intégré et AudioStreamWAV.load_from_buffer jouent la réponse sans enregistrer de fichier : var http := HTTPRequest.new(); add_child(http); http.request_completed.connect(_on_voice); http.request("http://localhost:8000/synthesize", ["Content-Type: application/json"], HTTPClient.METHOD_POST, JSON.stringify({"text": "Bon retour parmi nous", "voice": "F1", "lang": "fr"})) — et dans le même script : func _on_voice(result, code, headers, body): $Voice.stream = AudioStreamWAV.load_from_buffer(body); $Voice.play(). Une phrase courte prend environ une demi-seconde sur un processeur ; mettez en cache les flux des répliques qui reviennent. N’embarquez jamais une clé d’API dans un jeu exporté, d’où les joueurs peuvent l’extraire : laissez votre propre serveur de jeu appeler le serveur vocal.
Les voix que vous pouvez publier
Pour les prototypes, n’importe quelle voix du catalogue convient. Pour un jeu publié, utilisez une voix dont vous avez les droits : les dix voix de base du modèle, M1 à M5 et F1 à F5, votre propre voix entraînée dans le studio SuperClonica à partir d’un enregistrement propre de 5 à 10 secondes d’un comédien consentant, sur un ordinateur doté d’une carte graphique NVIDIA, ou une voix commandée sur la bourse. Les voix de personnages faites par des fans sont pour les parodies et les jeux de fans, pas pour les jeux commerciaux.