
Conversa de voz de baixa latência por um soquete, com 30 vozes, entrada de vídeo ao vivo, chamadas de ferramentas e respostas que você pode interromper enquanto fala.
Conversa de voz de baixa latência por um soquete, com 30 vozes, entrada de vídeo ao vivo, chamadas de ferramentas e respostas que você pode interromper enquanto fala.
A sessão é configurada com eventos session.update pelo socket em vez de parâmetros de requisição. Tokens de texto e áudio cobram em taxas separadas.
Também conhecido como Gemini Live, Google Gemini 3.8 Live
gemini-3-8-live/v1/realtimegemini-3.8-livegoogle/gemini-3.8-liveTarifas pay-as-you-go ao vivo do catálogo EmpirioLabs. Você paga só pelo que usa, sem mínimo mensal.
Gemini 3.8 Live mantém uma conversa ao vivo por um WebSocket em wss://api.empiriolabs.ai/v1/realtime?model=gemini-3-8-live, e não pelos endpoints HTTP. Conecte-se com o id de modelo gemini-3-8-live e envie sua chave de API da EmpirioLabs como cabeçalho Authorization: Bearer no handshake. O áudio trafega nos dois sentidos como PCM de 16 bits em base64. Um navegador não consegue definir cabeçalhos em um WebSocket, então abra esta conexão a partir do seu servidor e repasse o áudio ao navegador pelo seu próprio socket. Obtenha uma chave de API no painel EmpirioLabs.
import asyncio, json, os, websockets
async def main():
async with websockets.connect(
"wss://api.empiriolabs.ai/v1/realtime?model=gemini-3-8-live",
additional_headers=[
("Authorization", f"Bearer {os.environ['EMPIRIOLABS_API_KEY']}"),
],
max_size=None,
) as ws:
print(json.loads(await ws.recv())["type"]) # session.created
await ws.send(json.dumps({
"type": "conversation.item.create",
"item": {
"type": "message",
"role": "user",
"content": [{"type": "input_text", "text": "Say hello."}],
},
}))
await ws.send(json.dumps({"type": "response.create"}))
async for raw in ws:
event = json.loads(raw)
if event["type"] == "response.audio.delta":
... # base64 audio chunk, append to your playback buffer
elif event["type"] == "response.done":
break
asyncio.run(main())Parâmetros de requisição suportados pela API Gemini 3.8 Live na EmpirioLabs. Os padrões valem quando um campo é omitido.
| Parâmetro | Tipo | Padrão | Intervalo / valores | Descrição |
|---|---|---|---|---|
| voice | enum | Puck | Zephyr, Puck, Charon, Kore, Fenrir, Leda, Orus, Aoede, Callir... | Voz falada para a sessão. Defina com session.update antes do início da conversa; não pode mudar depois. |
| instructions | string | - | - | Orientação do sistema sobre como o modelo se comporta e fala. Defina com session.update antes que a conversa comece. |
| temperature | number | - | 0 a 2 | Temperatura de amostragem de 0 a 2. Valores mais baixos tornam as respostas mais consistentes. Defina antes que a conversa comece. |
| input_audio_format | enum | pcm16 | pcm16, pcm24 | Codificação do áudio que você adiciona ao buffer de entrada: pcm16 é PCM base64 de 16 bits a 16 kHz, e pcm24 é o mesmo a 24 kHz. |
| output_audio_format | enum | pcm24 | pcm24 | Codificação do áudio que o modelo transmite de volta: PCM de 16 bits a 24 kHz. |
| turn_detection | string | {"type":"server_vad"} | - | Detecção de atividade de voz do lado do servidor. Decide quando você parou de falar e o modelo deve responder. Está ativado por padrão; configure para nulo para... |
Conectando Voz full-duplex por WebSocket no wss://api.empiriolabs.ai/v1/realtime?model=gemini-3-8-live, autenticada com o cabeçalho Authorization Bearer comum. Configure a sessão com session.update antes de enviar o primeiro áudio: voz, instruções, detecção de giro e ferramentas. Essas configurações são corrigidas assim que a conversa começa. Enviando áudio e vídeo - Adicionar áudio do microfone como eventos input_audio_buffer.append: PCM de 16 bits a 16 kHz, ou a 24 kHz com input_audio_format configurado para pcm24. - Anexe quadros de vídeo ao vivo como eventos input_image_buffer.append, como imagens base64 JPEG ou PNG. - A detecção de atividade de voz está ativada por padrão, então continue transmitindo por cerca de um segundo após o fim da fala. Defina turn_detection para nulo para encerrar cada turno você mesmo com input_audio_buffer.commit. Vozes e linguagem - Use uma das 30 vozes na lista voice, por exemplo Puck, Kore ou Charon. Qualquer outro valor é recusado. - O modelo responde no idioma que você fala. Responde - Fluxos de fala como eventos response.audio.delta, PCM de 16 bits a 24 kHz, com as palavras como eventos session.update 0__. Sua própria fala também é transcrita. - Falar enquanto o modelo responde interrompe. Tools - Chamada de função com parâmetros do esquema JSON. Devolva cada resultado como item session.update 1__ com sua session.update 2__. Faturamento Tokens de áudio e texto são precificados separadamente em ambas as direções, quadros de vídeo faturam como tokens de entrada, e tokens de raciocínio faturam como tokens de saída. Cada turno concluído é cobrado separadamente pelo uso que o modelo reporta, incluindo uma resposta que você interrompe.
Na EmpirioLabs, Gemini 3.8 Live é cobrado por uso: Entrada: áudio $7.80 por 1M de tokens de entrada de áudio; Entrada $2.60 por 1M de tokens de prompt; Saída $11.70 por 1M de tokens gerados; Saída: áudio $31.20 por 1M de tokens de áudio gerados. A tabela de tarifas ao vivo desta página sempre corresponde ao que a API cobra.
Gemini 3.8 Live suporta uma janela de contexto de 128K tokens com até 65.536 tokens de saída por resposta.
Gemini 3.8 Live é servido por WEBSOCKET /v1/realtime em api.empiriolabs.ai com autenticação padrão por token Bearer.
Abra o playground da EmpirioLabs e clique em Start session para testar no navegador. Gemini 3.8 Live funciona sobre um WebSocket em vez de requisição e resposta, então para integrar comece pelo guia rápido de voz em tempo real. Conecte-se do seu servidor com sua chave de API da EmpirioLabs e o id de modelo gemini-3-8-live e transmita áudio nos dois sentidos.
Crie uma conta EmpirioLabs e gere uma chave em API Keys no painel. A cobrança usa créditos pay-as-you-go, então você paga apenas pelas requisições que faz.
Confira nossos preços ou entre em contato se quiser que seu próprio modelo seja implementado em nossa pilha.