Realtime APIとは何か

OpenAI Realtime APIは2024年10月にリリースされた、音声でリアルタイムにGPT-4oと対話するためのAPIだ。これまでのテキストベースのAPIとは根本的に異なり、人間とAIの会話を「音声のストリーム」として処理する。

これにより実現できることは大きく変わる。従来の「テキスト入力→回答テキスト→別ツールで音声変換」という3ステップが、「音声入力→音声出力」のシームレスな1ステップになる。

ChatGPTのボイスモード(Advanced Voice Mode)に搭載されている機能と同じ基盤で、それをAPIとして開発者に提供しているイメージだ。

技術的な仕組み

WebSocketベースの接続

Realtime APIはHTTPではなくWebSocketプロトコルを使う。WebSocketは一度接続を確立すると、サーバーとクライアントが双方向にリアルタイムでデータを送り合える仕組みで、音声ストリームの処理に適している。

接続の流れ:

  1. APIキーを使ってWebSocket接続を確立
  2. セッション設定(使用するモデル、音声の設定、ターン検出の設定など)を送信
  3. 音声データ(PCM16形式)をチャンク単位で送信
  4. AIの応答音声がストリームとして返ってくる

ターン検出

Realtime APIには「いつ話し終わったかを検出する」機能(Voice Activity Detection、VAD)が組み込まれている。人間の話し声の終わりを検出してから応答を生成するため、自然な会話のターンが実現できる。

ターン検出はサーバー側で行う自動モードと、クライアント側で制御する手動モードを選べる。

テキストとツールの統合

音声入力だけでなく、テキスト入力を混在させることもできる。また関数呼び出し(Function Calling)にも対応しており、「音声でAIと話しながら、必要に応じて外部APIを呼び出す」ようなワークフローが作れる。

実装の概要(Node.js例)

基本的な接続と音声送信のコードイメージを示す:

const WebSocket = require('ws');

const ws = new WebSocket(
  'wss://api.openai.com/v1/realtime?model=gpt-4o-realtime-preview',
  {
    headers: {
      'Authorization': `Bearer ${process.env.OPENAI_API_KEY}`,
      'OpenAI-Beta': 'realtime=v1'
    }
  }
);

ws.on('open', () => {
  // セッション設定を送信
  ws.send(JSON.stringify({
    type: 'session.update',
    session: {
      modalities: ['text', 'audio'],
      voice: 'alloy',
      input_audio_format: 'pcm16',
      output_audio_format: 'pcm16',
      turn_detection: { type: 'server_vad' }
    }
  }));
});

// 音声データを送信する関数
function sendAudioChunk(audioBuffer) {
  ws.send(JSON.stringify({
    type: 'input_audio_buffer.append',
    audio: audioBuffer.toString('base64')
  }));
}

実際の実装では音声の取得(マイク入力またはファイル)、PCM16への変換、エラーハンドリング、応答音声の再生処理が加わる。

価格

2025年時点の料金は:

  • 音声入力: $100/時間($0.06/分)
  • 音声出力: $200/時間($0.24/分)
  • テキスト入力/出力: 通常のGPT-4oと同程度

これは会話が長くなると積み上がるコストで、カスタマーサポートへの大規模導入では事前にコスト試算が重要だ。

活用できるユースケース

カスタマーサポートの音声自動化

電話問い合わせの一次対応をAI音声で行うシステム。既存のIVR(音声自動応答)よりもはるかに自然な会話ができ、FAQへの回答や情報収集を自律的に行える。複雑な問い合わせは人間オペレーターに転送する設計と組み合わせる。

音声インターフェースのアプリ

画面を見ながら操作できないシーン(料理中・運転中・運動中)でのAIアシスタント。スマートスピーカーのような体験を独自アプリに組み込める。

語学学習

ネイティブスピーカーとの会話練習を模した音声対話アプリ。リアルタイムのフィードバックと自然な会話速度を実現できる。

インタラクティブなデモ・展示

展示会・ショールームで来場者が音声で商品説明を聞けるシステム。キッチン用品の展示で「このオーブンの特徴を教えて」と声で聞ける体験を作れる。

実装の注意点

ブラウザから直接Realtime APIを呼ぶとAPIキーが露出するリスクがある。本番環境ではサーバー側でWebSocket接続を確立し、クライアントはサーバー経由で通信する設計が安全だ。

レイテンシー(遅延)は接続地域とネットワーク品質に依存する。日本からのアクセスでは100〜300ms程度の遅延が出ることがあり、体験の設計時に考慮が必要だ。

まとめ

OpenAI Realtime APIは「音声AIアプリを自前で作る」ための強力な基盤だ。WebSocketとPCM16音声の扱いに慣れれば、かなり自由度の高い音声体験を実装できる。

カスタマーサポートの音声自動化やインタラクティブな音声デモへの応用は、特にBtoC事業者にとって検討価値が高い。まず公式のサンプルコードで動作を確認してから、自社ユースケースへの適用可能性を判断するのが現実的なアプローチだ。