OpenAI 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は次世代のユーザーインターフェースです。テキストだけでなく音声で自然に対話できるアプリケーションの可能性は無限大ですよ!

関連記事