miércoles 9 / 09 / 2026

タイラーRetourner

Nunca fue el pipeline

He construido un pipeline de voz cinco veces en dos años. Entra audio, salen palabras, alguien las evalúa. Cada vez estuve seguro de que la parte difícil iba a ser el modelo. Cada vez fue otra cosa, y cada vez algo distinto. Poner los cinco uno al lado del otro es como llegué a lo que estoy construyendo ahora.

contact center2025limpiar audio2025red de salud2026audio de campo2026voz en vivo2026el modeloSTT, luego LLMFlash o ProFlashFlashLiveumbrales como parámetrossolo la recetala forma primerocosto como presupuestolímites, no pasos
El modelo cambió tres veces y lo que venía después no lo notó. Es un ingrediente.

Uno: el modelo es un ingrediente

El primero fue para un call center, y empezó sobre una API de voz a texto. A mitad de camino, la transcripción pasó a ser un prompt a un modelo general, después a uno más nuevo, y después a uno más nuevo todavía. Lo que venía después no cambió. La evaluación no cambió, el almacenamiento no cambió, la gente que leía los resultados nunca lo notó. Había construido todo alrededor del único componente que resultó ser el más fácil de cambiar.

audiolimpiarmodelopuntajeguardarvoz a textomodelo generaluno más nuevonada de aquí lo notó

Esa fue la primera conclusión, y me resistí a ella un buen rato. El modelo es un ingrediente. No construyes una cocina alrededor de un solo ingrediente.

Dos: el silencio es dinero

El segundo fue solo el frente del pipeline, la parte que toca el audio antes de que alguien pague por un token. Cortar silencios de más de tres segundos, con un umbral lo bastante prudente como para conservar cada pausa real. Detectar la música de espera, y llamarla música de espera recién a los treinta segundos, porque un falso positivo borra las palabras de un cliente y un falso negativo cuesta centavos. Bajar la frecuencia de muestreo, mono, sin pérdida.

silencio de +3 s, cortadomúsica de espera, a los 30 s

De ahí salieron dos cosas. Los umbrales eran el producto, y estaban como constantes en un archivo que solo yo podía tocar. Y la persona que debía ajustarlos no era un ingeniero. Una analista de calidad sabe qué significa una pausa larga en una llamada de cobranza. Yo no. Los parámetros necesitaban un dueño que no fuera yo, y rangos seguros para que ese dueño no pudiera romper nada.

Tres: nadie pidió un producto

El tercero fue para una red de salud: tres jobs y casi nada más. Cincuenta workers sobre el audio, cincuenta sobre el texto, un proceso para consolidar. Fue el más chico de los cinco y el que salió más rápido, porque había dejado de construir un producto y construí solo la receta. Todo lo que los dos primeros tenían y a este le faltaba era superficie. Pantallas, endpoints, auth. La receta de abajo era la misma.

pantallasendpointsauthrecetatres jobs, un consolidador, salió lo más rápido

Cuatro: la respuesta es el producto

El cuarto fue audio de terreno de una eléctrica. Transcribir, resumir, extraer quince atributos. Lo que importaba no eran los atributos. Era que cada uno volvía con evidencia y una confianza, para que un supervisor pudiera revisar el que le hacía dudar en vez de confiar o desconfiar de los quince a la vez. La forma de la respuesta decidía si alguien usaba el sistema. Yo venía tratando la salida como el último paso. Es la primera decisión.

el que dudabanevidencia arriba, confianza abajo

Para entonces también podía ver el costo. Más de una versión terminó con su propia calculadora de costos, siempre tarde, siempre pegada encima. El costo por minuto nunca fue un reporte. Era una restricción que la receta debió haber llevado desde el principio.

Cinco: no puedes congelar una conversación

El quinto es en tiempo real, una voz al teléfono con una persona. Toda regla anterior se rompe. No puedes cortar el silencio: el silencio es cómo sabes que es tu turno. No puedes elegir el modelo lento y preciso, gana la latencia. No puedes reintentar, alguien está esperando. Y el primer bug serio no tuvo nada que ver con el modelo. La voz perdía el acento después de una interrupción, porque el acento estaba definido en tres lugares y ninguno mandaba.

el camino del audiocongelado antes de la llamadaenviaragendarescribirlos efectos

Lo que sí puedes congelar, antes de la llamada, es quién es dueño de qué. Quién es dueño del camino del audio y quién de los efectos. Una vez que ese límite fue un contrato en vez de un supuesto, el bug del acento y toda su familia desaparecieron.

Lo que suma todo eso

Pon las cinco conclusiones en fila y describen una sola cosa.

Una aplicación no debería decir «usa este modelo, este endpoint, este prompt». Debería decir «necesito este resultado, bajo estas restricciones»: este presupuesto, esta latencia, esta privacidad, esta calidad. Algo convierte esa petición en una receta exacta y la congela. Una cocina especializada ejecuta la receta, y solo esa receta. Devuelve el resultado con un comprobante: qué se hizo, con qué pasos, a qué costo, con qué confianza.

traducidadespachadanombradevuelvecon evidenciapeticiónresultado + restriccionesrecetaexacta y congeladacocinasolo corre la recetareciboresultado + cómo se hizomodeloun ingrediente
La aplicación dice qué necesita y bajo qué restricciones. No cómo.

El modelo es un ingrediente que la receta nombra. Los umbrales son parámetros que la receta lleva, con un dueño que no es un ingeniero. El costo es un presupuesto que la receta no puede exceder. La forma de la salida se declara antes de que algo corra. Y cada paso dice si puede correr dos veces.

Yo no diseñé eso. Seguí construyendo la misma cosa hasta que las partes que nunca cambiaban tuvieron nombre. Eso es lo que estoy construyendo ahora.