Presentamos Eleven v3 Alpha

Prueba v3

¿Cómo optimizar la latencia para la IA conversacional?

La latencia es lo que separa las buenas aplicaciones de IA conversacional de las excelentes

Diagram of a speech processing system showing data flow from user input to output speech, including components like telephone network, ASR, VAD, LLM, TTS, and latency indicators.

Para la mayoría de las aplicaciones, la latencia es una preocupación menor. Sin embargo, para la IA conversacional, la latencia es lo que separa las buenas aplicaciones de las excelentes.

Para empezar, el objetivo de la IA conversacional es bastante ambicioso: ofrecer la misma sensación, tacto y voz de una conversación humana, superando al ser humano en inteligencia. Para lograr esto, una aplicación debe conversar sin largos espacios de silencio. De lo contrario, el realismo queda destrozado.

El desafío de la latencia de la IA conversacional se ve agravado por su naturaleza fragmentada. La IA conversacional es una serie de procesos intermedios, todos considerados de última generación en sus respectivos campos. Cada uno de estos procesos implica una latencia aditiva.

Como empresa de voz generativa, hemos dedicado mucho tiempo a estudiar cómo minimizar la latencia de la IA conversacional. Hoy queremos compartir nuestros aprendizajes, con la esperanza de que sean útiles para cualquier persona interesada en crear aplicaciones de IA conversacional.

Los cuatro componentes básicos

Toda aplicación de IA conversacional implica al menos cuatro pasos: conversión de voz a texto, turnos, procesamiento de texto (es decir, LLM) y conversión de texto a voz. Si bien estos pasos se ejecutan en paralelo, cada uno de ellos aún aporta cierta latencia.

Cabe destacar que la ecuación de latencia de la IA conversacional es única. Muchos problemas de latencia de procesos se pueden reducir a un único cuello de botella. Por ejemplo, cuando un sitio web realiza una solicitud de base de datos, la latencia de la red web determina la latencia total, con solo contribuciones triviales de la latencia de VPC del backend. Sin embargo, los componentes de latencia de la IA conversacional no varían drásticamente. Son desiguales, pero la contribución de latencia de cada componente está dentro de un grado de la de los demás. En consecuencia, la latencia está determinada por una suma de partes.

Reconocimiento automático de voz

El “oído” del sistema

El reconocimiento automático de voz (ASR), a veces denominado conversión de voz a texto (STT), es el proceso de convertir audio hablado en texto escrito.

La latencia de ASR no es el tiempo que tarda en generar texto. El proceso de conversión de voz a texto se ejecuta en segundo plano mientras el usuario habla. En cambio, la latencia es el tiempo entre el final del discurso y el final de la generación del texto.

Flowchart showing input speech processed by ASR system.

