Skip to content

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

ローカルのWhisperエンジンを使って、音声ファイルや動画ファイルから文字起こしを生成できます。すべての処理はデバイス上で行われます。macOSではSocial Archiverデスクトップアプリがバンドル済みのWhisperKitバックエンドを使用でき、Obsidianやフォールバック構成では従来のCLIバックエンドも引き続き利用できます。

デスクトップアプリ設定(macOS WhisperKit)

macOSのスタンドアロンデスクトップアプリでは、WhisperKitを最初に使うバックエンドとして推奨します。Python、HomebrewベースのWhisperツール、別個のモデルファイルをユーザーが手動で用意しなくても、最初の文字起こしを始められます。

  1. デスクトップアプリでSettings → AI → Transcription executorを開きます。
  2. Whisper backendAutoまたはWhisperKitに設定します。Autoは、バンドルhelperとモデルが準備できている場合にWhisperKitを先に使い、必要に応じてインストール済みCLIバックエンドへフォールバックします。
  3. WhisperKit modelバナーでドロップダウンからモデルを選び、ダウンロードアイコンをクリックします。
  4. 円形の進捗表示が完了するまでアプリを開いたままにします。インストール済みモデルは同じバナーから削除でき、ディスク容量の確保や再インストールに使えます。
  5. ローカルメディアが保存されたTimeline項目を開き、Transcribeをクリックします。すでにtranscriptがある項目では追加の文字起こしフローになり、別の言語やモデル結果を追加できます。

WhisperKitモデル

モデル向いている用途メモ
Tiny簡単なプレビュー最小かつ最速、精度は低め
Small日常利用ほとんどのアーカイブ音声に推奨されるバランス型
Large v3 turbo品質重視量子化済みWhisperKitモデル。現在のデスクトップビルドでは約632 MBティア

言語とモデル選択

文字起こしモーダルでは、実行ごとにWhisperKitモデルと言語を選べます。デフォルトの言語はMatch originalです。自動検出が誤った言語を選ぶ場合は、開始前に韓国語、英語、日本語などの具体的な言語を選択してください。複数のtranscriptがある場合は、Timelineプレーヤーのコントロール付近にあるtranscript言語ドロップダウンで切り替えられます。

動画とダウンローダーについて

WhisperKitはmacOSで対応する音声をローカルに処理します。動画では引き続き音声抽出が必要になることがあり、リモート動画ジョブにはダウンローダーも必要です。YouTube、TikTokなどの動画投稿を文字起こしする場合は、管理対象のyt-dlpffmpeg/ffprobeを用意してください。

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

モバイルアプリで文字起こしを利用できないと表示される場合は、モバイルリクエストを実行できるデスクトップ実行環境がまだ準備できていません。スタンドアロンアプリはデスクトップアプリ設定を使ってください。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も実行されることがあります。スタンドアロンデスクトップアプリはネイティブmacOSバックエンドにバンドル済みWhisperKit helperを使いますが、動画抽出とリモート動画ダウンロードには引き続きメディアツールを使用します。コマンドは文字起こし機能を有効にしてジョブをリクエストした場合にのみ実行されます。モバイルのリクエストはジョブをキューに入れられますが、モバイルObsidianがローカルのシェルコマンドを実行するわけではありません。実際の実行は、接続されたデスクトップ実行環境で行われます。

概要

Social Archiverでメディアをアーカイブしたあと、コンピューター上でローカルに動作するWhisper音声認識モデルを使って、完全な文字起こしを生成できます。ポッドキャスト音声、保存済みローカルファイル、Timeline内のYouTube/TikTokワークフローを含むダウンロード済み動画ファイルに対応しています。

なぜローカル処理なのか

この機能は、次の2つの点を考慮して設計されています。

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

  2. APIコストなし: 分単位で課金されるクラウド型文字起こしサービスとは異なり、ローカルWhisperは一度インストールすれば完全に無料で使えます。

その代わり、追加ツールのインストールが必要で、文字起こし速度はコンピューターの性能に依存します。

要件

次のローカル音声認識バックエンドのいずれかが必要です。

ツールCLI同梱速度自動モデルダウンロード
WhisperKit(macOSデスクトップアプリ)バンドルhelper高速✓ アプリ内モデルダウンロード
faster-whisperなし(ラッパーが必要)最速✓ あり
openai-whisperあり中程度✓ あり
whisper.cppあり高速✗ 手動

デスクトップ専用 + FFmpegについて

  • 文字起こしはデスクトップ専用です。
  • スタンドアロンデスクトップアプリは、バンドルhelperがあり、少なくとも1つのモデルがダウンロード済みならmacOSでWhisperKitを使用できます。
  • 動画文字起こし(.mp4.webm.mov.avi.mkv.m4v)にはffmpegを用意してください。ネイティブ音声入力だけでは足りない場合、Social ArchiverはWhisperを実行する前に動画から音声を抽出します。

おすすめ

  • macOSのSocial Archiverデスクトップアプリ: まずWhisperKitを使ってください。モデルインストールが最も簡単で、ネイティブローカル文字起こしの標準配布パスです。
  • Apple Silicon Mac(M1/M2/M3/M4)のObsidianプラグイン: CLI性能を重視する場合は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項目にローカル音声/動画が保存済み文字起こしモーダルでモデルと言語を選択
