Texto a voz en Godot: frases de diálogo y voz en ejecución
Los juegos de Godot suelen hacerlos una persona o un equipo pequeño, y el doblaje es lo que rara vez cabe en el presupuesto. El texto a voz da voz a cada frase el día en que se escribe: para prototipos, diálogos provisionales, tutoriales y juegos que mantienen una voz sintética a propósito.
El motor gratuito SuperClonica genera voz sin conexión en un procesador normal. Esta guía muestra las dos formas de usarlo con Godot, archivos WAV generados de antemano y voz en ejecución desde GDScript, y qué voces puedes publicar.
Dos formas de dar voz a un juego de Godot
El ordenador de un jugador no ejecutará un servidor de voz, así que un juego para un jugador publicado debe incluir los archivos.
- Archivos generados de antemano: da voz a cada frase durante el desarrollo y guarda los WAV en el proyecto. Se exportan con el juego como cualquier otro sonido.
- Voz en ejecución: el juego envía texto a un servidor de SuperClonica y reproduce la respuesta. Sirve para herramientas del editor, prototipos y juegos en línea con servidor propio.
- En ambos casos, la voz se genera en un procesador normal, sin pago por carácter.
- El modelo habla 31 idiomas; el chino aún no está disponible.
Elige voces gratis
En la página de cualquier voz, escribe una frase de tu personaje, de 30 a 100 caracteres, elige el idioma y pulsa el botón para generarla. En unos segundos oyes si la voz encaja, sin cuenta.
Genera los diálogos de antemano
El mismo texto, voz y seed dan siempre el mismo audio, así que regenera solo las frases que cambiaron y guarda en el repositorio el script, no el audio.
- Instala el motor: python -m pip install superclonica-cpu.
- Guarda las frases en una tabla con un id, un idioma y el texto.
- Un script breve la recorre: superclonica --text "¡Bienvenido a la aldea!" --voice npc.json --lang es --output voice/npc_greeting_01.wav.
- Godot importa solo los WAV nuevos del proyecto; reprodúcelos con un AudioStreamPlayer.
Voz en ejecución desde GDScript
Inicia el servidor en cualquier procesador: docker run -d -p 8000:8000 -v superclonica-models:/models superclonica/superclonica:cpu. En Godot 4.4 o posterior, el nodo HTTPRequest integrado y AudioStreamWAV.load_from_buffer reproducen la respuesta sin guardar un archivo: 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": "¡Bienvenido de nuevo!", "voice": "F1", "lang": "es"})) — y en el mismo script: func _on_voice(result, code, headers, body): $Voice.stream = AudioStreamWAV.load_from_buffer(body); $Voice.play(). Una frase corta tarda medio segundo en un procesador; guarda en caché los streams de frases que se repiten. Nunca incluyas una clave de API en un juego exportado, de donde los jugadores pueden extraerla: deja que tu propio servidor de juego llame al servidor de voz.
Voces que puedes publicar
Para prototipos, cualquier voz del catálogo vale. Para un juego publicado, usa una voz sobre la que tengas derechos: las diez voces de serie del modelo, de M1 a M5 y de F1 a F5, tu propia voz entrenada en el estudio de SuperClonica con una grabación limpia de 5 a 10 segundos de un actor que haya aceptado, en un ordenador con tarjeta gráfica NVIDIA, o una voz encargada en la bolsa. Las voces de personajes hechas por fans son para parodias y juegos de fans, no para juegos comerciales.