Otimização de latência

Este guia mostra como reduzir a latência de conversão de texto em voz na sua aplicação.

Este guia aborda os princípios fundamentais para melhorar a latência de text-to-speech. Para uma explicação conceitual sobre o que é latência e o que contribui para ela, consulte Entendendo a latência.

Embora existam muitas técnicas individuais, vamos agrupá-las em quatro princípios.

Quatro princípios

  1. Use modelos Flash
  2. Aproveite o streaming
  3. Considere a proximidade geográfica
  4. Escolha vozes adequadas

Clientes Enterprise se beneficiam de limites de simultaneidade maiores e acesso prioritário à nossa fila de renderização. Fale com vendas para saber mais sobre nossos planos Enterprise.

Use modelos Flash

Os modelos Flash oferecem velocidades de inferência de aproximadamente 75 ms, o que os torna ideais para aplicações em tempo real. A contrapartida é uma leve redução na qualidade do áudio em comparação com o Multilingual v2.

75 ms se refere apenas ao tempo de inferência do modelo. A latência real de ponta a ponta varia conforme fatores como sua localização e o tipo de endpoint utilizado.

Aproveite o streaming

Há três tipos de endpoints de text-to-speech disponíveis em nossa referência da API:

  • Endpoint comum: retorna um arquivo de áudio completo em uma única resposta.
  • Endpoint de streaming: retorna partes do áudio progressivamente usando eventos enviados pelo servidor.
  • Endpoint WebSockets: permite streaming bidirecional para geração de áudio em tempo real.

Streaming

Os endpoints de streaming retornam o áudio progressivamente conforme ele é gerado em tempo real, reduzindo o tempo até o primeiro byte. Esse endpoint é recomendado para casos em que o texto de entrada está disponível antecipadamente.

O streaming é compatível com a API de Text to Speech, a API de Modificador de Voz IA e a API de Isolamento de Áudio.

WebSockets

O endpoint WebSocket de text-to-speech oferece suporte a streaming bidirecional, tornando-o ideal para aplicações com entrada de texto em tempo real, como saídas de LLM.

Definir auto_mode como true lida automaticamente com os gatilhos de geração, eliminando a necessidade de gerenciar manualmente as estratégias de fragmentação.

Se auto_mode estiver desativado, o modelo aguardará texto suficiente para corresponder à programação de fragmentos antes de começar a gerar áudio.

Por exemplo, se você definir uma programação de fragmentos de 125 caracteres, mas chegarem apenas 50, o modelo ficará parado até receber caracteres adicionais — o que pode aumentar a latência.

Para detalhes de implementação, consulte o guia do WebSocket de text-to-speech.

Escolha vozes adequadas

Observamos que, em alguns casos, a seleção de voz pode afetar a latência. Esta é a ordem da mais rápida para a mais lenta:

  1. Vozes padrão (anteriormente pré-criadas), vozes sintéticas e Clones de Voz Instantâneos (IVC)
  2. Clones de Voz Profissionais (PVC)

Formatos de saída com maior qualidade de áudio podem aumentar a latência. Equilibre seus requisitos de latência com as necessidades de fidelidade de áudio.

Estamos trabalhando ativamente para otimizar a latência de PVC para o Flash v2.5.

Considere a proximidade geográfica

Disponibilizamos nossos modelos em várias regiões para otimizar a latência com base na sua localização geográfica.

Por exemplo, ao usar modelos Flash com WebSockets, você pode esperar as seguintes latências de TTFB dependendo da sua localização:

RegiãoTTFB
América do Norte100-150ms
Europa100-150ms
Sudeste Asiático100-150ms
Sul da Ásia150-200ms
Nordeste Asiático150-200ms

Você pode verificar qual região de backend está atendendo sua solicitação inspecionando o cabeçalho x-region na resposta da API. As regiões usadas atualmente incluem: EUA, Países Baixos e Singapura.

Clientes Enterprise podem usar nossos ambientes dedicados de residência de dados na UE e na Índia para ter garantias sobre a localização do servidor e baixa latência. Fale com seu representante de vendas para entrar em nossa infraestrutura de residência de dados.

Para desativar o roteamento global e sempre usar servidores dos EUA, use a URL base api.us.elevenlabs.io nas suas solicitações de API:

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

Antes, os servidores globais exigiam adesão usando a URL base api-global-preview.elevenlabs.io. Isso não é mais necessário, pois esse agora é o comportamento padrão. Atualize suas aplicações para usar simplesmente api.elevenlabs.io.