skip to content
サイトロゴ 子育てSEパパのIT・AI×副業ラボ
Table of Contents
参考記事【副業実験記#7】Python+KeyBERTで日本語テキストからキーワードを抽出してみた話

つづき。


はじめに

引き続き、雑学動画自動生成ツールを自作できないか、検討してみているお話です。

今回は、動画を自動生成できるPythonライブラリ「MoviePy」について、雑学動画自動生成ツールで使えるか検証してみた話です。

検証準備

Pythonのインストール

「Python」で雑学動画自動生成ツールを作るつもりなので、検証でも同様に使います。

詳細は以下の記事にまとめていますので、ご興味ある方は、そちらをご覧ください。

https://sepapalab.com/how-to-download-and-install-python-to-windows/

PyCharmのインストール

Pythonでの開発を楽にしてくれる統合開発環境「PyCharm」を使います。

Pythonで雑学動画自動生成ツールを作る際に使うつもりなので、検証でも同様に使います。

詳細は以下の記事にまとめていますので、ご興味ある方は、そちらをご覧ください。

https://sepapalab.com/how-to-download-and-install-pycharm-ja-to-windows/

検証用Pythonプロジェクトおよびvenvの作成

検証用「Pythonプロジェクト」を作成します。

PyCharmで簡単に作成できます。

Pythonプロジェクトを作成したら、その中で「venv」(Python仮想環境)を作成しておきます。

詳細は以下の記事にまとめていますので、ご興味ある方は、そちらをご覧ください。

https://sepapalab.com/how-to-set-up-pycharm-to-use-python-venv-virtual-environment/
https://sepapalab.com/why-use-venv-in-python/

Pythonパッケージのインストール

今回は、以下のパッケージを使用します。

Noパッケージ説明
1moviepyPythonで動画を編集・加工できるオープンソースのライブラリパッケージです。

検証用Pythonプロジェクトでvenvを起動し、パッケージをインストールします。

ターミナルでコマンド実行してインストールする方法やPyCharm上で画面を操作してインストールする方法がありますが、今回は、PyCharm上で画面を操作し、venvにパッケージをインストールします。

参考記事PyCharmでvenv仮想環境へパッケージをインストールする方法【Windows 】【初心者向け】 PyCharm上で「moviepy」のパッケージを検索した結果

ChatGPTにMoviePyのシンプルなコードの記載を依頼したところ、バージョン1系を使ったコードの回答が返ってきたので、今回は、バージョン1系を使います

FFmpegのインストール

「FFmpeg」は、動画や音声の変換・編集・再生などができる無料のコマンドラインツールです。

MoviePyは、内部でFFmpegを使って動画を生成するようなので、事前にインストールします。

詳細は以下の記事にまとめていますので、ご興味ある方は、そちらをご覧ください。

https://sepapalab.com/how-to-download-and-install-ffmpeg-to-windows/

音声ファイルの準備

検証時に作成した以下の音声ファイルを使用します。

参考記事/sidejob-experiment-journal-4-voicevox/

画像ファイルの準備

以下の検証時に作成した画像ファイルを使用します。

参考記事/sidejob-experiment-journal-5-stable-diffusion/ puppy dog

音楽(BGM)ファイルの準備

雑学動画でよくBGMになっている「Escort」という音楽を使用します。

検証してみた

MoviePyを使用した動画自動生成の流れ

以下の流れで音声ファイルや画像ファイル、音楽(BGM)ファイルをもとに動画を生成するようでした。

  1. 音声ファイルを読み込む

  2. 音楽(BGM)ファイルを読み込む

  3. 音楽(BMG)を音声の長さに合わせる

  4. 音声と音楽(BGM)を合成する

  5. 画像ファイルを読み込む

  6. 画像の表示時間を音声の長さに合わせる

  7. 画像と合成した音声と音楽(BGM)を合成する

  8. 合成した画像と音声、音楽(BGM)をもとに動画を生成する

MoviePyを使用した動画自動生成の試し

では実際に、音声ファイルと画像ファイル、音楽ファイル(BGM)を合わせて動画を生成してみます。

MoviePyを使ったPythonサンプルコード

from moviepy.editor import *
# ファイルパス
image_path = "output.png"
voice_path = "output.wav"
bgm_path = "escort.mp3"
output_path = "output_video.mp4"
# 音声クリップの読み込み
voice_clip = AudioFileClip(voice_path)
bgm_clip = AudioFileClip(bgm_path).volumex(0.3) # BGMの音量を30%に調整(お好みで)
# BGMの長さをナレーション音声に合わせてトリミング or ループ
bgm_clip = bgm_clip.set_duration(voice_clip.duration)
# 音声とBGMをミックス
mixed_audio = CompositeAudioClip([bgm_clip, voice_clip])
# 画像を読み込み、音声の長さに合わせて表示時間を設定
image_clip = ImageClip(image_path).set_duration(voice_clip.duration)
# 画像に合成音声を設定
video = image_clip.set_audio(mixed_audio)
# 出力(fps=24が一般的)
video.write_videofile(output_path, fps=24)

Pythonサンプルコード実行結果

D:\PyCharmProjects\MoviePyTest\.venv\Scripts\python.exe D:\PyCharmProjects\MoviePyTest\image_and_audio_to_video.py
Moviepy - Building video output_video.mp4.
MoviePy - Writing audio in output_videoTEMP_MPY_wvf_snd.mp3
t: 0%| | 0/61 [00:00<?, ?it/s, now=None]MoviePy - Done.
Moviepy - Writing video output_video.mp4
Moviepy - Done !
Moviepy - video ready output_video.mp4
プロセスは終了コード 0 で終了しました

サンプルコードで生成された動画

output_video.mp4


他にも様々な機能がありそうでしたが、基本的な機能だけでも、十分に、雑学動画自動生成ツールで使えると感じました。

おわりに

「MoviePy」ですが、音声ファイルと画像ファイル、音楽ファイル(BGM)を合成して動画を自動生成できることが分かりました。

これで、動画自動生成には「MoviePy」を使えば良いことが分かったので、次の技術やツールの検証に移ろうと思います。

(今回も検証用のコードは、ChatGPT(GPT-4oモデル)に出力してもらったものを微修正したものです)


今回の記事も、同じように副業に悩んでいる人、手探りで取り組んでいる人にとって、何かの参考になれば嬉しいです。

これからも記録を続けていく予定なので、よければフォローしてもらえると嬉しいです。


つづき。

参考記事【副業実験記#9】Python+MoviePyで字幕付きの動画を自動生成してみた話