見出し画像

今後のGPT-4oの音声機能に備えて通話可能なDiscordへ移植!

GPT-4oの特徴としては、音声認識機能だと思うのでリアルタイムに通話できるようなプラットフォームにしないと新機能が楽しめないのでは?
ということで、息子から教えてもらったDiscordのボットに移植してみた。
LINE版 KingjoeBotと比較すると、AIはGPTのみだし、画像生成はDALL-E3のみ。

プラットフォーム選び

これまでGoogle Cloud Functionsを使ってLINE BOTを作ってきましたが、Discordはサーバとして稼働するようなので、Google Cloud Platformを使うとなると、Compute EngineかApp Engineを使う必要が出てきた。
Compute Engineだと単なる仮想サーバなので新鮮味がないので、ここは使ったことがないApp Engineを使ってみた。。。が、高かった。リーマンの小遣いでは厳しい。ということで、おもちゃ箱に眠っていたRasberry PIをたたき起こしてミニサーバで構築した。

フレームワーク選び

discordはdiscord.pyというライブラリを使って実装するのが一般的(?)らしいので、いくつかの記事を参考にしつつ、GPT-4oに質問を重ねながら約1日かけて実装。

一応動いた。

LINE BOTの時のようにダイレクトメッセージに加えて、LINE BOTの時は実装していなかったテキストチャネルでのメッセージ交換(LINEのグループチャットみたいなやつ?)、ボイスチャネルでの発言(※)を実装。

Discordでの応答を示した画像が↓なのですが、LINEより見栄えが良い。GPTが応答に使っているMarkdown記法を読み解いてくれて、装飾して画面に出力されます。最近はプログラムコードのことをよく聞くので非常に助かる。
また、LINEだと5000文字の制限があるので、いったんHTMLなどに保存してそのリンクを返す風にしないとダメだったけれど、Discordは分割して送信できるので少々長めのテキストでもしっかり応答できるし、見やすい。

音声チャネルに接続して、発音できることは確認した。こちらの声を「聞く」部分が実装できていない。LINEと違って、通話モードでの接続なのでボットから発音ができるのが良い。GPT-4oの発表でも言っていたけれど、反応速度が大事。いちいち音声ファイルをダウンロードして再生っていうステップが飛ばせるので良い。まだ、通話のアルゴリズムがいまいちピント来ないので、GPT-4oの音声APIが解放されるまでには、一通り習得せねば。。。

DALL-E3使った画像生成

一応、実装してみた。LINE BOTと同様にテキストAIが画像生成プロンプトの補助をする形を採用してできたのがこちら!

この記事が気に入ったらサポートをしてみませんか?