Texto a voz en React Native: de las voces del sistema a tu propio servidor
Una app de React Native puede hablar de tres maneras: con las voces del teléfono, con archivos de audio generados de antemano o con un servidor que pone voz a texto nuevo bajo demanda. Las voces del teléfono son gratis y sin conexión, pero suenan distinto en cada dispositivo; las otras dos dan a tu app una voz reconocible.
SuperClonica te da voces naturales en 31 idiomas para probar gratis en línea, un motor gratuito para generar las frases de la app en tu ordenador y un servidor Docker para el texto que cambia. Esta guía muestra cada enfoque en React Native y Expo.
Tres maneras de hacer hablar una app
SuperClonica habla 31 idiomas; el chino aún no está disponible, así que una interfaz en chino necesita otra voz.
- expo-speech o react-native-tts: las voces instaladas en el teléfono, gratis y sin conexión, distintas en cada dispositivo, y no pueden guardar audio.
- Recursos pregenerados: cada frase fija generada una vez con SuperClonica y incluida en la app.
- Un servidor de voz: la app envía el texto a tu servidor SuperClonica y reproduce la respuesta.
- La mayoría de apps los combinan: recursos para frases fijas, un servidor para el texto del usuario y la voz del sistema como respaldo.
Elige una voz gratis en línea
En la página de cualquier voz, escribe una frase de tu app, de 30 a 100 caracteres, elige el idioma y pulsa el botón para generarla. En unos segundos sabrás si encaja con tu app, sin cuenta y también desde el móvil.
Frases pregeneradas con expo-audio
Nombra los archivos con la clave que ya usas para las traducciones, y cada idioma tendrá los mismos nombres en su carpeta.
- Instala el motor gratuito en tu ordenador: python -m pip install superclonica-cpu.
- Genera cada frase: superclonica --text "¡Bienvenido de nuevo!" --voice F1 --lang es --output assets/voice/welcome.mp3.
- Reprodúcela con expo-audio: const player = useAudioPlayer(require('./assets/voice/welcome.mp3')); player.play();
- Los recursos funcionan sin conexión y sin retraso; en MP3 una frase ocupa unas decenas de kilobytes.
Un servidor de voz para texto del usuario
Para texto que cambia, como mensajes de chat, notas del usuario o un tutor que responde, ejecuta el servidor en una máquina que controles: docker run -d -p 8000:8000 -v superclonica-models:/models superclonica/superclonica:cpu. Ponlo detrás de HTTPS y define SUPERCLONICA_API_KEY para que solo tu app pueda llamarlo. La app envía un JSON con text, voice y lang a /synthesize y recibe un WAV; guárdalo en un archivo con tu biblioteca del sistema de archivos y pásalo al reproductor. Guarda en caché las respuestas para textos que se repiten: el mismo texto, voz y semilla dan siempre el mismo archivo.
Cuándo basta la voz del sistema
La voz del sistema basta cuando solo hay que entender lo que dice: leer una notificación, una ayuda de accesibilidad o un prototipo que debe funcionar sin red. Elige tu propia voz cuando forma parte del producto, como un tutor, un personaje de juego o una meditación guiada. Para una app que publicas, usa las diez voces de serie, de M1 a M5 y de F1 a F5, gratuitas con la licencia OpenRAIL-M, o tu propia voz entrenada en el estudio de SuperClonica; las voces de personajes hechas por fans no son para apps de tienda.