El 14 de octubre de 2026, xAI anunció Grok Voice 3.0, su modelo speech-to-speech para agentes de voz en tiempo real. El precio no se movió: $0.08 por minuto, igual que Grok Voice 2.0, y quien llamaba al alias grok-voice-latest pasó a 3.0 automáticamente.
Dos semanas antes, el 1 de octubre, Microsoft lanzó la filosofía opuesta: modelos de transcripción en streaming y de voz por separado, que conectás en tu propio pipeline. Acá va cómo elegir entre las dos rutas, cuánto cuesta cada una por minuto usando solo precios publicados, y un cliente mínimo que podés adaptar.
1. Los hechos del lanzamiento
El anuncio de xAI llama a Grok Voice 3.0 “el modelo speech-to-speech más inteligente del mundo”, lo cual es posicionamiento, no evidencia. Lo concreto: un solo modelo que recibe audio y devuelve audio por WebSocket, con detección de voz del lado del servidor, tool calling, 20 códigos de idioma listados y facturación por minuto de conversación.
El lanzamiento de Microsoft del 1 de octubre tiene otra forma: MAI-Transcribe-2-Streaming (voz a texto), MAI-Voice-2.1 y MAI-Voice-2.1-Flash (texto a voz). Ninguno es un modelo speech-to-speech, así que son piezas para la ruta STT → LLM → TTS. Microsoft Learn etiqueta el modelo de transcripción en streaming como public preview sin SLA.
Ficha técnica
- • Lanzamiento: 14 de octubre de 2026 (anuncio de xAI) — model ID grok-voice-3.0; el alias grok-voice-latest ahora apunta a él; grok-voice-2.0 figura como deprecado
- • Precio: $0.08 por minuto ($4.80 por hora), igual que 2.0 (página de precios de xAI)
- • Endpoint: wss://api.x.ai/v1/realtime?model=grok-voice-latest — API key como Bearer en el servidor, token efímero para navegadores
- • Audio: audio/pcm (24000 Hz por defecto, de 8000 a 48000 soportado), audio/pcmu y audio/pcma a 8000 Hz, audio/opus a 24000 Hz
- • Sesión: detección de turnos con server_vad, voz integrada eve (por defecto) o voces personalizadas, tools: function, web_search, x_search, file_search, mcp
- • Microsoft (1-oct): MAI-Voice-2.1 $22 por 1M de caracteres, MAI-Voice-2.1-Flash $15 por 1M de caracteres, MAI-Transcribe-2-Streaming $0.54 por hora de audio (introductorio, hasta fin de año)
2. Qué mejoró vs Grok Voice 2.0
El post de xAI compara 3.0 con 2.0 usando números recolectados por Artificial Analysis el 13 de octubre de 2026. El Speech-to-Speech Index sube de 81.3 a 86.9, Big Bench Audio (razonamiento de voz) de 97.2% a 98.5%, y el Elo de Speech Agent Arena de 1011 a 1070. El éxito de tareas casi no se mueve: 94.6% a 94.8%.
Los saltos que importan para agentes están en la mecánica de la conversación. Full Duplex Bench, que prueba pausas, turnos e interrupciones, pasa de 95.1% a 97.0%. τ-Voice, escenarios de llamadas de soporte con acentos, ruido de fondo e interrupciones, pasa de 56.5% a 71.6%. El precio quedó igual, así que en el papel es un upgrade gratis.
Regla práctica
Si tu agente ya corre en grok-voice-latest, hoy tenés 3.0. Antes de festejar, reproducí tus propias llamadas grabadas: el alias se movió debajo tuyo y tus prompts estaban afinados para 2.0.
3. Evidencia, y quién la midió
A diferencia de muchos posts de lanzamiento, los números principales acá no son xAI calificándose a sí misma: vienen de Artificial Analysis, un sitio de benchmarking independiente con un leaderboard público. Lo que sí eligió xAI es el set de comparación y las métricas que destaca, así que leí el leaderboard fila por fila el 14 de octubre para ver el cuadro completo.
Grok Voice 3.0 lidera el Index y el tiempo al primer audio en esa tabla, pero no gana todas las columnas: GPT-Live-1 (Astra, medium) puntúa más en τ-Voice, Gemini 3.8 Live tiene el Elo de Arena más alto de los cinco, y GPT-Live-1 (Sol, low) lo supera por poco en Full Duplex Bench.
Foto del leaderboard speech-to-speech de Artificial Analysis
Filas seleccionadas del leaderboard público, leídas el 2026-10-14.
| Modelo | Index | Full Duplex | τ-Voice | Elo Arena | Primer audio |
|---|---|---|---|---|---|
| Grok Voice 3.0 | 86.9 | 97.0% | 71.6% | 1070 | 0.81 s |
| GPT-Live-1 (Astra, medium) | 83.2 | 94.9% | 74.5% | 1056 | 1.34 s |
| GPT-Live-1 (Sol, low) | 80.1 | 97.3% | 59.3% | 1057 | 1.24 s |
| Gemini 3.8 Live | 76.0 | 96.1% | 30.1% | 1088 | 1.18 s |
| Gemini 3.8 Live (Ext. Thinking, High) | 82.6 | 91.9% | 68.6% | 993 | 1.35 s |
Fuente: Artificial Analysis. El post de xAI muestra valores de Elo algo distintos para algunos competidores (por ejemplo 1048 para GPT-Live-1 Astra), así que tomá las diferencias de pocos puntos de Elo como ruido.
Lo que respaldan las fuentes
- • Index 86.9, Full Duplex 97.0%, τ-Voice 71.6% y éxito de tareas 94.8% para Grok Voice 3.0 (datos de Artificial Analysis del 13-oct-2026, citados por xAI)
- • 0.81 s vs 1.34 s hasta el primer audio frente a GPT-Live-1 (Astra, medium) en el leaderboard: cerca de 40% menos, coherente con lo que dice xAI (la proporción es cuenta mía)
- • EVA-Bench (ServiceNow, agentes de voz enterprise): 74% de accuracy, que xAI reporta como el más alto de ese benchmark
Letra chica
Las cifras de Tesla (“millones de conversaciones por día”) y Starlink (unas 20.000 llamadas diarias, cerca de 70% resueltas sin humano) son declaraciones de xAI, no números auditados. Los datos de benchmark son una foto del 13 de octubre y los leaderboards se mueven. No corrí ninguno de estos benchmarks yo mismo.
4. ¿Speech-to-speech o STT → LLM → TTS?
Un modelo speech-to-speech escucha y habla en un solo paso, así que turnos, interrupciones y prosodia viven dentro del modelo. Un pipeline encadena tres servicios (transcribir, pensar, sintetizar) y el pegamento es tuyo: detección de voz, barge-in, buffering y el texto del medio.
Ese texto del medio es el verdadero trade-off. Con un pipeline podés loguearlo, redactarlo, pasarle guardrails y cambiar el LLM cuando aparezca uno más barato. Con speech-to-speech escribís menos orquestación y, según Artificial Analysis, tenés un primer audio rápido, pero hay menos para inspeccionar salvo que actives los eventos de transcripción.
Cómo elegiría yo
Speech-to-speech si…
las interrupciones naturales importan más que el control a nivel de texto, querés un solo proveedor y una sola factura, y tus tools son pocas y rápidas.
Pipeline si…
tenés que loguear o redactar texto entre pasos, necesitás un LLM específico o una voz de marca, o el costo por minuto es la restricción que manda.
Existe el híbrido
La Voice Live API de Microsoft te deja fijar el modelo de transcripción (MAI-Transcribe) aparte del modelo de chat y de la voz, en una sola sesión WebSocket.
Costo por minuto, solo con precios publicados
Los precios salen de la página de xAI y del post de lanzamiento de Microsoft. Los totales por minuto dependen de supuestos que son míos.
| Ruta | Precios publicados | USD por minuto (est.) |
|---|---|---|
| Grok Voice 3.0 (speech-to-speech) | $0.08 por minuto | $0.080 |
| Pipeline xAI: STT streaming + grok-4.7 + TTS de xAI | $0.20/h STT · $2 in / $6 out por 1M de tokens · $15 por 1M de caracteres | ≈ $0.036 |
| Pipeline Microsoft: MAI-Transcribe-2-Streaming + mismo LLM + MAI-Voice-2.1-Flash | $0.54/h STT · mismo LLM · $15 por 1M de caracteres | ≈ $0.042 |
| Pipeline Microsoft con MAI-Voice-2.1 | $0.54/h STT · mismo LLM · $22 por 1M de caracteres | ≈ $0.048 |
Supuestos (míos, no mediciones): 900 caracteres de habla del agente por minuto de llamada (unas 150 palabras), 4 turnos por minuto, 2.000 tokens de input y 150 de output por turno en grok-4.7 a sus precios publicados bajo 200k tokens, lo que da unos $0.02 por minuto. No incluye hosting, telefonía, reintentos ni cargos de tools o búsqueda. Reemplazalos con tu propio tráfico.
Cómo leer la tabla con honestidad
En el papel un pipeline cuesta más o menos la mitad que Grok Voice 3.0 por minuto. Lo que pagás de más es menos piezas móviles y, si el leaderboard se sostiene con tu tráfico, mejores turnos. Si tu agente habla solo el 30% del tiempo, la parte de TTS del pipeline se achica todavía más.
5. Quickstart: un cliente mínimo
Todo lo que sigue está adaptado de los docs de voz de xAI y verificado contra ellos el 2026-10-14. No lo corrí con una key real: tomalo como un smoke test de texto-entra, audio-sale que podés extender con un micrófono.
Instalá el paquete websockets, exportá XAI_API_KEY, corré el script y abrí reply.wav. El audio es PCM linear16 a 24 kHz; asumo mono porque los docs no indican la cantidad de canales.
Smoke test: entra un turno de texto, sale audio
Replica el ejemplo en Python de los docs (websockets, header Bearer, session.update). additional_headers es el nombre del argumento en las versiones recientes de websockets, igual que en el ejemplo de xAI.
import asyncio
import base64
import json
import os
import wave
import websockets
URL = "wss://api.x.ai/v1/realtime?model=grok-voice-latest"
HEADERS = {"Authorization": f"Bearer {os.environ['XAI_API_KEY']}"}
async def main():
async with websockets.connect(URL, additional_headers=HEADERS) as ws:
await ws.send(json.dumps({
"type": "session.update",
"session": {
"voice": "eve",
"instructions": "You are a helpful customer support agent.",
"turn_detection": {"type": "server_vad"},
"audio": {
"input": {"format": {"type": "audio/pcm", "rate": 24000}},
"output": {"format": {"type": "audio/pcm", "rate": 24000}},
},
},
}))
await ws.send(json.dumps({
"type": "conversation.item.create",
"item": {
"type": "message",
"role": "user",
"content": [{"type": "input_text", "text": "Hello!"}],
},
}))
await ws.send(json.dumps({"type": "response.create"}))
pcm = bytearray()
async for message in ws:
event = json.loads(message)
if event["type"] == "response.output_audio.delta":
pcm += base64.b64decode(event["delta"])
elif event["type"] == "response.done":
break
with wave.open("reply.wav", "wb") as f:
f.setnchannels(1) # mono (assumed, not stated in the docs)
f.setsampwidth(2) # 16-bit linear PCM
f.setframerate(24000)
f.writeframes(bytes(pcm))
asyncio.run(main())Streamear un micrófono y manejar una tool call
Los docs dicen que append recibe audio en base64 pero no muestran el JSON, así que el nombre del campo audio sale de los modelos de eventos open source de Pipecat para xAI. Los campos de la function tool (type, name, description, parameters) coinciden con la lista de campos de los docs. Con llamadas en paralelo, mandá todos los function_call_output antes de un solo response.create, y esperá a que termine la reproducción actual.
# 1) microphone -> model (with server_vad, append is the only audio event you need)
async def send_audio(ws, chunks): # chunks: raw PCM16 at 24 kHz
async for chunk in chunks:
await ws.send(json.dumps({
"type": "input_audio_buffer.append",
"audio": base64.b64encode(chunk).decode(),
}))
# 2) a function tool, declared inside session.update -> session.tools
tools = [{
"type": "function",
"name": "get_order_status",
"description": "Look up an order by id.",
"parameters": {
"type": "object",
"properties": {"order_id": {"type": "string"}},
"required": ["order_id"],
},
}]
# 3) when the model calls it, return the output, then ask for the spoken reply
if event["type"] == "response.function_call_arguments.done":
result = lookup_order(**json.loads(event["arguments"])) # your code
await ws.send(json.dumps({
"type": "conversation.item.create",
"item": {
"type": "function_call_output",
"call_id": event["call_id"],
"output": json.dumps(result),
},
}))
await ws.send(json.dumps({"type": "response.create"}))Clientes de navegador: token efímero, no tu API key
De la página de ephemeral tokens de xAI. Los docs no documentan el esquema de la respuesta, así que leé el token del JSON que te devuelve.
# server: mint a short-lived token (never ship XAI_API_KEY to the client)
curl -X POST https://api.x.ai/v1/realtime/client_secrets \
-H "Authorization: Bearer $XAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"expires_after": {"seconds": 300}}'
// browser: pass the token as a WebSocket subprotocol
const ws = new WebSocket("wss://api.x.ai/v1/realtime",
["xai-client-secret." + token]);La ruta Microsoft: MAI-Transcribe + una voz MAI en Voice Live
Armado con tres snippets del how-to de Voice Live en Microsoft Learn (actualizado 2026-10-08): el nombre del modelo de transcripción, el ejemplo de voz MAI-Voice-2-Flash y el tipo de turn_detection. El modelo de chat va en el query parameter model de wss://<resource>.services.ai.azure.com/voice-live/realtime?api-version=2026-04-10. Los docs llaman a la voz MAI-Voice-2-Flash (Preview) mientras el post de lanzamiento dice 2.1-Flash, así que revisá el catálogo de voces antes de copiar.
{
"type": "session.update",
"session": {
"input_audio_transcription": {"model": "mai-transcribe-2-streaming"},
"modalities": ["text", "audio"],
"instructions": "You are a helpful assistant.",
"voice": {"name": "en-US-Harper:MAI-Voice-2-Flash", "type": "azure-standard"},
"turn_detection": {"type": "azure_semantic_vad_multilingual"}
}
}6. Límites honestos y qué hacer esta semana
Límites para planificar
- • Techos sin documentar: los docs de xAI no indican duración máxima de sesión, rate limits ni límites de concurrencia (revisado el 2026-10-14). Preguntá antes de dimensionar un call center sobre esto.
- • Alias móvil: grok-voice-latest ya cambió de modelo una vez sin un deploy de tu lado. Fijá grok-voice-3.0 en producción y actualizá a propósito.
- • Los benchmarks son una foto: GPT-Live-1 (Astra, medium) saca 74.5% en τ-Voice contra 71.6%, e incluso 71.6% significa que una parte real de las tareas de soporte falla. Mantené un traspaso a humano.
- • Huecos de precio: la página de precios no dice si tools del lado del servidor como web_search suman cargos a las sesiones de voz, y hay una línea “$0.004 / text input” bajo el precio por minuto sin unidad indicada.
- • Idiomas: xAI lista 20 códigos de idioma y dice que otros funcionan con precisión variable. Para español y portugués el hint de transcripción necesita un código regional (es-MX, es-ES, pt-BR, pt-PT).
- • Lado Microsoft: MAI-Transcribe-2-Streaming es public preview sin SLA y no recomendado para producción según Microsoft Learn, y sus $0.54 por hora son introductorios hasta fin de año.
Checklist para esta semana
- 1. Fijá el modelo: grok-voice-3.0 en producción, grok-voice-latest solo en un canario de staging.
- 2. Reproducí de 20 a 30 grabaciones reales (acentos, ruido, interrupciones) y medí finalización de tareas y tiempo al primer audio desde tu propia región.
- 3. Poné audio.input.transcription.model en grok-transcribe para recibir eventos de transcripción y tener texto para loguear, revisar y evaluar.
- 4. Recalculá la tabla de costos con tus propios caracteres por minuto y tokens por turno; la brecha entre rutas depende de ellos.
- 5. Generá tokens efímeros en tu servidor para cualquier cliente web o móvil. Nunca envíes la API key.
El manejo de datos es una cuestión de contrato
Los docs de xAI dicen que el audio se procesa en tiempo real y no se almacena ni se usa para entrenar, y listan SOC 2 Type II, elegibilidad HIPAA (BAA disponible) y cumplimiento GDPR con opciones de residencia de datos en la UE. Son declaraciones del proveedor: conseguí que lo que necesitás quede escrito en tu contrato, no solo en una página de docs.
Veredicto
Grok Voice 3.0 es un upgrade creíble: los mismos $0.08 por minuto, mejor mecánica de conversación en un leaderboard independiente, y un protocolo lo bastante simple como para hacer un smoke test en unas 50 líneas de Python. No es la ruta más barata por minuto, y no gana todas las columnas de benchmark.
Mi regla: prototipá con speech-to-speech porque te lleva a una conversación funcionando en una tarde, y después cotizá un pipeline cuando conozcas tus caracteres y tokens por minuto reales. Si necesitás control a nivel de texto o el minuto más barato, los componentes MAI de Microsoft valen una mirada apenas salgan de preview.
Fuentes de este post
Primarias e independientes
- • xAI: anuncio de Grok Voice 3.0 (14-oct-2026)
- • Docs de xAI: protocolo de voice agent, tokens efímeros y precios
- • Artificial Analysis: leaderboard Speech-to-Speech
- • Microsoft AI: lanzamiento de transcripción en streaming y MAI-Voice-2.1 (1-oct-2026)
- • Microsoft Learn: MAI-Transcribe-2-Streaming y Voice Live API
- • Pipecat: modelos de eventos realtime de xAI (open source)



