OneProvider

音频模型

通过一个兼容 OpenAI 的 API 实现语音合成、语音识别和实时语音:请求、音色、格式以及每个音频模型的确切价格。

通过一个 API 使用文字转语音、语音转文字和实时语音:请求、音色、格式和价格。

全部模型、功能与价格 面向 AI 智能体的文档索引: https://oneprovider.dev/docs/llms.txt

可用的音频模型

grok-tts Runnable
输入字符
US$15.00 / 1M 字符
grok-stt Runnable
音频小时
US$0.10 / 小时
grok-voice-3.0 Runnable
音频分钟
US$0.08 / 分钟
grok-voice-latest Runnable
音频分钟
US$0.08 / 分钟
gemini-2.5-flash-tts Runnable
文本输入 token
US$0.50 / 1M token
音频输出 token
US$10.00 / 1M token
gemini-2.5-pro-tts Runnable
文本输入 token
US$1.00 / 1M token
音频输出 token
US$20.00 / 1M token
gemini-3.1-flash-tts Runnable
文本输入 token
US$1.00 / 1M token
音频输出 token
US$20.00 / 1M token
gemini-3.1-tts Runnable
文本输入 token
US$1.00 / 1M token
音频输出 token
US$20.00 / 1M token
gemini-3.8-flash-tts Runnable
文本输入 token
US$0.50 / 1M token
音频输出 token
US$9.00 / 1M token
gemini-3.8-flash-lite-tts Runnable
文本输入 token
US$0.50 / 1M token
音频输出 token
US$6.00 / 1M token
gemini-3.5-transcribe Runnable
音频输入 token
US$2.00 / 1M token
文本输出 token
US$12.00 / 1M token
gemini-3.5-stt Runnable
音频输入 token
US$0.30 / 1M token
缓存的音频输入 token
US$0.03 / 1M token
文本输出 token
US$2.50 / 1M token
gemini-3-stt Runnable
音频输入 token
US$1.00 / 1M token
缓存的音频输入 token
US$0.10 / 1M token
文本输出 token
US$3.00 / 1M token
各模型的用途
任务路径模型
文字转语音(TTS)POST /v1/audio/speechgrok-tts, gemini-2.5-flash-tts, gemini-2.5-pro-tts, gemini-3.1-flash-tts, gemini-3.1-tts, gemini-3.8-flash-tts, gemini-3.8-flash-lite-tts
语音转文字(STT)POST /v1/audio/transcriptionsgrok-stt, gemini-3-stt, gemini-3.5-stt, gemini-3.5-transcribe
实时语音GET /v1/realtime?model= (WebSocket)grok-voice-3.0, grok-voice-latest

文字转语音

bash
curl -sS https://api.oneprovider.dev/v1/audio/speech \
-H "Authorization: Bearer sk-..." \
-H "Content-Type: application/json" \
-d '{
"model": "grok-tts",
"input": "Hello from OneProvider.",
"voice": "eve",
"response_format": "mp3"
}' \
--output hello.mp3
python
from openai import OpenAI
client = OpenAI(base_url="https://api.oneprovider.dev/v1", api_key="sk-...")
with client.audio.speech.with_streaming_response.create(
model="gemini-3.8-flash-tts",
voice="Kore",
input="Hello from OneProvider.",
response_format="wav",
) as response:
response.stream_to_file("hello.wav")
请求参数
字段值
model必填。文字转语音模型的 ID。
input必填。要朗读的文本。
voice音色:Grok 使用下方列表中的小写名称或您自己的自定义音色 ID,Gemini 使用第二个列表中的名称。
response_formatmp3(默认)、wav 或 pcm。

响应是所选格式的音频文件。文本很长时,请每段发送一次请求,再把文件拼接起来。

Grok 音色

altairaraatlasauroracarinacastorcelestecosmoevehelioshelixiriskeplerleolioralumenlunaluxnakshorionperseusrexrigelsalsiriusursazaganzenith

Gemini 音色

ZephyrPuckCharonKoreFenrirLedaOrusAoedeCallirrhoeAutonoeEnceladusIapetusUmbrielAlgiebaDespinaErinomeAlgenibRasalgethiLaomedeiaAchernarAlnilamSchedarGacruxPulcherrimaAchirdZubenelgenubiVindemiatrixSadachbiaSadaltagerSulafat

语音转文字

