AITuber開発者LTに参加した

AITuber開発者のLT会に発表者として参加しました。
発表10分、質疑約5分の持ち時間をいただいていましたが、準備するにあたって考えたこと、資料に載せられなかったことが多々あるなと感じたので、備忘録的に残しておこうと思います。

 

 

モチベーション

AITuber開発に手を出したのは、AI同士に会話させてればコンテンツが自動生成できるじゃん!という理由からです。
そこそこの面白い話ができて、あとは物珍しさからファンがつけばYouTubeで再生回数が回るんじゃないかなと考えました。
しかし実際にGPT(当時はGPT-2)に会話のラリーをさせると、本当に中身のない話しかできません。最初に話のテーマだけ人間が渡しても、すぐにそのテーマを終わらせて好きな映画か好きな食べ物の話を始めます。
そしてそれにも薄い返答しかできないありさまです。

そういった経緯からチャンネルのコンテンツとしてはコメント返し配信がメインになっていくのですが、個人的にはエピソードトークなど、オチのある話をしてほしいなとずっと思っていました。

このあたりのモチベーションに関してはLTでも話しました。

 

最初の取り組み

ChatGPTを使って漫才の台本を作成するタスクに取り組み始めた当初は、とにかく「緊張と緩和」をいかに作るかということを考えていました。それが笑いの本質だと思っていたので。
とはいっても、「緊張と緩和」を表現する方法は無数にあり、具体的にプロンプトをどうするかということを考えると手さぐりにならざるを得ません。

最初にできたフォーマットは先生と生徒の会話です。登場人物の2人に先生と生徒というロールを与え、先生が教えた概念を生徒が間違った理解をし、先生がそれを訂正するという会話です。「緊張と緩和」の具体例として、「勘違い」が起こる会話を作ろうと思ったわけです。

これはなかなかうまく行きました。
たとえば、次のような台本ができます。

先生:こんにちは、今日は知恵について話しましょう。知恵とは何だと思いますか?

生徒:知恵は、うまく物事をやることだと思います。

先生:あなたの考え方は興味深いですが、知恵はそれだけではありません。知恵は、物事を理解し、その知識を実践する能力です。つまり、知恵は単に行動することではなく、その背後にある理解に基づくものです。

生徒:ああ、わかりました。つまり、知恵は物事を理解して、それに基づいて行動することですね。

先生:いいえ、それは正確な説明ではありません。知恵は、物事を理解するだけでなく、その理解に基づいて判断することも含みます。つまり、知恵は理解と判断の結果です。

生徒:ああ、そうですか。つまり、知恵は物事を理解して、それに基づいて判断することですね。

先生:いや、あなたの理解に誤りがあります。知恵は、単に物事を理解し、判断することではありません。知恵は、問題に対する洞察や創造性を必要とする場合もあります。つまり、知恵は、理解、判断、そして洞察力や創造性に基づくものです。

そもそも会話のテーマと口調が堅いことに目をつむれば、悪くないアプローチな気がします。

一方でほとんど同じフォーマットでも笑えないケースがありました。

先生:今日は「自由」という概念について学びます。自由とは何だと思いますか?

生徒:うーん、自由って、何でもやりたいことができるってことですか?

先生:そうではありません。自由は単にやりたいことをすることではなく、自分自身や他人に制限がない状態を指します。

生徒が「~ってことですか?」と自信なさげに返答したことに対して先生が訂正しても全然笑えません。
人が(人じゃないけど)真剣に新しいことを学ぼうとしている様を笑うのはとてもよくない気分になります。

つまり、生徒にはもっと馬鹿なキャラクターを演じてもらい、断言調で話してもらうことが必要だということがわかりました。
また、たとえ断言して派手に間違えたとしても、そもそも人の失敗を笑うことも少し抵抗があります。
なので、「これは笑わせるためにやってるんですよ。エンタメなんですよ。」という前提をしっかり提示することも必要になりそうです。

