SubWizard: 自動字幕生成ツール

Tool

概要

SubWizardは、ローカル環境で動作する自動字幕生成アプリケーションです。バックエンドにfaster-whisperを採用しており、音声から高速かつ高精度に文字起こしを行います。GUI(グラフィカルインターフェース)とCLI(コマンドライン)の両方を提供し、初心者はウィンドウ操作で、上級者はスクリプトやバッチ処理で使えます。出力は.srt形式で保存できるほか、字幕を直接.mp4に焼き込むことも可能。GPU(CUDA)とCPUの両方に対応し、複数のパフォーマンスモードを切り替えて速度とリソースの最適化を行えます。

GitHub

リポジトリの統計情報

  • スター数: 3
  • フォーク数: 0
  • ウォッチャー数: 3
  • コミット数: 7
  • ファイル数: 9
  • メインの言語: Python

主な特徴

  • faster-whisperを利用した高速かつ高精度な音声認識(ローカル実行)
  • GUIとCLIの二本立てで初心者から上級者まで対応
  • .srt書き出しと.mp4へのハードサブ(字幕焼き込み)対応
  • GPU/CPUの自動検知と複数のパフォーマンスモードでリソース最適化

技術的なポイント

SubWizardの核はfaster-whisperによるローカル音声認識で、Whisperモデルの高速化(量子化や最適化された実行パス)を活かして、GPUでのリアルタイム近い処理やCPU上での省リソース動作を可能にしています。プロジェクトはPythonベースで、依存管理を容易にしてローカル環境で完結することを重視。GUIはtkinterや簡易的なフロントエンドを想定した設計で、ユーザーが入力ファイルをドラッグ&ドロップ、設定を切り替えて実行できるようになっています。CLIはバッチ処理や自動化用途を念頭に置き、引数でモデルパス、出力形式、パフォーマンスモード(例: fast/balanced/accurate)、デバイス指定(cpu/gpu)などを受け取ります。字幕のタイムスタンプ生成はWhisperのセグメンテーション結果を活用し、srtフォーマットへ整形。mp4への字幕焼き込みではFFmpeg等の外部ツール呼び出しを行うことで動画コンテナへの埋め込みや再エンコード処理を実現しています。エラー処理やメモリ使用量のヒント、GPUが無い環境でのフォールバック戦略も実装されており、軽量機から高性能マシンまで幅広く動作します。

(上記はリポジトリの構成とREADME内容から整理した技術的な要点で、実際の実装はソースを参照してください)

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitattributes: file
    • Gitでの改行や属性設定を保つためのメタファイル
  • .gitignore: file
    • 仮想環境やビルド成果物などを無視する設定
  • README.md: file
    • インストール手順、使い方、サンプル画像やスクリーンショットを含む概要ドキュメント
  • cli_args.py: file
    • コマンドライン引数のパーサーと設定バリデーションを担当。モデル選択、入力/出力パス、デバイス選択、パフォーマンスモードなどを受け取るロジックを備えます。
  • gui.py: file
    • デスクトップ向けの簡易UIを実装。ファイル選択、開始/停止ボタン、進捗表示、設定切替を提供し、バックグラウンドで認識処理を起動します。
  • main.py: (推定) 実行エントリポイント(リポジトリ内に存在する場合、CLI/GUIの起動管理を行う)
  • transcribe.py / recognizerモジュール: (推定) faster-whisperとのインターフェースを含み、モデルのロード、音声前処理、推論、セグメント化を実行
  • utils.py: (推定) srtフォーマット生成、タイムスタンプ整形、FFmpeg呼び出しラッパー、ログ管理を提供
  • requirements.txt / pyproject.toml: (推定) 依存パッケージ(faster-whisper、ffmpeg-pythonなど)を列挙

ファイル数は少なめに設計されており、主要な責務がCLI/GUI、認識処理、入出力変換に分離されています。実行フローの例:ユーザーがGUI/CLIでファイルを指定 → cli_args/guiがオプションを正規化 → transcribeモジュールでfaster-whisperモデルをロード → 音声を分割して推論 → セグメントをsrtに整形 → 必要ならFFmpegでmp4に焼き込み、出力を保存。

まとめ

faster-whisperを活用したローカル完結型の実用的な自動字幕生成ツールです(50字程度)。

リポジトリ情報: