Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
2024/12/05 AITuber本著者によるAIキャラクター入門 - AITuberの基礎...
Search
Sald ra
December 05, 2024
Technology
2
810
2024/12/05 AITuber本著者によるAIキャラクター入門 - AITuberの基礎からソフトウェア設計、失敗談まで
2024/12/05 にStudyCoさんにて行われた「AITuber本著者によるAIキャラクター入門」の資料
https://studyco.connpass.com/event/337404/
Sald ra
December 05, 2024
Tweet
Share
More Decks by Sald ra
See All by Sald ra
2023/07/26 - AITuberコミュニティの 開放性と閉鎖性
sr2mg4
1
37
AIキャラについての諸考察
sr2mg4
1
310
2023 AIAD忘年会LT 資料
sr2mg4
0
870
2023/09/23 「AIキャラクターの言動に深みを持たせる」
sr2mg4
2
1k
AIキャラクター開発の側面から見る 新機能実装・検証の高速化の必要性
sr2mg4
1
890
ローカルAITuber勢の現在地と未来
sr2mg4
0
460
Other Decks in Technology
See All in Technology
より良い開発者体験を実現するために~開発初心者が感じた生成AIの可能性~
masakiokuda
0
180
[2025年4月版] Databricks Academy ラボ環境 利用開始手順 / Databricks Academy Labs Onboarding
databricksjapan
0
140
3月のAWSアップデートを5分間でざっくりと!
kubomasataka
0
120
SREの視点で考えるSIEM活用術 〜AWS環境でのセキュリティ強化〜
coconala_engineer
1
290
Cursor AgentによるパーソナルAIアシスタント育成入門―業務のプロンプト化・MCPの活用
os1ma
13
4.7k
彩の国で始めよう。おっさんエンジニアから共有したい、当たり前のことを当たり前にする技術
otsuki
0
150
QA/SDETの現在と、これからの挑戦
imtnd
0
120
改めて学ぶ Trait の使い方 / phpcon odawara 2025
meihei3
1
660
Стильный код: натуральный поиск редких атрибутов по картинке. Юлия Антохина, Data Scientist, Lamoda Tech
lamodatech
0
710
4/16/25 - SFJug - Java meets AI: Build LLM-Powered Apps with LangChain4j
edeandrea
PRO
1
100
CloudWatch 大好きなSAが語る CloudWatch キホンのキ
o11yfes2023
0
180
はてなの開発20年史と DevOpsの歩み / DevOpsDays Tokyo 2025 Keynote
daiksy
6
1.5k
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
178
53k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.2k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Building Flexible Design Systems
yeseniaperezcruz
329
38k
Bash Introduction
62gerente
611
210k
How to Ace a Technical Interview
jacobian
276
23k
Navigating Team Friction
lara
184
15k
Optimizing for Happiness
mojombo
377
70k
Adopting Sorbet at Scale
ufuk
76
9.3k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
5
520
It's Worth the Effort
3n
184
28k
Transcript
AIキャラクター入門 AITuberの基礎からソフトウェア設計、失敗談まで
自己紹介
AITuberとは
AITuberとは AITuberとは「ネット活動を行うAIキャラ」です • イメージ的には「AI」x「VTuber」に近い • 2023年初頭のOpenAIのAPI出現以降に活発になったジャンル
みた方が早い
基本的な技術 色々なことはできるとして、最低要件から考えてみる 最低要件は「YouTubeと紐づけてコメントに反応し、発話する」になるはず • コメントつなぎこみ • LLMつなぎこみ • 音声合成・再生 •
OBS連携 ここまでを簡易的に実装できるのがAITuberプロンプト本
どう実装してるか 見てみよう
AITuber本でのアーキテクチャ
AITuber本でのアーキテクチャ • エントリー・ポイントがAITuberSystem ◦ コメント取得から発話までが1ターン ◦ 逐次処理 • 発話内容作成がtalker •
VoiceMakerでt2sのwavに変換 • play_soundで仮想マイク再生 • OBSで発話内容を表示
AITuber本でのアーキテクチャ • usecase ◦ talker • interface ◦ voice_maker •
Frameworks & Drivers ◦ OBSAdapter ◦ play_sound ◦ OpenAIAdapter ◦ YouTubeCommentAdapter
どこが問題だろう?
問題点 • interfaceとFrameworks & Driversがごっちゃ • OpenAIの責務をきちんと分けよう ◦ 音声合成とChatを同じクラスで行わない ◦
OpenAI APIでできることが多いのが悪い • AITuberSystemが神クラスになってる ◦ outputはusecaseに紐づいているべきでは ◦ Commentが必要なのはtalkerであり、Systemではない とはいえガッツリ層を分ける必要があるかは疑問 非同期処理にするかは要考慮
どうするのが正解なんだろう • 結論から言うと「試行錯誤するしかない」 • 先ほどのものを変更してみた ◦ outputをまとめて、各usecaseに対応 ◦ OpenAIのAdapter分離 ◦
実際のつなぎこみはClientに任せる • ありえる未来を追加要件にしてみる ◦ singerというusecaseを追加 ▪ こいつはCommentに非依存 設計をしたい人にとってはAITuberは絶好の教材かも
とはいえどこかで 妥協は必要
AITuberの壁の話
AITuberの壁 • 第一の壁「そもそもどうやって作れば良いかわからない」 ◦ 割と解決に向かっている • 第二の壁「単純なQAだけだとつまらない」 ◦ アイデアをどうにかして出し続けるしかない。いつか話すが省略 •
第三の壁「普通に運用コスト高い」 ◦ 一番やばい壁! 第三の壁について話します
なぜ僕は個人で AITuberを作らなくなったか
運用・メンテコストの増大
個人開発末期状態(2023/06) • 疎結合にはなってる ◦ 各サービスの起動コスト上昇 • Unityにしたことでの開発工数上昇 ◦ URPなんもわからん •
独自路線すぎた合成音声 ◦ SBV2なかったからVITS+RVC • GPU負荷高すぎ • ローカルはプロンプト効かない • context-sizeが8kなかった(解決済) 参考:AITuberさくら構築図。2024にllm-jp-3に換装だけした
大事なこと • 「気軽に配信を始められる」は絶対に担保しておくこと • デファクトスタンダードに乗っておけ!絶対後悔する(オーパーツは作れる) ◦ 気軽にやるならVOICEVOX。今だったらAivisSpeechもにじボイスもある ◦ 「プロンプトさえ変えれば同じモデルで色々なことができる」は偉大 ▪
なるべくPromptingで解決しておけ、ローカルは浪漫だか茨の道 ▪ PromptingでできることはAITuberプロンプト本に書いたはず • 自分の力量をきちんと把握しておくこと ◦ LLMでなんでもできるようになった、ただし時間は有限である ◦ その拘りは他の工数を削ってでもやりたいことかは常に考える ▪ (UnityのURPまで僕はやるべきだっただろうか...)
以上!