SubWizard: 自動字幕生成ツール
概要
SubWizardは、ローカル環境で動作する自動字幕生成アプリケーションです。バックエンドにfaster-whisperを採用しており、音声から高速かつ高精度に文字起こしを行います。GUI(グラフィカルインターフェース)とCLI(コマンドライン)の両方を提供し、初心者はウィンドウ操作で、上級者はスクリプトやバッチ処理で使えます。出力は.srt形式で保存できるほか、字幕を直接.mp4に焼き込むことも可能。GPU(CUDA)とCPUの両方に対応し、複数のパフォーマンスモードを切り替えて速度とリソースの最適化を行えます。
リポジトリの統計情報
- スター数: 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字程度)。
リポジトリ情報:
- 名前: subwizard
- 説明: Automatic subtitle generator for video and audio using Faster-Whisper. Supports exporting to .srt or embedding into .mp4. Includes both GUI and CLI, with multiple performance modes and GPU/CPU compatibility.
- スター数: 3
- 言語: Python
- URL: https://github.com/Victorgm21/subwizard
- オーナー: Victorgm21
- アバター: https://avatars.githubusercontent.com/u/111967416?v=4