OneProvider

Modele audio

Tekst na mowę, mowa na tekst i głos w czasie rzeczywistym przez jedno API zgodne z OpenAI: zapytania, głosy, formaty i dokładna cena każdego modelu audio.

Zamiana tekstu na mowę, mowy na tekst i głos w czasie rzeczywistym przez jedno API: żądania, głosy, formaty i ceny.

Wszystkie modele, możliwości i ceny Indeks dokumentacji dla agentów AI: https://oneprovider.dev/docs/llms.txt

Dostępne modele audio

grok-tts Dostępny
znaki wejściowe
15,00 USD / 1 mln znaków
grok-stt Dostępny
godzina audio
0,10 USD / godzina
grok-voice-3.0 Dostępny
minuta audio
0,08 USD / minuta
grok-voice-latest Dostępny
minuta audio
0,08 USD / minuta
gemini-2.5-flash-tts Dostępny
tokeny tekstowe na wejściu
0,50 USD / 1 mln tokenów
tokeny audio na wyjściu
10,00 USD / 1 mln tokenów
gemini-2.5-pro-tts Dostępny
tokeny tekstowe na wejściu
1,00 USD / 1 mln tokenów
tokeny audio na wyjściu
20,00 USD / 1 mln tokenów
gemini-3.1-flash-tts Dostępny
tokeny tekstowe na wejściu
1,00 USD / 1 mln tokenów
tokeny audio na wyjściu
20,00 USD / 1 mln tokenów
gemini-3.1-tts Dostępny
tokeny tekstowe na wejściu
1,00 USD / 1 mln tokenów
tokeny audio na wyjściu
20,00 USD / 1 mln tokenów
gemini-3.8-flash-tts Dostępny
tokeny tekstowe na wejściu
0,50 USD / 1 mln tokenów
tokeny audio na wyjściu
9,00 USD / 1 mln tokenów
gemini-3.8-flash-lite-tts Dostępny
tokeny tekstowe na wejściu
0,50 USD / 1 mln tokenów
tokeny audio na wyjściu
6,00 USD / 1 mln tokenów
gemini-3.5-transcribe Dostępny
tokeny audio na wejściu
2,00 USD / 1 mln tokenów
tokeny tekstowe na wyjściu
12,00 USD / 1 mln tokenów
gemini-3.5-stt Dostępny
tokeny audio na wejściu
0,30 USD / 1 mln tokenów
tokeny audio z cache na wejściu
0,03 USD / 1 mln tokenów
tokeny tekstowe na wyjściu
2,50 USD / 1 mln tokenów
gemini-3-stt Dostępny
tokeny audio na wejściu
1,00 USD / 1 mln tokenów
tokeny audio z cache na wejściu
0,10 USD / 1 mln tokenów
tokeny tekstowe na wyjściu
3,00 USD / 1 mln tokenów
Który model do czego
ZadanieŚcieżkaModele
Tekst na mowę (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
Mowa na tekst (STT)POST /v1/audio/transcriptionsgrok-stt, gemini-3-stt, gemini-3.5-stt, gemini-3.5-transcribe
Głos w czasie rzeczywistymGET /v1/realtime?model= (WebSocket)grok-voice-3.0, grok-voice-latest

Tekst na mowę

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")
Parametry żądania
PoleWartość
modelWymagane. Identyfikator modelu zamiany tekstu na mowę.
inputWymagane. Tekst do wypowiedzenia.
voiceGłos: dla Grok nazwa małymi literami z listy poniżej albo identyfikator własnego głosu, dla Gemini nazwa z drugiej listy.
response_formatmp3 (domyślnie), wav lub pcm.

Odpowiedzią jest plik audio w wybranym formacie. Dla długiego tekstu wyślij osobne żądanie na każdy akapit i połącz pliki.

Głosy Grok

altairaraatlasauroracarinacastorcelestecosmoevehelioshelixiriskeplerleolioralumenlunaluxnakshorionperseusrexrigelsalsiriusursazaganzenith

Głosy Gemini

ZephyrPuckCharonKoreFenrirLedaOrusAoedeCallirrhoeAutonoeEnceladusIapetusUmbrielAlgiebaDespinaErinomeAlgenibRasalgethiLaomedeiaAchernarAlnilamSchedarGacruxPulcherrimaAchirdZubenelgenubiVindemiatrixSadachbiaSadaltagerSulafat

Mowa na tekst

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)

