Midnight Note

明日はどこまで行こうか

おもしれー女と話そう ChatGPTとVOICEVOXで実現する彼女

あー彼女作りてえ!
作るか!!!!!

作りたい女

「ボイボのおもしれー女」と呼ばれている女がいる。
「雪さん」ことWhiteCULである。

www.whitecul.com

dic.nicovideo.jp
クールビューティーな見た目に反し、喋り方がおもろすぎるせいで雪さんを使った動画はだいたい全部おもしろくなる。

www.nicovideo.jp

VOICEVOXは有名な「ずんだもん」をはじめとして様々なキャラクターを商用利用可の条件で提供してくれている、ずいぶんと太っ腹な音声合成ソフトである。

VOICEVOXのクソおもしれー女だから「ボイボのおもしれー女」である。

……さて。
男に生まれたからには、否、人として生まれたからには誰でも一生のうち一度は夢見ることがある。

「好きなキャラと話したい」である。
男だって女だってそれを夢見ぬ人などいない。そうだろ?

かつてシーマンというゲームがあった。

ja.wikipedia.org

謎の気色悪い人面魚と会話するゲームである。
セガは未来に生きていた。

気色悪い人面魚と話すことすら楽しいのだから、好きなキャラと話したらもっと楽しいに決まってるだろ!
(イメージ)


ということで、作った。

人 体 錬 成

www.youtube.com

自分の声聞くの拷問やね。
初めてYouTubeにアップロードしました。

技術的な話

ここからはちょっとマニアックな話が出てくるので、興味ある人だけ読んでください。
興味がない人は「今後の展望」まで飛ばしてね。

アイデアは頭にあったので筆者の専属秘書であるオタクに優しいギャル(を演じているChatGPT)にまずシーケンス図を作ってもらった。

あ、もうこれゴールやんけ。
ほぼ完成品のブツが出てきた。
あとは実装するだけである。

まずは適当なReactプロジェクトを立ち上げ、react-speech-recognitionでサクッと発話内容をテキスト化。
単純なコードでハッピー。……なのに動かない。
ソースコードは完璧なはずなのに!なんでだ!?
……Chromeの設定でちゃんと外部マイク認識してませんでした。
こういうのあるあるだよね。

次にサクッとローカルでサーバサイド開発開始。
TSで書くかPythonで書くか悩んだけど複雑なライブラリ使うわけでもないし、今後速度チューニングもしないといけないかもだからTSを選定。
使ったこと無いけどfastifyを使ってみる。

んで、ChatGPTのAPIをcallしてみる。
なんかほぼ呼んでないのに429出るんですけど。
あ、課金必要?とりあえず5ドル投入。
……あ、動くようになった。

次にローカルでVOICEVOX立ち上げて、そしたらローカルでAPIサーバ立ち上がってくれるから色々参考にしつつChatGPTのレスポンスをローカルAPI経由で変換する仕組みを作る。
正直ほぼほぼオタクに優しいギャルの秘書が作ってくれました。

あとはみんな大好きmoiky様のWhiteCul立ち絵をお借りする。

seiga.nicovideo.jpブラウザのボタンをクリックすると同時に画像が切り替わりつつブラウザがListening状態になるようにして、あとはちまちまアニメーションをいじったり重複してAPIをcallしないよう調節したり。

ここもほぼほぼオタクに優しいギャルの秘書が作ってくれました。*1
お前本当に凄いな。

今後の展望

ChatGPTのレスポンスに応じて抑揚を変えたり、好感度を可視化したり、好きなキャラを選べるようにしたり、会話を自然にしたり。
無限に展望はある。
それよりも決めたいのが「どうやってこれ公開するか」なんだよね……

ソースコードは公開しても良いんだけど、起動とかインストールには専門の知識が必要だし。いきなり「Gitをインストールして、cloneしてね」って言われても人選ぶでしょうし。
有償のサブスクリプションにして本当に恋愛ゲーム的なものを作っても良いかもとは思ってるんだけど、VOICEVOXの思想にそぐわない気がする。技術的な障壁もあるし。
やるにしても投げ銭システムくらいかな。

そもそも、さ。
やっぱみんな雪さんと話したいやろ?な?

公開方法考えつつ、どんどん開発進めよっかな。
ということでコメントでお気軽にご意見ください。

ではまた。

余談

実は4月から筆者は無職です。
というか厳密に言えばフリーランスなんだけど案件が3月で終わりまして、4月はお休みしつつ引っ越したりツーリングしたりする予定です。

6時間で↑のやつくらいなら作れるヤツ*2なので、5月から水上を使うことに興味がある方がいらっしゃったらぜひご連絡ください。
これまでに色々おもしれー経験は積んでます。

……無職なのに車とバイク持ってるせいで借金が大変なんです!誰か助けてください!!

xはあまり見てないので、ご興味ある方はmistiroom☆gmail.com(☆を@に変えてください)までご連絡ください。

参考文献等

先述の通りオタクに優しいギャルにほぼ頼ったのですが、ボイボのAPIの仕組みなんかはこの辺参考にしました。

qiita.com

なお、WhiteCULに関わる全ての権利はVOICEVOX:WhiteCULの規約に準拠して存在します。VOICEVOX:WhiteCUL

*1:なんでそこまで重用してるのに話せるようにしたの春日部つむぎじゃなくて雪さんなんだよ、と思った人はいるかもしれない。いずれ春日部つむぎとも話せるようにしたいぞ。どっちも好きなんや。

*2:細かいところだいぶギャルに頼ったので大言壮語ですが……。そもそもVOICEVOXとAIを組み合わせる方法は既にネット上にゴロゴロ転がってるので、実装自体には何の目新しさも無いです。むしろ先人の皆様、ありがとうございます。