Whisper文字起こし(音声・動画)
Whisper AIを使って、ローカルの音声ファイルや動画ファイルから文字起こしを生成できます。すべての処理はデバイス上で行われます。
モバイルリクエストの設定チェックリスト
モバイルアプリで文字起こしを利用できないと表示される場合は、文字起こしを実行できるデスクトップObsidianクライアントがまだ準備できていません。まず次を確認してください。
- macOS、Windows、LinuxのSocial Archiver Obsidianプラグインをインストールし、モバイルアプリと同じアカウントでサインインします。デスクトップ側の設定場所はプラグイン設定を参照してください。
- モバイルから送られた文字起こしジョブを受け取れるように、デスクトップObsidianを開いたまま接続状態にします。リクエストの流れは仕組みにまとめています。
- デスクトップObsidianでSettings → Social Archiver → Transcription Settingsを開き、Enable Whisper transcriptionをオンにします。この設定はプラグイン設定で確認できます。
- Whisper互換ツールをインストールします。Windowsではopenai-whisperが最も簡単で、Apple Silicon Macではwhisper.cpp、Linux/CPU環境ではfaster-whisperが高速です。
- 動画の文字起こしにはffmpegが必要です。デスクトップクライアントが動画を先にダウンロードする必要がある場合は、yt-dlpもインストールします。関連する条件は要件と対応ワークフローを参照してください。
デスクトッププラグインが文字起こし可能な状態を報告すると、モバイルリクエストはライブ接続経由ですぐに実行できます。初期設定が完了した後は、デスクトップObsidianを閉じていてもモバイルから文字起こしをリクエストでき、そのジョブはqueued状態で待機することがあります。ただし実際の文字起こし、ライブ進捗、最速の結果反映には、デスクトップObsidianが再度開かれてWebSocketに接続されている必要があります。
Obsidian Shell Execution警告
Obsidianのセキュリティスキャンで、Social ArchiverにShell Execution警告が表示されることがあります。文字起こしでは、デスクトップObsidianがローカルのWhisper互換CLIを実行し、メディア処理のためにffmpeg/ffprobeを呼び出す場合があります。動画投稿でダウンロード後に文字起こしするワークフローを使う場合は、文字起こし前にyt-dlpも実行されることがあります。コマンドは文字起こし機能を有効にしてジョブをリクエストした場合にのみ実行されます。モバイルのリクエストはジョブをキューに入れられますが、モバイルObsidianがローカルのシェルコマンドを実行するわけではありません。実際の実行は、接続されたデスクトップ実行環境で行われます。
概要
Social Archiverでメディアをアーカイブしたあと、コンピューター上でローカルに動作するOpenAIのWhisper音声認識モデルを使って、完全な文字起こしを生成できます。現在は、ポッドキャスト音声とダウンロード済み動画ファイル(Timeline内のYouTube/TikTokワークフローを含む)に対応しています。
なぜローカル処理なのか
この機能は、次の2つの点を考慮して設計されています。
プライバシー: メディアファイルはデバイスの外に出ません。すべての文字起こしはオープンソースツールを使ってローカルで行われるため、機密性の高いコンテンツでも完全なプライバシーを確保できます。
APIコストなし: 分単位で課金されるクラウド型文字起こしサービスとは異なり、ローカルWhisperは一度インストールすれば完全に無料で使えます。
その代わり、追加ツールのインストールが必要で、文字起こし速度はコンピューターの性能に依存します。
要件
次の音声認識ツールのいずれかをインストールしている必要があります。
| ツール | CLI同梱 | 速度 | 自動モデルダウンロード |
|---|---|---|---|
| faster-whisper | なし(ラッパーが必要) | 最速 | ✓ あり |
| openai-whisper | あり | 中程度 | ✓ あり |
| whisper.cpp | あり | 高速 | ✗ 手動 |
デスクトップ専用 + FFmpegについて
- 文字起こしはデスクトップ専用です。
- 動画文字起こし(
.mp4、.webm、.mov、.avi、.mkv、.m4v)にはffmpegをインストールしてください。Social ArchiverはWhisperを実行する前に動画から音声を抽出します。
おすすめ
- Apple Silicon Mac(M1/M2/M3/M4): 最高の性能を得るにはwhisper.cppを使ってください(Metal GPUアクセラレーション)
- Windows: 最も簡単なセットアップにはopenai-whisperを使ってください(CLI同梱、ラッパー不要)
- Linux: CPU性能を重視する場合はfaster-whisperを使ってください(モデル自動ダウンロード)
Option 1: faster-whisper(推奨)
CTranslate2ベースの実装です。openai-whisperより最大4倍高速で、メモリ使用量も少なくなります。モデルは初回使用時に自動的にダウンロードされます。
- リポジトリ: github.com/SYSTRAN/faster-whisper
- モデル:
~/.cache/huggingface/へ自動ダウンロード
CLIラッパーが必要
faster-whisperは組み込みCLIを持たないPythonライブラリです。CLIラッパースクリプトをインストールする必要があります。
Windowsユーザー
Windowsでは、代わりにopenai-whisperの使用をおすすめします(下のOption 2を参照)。CLIが最初から含まれており、追加セットアップは不要です。それでもWindowsでfaster-whisperを使いたい場合は、下のWindows専用手順に従ってください。
macOS / Linuxインストール
Step 1: ライブラリをインストール
pip install faster-whisper# macOS Homebrewはシステム全体へのpipインストールをブロックします(PEP 668)
# 代わりに専用の仮想環境を作成します。
# venvを作成してfaster-whisperをインストール
python3 -m venv ~/.local/share/faster-whisper-venv
~/.local/share/faster-whisper-venv/bin/pip install faster-whisperStep 2: CLIラッパーをインストール
ラッパースクリプトをダウンロードし、PATH内に保存します。
# binディレクトリがなければ作成
mkdir -p ~/.local/bin
# ラッパースクリプトをダウンロード
curl -o ~/.local/bin/faster-whisper \
https://raw.githubusercontent.com/hyungyunlim/obsidian-social-archiver-releases/main/faster-whisper-cli.py
# 実行可能にする
chmod +x ~/.local/bin/faster-whispermacOSユーザー: shebangを更新
Step 1でvenvにfaster-whisperをインストールした場合は、スクリプトのshebangをvenvのPythonに更新する必要があります。
# スクリプトの1行目を置き換える
sed -i '' '1s|.*|#!/Users/'$USER'/.local/share/faster-whisper-venv/bin/python|' ~/.local/bin/faster-whisperStep 3: PATHに追加(まだの場合)
# シェル設定(~/.zshrc または ~/.bashrc)に追加
export PATH="$HOME/.local/bin:$PATH"
# シェルを再読み込み
source ~/.zshrc # または ~/.bashrcインストール確認:
faster-whisper --versionWindowsインストール
Step 1: ライブラリをインストール
pip install faster-whisperStep 2: CLIラッパーをインストール
PowerShellを開いて実行します。
# ラッパースクリプトをPython Scriptsフォルダーへダウンロード
# まずPython Scriptsのパスを探します
python -c "import sys; print(sys.prefix + '\\Scripts')"
# ラッパーをダウンロード(必要に応じてパスを調整)
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/hyungyunlim/obsidian-social-archiver-releases/main/faster-whisper-cli.py" -OutFile "$env:LOCALAPPDATA\Programs\Python\Python311\Scripts\faster-whisper.py"Step 3: バッチラッパーを作成
同じScriptsフォルダーにfaster-whisper.batというファイルを作成します。
@echo off
python "%~dp0faster-whisper.py" %*または、次のPowerShellコマンドを実行します。
$scriptsPath = python -c "import sys; print(sys.prefix + '\\Scripts')"
Set-Content -Path "$scriptsPath\faster-whisper.bat" -Value '@echo off`r`npython "%~dp0faster-whisper.py" %*'インストール確認:
faster-whisper --versionOption 2: openai-whisper
OpenAIによる元のPython実装です。インストールが簡単で、そのまま動作します。モデルは初回使用時に自動的にダウンロードされます。
- リポジトリ: github.com/openai/whisper
- モデル:
~/.cache/whisper/へ自動ダウンロード
macOS / Linuxインストール
# Python 3.8+が必要
pip install openai-whisper
# またはpipxでインストール(分離のため推奨)
pipx install openai-whisperインストール確認:
whisper --helpWindowsインストール
前提条件が必要
Windowsユーザーは、openai-whisperを使う前にFFmpegをインストールし、PyTorchが正しく設定されていることを確認する必要があります。
Step 1: FFmpegをインストール
FFmpegはメディア処理に必要です。いずれかの方法を選びます。
winget install ffmpegchoco install ffmpeg# 1. https://ffmpeg.org/download.html からダウンロード(Windows builds)
# 2. C:\ffmpeg に展開
# 3. C:\ffmpeg\bin をシステムPATHに追加インストール後、FFmpegがPATHにあることを確認します。
ffmpeg -versionStep 2: openai-whisperをインストール
# Python 3.8+が必要
pip install openai-whisperこれによりPyTorchも自動的にインストールされます。NVIDIA GPUアクセラレーションを使う場合は、先にCUDA版をインストールします。
# 任意: CUDA対応PyTorchをインストール(NVIDIA GPU向け)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
# その後whisperをインストール
pip install openai-whisperStep 3: Python ScriptsをPATHに追加(まだの場合)
# Python Scriptsのパスを探す
python -c "import sys; print(sys.prefix + '\\Scripts')"
# このパスをシステムPATH環境変数に追加します
# 通常: C:\Users\<username>\AppData\Local\Programs\Python\Python3xx\Scriptsインストール確認:
whisper --helpトラブルシューティング
whisperコマンドが見つからない場合:
- PATH変更後にターミナル/PowerShellを再起動します
- 代わりに
python -m whisperとして実行してみます - Python ScriptsフォルダーがPATHに含まれていることを確認します
Option 3: whisper.cpp
高性能なC++実装です。Metal GPUアクセラレーションを使えるApple Silicon Macで最高の性能を発揮します。
手動モデルダウンロードが必要
whisper.cppを使うには、使用前にGGMLモデルファイルを手動でダウンロードする必要があります。
インストール:
# macOS(Homebrewを使用)
brew install whisper-cpp
# またはソースからビルド
git clone https://github.com/ggerganov/whisper.cpp
cd whisper.cpp
cmake -B build && cmake --build build --config Releaseモデルをダウンロード:
# modelsディレクトリを作成
mkdir -p ~/whisper-models
# smallモデルをダウンロード(推奨、465MB)
curl -L -o ~/whisper-models/ggml-small.bin \
https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-small.bin
# その他のモデル:
# ggml-tiny.bin (74MB), ggml-base.bin (142MB)
# ggml-medium.bin (1.5GB), ggml-large-v3.bin (2.9GB)プラグインは次の場所でモデルを探します。
~/whisper-models/~/.cache/whisper-cpp/~/whisper.cpp/models/
インストール確認:
whisper-cli --helpプラグイン設定
Settings → Social Archiver → Transcription Settingsで文字起こしを設定します。
| 設定 | 説明 |
|---|---|
| Enable Whisper transcription | 文字起こし機能のオン/オフ |
| Preferred Whisper variant | 使用するWhisper実装を選択 |
| Preferred model | モデルサイズを選択(tinyからlarge) |
| Default language | 自動検出または言語指定 |
| Custom Whisper path | 自動バイナリ検出を上書き |
| Force enable custom path | カスタムパスの特殊ケースで厳密なバイナリ検証をスキップ |
| Batch transcription mode | 動画バッチジョブのTranscribe onlyまたはDownload & transcribe |
| Batch transcribe videos in notes | バッチ文字起こしの開始/一時停止/再開/キャンセル |
Variantを選ぶ
複数のWhisper variantをインストールしている場合、使用するものを選択できます。
- Auto-detect: Apple Silicon Macではまずwhisper.cppを試し、それ以外のシステムではまずfaster-whisperを試します
- faster-whisper: セットアップが簡単、モデル自動ダウンロード、CPU性能に優れる
- openai-whisper: 元の実装、セットアップが簡単、モデル自動ダウンロード
- whisper.cpp: Apple Silicon Macに最適(Metal GPUアクセラレーション)、手動モデルダウンロードが必要
モデルは共有されません
各variantは異なるモデル形式を使います。あるvariant用にダウンロードしたモデルを別のvariantで使うことはできません。
| Variant | モデル形式 | 保存場所 |
|---|---|---|
| faster-whisper | CTranslate2 | ~/.cache/huggingface/ |
| openai-whisper | PyTorch (.pt) | ~/.cache/whisper/ |
| whisper.cpp | GGML (.bin) | 手動指定場所 |
対応ワークフロー
| ワークフロー | トリガー | 備考 |
|---|---|---|
| ポッドキャスト音声 | アーカイブ済みノートにローカル音声が存在 | Timelineにダウンロード済み/ローカル音声用の文字起こしバナーを表示 |
| YouTube/TikTok動画 | ローカル動画が存在(先にダウンロード済み) | Timelineにローカル動画用の文字起こしバナーを表示 |
| アーカイブフォルダー内の既存ローカル動画 | Settingsでバッチ文字起こしを実行 | バッチモード(transcribe-onlyまたはdownload-and-transcribe)を使用 |
仕組み
- アーカイブ + メディアをダウンロード: ノートにローカル音声/動画ファイルがあることを確認します
- Timelineで開く: Timeline viewでアーカイブ済み投稿を表示します
- 文字起こしボタンをクリック: 文字起こしバナーのマイクアイコンをクリックします
- 処理を待つ: Whisperがローカルで実行される間、進行状況が表示されます
- 文字起こしを確認: 文字起こしはノートに保存され、Timelineにも表示されます
動画文字起こしパイプライン
動画ファイルの場合、Social Archiverはまずffmpegでモノラル16kHz WAV音声を抽出し、その抽出音声に対してWhisperを実行します。
文字起こし機能
インタラクティブなタイムスタンプ
文字起こし内の任意のタイムスタンプをクリックすると、メディアプレイヤーのその位置へジャンプします。再生中は現在のセグメントがハイライトされます。
検索(デスクトップ)
検索ボックスを使って、文字起こし内の特定の単語やフレーズを探せます。
折りたたみ/展開
スペースを節約するため、文字起こしは最初は折りたたまれた状態で表示されます。クリックして展開すると全文を表示できます。
文字起こしの保存場所
文字起こしは、Markdownファイル内の## Transcriptセクションに直接保存されます。
## Transcript
[00:00] Welcome everyone...
[00:15] Today we're discussing...メタデータはYAML frontmatterに保存されます。
transcriptionModel: small
transcriptionLanguage: en
transcriptionDuration: 1847.5
transcriptionTime: 2024-12-12T05:30:00.000Zモデル選択
用途に応じてモデルを選んでください。
| モデル | サイズ | 速度 | 精度 | 最適な用途 |
|---|---|---|---|---|
| tiny | 74MB | ~32x | 低 | クイックプレビュー |
| base | 142MB | ~16x | 普通 | 短いクリップ |
| small | 466MB | ~6x | 良好 | 既定、バランス型 |
| medium | 1.5GB | ~2x | 高 | 重要なコンテンツ |
| large | 2.9GB | ~1x | 最高 | 最大精度 |
速度はメディアの長さに対する相対値です(例: ~6xは、10分の音声/動画の文字起こしに約1.5分かかることを意味します)。
おすすめ
まずはsmallモデルから始めてください。ほとんどの音声コンテンツアーカイブに対して、速度と精度のバランスが良好です。
トラブルシューティング
文字起こしボタンが表示されない
よくある原因:
- システムPATHでWhisperツールが検出されていない
- プラグイン設定で文字起こしが無効になっている
- メディアがまだローカルパスにダウンロードされていない(特にYouTube/TikTok動画)
解決策:
whisper --versionまたはfaster-whisper --versionでインストールを確認します- Settings → Social Archiver → Transcriptionで文字起こしを有効にします
- 先にメディアをローカルにダウンロードし、その後Timelineを開き直します
- ツールをインストールしたあとObsidianを再起動します
- ツールがシステムPATHに含まれていることを確認します
文字起こしに失敗する、またはタイムアウトする
よくある原因:
- 選択したモデルに対してメモリが不足している
- 音声/動画ファイルが破損している
- 非常に長いメディア(2時間以上)
- 動画文字起こしに必要なffmpegがない
解決策:
- より小さいモデルを試します(例:
tinyまたはbase) - メディアファイルが正しく再生できるか確認します
- ffmpegをインストールし、
ffmpeg -versionで確認します(動画には必須) - 利用可能なディスク容量とメモリを確認します
文字起こし品質が低い
よくある原因:
- 音声の背景ノイズ
- 複数の話者が同時に話している
- 標準的でないアクセントや専門用語
- 圧縮された動画ファイル内の低品質な元音声
解決策:
- より大きなモデル(
mediumまたはlarge)を使います - 自動検出が失敗する場合は、設定で言語を指定します
文字起こしが遅い
文字起こし速度は次に依存します。
- CPU/GPU性能
- 選択したモデルサイズ
- メディアの長さ
パフォーマンスのヒント
- Apple Silicon Mac: 最高性能には
whisper.cppを使います - NVIDIA GPU: CUDA対応の
faster-whisperを使います - CPUのみ: 実用的な速度には
tinyまたはbaseモデルを使います
言語サポート
Whisperは自動検出付きで99以上の言語に対応しています。英語以外のコンテンツで最良の結果を得るには:
- まず自動検出に言語を判定させます
- 検出に失敗した場合は、プラグイン設定で言語を手動指定します
プライバシーと保存
ローカル処理のみ
すべての文字起こしはデバイス上でローカルに行われます。メディアファイルがサーバーへアップロードされることはありません。文字起こしはObsidian Vault内にのみ保存されます。
ディスク容量
文字起こしはテキストのみで非常に小さいです(長い音声/動画コンテンツでも通常100KB未満)。Vaultサイズにはほとんど影響しません。