Skip to content

Whisper文字起こし(音声・動画)

Whisper AIを使って、ローカルの音声ファイルや動画ファイルから文字起こしを生成できます。すべての処理はデバイス上で行われます。

モバイルリクエストの設定チェックリスト

モバイルアプリで文字起こしを利用できないと表示される場合は、文字起こしを実行できるデスクトップObsidianクライアントがまだ準備できていません。まず次を確認してください。

  1. macOS、Windows、LinuxのSocial Archiver Obsidianプラグインをインストールし、モバイルアプリと同じアカウントでサインインします。デスクトップ側の設定場所はプラグイン設定を参照してください。
  2. モバイルから送られた文字起こしジョブを受け取れるように、デスクトップObsidianを開いたまま接続状態にします。リクエストの流れは仕組みにまとめています。
  3. デスクトップObsidianでSettings → Social Archiver → Transcription Settingsを開き、Enable Whisper transcriptionをオンにします。この設定はプラグイン設定で確認できます。
  4. Whisper互換ツールをインストールします。Windowsではopenai-whisperが最も簡単で、Apple Silicon Macではwhisper.cpp、Linux/CPU環境ではfaster-whisperが高速です。
  5. 動画の文字起こしには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つの点を考慮して設計されています。

  1. プライバシー: メディアファイルはデバイスの外に出ません。すべての文字起こしはオープンソースツールを使ってローカルで行われるため、機密性の高いコンテンツでも完全なプライバシーを確保できます。

  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倍高速で、メモリ使用量も少なくなります。モデルは初回使用時に自動的にダウンロードされます。

CLIラッパーが必要

faster-whisperは組み込みCLIを持たないPythonライブラリです。CLIラッパースクリプトをインストールする必要があります。

Windowsユーザー

Windowsでは、代わりにopenai-whisperの使用をおすすめします(下のOption 2を参照)。CLIが最初から含まれており、追加セットアップは不要です。それでもWindowsでfaster-whisperを使いたい場合は、下のWindows専用手順に従ってください。

macOS / Linuxインストール

Step 1: ライブラリをインストール

bash
pip install faster-whisper
bash
# 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-whisper

Step 2: CLIラッパーをインストール

ラッパースクリプトをダウンロードし、PATH内に保存します。

bash
# 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-whisper

macOSユーザー: shebangを更新

Step 1でvenvにfaster-whisperをインストールした場合は、スクリプトのshebangをvenvのPythonに更新する必要があります。

bash
# スクリプトの1行目を置き換える
sed -i '' '1s|.*|#!/Users/'$USER'/.local/share/faster-whisper-venv/bin/python|' ~/.local/bin/faster-whisper

Step 3: PATHに追加(まだの場合)

bash
# シェル設定(~/.zshrc または ~/.bashrc)に追加
export PATH="$HOME/.local/bin:$PATH"

# シェルを再読み込み
source ~/.zshrc  # または ~/.bashrc

インストール確認:

bash
faster-whisper --version

Windowsインストール

Step 1: ライブラリをインストール

powershell
pip install faster-whisper

Step 2: CLIラッパーをインストール

PowerShellを開いて実行します。

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というファイルを作成します。

batch
@echo off
python "%~dp0faster-whisper.py" %*

または、次のPowerShellコマンドを実行します。

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" %*'

インストール確認:

powershell
faster-whisper --version

Option 2: openai-whisper

OpenAIによる元のPython実装です。インストールが簡単で、そのまま動作します。モデルは初回使用時に自動的にダウンロードされます。

macOS / Linuxインストール

bash
# Python 3.8+が必要
pip install openai-whisper

# またはpipxでインストール(分離のため推奨)
pipx install openai-whisper

インストール確認:

bash
whisper --help

Windowsインストール

前提条件が必要

Windowsユーザーは、openai-whisperを使う前にFFmpegをインストールし、PyTorchが正しく設定されていることを確認する必要があります。

Step 1: FFmpegをインストール

FFmpegはメディア処理に必要です。いずれかの方法を選びます。

powershell
winget install ffmpeg
powershell
choco install ffmpeg
powershell
# 1. https://ffmpeg.org/download.html からダウンロード(Windows builds)
# 2. C:\ffmpeg に展開
# 3. C:\ffmpeg\bin をシステムPATHに追加

インストール後、FFmpegがPATHにあることを確認します。

powershell
ffmpeg -version

Step 2: openai-whisperをインストール

powershell
# Python 3.8+が必要
pip install openai-whisper

これによりPyTorchも自動的にインストールされます。NVIDIA GPUアクセラレーションを使う場合は、先にCUDA版をインストールします。

powershell
# 任意: CUDA対応PyTorchをインストール(NVIDIA GPU向け)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

# その後whisperをインストール
pip install openai-whisper

Step 3: Python ScriptsをPATHに追加(まだの場合)

powershell
# Python Scriptsのパスを探す
python -c "import sys; print(sys.prefix + '\\Scripts')"

