OneProvider

Modèles audio

Synthèse vocale, transcription et voix en temps réel via une seule API compatible OpenAI : requêtes, voix, formats et prix exact de chaque modèle audio.

Synthèse vocale, reconnaissance vocale et voix en temps réel via une seule API : les requêtes, les voix, les formats et les prix.

Tous les modèles, leurs capacités et leurs tarifs Index de la documentation pour les agents IA : https://oneprovider.dev/docs/llms.txt

Modèles audio disponibles

grok-tts Runnable
caractères en entrée
15,00 $US / 1M de caractères
grok-stt Runnable
heure d’audio
0,10 $US / heure
grok-voice-3.0 Runnable
minute d’audio
0,08 $US / minute
grok-voice-latest Runnable
minute d’audio
0,08 $US / minute
gemini-2.5-flash-tts Runnable
jetons de texte en entrée
0,50 $US / 1M de jetons
jetons audio en sortie
10,00 $US / 1M de jetons
gemini-2.5-pro-tts Runnable
jetons de texte en entrée
1,00 $US / 1M de jetons
jetons audio en sortie
20,00 $US / 1M de jetons
gemini-3.1-flash-tts Runnable
jetons de texte en entrée
1,00 $US / 1M de jetons
jetons audio en sortie
20,00 $US / 1M de jetons
gemini-3.1-tts Runnable
jetons de texte en entrée
1,00 $US / 1M de jetons
jetons audio en sortie
20,00 $US / 1M de jetons
gemini-3.8-flash-tts Runnable
jetons de texte en entrée
0,50 $US / 1M de jetons
jetons audio en sortie
9,00 $US / 1M de jetons
gemini-3.8-flash-lite-tts Runnable
jetons de texte en entrée
0,50 $US / 1M de jetons
jetons audio en sortie
6,00 $US / 1M de jetons
gemini-3.5-transcribe Runnable
jetons audio en entrée
2,00 $US / 1M de jetons
jetons de texte en sortie
12,00 $US / 1M de jetons
gemini-3.5-stt Runnable
jetons audio en entrée
0,30 $US / 1M de jetons
jetons audio en entrée mis en cache
0,03 $US / 1M de jetons
jetons de texte en sortie
2,50 $US / 1M de jetons
gemini-3-stt Runnable
jetons audio en entrée
1,00 $US / 1M de jetons
jetons audio en entrée mis en cache
0,10 $US / 1M de jetons
jetons de texte en sortie
3,00 $US / 1M de jetons
Quel modèle fait quoi
TâcheCheminModèles
Synthèse vocale (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
Reconnaissance vocale (STT)POST /v1/audio/transcriptionsgrok-stt, gemini-3-stt, gemini-3.5-stt, gemini-3.5-transcribe
Voix en temps réelGET /v1/realtime?model= (WebSocket)grok-voice-3.0, grok-voice-latest

Synthèse vocale

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")
Paramètres de la requête
ChampValeur
modelObligatoire. L’ID d’un modèle de synthèse vocale.
inputObligatoire. Le texte à prononcer.
voiceLa voix : pour Grok, un nom en minuscules de la liste ci-dessous ou votre propre ID de voix personnalisée ; pour Gemini, un nom de la seconde liste.
response_formatmp3 (par défaut), wav ou pcm.

La réponse est le fichier audio au format choisi. Pour un long texte, envoyez une requête par paragraphe et assemblez les fichiers.

Voix Grok

altairaraatlasauroracarinacastorcelestecosmoevehelioshelixiriskeplerleolioralumenlunaluxnakshorionperseusrexrigelsalsiriusursazaganzenith

Voix Gemini

ZephyrPuckCharonKoreFenrirLedaOrusAoedeCallirrhoeAutonoeEnceladusIapetusUmbrielAlgiebaDespinaErinomeAlgenibRasalgethiLaomedeiaAchernarAlnilamSchedarGacruxPulcherrimaAchirdZubenelgenubiVindemiatrixSadachbiaSadaltagerSulafat

Reconnaissance vocale

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)

