ElevenLabs API: Integre Voz de IA em Seus Aplicativos
O ElevenLabs não é só para uso manual — a API permite integrar geração de voz de alta qualidade em qualquer aplicativo, chatbot, sistema de atendimento ou pipeline de automação.
Configuração inicial
1. Obtenha sua API key
Acesse elevenlabs.io → Profile → API Keys → Create API Key. Guarde a chave com segurança.
2. Instale o SDK
# Python
pip install elevenlabs
# Node.js
npm install elevenlabs
Primeira geração de voz
Python:
from elevenlabs import ElevenLabs, VoiceSettings
client = ElevenLabs(api_key="SEU_API_KEY")
audio = client.text_to_speech.convert(
text="Olá! Este é um exemplo de narração com ElevenLabs API.",
voice_id="pNInz6obpgDQGcFmaJgB", # Adam (inglês) — use ID de voz em PT
model_id="eleven_multilingual_v2",
voice_settings=VoiceSettings(
stability=0.5,
similarity_boost=0.75,
style=0.5,
),
)
# Salvar em arquivo
with open("output.mp3", "wb") as f:
for chunk in audio:
f.write(chunk)
Node.js/TypeScript:
import { ElevenLabs } from "elevenlabs";
import { createWriteStream } from "fs";
const client = new ElevenLabs({ apiKey: process.env.ELEVENLABS_API_KEY });
async function generateSpeech(text: string, outputPath: string) {
const audio = await client.textToSpeech.convert("voice_id_aqui", {
text,
model_id: "eleven_multilingual_v2",
voice_settings: { stability: 0.5, similarity_boost: 0.75 },
});
const fileStream = createWriteStream(outputPath);
audio.pipe(fileStream);
await new Promise(resolve => fileStream.on("finish", resolve));
}
Streaming de áudio (baixa latência)
Para aplicações de conversação onde a resposta precisa começar imediatamente:
async def stream_audio(text: str):
audio_stream = client.text_to_speech.stream(
text=text,
voice_id="voice_id",
model_id="eleven_flash_v2_5", # modelo ultra-rápido (latência <400ms)
)
async for chunk in audio_stream:
yield chunk # envie cada chunk para o cliente via WebSocket
O modelo eleven_flash_v2_5 é otimizado para latência — ideal para assistentes de voz conversacionais.
Modelos disponíveis
| Modelo | Qualidade | Latência | Uso ideal |
|---|---|---|---|
| eleven_multilingual_v2 | Máxima | 2-4s | Narração, dubbing |
| eleven_turbo_v2 | Alta | 1-2s | Chatbots rápidos |
| eleven_flash_v2_5 | Boa | <400ms | Assistentes de voz |
Caso de uso: Chatbot com resposta em voz
from anthropic import Anthropic
from elevenlabs import ElevenLabs
claude = Anthropic()
elvenlabs = ElevenLabs(api_key=ELEVENLABS_KEY)
async def chat_with_voice(user_message: str, voice_id: str) -> bytes:
# 1. Gera resposta textual com Claude
response = claude.messages.create(
model="claude-opus-4-6",
max_tokens=200, # respostas curtas para conversação
messages=[{"role": "user", "content": user_message}]
)
text_response = response.content[0].text
# 2. Converte para voz
audio = elevenlabs.text_to_speech.convert(
text=text_response,
voice_id=voice_id,
model_id="eleven_turbo_v2",
)
return b"".join(audio)
Listando vozes disponíveis
voices = client.voices.get_all()
for voice in voices.voices:
print(f"{voice.name}: {voice.voice_id}")
Custos e limites da API
| Plano | Caracteres/mês | Custo excedente |
|---|---|---|
| Starter | 30.000 | $0.30/1000 |
| Creator | 100.000 | $0.24/1000 |
| Pro | 500.000 | $0.18/1000 |
Dica: cache áudios gerados em arquivos estáticos para evitar gerar o mesmo texto múltiplas vezes.
A API do ElevenLabs é uma das mais fáceis de usar no mercado — e o resultado de qualidade justifica o custo para aplicações que precisam de voz de alta fidelidade.