# このパスをシステムPATH環境変数に追加します
# 通常: C:\Users\<username>\AppData\Local\Programs\Python\Python3xx\Scripts

インストール確認:

powershell
whisper --help

トラブルシューティング

whisperコマンドが見つからない場合:

  1. PATH変更後にターミナル/PowerShellを再起動します
  2. 代わりにpython -m whisperとして実行してみます
  3. Python ScriptsフォルダーがPATHに含まれていることを確認します

Option 3: whisper.cpp

高性能なC++実装です。Metal GPUアクセラレーションを使えるApple Silicon Macで最高の性能を発揮します。

手動モデルダウンロードが必要

whisper.cppを使うには、使用前にGGMLモデルファイルを手動でダウンロードする必要があります。

インストール:

bash
# 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

モデルをダウンロード:

bash
# 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/

インストール確認:

bash
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-whisperCTranslate2~/.cache/huggingface/
openai-whisperPyTorch (.pt)~/.cache/whisper/
whisper.cppGGML (.bin)手動指定場所

対応ワークフロー

ワークフロートリガー備考
ポッドキャスト音声アーカイブ済みノートにローカル音声が存在Timelineにダウンロード済み/ローカル音声用の文字起こしバナーを表示
YouTube/TikTok動画ローカル動画が存在(先にダウンロード済み)Timelineにローカル動画用の文字起こしバナーを表示
アーカイブフォルダー内の既存ローカル動画Settingsでバッチ文字起こしを実行バッチモード(transcribe-onlyまたはdownload-and-transcribe)を使用

仕組み

  1. アーカイブ + メディアをダウンロード: ノートにローカル音声/動画ファイルがあることを確認します
  2. Timelineで開く: Timeline viewでアーカイブ済み投稿を表示します
  3. 文字起こしボタンをクリック: 文字起こしバナーのマイクアイコンをクリックします
  4. 処理を待つ: Whisperがローカルで実行される間、進行状況が表示されます
  5. 文字起こしを確認: 文字起こしはノートに保存され、Timelineにも表示されます

動画文字起こしパイプライン

動画ファイルの場合、Social Archiverはまずffmpegでモノラル16kHz WAV音声を抽出し、その抽出音声に対してWhisperを実行します。

文字起こし機能

インタラクティブなタイムスタンプ

文字起こし内の任意のタイムスタンプをクリックすると、メディアプレイヤーのその位置へジャンプします。再生中は現在のセグメントがハイライトされます。

検索(デスクトップ)

検索ボックスを使って、文字起こし内の特定の単語やフレーズを探せます。

折りたたみ/展開

スペースを節約するため、文字起こしは最初は折りたたまれた状態で表示されます。クリックして展開すると全文を表示できます。

文字起こしの保存場所

文字起こしは、Markdownファイル内の## Transcriptセクションに直接保存されます。

markdown
## Transcript

[00:00] Welcome everyone...

[00:15] Today we're discussing...

メタデータはYAML frontmatterに保存されます。

yaml
transcriptionModel: small
transcriptionLanguage: en
transcriptionDuration: 1847.5
transcriptionTime: 2024-12-12T05:30:00.000Z

モデル選択

用途に応じてモデルを選んでください。

モデルサイズ速度精度最適な用途
tiny74MB~32xクイックプレビュー
base142MB~16x普通短いクリップ
small466MB~6x良好既定、バランス型
medium1.5GB~2x重要なコンテンツ
large2.9GB~1x最高最大精度

速度はメディアの長さに対する相対値です(例: ~6xは、10分の音声/動画の文字起こしに約1.5分かかることを意味します)。

おすすめ

まずはsmallモデルから始めてください。ほとんどの音声コンテンツアーカイブに対して、速度と精度のバランスが良好です。

トラブルシューティング

文字起こしボタンが表示されない

よくある原因:

  • システムPATHでWhisperツールが検出されていない
  • プラグイン設定で文字起こしが無効になっている
  • メディアがまだローカルパスにダウンロードされていない(特にYouTube/TikTok動画)

解決策:

  1. whisper --versionまたはfaster-whisper --versionでインストールを確認します
  2. Settings → Social Archiver → Transcriptionで文字起こしを有効にします
  3. 先にメディアをローカルにダウンロードし、その後Timelineを開き直します
  4. ツールをインストールしたあとObsidianを再起動します
  5. ツールがシステム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以上の言語に対応しています。英語以外のコンテンツで最良の結果を得るには:

  1. まず自動検出に言語を判定させます
  2. 検出に失敗した場合は、プラグイン設定で言語を手動指定します

プライバシーと保存

ローカル処理のみ

すべての文字起こしはデバイス上でローカルに行われます。メディアファイルがサーバーへアップロードされることはありません。文字起こしはObsidian Vault内にのみ保存されます。

ディスク容量

文字起こしはテキストのみで非常に小さいです(長い音声/動画コンテンツでも通常100KB未満)。Vaultサイズにはほとんど影響しません。

MITライセンスで公開されています。