🦔

OpenAIのrealtime apiを使ってchatGPTでサンプルコードを書かせてみました。

2024/10/12に公開

はじめに

LLMのAPIを使って、会話プラス動作ロボットを作っているのですが、今回のrealtime apiはまさに求めていた機能という感じです。
どうしても今までは、
1 音声入力
2 文字起こし
3 文字情報でLLMに送信
4 テキストで応答を受信
5 テキストの読み上げ
という作業が一度にできるようになり、ターン毎の会話ではなく人の話を遮って会話するみたいなことも可能になったので、よりリアルな会話ができるようになるようです。

ということで使ってみようと思ったのですが、まだ世の中に情報が少ないのとリファレンスを読んでコードを書くとかなり大変ということもあり、極力AIのみでコードを書かせようと思いました。

方法

ChatGPT plusは使っています。

方法は、以下です。

  • 最初の指示はちょっと難しいのo1-previewにベースとなるプログラムを作成してもらう。
  • OpenAIのrealtime apiは最近発表されたためo1-previewに知識がないのでrealtime apiのリファレンスページをコピーして、プロンプト内に記載
  • ベースのプログラムを作ってもらった後は、細かいやりとりになるためgpt-4oで実施

チャット履歴
https://chatgpt.com/share/6708cf4d-6f20-8012-aabc-a5ce6f802eaf

方針:
基本的には人間は考えずに、
・「なになにが動いていません。」
・「どこの動作がおかしいです。」
・こんなエラーが出ています。
ということのみを入力

結果

とりあえず、会話が出来るプログラムは動きました。
どうもfunction callingはうまく動いていないようで、会話の内容から別の処理を動かすというところまでは実装出来ていないようです。
プロンプトの問題か、APIの処理の問題かはまだ分かっていません。

自分自身Pythonのマルチスレッドの処理があまり理解出来ていないので、処理を追いかけられていない状況です。(デバック実行のステップ処理で追いかけられず。。)

https://github.com/saotomryo/sample_realtime_api

なお、OpenAIのrealtime apiを使いますが、利用料は結構高イノでご注意ください。
タイムアウトは設けていますが、立ち上げっぱなしにしておくとかなり高額になると思います。

料金は、音声だとインプットが6セント/分、アウトプットが24セント/分ぐらいになるそうです。

動作内容

音声で会話しているので、動画の絵はあんまり意味ないです。
https://youtu.be/Td0BT4XFpY0?si=OamT2T_yvTxTNxyj

終わりに

新しいライブラリーを使う時は、誰かが解説してくれたページを見ながら処理を作成していくことが多いですが、それを自分の使いたい用途に変更していくのも自分のスキルではまだ大変だったりします。

リファレンスを直接参照させて、自分のやりたいコードのベースを書かせてそこからブラッシュアップさせていくことでかなり短時間で最新のAPIを動かすことができました。

特に「マルチスレッド」や「音声データの扱い」などは、普段使っていなかったので調べながら作成していくとかなり時間がかかります。

また、今回はかなり機械的に作成したので、AIエージェントで自動化できる範囲かなと思っています。
(多少人の介入は必要としても。。。)

Function Callingが上手く動くようになれば、ラズパイへの実装を行なっていきたいと思います。
(マルチスレッドで、リアルタイムで音声処理なのでラズパイ3の2GBだと難しいかな。。)

Discussion