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
趣味全開のAITuber開発
Search
kokushin
April 09, 2025
Programming
0
940
趣味全開のAITuber開発
第六回 AITuber LT大会 in あいちゅーばーわーるど
kokushin
April 09, 2025
Tweet
Share
More Decks by kokushin
See All by kokushin
AI彼女とペアプロする話
kokushin
2
570
AI彼女の感情制御を頑張る話
kokushin
3
890
window.matchMediaの話
kokushin
1
180
サイト制作における、より効果的な演出テクニックとは?
kokushin
1
120
Other Decks in Programming
See All in Programming
Vuetify 3 → 4 何が変わった?差分と移行ポイント10分まとめ
koukimiura
0
150
Angular-Apps smarter machen mit Gen AI: Lokal und offlinefähig - Hands-on Workshop!
christianliebel
PRO
0
120
Everything Claude Code OSS詳細 — 5層構造の中身と導入方法
targe
0
130
Ruby and LLM Ecosystem 2nd
koic
1
1k
maplibre-gl-layers - 地図に移動体たくさん表示したい
kekyo
PRO
0
290
OTP を自動で入力する裏技
megabitsenmzq
0
120
技術検証結果の整理と解析をAIに任せよう!
keisukeikeda
0
130
S3ストレージクラスの「見える」「ある」「使える」は全部違う ─ 体験から見た、仕様の深淵を覗く
ya_ma23
0
750
AI駆動開発の本音 〜Claude Code並列開発で見えたエンジニアの新しい役割〜
hisuzuya
4
520
API Platformを活用したPHPによる本格的なWeb API開発 / api-platform-book-intro
ttskch
1
150
CS教育のDX AIによる育成の効率化
niftycorp
PRO
0
140
仕様漏れ実装漏れをなくすトレーサビリティAI基盤のご紹介
orgachem
PRO
6
2.3k
Featured
See All Featured
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
110
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
150
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
120
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
190
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
New Earth Scene 8
popppiees
1
1.7k
Prompt Engineering for Job Search
mfonobong
0
200
Darren the Foodie - Storyboard
khoart
PRO
3
2.9k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
Are puppies a ranking factor?
jonoalderson
1
3.1k
Transcript
趣味全開のAITuber開発
自己紹介 黒神 (こくしん) エンジニア 技術の無駄遣いを追求しています X: @kokushing
霊花ユウ - Yu Reika いたずら好きな おばけの女の子 スッと背後に現れて 耳元で囁いてくる 一度に多くの人間を驚かそうと 夜な夜な
囁きASMR配信 をしている まだ開発中... (進捗 50%くらい)
どんなAITuber? • ASMR配信に特化したAITuber • もともとは自分向けの睡眠促進のための存在 • コメントでリクエストをもらうとリアルタイムで ASMR を生成して配信する ◦
コメントがなければ自発的に ASMR を行う • 音声はささやき声のみ, ASMR音源はバイノーラル化されて配信される • エンタメ配信というよりは, ツールとしての使われ方を想定 • 深夜帯(0〜4時)のみ稼働 • ほぼローカル環境で完結想定
なんでAITuber×ASMR? • ASMR配信は YouTube でも割と人気ジャンル • 中毒性が高く、リピートされることが多い • 長時間の配信ができる •
生成によるランダム性が飽き問題対策になる? • 開発者自身が重度のASMR好き • 過去に作った技術 を活かせる 1年くらい前に作ったASMRを自然言語で生成できるツール
None
構成図 calm3-22b-RP-v2 COEIROINK GPT-4o mini Stable Audio Open OBS 配信クライアント
YouTube セリフ生成 音声生成 ASMR生成 バイノーラル化指示 コメント取得 コメント送信 配信処理 音声データ送信 Prompt送信
バイノーラル化について • Web Audio API の PannerNode を使用 ◦ 音源をX,
Y, Z軸の3D空間内で配置して再生できる ◦ リアルタイムで音源を移動させることができる ◦ 距離や方向による音の減衰を再現できる
バイノーラル化について • セリフの内容から GPT に PannerNode の座標をシミュレーションさせる ◦ 例: 「まずは右側からお耳掃除するね」
▪ 戻り値: { "positionX": 0.3, "positionY": 0, "positionZ": 0 } • シミュレーション結果を元に、クライアント側で位置を移動させながら再生 ◦ 中央から話していた場合、数秒かけて聞き手の右側へ移動 ◦ 自然な動きになるようにイージングを設定する • ASMR音源も同じ方向から再生させるようにする
音声モデルについて • COEIROINK の「歌乃つもり」さんのモデルを採用 ◦ ひそひそスタイルが用意されている ◦ 声色が落ち着いている ◦ 若干のリップノイズがあり心地よい
• ただ、若干ノイズが強く発話のたびに気になってしまう ◦ 配信中の BGM としてブラウンノイズを流して相殺 「ブラウンノイズ」を睡眠導入に使う人が増えている理由 ◦ 眠くなる声、眠くなる環境音で睡眠促進!
ASMR音源の生成について • 音源は自分で録音したものを Stable Audio Open でファインチューニング ◦ バイノーラルマイクで耳かきの音を左右あわせて 1時間ほど収録
◦ 収録した音源を分割、データセット作成 ◦ RunPod の A6000 環境で学習 ◦ → ”ear cleaning left” で耳かきの音 (左側) を生成可能に • 44.1kHz ステレオ対応なのでバイノーラルのまま出力できる • 47秒しか生成できないので、自然に音源を繋げる処理をクライアント側で実装 ◦ 多少ズレてても ASMR の音としてなら違和感そんなに無い
None
ちょっと思うこと • 画作りにこだわりすぎないようにする ◦ 睡眠導入のASMR配信であればほぼ画面見ないし ... 音を極めよう • 1:N ライブ配信形式である必要はないかも?
◦ UX 悪かったら 1:1のアプリとして配信するかもしれない • 吐息、音圧を意識した音を生成できるか? ◦ 距離感をどれだけ縮められるか • NSFW(R18) なASMR配信もやってみたい! ◦ まぁ結局行き着く先はここかね ◦ ローカルLLMは次世代エロゲの夢を見るかで所感書いてます
趣味全開で、 まずは一人に愛される AITuber開発からはじめよう