OpenAIは2024年10月1日、「Realtime API」のパブリックベータ版をリリースした。
これは、音声とテキストを組み合わせ、GPT-4oとほぼ遅延なしの自然な会話ができるツールだ。
あまりにも自然な会話が可能で世間を驚かせたChatGPTの「Advanced Voice Mode」が、誰でも自分のアプリに埋め込むことができるAPIとして登場したのだ。
本記事では、Realtime APIの概要を紹介するとともに、実際にRealtime APIを使って、GPT-4oを英会話講師として使う方法を紹介する。
まだChatGPTのAdvanced Voice Modeを試していない人も、Realtime APIなら月額料金不要で、従量課金で少しだけ試すことができるので、ぜひGPT-4oの進化を体感してみてほしい。
Realtime APIの概要とすごさ
基本的に、ChatGPTに実装されている「高度な音声モード」と同様のスペックだが、Realtime APIの主な特徴は次の通りだ:
- ほぼラグのない音声対話:GPT-4oモデル一つで音声の入出力を処理することで高速化。リアルタイムで入出力をストリーミングすることで自然な会話が可能。
- 割り込み処理:ChatGPTの「高度な音声モード」と同様に、会話の中断に自動的に対応。
- 関数呼び出し:外部のAPIを呼び出して天気や株価の情報を取得することも可能。
従来のAIとの音声による会話では、「ユーザーの声→Whisperなどの音声認識モデル→GPT-4などのテキスト生成モデル→Text-to-Speech音声合成モデル→AIの発話」と、各ステップに個別のAIモデルが介入しており、遅延が大きかった。
Realtime APIは、一つのモデルでテキスト・音声など複数の形式に対応できるGPT-4oモデルを用いることで、処理プロセスを大幅に簡略化し、さらに入出力をリアルタイムでストリーミングすることで、自然な会話が可能となっている。
会話の中断を自動的に処理する機能も備えており、ほぼ人間と話しているような体感が得られる。
Realtime APIを誰でも簡単に使ってみる方法
Realtime APIは、通常、アプリやWebサービスに組み込んで使用するものなので、プログラミングの知識がないユーザーにとってはハードルが高い。
しかし、OpenAIの開発者向けのサイトにある「Playground」というページでは、とても分かりやすいインターフェースで、「Realtime API」を誰でも簡単に試すことができる。
APIは、使用量に応じた従量課金なので、まずはOpenAIのAPIサービスに会員登録をして、数ドルで良いので利用料金をチャージしておく必要がある。
会員登録やAPIキーの発行方法を知りたい人は、当サイトの以下の記事を参考にしてほしい。
APIアカウントが準備できたら、OpenAIの開発者向けのプラットフォームにアクセスし、画面右上のメニューから「Playground」を選択する。
すると、Chat, Realtimeなどの選択肢が現れるので、「Realtime」を選択する。
ここで、ブラウザのマイク入力を有効化すれば、早速Realtime APIとの会話を試すことができる。
ChatGPT Plus 対 Realtime API のコスパ比較
ちなみに、利用料金の面から見て、ChatGPT Plusで利用できる「高度な音声モード」を使う場合と、「Realtime API」をPlaygroundで使う場合で、どちらがお得なのだろうか。
Realtime APIの価格設定は、次の通りである:
- テキスト入力:100万トークンあたり5ドル
- テキスト出力:100万トークンあたり20ドル
- 音声入力:100万トークンあたり100ドル(約0.06ドル/分)
- 音声出力:100万トークンあたり200ドル(約0.24ドル/分)
特に音声の出力にかかる費用が高いため、使いすぎるとRealtime APIはChatGPTの月額利用料金の20ドルを超えてしまう可能性がある。
例えば、月に1時間の音声会話を行う場合、Realtime APIではざっくり18ドル(入力 0.06ドル * 60分 + 出力 0.24ドル * 60分)の費用がかかるが、ChatGPT Plusであれば、定額20ドルで無制限に使用できる。
テキストモデルと比べると料金が高めであるため、まだ大規模にコールセンターをRealtime APIで置き換えられるほどではないかもしれない。
(悲しいことに、1時間話す場合の時給は、人間の方が安いかもしれない)
まだベータ版であり、この先どんどんコストダウンが進めば、世の中のあらゆる場面にGPT-4oを使ったアシスタントが顔を出しそうだ。
アプリケーションの開発者でない場合で、ChatGPTに20ドル払うほどではないが、「高度な音声モード」をちょっとだけ体感してみたい・・・という人は、1ヶ月あたり1時間以内に収めるようにしつつ、Realtime APIを試す方がお得感がある。
Realtime APIを使ってGPT-4oを英会話講師にしてみた
それでは実際にOpenAIのPlayground上で、Realtime APIを通してGPT-4oと会話をしてみる。
Playgroundのインターフェースでは、「System Instructions」を編集可能であり、ここに「どのように会話してほしいか」を指示しておけば、その通りにモデルの挙動をコントロールできる。
今回は、英会話講師として働いてほしいので、以下のようなシステムプロンプトを与えた。
あなたは英会話の講師です。生徒と日常会話をしながら、生徒のスピーキング能力の向上を促します。新しいトピックの提案を求められたら、全く異なるテーマで3つのトピックを提案してください。また、生徒の発言を受けたら、まず最初に文法の誤りの指摘とより適切な表現の紹介をした上で、生徒の発言へのリアクションを行なってください。常に会話が継続するように、発言は質問で終わってください。
その上で、画面下部にある緑色のボタン「Start session」をクリックすれば、直ちに録音が始まり、発言をすることができる。
英語で発言をしてみると、直ちにAPIから音声の回答が返ってきて、本当に人間と会話をしているような体験ができた。
上記のシステムプロンプトの通り、新しいトピックを提案してくれと言ったら、3つの会話トピックを提案してくれている。
また、こちらの発言に対して、発音や文法的な注意点を適切に指摘してくれた。
この間、常に録音しっぱなしになっており、特にユーザーが録音を停止したり再開したりする必要はない。人間が話すのをやめれば、勝手にAIが返事をしてくれる。
会話を止めるには、画面下部の「X」ボタンを押して録音を停止した後、「Clear」ボタンを押してスレッドをリセットする必要がある。
なお、Realtime APIでは、あらかじめ外部のAPIを呼び出す関数などを定義しておけば、AIに会話の途中で外部の情報から取って来させることも可能である。
Playgroundでは、ツールの実装はできず、あくまでサンプルとしての関数呼び出しのシミュレーションになるが、例えば天気予報を取得する関数を以下のように追加できる。
会話の途中で、この場所の天気を教えて、といってみると、先ほど定義したget_weather()
関数を正しく呼び出してくれている。
例えば、会社のコールセンターをRealtime APIで実装し、必要な情報を社内のマニュアルやデータベースから取得する関数を組み込んだAIオペレーターの構築など、幅広い実用シナリオが容易に想像できる。
Realtime APIの技術的詳細
Realtime APIは、WebSocketを使用して、ユーザー側とOpenAIのサーバー側の双方向の接続を確立している。
WebSocketは、ウェブブラウザとサーバー間でリアルタイムの双方向通信を可能にするプロトコルである。通常のHTTP通信と異なり、一度接続を確立すると、クライアントとサーバーが自由にデータを送受信できる。
Realtime APIでは、このWebSocket技術を使用することで、音声データを連続的にストリーミングし、録音の停止や再開といった操作すらなく、AIとの低遅延の音声対話を実現している。
アプリやWebサービスの開発者は、Realtime APIだけ利用しておけば、音声認識、テキスト生成、音声合成をオールインワンで叶えることができるので、開発の手間を大幅に削減できる。
また、音声認識+LLM+音声合成など複数のモデルを組み合わせる従来の方法と比較して、感情やニュアンスの損失を最小限に抑え、より自然な会話体験を提供できて一石二鳥だ。
また、公式アナウンスによれば、OpenAIのPythonおよびNode.jsのSDKに、Realtime APIのサポートを統合する予定だという。
SDK(Software Development Kit)は、アプリケーション開発を支援するツールやライブラリの集合を指す。APIとの連携に必要な基本的な機能が予め実装されることで、簡単に音声対話機能をPythonアプリなどに組み込むことが可能になるということだ。
これにより、多様な分野での革新的なアプリケーション開発が促進されることが期待される。
遅延のないマルチモーダルなAIが普及する未来
OpenAIによるRealtime API発表時の公式アナウンスの中で、今後もRealtime APIの機能をさらに拡張する計画が記載されている。
今後追加される予定の主な機能は以下の通りである:
- 追加モダリティ: 画像の読み込みや、ビデオの読み込みもサポート
- レートリミットの緩和: 同時に進行できるセッションの数に制限などがあるが、これも緩和
- 公式SDK対応: OpenAIのPythonおよびNode.jsのSDKに、Realtime APIのサポートを統合
- プロンプトキャッシング: システムプロンプトや以前と同じ内容の会話など、繰り返しのプロンプトを割引価格で処理
- モデルサポートの拡大: 現在はGPT-4oのみだが、GPT-4o miniもサポートされる
特に楽しみなのは、画像の読み込みやビデオの読み込みが有効になることだ。
ChatGPTの「高度な音声モード」にも同様のことが言えるが、もしビデオやスクリーンキャプチャ映像の読み込みがサポートされれば、自分のPC上で作業中のドキュメントや表計算シートをAIに一緒に見てもらいつつ共同作業をしたり、視覚障害のある人がAIに周囲の状況を解説してもらったり、夢のような未来が訪れそうだ。
また、プロンプトキャッシングの導入や、GPT-4o miniなどのより安価なモデルでの利用が可能になることで、より低コストに、より大規模に、双方向の音声対話アプリケーションの開発が可能になるだろう。
あと数年のうちに、企業のコールセンターに電話をした時の、不自然な機械音声から私たちは解放されるに違いない。また、学校や塾や家庭教師といった教育産業も、AIに勉強を見てもらうことが当たり前になり、大きく様変わりしてしまいそうだ。
教育、翻訳、カスタマーサービス、あるいは障害のある人へのアクセシビリティなど、幅広い分野で大きな変化がここ数年のうちに起きるのではと期待が高まる。
Realtime APIを触ってみて、その可能性の片鱗に触れてみて欲しい。