La requête est en multipart/form-data avec les champs file (le fichier audio) et model. La réponse est un JSON avec un champ text.

Voix en temps réel

Ouvrez un WebSocket vers wss://api.oneprovider.dev/v1/realtime?model=grok-voice-3.0 avec la même clé dans l’en-tête Authorization. Les événements suivent l’API OpenAI Realtime.

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())
Événements
ÉvénementRôle
session.updateClient : définit les instructions et les options de session.
conversation.item.createClient : ajoute un message à la conversation, texte ou audio.
response.createClient : demande au modèle de répondre.
response.output_audio.deltaServeur : le morceau suivant de l’audio de la réponse, en base64.
response.output_audio_transcript.deltaServeur : le morceau suivant du texte de ce que dit le modèle.
response.doneServeur : la réponse est terminée.

Tarifs

  • Grok TTS est facturé par caractère de texte d’entrée.
  • Grok STT est facturé par heure d’audio.
  • Grok Voice est facturé par minute de conversation, plus de petits frais pour chaque message texte que vous envoyez.
  • Gemini est facturé en jetons : texte ou audio en entrée, audio ou texte en sortie ; une seconde d’audio correspond à 25 jetons.

Exemple : grok-tts, 1 000 caractères = 15,00 $US / 1M × 1 000 = 0,015 $US.

Le prix exact de chaque modèle figure dans le tableau ci-dessus et sur la page des tarifs .

Erreurs

Codes d’erreur
HTTPCause
400Un champ non valide, une voix ou un format inconnu.
401La clé est invalide ou révoquée.
402 / 403 / 429Solde insuffisant ou limite de la clé atteinte. Rechargez et réessayez.
5xxLe service est temporairement indisponible. Réessayez plus tard.
Une seule clé pour tous les modèles L’audio est payé depuis le même solde que le texte. Voir le tableau complet des modèles sur la page des modèles .

Réponses rapides

Quelle base URL utiliser ?

Claude Code et les SDK Anthropic utilisent https://api.oneprovider.dev. Les SDK OpenAI et les clients compatibles OpenAI utilisent https://api.oneprovider.dev/v1. Une seule clé fonctionne avec les deux ; la liste des modèles est sur la page des modèles , les tarifs sur la page des tarifs .

Comment s’authentifier ?

Envoyez la clé sk-… telle quelle dans x-api-key ou Authorization: Bearer : l’un des deux, jamais les deux. Conservez la clé dans une variable d’environnement, pas dans un fichier qui sera commité. En savoir plus sur l’authentification .

Où obtenir une clé ?

Ouvrez votre espace client dans le bot Telegram @oneprovider_robot ou sur app.oneprovider.dev, rechargez le solde et appuyez sur « Créer une clé ». Chaque clé peut avoir sa propre limite de dépense. Espace client et clés API .

Que signifient 401, 404 et 429 ?

401 : la clé est absente, mal saisie ou envoyée dans le mauvais en-tête ; collez la clé entière, sans guillemets ni espaces. 404 : le plus souvent une base URL incorrecte, par exemple un /v1 manquant ou en double. 429 avec « Insufficient balance » : le solde de l’espace client est à zéro ou la clé a atteint sa limite de dépense, donc rechargez au lieu de réessayer ; tout autre 429 est une limite de débit, donc attendez le délai indiqué par Retry-After. Détails : codes d’erreur et dépannage .

Pourquoi les flux se coupent-ils ou se réinitialisent-ils ?

Les VPN et les proxys VLESS mettent souvent le SSE en mémoire tampon ou perturbent la négociation HTTP/2. OneProvider n’a aucune restriction régionale et ne met pas les flux en mémoire tampon : désactivez le proxy et réessayez.

Où demander de l’aide si cela ne suffit pas ?

Écrivez à @Oneproviderhelpbot sur Telegram ou ouvrez « Support » dans l’espace client web, en indiquant le code de statut HTTP et le message d’erreur exact. Comment fonctionne le support .

Dernière mise à jour: 2026-11-08 Vous avez trouvé un bug ? @Oneproviderhelpbot