音声で質問すると即座に声で返答する——まるで電話のようなAI体験を可能にするのがRealtime APIです。リアルタイム音声AIアプリの作り方を解説します。

AIを知りたい
OpenAIのRealtime APIって何ですか?

AIエンジニア
Realtime APIはリアルタイムの音声会話を実現するAPIです。WebSocketを使って音声の入出力をリアルタイムで処理できます。

AIを知りたい
音声AIアシスタントが作れるってことですか?

AIエンジニア
その通りです!音声認識→AI処理→音声合成をすべてリアルタイムで行えます。遅延も非常に少ないです。
Realtime APIとは
OpenAI Realtime APIとは、WebSocket接続を通じてリアルタイムの音声会話を実現するAPIです。従来の「音声→テキスト→AI→テキスト→音声」のパイプラインを統合し、低遅延の自然な音声対話を可能にします。
Realtime APIの特徴

AIを知りたい
従来の音声AIとの違いは何ですか?

AIエンジニア
大きな違いを比較してみましょう。
| 項目 | 従来の方法 | Realtime API |
|---|---|---|
| 処理フロー | STT→LLM→TTS(3段階) | エンドツーエンド(1段階) |
| 遅延 | 2-5秒 | 300ms以下 |
| 感情表現 | テキスト経由で失われる | 音声のニュアンスを保持 |
| 割り込み | 困難 | 自然な割り込み対応 |
| 接続方式 | REST API | WebSocket |
Realtime APIの基本実装

AIを知りたい
実装方法を教えてください!

AIエンジニア
JavaScriptでのWebSocket接続の例です。
// WebSocket接続
const ws = new WebSocket(
"wss://api.openai.com/v1/realtime?model=gpt-4o-realtime-preview",
{ headers: { "Authorization": `Bearer ${API_KEY}` } }
);
// セッション設定
ws.on("open", () => {
ws.send(JSON.stringify({
type: "session.update",
session: {
modalities: ["text", "audio"],
voice: "alloy",
instructions: "あなたは親切な日本語アシスタントです。",
turn_detection: { type: "server_vad" }
}
}));
});
// 音声データの送信
function sendAudio(audioData) {
ws.send(JSON.stringify({
type: "input_audio_buffer.append",
audio: base64Encode(audioData)
}));
}
// レスポンスの受信
ws.on("message", (data) => {
const event = JSON.parse(data);
if (event.type === "response.audio.delta") {
playAudio(base64Decode(event.delta));
}
});
Realtime APIの活用シーン

AIを知りたい
どんなアプリケーションに使えますか?

AIエンジニア
さまざまなリアルタイム音声アプリに応用できます。
| 活用シーン | 説明 | メリット |
|---|---|---|
| カスタマーサポート | AIによる電話対応 | 24時間対応可能 |
| 語学学習 | AIとの会話練習 | ネイティブレベルの発音 |
| 音声アシスタント | スマートホーム操作 | 自然な対話体験 |
| 面接練習 | 模擬面接AI | フィードバック付き |
| 通訳 | リアルタイム翻訳 | 低遅延で自然 |
料金

AIを知りたい
料金はどうなってますか?

AIエンジニア
通常のAPIより割高ですが、統合ソリューションとして見ればコスパは良いです。
| 項目 | 料金 |
|---|---|
| 音声入力 | $100/百万トークン |
| 音声出力 | $200/百万トークン |
| テキスト入力 | $5/百万トークン |
| テキスト出力 | $20/百万トークン |

AIを知りたい
音声AIって面白そうですね!

AIエンジニア
Realtime APIは次世代のユーザーインターフェースです。テキストだけでなく音声で自然に対話できるアプリケーションの可能性は無限大ですよ!
関連記事
- AI音声モード比較:ChatGPT Voice vs Gemini Live vs Claude
- Gemini Live完全ガイド:Googleの音声AIアシスタントの使い方
- GPT-4o API入門:OpenAI最新モデルの使い方と料金体系
OpenAI Realtime APIに関するよくある質問(FAQ)
Q1. Realtime APIとWebSocketはどういう関係ですか?
Realtime APIはWebSocketプロトコルを通信基盤として使用しています。クライアントはWebSocket接続を確立し、JSON形式のイベント(セッション設定、音声データ送信、テキスト入力など)をやり取りします。従来のREST APIとは異なり、接続が維持されている間はリアルタイムに双方向通信が可能です。ただし、WebSocketの低レベル処理を直接扱う必要はなく、OpenAIが提供するSDKやリファレンスクライアントを使えば、イベントの送受信を抽象化したインターフェースで開発できます。
Q2. 音声の品質はどの程度ですか?
Realtime APIはGPT-4oのネイティブ音声モデルを使用しており、音声→テキスト→テキスト→音声という中間変換を経ないため、イントネーション・感情・テンポを含んだ自然な音声を生成します。入力音声は16kHz/24kHz PCM16またはG.711に対応し、出力音声も同等品質です。複数の音声プリセット(alloy, echo, shimmer等)から選択可能で、用途に応じたトーンを設定できます。レイテンシは数百ミリ秒程度で、人間同士の会話に近いリアルタイム性を実現しています。
Q3. 料金体系はどうなっていますか?
Realtime APIはテキストと音声で別々の料金が設定されています。テキスト入力/出力は通常のGPT-4o料金と同等です。音声については、音声入力(ユーザーの発話)と音声出力(AIの発話)でそれぞれトークン単価が設定されており、音声は1秒あたり約50トークンに相当します。従来の「音声認識API + ChatCompletion API + 音声合成API」を3つ組み合わせるよりも、統合されたRealtime APIの方がトータルコストが安くなるケースが多いです。ただし、接続を長時間維持する場合はセッション単位のコストにも注意が必要です。
Q4. 対応言語は何ですか?
Realtime APIの音声入出力は、GPT-4oが対応する主要言語をサポートしています。英語・日本語・中国語・フランス語・ドイツ語・スペイン語・韓国語など多数の言語で利用可能です。言語間のリアルタイム翻訳(例:日本語で話しかけて英語で応答させる)もシステムプロンプトで指定することで実現できます。ただし、英語以外の言語では音声認識精度や合成音声の自然さに若干の差があり、言語によってはテキストモードの方が安定する場合もあります。
Q5. 通常のChat Completions APIとどう使い分けるべきですか?
Realtime APIは「音声ベースの対話インターフェース」が必要な場合に選択してください。具体的には、音声アシスタント、コールセンター自動応答、リアルタイム通訳、音声対話型教育ツールなどが典型的なユースケースです。一方、テキストベースのチャットボット、バッチ処理、APIバックエンド連携など音声が不要な場面では、従来のChat Completions APIの方がシンプルで低コストです。また、Realtime APIはWebSocket常時接続のためサーバー側の接続管理が必要になる点も考慮してください。「ユーザーが声で話しかけるUI」があるかどうかが判断の分水嶺です。