bash
curl -sS https://api.oneprovider.dev/v1/audio/transcriptions \
-H "Authorization: Bearer sk-..." \
-F model=grok-stt \
-F file=@meeting.mp3
# {"text":"..."}
python
from openai import OpenAI
client = OpenAI(base_url="https://api.oneprovider.dev/v1", api_key="sk-...")
with open("meeting.mp3", "rb") as audio:
result = client.audio.transcriptions.create(model="gemini-3.5-transcribe", file=audio)
print(result.text)

请求为 multipart/form-data,包含字段 file(音频文件)和 model。响应是带 text 字段的 JSON。

实时语音

使用同一个密钥放在 Authorization 请求头中,向 wss://api.oneprovider.dev/v1/realtime?model=grok-voice-3.0 建立 WebSocket 连接。事件遵循 OpenAI Realtime API。

python
import asyncio, base64, json
import websockets
async def main():
url = "wss://api.oneprovider.dev/v1/realtime?model=grok-voice-3.0"
async with websockets.connect(url, additional_headers={"Authorization": "Bearer sk-..."}) as ws:
await ws.send(json.dumps({"type": "session.update", "session": {"instructions": "Answer briefly."}}))
await ws.send(json.dumps({"type": "conversation.item.create", "item": {
"type": "message", "role": "user",
"content": [{"type": "input_text", "text": "Say hello in one sentence."}],
}}))
await ws.send(json.dumps({"type": "response.create"}))
audio = bytearray()
async for message in ws:
event = json.loads(message)
if event["type"] == "response.output_audio.delta":
audio += base64.b64decode(event["delta"])
elif event["type"] == "response.output_audio_transcript.delta":
print(event["delta"], end="")
elif event["type"] == "response.done":
break
asyncio.run(main())
事件
事件用途
session.update客户端:设置指令和会话选项。
conversation.item.create客户端:向对话添加一条消息,文本或音频。
response.create客户端:请求模型回复。
response.output_audio.delta服务器:回复音频的下一个数据块,base64。
response.output_audio_transcript.delta服务器:模型所说内容的下一段文本。
response.done服务器:回复已完成。

价格

  • Grok TTS 按输入文本的字符数计费。
  • Grok STT 按音频的小时数计费。
  • Grok Voice 按对话的分钟数计费,另外您每发送一条文本消息还会收取一小笔费用。
  • Gemini 按 token 计费:输入的文本或音频,以及输出的音频或文本;一秒音频相当于 25 个 token。

示例:grok-tts,1,000 个字符 = US$15.00 / 1M × 1 000 = US$0.015。

每个模型的确切价格见上方表格和价格页面 。

错误

错误码
HTTP原因
400字段无效,或音色、格式未知。
401密钥无效或已被撤销。
402 / 403 / 429余额不足,或已达密钥限额。请充值后重试。
5xx服务暂时不可用。请稍后重试。
一个密钥通用所有模型 音频与文本使用同一份余额支付。完整的模型表见模型页面 。

快速解答

该使用哪个 base URL?

Claude Code 和 Anthropic SDK 使用 https://api.oneprovider.dev。OpenAI SDK 和兼容 OpenAI 的客户端使用 https://api.oneprovider.dev/v1。同一个密钥可用于这两个地址;模型列表见模型页面 ,费率见价格页面 。

如何进行身份验证?

将完整的 sk-… 密钥放在 x-api-key 或 Authorization: Bearer 中,二选一,不要同时使用。请把密钥存放在环境变量中,不要写进会被提交的文件。了解更多身份验证说明 。

在哪里获取密钥?

在 Telegram 机器人 @oneprovider_robot 或 app.oneprovider.dev 打开您的个人中心,为余额充值,然后点击“签发密钥”。每个密钥都可以设置各自的消费限额。个人中心与 API 密钥 。

401、404 和 429 是什么意思?

401:密钥缺失、拼写有误或放错了请求头;请粘贴完整的密钥,不要带引号或空格。404:通常是 base URL 不对,例如缺少或重复了 /v1。429 且提示“Insufficient balance”:个人中心余额或密钥的消费限额已用完,请充值,不要反复重试;其他 429 属于速率限制,请等待 Retry-After 指定的时间。详情见:错误码 和故障排查 。

流式输出为什么会中断或被重置?

VPN 和 VLESS 代理常常会缓冲 SSE,或破坏 HTTP/2 协商。OneProvider 没有地区限制,也不会缓冲流式输出,请关闭代理后重试。

以上都没解决,该去哪里咨询?

请在 Telegram 联系 @Oneproviderhelpbot ,或在网页个人中心打开“客服”,并附上 HTTP 状态码和完整的错误信息。客服如何运作 。

最后更新: 2026-11-08 发现问题? @Oneproviderhelpbot