なお、このフォーマットですが、ほかにも「1度のセリフは短いほうがいい」や、「生徒は最後まで理解しないまま会話を終了しろ」など、クオリティをあげるために細かい指示が必要になってきたので、方針を見直すことにしました。

ちなみにこのフォーマットのプロンプトは最終的に以下のようなものでした。

後述する要件に沿って、2人の登場人物の会話の台本を作成してください。
- 登場人物は先生と生徒です
- 先生はある抽象的な概念について生徒に教えようとしています
- 生徒は常に新しく理解した概念を自信満々に発言します
- しかし生徒の発言の内容は常に間違いです
- 生徒の理解は先生の発言よりも広い概念の場合があります
- 生徒の理解は先生の発言よりもより具体的な事象の場合があります
- 今回のテーマは「美徳」です
- 生徒は先生に質問しません
- 先生はその間違いを指摘します
- 先生は同時に正しい内容と生徒の間違った理解の共通点を指摘します。
- 生徒は先生の指摘を曲解し、また別の間違った理解を説明します
- 生徒の理解は正しいものからどんどん乖離していきます
- 会話は先生から開始してください


参考文献

M-1の動画を見ながら、「緊張と緩和」よりも細かい分類がありそうな感覚はあったものの、うまく言語化できませんでした。
そんなときに『笑わせる技術~世界は9つの笑いでできている~』という本を知ります。本のタイトルにもあるように、笑いのタイプを分類しているらしい。軽く調べると著者の方はコント作家や放送作家もされているようで、信頼できそう。即購入しました。

内容的にはまさに欲しかった情報で、今回の発表では全面的にこの本の内容を信用しています。

笑いの種類と感情

笑いの種類が9種類挙げられています。最初に読んだときには包含関係でまとめたくなりましたが、後に実際の漫才を見ながら笑いが起こったくだりの分類をやりだすと、特に階層構造にする必要もないなと思いました。

実際これがどう役に立ったかというと、笑いの種類よりも感情変化に説明がつくようになったというところが大きいです。

これまでは、「緊張と緩和を起こす」ことを盲信していましたが、その理由は説明できていませんでした。緊張と緩和はお笑いに限った話でもないし、真理みたいなものだと思っていた節がある。

しかしこの本には緊張と緩和なんて説明は出てこず、全部感情で説明してくれます。「仲間意識を感じて笑う」「ワクワクして笑う」などなど。納得感がある。

特に、「ツッコミがボケに翻弄されている様子を第三者目線で見て、優越感を感じて笑う」という構造を知れたのはよかった。真空ジェシカの漫才でガクが翻弄されている様子で笑えるのは優越感だったのか(もちろん圧倒的な大喜利力もあるけど)。

こういう大枠の構造が分かると、細かいプロンプティングで微調整しながら質を上げているアプローチから開放されそうな感覚だったのを覚えています。

感情数値化フォーマット

優越感と笑いの関係性を知り、第三者の目線を意識して台本が作れないかと考えました。

ChatGPTで感情をパラメータとして扱えることは知っていたので、これを応用できないかと考えました。

note.com

以下のような指示を与えます。

三人の人間がいる場面を想定してください。
それらの人物の呼び方は、それぞれA,B,Cとします。
AとBは会話をしており、Cは会話を聞いているものの、参加はしません。
会話を聞いているCの感情パラメータを定義します。
感情パラメータは次の項目で定義されます

喜び:0~10
悲しみ:0~10
困惑:0~10
安心:0~10

Cの感情の変動を指示します。
Cの感情が指示したとおりに変化するような、AとBの会話文を作成してください。
感情の遷移の指示は次の通りです。

喜び:0, 悲しみ:0, 困惑:5, 安心:0
喜び:5, 悲しみ:0, 困惑:0, 安心:5

それに対する出力

それぞれの感情の遷移に対応するAとBの会話は以下のようになるでしょう。

1. 喜び:0, 悲しみ:0, 困惑:5, 安心:0

