Tooling de desarrollo con IA. 2026. Autor. Python, PTY, VAD, STT y TTS.
J.A.R.V.I.S.
Un sistema de interacción manos libres para desarrollo: un envoltorio de PTY, un lexer en streaming, detección de actividad de voz en tiempo real y adaptadores intercambiables de STT, TTS y LLM.
El problema
Un flujo de trabajo en terminal asume dos manos y una pantalla. Hablarle es la mitad fácil. La difícil es saber quién está hablando: la persona, el modelo, o el shell que todavía está escupiendo salida.
Por eso el sistema envuelve un PTY real en lugar de reimplementar un shell, lexa el stream según llega, y mantiene a cada proveedor de voz y de modelo detrás de un adaptador. Nada del diseño asume un proveedor concreto.
Un shell real, no una simulación
Envolver un PTY significa que aquí corre cualquier cosa que corra en una terminal, incluidos programas a pantalla completa y prompts interactivos.
Los proveedores son configuración
STT, TTS y el modelo van cada uno detrás de un adaptador, así que cambiar de motor es un cambio de configuración y no una reescritura.
El stream es la interfaz
La salida se lexa según llega en lugar de después de que el comando termine, que es lo que hace posible hablar sobre un proceso en marcha.
Decisiones y el precio que pagué por ellas
Proveedores desacoplados, en todas partes
Todo pasa por adaptadores intercambiables y streams en tiempo real, así que ningún modelo ni proveedor de voz queda incrustado en el sistema.
Trade-off aceptado
Una capa de adaptadores por proveedor es más superficie que mantener que llamar a una sola API, y es la única forma de cambiar de motor por configuración.
Envolver un PTY en vez de escribir un shell
Un pseudo-terminal da control de trabajos real, manejo de señales real y comportamiento TTY real gratis, cosas que una reimplementación tendría que ganarse caso límite a caso límite.
Trade-off aceptado
Parsear un stream de PTY implica lidiar con secuencias de escape y escrituras parciales en lugar de salida estructurada y limpia.
Detección de voz antes de la transcripción
Poner VAD por delante del reconocimiento es lo que permite interrumpir mientras el sistema todavía habla, en vez de esperar turno.
Trade-off aceptado
Un umbral de detección mal puesto se nota al instante en cualquiera de las dos direcciones: o te corta o te habla encima.
Por dentro
-
Fig. 02 El lexer en streaming clasificando la salida mientras el comando sigue corriendo.
-
Fig. 03 Adaptadores de proveedor: cada motor es un bloque de configuración.