En consecuencia, los intervalos de habla cortos y largos pueden generar una latencia ASR similar. Y, debido a que los modelos de conversión de voz a texto están bastante optimizados, la latencia suele ser inferior a 100 ms, incluido el viaje de ida y vuelta a través de la red. (En algunos casos, no hay latencia de red alguna ya que el modelo está integrado en el navegador, como Chrome/Chromium$

Toma de turnos / Interrupción

El “instinto” del sistema

El proceso de toma de turnos/interrupción (TTI) es un proceso intermedio que determina cuándo un usuario ha terminado de hablar. El modelo subyacente se conoce como Detector de Actividad de Voz (o VAD).

Los turnos de juego implican un conjunto complejo de reglas. Una breve ráfaga de discurso (por ejemplo, "ajá") no debería desencadenar un turno; de lo contrario, las conversaciones parecerían demasiado entrecortadas. En lugar de ello, debe evaluar cuándo un usuario está realmente intentando captar la atención del modelo. También debe determinar cuándo el usuario termina de transmitir sus pensamientos.

Un buen VAD no Señalar un nuevo giro siempre que detecte silencio. Hay silencio entre las palabras (y frases), y el modelo debe estar seguro de que el usuario realmente terminó de hablar. Para lograr esto de manera confiable, es necesario buscar un umbral de silencio (o más específicamente, una ausencia de habla). Este proceso fuerza un retraso que equivale a latencia para el usuario.

Flowchart showing the data flow from user input speech through system components to LLM, with latency indicated by colored boxes.

Técnicamente hablando, si todos los demás componentes de la IA conversacional incurrieran en... cero latencia, la latencia atribuida a TTI sería algo bueno. Los humanos tardan un momento antes de responder al habla. Una máquina que realiza una pausa similar da realismo a la interacción. Sin embargo, dado que otros componentes de la IA conversacional ya incurren en latencia, la latencia TTI mínima es ideal.

Procesamiento de texto

El cerebro del sistema

A continuación, el sistema necesita generar una respuesta. Hoy en día, esto normalmente se logra con un modelo de lenguaje grande (LLM), como GPT-4 o Gemini Flash 1.5.

La elección del modelo lingüístico marca una diferencia significativa. Modelos como Gemini Flash 1.5 son increíblemente rápidos y generan resultados en menos de 350 ms. Los modelos más robustos que pueden manejar consultas más complejas (como las variantes de GPT-4 y Claude) podrían tardar entre 700 ms y 1000 ms. Elegir el modelo correcto suele ser la forma más sencilla de abordar la latencia al optimizar un proceso de IA conversacional.

Sin embargo, la latencia del LLM es el tiempo que tarda en... comenzar generando tokens. Estos tokens se pueden transmitir inmediatamente al siguiente proceso de texto a voz. Debido a que la conversión de texto a voz se ralentiza según el ritmo natural de la voz humana, el LLM puede superarlo de manera confiable: lo único que importa es la latencia del primer token (es decir, el tiempo hasta el primer byte).

Flowchart showing the data flow and latency in a speech processing system, including input speech, ASR, VAD, LLM, TTS, and their interactions.

Hay otros factores que contribuyen a la latencia de un LLM más allá de la elección del modelo. Estos incluyen la longitud de la solicitud y el tamaño de la base de conocimientos. Cuanto mayor sea el valor, mayor será la latencia. Todo se reduce a un principio simple: cuanto más tenga que considerar el LLM, más tiempo llevará. En consecuencia, las empresas necesitan lograr un equilibrio entre una cantidad saludable de contexto sin sobrecargar el modelo.

Text to Speech

La boca del sistema

El componente final de la IA conversacional es la conversión de texto a voz (TTS). La latencia de red de texto a voz es el tiempo que lleva comenzar a hablar después de recibir tokens de entrada del procesamiento de texto. Eso es todo: debido a que los tokens adicionales se ponen a disposición a un ritmo más rápido que el habla humana, la latencia de texto a voz **es estrictamente el tiempo hasta el primer byte.

Diagram showing the data flow and latency in a speech processing system, including input speech, ASR, VAD, LLM, TTS, and output speech.

Anteriormente, la conversión de texto a voz era particularmente lenta y demoraba entre 2 y 3 segundos para generar el habla. Sin embargo, los modelos de última generación como nuestro motor Turbo son capaces de generar voz con solo 300 ms de latencia. De hecho, nuestro motor Flash TTS V2/V2.5 puede alcanzar 200 ms de latencia de audio en el primer byte, el mejor puntaje en el campo (¡tenemos que alardear un poco!).

Colaboradores adicionales

Más allá de los cuatro componentes, hay algunos contribuyentes adicionales a la latencia de red de la IA conversacional.

Latencia de red

Siempre habrá latencia asociada con el envío de datos de una ubicación a otra. Para algunas aplicaciones de IA conversacional, lo ideal sería que los procesos ASR, TTI, LLM y TTS estuvieran ubicados juntos, de modo que la única fuente de latencia de red no trivial sean las rutas entre el hablante y todo el sistema.

Diagram showing the flow of speech processing in a system, including input speech, ASR, VAD, LLM, TTS, and output speech, with latency and network latency indicated.

Llamada de función

Existen muchas aplicaciones de IA conversacional para invocar funciones (es decir, interactuar con herramientas y servicios). Por ejemplo, podría pedirle verbalmente a la IA que compruebe el tiempo. Esto requiere llamadas API adicionales invocadas en la capa de procesamiento de texto, lo que puede generar una latencia significativamente mayor según las necesidades.

Por ejemplo, si necesito pedir una pizza verbalmente, puede que sean necesarias varias llamadas API, algunas con un retraso excesivo (por ejemplo, al procesar una tarjeta de crédito).

Flowchart showing speech processing stages, including input speech, ASR, VAD, LLM/function calling, and output speech, with latency indicated by colored bars.

Sin embargo, un sistema de IA conversacional puede combatir los retrasos asociados con la llamada de función al solicitarle al LLM que responda al usuario antes de que finalice la llamada de función (por ejemplo, “Déjame comprobar el tiempo para ti”). Esto modela una conversación de la vida real y no mantiene al usuario sin participación.

Flowchart of a speech synthesis system showing input speech processing, neural network components, and output speech generation.

Estos patrones asincrónicos generalmente se logran aprovechando webhooks para evitar solicitudes de larga duración.

Telefonía

Otra característica común de las plataformas de IA conversacional es permitir al usuario marcar a través del teléfono (o, en algunos casos, realizar una llamada telefónica en nombre del usuario). La telefonía implicará una latencia adicional, que puede depender en gran medida de la geografía.

Diagram showing the data flow and latency in a speech processing system, with components like input/output speech, telephone network, ASR, VAD, LLM, and TTS.

Como base, la telefonía incurrirá en una latencia adicional de 200 ms si se limita a la misma región. Para llamadas globales (por ejemplo, Asia → EE. UU.), el tiempo de viaje puede aumentar significativamente y la latencia puede alcanzar ~500 ms. Este patrón podría ser común si los usuarios tienen números de teléfono fuera de la región en la que se encuentran, lo que los obliga a saltar a las redes telefónicas de su país base.

Un pensamiento final

Esperamos que esta exploración de ida y vuelta de la IA conversacional haya sido interesante. En resumen, las aplicaciones deberían apuntar a una latencia inferior a un segundo. Generalmente, esto se puede lograr eligiendo el LLM adecuado para la tarea. También deberían interactuar con el usuario siempre que se ejecuten procesos más complejos en segundo plano para evitar pausas largas.

Al final, el objetivo es crear realismo. Un usuario necesita sentir la comodidad de hablar con un humano y al mismo tiempo obtener los beneficios de un programa informático. Al restringir los subprocesos, esto ahora es posible.

En Elevenlabs estamos optimizando cada parte de un sistema de IA conversacional con nuestros modelos STT y TTS de última generación. Al trabajar en cada parte del proceso, podemos lograr flujos de conversación fluidos. Esta visión de arriba hacia abajo de la orquestación nos permite reducir un poco la latencia (incluso 1 ms) en cada momento.

Explora más

ElevenLabs

Crea con audio con IA de la más alta calidad

Empieza gratis

¿Ya tienes una cuenta? Inicia sesión

¿Cómo optimizar la latencia para la IA conversacional? | ElevenLabs