Skip to content

triax/autosub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

autosub - 動画自動文字起こし・字幕生成ツール

Whisper AIを使用した日本語動画の自動文字起こしと字幕焼き付けツールです。

特徴

  • 🎯 日本語に最適化されたWhisperモデルによる高精度な文字起こし
  • 📝 複数形式での出力(テキスト、JSON、SRT字幕)
  • 🎬 動画への字幕自動焼き付け
  • 📹 .mp4および.MOV形式の動画ファイルに対応
  • 🐳 Dockerコンテナによる環境依存の解消
  • 💾 モデルキャッシュによる2回目以降の高速起動
  • 📦 複数動画のバッチ処理対応
  • 🤖 OpenAI APIを使用したAI紹介文生成(オプション)

必要環境

  • macOS / Linux
  • Docker または Podman
  • メモリ: 4GB以上
  • ディスク空き容量: 2GB以上(モデルダウンロード用)

インストール

# リポジトリをクローン
git clone https://github.com/yourusername/autosub.git
cd autosub

# Dockerイメージをビルド
make build

使い方

基本的な使用方法

単一ファイルの処理

# 動画ファイルを処理(.mp4 または .MOV)
make run SOURCE=~/Downloads/your_video.mp4
make run SOURCE=~/Downloads/your_video.MOV

複数ファイルのバッチ処理

# スペース区切りで複数ファイルを指定(.mp4と.MOVを混在可能)
make run SOURCE="video1.mp4 video2.MOV video3.mp4"

# またはinputフォルダに直接配置して一括処理
cp *.mp4 *.MOV ./input/
make run

処理が完了すると、output/<ファイル名>/ ディレクトリに以下のファイルが生成されます:

  • <ファイル名>.txt - プレーンテキストの文字起こし
  • <ファイル名>.json - タイムスタンプ付きのJSON形式
  • <ファイル名>.srt - SRT形式の字幕ファイル
  • <ファイル名>_with_subs.mp4 - 字幕が焼き付けられた動画
  • <ファイル名>_introduction.txt - AI生成の紹介文(OpenAI API設定時のみ)

複数ファイルを処理した場合は、各ファイルごとに個別のフォルダが作成されます。

OpenAI APIを使用した紹介文生成(オプション)

文字起こしから自動で紹介文を生成できます:

# .envファイルを作成
cp .env.example .env
# .envファイルを編集してOpenAI APIキーを設定

# 通常通り実行すると紹介文も生成されます
make run SOURCE=~/Downloads/interview.mp4

Dockerを使用する場合

デフォルトではPodmanを使用しますが、Dockerも使用可能です:

make build ENGINE=docker
make run SOURCE=~/Downloads/your_video.mp4 ENGINE=docker

クリーンアップ

# 生成されたファイルを削除
make clean

モデルの選択

transcribe.pymodel_size 変数を編集することで、使用するモデルを変更できます:

  • small - 高速だが精度は低め(約500MB)
  • medium - バランス型(デフォルト、約750MB)
  • large-v2 - 最高精度(約1.5GB)
# transcribe.py
model_size = "large-v2"  # より高精度な文字起こし

変更後は make build を実行してください。

トラブルシューティング

メモリ不足エラー(exit code 137)

システムメモリが不足しています。以下の対策を試してください:

  1. より小さいモデル(small)を使用する
  2. 他のアプリケーションを終了する
  3. スワップメモリを増やす

ネットワークエラー

Podman/Dockerのネットワーク接続に問題がある場合:

# Podman machineを再起動
podman machine stop
podman machine start

モデルダウンロードが遅い

初回実行時はモデルのダウンロードに時間がかかります(medium: 約750MB)。 一度ダウンロードされると ~/.cache/huggingface にキャッシュされ、次回以降は高速に起動します。

技術仕様

アーキテクチャ

  1. 入力処理: 動画ファイル(.mp4/.MOV)を input/ ディレクトリにコピー
  2. 文字起こし: Whisperモデルで音声を解析
  3. 出力生成: テキスト、JSON、SRT形式で保存
  4. 字幕焼き付け: FFmpegで動画に字幕を合成

コンテナ設定

  • ベースイメージ: Python 3.10-slim
  • 主要ライブラリ: faster-whisper, FFmpeg
  • 日本語フォント: Noto Sans CJK JP
  • メモリ制限: 3GB + 3GBスワップ

最適化

  • VADフィルタによる無音部分のスキップ
  • beam_size=1による省メモリ化
  • int8量子化による高速化
  • モデルキャッシュによる再利用

ライセンス

MIT License

貢献

プルリクエストを歓迎します。大きな変更の場合は、まずissueを開いて変更内容について議論してください。

謝辞

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •