見出し画像

寝ている間にナレーション付きショート動画を生成してくれるツールの作り方

こんにちは!あずさです。
前回のピタ止め動画を生成してくれるツールのたくさんのいいね、ご購入ありがとうございます!

今回は台本テキストからテロップ、ナレーション、動きのある背景全部を生成してくれるツールを作ってみました。

追記:流行りの雑学動画のフォーマットで作れるバージョンも出しました!

実際の挙動

使い方は2つあって、まずは背景画像の用意も不要でテキストだけから動画を生成するパターンです。

パターン①:テキストのみ

コマンドでテキストを入力するだけで、、

テロップとナレーション、そしてなんと背景動画もテキストを読み込んでそれっぽいものをフリー画像から取得して作ってくれます。

パターン②:テキスト+用意した背景画像

ご自身で生成したAI画像はこの形式で使えますね。画像はフォルダに格納して、別の設定ファイルでフォルダを指定します。

コマンドで渡すのは同じくテキストのみです。

すると用意した画像から動きのある背景を生成して動画化してくれます。

台本はChatGPTが書いてくれますし(上記2つの動画の台本もChatGPTです。プロンプトも紹介します)、コマンドは一括実行ができるので、寝ている間にショート動画を量産してくれます。

本当の自動化をしてみませんか?

Vrewなど近しいことができる動画生成アプリはたくさんあると思いますが、多くはGUIアプリ(一般的なボタンをクリックして操作するアプリ)です。
それらは確かに普通に動画を作るよりは効率化できるかもしれませんが、結局は

「テキストをセットして、、、仕様を選んで、、、生成ボタンを押して、、、生成されるのを待って、、、生成されたら次をテキストを、、、」

というパソコンの前にずっと座っていないといけない単純作業であることには変わりありません。

それを解決するのがCLI(コマンドラインインターフェース)アプリです。
CLIアプリは先ほど紹介した本アプリのように、コマンドプロンプトという黒い画面にコマンドを入力することで実行します。
コマンドを作る手間はあるものの、コマンドを作ってしまえば一括で実行ができるので、寝ている間に動画を大量生成することができます。ずっとパソコンの前に座ってなくていい、本当の自動化です。

「プログラミングよくわからない」「黒い画面怖い」という気持ちはわかりますが、この記事を見てくださっている皆様は動画編集やAI画像生成にチャレンジしたことがある方々だと思います。
そのような経験のある皆様ならCLIアプリを使いこなせると思いますし、Stable Diffusionをインストールできたレベルの人には丁寧すぎてクドいかもしれないくらい詳細な手順を解説しています。

また、CLIアプリを構築する、使ってみる経験は、この先も皆様に利益をもたらす財産になると信じています。
というのも、世の中ちょっとのPythonを書いてCLIアプリを作れば、有料アプリでできることが無料でできたりするんです、、、
(某動画編集ソフトの文字起こしとか自動カットとか、、、実は無料でできます。)

一緒に本当の自動化を始めませんか?


必要な環境

まず私のマシン環境は以下の通りです。そこまでマシンスペックを求められるツールじゃないので、発売から3年以内のi5/Ryzen5以上のCPU搭載機で、メモリが少なくとも8gb、できれば16gbあれば問題なく動くと思います。

OS:Windows11 Home
CPU:AMD Ryzen 5 4600H
メモリ:16gb

また、以下の3つのツールがインストールされた状態である必要があります。

Python:私の場合は3.10.6
FFMPEG:私の場合は6.1-essentials_build-www.gyan.dev
VOICEVOX:私の場合は0.14.6(追記:0.19.2でも動作確認しました)

恐らく私より新しいバージョンであれば(もしくは多少古くても)動くと思いますが、不安な方は同じバージョンをダウンロードしてみてください。

Pythonは以下の手順が参考になります。
https://www.python.jp/install/windows/install.html

FFMPEGはこちらが参考になります。
https://jp.videoproc.com/edit-convert/how-to-download-and-install-ffmpeg.htm

私は試したことがないのですが、FFMPEGはこちらのようなより簡単なインストール方法もあるようです。
https://roboin.io/article/2024/02/25/install-ffmpeg-to-windows/

インストールが完了したら、コマンドプロンプト(windowsの検索窓で「cmd」と検索)でそれぞれ「Python」「ffmpeg」と入力してみて、バージョン情報が表示されれば完了です。(「Python」と入力するとPythonの対話モードが起動するので、バージョンが確認できたらコマンドプロンプトを閉じるか、「exit()」と入力して対話モードを抜けてください。)

VOICEVOXは以下が参考になります。

https://sosakubiyori.com/voicevox-introduction/

ここまでできていれば、ツール構築の50%は完了したと言ってもいいでしょう。

その他必要な準備

フリー画像の取得にpexelsというフリー画像サービスのAPIを使用するので、APIキーと言うものが必要になります。

APIというのは(一面的な説明ですが)アプリを作るときに、別のアプリの機能を使うために連携するための手法で、例えば美容室アプリに地図機能を付けたいときは、GoogleマップのAPIを使うことで、地図機能を作るのではなく、Googleマップの地図機能を流用することができるようになります。

