Optimización de la latencia

Esta guía te muestra cómo reducir la latencia de texto a voz en tu aplicación.

Esta guía explica los principios fundamentales para mejorar la latencia de Texto a Voz. Para una explicación conceptual de qué es la latencia y qué factores contribuyen a ella, consulta Comprender la latencia.

Aunque existen muchas técnicas individuales, las agruparemos en cuatro principios.

Cuatro principios

  1. Usa modelos Flash
  2. Aprovecha el streaming
  3. Ten en cuenta la proximidad geográfica
  4. Elige voces adecuadas

Los clientes Enterprise se benefician de límites de concurrencia más altos y acceso prioritario a nuestra cola de renderizado. Contacta con ventas para obtener más información sobre nuestros planes Enterprise.

Usa modelos Flash

Los modelos Flash ofrecen velocidades de inferencia de ~75 ms, por lo que son ideales para aplicaciones en tiempo real. La contrapartida es una ligera reducción de la calidad de audio en comparación con Multilingual v2.

Los 75 ms se refieren únicamente al tiempo de inferencia del modelo. La latencia total de extremo a extremo variará en función de factores como tu ubicación y el tipo de ruta de API utilizado.

Aprovecha el streaming

Hay tres tipos de rutas de API de Texto a Voz disponibles en nuestra referencia de la API:

  • Ruta de API normal: Devuelve un archivo de audio completo en una sola respuesta.
  • Ruta de API de streaming: Devuelve fragmentos de audio progresivamente mediante eventos enviados por el servidor.
  • Ruta de API de WebSockets: Permite el streaming bidireccional para generar audio en tiempo real.

Streaming

Las rutas de API de streaming devuelven audio progresivamente a medida que se genera en tiempo real, lo que reduce el tiempo hasta el primer byte. Esta ruta de API se recomienda cuando el texto de entrada está disponible desde el principio.

El streaming es compatible con la API de Texto a Voz, la API de Cambiador de Voz y la API de Aislamiento de audio.

WebSockets

La ruta de API de WebSocket de texto a voz admite streaming bidireccional, por lo que es perfecta para aplicaciones con entrada de texto en tiempo real (p. ej., salidas de LLM).

Al establecer auto_mode en true, los activadores de generación se gestionan automáticamente, sin necesidad de gestionar manualmente las estrategias de fragmentación.

Si auto_mode está desactivado, el modelo esperará a tener suficiente texto para ajustarse a la programación de fragmentos antes de empezar a generar audio.

Por ejemplo, si estableces una programación de fragmentos de 125 caracteres, pero solo llegan 50, el modelo se detendrá hasta que lleguen más caracteres, lo que podría aumentar la latencia.

Para conocer los detalles de implementación, consulta la guía de WebSocket de texto a voz.

Elige voces adecuadas

Hemos observado que, en algunos casos, la selección de voz puede afectar a la latencia. Este es el orden de más rápida a más lenta:

  1. Voces predeterminadas (antes prediseñadas), voces sintéticas y Clones de Voz Instantáneos (IVC)
  2. Clones de Voz Profesionales (PVC)

Los formatos de salida de audio de mayor calidad pueden aumentar la latencia. Asegúrate de equilibrar tus requisitos de latencia con tus necesidades de fidelidad de audio.

Estamos trabajando activamente para optimizar la latencia de PVC para Flash v2.5.

Ten en cuenta la proximidad geográfica

Servimos nuestros modelos desde varias regiones para optimizar la latencia según tu ubicación geográfica.

Por ejemplo, al usar modelos Flash con WebSockets, puedes esperar las siguientes latencias TTFB según tu ubicación:

RegiónTTFB
Norteamérica100-150ms
Europa100-150ms
Sudeste asiático100-150ms
Asia meridional150-200ms
Nordeste asiático150-200ms

Puedes comprobar qué región de backend atiende tu solicitud inspeccionando la cabecera x-region en la respuesta de la API. Las regiones utilizadas actualmente incluyen: EE. UU., Países Bajos y Singapur.

Los clientes Enterprise pueden utilizar nuestros entornos dedicados de residencia de datos en la UE y la India para garantizar la ubicación del servidor y una baja latencia. Ponte en contacto con tu representante de ventas para acceder a nuestra infraestructura de residencia de datos.

Para excluirte del enrutamiento global y utilizar siempre servidores de EE. UU., usa la URL base api.us.elevenlabs.io para tus solicitudes a la API:

import os
from elevenlabs.client import ElevenLabs
elevenlabs = ElevenLabs(
api_key=os.getenv("ELEVENLABS_API_KEY"),
base_url="https://api.us.elevenlabs.io"
)

Anteriormente, había que activar los servidores globales mediante la URL base api-global-preview.elevenlabs.io. Ya no es necesario, ya que ahora es el comportamiento predeterminado. Actualiza tus aplicaciones para usar simplemente api.elevenlabs.io.