GPT Realtime 2.1 は OpenAI のリアルタイム speech-to-speech ファミリーのフラッグシップで、英数字認識、無音・ノイズ処理、割り込み挙動を改善した更新版のリアルタイム推論モデルとして発表されました。
- 入力
- 音声 テキスト $4/M
- 出力
- 音声 テキスト $24/M
- 音声入力
- $32/M
- 音声出力
- $64/M
- キャッシュ読み取り
- $0.4/M
- 知識カットオフ
- 2024-09
価格の位置づけ
同種 6 モデル中の料金の位置
このバーは、Synthorai 上の同種モデルの中でこのモデルの価格がどこに位置するかを示します。両端には最も安いモデルと最も高いモデルの名前が入ります。表示は基本料金で、バッチ・リージョン・キャッシュ書き込みの割引は料金ページにあります。
スペックと制限
トークン
| コンテキストウィンドウ(ベンダー仕様) | 128,000 |
|---|---|
| 最大出力(ベンダー仕様) | 32,000 |
| 知識カットオフ | 2024-09 |
プロンプトキャッシュ
| キャッシュ方式 | 自動 |
|---|---|
| 最小プレフィックス | 1,024 |
| 保持時間 | 5〜10 分、最大 1 時間 |
リアルタイム
| セッション |
|
|---|
モデル
| モダリティ | 音声 + テキスト → 音声 + テキスト |
|---|
- 英数字の認識、無音とノイズの処理、割り込み動作を改善した最新のリアルタイム推論モデル。
- 音声エージェントのワークフロー向けに推論エフォートとツール利用を設定できます。
- 128k コンテキスト。
30 秒で GPT Realtime 2.1 を使う
OpenAI Realtime 互換:WebSocket で接続し、音声入力・音声出力。WS /v1/realtime
import asyncio, base64, 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) 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-2.1", {
// 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-2.1' <<'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-2.1", 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-2.1"), 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);GPT Realtime 2.1 について
- ファミリーのコンテキストウィンドウを 128K トークン、最大出力を 32K トークンに拡大し、設定可能な推論エフォート、指示追従、複雑な音声エージェントワークフロー向けのツール使用に対応します。
- 音声とテキストのトークンはそれぞれの単価で課金され、キャッシュ済み入力には割引が適用されます。
- OpenAI のリアルタイムガイドは、低レイテンシの音声エージェントを構築するときに選ぶべきモデルとしてこれを挙げ、ほとんどの本番エージェントでは低い推論エフォートから始め、タスクが追加のレイテンシに見合う場合にのみ引き上げることを推奨しています。
- セッションは WebRTC、WebSocket、SIP で実行でき、ターンの切り替えには無音ベースの音声区間検出か、話者が話し終えるのをどれだけ辛抱強く待つかを eagerness の設定で決める意味的な検出器を使えます。
- 割り込みの処理はプロトコルの一部です。
- 検出を有効にするとサーバーは未再生の音声を切り詰め、WebSocket のクライアントは再生を停止し、実際にどれだけの音声が聞き手に届いたかを報告することが期待されます。
- ツールはセッション単位でもレスポンス単位でも宣言でき、付随的なタスクで文字起こしを汚したくない場合には、メインの会話の外でレスポンスを生成できます。
- Synthorai では OpenAI 互換の /v1/realtime WebSocket エンドポイントで提供され、公式 Realtime SDK で構築したアプリケーションは変更なしで動作します。
よくある質問
GPT Realtime 2.1 API は無料で試せますか?
GPT Realtime 2.1 は現在招待制ベータです。オープン登録ではなく申請制で、Synthorai コンソールから申請できます。承認後は標準の従量課金が適用され、サブスクリプションは不要です。
GPT Realtime 2.1 は何が得意ですか?
本番音声エージェント向けフラッグシップリアルタイムティア、割り込み・ノイズ・英数字認識を改善、設定可能な推論エフォートとツール使用。全体像はベンダー公式のリリースノートに基づく「このモデルについて」セクションをご覧ください。
GPT Realtime 2.1 の料金はいくらですか?
Synthorai 上の GPT Realtime 2.1 は入力 100 万トークンあたり $4、出力 100 万トークンあたり $24 です。ベンダー定価のままで、プラットフォーム手数料はありません。キャッシュ済み入力トークンは $0.4/M で課金されます。
GPT Realtime 2.1 API はどう呼び出しますか?
GPT Realtime 2.1 は音声対話(speech-to-speech)モデルです。WebSocket で wss://synthorai.io/v1/realtime?model=gpt-realtime-2.1 に接続し、OpenAI Realtime SDK(または生の WebSocket)で音声入力・音声出力を行います。POST /v1/audio/transcriptions のファイルアップロードではありません。sk-syn キーで認証し、Authorization ヘッダーのみを送信してください(beta プロトコルは廃止済み)。
GPT Realtime 2.1 を利用するには?
GPT Realtime 2.1 は招待制ベータです。Synthorai コンソールからアクセスを申請してください。承認後は他のモデルと同じ使い方です。OpenAI SDK の base_url を "https://synthorai.io/v1" に向け、model="gpt-realtime-2.1" を設定するだけです。
関連モデル
比較
このページの値はすべてベンダー自身のドキュメント(上部にリンク)から転記し、確認した日付を付しています。価格はカタログ全体で比較しますが、ベンダーごとに定義が異なる仕様値は差異を明記するにとどめ、図表で比較はしません。当社が測定した数値はなく、スコアも付けていません。