Open5

『AITuber本著者によるAIキャラクター入門―AITuberの基礎からソフトウェア設計、失敗談まで』に参加してみた🌟

まさぴょん🐱まさぴょん🐱

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

https://studyco.connpass.com/event/337404/

イベント概要

大規模言語モデル(LLM)の応用のひとつとして、AITuber(AIキャラクター)が注目を集めています。 AITuberとはYouTuberとAIを組み合わせた造語で、人工音声とLLMを用いてキャラクターが一人でに話し、歌い、配信をします。

このイベントでは、11月23日発売の書籍「AITuberを作ってみたらプロンプトエンジニアリングがよくわかった件」の著者、阿部由延(@sald_ra)さんをお招きして、AITuberの基礎から、実際の経験を踏まえたソフトウェア設計の工夫・失敗談といった貴重なお話をしていただきます。

主な対象者

AITuber(AIキャラクター)に興味のあるソフトウェアエンジニアやデータサイエンティストの方

前提とする知識

プログラミングやソフトウェア開発の基礎知識

アジェンダ

講演:AITuberの基礎と書籍の紹介
パネルトーク:AITuberのソフトウェア設計、失敗談など

書籍

  1. AITuberを作ってみたらプロンプトエンジニアリングがよくわかった件
  2. AITuberを作ってみたら生成AIプログラミングがよくわかった件

GitHub

https://github.com/sr2mg/aituber_prompt_engineering_example

まさぴょん🐱まさぴょん🐱

講演内容📝

AITuberとは?

基本的な技術

AITuber本でのアーキテクチャ

AITuber本でのアーキテクチャ Ver.2

AITuberアーキテクチャの問題点

アーキテクチャ、どうするのが正解なんだろう?

AITuberの壁

個人開発終末状況・・・

大事なこと・まとめ🌟

まさぴょん🐱まさぴょん🐱

パネルトーク・コーナー

ソフトウェア設計のポイントは?

  • やばやば2000行コードを避ける!
  • 適切なClass分けなど!

TestCodeについては?

  • テストが書きやすいようなClassや、構造にしておくのが大事
  • 単体テストやGitHubにpushしたらCI/CD自動でまわして、品質を担保できるようにする。

設計に関して、視聴者などに聞きたいことは?

  • UsecaseとOutputの関係性は、悩んでいる・・・
  • Outputは、どこに従属させるべきなのか?
  • Usecaseごとに、Outputの形が変わるので、要件ごとに関係性や構造が変わる。

プロンプトの管理やチューニングのポイントは?

  • 共通のAITuberキャラクター設定をClassなどで保持する!
  • それをベースにプロンプトを動的に作成していく!
  • プロンプトの役割分担や、

AITuberで使うLLMの選び方は?

  • OpenAI, Gemini,Claude の3つが無難
  • 上記、3つでダメなら local LLMでぶん回す!!
  • LLMは、API LLM or local LLMのどちらかになる!
    • 基本は、API LLM
    • API LLMで実現できないような要件の場合は、local LLMがいいと思います。
    • local LLMは、チューニングがしやすい!

AITuberを個人開発するとき特有の大変さは、ありますか?

  • 自分には、24時間という時間しかないことを意識して、優先順位を決める💪
  • すべてをやるのは、無理!

書籍に入れられなかった話を教えてください!

  • 『キャラクター駆動開発』は、面白い!!
    • キャラクターに振り回される体験ができる!!
    • 趣味とか同人活動としてはいいけど、仕事としては、どうだろうか?
  • 本の内容で修正点などはnoteに整理しています。

https://note.com/saldra/n/n6a82b97b8db9

まさぴょん🐱まさぴょん🐱

視聴者からの質問コーナー Ver. 事前質問

キャラクター作りについて

  • 声や動作など、どれぐらいキャラクターの見た目に近づけるか?
    • 声はチューニングすればいける!!
    • 動作は、難しい🤔
      • textToMotion
      • モーションはまだまだ発展途上
  • キャラクターデザインから、アバター作成でこだわっているポイントはありますか?
    • また、仕上げにこだわる場合、どういうチューニングポイントがあるでしょうか?
    • 性癖はあった方がいい!
  • 狙い通りの人物像を構築する

エンジニアリングについて

1. キャラクターの知識の出し入れについて

  • プロンプトに動的に埋め込む

2. 記憶条件と期間について

  • どんなことを、どれくらい記憶させるといい塩梅?
  • 知識に重みづけをする。
    • 衝撃度の計算をLLMにさせる。
    • 衝撃度によって、変化をつける。

AITuberを開発する上での言語について

  • ライブラリが豊富なのは、Python/TypeScript
  • 無理にPythonをやる必要はないが、PythonであればCode事例や情報が多いことがメリット
  • API LLMを使うだけなら、言語は何でもいい気がする。

社会影響について

  • 自分のClone AITuberができることによるメリット
  • 他人がAITuberを使って、ディープフェイク的なこともあり得る・・・
  • AIには「欲求がない/しがらみがない」こその強みがある💪🥺🔥
  • 疲れ知らずなAIだからこそできることもある!
    • ケースワーカー, カウンセラーを超えるAITuberなど
  • 24時間配信できる!!
まさぴょん🐱まさぴょん🐱

Q & Aコーナー Ver. 当日質問

Youtube配信以外の応用例としてどんなものがあるか伺いたい

  • Tiktok
  • サイネージ組み込み
  • EC
  • 応用例は、まだまだ少ない!!
  • だが、いろいろな可能性はある分野です。

リップシンクは、どのように実装しましたか?

  • Vマジック・ミラーは、音声でリップシンクをやっています。
  • マイクを入力のチャネル
  • Unityの場合は、ライブラリがあるのでそれで対応しています。
  • リップシンクは、顔認識 or 音声のどちらかで実装する!

配信をするなら、Youtubeとtwitch

  • 配信だけでなく動画もやるならYotubeでいいと思う。
  • ゲーム配信ならtwitchかな。

コメントを拾って推論/音声合成で発話まで数秒かかると思いますが、推論から発話までの遅延を短くする工夫を何かされていましたか? (リクエスト/レスポンス速度)

  • 非同期処理を使う方法もあるが、複雑度が上がる。
  • 相槌をいったん返すような相槌機能は、あってもいいかも。
  • 推論を早いModelにするとかの方法はある。

音声生成部分について、人間の発話に近づけるとなると抑揚やピッチ制御は、どうしていますか?

  • どこからどこまでをCordingで切り替えることにするか?
  • どこからどこまでをLLMに任せるか?
  • などの設計が大事

マルチモーダルLLMのAITuberへの活用の今後について

  • 音声 -> 音声の方だと、Text to 音声 (音声合成)よりも制御が難しくなるかも?
    • 日本語だと特に

長時間配信する時にNGワードに

  • OpenAIには、NGワード判定のAPIがあるので、それを利用するのもあり!
  • 手動でNGワードリストを持って弾く仕組み(判定機)を作ってもいいかも💪