Slide 1

Slide 1 text

AIキャラクター入門 AITuberの基礎からソフトウェア設計、失敗談まで

Slide 2

Slide 2 text

自己紹介

Slide 3

Slide 3 text

AITuberとは

Slide 4

Slide 4 text

AITuberとは AITuberとは「ネット活動を行うAIキャラ」です ● イメージ的には「AI」x「VTuber」に近い ● 2023年初頭のOpenAIのAPI出現以降に活発になったジャンル

Slide 5

Slide 5 text

みた方が早い

Slide 6

Slide 6 text

基本的な技術 色々なことはできるとして、最低要件から考えてみる 最低要件は「YouTubeと紐づけてコメントに反応し、発話する」になるはず ● コメントつなぎこみ ● LLMつなぎこみ ● 音声合成・再生 ● OBS連携 ここまでを簡易的に実装できるのがAITuberプロンプト本

Slide 7

Slide 7 text

どう実装してるか 見てみよう

Slide 8

Slide 8 text

AITuber本でのアーキテクチャ

Slide 9

Slide 9 text

AITuber本でのアーキテクチャ ● エントリー・ポイントがAITuberSystem ○ コメント取得から発話までが1ターン ○ 逐次処理 ● 発話内容作成がtalker ● VoiceMakerでt2sのwavに変換 ● play_soundで仮想マイク再生 ● OBSで発話内容を表示

Slide 10

Slide 10 text

AITuber本でのアーキテクチャ ● usecase ○ talker ● interface ○ voice_maker ● Frameworks & Drivers ○ OBSAdapter ○ play_sound ○ OpenAIAdapter ○ YouTubeCommentAdapter

Slide 11

Slide 11 text

どこが問題だろう?

Slide 12

Slide 12 text

問題点 ● interfaceとFrameworks & Driversがごっちゃ ● OpenAIの責務をきちんと分けよう ○ 音声合成とChatを同じクラスで行わない ○ OpenAI APIでできることが多いのが悪い ● AITuberSystemが神クラスになってる ○ outputはusecaseに紐づいているべきでは ○ Commentが必要なのはtalkerであり、Systemではない とはいえガッツリ層を分ける必要があるかは疑問 非同期処理にするかは要考慮

Slide 13

Slide 13 text

どうするのが正解なんだろう ● 結論から言うと「試行錯誤するしかない」 ● 先ほどのものを変更してみた ○ outputをまとめて、各usecaseに対応 ○ OpenAIのAdapter分離 ○ 実際のつなぎこみはClientに任せる ● ありえる未来を追加要件にしてみる ○ singerというusecaseを追加 ■ こいつはCommentに非依存 設計をしたい人にとってはAITuberは絶好の教材かも

Slide 14

Slide 14 text

とはいえどこかで 妥協は必要

Slide 15

Slide 15 text

AITuberの壁の話

Slide 16

Slide 16 text

AITuberの壁 ● 第一の壁「そもそもどうやって作れば良いかわからない」 ○ 割と解決に向かっている ● 第二の壁「単純なQAだけだとつまらない」 ○ アイデアをどうにかして出し続けるしかない。いつか話すが省略 ● 第三の壁「普通に運用コスト高い」 ○ 一番やばい壁! 第三の壁について話します

Slide 17

Slide 17 text

なぜ僕は個人で AITuberを作らなくなったか

Slide 18

Slide 18 text

運用・メンテコストの増大

Slide 19

Slide 19 text

個人開発末期状態(2023/06) ● 疎結合にはなってる ○ 各サービスの起動コスト上昇 ● Unityにしたことでの開発工数上昇 ○ URPなんもわからん ● 独自路線すぎた合成音声 ○ SBV2なかったからVITS+RVC ● GPU負荷高すぎ ● ローカルはプロンプト効かない ● context-sizeが8kなかった(解決済) 参考:AITuberさくら構築図。2024にllm-jp-3に換装だけした

Slide 20

Slide 20 text

大事なこと ● 「気軽に配信を始められる」は絶対に担保しておくこと ● デファクトスタンダードに乗っておけ!絶対後悔する(オーパーツは作れる) ○ 気軽にやるならVOICEVOX。今だったらAivisSpeechもにじボイスもある ○ 「プロンプトさえ変えれば同じモデルで色々なことができる」は偉大 ■ なるべくPromptingで解決しておけ、ローカルは浪漫だか茨の道 ■ PromptingでできることはAITuberプロンプト本に書いたはず ● 自分の力量をきちんと把握しておくこと ○ LLMでなんでもできるようになった、ただし時間は有限である ○ その拘りは他の工数を削ってでもやりたいことかは常に考える ■ (UnityのURPまで僕はやるべきだっただろうか...)

Slide 21

Slide 21 text

以上!