OneProvider

Modelos de áudio

Texto para fala, fala para texto e voz em tempo real por uma só API compatível com OpenAI: requisições, vozes, formatos e o preço exato de cada modelo.

Texto para voz, voz para texto e voz em tempo real por uma única API: as requisições, as vozes, os formatos e os preços.

Todos os modelos, recursos e preços Índice da documentação para agentes de IA: https://oneprovider.dev/docs/llms.txt

Modelos de áudio disponíveis

grok-tts Runnable
caracteres de entrada
US$ 15,00 / 1M de caracteres
grok-stt Runnable
hora de áudio
US$ 0,10 / hora
grok-voice-3.0 Runnable
minuto de áudio
US$ 0,08 / minuto
grok-voice-latest Runnable
minuto de áudio
US$ 0,08 / minuto
gemini-2.5-flash-tts Runnable
tokens de entrada de texto
US$ 0,50 / 1M de tokens
tokens de saída de áudio
US$ 10,00 / 1M de tokens
gemini-2.5-pro-tts Runnable
tokens de entrada de texto
US$ 1,00 / 1M de tokens
tokens de saída de áudio
US$ 20,00 / 1M de tokens
gemini-3.1-flash-tts Runnable
tokens de entrada de texto
US$ 1,00 / 1M de tokens
tokens de saída de áudio
US$ 20,00 / 1M de tokens
gemini-3.1-tts Runnable
tokens de entrada de texto
US$ 1,00 / 1M de tokens
tokens de saída de áudio
US$ 20,00 / 1M de tokens
gemini-3.8-flash-tts Runnable
tokens de entrada de texto
US$ 0,50 / 1M de tokens
tokens de saída de áudio
US$ 9,00 / 1M de tokens
gemini-3.8-flash-lite-tts Runnable
tokens de entrada de texto
US$ 0,50 / 1M de tokens
tokens de saída de áudio
US$ 6,00 / 1M de tokens
gemini-3.5-transcribe Runnable
tokens de entrada de áudio
US$ 2,00 / 1M de tokens
tokens de saída de texto
US$ 12,00 / 1M de tokens
gemini-3.5-stt Runnable
tokens de entrada de áudio
US$ 0,30 / 1M de tokens
tokens de entrada de áudio em cache
US$ 0,03 / 1M de tokens
tokens de saída de texto
US$ 2,50 / 1M de tokens
gemini-3-stt Runnable
tokens de entrada de áudio
US$ 1,00 / 1M de tokens
tokens de entrada de áudio em cache
US$ 0,10 / 1M de tokens
tokens de saída de texto
US$ 3,00 / 1M de tokens
Qual modelo faz o quê
TarefaCaminhoModelos
Texto para voz (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
Voz para texto (STT)POST /v1/audio/transcriptionsgrok-stt, gemini-3-stt, gemini-3.5-stt, gemini-3.5-transcribe
Voz em tempo realGET /v1/realtime?model= (WebSocket)grok-voice-3.0, grok-voice-latest

Texto para voz

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")
Parâmetros da requisição
CampoValor
modelObrigatório. O ID de um modelo de texto para voz.
inputObrigatório. O texto a ser falado.
voiceA voz: para o Grok, um nome em minúsculas da lista abaixo ou o ID de uma voz personalizada sua; para o Gemini, um nome da segunda lista.
response_formatmp3 (padrão), wav ou pcm.

A resposta é o arquivo de áudio no formato escolhido. Para textos longos, envie uma requisição por parágrafo e junte os arquivos.

Vozes do Grok

altairaraatlasauroracarinacastorcelestecosmoevehelioshelixiriskeplerleolioralumenlunaluxnakshorionperseusrexrigelsalsiriusursazaganzenith

Vozes do Gemini

ZephyrPuckCharonKoreFenrirLedaOrusAoedeCallirrhoeAutonoeEnceladusIapetusUmbrielAlgiebaDespinaErinomeAlgenibRasalgethiLaomedeiaAchernarAlnilamSchedarGacruxPulcherrimaAchirdZubenelgenubiVindemiatrixSadachbiaSadaltagerSulafat

Voz para texto

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)