今回は背景動画を生成するためにpexelsのAPIを使って画像を取得するという形でAPIを使用しています。

APIキーは以下の手順で取得できます。

まず、pexelsにアクセスし、右上の「参加」からアカウントを作成します。(Googleアカウントでログインもできます。)

https://www.pexels.com/ja-jp/

次にアカウントにログインした状態で、以下のURLにアクセスします。

https://www.pexels.com/ja-jp/api/

そうすると以下のような画面になるはずなので、「APIキー」というボタンを押してください。

すると以下のような画面になります。「WebサイトのURL、アプリなど(該当する場合)」以外の部分をすべて入力して、「APIキーを生成」を押してください。

「Canvaの写真や~」のAPIの利用用途説明の部分は50文字以上の入力が必要です。

私は以下のような感じにしました。

私個人が使用する、テキストから動画を作成するためのプログラムの中で、動画の背景に使う画像を、テキストから抽出した検索ワード用いて検索し、取得するためにAPIを使います。

そうすると、以下の黒帯部分に長い文字列が表示されます。それがAPIキーなので、メモしておいてください。(一度生成したAPIキーはPexelsからいつでも確認できます。)

諸注意

この記事はあくまで作り方を指南する記事です。サンプルとしてそのまま実行できるスクリプトファイルを添付し、できるだけ再現性が高くなるよう丁寧に書いたら1万字を超えた実行手順と解説を記載していますが、動作の保証や返金保証、サポート等はできません。(ですが、Python導入からAPIキーの取得までの準備が完了していて、おそらく動画編集やAI画像生成の経験もお持ちの自己解決能力の高い皆さまなら、詰まることなくツールを構築できると思っています。また、コメント欄でのお問い合わせにはできる限りお答えします。改善提案等も歓迎です。)

ナレーションにVOICEVOX、背景画像の取得にPexelsを使用しています。ご利用の際はそれぞれの規約を遵守するようにお願いします。
VOICEVOX:https://voicevox.hiroshiba.jp/term/
Pexels:https://www.pexels.com/ja-JP/license/
PexelsAPI:https://www.pexels.com/ja-jp/api/documentation/#guidelines

以下私の解釈ですがVOICEVOXはクレジット表記必須、Pexelsは画像利用に関しては基本不要ですが、例えばAPIを使って背景をリアルタイムで変更しているWebサイトなどではクレジット表記が必要みたいです。当ツールでの使い方はそれに該当しないと思いますが、念のためVOICEVOXと同じようにクレジット表記するのが安パイかなと思います。

・台本生成のプロンプトはGPT4向けです。

・その他の仕様
BGM:お好きなBGMをセットできます。(MP3推奨)
生成時間:私の環境では約300文字、画像11枚、約50秒の動画で、テキストのみの場合は約4分26秒、背景画像を事前に用意した場合は約4分でした。
制限:なし(画像を用意しない場合は、pexelsAPIの利用制限に依存します。公式には1時間で200リクエスト以内なので、つまり画像200枚まで。11枚の画像を取得する動画の生成に4分26秒かかるので1時間で必要な枚数は約149枚となり、私の環境では実質無制限ですが、環境によって異なることをご留意ください。画像を用意する場合は制限なしです!)
出力形式:MP4
利用規約:ソースコードやその他添付物の転載等、作者が不利益を被る利用はお控えください。また、このツールに関連して生じたトラブル等の責任も負いません。動画はバンバン作って好きに使ってください!

・配布ファイルのダウンロードについて
当方Chromeブラウザで試したところ、危険なファイルと誤判定されてしまいダウンロードができないことがあるようです。
危険なファイルと誤判定された場合でも、以下の方法でダウンロードが可能です。(同じくnoteで添付ファイルが危険と判定されてしまった人がダウンロード方法を解説してくれています。)

当然危険なものは入れてませんし、note側でもファイルのウイルス判定は行われているのでご安心ください。
一応ファイルの中身も以下に開示します。念のためお知らせでした。ご了承くださいませ。

【ZIPファイル内】
fonts:テロップ用のフリーフォントMPLUS-1が入っています(フォントファイル、ライセンス関連のドキュメント2つが入っています。)
images:画像を入れるための空フォルダです。
bgm:bgmファイルを入れるための空フォルダです。
my_modules:スクリプトの実行に必要な自作モジュールが格納されています。
shorts_generator.py:スクリプトです。
_varibles.py:設定ファイルです。
README.html:ツールのドキュメントです。
requirements.txt:ツールに必要なライブラリをダウンロードするためのテキストファイルです。

【その他】
shorts_generator_コマンド作成シート.xlsx:コマンド作成のエクセルシートです。

Python導入からAPIキーの取得まで準備が完了し(完了している前提で話が進みます)、上記ご理解いただいた上で「挑戦したい!」と思ってくださる方は、ぜひ先へお進みください。一緒に頑張りましょう!

構築手順と基本的な実行手順を案内するので、実際に動かしてみるところから始めましょう。

ここから先は

13,064字 / 47画像 / 2ファイル

¥ 990

期間限定 PayPay支払いすると抽選でお得に!

この記事が気に入ったらサポートをしてみませんか?