Cómo hacer que ocho voces de IA se callen cuando el humano interrumpe
El desarrollo de barge-in en llamadas con varios agentes de voz obliga a resolver eco, detección de voz y latencia antes de que la conversación sea usable.

Interrumpir a una IA que habla está resuelto cuando hay una sola. Con ocho modelos ocupando el mismo canal de voz, cada fallo se amplifica: un agente que se escucha a sí mismo se responde solo, un «espera» que no llega a tiempo deja que tres voces sigan encima, y un carraspeo descarrila el turno. El autor de AI Group Call, una app de iOS y Android donde se meten de dos a ocho voces de IA en una llamada en vivo, ha publicado el desglose de lo que le costó llegar ahí.
La arquitectura de partida: una sesión de transcripción para el micrófono con Whisper en tiempo real, una sesión de voz en tiempo real por cada participante de IA, y un modelo director pequeño que decide quién habla y en qué orden, con turno rotatorio como respaldo. Las sesiones de voz son stateless, así que el servidor manda el transcript compartido en las instrucciones de cada turno: todos los agentes comparten contexto sin compartir sesión. Un conductor en servidor tiene la palabra y solo una voz habla a la vez.
Sostener primero, confirmar después
La primera versión detectaba que el usuario había empezado a hablar con los eventos del transcriptor. No funciona: los deltas de transcripción van con segundos de retraso y ese transcriptor no trae detección de actividad de voz en servidor. La solución fue un VAD propio por energía sobre el PCM crudo que llega del teléfono, con RMS por fragmento comparado contra un suelo de ruido adaptativo. Cuando la señal apunta a voz, el audio del agente se retiene unos 150 ms; una sonda de unos 700 ms confirma que era habla y entonces se cede el suelo. Los eventos de voz del transcriptor se suman a la misma señal, de modo que cualquiera de las dos fuentes puede disparar el corte. La idea de fondo: pausar a un agente por error medio segundo cuesta casi nada, hablar encima de una persona cuesta mucho.
El eco fue el segundo problema. En la primera prueba en Android los agentes empezaron a responderse en bucle, porque el audio sonaba en el stream de medios y el cancelador de eco del hardware no tenía señal de referencia. Ahora la protección va por capas. En captura, procesamiento de voz de la plataforma (voice processing en iOS, modo comunicación forzado con altavoz en Android). En cliente, una compuerta que solo deja pasar tramas claramente más fuertes que el suelo de ruido y sostenidas unos 300 ms, con un pre-roll para no cortar la primera palabra. En servidor, otro VAD independiente: unos 170 ms de voz bastan con el suelo abierto, pero hacen falta 300 ms o más si habla un agente. Y si un transcript es en un 70% o más palabras recientes de los propios agentes, se descarta. Los agentes nunca reciben audio, solo texto.
Una interrupción no siempre es un turno
Con el corte funcionando apareció el ruido social: la gente dice «ya» y «mm-hmm» mientras escucha. El agente que habla se detiene igual de rápido, pero el transcript que llega un segundo después dicta el veredicto. Si es backchannel, el turno vuelve al agente y sigue donde lo dejó. Si no hay palabras en 2,5 segundos, se interpreta como ruido y ocurre lo mismo. Si es una orden de parar, la sala se queda esperando a que digas algo con contenido. Cualquier otra cosa es un turno real y el director elige quién contesta.
Al director se le pide latencia, no solo acierto, porque su tiempo de respuesta es silencio muerto. Varios modelos candidatos acertaban siempre a quién le tocaba; uno lo resolvía en unos 0,5 s de mediana y otro rozaba los 2 s y se pasaba del presupuesto en casi una cuarta parte de los turnos. La llamada va con apuesta paralela: tras 1,2 s de silencio arranca un modelo de respaldo y gana la primera respuesta válida, en lugar de reintentar.
Para quien construya cualquier cosa con varias voces, el resumen es concreto: VAD sobre audio crudo y no sobre transcripciones, asumir que el eco atravesará una capa y poner otra detrás, clasificar la interrupción antes de actuar sobre ella y medir el p50 y el p90 del modelo de turnos, no solo su precisión.

