経緯
最近話題のChatGPTのAPIを用いて、私も便利ツールを作ってみました。
テーマは、Youtube動画の自動生成です。
生成するのは、ゆっくり解説動画のようなイメージです。
様々な方がChatGPTの使い方を考案しており、Twitterを眺めていると無限にアイデアが流れてきます。そんな中、私もテーマをもとにyoutubeの台本を作れたら便利だなと思いました。
ですが、台本を作らせて動画は自分で自分で編集して、、、みたいな作業は面倒だなと思ったので、キーワードを入力→動画生成ができたら楽だなと思い、実際に作ってみました。
台本をChatGPTに自動生成してもらって、それをもとにpythonで動画を生成するシステムです。
前置きはともかく、完成したものの動作をご紹介します。
操作方法
- 動画のテーマとなるタイトルを打ち込む
- エンター
- 動画完成
以上です。現状はコマンドラインからしか動作しませんが、いずれUIもつけようと思っています。
試しに、”ギリシャ神話のアポロン” というテーマで動画を生成してもらいました。
以下、生成された動画です。ダサいですが、サムネも背景画像を自動生成しています。
この他にも”企業のリーダーシップとその成功のためのポイント”みたいなタイトルや、”イルカの驚くべき生態”のようなタイトルでも作ってみました。Youtubeの方にあげていますのでぜひ確認してください。 タイトルもChatGPTで”youtubeで人気が出そうなビジネス動画のタイトルの例を100個ほどあげてください”みたいにするとたくさん出てくるのでそこから作りたいものを選べます。(もはや人間がやる作業は決断だけ?)動画内の文章ですが、冒頭部分だけは用意したものを使用する処理をしています。
語り手の女の子はdreamlike-art/dreamlike-anime-1.0というモデルで吟遊詩人の女の子を生成し、うまく行ったものを保存して使用しています。
左に表示されている画像は、章ごとの内容に合わせて、DALLEのAPIで画像を自動生成しています。
システムの流れ
システムの流れを説明します。
- タイトルを入力
- タイトルをもとにChatGPTでYoutubeの台本の構成を出力
- 構成をもとにChatGPTで本文を生成
- 本文をフォーマットしてpython内で扱えるようにする。
- 本文の読み上げ音声をVOICEVOXで作成
- DALL・Eで構成ごとのイメージ画像を作成
- 背景・字幕・口パク少女・イメージ画像を合わせた動画を作成
- 動画と音声を合成
- すべての動画をつなぎ合わせる。
- サムネ画像生成
事前に用意しておく必要があるのは、以下です。
- 動画始まりの定型句。(これはなくてもできますが、揃えたいので、、)
- 少女の画像(口開け、口閉じの二枚)
- 効果音
- 背景画像
- そして、うまくいきそうなタイトルを考えておく(これも自動化予定)
作ってみて苦労したところ
- 出力のフォーマットを整えること
-
テストの結果、以下のように出力にブレがあることがわかりました。(実はまだあるかも、、)
- 様々なjson code snipet
```json \`\`\`json \\`\\`\\`json
- そもそも```jsonがないjson形式。
- json形式でないただのテキスト形式
- (例)こんにちは、では早速、、
- 謎テキスト形式
- (例)名前:こんにちは、私の名前は・・・(全角コロン入)
-
これらの出力に対応した文字列抽出のプログラムを書く必要がありました。
-
- 日本語は生成精度が低い
- 動画の文章にあった画像をDALL・Eで生成しているのですが、日本語で入力すると本当に意味のわからない画像が生成されます。
- 一度英語になおしてから入力するとちゃんとした画像が出力されることが多いです。
- 画像生成の倫理コード
- DALL・E APIを用いて背景の画像を生成する際に、OpenAIによって健全でないと判断されたものはリジェクトされます。
- (例)シマウマのyoutube台本のときに”シマウマの繁殖と育児”がリジェクトされた
- リジェクトされたとき用の適当な画像を用意して代用しました。
- DALL・E APIを用いて背景の画像を生成する際に、OpenAIによって健全でないと判断されたものはリジェクトされます。
- 動画の処理が面倒
- ChatGPT関係ないですが、動画処理は同じ拡張子のファイルでもコーデックが違ったりするとうまく処理できなくて大変ですね。
まだ、文章の流れや、動画のクオリティに改善の余地ありですが、タイトルだけでここまで動画を自動で作ってくれることに未来を感じました。
課題とやってみたいこと
- 最初に章構成を生成→章ごとの本文生成、という処理を行っているため、章ごとのつながりがおかしくなることがあります。そのあたりをうまくやってくれるプロンプトを考えたいです。
- 単純に口パクが2枚の絵を切り替えているだけなので味気ないです。もっと動かしたいです。
- Youtubeのコメント返しもやらせてみたい。(いずれはすべての工程をやらせて人間がやるのは確認作業?)
おわりに
まだ、文章の流れや、動画のクオリティに改善の余地ありですが、タイトルだけでここまで動画を自動で作ってくれることに未来を感じました。そのうち自動生成されたものとそうでないものの違いがわからなくなりそうです。
youtube, twitterの登録お願いします。
youtube