Producir veintinueve configuraciones regionales con voz, sin conexión
¿Se puede producir localmente, en una sola GPU, un conjunto de voz multilingüe completo para una app infantil, sin API de habla de pago y sin facturación por carácter?
·
Una app para niños menores de seis años es un producto donde la voz va primero: el público no sabe leer, así que cada indicación, número y recompensa tiene que decirse en voz alta. Localizarla de la manera habitual implica un proveedor de texto a voz, una factura por carácter que escala con cada cambio de contenido y una dependencia que tiene que seguir financiada durante toda la vida de la app.
En su lugar producimos todo el paquete sin conexión — dos hablantes en veintinueve configuraciones regionales, más un conjunto aparte de tomas más suaves para niños de dos y tres años en las líneas de contar y de colores, quince pistas de música y ocho efectos de sonido. Cada línea tiene una entrada de manifiesto que registra su texto, su archivo, el modelo que la generó y su resultado de QA, y cada archivo de música y de sonido lleva un registro de licencia por archivo.
Lo que la automatización no podía hacer era juzgar si una línea le suena bien a un niño en un idioma que nadie del equipo habla. Esa parte siguió siendo humana, y el paquete se entrega con una lista de escucha que lo dice explícitamente en vez de insinuar que la QA estaba completa.
Qué aprendimos
Hallazgos hasta ahora.
- 01
El formato es una decisión de plataforma, no una preferencia. El briefing pedía Opus; iOS enruta el audio de Flutter por AVPlayer, que no tiene decodificador de Opus ni de OGG, así que una compilación solo con Opus está muda en iPhone. El paquete publica AAC-LC en .m4a por defecto y mantiene Opus como alternativa solo para Android con nombres de archivo idénticos.
- 02
Una cadena de reserva de configuraciones regionales hay que diseñarla, no improvisarla. Configuración exacta, luego idioma base, luego inglés — escrito una vez y respetado por el reproductor.
- 03
La procedencia es barata en el momento de producción y cara de reconstruir después. Registrar el modelo, la licencia y el resultado de QA por archivo mientras se generaba no costó nada; recuperar eso a posteriori habría significado regenerarlo todo.
Sobre Pivumo
Este experimento surgió al construir Pivumo.