
Conversación de voz de baja latencia por un solo socket, con 30 voces, entrada de vídeo en directo, llamadas de herramientas y respuestas que puedes interrumpir mientras hablas.
Conversación de voz de baja latencia por un solo socket, con 30 voces, entrada de vídeo en directo, llamadas de herramientas y respuestas que puedes interrumpir mientras hablas.
La sesión se configura con los eventos session.update a través del socket en lugar de parámetros de solicitud. Los tokens de texto y audio facturan a tarifas separadas.
También conocido como Gemini Live, Google Gemini 3.8 Live
gemini-3-8-live/v1/realtimegemini-3.8-livegoogle/gemini-3.8-liveTarifas de pago por uso en vivo del catálogo de EmpirioLabs. Solo pagas por lo que usas, sin mínimo mensual.
Gemini 3.8 Live mantiene una conversación en vivo a través de un WebSocket en wss://api.empiriolabs.ai/v1/realtime?model=gemini-3-8-live, no a través de los endpoints HTTP. Conéctate con el id de modelo gemini-3-8-live y envía tu clave de API de EmpirioLabs como cabecera Authorization: Bearer en el handshake. El audio viaja en ambos sentidos como PCM de 16 bits en base64. Un navegador no puede establecer cabeceras en un WebSocket, así que abre esta conexión desde tu servidor y retransmite el audio al navegador por tu propio socket. Consigue una clave de API en el panel de 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 solicitud compatibles con la API de Gemini 3.8 Live en EmpirioLabs. Los valores por defecto se aplican cuando se omite un campo.
| Parámetro | Tipo | Predeterminado | Rango / valores | Descripción |
|---|---|---|---|---|
| voice | enum | Puck | Zephyr, Puck, Charon, Kore, Fenrir, Leda, Orus, Aoede, Callir... | Voz hablada para la sesión. Configúralo con session.update antes de que empiece la conversación; no puede cambiar después. |
| instructions | string | - | - | Guía del sistema sobre cómo se comporta y habla el modelo. Configúralo con session.update antes de que empiece la conversación. |
| temperature | number | - | 0.2 a 2 | Temperatura de muestreo de 0,2 a 2. Valores más bajos hacen que las respuestas sean más consistentes. Configúralo antes de que empiece la conversación. |
| input_audio_format | enum | pcm16 | pcm16, pcm24 | Codificación del audio que añades al búfer de entrada: pcm16 es PCM base64 de 16 bits a 16 kHz, y pcm24 es igual a 24 kHz. |
| output_audio_format | enum | pcm24 | pcm24 | Codificación del audio que el modelo transmite de vuelta: PCM de 16 bits a 24 kHz. |
| turn_detection | string | {"type":"server_vad"} | - | Detección de actividad vocal: decide cuándo has terminado de hablar y el modelo debe responder. Está activado por defecto como server_vad. Con server_vad, el umbral... |
| max_response_output_tokens | number | - | 4096 a 65536 | El mayor número de tokens de salida que puede usar una respuesta: de 4096 a 65536, donde un número mayor es 65536, o "inf" para el límite propio del modelo. También... |
| input_audio_transcription | string | - | - | Pistas para la transcripción de lo que dices: el idioma es un código de lenguaje como en o fr-FR, y el prompt lista hasta 1.000 palabras y nombres para reconocer,... |
| media_resolution | enum | - | low, medium, high | Detalle que el modelo ve en cada fotograma de vídeo que envíes: bajo usa menos tokens de entrada por fotograma, y medio y alto muestran más detalle. Cuando se omite,... |
Voz dúplex completo sobre un WebSocket a wss://api.empiriolabs.ai/v1/realtime?model=gemini-3-8-live, autenticada con la cabecera habitual de Portador de Autorización. Configura la sesión con session.update antes de enviar el primer audio: voz, instrucciones, detección de giros y herramientas. Estos ajustes se corrigen una vez que comienza la conversación.
Los tokens de audio y texto se valoran por separado en ambas direcciones, los fotogramas de vídeo se facturan como tokens de entrada y los tokens de razonamiento como tokens de salida. Cada turno completado se factura por sí solo según el uso que el modelo reporta, incluyendo una respuesta que interrumpes.
En EmpirioLabs, Gemini 3.8 Live se factura por uso: Entrada: audio $7.80 por 1M de tokens de entrada de audio; Entrada $2.60 por 1M de tokens de prompt; Salida $11.70 por 1M de tokens generados; Salida: audio $31.20 por cada 1M de tokens de audio generados. La tabla de tarifas en vivo de esta página siempre coincide con lo que cobra la API.
Gemini 3.8 Live admite una ventana de contexto de 128K tokens con hasta 65.536 tokens de salida por respuesta.
Gemini 3.8 Live se sirve a través de WEBSOCKET /v1/realtime en api.empiriolabs.ai con autenticación estándar de token Bearer.
Abre el playground de EmpirioLabs y pulsa Start session para probarlo en tu navegador. Gemini 3.8 Live funciona sobre un WebSocket en lugar de una petición y una respuesta, así que para integrarlo empieza por la guía rápida de voz en tiempo real. Conéctate desde tu servidor con tu clave de API de EmpirioLabs y el id de modelo gemini-3-8-live, y luego transmite audio en ambos sentidos.
Crea una cuenta de EmpirioLabs y genera una clave en API Keys en el panel. La facturación es con créditos de pago por uso, así que solo pagas por las solicitudes que haces.
Consulta nuestros precios o contacta con nosotros si quieres que tu propio modelo se implemente en nuestra pila.