OpenAI が実時間音声モデル GPT-Realtime-2.1 と GPT-Realtime-2.1-mini を発表:mini モデルも推論能力を搭載、遅延は25%低下
- OpenAI は API 上で新モデル gpt-realtime-2.1 と gpt-realtime-2.1-mini を同時公開。いずれも低遅延の音声・マルチモーダル用途向け
- gpt-realtime-2.1-mini は、mini 価格帯として初めて「推論できる」実時間音声モデルとなった。価格は前世代の gpt-realtime-mini と完全に同一
- 両モデルとも推論強度を設定可能(minimal / low / medium / high / xhigh の5段階)。デフォルトは low で遅延を抑える
- キャッシュ最適化により、Realtime 音声モデル全系統で最も遅いリクエストの応答時間が少なくとも25%短縮。mini 版はキャッシュヒットした音声入力の価格が、100万トークンあたり10ドルから0.30ドルに下落
- gpt-realtime-2.1 は前世代比で英数字認識、無音・ノイズ処理、割り込み挙動が改善。mini 版の音声出力価格は完全版の約3分の1(20ドル対64ドル)
OpenAI が今回発表したもの
OpenAI は先日、API 上で新しい Realtime モデル gpt-realtime-2.1 と gpt-realtime-2.1-mini を同時発表した。いずれも低遅延の音声・マルチモーダル対話向けだ。
この2機種はいずれも「聞いて理解し、応答する」音声アシスタント型モデルで、Realtime ファミリーの中でも対話応答・ツール呼び出しの系統に属する。OpenAI にはこのほか、同時通訳専用の gpt-realtime-translate、リアルタイム文字起こし専用の gpt-realtime-whisper という独立したモデルもあるが、今回の発表はそれらには関係しない。
まず「Realtime」がどう動くかを押さえる
Realtime API の土台は、聞いた音声を1つのモデルがそのまま話す音声へと処理する仕組みにある。「音声をテキスト化し、応答テキストを生成し、それを再び音声合成する」という3段階の受け渡しを省いている。これがいわゆる単一モデルによる音声-to-音声(speech-to-speech)だ。両者の違いは、以下の対比を見てほしい。
音声 → テキスト化 → 応答テキスト生成 → 音声合成。各接続点で前段階の完了を待つ必要があり、遅延が段階ごとに積み重なる。話し手の語気や間合いといった細部も、テキスト化の過程で失われやすい。
1つのモデルが音声で受け取り音声で返す、3段階に分割されない仕組み。接続点が2つ減ることで遅延が下がり、話し方の語気や細部もより保たれやすくなる。
単一モデルは、2人が面と向かって直接話すようなものだ。3段階の受け渡し方式は、あなたが一言話すたびに、まず誰かがそれをメモに書き取り、別の誰かがそのメモを読み上げるようなもの——遅いうえ、語気はすべて紙の上で消えてしまう。
音声アシスタントはこれまで何に詰まっていたか
音声アシスタントは、ツールを呼び出す際によく固まっていた。モデルは関数呼び出しをトリガーした瞬間に沈黙してしまい、ユーザーは電話が切れたと思って声を上げて割り込んだり、そのまま切ってしまったりする。会話の状態は乱れ、結局中途半端な結果しか得られず、もう一度やり直すはめになる。
推論が mini クラスに搭載、沈黙問題をどう解決したか
このセクションが今回の発表の核心だ——推論能力が低価格の mini クラスに降りてきたことと、「口頭での予告」の組み合わせが、まさに前セクションで挙げた沈黙による切断という古い課題を解決する。
ここでいう「推論」とは何か
推論(reasoning)とは、モデルが返答する前に、この発話をどう処理すべきか、ツールを呼ぶべきかどうかを頭の中で先に考えることを指す。聞こえたものにすぐ反射的に答えるのではない。mini クラスも今回からツール呼び出し(function calling)に対応したため、まず1歩計画を立ててから関数を呼び出し、それから答えを返せるようになった。
口頭での予告により、沈黙が「話しながら動く」に変わる。モデルはまず「今すぐ調べてみますね」と言ってから、リクエストを処理しつつ話し続けることができる。ユーザーは常に声を聞いているため、切れたと誤解することがなく、複数ステップにわたる音声タスクでも会話の連続性が保たれる。
さらに重要なのは価格だ。mini 版は推論機能が追加されたにもかかわらず、価格は前世代の gpt-realtime-mini と完全に同一のままだ。コストに敏感な音声アプリケーションが、追加コストなしで推論とツール呼び出しを使えるのはこれが初めてとなる。
ツールを伴う1回の対話を分解すると、時系列はこうなる。
推論強度は5段階、遅延と品質をどうトレードオフするか
推論強度は設定可能で、低いほうから minimal、low、medium、high、xhigh の5段階がある。low がデフォルトで、単純な対話の遅延を抑える。強度が上がるほど遅延と出力トークン量も増える。OpenAI は、大半の本番環境の音声アシスタントはまず low から始め、難しいタスクに直面したときだけ引き上げることを推奨している。
2機種、どう選ぶか
一言でいえば:最強のリアルタイム推論、ツール呼び出し、指示追従、音声アシスタント性能が欲しいなら完全版 gpt-realtime-2.1。より速く、より安く、能力は必要十分でよいなら gpt-realtime-2.1-mini。
| 項目 | gpt-realtime-2.1(完全版) | gpt-realtime-2.1-mini |
|---|---|---|
| 位置づけ | 最強のリアルタイム推論と音声アシスタント挙動 | より速く、より安い選択肢 |
| 推論 | あり、強度調整可能 | あり、mini 推論モデル |
| ツール呼び出し | あり | あり |
| 前世代からの改善点 | 英数字認識、無音・ノイズ処理、割り込み挙動がいずれも改善 | 前世代 mini の能力を維持しつつ、推論を新規追加 |
| 音声出力価格 | $64 / 100万トークン | $20 / 100万トークン |
| 選ぶべき場面 | 最強の推論と音声アシスタント性能が必要なとき | 速度とコストを重視し、能力は必要十分でよいとき |
遅延25%減、キャッシュがなぜコスト削減になるか
今回の遅延改善は、キャッシュ最適化によるものだ。そしてキャッシュは時間を節約するだけでなく、コストも大幅に下げる。
まず「p95 遅延」とは何かを押さえる
p95 遅延とは、すべてのリクエストの応答時間を速い順に並べ、95%の位置にある値を指す。これは最も遅い5%のユーザーが実際にどれだけ待たされたかを表すもので、平均処理時間ではない。リアルタイム音声にとって、ユーザーが実際に感じる「引っかかり」は、まさにこの最も遅い部分に潜んでいる。この部分を少なくとも25%削ることで、通話の体感は明らかに向上する。
100人がレジに並んでいるとき、本当に気にすべきは平均待ち時間ではなく、後ろから5番目あたりの人がどれだけ待たされたかだ。その人たちが文句を言わなければ、その仕組みは安定していると言える。
キャッシュヒットで、なぜ価格が急落するのか
キャッシュヒット入力(cached input)とは、今回の対話が以前処理済みのシステムプロンプトや履歴内容を引き継いでいる場合、サービス側が「この部分は計算済み」と認識し、再計算せずそのまま再利用することで、価格が急落する仕組みを指す。システムプロンプトは最初のターン以降キャッシュされるため、対話が長くなり再利用が増えるほど節約になる。mini 版の音声入力を例に、キャッシュヒット価格と新規価格の差はこうなる。
3モデルの価格全貌
価格はすべて100万トークンあたりで、テキスト・音声・画像の3種に分かれる。タブをクリックして切り替え、mini の列はハイライト済み。
| 音声 / 100万トークンあたり | gpt-realtime-2.1 | 2.1-mini | 前世代 mini |
|---|---|---|---|
| 音声入力 | $32.00 | $10.00 | $10.00 |
| 音声キャッシュ入力 | $0.40 | $0.30 | $0.30 |
| 音声出力 | $64.00 | $20.00 | $20.00 |
| テキスト / 100万トークンあたり | gpt-realtime-2.1 | 2.1-mini | 前世代 mini |
|---|---|---|---|
| テキスト入力 | $4.00 | $0.60 | $0.60 |
| テキストキャッシュ入力 | $0.40 | $0.06 | $0.06 |
| テキスト出力 | $24.00 | $2.40 | $2.40 |
| 画像 / 100万トークンあたり | gpt-realtime-2.1 | 2.1-mini | 前世代 mini |
|---|---|---|---|
| 画像入力 | $5.00 | $0.80 | $0.80 |
| 画像キャッシュ入力 | $0.50 | $0.08 | $0.08 |
どんな用途に向くか
代表的な4つのシーンで、それぞれ推論、ツール呼び出し、認識改善がどう活きるか。
ユーザーが電話で請求額がおかしいと訴える。mini は低強度の推論で問題を判断し、まず lookup_account でアカウントを照会、次に check_invoice で請求書を確認する。各ステップで進捗を口頭で伝えるため、ユーザーは切れたと思わない。
ユーザーが予約を来週火曜に変更したいと言う。モデルは正確な日付を一字一句捉え、まずユーザーに確認してから reschedule 関数を呼び出す。確認済みの値だけをツール呼び出しに使うことで、推測での入力を避ける。
スマホアプリが WebRTC でマイク音声をストリーミングする。mini は1〜2文の短い返答で製品に関する質問に答える。コストが低いため、この機能は高い同時接続数でも運用できる。
作業員がアシスタントに部品番号を記録させる。改善された英数字認識により、「8-3-5-7-1」のようなコードをより正確に捉えられる。モデルはまず読み上げて確認してから実行する。
導入するとどうなるか
最小構成の実装はこうだ:まずサーバー側で短命なクライアント認証情報を発行する(標準の API key はサーバー側に留め、外部に漏れない)。ブラウザはこの短期認証情報を使い、WebRTC で直接接続し、マイクトラックとイベント送受信用のデータチャネルを確立する。
接続方式はシーンによって選ぶ:ブラウザやモバイル端末が直接音声を収録・再生する場合は WebRTC、サーバー側がすでに生の音声ストリームを持っている場合(コールセンター、メディアパイプライン)は WebSocket、電話音声エージェントは SIP を使う。
クリックして最小コード2つを表示(サーバー側の認証情報発行 + ブラウザ側の接続開始)
// Server: mint a short-lived client secret
const r = await fetch("https://api.openai.com/v1/realtime/client_secrets", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.OPENAI_API_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
session: {
type: "realtime",
model: "gpt-realtime-2.1-mini",
instructions: "You are a support agent. Reply in one or two short sentences.",
reasoning: { effort: "low" },
tools: [
{
type: "function",
name: "lookup_account",
description: "Look up a customer account by email.",
parameters: {
type: "object",
properties: { email: { type: "string" } },
required: ["email"]
}
}
],
tool_choice: "auto"
}
})
});
const { value: EPHEMERAL_KEY } = await r.json(); // pass this to the browser
// Browser: connect to the Realtime API over WebRTC
const pc = new RTCPeerConnection();
const audioEl = document.createElement("audio");
audioEl.autoplay = true;
pc.ontrack = (e) => { audioEl.srcObject = e.streams[0]; };
const mic = await navigator.mediaDevices.getUserMedia({ audio: true });
pc.addTrack(mic.getTracks()[0]);
const events = pc.createDataChannel("oai-events");
events.addEventListener("message", (e) => console.log(JSON.parse(e.data)));
const offer = await pc.createOffer();
await pc.setLocalDescription(offer);
const sdp = await fetch("https://api.openai.com/v1/realtime/calls", {
method: "POST",
body: offer.sdp,
headers: {
Authorization: `Bearer ${EPHEMERAL_KEY}`,
"Content-Type": "application/sdp"
}
});
await pc.setRemoteDescription({ type: "answer", sdp: await sdp.text() });
まずは low の推論強度から始め、より難しいタスクに直面したときだけ引き上げる。指示文では固定ルールとデフォルト値を分けて書く。モデルを乗り換える前後には、必ず eval を1回ずつ走らせて比較する。
今回は正式な GA インターフェースであり、ベータ版ではない。エンドユーザーの身元を区別するアプリケーションについては、認証情報発行のリクエストに OpenAI-Safety-Identifier ヘッダー(たとえば内部ユーザー ID のハッシュ値)を付与することを公式が推奨している。これにより、プラットフォームが不正利用を監視する際、アカウント全体を誤って停止するのではなく、特定のユーザーをピンポイントで特定できる。
強みはどこか、限界はどこか
OpenAI 公表の内容に基づく、今回の発表の両面。
- 推論が低価格の mini クラスに搭載された
- 価格は前世代 gpt-realtime-mini と同一、値上げなし
- 全系統で p95 遅延が少なくとも25%低下
- 推論強度を5段階で調整でき、タスクに応じて遅延と深さをトレードオフできる
- 単一モデルの音声パイプラインにより、対話がより自然になる
- 音声はトークン単位で課金されるため、1通話あたりの実コストへの換算が難しい
- 推論強度を上げると、遅延と出力トークンの両方が増える
- 長い会話でコンテキストを繰り返し送信し続けると、削らない限り入力コストが積み上がる
- mini クラスの能力は、完全版 gpt-realtime-2.1 にはまだ及ばない
モデルはまず「今すぐこの注文を調べます」と言ってから、リクエストを処理しつつ話し続けることができる。複数ステップにわたる音声タスクでも、これによって会話の連続性が保たれる。 MarkTechPost、著者 Michal Sutter