Modelli audio
Sintesi vocale, trascrizione e voce in tempo reale con una sola API compatibile con OpenAI: richieste, voci, formati e prezzo esatto di ogni modello audio.
Sintesi vocale, riconoscimento vocale e voce in tempo reale con un'unica API: le richieste, le voci, i formati e i prezzi.
Tutti i modelli, le funzionalità e i prezzi Indice della documentazione per agenti AI:https://oneprovider.dev/docs/llms.txt Modelli audio disponibili
grok-tts Runnable - caratteri di input
- 15,00 USD / 1M caratteri
grok-stt Runnable - ora di audio
- 0,10 USD / ora
grok-voice-3.0 Runnable - minuto di audio
- 0,08 USD / minuto
grok-voice-latest Runnable - minuto di audio
- 0,08 USD / minuto
gemini-2.5-flash-tts Runnable - token di testo in input
- 0,50 USD / 1M token
- token audio in output
- 10,00 USD / 1M token
gemini-2.5-pro-tts Runnable - token di testo in input
- 1,00 USD / 1M token
- token audio in output
- 20,00 USD / 1M token
gemini-3.1-flash-tts Runnable - token di testo in input
- 1,00 USD / 1M token
- token audio in output
- 20,00 USD / 1M token
gemini-3.1-tts Runnable - token di testo in input
- 1,00 USD / 1M token
- token audio in output
- 20,00 USD / 1M token
gemini-3.8-flash-tts Runnable - token di testo in input
- 0,50 USD / 1M token
- token audio in output
- 9,00 USD / 1M token
gemini-3.8-flash-lite-tts Runnable - token di testo in input
- 0,50 USD / 1M token
- token audio in output
- 6,00 USD / 1M token
gemini-3.5-transcribe Runnable - token audio in input
- 2,00 USD / 1M token
- token di testo in output
- 12,00 USD / 1M token
gemini-3.5-stt Runnable - token audio in input
- 0,30 USD / 1M token
- token audio in input dalla cache
- 0,03 USD / 1M token
- token di testo in output
- 2,50 USD / 1M token
gemini-3-stt Runnable - token audio in input
- 1,00 USD / 1M token
- token audio in input dalla cache
- 0,10 USD / 1M token
- token di testo in output
- 3,00 USD / 1M token
| Compito | Percorso | Modelli |
|---|---|---|
| Sintesi vocale (TTS) | POST /v1/audio/speech | grok-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 |
| Riconoscimento vocale (STT) | POST /v1/audio/transcriptions | grok-stt, gemini-3-stt, gemini-3.5-stt, gemini-3.5-transcribe |
| Voce in tempo reale | GET /v1/realtime?model= (WebSocket) | grok-voice-3.0, grok-voice-latest |
Sintesi vocale
bashcurl -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") | Campo | Valore |
|---|---|
model | Obbligatorio. L'ID di un modello di sintesi vocale. |
input | Obbligatorio. Il testo da pronunciare. |
voice | La voce: per Grok un nome in minuscolo dall'elenco qui sotto o l'ID della tua voce personalizzata, per Gemini un nome dal secondo elenco. |
response_format | mp3 (predefinito), wav o pcm. |
La risposta è il file audio nel formato scelto. Per testi lunghi, invia una richiesta per paragrafo e unisci i file.
Voci di Grok
altairaraatlasauroracarinacastorcelestecosmoevehelioshelixiriskeplerleolioralumenlunaluxnakshorionperseusrexrigelsalsiriusursazaganzenith Voci di Gemini
ZephyrPuckCharonKoreFenrirLedaOrusAoedeCallirrhoeAutonoeEnceladusIapetusUmbrielAlgiebaDespinaErinomeAlgenibRasalgethiLaomedeiaAchernarAlnilamSchedarGacruxPulcherrimaAchirdZubenelgenubiVindemiatrixSadachbiaSadaltagerSulafat Riconoscimento vocale
bashcurl -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 richiesta è multipart/form-data con i campi file (il file audio) e model. La risposta è un JSON con un campo text.
Voce in tempo reale
Apri un WebSocket verso wss://api.oneprovider.dev/v1/realtime?model=grok-voice-3.0 con la stessa chiave nell'header Authorization. Gli eventi seguono l'OpenAI Realtime API.
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()) | Evento | Scopo |
|---|---|
session.update | Client: imposta le istruzioni e le opzioni della sessione. |
conversation.item.create | Client: aggiunge un messaggio alla conversazione, testo o audio. |
response.create | Client: chiede al modello di rispondere. |
response.output_audio.delta | Server: il frammento successivo dell'audio della risposta, in base64. |
response.output_audio_transcript.delta | Server: il frammento successivo del testo di ciò che dice il modello. |
response.done | Server: la risposta è completa. |
Prezzi
- Grok TTS si addebita per carattere del testo in input.
- Grok STT si addebita per ora di audio.
- Grok Voice si addebita per minuto di conversazione, più un piccolo costo per ogni messaggio di testo che invii.
- Gemini si addebita in token: testo o audio in input, e audio o testo in output; un secondo di audio equivale a 25 token.
Esempio: grok-tts, 1.000 caratteri = 15,00 USD / 1M × 1.000 = 0,015 USD.
Il prezzo esatto di ogni modello è nella tabella qui sopra e nella pagina dei prezzi .
Errori
| HTTP | Causa |
|---|---|
| 400 | Un campo non valido, una voce o un formato sconosciuti. |
| 401 | La chiave non è valida o è stata revocata. |
| 402 / 403 / 429 | Saldo insufficiente o limite della chiave raggiunto. Ricarica e riprova. |
| 5xx | Il servizio è temporaneamente non disponibile. Riprova più tardi. |
Risposte rapide
Quale base URL devo usare?
Claude Code e gli SDK Anthropic usano https://api.oneprovider.dev. Gli SDK OpenAI e i client compatibili con OpenAI usano https://api.oneprovider.dev/v1. Con una sola chiave funzionano entrambi; l'elenco dei modelli è nella pagina dei modelli , le tariffe nella pagina dei prezzi .
Come mi autentico?
Invia la chiave sk-… così com'è in x-api-key oppure in Authorization: Bearer: uno dei due, mai entrambi. Tieni la chiave in una variabile d'ambiente, non in un file che finisce nel commit. Altro sull'autenticazione .
Dove ottengo una chiave?
Apri la tua area personale nel bot Telegram @oneprovider_robot oppure su app.oneprovider.dev, ricarica il saldo e premi «Emetti una chiave». Ogni chiave può avere un proprio limite di spesa. Area personale e chiavi API .
Cosa significano 401, 404 e 429?
401: la chiave manca, è scritta male o è inviata nell'header sbagliato; incolla la chiave intera, senza virgolette né spazi. 404: di solito la base URL è sbagliata, per esempio manca /v1 o è doppio. 429 con “Insufficient balance”: il saldo dell'area personale o il limite di spesa della chiave è esaurito, quindi ricarica invece di riprovare; qualsiasi altro 429 è un limite di frequenza, quindi attendi il tempo indicato in Retry-After. Dettagli: codici di errore e risoluzione dei problemi .
Perché gli stream si interrompono o si resettano?
VPN e proxy VLESS spesso mettono in buffer gli SSE o rompono la negoziazione HTTP/2. OneProvider non ha restrizioni regionali e non mette in buffer gli stream: disattiva il proxy e riprova.
Dove chiedo se non basta?
Scrivi a @Oneproviderhelpbot su Telegram oppure apri «Assistenza» nell'area personale sul sito, indicando il codice di stato HTTP e il testo esatto dell'errore. Come funziona l'assistenza .
Ultimo aggiornamento: 2026-11-08 Hai trovato un errore? @Oneproviderhelpbot