A: 「最近、宇宙から直接地球に送られてくる未知の信号があるんだってさ。」

B: 「え、何それ? それは一体どういう意味なの? UFOからのメッセージとか?」

A: 「詳しいことはまだ誰も分からないよ。科学者たちもまだその解析に苦労しているらしい。」

この会話で、AとBが未知の宇宙からの信号について話すことで、Cは何が起きているのか理解できず困惑します。

2. 喜び:5, 悲しみ:0, 困惑:0, 安心:5

A: 「でもさ、この信号が送られてきたこと自体が、地球外生命体の存在の可能性を示しているかもしれないよね。」

B: 「そうだね、私たちだけが宇宙に存在するとは思えないもんね。」

A: 「それに、これが何らかのメッセージであるなら、もしかしたら私たちが思っているよりも、彼らの文化や科学技術が高度で平和的かもしれないんだ。」

この会話では、AとBが未知の宇宙からの信号の可能性について前向きに語ることで、Cは興奮と安心感を感じるでしょう。

できているような、できていないような。

パラメータを10段階で設定したのに、5しか動かないのが良くないのか?

Cの感情の変動を指示します。
Cの感情が指示したとおりに変化するような、AとBの会話文を作成してください。
感情の遷移の指示は次の通りです。

喜び:0, 悲しみ:0, 困惑:10, 安心:0
喜び:0, 悲しみ:0, 困惑:0, 安心:10

出力

それぞれの感情の遷移に対応するAとBの会話は以下のようになるでしょう。

喜び:0, 悲しみ:0, 困惑:10, 安心:0
A: 「ねえ、最近の量子物理学の理論を聞いた?」

B: 「うーん、それって何? 光が同時に粒子であり波でもあるってやつ?」

A: 「それも含むけど、さらに最新の理論では、同じ事象が異なる結果をもたらす複数の宇宙が存在する可能性があるっていうんだ。」

B: 「え、それってどういうこと?」

この会話で、AとBが難解な量子物理学の理論について話すことで、Cは混乱して困惑します。

喜び:0, 悲しみ:0, 困惑:0, 安心:10
A: 「でもさ、それらの理論が示しているのは、私たちが理解できる世界の範囲を超えても、物理の法則が存在しているってことだよね。」

B: 「そうだね、それは一種の安定感を感じるね。どんなに複雑で理解しきれない世界でも、根底には法則があるんだから。」

A: 「そうだよ。そしてそれが、我々が理解できるかどうかに関わらず、宇宙が動き続ける原動力なんだ。」

この会話では、AとBが物理の法則の存在とその安定性について語ることで、Cは安心感を感じるでしょう。

物理。。。

ともかく、会話のコントロールが難しい印象で、この手法で漫才の台本を作るには工夫が必要に感じます。LTで話したフォーマットにうまく組み込めば改善するかもしれない。

プロット修正フォーマットについて

今回の取り組みで一番いい台本が作成できた手法が、話の流れのプロットを先に決めて、それを台本にしてくフォーマットです。これが良いと感じるのは一つ一つのボケやくだりの質が良いからというわけではなく、ストーリーは進んではいるがゴールに向かっていないという構成を実現できているからだと思っています。

言い換えると、台本の最後に「全然できてねえじゃねえか」と言える流れができているということです。

ただ、ボケやくだりを作るためにどうしているかというと、普通のセリフを作った後に「これを漫才にしろ」と指示を出しているだけなので、ここについては大いに改善の余地があるだろうなと思っています。

改善案

どういうボケを作るか、どういうくだりをつくるかということを考えると、好みの問題は避けられません。分類はある程度客観的にできますが、その中から一つを選ぶ必要があるのですから。

ただ、分類された笑いのタイプを満遍なく含めるようにするというのは一つの方針となりえそうです。

プロット修正フォーマットでは、細かい修正を行いやすいように、プロットを章でわけています。章ごとに笑いのタイプを1つ決めてそれに沿った笑いのくだりを入れていくのであれば、導入しやすいかもしれません。