A requisição é multipart/form-data com os campos file (o arquivo de áudio) e model. A resposta é um JSON com o campo text.

Voz em tempo real

Abra um WebSocket para wss://api.oneprovider.dev/v1/realtime?model=grok-voice-3.0 com a mesma chave no cabeçalho Authorization. Os eventos seguem a 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())
Eventos
EventoFinalidade
session.updateCliente: define as instruções e as opções da sessão.
conversation.item.createCliente: adiciona uma mensagem à conversa, em texto ou áudio.
response.createCliente: pede ao modelo que responda.
response.output_audio.deltaServidor: o próximo trecho do áudio da resposta, em base64.
response.output_audio_transcript.deltaServidor: o próximo pedaço de texto do que o modelo diz.
response.doneServidor: a resposta está completa.

Preços

  • O Grok TTS é cobrado por caractere do texto de entrada.
  • O Grok STT é cobrado por hora de áudio.
  • O Grok Voice é cobrado por minuto de conversa, mais uma pequena taxa a cada mensagem de texto que você envia.
  • O Gemini é cobrado em tokens: texto ou áudio de entrada e áudio ou texto de saída; um segundo de áudio equivale a 25 tokens.

Exemplo: grok-tts, 1.000 caracteres = US$ 15,00 / 1M × 1.000 = US$ 0,015.

O preço exato de cada modelo está na tabela acima e na página de preços .

Erros

Códigos de erro
HTTPCausa
400Um campo inválido, uma voz ou um formato desconhecido.
401A chave é inválida ou foi revogada.
402 / 403 / 429Saldo insuficiente ou o limite da chave foi atingido. Recarregue e tente de novo.
5xxO serviço está temporariamente indisponível. Tente de novo mais tarde.
Uma chave para todos os modelos O áudio é pago com o mesmo saldo do texto. Veja a tabela completa de modelos na página de modelos .

Respostas rápidas

Qual base URL devo usar?

O Claude Code e os SDKs da Anthropic usam https://api.oneprovider.dev. Os SDKs da OpenAI e os clientes compatíveis com a OpenAI usam https://api.oneprovider.dev/v1. Uma única chave funciona nos dois; a lista de modelos está na página de modelos e os preços, na página de preços .

Como me autentico?

Envie a chave sk-… pura em x-api-key ou em Authorization: Bearer: um dos dois, nunca ambos. Guarde a chave em uma variável de ambiente, não em um arquivo que vai para o commit. Mais sobre autenticação .

Onde consigo uma chave?

Abra o seu painel no bot do Telegram @oneprovider_robot ou em app.oneprovider.dev, recarregue o saldo e toque em “Emitir chave”. Cada chave pode ter o seu próprio limite de gastos. Painel e chaves de API .

O que significam 401, 404 e 429?

401: a chave está ausente, foi digitada errado ou enviada no cabeçalho errado; cole a chave inteira, sem aspas nem espaços. 404: em geral, uma base URL errada, por exemplo um /v1 ausente ou duplicado. 429 com “Insufficient balance”: o saldo do painel ou o limite de gastos da chave acabou, então recarregue em vez de tentar de novo; qualquer outro 429 é um limite de requisições, então aguarde o tempo de Retry-After. Detalhes: códigos de erro e solução de problemas .

Por que os streams são cortados ou reiniciados?

VPNs e proxies VLESS costumam armazenar SSE em buffer ou quebrar a negociação do HTTP/2. A OneProvider não tem restrições regionais e não armazena streams em buffer; desative o proxy e tente de novo.

Onde pergunto se isso não bastar?

Escreva para @Oneproviderhelpbot no Telegram ou abra “Suporte” no painel web, informando o código de status HTTP e a mensagem de erro exata. Como funciona o suporte .

Última atualização: 2026-11-08 Encontrou um erro? @Oneproviderhelpbot