OpenAI が GPT-Realtime-2.1 と GPT-Realtime-2.1-mini のリアルタイム音声モデルを発表:mini モデルが推論能力を獲得、レイテンシは25%減
- OpenAI は API に2つの新しい Realtime モデルを同時発表した:gpt-realtime-2.1 と gpt-realtime-2.1-mini。どちらも低レイテンシの音声・マルチモーダル用途向け
- gpt-realtime-2.1-mini は、mini の価格帯で初めて「推論できる」リアルタイム音声モデルになった。価格は前世代の gpt-realtime-mini とまったく同じ
- 両モデルとも推論強度を設定可能で、計5段階(minimal / low / medium / high / xhigh)。デフォルトは low でレイテンシを抑える
- キャッシュの最適化により、Realtime 音声モデル全体で最も遅いリクエスト群の応答時間が少なくとも25%短縮。mini 版はキャッシュヒットした音声入力の価格が100万トークンあたり10ドルから0.30ドルに下落
- gpt-realtime-2.1 は前世代より英数字認識・無音とノイズ処理・割り込み挙動が改善。mini 版の音声出力価格はフル版のおよそ3分の1($20 対 $64)
OpenAI が今回発表したもの
OpenAI は先日、API に2つの新しい 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)に対応したので、先に一手先を計画してから関数を呼び出し、その上で答えを返せるようになった。
口頭での予告が、無言を「話しながら進める」に変える。モデルはまず「今すぐ確認しますね」と一言添えてから、リクエストを処理しつつ話し続けられる。ユーザーはずっと声が聞こえているので切れたと誤解することはなく、複数ステップの音声タスクも一貫性を保てる。
さらに重要なのは価格だ:mini 版は推論が新たに加わったのに、価格は前世代の gpt-realtime-mini とまったく同じに保たれている。コストに敏感な音声アプリケーションが、追加コストなしで推論とツール呼び出しを使えるのは今回が初めてだ。
ツールを伴う一連の対話を分解すると、時系列はこうなる:
推論強度は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 は一言二言の短い返答で製品に関する質問に答え、コストが低いのでこの機能は高い並行度で動かせる。
技術者がアシスタントに部品番号を記録させる。改良された英数字認識により、「8-3-5-7-1」のようなコードをより正確に捉えられる。モデルはまず読み返して確認してから実行する。
導入するとどうなるか
最小構成の実装はこうだ:まずサーバー側が短命なクライアント認証情報を発行する(標準の API キーはサーバー側に留めて外部に漏らさない)。ブラウザはこの短期認証情報を使い、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 を走らせて比較する。
今回は正式な GA インターフェースで、beta 版ではない。アプリがエンドユーザーの身元を区別する場合、公式は認証情報発行リクエストに OpenAI-Safety-Identifier ヘッダー(内部ユーザー ID のハッシュ値など)を付けることを推奨している。プラットフォームが不正利用を監視する際、アカウント全体を誤って凍結するのではなく、特定のユーザーを正確に特定できるようにするためだ。
強みはどこにあり、限界はどこにあるか
OpenAI が公表した内容に基づく、今回の発表の両面:
- 推論が低価格の mini クラスまで降りてきた
- 価格は前世代の gpt-realtime-mini と同じで、値上げなし
- 全モデルの p95 レイテンシが少なくとも25%減
- 推論強度は5段階で調整可能、タスクに応じてレイテンシと深さをトレードオフできる
- 単一モデルの音声パイプラインにより、対話がより自然に
- 音声はトークン課金のため、1回の通話あたりの実コストに換算しにくい
- 推論強度を上げると、レイテンシと出力トークンがともに増える
- 長い会話でコンテキストを繰り返し送り直すと、削らない限り入力コストが積み上がる
- mini クラスの能力はフル版の gpt-realtime-2.1 にはまだ及ばない
モデルはまず「今すぐこの注文を確認します」と一言添えてから、リクエストを処理しながら話し続けられる。複数ステップの音声タスクは、これによって一貫性を保つ。 MarkTechPost、著者 Michal Sutter
音声アシスタントが何かを調べる時:「突然の無言、切れたと誤解される」→「まず"今すぐ確認します"と言い、話しながら進める」へ
OpenAI が2つの新しい音声モデルを発表:AI が電話でツールを呼び出す時にもう気まずくならなくなり、「推論できる」を初めて最安クラスに搭載した。1枚の図で読み切れる。
↓ 1枚で読み切る · 動く図つき
まずこれが何かを説明する。Realtime API は、OpenAI が用意した、AI が電話のように音声でリアルタイムに会話できるインターフェースだ。今回一気に2つの新しい音声モデルを発表した。だがこの手の音声アシスタントには、もともと長年の問題があった。
✘ でも何かを調べさせる(ツール呼び出し、例えばアカウントや注文の確認)と、突然黙り込んでしまう
裏側では実際に検索処理をしているのに、まったく声を出さない。ユーザーは電話が切れたと思い、声で割り込むかそのまま切ってしまう。結局中途半端な結果しか得られず、かけ直す羽目になる。
今回の変化:モデルに「まず考えてから話す」を覚えさせ、しかも調べながら話し続けられるようにした。開口一番「今すぐ確認します」と一言添える。ユーザーはずっと声が聞こえるので、切れたと誤解することはない。
アシスタント:……(裏で検索中、無言)
ユーザー:もしもし?まだいる?、切られる
アシスタント:はい、今すぐ確認しますね
アシスタント:(調べながら話す)見つかりました、6月3日のあの注文です…
なぜ調べながら話しても混乱しないのか?それを支えるのが新たに加わった「推論」だ。この一連の流れがどんな形か、下の図を見てほしい。
推論(reasoning)とは、モデルが話し始める前に頭の中でひとしきり考えることだ:この一言にどう応じるか、ツールを呼んで調べるべきか。考えがまとまったら、まず口頭で予告してから動き出す。以下では、小互が電話で注文を確認するシーンを使って、新旧2つの流れを並べて見てみよう。
同じ注文確認のリクエストで、旧方式は「ツール呼び出し」中ずっと無言になり、ユーザーは切れたと思って割り込み、結果は中途半端に終わる。新方式はまず「今すぐ確認します」と一言添え、話しながら進めて最後までやり遂げる。
考える時間が長いほど周到になるが、その分遅くもなる。推論は5段階(minimal / low / medium / high / xhigh)に分かれ、デフォルトでは最速で事足りる low を使い、より難しいタスクに出会った時だけ引き上げる。
普通の人には「何倍速くなったか」と言われてもピンとこない。お金に換算するのが一番わかりやすい。同じ100万トークン(おおまかに文字・語数の量と捉えていい)の音声入力でも、キャッシュなしなら10ドル、「キャッシュヒット」(対話が続く際、以前計算済みの部分をそのまま再利用し、計算し直さない)なら0.3ドルで済む。
mini 版
価格は据え置き
- × 音声はトークン課金で、1回の通話の実コストに換算しにくい
- × 推論を上げすぎると、逆により遅く高くなる
- × mini の能力はまだフル版に及ばない