追加言語のtranscriptTimeline項目にすでにtranscriptがある文字起こしモーダルを再度開き、別の言語/モデルを選択
ポッドキャスト音声アーカイブ済みノートにローカル音声が存在Timelineにダウンロード済み/ローカル音声用の文字起こしバナーを表示
YouTube/TikTok動画ローカル動画が存在(先にダウンロード済み)Timelineにローカル動画用の文字起こしバナーを表示
アーカイブフォルダー内の既存ローカル動画Settingsでバッチ文字起こしを実行バッチモード(transcribe-onlyまたはdownload-and-transcribe)を使用

仕組み

  1. アーカイブ + メディアをダウンロード: 項目に保存済みのローカル音声/動画ファイルがあることを確認するか、リモート動画ではダウンロード後に文字起こしするフローを選びます。
  2. Timelineで開く: Timeline viewでアーカイブ済み投稿を表示します。
  3. Transcribeをクリック: 利用可能なローカルメディア、またはダウンロード後に文字起こしするアクションを選びます。
  4. モデルと言語を選択: デスクトップアプリのWhisperKit実行では、文字起こしごとにインストール済みモデルと言語を選べます。デフォルトはMatch originalです。
  5. 処理を待つ: Whisperがローカルで実行される間、進行状況が表示されます。
  6. transcriptを確認: transcriptはアーカイブ項目と一緒に保存され、Timelineに表示されます。複数のtranscriptがある場合は、プレーヤーのtranscript言語ドロップダウンで切り替えます。

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

動画ファイルの場合、Social Archiverはまずffmpegでモノラル16kHz WAV音声を抽出し、その抽出音声に対してWhisperを実行することがあります。音声のみのファイルは、対応していればネイティブバックエンドで直接処理できます。

文字起こし機能

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

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

検索(デスクトップ)

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

折りたたみ/展開

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

文字起こしの保存場所

デスクトップアプリはtranscriptをアーカイブ項目と一緒に保存し、Timelineで表示します。Obsidianプラグインがvaultへ書き戻す場合、文字起こしは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

モデル選択

バックエンドと用途に応じてモデルを選んでください。

デスクトップアプリのWhisperKitバックエンド:

モデル速度精度最適な用途
Tiny最速簡単な確認と短いクリップ
Small高速良好既定、バランス型
Large v3 turboやや低速重要なコンテンツ、ノイズの多いコンテンツ、韓国語/英語の混在コンテンツ

CLI Whisperバックエンド:

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

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

おすすめ

まずはsmallモデルから始めてください。ほとんどの音声コンテンツアーカイブに対して、速度と精度のバランスが良好です。重要なコンテンツ、ノイズの多いコンテンツ、複数言語が混在するコンテンツで、多少遅くてもよい場合はLarge v3 turboを使ってください。

トラブルシューティング

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

よくある原因:

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

解決策:

  1. デスクトップアプリではWhisperKitを選び、モデルをダウンロードして、readiness行がReadyになることを確認します。
  2. CLIバックエンドではwhisper --versionまたはfaster-whisper --versionでインストールを確認します。
  3. Settings → Social Archiver → Transcriptionで文字起こしを有効にします。
  4. 先にメディアをローカルにダウンロードし、その後Timelineを開き直します。
  5. ツールをインストールしたあとObsidianを再起動します。
  6. CLIツールがシステムPATHに含まれていることを確認します。

文字起こしに失敗する、またはタイムアウトする

よくある原因:

  • 選択したモデルに対してメモリが不足している
  • 音声/動画ファイルが破損している
  • 非常に長いメディア(2時間以上)
  • 動画文字起こしに必要なffmpegがない

解決策:

  • より小さいモデルを試します(例: tinyまたはbase
  • メディアファイルが正しく再生できるか確認します
  • ffmpegをインストールし、ffmpeg -versionで確認します(動画には必須)
  • 利用可能なディスク容量とメモリを確認します
  • WhisperKitが失敗する場合は、デスクトップアプリのInstallation status detailsを開き、helper/modelの状態を確認します

文字起こし品質が低い

よくある原因:

  • 音声の背景ノイズ
  • 複数の話者が同時に話している
  • 標準的でないアクセントや専門用語
  • 圧縮された動画ファイル内の低品質な元音声

解決策:

  • より大きなモデル(mediumまたはlarge)を使います
  • 自動検出が失敗する場合は、文字起こしモーダルまたは設定で言語を指定します

文字起こしが遅い

文字起こし速度は次に依存します。

  • CPU/GPU性能
  • 選択したモデルサイズ
  • メディアの長さ

パフォーマンスのヒント

  • macOSデスクトップアプリ: まずWhisperKitを使います
  • Apple Silicon MacのObsidianプラグイン: CLI性能を重視する場合はwhisper.cppを使います
  • NVIDIA GPU: CUDA対応のfaster-whisperを使います
  • CPUのみ: 実用的な速度にはtinyまたはbaseモデルを使います

言語サポート

Whisperは自動検出付きで99以上の言語に対応しています。英語以外のコンテンツで最良の結果を得るには:

  1. 最初の実行では言語をMatch originalのままにします。
  2. 検出に失敗した場合は、文字起こしモーダルまたはプラグイン設定で言語を手動指定します。
  3. 両方のバージョンを保持したい場合は、対象言語で追加の文字起こしを実行し、Timelineでtranscript言語を切り替えます。

プライバシーと保存

ローカル処理のみ

すべての文字起こしはデバイス上でローカルに行われます。メディアファイルが文字起こしサーバーへアップロードされることはありません。デスクトップアプリはtranscriptをアーカイブ項目と一緒に保存し、Obsidianプラグインはvaultに保存します。

ディスク容量

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

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