GPT Realtime Whisper transcrit les flux audio en direct avec des mises à jour rapides.
- Entrée
- audio texte
- Sortie
- texte
- Prix
- $0.017/min
- Contexte
- 16K
- Coupure des connaissances
- 2024-09
Tarifs selon la longueur en entrée
Le tarif de la tranche de longueur en entrée s’applique à toute la requête. Prix en USD par million de tokens.
| Tokens en entrée | Entrée | Sortie | Entrée (mode réflexion) |
|---|
Le prix en perspective
Position du prix parmi 9 modèles comparables
La barre 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 liées au batch, à la région et aux écritures de cache figurent sur la page des tarifs.
Spécifications et limites
Tokens
| Fenêtre de contexte (spécification du fournisseur) | 16 000 |
|---|---|
| Sortie max (spéc. fournisseur) | 2 000 |
| Coupure des connaissances | 2024-09 |
Audio
| Langues | OpenAI ne publie pas de liste de langues propre à ce modèle ; vérifiez la langue cible avec des enregistrements représentatifs. |
|---|---|
| Limites audio |
|
| Transcription en streaming | Oui |
Modèle
| Modalités | audio + texte → texte |
|---|
Utilisez GPT Realtime Whisper en 30 secondes
Utilisé uniquement dans une session OpenAI Realtime, comme modèle de transcription de l'entrée : ouvrez la session sur un modèle Realtime et réglez session.audio.input.transcription.model sur 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);À propos de GPT Realtime Whisper
- OpenAI le facture à la durée audio, et non au nombre de tokens du texte.
- Pour une nouvelle intégration, OpenAI recommande désormais des modèles de transcription plus récents ; celui-ci reste destiné aux intégrations existantes compatibles.
FAQ
Peut-on essayer l'API GPT Realtime Whisper gratuitement ?
Oui : les nouveaux comptes reçoivent 10 appels d'essai et jusqu'à $1 de crédit gratuit, sans carte bancaire. De quoi essayer GPT Realtime Whisper sur votre charge de travail réelle avant d'ajouter un moyen de paiement.
Quels sont les points forts de GPT Realtime Whisper ?
Transcription en direct par flux ; facturation à la minute audio ; comparer les modèles plus récents. La section À propos en donne un aperçu complet, tiré des notes de version du fournisseur.
Combien coûte GPT Realtime Whisper ?
Sur Synthorai, GPT Realtime Whisper coûte $0.017 par minute d'audio transcrit : paiement à l'usage, sans majoration de plateforme, sans abonnement.
Comment utiliser GPT Realtime Whisper ?
GPT Realtime Whisper ne s'appelle pas seul. Il transcrit l'audio de l'utilisateur dans une session Realtime : connectez-vous à wss://synthorai.io/v1/realtime avec un modèle Realtime, réglez session.audio.input.transcription.model sur "gpt-realtime-whisper" et lisez chaque transcription dans l'événement conversation.item.input_audio_transcription.completed. Il est facturé $0.017 par minute d'audio en entrée, en plus des tarifs de la session.
Comment obtenir l'accès à GPT Realtime Whisper ?
Ouvrez la session Realtime avec votre clé API Synthorai et indiquez "gpt-realtime-whisper" comme modèle de transcription de l'entrée. GPT Realtime Whisper est conçu pour les sessions Realtime, pas pour l'API de fichiers /v1/audio/transcriptions ; pour transcrire un fichier, choisissez un modèle de transcription vocale. Une seule clé API donne accès à tous les modèles de la passerelle.
Modèles associés
Comparer
Les spécifications et les benchmarks des fournisseurs renvoient à leurs sources. La prise en charge par la passerelle décrit l’implémentation de Synthorai. Les exemples archivés sont des requêtes individuelles, sans garantie de performance générale du modèle. Les prix proviennent du flux public ou de son instantané utilisé lors de la compilation.