Conçu pour les agents vocaux qui ne peuvent pas attendre 600ms

OpenAI : GPT Realtime 2.1 mini

openai/gpt-realtime-2-1-mini
actif speech-to-speech 1 fournisseur
Playground

OpenAI distilled realtime reasoning model for faster, lower-cost speech-to-speech voice conversations.

AuteurOpenAI
Languesnon précisé
Formats de réponseStreaming : PCM · µ-law · A-law
Statutactif

Fournisseurs

Plusieurs fournisseurs peuvent héberger le même modèle. Choisissez-en un lorsque vous avez besoin d’un backend fixe, ou laissez le routage choisir parmi eux.

FournisseurSlugPour 1M tokensLatenceiPour le TTS, la latence correspond au délai jusqu’au premier octet audio. Pour le STT, elle correspond au délai jusqu’au premier token.ModesDisponibilité
OpenAI 3 paramètres
openai
$20
—
Streaming

Langues prises en charge

Aucune liste de langues vérifiée pour ce modèle pour le moment.

Fonctionnalités

Speech to speech

Bidirectional realtime speech-to-speech over WebSocket or WebRTC.

speech_to_speech
Text input and output

Accepts text input and returns text output alongside audio.

text_input_output
Image input

Accepts image input in the conversation.

image_input
Turn detection

Server-side voice activity detection (server_vad) or semantic turn detection (semantic_vad).

turn_taking
Tool use

Function calling during the conversation.

tool_use
Input transcription

Optional transcription of input audio by a separate transcription model.

input_transcription

Code

Langage

Voix à voix temps réel avec l’OpenAI SDK

Envoie question.pcm (PCM mono 16 bits à 24 kHz) en un seul tour via le protocole OpenAI Realtime et enregistre la réponse parlée dans reply.pcm.

import { once } from "node:events";
import { readFile, writeFile } from "node:fs/promises";
import OpenAI from "openai";
import { OpenAIRealtimeWS } from "openai/realtime/ws";

const client = new OpenAI({
  apiKey: process.env.ALLMODELS_API_KEY,
  baseURL: "https://api.allmodels.io/oai"
});
const realtime = new OpenAIRealtimeWS({ model: "gpt-realtime-2.1-mini" }, client);
const reply = [];

realtime.on("response.output_audio.delta", ({ delta }) => reply.push(Buffer.from(delta, "base64")));
realtime.on("response.done", async () => {
  await writeFile("reply.pcm", Buffer.concat(reply));
  realtime.close();
});
realtime.on("error", console.error);

if (realtime.socket.readyState !== 1) await once(realtime.socket, "open");
const format = { type: "audio/pcm", rate: 24000 };
realtime.send({
  type: "session.update",
  session: {
    type: "realtime",
    output_modalities: ["audio"],
    audio: { input: { format, turn_detection: null }, output: { format, voice: "marin" } }
  }
});
realtime.send({ type: "input_audio_buffer.append", audio: (await readFile("question.pcm")).toString("base64") });
realtime.send({ type: "input_audio_buffer.commit" });
realtime.send({ type: "response.create" });