agent-stuff は何をしますか?
ローカルオーディオ/ビデオとAppleボイスメモを、キャッシュされたMLX Whisperモデルを使用して高速に文字起こしします。低品質な音声も処理可能です。
機能
- 高速文字起こし: Apple Silicon上でMLXを使用し、GPUアクセラレーションにより高速に処理します。
- モデルキャッシュ: ダウンロードしたWhisperモデルはキャッシュされ、オフラインでも再利用可能です。
- 低品質音声対応: ノイズや歪みが多い録音でも高精度な文字起こしを実現します。
- 話者分離(ダイアライゼーション): 複数話者の発言を自動的に識別し、話者ごとに分割して文字起こしします。
- Apple Voice Memos対応: Apple Voice Memosアプリで録音した.m4aファイルを直接処理できます。
- 多彩な出力形式: プレーンテキスト、SRT(字幕)、JSON形式で出力可能。
前提条件
- Apple Silicon搭載のMac(M1/M2/M3/M4)
- Python 3.10+
- ffmpeg(システムにインストール済みであること)
インストール
pip install mlx mlx-whisper
使い方
基本的な文字起こし
python transcribe.py input.mp3
出力形式の指定
python transcribe.py input.mp3 --format srt
python transcribe.py input.mp3 --format json
python transcribe.py input.mp3 --format text # デフォルト
Apple Voice Memosの文字起こし
python transcribe.py ~/Library/Application\ Support/com.apple.voicememos/Recording.m4a
話者分離を有効にする
python transcribe.py input.mp3 --diarize
モデルの指定
python transcribe.py input.mp3 --model large-v3 # デフォルトはbase
利用可能なモデル: tiny, base, small, medium, large, large-v2, large-v3
環境変数
WHISPER_CACHE_DIR: モデルキャッシュのディレクトリを指定します。デフォルトは~/.cache/whisper
出力フォーマット
テキスト形式
プレーンなテキストとして文字起こし結果を出力します。
SRT形式(字幕)
各発話にタイムスタンプが付与された字幕ファイルを生成します。
JSON形式
機械処理に適した構造化データで出力します。各セグメントの開始時間、終了時間、テキスト、信頼度スコアが含まれます。
注意事項
- 初回実行時は選択したWhisperモデルのダウンロードが行われます。モデルサイズ(large-v3で約3GB)によっては時間がかかることがあります。
- 話者分離機能は実験的であり、常に正確とは限りません。
- 処理する音声の長さによってはメモリ使用量が増加するため、十分なRAMがあることを確認してください。
ライセンス
このプロジェクトはMITライセンスの下で公開されています。詳細はLICENSEファイルを参照してください。