Grok Voice 3.0 是 xAI 在 2026 年 10 月 14 日发布的实时语音对话模型(speech-to-speech),面向语音智能体:语音进、语音出,由同一个模型完成。电话客服、App 里的语音助手,以及任何「人说一句、等它回一句」的产品,要的就是这种模型。
下面依次讲:比 Grok Voice 2.0 强在哪、三步接入、在 apimodels.app 上怎么收费、有哪些音色和语言(中文行不行),以及和 OpenAI gpt-realtime、Google Gemini Live API 有什么不同。
xAI 的发布公告援引 Artificial Analysis 2026 年 10 月 13 日的数据:Grok Voice 3.0 在 Speech-to-Speech 榜单以 86.9 分排第一。第三方报道给出的与 Grok Voice 2.0 的对比见下表。唯一往反方向走的是首个音频返回时间,比 2.0 略慢。
| 指标 | Grok Voice 2.0 | Grok Voice 3.0 |
|---|---|---|
| Artificial Analysis Speech-to-Speech 指数 | 81.3 | 86.9 |
| tau-Voice(客服任务) | 56.5% | 71.6% |
| 全双工轮次切换 | 95.1% | 97.0% |
| 首个音频返回时间 | 0.70 秒 | 0.81 秒 |
第一步:拿 API Key。在 apimodels.app 注册,到控制台的 API Key 页面新建一个,并充值余额。建立连接时余额至少要够一分钟($0.104)。
第二步:连 WebSocket。服务端连 wss://api.apimodels.app/v1/realtime?model=grok-voice-3.0,请求头带 Authorization: Bearer 你的 API Key。网页里用,就让你的服务端先调 POST https://api.apimodels.app/v1/realtime/client_secrets 换一个临时令牌,浏览器用子协议 xai-client-secret.<令牌> 连接,API Key 不进前端。注意端点只在 api.apimodels.app 上,apimodels.app/api/v1 下面没有。
第三步:配置会话、开口说话。先发 session.update 设音色(默认 eve)、指令和 turn_detection {"type":"server_vad"},再用 input_audio_buffer.append 推送麦克风音频,把收到的 response.output_audio.delta 依次播放。音频默认 16 位 PCM、24 kHz。手边没有麦克风?像下面的 Python 示例那样发一条文本消息再发 response.create,把回答存成 WAV 文件听。
按连接时长计费,精确到秒。每一分钟在开始时扣费,会话结束时把没用完的秒数退回;会话中途余额用完会收到 insufficient_balance 错误并断开;连不上模型不扣费。
在这里调用的好处:一个 Key、一份余额,同时调 150 多个图像、视频、大模型和语音模型;不用另开 xAI 账号、不用海外信用卡;按秒计费;每次会话在调用记录里都是单独一条,写明时长和费用。
| 项目 | 价格 |
|---|---|
| 会话时长 | 每分钟 $0.104,按秒计费 |
| 示例:90 秒的通话 | $0.156 |
| 文本消息(input_text) | 每条 $0.0052 |
| 函数调用 | 不额外收费 |
| 建立连接所需余额 | $0.104(一分钟) |
内置 28 个音色,每一个都能说所有支持的语言。女声:ara、aurora、carina、celeste、eve(默认)、iris、liora、luna、ursa;男声:altair、atlas、castor、cosmo、helios、helix、kepler、leo、lumen、lux、naksh、orion、perseus、rex、rigel、sal、sirius、zagan、zenith。在 session.update 里用 voice 指定;audio.output.speed 可在 0.7 到 1.5 之间调语速。
模型覆盖 20 多种语言、口音地道,并自动识别语种,xAI 的语言列表里有简体中文。不需要专门挑「中文音色」:用户说中文,28 个音色里任何一个都会用中文回答。如果事先知道用户说中文,把 audio.input.transcription.language_hint 设成 zh-CN 即可。
三者都是面向语音智能体的 speech-to-speech 模型,都支持函数调用,浏览器端都用短时令牌。区别在计费方式、单次会话能撑多久、内置音色数量和连接方式。下表中 OpenAI 和 Google 的信息来自各自官方文档,2026 年 10 月 16 日核对;它们当前的按 token 单价请以官方价格页为准。
如果你已经接过 OpenAI Realtime,事件模型大体兼容,主要改动是:URL、鉴权方式、音色名,输入转写改为累积式的 conversation.item.input_audio_transcription.updated,以及少数几个 OpenAI 事件不会出现。
| Grok Voice 3.0(apimodels.app) | OpenAI gpt-realtime-2.1 | Google Gemini 3.8 Live | |
|---|---|---|---|
| 计费方式 | 按会话时长,按秒计 | 按 token,音频输入、输出分开计费 | 按 token,音频输入、输出分开计费 |
| 连接方式 | WebSocket | WebRTC 或 WebSocket | WebSocket |
| 浏览器鉴权 | POST /v1/realtime/client_secrets 换临时令牌 | POST /v1/realtime/client_secrets 换临时密钥 | 临时令牌(ephemeral token) |
| 会话时长 | 最长 60 分钟 | 最长 60 分钟 | 不开上下文压缩时纯音频 15 分钟;单条连接约 10 分钟,可续接会话 |
| 内置音色 | 28 个,每个都能说所有语言 | 10 个 | 30 个(与 Gemini TTS 共用) |
| 默认音频 | 16 位 PCM,输入输出均 24 kHz | 16 位 PCM,24 kHz | 16 位 PCM,输入 16 kHz、输出 24 kHz |
| 工具 | 函数调用;服务端工具暂不开放 | 函数调用 | 函数调用与 Google 搜索 |
| 账号 | apimodels.app 的 Key,同时可调 150 多个模型 | OpenAI 账号 | Google AI Studio 或 Google Cloud 账号 |
WebSocket endpoint
wss://api.apimodels.app/v1/realtime?model=grok-voice-3.0
# server: Authorization: Bearer YOUR_API_KEY
# browser: new WebSocket(url, ["xai-client-secret." + value])cURL
# Mint a short-lived token on your server for a browser client (10 to 600 seconds, default 60)
curl -X POST https://api.apimodels.app/v1/realtime/client_secrets \
-H "Authorization: Bearer $APIMODELS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"expires_after": {"seconds": 60}}'
# { "value": "<token>", "expires_at": 1792130400 }Python
# pip install websockets (14+). Sends one text message and saves the spoken reply as reply.wav
import asyncio, base64, json, os, wave
import websockets
URL = "wss://api.apimodels.app/v1/realtime?model=grok-voice-3.0"
async def main():
pcm, asked = bytearray(), False
headers = {"Authorization": "Bearer " + os.environ["APIMODELS_API_KEY"]}
async with websockets.connect(URL, additional_headers=headers) as ws:
await ws.send(json.dumps({"type": "session.update",
"session": {"voice": "eve", "turn_detection": None}}))
async for raw in ws:
event = json.loads(raw)
if event["type"] == "session.updated" and not asked:
asked = True
await ws.send(json.dumps({"type": "conversation.item.create", "item": {
"type": "message", "role": "user",
"content": [{"type": "input_text", "text": "用一句话介绍你自己。"}]}}))
await ws.send(json.dumps({"type": "response.create"}))
elif event["type"] == "response.output_audio.delta":
pcm += base64.b64decode(event["delta"])
elif event["type"] == "error":
raise RuntimeError(event)
elif event["type"] == "response.done":
break
with wave.open("reply.wav", "wb") as wav: # 16-bit PCM, 24 kHz, mono
wav.setnchannels(1); wav.setsampwidth(2); wav.setframerate(24000)
wav.writeframes(bytes(pcm))
asyncio.run(main())在 apimodels.app 上按连接时长每分钟 $0.104,按秒计费,90 秒的通话 $0.156。用 conversation.item.create 发送的每条文本消息 $0.0052,函数调用不收费。会话结束时退回没用完的秒数,连接失败不扣费。
在 apimodels.app 建一个 API Key,带 Authorization: Bearer 你的 Key 连 wss://api.apimodels.app/v1/realtime?model=grok-voice-3.0,发 session.update 选音色和轮次检测,然后用 input_audio_buffer.append 推送音频,播放收到的 response.output_audio.delta。文档页有完整的 Python、Node 和浏览器示例。
支持。它覆盖 20 多种语言并自动识别语种,xAI 的语言列表里有简体中文。28 个音色都能说中文;确定用户说中文时,可以把 audio.input.transcription.language_hint 设成 zh-CN。
内置 28 个:女声 9 个(ara、aurora、carina、celeste、eve、iris、liora、luna、ursa),男声 19 个(altair、atlas、castor、cosmo、helios、helix、kepler、leo、lumen、lux、naksh、orion、perseus、rex、rigel、sal、sirius、zagan、zenith)。默认 eve,每个音色都能说所有支持的语言。
按 xAI 援引的 Artificial Analysis Speech-to-Speech 榜单,截至 2026 年 10 月 13 日 Grok Voice 3.0 排第一。实际使用上:apimodels.app 上的 Grok Voice 3.0 按会话时长每分钟一个价,OpenAI gpt-realtime 按音频输入、输出 token 分开计费;Grok Voice 有 28 个音色且每个都能说所有语言,OpenAI 是 10 个;两者单次会话都最长 60 分钟;OpenAI 另外支持 WebRTC。事件模型大体兼容,OpenAI Realtime 的客户端改动不多就能迁过来。
能,而且不暴露 Key。你的服务端调 POST https://api.apimodels.app/v1/realtime/client_secrets 换临时令牌(有效期 10 到 600 秒,默认 60),页面用 new WebSocket(url, ["xai-client-secret." + value]) 连接。也可以直接在模型页用麦克风试,同样按每分钟 $0.104 计费。
单次会话最长 60 分钟,每个账号最多 5 路并发,10 分钟没有客户端事件的会话会被关闭。目前只开放函数工具;web_search、x_search、file_search、mcp 会返回错误。