Servir IA local en una Jetson mediante flujos durables: arquitectura de referencia

Fuentes: Serving Local AI on a Jetson with Durable Streams: a Small Reference Architecture

StreamTTS es un proyecto personal de texto a voz autoalojado en una NVIDIA Jetson Orin Nano Super (1024 núcleos CUDA, 32 tensores, 67 TOPS) que ejecuta el modelo neuronal Kokoro-82M. La aplicación convierte texto pegado en una página en un enlace compartible que reproduce el audio de forma incremental.

La motivación técnica es clara: la inferencia de modelos es más lenta que una petición web típica y la salida de un TTS es naturalmente incremental —se puede generar frase a frase y emitir MP3 sin esperar al párrafo completo—. Una arquitectura clásica de petición-respuesta obligaría a añadir cola, base de datos para metadatos de trabajos, almacenamiento de objetos, reintentos y deduplicación.

La solución adoptada son los flujos durables: una secuencia ordenada de registros con número de secuencia, marca temporal, cabeceras y cuerpo, donde cada registro lleva una frase de audio en MP3 con su texto y duración en milisegundos. El cliente puede leer desde el inicio, saltar a una posición o quedarse en el último registro disponible, lo que unifica reproducción y entrega en vivo en un único canal.

El autor usa S2 Lite, una implementación de un solo binario de la API S2 de flujos durables, que corre en localhost con disco local. Los flujos se organizan en una "cuenca" (basin) con nombres como jobs, jobs/cursor, jobs/dead, progress/done, catalog/ y pub/casts/. El navegador decodifica cada fragmento con la Web Audio API y lo coloca en una línea de tiempo virtual, sin usar Media Source Extensions.

El planificador del worker mantiene varios procesos activos y mide el desfase entre audio generado y reproducción real para evitar que un trabajo largo bloquee a los demás. El resultado es una arquitectura de referencia compacta para servir inferencia local con reintentos, reanudación y compartición integrados.