GPT Realtime est le premier modèle temps réel d'OpenAI en disponibilité générale : un modèle speech-to-speech unique qui écoute et répond directement avec un audio naturel et expressif, au lieu d'enchaîner des modèles de transcription et de synthèse distincts.
- Entrée
- audio texte $4/M
- Sortie
- audio texte $16/M
- Entrée audio
- $32/M
- Sortie audio
- $64/M
- Lecture de cache
- $0.4/M
- Coupure des connaissances
- 2023-10
Benchmarks
GPT Realtime : 8 publiés, mais aucun benchmark partagé avec assez de modèles pour comparer.
Le prix en contexte
Position du prix parmi 6 modèles comparables
La barre montre où se situe le prix de ce modèle parmi tous les modèles du même type sur Synthorai. Le moins cher et le plus cher sont nommés à chaque extrémité. Ce sont des tarifs de base ; les remises lot, région et écriture en cache figurent sur la page des tarifs.
Spécifications et limites
Tokens
| Fenêtre de contexte (spécification du fournisseur) | 32 000 |
|---|---|
| Sortie max (spéc. fournisseur) | 4 096 |
| Coupure des connaissances | 2023-10 |
Mise en cache
| Mode | automatique |
|---|---|
| Préfixe min. | 1 024 |
| Durée de vie | 5-10 min, jusqu'à 1 heure |
Temps réel
| Session | Speech-to-speech natif via WebSocket · appel de fonctions · contexte de 32K |
|---|
Modèle
| Modalités | audio + texte → audio + texte |
|---|
- Premier modèle temps réel en disponibilité générale d'OpenAI (snapshot gpt-realtime-2025-08-28): speech-to-speech natif avec appel de fonctions
- contexte de 32k
Utilisez GPT Realtime en 30 secondes
Compatible OpenAI Realtime : connectez-vous en WebSocket, audio entrant et sortant. WS /v1/realtime
import asyncio, base64, json, websockets
URL = "wss://synthorai.io/v1/realtime?model=gpt-realtime"
# 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) configure the speech-to-speech session
await ws.send(json.dumps({
"type": "session.update",
"session": {
"type": "realtime",
"output_modalities": ["audio"],
"audio": {"output": {"voice": "alloy"}},
},
}))
# 2) send input audio (base64 PCM16), then request a spoken reply
await ws.send(json.dumps({"type": "input_audio_buffer.append", "audio": pcm16_b64}))
await ws.send(json.dumps({"type": "input_audio_buffer.commit"}))
await ws.send(json.dumps({"type": "response.create"}))
# 3) stream the model's audio (and text) back
async for raw in ws:
ev = json.loads(raw)
if ev["type"] == "response.audio.delta":
play(base64.b64decode(ev["delta"])) # audio out
elif ev["type"] == "response.done":
break
asyncio.run(main())import WebSocket from "ws";
const ws = new WebSocket("wss://synthorai.io/v1/realtime?model=gpt-realtime", {
// Send ONLY the Authorization header — the beta protocol is retired.
headers: { Authorization: "Bearer sk-syn-..." },
});
ws.on("open", () => {
// configure the speech-to-speech session
ws.send(JSON.stringify({ type: "session.update", session: {
type: "realtime", output_modalities: ["audio"], audio: { output: { voice: "alloy" } },
} }));
// send input audio (base64 PCM16), then request a spoken reply
ws.send(JSON.stringify({ type: "input_audio_buffer.append", audio: pcm16Base64 }));
ws.send(JSON.stringify({ type: "input_audio_buffer.commit" }));
ws.send(JSON.stringify({ type: "response.create" }));
});
ws.on("message", (raw) => {
const ev = JSON.parse(raw.toString());
if (ev.type === "response.audio.delta") playAudio(Buffer.from(ev.delta, "base64")); // audio out
else if (ev.type === "response.done") 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' <<'EOF'
{"type":"session.update","session":{"type":"realtime","output_modalities":["audio"],"audio":{"output":{"voice":"alloy"}}}}
{"type":"input_audio_buffer.append","audio":"<base64-pcm16>"}
{"type":"input_audio_buffer.commit"}
{"type":"response.create"}
EOF
# Responses stream back as response.audio.delta (base64 audio out) … response.donepackage main
import (
"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", h)
if err != nil {
panic(err)
}
defer c.Close()
// configure the speech-to-speech session, send audio, request a spoken reply
c.WriteJSON(map[string]any{"type": "session.update", "session": map[string]any{
"type": "realtime", "output_modalities": []string{"audio"},
"audio": map[string]any{"output": map[string]any{"voice": "alloy"}}}})
c.WriteJSON(map[string]any{"type": "input_audio_buffer.append", "audio": pcm16B64})
c.WriteJSON(map[string]any{"type": "input_audio_buffer.commit"})
c.WriteJSON(map[string]any{"type": "response.create"})
for {
var ev struct {
Type string `json:"type"`
Delta string `json:"delta"`
}
if err := c.ReadJSON(&ev); err != nil {
return
}
if ev.Type == "response.audio.delta" {
playAudio(ev.Delta) // base64 audio out
} else if ev.Type == "response.done" {
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"), new WebSocket.Listener() {
public CompletionStage<?> onText(WebSocket w, CharSequence data, boolean last) {
// handle response.audio.delta (base64 audio out) / response.done here
w.request(1);
return null;
}
}).join();
// configure the session, send input audio, then request a spoken reply
ws.sendText("{\"type\":\"session.update\",\"session\":{\"type\":\"realtime\",\"output_modalities\":[\"audio\"],\"audio\":{\"output\":{\"voice\":\"alloy\"}}}}", true);
ws.sendText("{\"type\":\"input_audio_buffer.append\",\"audio\":\"<base64-pcm16>\"}", true);
ws.sendText("{\"type\":\"input_audio_buffer.commit\"}", true);
ws.sendText("{\"type\":\"response.create\"}", true);À propos de GPT Realtime
- Il embarque une fenêtre de contexte de 32K tokens avec 4 096 tokens de sortie maximale, prend en charge l'appel de fonctions pour les flux d'agents vocaux, et accepte de l'audio ou du texte en entrée avec de l'audio et du texte en sortie ; l'audio et le texte sont facturés à des tarifs par token distincts, avec une entrée mise en cache à tarif réduit.
- Les sessions peuvent être pilotées via WebRTC pour les clients navigateur et mobiles, via WebSocket lorsqu'un serveur détient déjà le flux audio, ou via SIP pour les agents de téléphonie, avec une détection d'activité vocale côté serveur qui découpe la parole et tronque l'audio non joué quand un appelant interrompt.
- La page modèle liste aussi l'entrée d'images aux côtés du texte et de l'audio, et les voix sont choisies par session dans l'ensemble publié par OpenAI, avec la réserve qu'une voix ne peut plus être changée une fois qu'une session a émis de l'audio.
- Il n'a pas de contrôle d'effort de raisonnement (celui-ci arrive avec la génération 2.1), et sa date limite des connaissances est octobre 2023.
- OpenAI a depuis annoncé sa dépréciation, avec un arrêt programmé en janvier 2027 et GPT Realtime 2.1 désigné comme cible de migration : les nouveaux travaux vocaux relèvent donc de 2.1, tandis que les intégrations existantes disposent encore d'un délai.
- Il reste disponible comme snapshot GA d'origine de la famille temps réel.
- Synthorai sert GPT Realtime via l'endpoint WebSocket /v1/realtime compatible OpenAI, si bien que les clients officiels du Realtime SDK se connectent sans modification.
FAQ
Peut-on essayer l'API GPT Realtime gratuitement ?
GPT Realtime est actuellement en bêta sur invitation : l'accès se fait sur candidature plutôt que par inscription ouverte. Faites la demande depuis la console Synthorai ; une fois approuvée, la tarification standard au paiement à l'usage s'applique, sans abonnement.
Quels sont les points forts de GPT Realtime ?
Speech-to-speech en un seul modèle, sans chaîne de transcription ; audio naturel expressif avec appels de fonction ; instantané GA d'origine de la famille temps réel. Voir la section À propos pour le tableau complet, tiré des notes de version officielles du fournisseur.
Combien coûte GPT Realtime ?
Sur Synthorai, GPT Realtime coûte $4 par million de tokens en entrée et $16 par million de tokens en sortie, soit le prix catalogue du fournisseur, sans majoration de plateforme. Les tokens d'entrée en cache sont facturés $0.4/M.
Comment appeler l'API GPT Realtime ?
GPT Realtime est un modèle speech-to-speech : connectez-vous en WebSocket à wss://synthorai.io/v1/realtime?model=gpt-realtime avec le SDK OpenAI Realtime (ou un WebSocket brut) pour envoyer et recevoir de l'audio. Ce n'est pas un envoi de fichier POST /v1/audio/transcriptions. Authentifiez-vous avec votre clé sk-syn et n'envoyez que l'en-tête Authorization (le protocole beta est retiré).
Comment obtenir l'accès à GPT Realtime ?
GPT Realtime est en bêta sur invitation : demandez l'accès depuis la console Synthorai. Une fois la demande approuvée, il fonctionne comme tous les autres modèles : pointez votre SDK OpenAI vers base_url="https://synthorai.io/v1" et définissez model="gpt-realtime".
Modèles associés
Comparer
Chaque valeur de cette page est transcrite de la documentation du fournisseur, liée ci-dessus, et porte la date de sa vérification. Les prix sont comparés à l'échelle du catalogue ; les valeurs de spécification que les fournisseurs définissent différemment sont présentées avec la différence indiquée plutôt que mises en graphique. Rien ici n'est mesuré par nous, et rien n'est noté.