はじめに
先日、Virtual YouTuberを作りました。普通のVTuberとは異なり、コメントを広い、対話をしてくれるのはAIです。
AIVTuberというジャンルへの注目度は日に日に高まっていますが、一見機械学習の知識がたくさん必要で、実装が難しいように思う方も多くいるかと思います。
しかし実際は機械学習の知識は(合ったほうが勿論良いですが)そこまで必要ないです。
この記事ではAIVTuber作成のハードルを下げることを目標にしています。よって想定読者は「専門科目として機械学習を勉強していないがAIVTuberを作ってみたい人」を対象にしています。
方針の策定
「AIVTuber」に必要な要件をまず考えます。高度なことをやっているように思えますが、以下に分解するとイメージがつきやすくなります
- YouTubeコメントの取得
- 取得した質問にAIで回答
- 回答した文字列を合成音声に変換
- 音声を任意のデバイスに出力
- 配信ソフトにコメントと回答を出力
上述のもので不安に感じるのはAIの回答部分、音声合成ソフト部分、配信ソフト部分の3つかと思います。
YouTubeはAPIが存在しますし、音声出力も各言語に対応したライブラリが配布されているためです。
下記にツールの選定結果を記述していますが、先にハードルが高いAI回答の部分だけ答えを出します。それは「OpenAIが公開してるAPIを利用しろ」です。
OpenAIのAPIについて
OpenAIはその名の通り、AIについてのサービスを豊富に展開している団体です。この記事ではそれくらいの理解で問題ないです。
大事なのは文章生成ができるAIのAPIが公開されているということです。
ざっくり言うと、このAPIに質問文を投げれば回答が帰ってきます。つまりあなたが「最短で対話AIVTuberを実装したい!」と思っているときにやるべきは機械学習の勉強でも、機械学習の論文を読むことでもなく、OpenAIの文章生成AIの使い方が書いてある入門サイトを読むこと、そしてAPIのリファレンスを読むことです。OpenAIの文章生成AIの利用方法はnoteが存在するので、こちらを参考にすると良いです。
音声合成ソフトとの疎通
音声合成ソフトはVOICEVOXというソフトが存在します。このソフトはテキストを食わせると任意の声が返ってくるローカルAPIが起動します。この記事は音声合成ソフトとマイクを用いてPythonで音声変換を行う記事ですが、そこでも同じ技術を用いています。
少し詰まった部分として、wav形式の音声がbytes型で送信されるので、変換部分だけ工夫する必要があります。
配信ソフトとの疎通
回答を音声に載せるだけでも良いのですが、配信映えを考え配信に回答文を載せたいかと思います。今一番大手のOBSは公式でwebsocket(v5)に対応しているので、obsのreferenceを読みながら実装してください。少しわかりにくい部分かと思うので、時間ができ次第また記事を書く予定です。
まとめ
これらを総合すると、AIVTuberとは「各種API群をうまく繋げ、音声と回答文を配信ソフトに載せるシステム」であることがわかります。
もちろんローカルでAPIの部分を自分で演算することもできますし、逆にAPIとの疎通をするシステムも全てクラウドに置くことも可能です。
AIVTuberを制作するにあたって必要なのは特筆すべき技術力ではなく、試しに作ってみる好奇心だと自分は考えています。この記事をきっかけに作ってみる方が増えることを願っています。
宣伝
もし質問などあれば、以下Twitterアカウントまでよろしくお願いします。