GUÍA

Texto a voz en Unity: frases de diálogo y voz en ejecución

Un juego de Unity necesita frases con voz mucho antes de tener reparto: para prototipos, diálogos provisionales, tutoriales y equipos pequeños que nunca reservarán un estudio. El texto a voz da voz a cada frase el día en que se escribe y la rehace en segundos cuando cambia el guion.

El motor gratuito SuperClonica genera voz sin conexión en un procesador normal. Esta guía muestra las dos formas de usarlo con Unity, clips generados de antemano y voz en ejecución desde C#, y qué voces puedes publicar.

Dos formas de dar voz a un juego de Unity

El ordenador de un jugador no ejecutará un servidor de voz, así que un juego para un jugador publicado debe incluir los clips.

  • Clips generados de antemano: da voz a cada frase durante el desarrollo y publica los WAV como AudioClips normales. En el ordenador del jugador no se ejecuta nada más.
  • 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 NPC, de 30 a 100 caracteres, elige el idioma y pulsa el botón para generarla. En unos segundos oyes si la voz encaja con el personaje, 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 Assets/Audio/Lines/npc_greeting_01.wav.
  • Unity importa solo los WAV nuevos dentro de Assets; usa Decompress On Load para frases cortas y Streaming para narraciones largas.

Voz en ejecución desde C#

Inicia el servidor en cualquier procesador: docker run -d -p 8000:8000 -v superclonica-models:/models superclonica/superclonica:cpu. Luego llámalo con el UnityWebRequest integrado, sin paquetes: [Serializable] class Line { public string text; public string voice; public string lang; } — luego, en una corrutina: var req = new UnityWebRequest("http://localhost:8000/synthesize", "POST"); req.uploadHandler = new UploadHandlerRaw(Encoding.UTF8.GetBytes(JsonUtility.ToJson(new Line { text = "¡Bienvenido de nuevo!", voice = "F1", lang = "es" }))); req.downloadHandler = new DownloadHandlerAudioClip(req.url, AudioType.WAV); req.SetRequestHeader("Content-Type", "application/json"); yield return req.SendWebRequest(); source.PlayOneShot(DownloadHandlerAudioClip.GetContent(req)); Una frase corta tarda medio segundo en un procesador; guarda en caché los clips de frases que se repiten. Nunca incluyas una clave de API en la build del juego, 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.