美少女と一緒に開発しようぜ!!【Open Interpreter】
こんにちは、ニケです。
皆さん、休日返上で個人開発に打ち込んでいますでしょうか?
今回は、私が個人活動としてメインで開発している美少女OPInterpreterのソースコード(簡易版)を公開したので、使い方を説明します。
下記の手順を順番に実行してもらえれば、この動画のようなことはできるようになっているはずです。
普段開発している方であれば、フロントとサーバーのリポジトリをクローンしていくつかコマンドを実行すればいいだけなので、かなり簡単だと思います。
非エンジニアの方でも実行できるように説明していきますので、臆せず読み進めてみてください(途中ChatGPT頼りあり)。
Windows、Mac、Linuxで動作確認済みです。
フロントApp
フロントUIにはpixiv社のChatVRMを改造して使わせてもらっています。
ChatVRM
ChatVRMは、ブラウザで簡単に3Dキャラクター(VRM)と会話ができるアプリです。
OpenAI APIキー と koeiromap APIキー を設定することで、誰でも簡単にGPTベースの対話を3Dキャラと楽しむことができます。
デモ版もあるので、試すだけなら特に環境を用意する必要が無いのは嬉しいですね。
また、キャラクターモデルにVRMを使用しているため、キャラの変更も容易です。
VRoid Studioというソフト(無料あり)で自分だけのキャラを作成することが可能です。操作もよくあるゲームのキャラクタークリエイト感覚でできるため、小一時間もあればオリジナルキャラを用意できるでしょう(沼ったら一瞬で数時間溶けます)。
音声にはKoeiromap(無料あり)を使用しているため、声もある程度自分の好きなように設定できます。
準備
まずは下記のリポジトリをクローンするか、ダウンロードしてください。
対象のフォルダに移動し、パッケージをインストールします。
cd nike-ChatVRM
npm install
しばらく待って、パッケージインストールが完了したらサーバーを立ち上げます。
npm run dev
はい、これで完了です。この状態で localhost:3000 にアクセスしましょう。設定画面とその後ろに女の子が表示されていたら成功です。
npmコマンドが使えないよ、みたいなエラーメッセージが出たらChatGPTに聞きましょう。すごく丁寧に教えてくれます。
設定解説
最初に表示された設定画面で、Koeiromap APIキー と OpenAI APIキーを入力してください。それぞれのキーの取得方法はこの画面に記載されているURLから確認してください。
なお、後述のサーバーAppと連携する場合は、OpenAI APIキーはここで入力する必要はありません。OpenAIとのやり取りはサーバー側で実行するためです。
よくわからない方はとりあえず入力しておいてもらえれば大丈夫です。
この画面で入力しなくても、この左上の「歯車マーク」から入力することができます。
では、この「歯車マーク」ボタンを押してください。
言語設定で日本語か英語を選択できます。
※ 英語を選択した場合は、サーバー側の.envファイルに `LANGUAGE=English` と設定してください。連携できてなくてすみません。
外部連携モードをONにすると、サーバーからWebSocketを受付する状態になります。オリジナルのChatVRMにはないモードです。
OFFにすると通常のChatVRMと同じ挙動を取ります。
OpenAI APIキーを設定できます。先程の画面で設定し忘れたり、やっぱりキーを変更したい場合などに使用してください。外部連携モードがONの場合は設定不要です(非表示になります)。
キャラクターモデルで自分で用意したVRMモデルを設定することが出来ます。前述したVRoid Studioで渾身のモデルを作成しておきましょう。
キャラクター設定ではキャラの口調などを決められますが、外部連携モードがONの場合は対応していないので設定不要です(非表示になります)。
合成音声エンジンの選択では、KoeiromapかGoogle Cloud Text-to-Speechのどちらかを選択できます。Koeiromapは日本語しか対応していないので、別の言語を使用する場合は『Google TTSを使用する』を選択しましょう。
声の調整では好きな声を指定できます。
Koeiromapを選択した場合
プリセット以外にも、x, yを少し動かすだけで色々な声を確認できるので、自分の好みの声を探し当てましょう。
Google TTSを選択している場合
お好みの音声を画像のURLから選択して設定してください。認証用のJSONファイルを取得するのをお忘れずに。
会話履歴は自身とAIキャラの会話歴です。会話履歴をある程度記憶したように話すので、新しい話題をしたい場合は会話履歴リセットを押しましょう。
なお、会話履歴リセットは外部連携モードがONの場合は未対応です。これは履歴がサーバー側に保存されているためで、UIからは履歴が見えなくなりますが、実際は記憶しています。
大体このような感じですが、とりあえず美少女 x Open Intepreterを試したいだけなら、外部連携モードがONで、Koeiromap APIキーが設定されていたらその他はデフォルトのままで大丈夫です。
サーバーApp
Open Intepreter
Open Interpreterは、ChatGPTに搭載されているAdvanced Data Analysis(旧 Code Interpreter)のOSS版みたいな感じのものです。最近はあまり見かけませんが、登場から1ヶ月くらいはずっとTwitterで見かけるほどには話題だったと思います。
詳細な使い方などは下記の界隈でも有名な方々の記事が参考になると思います。
準備
下記にまとめていますので詳細に知りたい方はこちらを参考にしてください。
最低限の説明をすると、下記のリポジトリをクローン or ダウンロードし、
.envにOPENAI_API_KEYを設定したあと、次のコマンドを実行してください。
docker-compose up -d --build
docker-compose コマンドを使用しているので、こちらも実行時にエラーが出た場合はChatGPTに聞いて解決しましょう。そこまで難しくないと思います。
使い方
フロントAppを起動し(npm run dev)、もろもろ好みの設定をした上で外部連携モードがONにしてください。再度言いますが、Koeiromap APIキー(または Google TTS の 認証用JSONファイル)は必須です。
この状態でサーバーAppを起動(docker-compose up -d --build)してください。
はい、これで使えるようになったと思います。
下の入力フォームから適当な依頼をしてみましょう。マイクボタンを押せば音声入力も対応しています。
動きましたね!!
課題
試してもらうとわかると思いますが、実用性はほぼ無いことに気づくと思います()
一応マイク認識もできるので音声対話しながらコードを書いてもらうことは出来ますが、ぶっちゃけChatGPTのほうが使いやすいです。
これは1か月前に美少女OPInterpreterを公開したときからの私の課題でもあります。
いま改良案をいろいろ考えているので、実装次第これからも進捗公開を続けていきたいと思っています。
既知の不具合など
文章が長い場合、Koeiromapの文字列上限を超えてしまい音声が再生されないことがあります。気になる場合は有料版を使用するか、GoogleTTSを使ってみてください。自力でコードを追加する必要がありますが、VOICEVOXは個人的にオススメです。
キャラクターに個性・性格を設定することができません。
Live2Dモデルには対応していません。私の動画ではLive2Dモデルが動いていますが、かなり無理やり実装しているので動作不安定で公開できるレベルに無いためです。
おまけ
今後も進捗はYoutubeで公開していきますので、チャンネル登録してもらえると嬉しいです🙇♀
不具合を見つけたらTwitterからDMでこっそり教えてください!!
この記事が気に入ったらサポートをしてみませんか?