GPT Realtime Whisper produce aggiornamenti di trascrizione a bassa latenza dall’audio dal vivo.
- Input
- audio testo
- Output
- testo
- Prezzo
- $0.017/min
- Contesto
- 16K
- Knowledge cutoff
- 2024-09
Prezzi per lunghezza in ingresso
L’intera richiesta usa la tariffa della fascia di lunghezza in ingresso. Prezzi in USD per milione di token.
| Token in ingresso | Input | Output | Input (modalità ragionamento) |
|---|
Il prezzo a confronto
Dove si colloca il prezzo tra 9 modelli confrontabili
La barra mostra dove si colloca il prezzo di questo modello tra tutti i modelli dello stesso tipo su Synthorai. Alle due estremità sono indicati il più economico e il più caro. Sono tariffe base; gli sconti per batch, regione e scrittura in cache sono nella pagina dei prezzi.
Specifiche e limiti
Token
| Finestra di contesto (specifica del provider) | 16.000 |
|---|---|
| Output massimo (specifica del provider) | 2.000 |
| Knowledge cutoff | 2024-09 |
Audio
| Lingue | OpenAI non pubblica un elenco di lingue specifico per questo modello; verifica la lingua desiderata con audio rappresentativo. |
|---|---|
| Limiti audio |
|
| Trascrizione in streaming | Sì |
Modello
| Modalità | audio + testo → testo |
|---|
Usa GPT Realtime Whisper in 30 secondi
Si usa solo all'interno di una sessione OpenAI Realtime, come modello di trascrizione dell'input: apri la sessione su un modello Realtime e imposta session.audio.input.transcription.model su gpt-realtime-whisper. WS /v1/realtime
import asyncio, json, websockets
URL = "wss://synthorai.io/v1/realtime?model=gpt-realtime-2.1"
# Send ONLY the Authorization header - the beta protocol is retired.
HEADERS = {"Authorization": "Bearer sk-syn-..."}
async def main():
async with websockets.connect(URL, additional_headers=HEADERS) as ws:
# 1) name gpt-realtime-whisper as the session's input transcription model
await ws.send(json.dumps({
"type": "session.update",
"session": {
"type": "realtime",
"audio": {"input": {"transcription": {"model": "gpt-realtime-whisper"}}},
},
}))
# 2) send input audio (base64 PCM16) and commit it
await ws.send(json.dumps({"type": "input_audio_buffer.append", "audio": pcm16_b64}))
await ws.send(json.dumps({"type": "input_audio_buffer.commit"}))
# 3) the transcript of what was said arrives as its own event
async for raw in ws:
ev = json.loads(raw)
if ev["type"] == "conversation.item.input_audio_transcription.completed":
print(ev["transcript"])
break
asyncio.run(main())import WebSocket from "ws";
const ws = new WebSocket("wss://synthorai.io/v1/realtime?model=gpt-realtime-2.1", {
// Send ONLY the Authorization header, the beta protocol is retired.
headers: { Authorization: "Bearer sk-syn-..." },
});
ws.on("open", () => {
// name gpt-realtime-whisper as the session's input transcription model
ws.send(JSON.stringify({ type: "session.update", session: {
type: "realtime", audio: { input: { transcription: { model: "gpt-realtime-whisper" } } },
} }));
// send input audio (base64 PCM16) and commit it
ws.send(JSON.stringify({ type: "input_audio_buffer.append", audio: pcm16Base64 }));
ws.send(JSON.stringify({ type: "input_audio_buffer.commit" }));
});
ws.on("message", (raw) => {
const ev = JSON.parse(raw.toString());
if (ev.type === "conversation.item.input_audio_transcription.completed") {
console.log(ev.transcript); // the transcript of what was said
ws.close();
}
});# Realtime is a WebSocket protocol - use a WS client such as websocat.
# Each line below is one OpenAI Realtime event (JSON) sent to the session.
websocat -H 'Authorization: Bearer sk-syn-...' \
'wss://synthorai.io/v1/realtime?model=gpt-realtime-2.1' <<'EOF'
{"type":"session.update","session":{"type":"realtime","audio":{"input":{"transcription":{"model":"gpt-realtime-whisper"}}}}}
{"type":"input_audio_buffer.append","audio":"<base64-pcm16>"}
{"type":"input_audio_buffer.commit"}
EOF
# The transcript arrives as conversation.item.input_audio_transcription.completedpackage main
import (
"fmt"
"net/http"
"github.com/gorilla/websocket"
)
func main() {
h := http.Header{}
h.Set("Authorization", "Bearer sk-syn-...")
// Send ONLY the Authorization header, the beta protocol is retired.
c, _, err := websocket.DefaultDialer.Dial("wss://synthorai.io/v1/realtime?model=gpt-realtime-2.1", h)
if err != nil {
panic(err)
}
defer c.Close()
// name gpt-realtime-whisper as the session's input transcription model, then send audio
c.WriteJSON(map[string]any{"type": "session.update", "session": map[string]any{
"type": "realtime",
"audio": map[string]any{"input": map[string]any{
"transcription": map[string]any{"model": "gpt-realtime-whisper"}}}}})
c.WriteJSON(map[string]any{"type": "input_audio_buffer.append", "audio": pcm16B64})
c.WriteJSON(map[string]any{"type": "input_audio_buffer.commit"})
for {
var ev struct {
Type string `json:"type"`
Transcript string `json:"transcript"`
}
if err := c.ReadJSON(&ev); err != nil {
return
}
if ev.Type == "conversation.item.input_audio_transcription.completed" {
fmt.Println(ev.Transcript) // the transcript of what was said
return
}
}
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.WebSocket;
import java.util.concurrent.CompletionStage;
// JDK built-in WebSocket, no extra dependency needed.
WebSocket ws = HttpClient.newHttpClient().newWebSocketBuilder()
.header("Authorization", "Bearer sk-syn-...")
// Send ONLY the Authorization header, the beta protocol is retired.
.buildAsync(URI.create("wss://synthorai.io/v1/realtime?model=gpt-realtime-2.1"), new WebSocket.Listener() {
public CompletionStage<?> onText(WebSocket w, CharSequence data, boolean last) {
// conversation.item.input_audio_transcription.completed carries the transcript
w.request(1);
return null;
}
}).join();
// name gpt-realtime-whisper as the session's input transcription model, then send audio
ws.sendText("{\"type\":\"session.update\",\"session\":{\"type\":\"realtime\",\"audio\":{\"input\":{\"transcription\":{\"model\":\"gpt-realtime-whisper\"}}}}}", true);
ws.sendText("{\"type\":\"input_audio_buffer.append\",\"audio\":\"<base64-pcm16>\"}", true);
ws.sendText("{\"type\":\"input_audio_buffer.commit\"}", true);Informazioni su GPT Realtime Whisper
- OpenAI addebita in base alla durata dell’audio, non ai token di testo.
- Per nuove integrazioni OpenAI consiglia modelli di trascrizione più recenti; questo resta disponibile per integrazioni esistenti compatibili.
FAQ
L'API di GPT Realtime Whisper si può provare gratis?
Sì: i nuovi account ricevono 10 chiamate di prova e fino a $1 di credito gratuito, senza bisogno di carta. Abbastanza per provare GPT Realtime Whisper sul tuo carico di lavoro reale prima di aggiungere un metodo di pagamento.
In cosa eccelle GPT Realtime Whisper?
Trascrizione continua di audio dal vivo; addebito per minuto di audio; confrontare i modelli più recenti. Il quadro completo è nella sezione «Informazioni», ripreso dalle note di rilascio ufficiali del provider.
Quanto costa GPT Realtime Whisper?
Su Synthorai GPT Realtime Whisper costa $0.017 al minuto di audio trascritto: paghi a consumo, senza sovrapprezzo di piattaforma e senza abbonamento.
Come si usa GPT Realtime Whisper?
GPT Realtime Whisper non si chiama da solo. Trascrive l'audio dell'utente all'interno di una sessione Realtime: collegati a wss://synthorai.io/v1/realtime con un modello Realtime, imposta session.audio.input.transcription.model su "gpt-realtime-whisper" e leggi ogni trascrizione dall'evento conversation.item.input_audio_transcription.completed. Costa $0.017 al minuto di audio in ingresso, oltre alle tariffe della sessione.
Come ottengo l'accesso a GPT Realtime Whisper?
Apri la sessione Realtime con la tua chiave API Synthorai e indica "gpt-realtime-whisper" come modello di trascrizione dell'input. GPT Realtime Whisper è pensato per le sessioni Realtime, non per l'API /v1/audio/transcriptions, che lavora su file: per trascrivere un file scegli uno dei modelli speech-to-text. Una sola chiave API vale per tutti i modelli del gateway.
Modelli correlati
Confronta
Le specifiche e i benchmark dei fornitori rimandano alle rispettive fonti. Il supporto del gateway descrive l’implementazione di Synthorai. Gli esempi archiviati sono singole richieste e non garantiscono le prestazioni generali del modello. I prezzi provengono dal servizio pubblico o dalla sua istantanea usata durante la compilazione.