A xAI lançou o Grok Voice com a versão 4.3 do Grok. Para desenvolvedores, o ponto principal é: ele pode ser testado gratuitamente no Console xAI. Não há cobrança por minuto nem por token para os recursos de voz em si: agente de voz, texto-para-voz, voz-para-texto e clonagem de Vozes Personalizadas. O único item cobrável é o uso subjacente de tokens do Grok 4.3 quando o agente precisa raciocinar, e o console inclui uma franquia gratuita para testes.
Este guia mostra como colocar o Grok Voice para funcionar sem custo: como gerar uma chave, escolher ou clonar uma voz, abrir uma sessão WebSocket, adicionar ferramentas e testar o fluxo completo com o Apidog antes de integrar em um produto.
Se você quiser complementar com a superfície mais ampla da API do Grok 4.3, ou comparar diretamente com a pilha da OpenAI em Grok Voice vs GPT-Realtime, esses posts cobrem o restante.
TL;DR
- O Grok Voice é gratuito para usuários no xAI Console (
console.x.ai): sem cobrança por minuto ou por token para TTS, STT, agente de voz ou Vozes Personalizadas. - Modelo principal:
grok-voice-think-fast-1.0. - Tempo para o primeiro áudio em menos de 1 segundo; a xAI afirma que é aproximadamente 5x mais rápido que o concorrente mais próximo.
- Mais de 80 vozes predefinidas em 28 idiomas.
- 5 personas de agente de voz integradas: Eve, Ara, Rex, Sal e Leo.
- Clonagem de voz personalizada a partir de cerca de 1 minuto de fala.
- Voz personalizada pronta para produção em menos de 2 minutos.
- Endpoint WebSocket:
wss://api.x.ai/v1/realtime?model=grok-voice-think-fast-1.0
- Endpoints REST para TTS, STT e Vozes Personalizadas compartilham uma única superfície de API.
- Use o Apidog para scriptar a sessão WebSocket e reproduzi-la sem regravar áudio.
O que o Grok Voice oferece gratuitamente
O xAI Console é o caminho para o acesso gratuito. Faça login em console.x.ai, gere uma chave de API e você poderá chamar quatro superfícies sem custo relacionado aos recursos de voz em si:
1. Agente de Voz
Fluxo voz-para-voz em tempo real.
Inclui:
- modelo conversacional completo;
- uso de ferramentas;
- detecção de atividade de voz no servidor;
- alternância de turnos integrada.
2. Texto-para-Voz
Geração de fala a partir de texto.
Inclui:
- mais de 80 vozes predefinidas;
- suporte a 28 idiomas;
- saída em MP3;
- saída em μ-law para telefonia.
3. Voz-para-Texto
Transcrição em streaming e em lote.
Inclui:
- 25 idiomas de entrada;
- timestamps em nível de palavra;
- diarização de locutor.
4. Vozes Personalizadas
Permite clonar uma voz a partir de uma amostra curta.
O resultado é um voice_id, que pode ser reutilizado em:
- chamadas TTS;
- agente de voz em tempo real.
O único medidor que registra uso é o de tokens do Grok 4.3 quando o agente raciocina sobre uma solicitação. O console oferece crédito gratuito para testar essa superfície, o que normalmente é suficiente para validar fluxos de ponta a ponta antes de qualquer cobrança.
Passo 1: Obtenha uma chave no console
Acesse:
console.x.ai
Faça login com sua conta X e vá para API Keys.
Crie uma chave com os escopos:
voicechat
Depois, exporte a chave no ambiente local:
export XAI_API_KEY="xai-..."
Use essa variável em todos os exemplos abaixo.
Use tokens efêmeros no navegador
Se você estiver criando um app web, não envie a chave principal para o cliente.
Nesse caso, crie um token efêmero:
- nas configurações do console; ou
- via endpoint
/v1/realtime/sessions.
Tokens efêmeros têm o mesmo escopo, mas expiram em minutos. O padrão recomendado é:
- seu backend cria o token efêmero;
- o frontend recebe apenas esse token temporário;
- o navegador abre o WebSocket diretamente;
- a chave principal nunca sai do servidor.
Passo 2: Escolha uma voz
Você pode usar uma voz predefinida ou criar um clone personalizado.
Opção A: usar vozes predefinidas
O agente de voz vem com cinco personas nomeadas:
- Eve: feminina, enérgica. Boa para fluxos de suporte otimistas.
- Ara: feminina, calorosa. Boa como padrão para assistência geral.
- Rex: masculino, confiante. Útil para scripts de vendas.
- Sal: neutro, suave. Bom para narração e leituras longas.
- Leo: masculino, autoritário. Adequado para conformidade e fluxos formais.
Para a API TTS mais ampla, a biblioteca de vozes é maior: mais de 80 vozes em 28 idiomas, chamadas pelo parâmetro voice.
Opção B: clonar uma voz personalizada
Para clonar uma voz, envie um arquivo WAV com cerca de um minuto de fala limpa de um único locutor.
Exemplo:
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"
A resposta inclui um voice_id.
Esse ID pode ser usado depois em TTS e no agente de voz.
Boas práticas para a amostra:
- grave em uma sala silenciosa;
- use um único locutor;
- evite música de fundo;
- evite ruído ambiente;
- grave em uma única tomada;
- mantenha o áudio consistente.
O limite máximo do clipe de referência é de 120 segundos, mas mais tempo não significa melhor resultado. A qualidade e a consistência do áudio importam mais que a duração.
Passo 3: Abra uma sessão WebSocket
O agente de voz usa uma única sessão WebSocket.
Fluxo básico:
- abrir conexão;
- enviar configuração da sessão;
- transmitir áudio de entrada;
- receber áudio de saída em eventos;
- encerrar ou continuar a conversa.
Endpoint:
wss://api.x.ai/v1/realtime?model=grok-voice-think-fast-1.0
Cliente Node.js mínimo:
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 finalizado");
}
});
O áudio do usuário deve ser enviado como eventos input_audio_buffer.append, com frames PCM16 codificados em base64.
O servidor responde com eventos como:
-
response.audio.delta: chunk de áudio gerado; -
response.audio.done: fim do turno; - eventos de transcrição, função ou estado, dependendo da sessão.
Para apps web e desktop, PCM16 a 24 kHz é uma opção segura. Para telefonia, use μ-law.
Passo 4: Envie áudio para o buffer de entrada
Depois de configurar a sessão, envie frames de áudio para o buffer:
function appendAudioFrame(base64Audio) {
ws.send(
JSON.stringify({
type: "input_audio_buffer.append",
audio: base64Audio,
})
);
}
Quando você quiser forçar a criação de uma resposta, envie:
ws.send(
JSON.stringify({
type: "response.create",
})
);
Se a sessão estiver usando server_vad, o servidor pode detectar o fim do turno automaticamente. Ainda assim, response.create é útil para testes controlados, principalmente quando você está reproduzindo o mesmo áudio várias vezes.
Passo 5: Adicione uso de ferramentas
O agente de voz suporta chamadas de função. Isso permite que o modelo consulte suas APIs durante a conversa.
Exemplo: declarar uma ferramenta para consultar pedido.
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"],
},
},
],
},
})
);
Quando o modelo quiser chamar a ferramenta, ele emitirá um evento response.function_call_arguments.done.
O fluxo de implementação é:
- escutar o evento de chamada de função;
- extrair os argumentos;
- executar sua função no backend;
- retornar o resultado ao modelo com
conversation.item.create; - deixar o modelo continuar a resposta em voz.
Exemplo conceitual de retorno:
ws.send(
JSON.stringify({
type: "conversation.item.create",
item: {
type: "function_call_output",
call_id: "call_123",
output: JSON.stringify({
status: "shipped",
estimated_delivery: "2026-05-12",
}),
},
})
);
ws.send(
JSON.stringify({
type: "response.create",
})
);
Também há uma ferramenta integrada web_search, útil para fundamentar respostas em dados recentes sem implementar sua própria camada de recuperação.
Passo 6: Use TTS sem o agente de voz
Se você só precisa gerar áudio a partir de texto, não precisa abrir WebSocket.
Use o endpoint REST de TTS:
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 disponíveis:
-
mp3: alta fidelidade; -
mulaw: 8 kHz, indicado para telefonia.
O endpoint é síncrono: você envia texto e recebe bytes de áudio de volta. Não é necessária uma sessão de streaming.
Passo 7: Teste o fluxo completo no Apidog
APIs WebSocket são mais difíceis de depurar pelo terminal porque a conversa tem estado. Para evitar regravar áudio a cada teste, mantenha um script reproduzível.
Um fluxo prático no Apidog:
- Crie uma nova solicitação WebSocket.
- Salve o endpoint:
wss://api.x.ai/v1/realtime?model=grok-voice-think-fast-1.0
- Configure o token de portador em uma variável de ambiente.
- Prepare mensagens JSON para:
-
session.update; -
input_audio_buffer.append; -
response.create.
-
- Execute tudo em uma única conexão.
- Capture cada evento do servidor em árvore.
- Compare execuções ao alterar
voice,instructionsouturn_detection.
Exemplo de sequência de mensagens para testar:
{
"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"
}
}
}
Depois:
{
"type": "input_audio_buffer.append",
"audio": "BASE64_PCM16_FRAME_HERE"
}
E então:
{
"type": "response.create"
}
Baixe o Apidog, crie a solicitação WebSocket e salve sua XAI_API_KEY nas variáveis de ambiente.
A mesma coleção pode incluir:
- WebSocket para agente de voz;
- REST para TTS;
- REST para STT;
- endpoints de Vozes Personalizadas.
Para mais padrões de teste de APIs com estado, consulte este guia sobre ferramenta de teste de API para engenheiros de QA.
Limites da camada gratuita
O console oferece acesso total sem cobrança por minuto ou por token para os recursos de voz. Ainda assim, existem limites operacionais.
Limites de taxa
O console impõe limites de requisições por minuto em cada endpoint para evitar abuso.
Eles são suficientes para:
- prototipar;
- criar demos;
- validar integração;
- testar UX de voz.
Eles não devem ser tratados como uma permissão de produção.
Cota de vozes personalizadas
Uma conta pode manter um número finito de clones de voz personalizados ao mesmo tempo.
Se você atingir a cota, exclua clones antigos para liberar slots.
Tokens de raciocínio
Quando o agente de voz usa o Grok 4.3 por baixo para raciocinar, esse uso consome o crédito do console.
A franquia gratuita cobre prototipagem. Produção exigirá um plano pago.
Se você encontrar erros de rate limit, reduza a frequência, agrupe solicitações ou mude para um plano pago. O comportamento da API não muda; apenas o limite.
Como comparar vozes antes de lançar
Antes de colocar em produção, teste a mesma frase em várias vozes.
Use uma lista curta:
- uma saudação de duas frases;
- uma confirmação curta, como “Entendido, está tudo pronto”;
- uma frase longa com número, data e vírgula;
- uma frase com tom urgente;
- uma frase com tom calmo.
Exemplo de frase para TTS:
Olá, seu pedido 12345 foi confirmado em 12 de maio, e a entrega está prevista para sexta-feira.
Execute o mesmo texto com diferentes vozes:
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": "Olá, seu pedido 12345 foi confirmado em 12 de maio, e a entrega está prevista para sexta-feira.",
"format": "mp3"
}' \
--output ara.mp3
Troque voice para testar outras opções.
O teste agnóstico de modelo que usamos internamente é falar o mesmo prompt em três velocidades:
- calma;
- normal;
- urgente.
Depois, avalie a mudança de inflexão. As vozes predefinidas do Grok lidam bem com esse tipo de variação, mas ainda vale auditar antes de publicar.
FAQ
A API é realmente gratuita ou há um limite oculto?
Os recursos de voz — TTS, STT, agente de voz e Vozes Personalizadas — não têm cobrança por minuto ou por token no console.
O modelo de raciocínio subjacente é cobrado contra o crédito do console. A franquia gratuita é suficiente para prototipagem.
Preciso de uma conta X?
Sim. O login do console usa uma conta X.
Posso usar o Grok Voice em um navegador?
Sim, usando token efêmero.
O padrão recomendado:
- o servidor cria o token via
/v1/realtime/sessions; - o navegador recebe o token de curta duração;
- o navegador abre o WebSocket;
- a chave principal fica protegida no backend.
Qual qualidade de áudio posso esperar?
A saída TTS pode ser:
- MP3 de alta fidelidade;
- μ-law de 8 kHz.
O agente de voz executa PCM16 a 24 kHz internamente. A qualidade é comparável aos principais motores TTS comerciais; a latência é o diferencial.
Funciona com telefonia?
Sim. A saída μ-law é o formato comum para pontes SIP e PSTN.
Você ainda precisa de um provedor SIP. A xAI não oferece seu próprio gateway SIP hoje.
Como a qualidade da clonagem se compara a outras ferramentas?
A qualidade depende mais da amostra do que da duração.
Uma gravação limpa de 60 segundos em sala silenciosa tende a superar uma gravação ruidosa de 120 segundos.
O voice_id gerado pode ser usado tanto no endpoint TTS quanto no agente de voz, sem reclonagem.
Posso usar o Grok Voice para personagens de IA em um jogo?
Sim.
O endpoint TTS é rápido o suficiente para geração em tempo de execução, e Vozes Personalizadas permitem que cada personagem tenha seu próprio clone.
Para falas longas, monitore a latência. TTS em blocos costuma ser o padrão.
Conclusão
O Grok Voice é um caminho direto para prototipar agentes de voz em tempo real. O console não cobra por minuto para os recursos de voz, a latência é baixa e Vozes Personalizadas reduzem o atrito para criar experiências com identidade sonora própria.
A forma mais rápida de validar é:
- gerar uma chave no console;
- abrir uma sessão WebSocket;
- testar três vozes predefinidas;
- adicionar uma ferramenta simples;
- reproduzir o fluxo no Apidog;
- ouvir os resultados antes de integrar no produto.
Quando estiver pronto para conectar com o raciocínio do Grok 4.3, consulte o guia da API do Grok 4.3.
Para uma comparação lado a lado com a pilha da OpenAI, veja Grok Voice vs GPT-Realtime.


Top comments (0)