xAI lanzó Grok Voice con Grok 4.3, y lo importante para desarrolladores es directo: está disponible gratis desde la Consola xAI. No hay cargo por minuto ni por token para el agente de voz, texto a voz, voz a texto o Voces Personalizadas. El único recurso facturable es el uso subyacente de tokens de Grok 4.3 cuando el agente razona, y la consola incluye asignación gratuita para pruebas.
En esta guía vas a levantar Grok Voice sin costo, clonar una voz, abrir una sesión WebSocket y validar el flujo completo con Apidog antes de integrarlo en una aplicación.
Si también necesitas la guía completa de la API de Grok 4.3, o una comparación directa contra OpenAI en Grok Voice vs GPT-Realtime, esas publicaciones cubren el resto de la superficie.
En resumen
- Grok Voice es gratis para usuarios de la Consola xAI (
console.x.ai): sin cargo por minuto ni por token para TTS, STT, agente de voz o Voces Personalizadas. - Modelo principal:
grok-voice-think-fast-1.0. - Tiempo hasta el primer audio: menos de 1 segundo; xAI afirma que es aproximadamente 5 veces más rápido que el competidor más cercano.
- Más de 80 voces preestablecidas en 28 idiomas.
- 5 personas de agente de voz integradas: Eve, Ara, Rex, Sal y Leo.
- Clonación de voz personalizada desde aproximadamente 1 minuto de habla.
- Voz lista para producción en menos de 2 minutos.
- Endpoint WebSocket:
wss://api.x.ai/v1/realtime?model=grok-voice-think-fast-1.0
- Los endpoints REST para TTS, STT y Voces Personalizadas comparten una única superficie de API.
- Puedes usar Apidog para preparar, ejecutar y repetir sesiones WebSocket sin volver a grabar audio.
Lo que Grok Voice ofrece gratis
La Consola xAI es el punto de entrada. Inicia sesión en console.x.ai, genera una clave de API y podrás llamar a estas cuatro superficies sin cargos asociados a las funciones de voz.
Superficies disponibles
- Agente de Voz: conversación habla-a-habla en tiempo real, con uso de herramientas, detección de actividad de voz del lado del servidor y gestión de turnos.
- Texto a Voz: más de 80 voces preestablecidas en 28 idiomas, con salida MP3 o μ-law para telefonía.
- Voz a Texto: transcripción en streaming y por lotes en 25 idiomas de entrada, con marcas de tiempo por palabra y diarización de hablantes.
-
Voces Personalizadas: clonación de voz desde una muestra corta; el
voice_idresultante funciona en TTS y en el agente de voz.
El único medidor que se activa es el uso de tokens de Grok 4.3 cuando el agente necesita razonar sobre una solicitud. La consola incluye crédito gratuito para probar esta parte, suficiente para validar flujos de extremo a extremo antes de pasar a producción.
Paso 1: Obtén una clave de consola
Ve a console.x.ai e inicia sesión con tu cuenta de X. En la página API Keys, crea una clave nueva con los alcances voice y chat habilitados.
Exporta la clave como variable de entorno:
export XAI_API_KEY="xai-..."
Para verificar que tu entorno está configurado:
echo $XAI_API_KEY
Si vas a construir una aplicación web, no expongas esta clave en el navegador. En su lugar, genera un token efímero desde la configuración de la consola o desde el endpoint:
/v1/realtime/sessions
Los tokens efímeros tienen el mismo alcance, pero expiran en minutos. Úsalos para conectar clientes web sin filtrar la clave principal.
Paso 2: Elige una voz
Tienes dos opciones: usar una voz preestablecida o clonar una voz personalizada.
Opción A: usar voces preestablecidas
El agente de voz incluye cinco personas nombradas:
- Eve: femenina, enérgica. Útil para soporte con tono optimista.
- Ara: femenina, cálida. Buena opción para asistencia general.
- Rex: masculino, seguro. Útil para guiones comerciales.
- Sal: neutral, suave. Adecuada para narración y lecturas largas.
- Leo: masculino, autoritario. Útil para cumplimiento y flujos formales.
Para TTS, la biblioteca es mayor: más de 80 voces en 28 idiomas. Se seleccionan con el parámetro voice en el endpoint de texto a voz.
Opción B: clonar una voz personalizada
Prepara un archivo WAV con aproximadamente un minuto de habla limpia de un solo hablante. Luego súbelo al endpoint de Voces Personalizadas:
curl https://api.x.ai/v1/custom-voices \
-H "Authorization: Bearer $XAI_API_KEY" \
-F "name=narrator-jane" \
-F "language=en" \
-F "audio=@sample.wav"
La respuesta incluye un voice_id. Ese mismo ID puede usarse en TTS y en el agente de voz.
Buenas prácticas para la muestra:
- Usa una habitación silenciosa.
- Graba una sola voz.
- Evita música o ruido de fondo.
- Mantén volumen y distancia constantes.
- No asumas que más duración mejora el resultado; el máximo es 120 segundos, pero una muestra limpia de 60 segundos suele ser más útil que una muestra larga con ruido.
Paso 3: Abre una sesión WebSocket
El agente de voz funciona como una única sesión WebSocket:
- Abres la conexión.
- Configuras la sesión.
- Envías audio de entrada.
- Recibes audio de salida en streaming.
Endpoint:
wss://api.x.ai/v1/realtime?model=grok-voice-think-fast-1.0
Cliente mínimo en Node.js:
import WebSocket from "ws";
const ws = new WebSocket(
"wss://api.x.ai/v1/realtime?model=grok-voice-think-fast-1.0",
{
headers: {
Authorization: `Bearer ${process.env.XAI_API_KEY}`,
},
}
);
ws.on("open", () => {
ws.send(JSON.stringify({
type: "session.update",
session: {
voice: "ara",
instructions: "You are a friendly support agent. Keep replies under two sentences.",
input_audio_format: "pcm16",
output_audio_format: "pcm16",
turn_detection: {
type: "server_vad",
},
},
}));
});
ws.on("message", (raw) => {
const event = JSON.parse(raw.toString());
if (event.type === "response.audio.delta") {
process.stdout.write(Buffer.from(event.delta, "base64"));
}
if (event.type === "response.audio.done") {
console.error("Turno completado");
}
});
El audio del usuario se envía como eventos input_audio_buffer.append, usando tramas PCM16 codificadas en base64. El servidor responde con eventos response.audio.delta mientras genera audio, y con response.audio.done cuando termina el turno.
Formato recomendado:
- Usa
pcm16a 24 kHz para navegador o escritorio. - Usa
mulawcuando conectes el flujo a telefonía.
Paso 4: Envía audio al WebSocket
El patrón de envío es:
ws.send(JSON.stringify({
type: "input_audio_buffer.append",
audio: base64Pcm16Frame,
}));
Después de enviar suficiente audio, puedes pedir una respuesta:
ws.send(JSON.stringify({
type: "response.create",
}));
En una integración real, base64Pcm16Frame vendrá del micrófono, de un archivo de prueba o de una capa de telefonía. Para pruebas automatizadas, conviene usar siempre el mismo fragmento de audio y comparar los eventos de salida entre ejecuciones.
Paso 5: Añade uso de herramientas
El agente de voz soporta invocación de funciones. Esto permite que el modelo consulte tus APIs durante una conversación.
Primero declara una herramienta en la sesión:
ws.send(JSON.stringify({
type: "session.update",
session: {
tools: [
{
type: "function",
name: "lookup_order",
description: "Look up the status of a customer order by order number.",
parameters: {
type: "object",
properties: {
order_id: {
type: "string",
},
},
required: ["order_id"],
},
},
],
},
}));
Cuando el modelo quiera invocar la herramienta, emitirá un evento:
response.function_call_arguments.done
Tu aplicación debe:
- Leer los argumentos generados por el modelo.
- Ejecutar la función en tu backend.
- Enviar el resultado de vuelta con un
conversation.item.createde tipofunction_call_output. - Permitir que el modelo continúe y narre la respuesta al usuario.
También existe una herramienta incorporada web_search, útil cuando necesitas respuestas basadas en información reciente sin construir tu propia capa de recuperación.
Paso 6: Usa TTS sin el agente de voz
Si solo necesitas convertir texto a audio, no abras WebSocket. Usa el endpoint REST de TTS.
Ejemplo:
curl https://api.x.ai/v1/tts \
-H "Authorization: Bearer $XAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-tts-1",
"voice": "ara",
"input": "Welcome back to your account. Your last login was Tuesday at 3pm.",
"format": "mp3"
}' \
--output greeting.mp3
Formatos disponibles:
-
mp3: alta fidelidad. -
mulaw: 8 kHz, útil para telefonía.
Este endpoint es síncrono: envías texto y recibes bytes de audio. No necesitas streaming.
Paso 7: Prueba el flujo completo en Apidog
Depurar WebSockets desde la terminal es incómodo porque la conversación tiene estado. Un flujo más práctico es preparar una colección reproducible en Apidog.
Patrón recomendado:
- Crea una solicitud WebSocket con esta URL:
wss://api.x.ai/v1/realtime?model=grok-voice-think-fast-1.0
Guarda
XAI_API_KEYcomo variable de entorno.Añade el header:
Authorization: Bearer {{XAI_API_KEY}}
- Prepara mensajes JSON en secuencia:
{
"type": "session.update",
"session": {
"voice": "ara",
"instructions": "You are a concise support agent.",
"input_audio_format": "pcm16",
"output_audio_format": "pcm16",
"turn_detection": {
"type": "server_vad"
}
}
}
{
"type": "input_audio_buffer.append",
"audio": "BASE64_PCM16_AUDIO_FRAME"
}
{
"type": "response.create"
}
Ejecuta la sesión y captura los eventos del servidor.
Repite la misma sesión cambiando
voiceoinstructions.Compara las salidas para detectar cambios en tono, latencia, turnos o comportamiento de herramientas.
Descarga Apidog, crea una solicitud WebSocket y guarda la clave en variables de entorno. La misma colección puede incluir TTS y STT porque son endpoints REST simples. Para más patrones de prueba de APIs con estado, consulta Herramienta de pruebas de API para ingenieros de QA.
Límites de la capa gratuita
La consola da acceso completo sin cargo por minuto ni por token para las funciones de voz. Los límites relevantes son:
- Límites de tasa: la consola impone límites de solicitudes por minuto por endpoint para prevenir abusos. Sirven para construir y hacer demos, no para producción de alto volumen.
- Cuota de Voces Personalizadas: una cuenta puede mantener un número finito de clones personalizados a la vez. Puedes eliminar clones antiguos para liberar espacio.
- Tokens de razonamiento: cuando el agente usa Grok 4.3 para razonar, ese consumo se descuenta del crédito de consola. El crédito gratuito cubre prototipos; producción requiere plan de pago.
Si recibes errores de límite de tasa, agrupa solicitudes, reduce concurrencia o cambia a un nivel de pago. El comportamiento de la API no cambia; solo cambian los límites.
Cómo comparar voces antes de producción
Antes de elegir una voz, ejecuta la misma lista de frases con cada preset.
Usa al menos:
- Un saludo de dos frases.
- Una confirmación corta: “Entendido, todo listo”.
- Una frase larga con número, fecha y coma.
- Una respuesta de error.
- Una frase con tono urgente.
Ejemplo de texto de prueba:
Hola, soy tu asistente de soporte. Puedo ayudarte a revisar el estado de tu pedido o actualizar la información de tu cuenta.
Entendido, todo listo.
Tu pedido número 48291 fue actualizado el martes 14 de mayo, y debería llegar antes de las 5 de la tarde.
La prueba práctica es reproducir el mismo mensaje en tres estilos: calmado, normal y urgente. Escucha si la voz mantiene claridad, ritmo e intención. Las voces preestablecidas de Grok manejan bien estos cambios, pero conviene auditar antes de salir en vivo.
Preguntas frecuentes
¿La API es realmente gratuita?
Las funciones de voz —TTS, STT, agente de voz y Voces Personalizadas— no tienen cargo por minuto ni por token en la consola. El modelo de razonamiento subyacente se factura contra el crédito de consola. La asignación gratuita es suficiente para prototipos.
¿Necesito una cuenta de X?
Sí. El inicio de sesión en la consola utiliza una cuenta de X.
¿Puedo usar Grok Voice desde un navegador?
Sí. Usa un token efímero. Genéralo desde tu backend mediante /v1/realtime/sessions, entrégalo al navegador y conecta el WebSocket directamente. La clave principal debe quedarse en tu servidor.
¿Qué calidad de audio puedo esperar?
TTS puede devolver MP3 de alta fidelidad o μ-law de 8 kHz. El agente de voz usa PCM16 a 24 kHz internamente. La calidad está al nivel de motores comerciales de TTS; la latencia es el diferenciador.
¿Funciona con telefonía?
Sí. La salida μ-law es estándar para puentes SIP y PSTN. Aun así, necesitas un proveedor SIP externo; xAI no ofrece actualmente una pasarela SIP propia.
¿Cómo se compara la clonación con otras herramientas?
La calidad depende más de la limpieza del audio de referencia que de la duración. Una muestra limpia de 60 segundos en una habitación silenciosa supera a una muestra ruidosa de 120 segundos. El voice_id resultante funciona tanto en TTS como en el agente de voz.
¿Puedo usar Grok Voice para personajes de IA en un juego?
Sí. El endpoint TTS es lo suficientemente rápido para generación en tiempo de ejecución, y las Voces Personalizadas permiten que cada personaje tenga su propio clon. Para líneas largas, usa generación por fragmentos para controlar latencia.
Conclusión
Grok Voice es una de las rutas más directas para prototipar agentes de voz en tiempo real en 2026: acceso gratuito desde la consola, baja latencia, WebSocket para conversación y clonación de voz integrada.
La forma más rápida de validarlo es:
- Crear una clave en
console.x.ai. - Probar una voz preestablecida.
- Abrir una sesión WebSocket.
- Ejecutar el mismo flujo en Apidog con varias voces.
- Medir latencia, calidad y comportamiento de turnos.
Cuando quieras conectarlo con razonamiento más amplio, revisa la guía de la API de Grok 4.3. Para comparar contra OpenAI, consulta Grok Voice vs GPT-Realtime.


Top comments (0)