Żądanie to multipart/form-data z polami file (plik audio) i model. Odpowiedzią jest JSON z polem text.

Głos w czasie rzeczywistym

Otwórz WebSocket pod wss://api.oneprovider.dev/v1/realtime?model=grok-voice-3.0 z tym samym kluczem w nagłówku Authorization. Zdarzenia są zgodne z 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())
Zdarzenia
ZdarzeniePrzeznaczenie
session.updateKlient: ustawia instrukcje i opcje sesji.
conversation.item.createKlient: dodaje do rozmowy wiadomość, tekstową lub audio.
response.createKlient: prosi model o odpowiedź.
response.output_audio.deltaSerwer: kolejny fragment audio odpowiedzi, base64.
response.output_audio_transcript.deltaSerwer: kolejny fragment tekstu wypowiadanego przez model.
response.doneSerwer: odpowiedź jest kompletna.

Cennik

  • Grok TTS jest rozliczany za znak tekstu wejściowego.
  • Grok STT jest rozliczany za godzinę audio.
  • Grok Voice jest rozliczany za minutę rozmowy, plus niewielka opłata za każdą wysłaną wiadomość tekstową.
  • Gemini jest rozliczany w tokenach: tekst lub audio na wejściu oraz audio lub tekst na wyjściu; jedna sekunda audio to 25 tokenów.

Przykład: grok-tts, 1000 znaków = 15,00 USD / 1 mln × 1000 = 0,015 USD.

Dokładną cenę każdego modelu znajdziesz w tabeli powyżej i na stronie z cennikiem .

Błędy

Kody błędów
HTTPPrzyczyna
400Nieprawidłowe pole, nieznany głos lub format.
401Klucz jest nieprawidłowy lub unieważniony.
402 / 403 / 429Za niskie saldo albo osiągnięty limit klucza. Doładuj i spróbuj ponownie.
5xxUsługa jest chwilowo niedostępna. Spróbuj ponownie później.
Jeden klucz do każdego modelu Audio opłacasz z tego samego salda co tekst. Pełną tabelę modeli znajdziesz na stronie modeli .

Szybkie odpowiedzi

Jakiego base URL użyć?

Claude Code i SDK Anthropic używają https://api.oneprovider.dev. SDK OpenAI i klienty zgodne z OpenAI używają https://api.oneprovider.dev/v1. Jeden klucz działa przy obu; lista modeli jest na stronie modeli , a stawki na stronie cennika .

Jak się uwierzytelnić?

Wyślij surowy klucz sk-… w x-api-key albo Authorization: Bearer: w jednym z nich, nigdy w obu. Trzymaj klucz w zmiennej środowiskowej, a nie w pliku, który trafia do repozytorium. Więcej o uwierzytelnianiu .

Skąd wziąć klucz?

Otwórz swój Panel w bocie Telegram @oneprovider_robot lub na app.oneprovider.dev, doładuj saldo i naciśnij „Utwórz klucz”. Każdy klucz może mieć własny limit wydatków. Panel i klucze API .

Co oznaczają 401, 404 i 429?

401: klucza brakuje, jest błędnie wpisany albo wysłany w złym nagłówku; wklej cały klucz bez cudzysłowów i spacji. 404: zwykle zły base URL, na przykład brakujące lub podwojone /v1. 429 z komunikatem „Insufficient balance”: saldo Panelu lub limit wydatków klucza się wyczerpał, więc doładuj zamiast ponawiać; każde inne 429 to limit zapytań, więc poczekaj zgodnie z Retry-After. Szczegóły: kody błędów i rozwiązywanie problemów .

Dlaczego strumienie się urywają lub resetują?

VPN i proxy VLESS często buforują SSE albo zrywają negocjację HTTP/2. OneProvider nie ma ograniczeń regionalnych i nie buforuje strumieni, więc wyłącz proxy i spróbuj ponownie.

Gdzie pytać, jeśli to nie wystarcza?

Napisz do @Oneproviderhelpbot w Telegramie albo otwórz „Wsparcie” w Panelu w przeglądarce, podając kod statusu HTTP i dokładny komunikat błędu. Jak działa wsparcie .

Ostatnia aktualizacja: 2026-11-08 Widzisz błąd? @Oneproviderhelpbot