AI Shorts System

Python Gemini API Faster-Whisper MoviePy / ffmpeg Pillow / NumPy
[デモ動画をここに配置]

概要

撮影動画や配信アーカイブなどからShorts動画を全自動生成するエンドツーエンドのAIパイプラインです。音声認識、カット割り、テロップや効果音の合成までを人間の手を介さずに完結させる、1400行を超えるPythonバックエンドシステムとして構築しました。

システムの特徴:3フェーズのプロンプト制御

本システムの最大の特徴は、Gemini APIに対して異なるペルソナを与え、タスクを3段階に分割して処理させている点です。

1. 構成作家AI (Phase 1)

動画全体の内容を解析し、Shortsとして成立する「話題の塊(セグメント)」を自動で抽出します。

2. 鬼の編集長AI (Phase 2)

Faster-Whisper(CUDA)を用いた高速な文字起こしデータ(タイムスタンプ付きの時間地図)を基に、無音部分を削りつつも、自然な「間」を残すミリ秒単位の精密なカット割りを指示します。

3. ビデオディレクターAI (Phase 3)

抽出されたセリフの感情や文脈に合わせて、テロップのフォント・色・アニメーション(振動、ズーム等)や、適切な効果音(SFX)の合成を指示します。

技術的工夫(バックエンド設計)

Pillow + NumPy によるレンダリングエンジンの実装

既存の動画編集ライブラリのテキスト生成機能に依存せず、Pillow(画像描画)とNumPy(行列演算)を用いてテキストレンダラを自作しました。
これにより、立体的な3Dシャドウやアウトライン(縁取り)エフェクトの描画を実現しています。さらに、三角関数(sin/cos)を用いた座標計算により、テキストのバウンスやパルスといったアニメーションを動的に生成する画像処理パイプラインを構築しました。

ffmpegの動的制御とマルチトラック音声ミキシング

動画の主音声、数十種類の効果音(SFX)、そしてBGMを適切な音量バランスでミキシングしています。
また、ffmpegの filter_complex をPython上で動的に組み上げることで、フレーム単位の精密なカットや、BGMのクロスフェード切り替え(滑らかな繋ぎ)を自動化しています。

メモリ・リソース管理

動画エンコード処理におけるメモリリークやストレージ圧迫を防ぐため、処理フローの終了時にすべてのクリップオブジェクトの明示的な解放(close())、一時生成された大量のWAV/MP4ファイルの一括削除、および gc.collect() によるガベージコレクションを行っています。これにより、連続稼働でもクラッシュしない設計を実現しています。

GPUエンコード制御の自動フォールバック

NVIDIA NVENC(h264_nvenc)を利用したハードウェア・アクセラレーションによる高速エンコードを実装しつつ、GPU側でエラーが発生した場合には即座にCPUエンコード(libx264)へフォールバックする耐障害性を組み込んでいます。

← トップページに戻る