Windowsでローカル話者分離を始める方法|WhisperX・pyannote.audioの選び方

公開日
2026-08-09
更新日
2026-08-09
情報確認日
2026-08-09
編集・運営
Local AI Compass

複数人の音声を「誰が話した区間か」まで整理したいなら、Whisperの文字起こしだけでなく話者ダイアライゼーションを別工程として組み合わせます。WindowsではWhisperXとpyannote.audioを候補に、音声変換、Hugging Faceの利用条件、日本語alignment、CPU負荷、匿名ラベルの照合まで小さく確認します。

導入前に確認すること

  • Windowsのバージョン、メモリ容量、GPU/VRAM、空き容量を確認する
  • 最初は軽量モデル、短い質問、少ない同時作業から始める
  • 公式サイトの対応OS、利用規約、モデルのライセンスを確認する

先に結論:文字起こしと話者分離は別工程

話者分離(speaker diarization)は、音声を「話者Aが話した区間」「話者Bが話した区間」のように分ける処理です。人名を自動で当てる本人識別とは別で、最初は`SPEAKER_00`のような匿名ラベルが出るものとして扱います。

Windowsでローカル話者分離を選ぶときの比較
やりたいこと最初の候補役割と注意
1人の音声を文字にするWhisper / whisper.cpp既存の音声認識経路。話者ラベルは別途必要
複数人の区間だけ分けるpyannote.audio community-1話者ID付き区間を出す。文字起こしは別工程
文字・単語時刻・話者ラベルをまとめるWhisperX + pyannoteASR、alignment、diarizationを組み合わせる
会話をリアルタイムで分ける別のstream構成を調査ファイル処理が動いたことだけでは保証できない

まず短い音声ファイルで、音声→文字→話者区間→ラベル付きテキストの順番を確認します。Whisperだけで話者名が付く、話者分離で本人が特定できる、文字起こしが自動的に正確になる、とは考えません。

Whisperだけで話者名が付かない理由

OpenAI Whisperは音声認識、言語識別、音声翻訳のモデルです。Whisperの出力に区間時刻があっても、それは誰が話したかを判定する話者ダイアライゼーションとは別です。whisper.cppのCLI、server、stream関連機能を使っても、実装しただけで話者ラベルが追加されるわけではありません。

音声認識と話者分離の出力を分ける表
出力意味混同しやすいこと
text認識された文字話者名や発言者の確定ではない
segment timestamp音声区間の開始・終了話者の区間とは限らない
word timestamp単語に近い時刻情報文字の正しさや話者の本人確認ではない
SPEAKER_00話者ダイアライゼーションの匿名ラベル実在の人名・声紋・本人識別ではない

会議の発言録を作る場合は、Whisper単体の結果を話者別議事録と呼ばず、まず原音・区間・文字を見ます。話者が重なる、マイクが遠い、雑音が多い場合は、ASRと話者区間の両方が崩れる可能性があります。

WhisperX + pyannote.audioで文字と話者を結び付ける

WhisperX公式READMEは、Whisperの文字起こしにword-level timestamps、VAD、pyannote-audioによるspeaker diarizationを組み合わせる構成を案内しています。話者分離を有効にするには、Hugging Face access tokenとspeaker-diarization-community-1の利用条件への同意が必要です。

  1. 本人が扱う権利のある短い音声をコピーし、元ファイルを上書きしない作業フォルダを作る。
  2. ffmpegで入力形式をそろえ、音声の長さ、言語、話者数の目安を記録する。
  3. 分離したPython環境へWhisperXを準備し、Hugging Faceでtokenとモデル利用条件を確認する。
  4. まず`--diarize`なしで文字起こしを確認し、次に話者分離を加えて結果を比較する。
  5. SPEAKER_00などのラベル、区間、文字、重なり発話を原音と照合する。
ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le input.wav
whisperx input.wav --model large-v2 --diarize --hf_token <HUGGINGFACE_TOKEN>

上記は公式READMEの流れをWindows向けに読むための例で、このサイトの環境へインストールやモデル取得を行うコマンドではありません。tokenをソースコード、記事、共有ログへ書き込まず、利用するshellの安全なsecret管理方法を確認してください。

WhisperXはASR、alignment、diarizationを一度に扱える反面、すべての言語で同じalignmentモデルが自動選択されるわけではありません。日本語のword-level時刻を必要とする場合は、対象言語のalignmentモデルが現行手順で使えるかを小さい音声で検証します。

pyannote.audio単体で話者区間を出す

文字起こしが不要で「いつ話者が切り替わったか」だけ欲しい場合は、pyannote.audioの話者ダイアライゼーションパイプラインを単体で試せます。community-1のmodel cardは、音声を入力して話者区間とspeaker IDを出力する例、話者数の指定、CPU/GPU、オフライン利用を案内しています。

from pyannote.audio import Pipeline

pipeline = Pipeline.from_pretrained(
    "pyannote/speaker-diarization-community-1",
    token="HUGGINGFACE_TOKEN"
)
output = pipeline("audio.wav")

for turn, speaker in output.speaker_diarization:
    print(f"{speaker}: {turn.start:.1f}s - {turn.end:.1f}s")

community-1は音声をmono・16kHzとして扱い、入力時にdownmixやresampleが行われます。それでも、最初の比較ではffmpegで入力をそろえ、元音声のチャンネル、サンプルレート、無音、重なりを記録すると原因を追いやすくなります。

  1. Hugging Faceでモデルの利用条件、license、access tokenの扱いを確認する。
  2. pyannote.audioとffmpegを分離環境へ準備し、公開または低リスクの音声で実行する。
  3. CPUで動くことを確認し、待ち時間が用途に合わない場合だけGPU・batch・音声長を別々に検討する。
  4. outputの話者区間を、音声を聞き直しながらSPEAKER_00などの匿名ラベルとして検証する。

モデルの取得後にローカルファイルから推論する構成は作れますが、初回のモデル・Python依存関係・token認証・更新は別の通信工程です。pyannoteAIのクラウドサービスを選ぶ経路とも混同せず、処理音声がどこへ送られるかを構成ごとに確認します。

日本語・話者数・重なり発話を先に検証する

ローカル話者分離をWindowsで検証する項目
症状・条件先に固定する項目次の確認
日本語の文字と時刻がずれるASR言語、alignmentモデル、音声品質話者区間と文字を別々に確認する
話者が多くなるnum/min/max speakers、録音チャンネル実際の人数を指定できるか比較する
2人が同時に話すoverlap、マイク、会話の重なりラベルを自動確定せず原音へ戻る
CPUで非常に遅い音声長、ASRモデル、batch、compute type短い区間・小さいモデルで原因を分ける
同じ人が別ラベルになる無音、声質、録音環境、区間境界人名を付けず、区間を聞き直して修正する

pyannoteのmodel cardは、既知の話者数を`num_speakers`、範囲を`min_speakers`・`max_speakers`で渡す例を示しています。ただし、人数を指定しても話者の実名や会話内容の正しさが保証されるわけではありません。

  • まず1人の短い音声で、ASRと話者区間の出力形式を確認する。
  • 次に2人の重なりの少ない音声で、話者切り替えと無音区間を見る。
  • 最後に実際の会議条件へ近づけ、固有名詞、数字、同時発話、遠いマイクを別に評価する。
  • モデル、GPU、batch、前処理を同時に変更せず、1回の比較で変える条件を限定する。

token・license・ログを分けてローカル範囲を確認する

話者分離は「ローカルで推論できるか」だけでなく、モデルへのアクセス、token、キャッシュ、ログ、共有フォルダを分けて考えます。community-1のmodel cardには利用条件への同意、連絡先の共有条件、CC-BY-4.0 license、ローカルでのoffline利用方法が記載されています。

ローカル話者分離の通信・保存・license確認
項目確認すること避けること
Hugging Face tokenread権限、保存場所、失効方法記事・ソース・共有ログへ直書きする
モデル取得初回download、cache、更新経路取得後も通信がないと決めつける
音声と中間ファイル元音声、WAV、字幕、RTTM、JSONの保存先同じ名前で上書きし、削除対象を混ぜる
外部providerpyannoteAI、外部API、同期、共有フォルダlocal modelとcloud providerを同じ扱いにする
license・同意モデルカード、利用条件、用途、再配布条件モデル名だけで商用可否を断定する

音声には個人情報や機密会話が含まれる可能性があるため、最初は公開音声または権利を確認できる短い素材で試します。処理後の文字起こしや話者ラベルも音声から派生したデータとして保存期間と削除方法を確認します。

ラベル付き文字起こしを確定する前の確認手順

  1. 元音声、変換WAV、ASR結果、話者区間、ラベル付きテキストを別ファイルで保存する。
  2. 数十秒の区間を選び、文字、開始・終了時刻、SPEAKERラベルを原音と照合する。
  3. 同時発話、固有名詞、数字、否定、話者切り替え、無音区間を確認する。
  4. 本人の名前を割り当てる場合は、人が音声と文脈を確認してから手動で対応表を作る。
  5. 重要な議事録や法務・医療・人事用途では、自動出力を最終記録とせず人が承認する。

話者分離の到達点は、全会話を自動で完璧な議事録に変えることではありません。どの音声条件で、どの処理段階が、どの程度の誤りを出すかを再現し、聞き直す場所を絞れる状態を作ることです。

よくある質問

Whisperだけで話者分離できますか?

Whisperは主に音声認識のモデルで、文字と区間時刻を出します。話者ごとの区間やSPEAKER_00のようなラベルが必要なら、pyannote.audioなどの話者ダイアライゼーション工程を別に組み合わせます。

WindowsでWhisperXの話者分離は完全オフラインですか?

モデルと依存関係を準備した後の推論をローカルで行う構成は作れますが、Hugging Faceのtoken・利用条件、モデル取得、更新、外部provider、ログは別に確認が必要です。

日本語の話者分離はできますか?

日本語音声をASRへ渡すことはできますが、WhisperXのword-level alignmentは言語別モデルの確認が必要です。話者区間、文字、時刻を分けて短い日本語音声で検証し、英語向けの既定条件をそのまま日本語へ一般化しないでください。

話者分離にGPUは必要ですか?

pyannote.audioのcommunity-1はCPUでも実行できます。長い音声や複数モデルを組み合わせると待ち時間やメモリ使用量が増えるため、まず短い音声をCPUで試し、必要ならGPUやモデルサイズを別々に比較します。

SPEAKER_00を実際の人名に変えられますか?

自動出力のSPEAKER_00は匿名ラベルです。誰の声かを人が原音と文脈で確認し、手動の対応表を作る工程は別に必要です。話者分離だけで本人の身元を確定しないでください。

リアルタイム会議の話者分離に使えますか?

ファイル処理が動いたことだけでは、リアルタイムの遅延、話者切り替え、重なり発話を保証できません。まず録音ファイルで精度と処理時間を確認し、stream構成は別の要件として公式資料と実環境で検証します。

次に読むおすすめルート

初めてローカルAIを触る人

まず全体像をつかみ、LM StudioとOllamaの違い、モデルサイズの考え方を順番に確認します。

  1. クラウドAIとローカルAIの使い分け
  2. ローカルLLMとは
  3. ローカルAIを入れる前に確認すること
  4. WindowsでローカルAIを始める完全ガイド
  5. Windows ARMでローカルAIを使う前の確認
  6. WindowsでOllamaをインストールする
  7. Windowsでローカル音声認識を始める
  8. WindowsでローカルOCRを始める
  9. WindowsでローカルAI翻訳を始める
  10. LM Studioとは
  11. GGUFとは
  12. GGUF版とは
  13. GGUFファイル名の読み方
  14. LM StudioでGGUFを入れる方法
  15. LM Studioで画像を読み込む方法
  16. LM Studioのモデル保存場所と移動
  17. 小型LLM・量子化の現実
  18. GGUF量子化安全とRAG/NPU研究
  19. Quant.npuとNPU向け静的量子化
  20. LENSで見るNPUレイテンシ予測
  21. Copilot+ PCのNPU期待値
  22. Hugging Face安全チェック
  23. PDF/RAG/引用確認の現実
  24. LM Studioで最初に選ぶモデル
  25. GGUFモデル選び診断
  26. Hugging FaceでGGUFモデルを探す方法
  27. Q4/Q5/Q8の違いと選び方
  28. 日本語GGUFモデルの選び方
  29. Q4/Q5/Q8研究ガイド
  30. Hermes Desktopとは
  31. Hermes DesktopとLM Studio接続
  32. Hermes DesktopとOllama接続
  33. Hermes Desktop接続トラブル
  34. Hermes AgentとDesktopの違い
  35. ローカルLLMツール比較
  36. ローカルAI更新メモ
  37. 診断ページ

あなたはどのタイプ?

関連チェック先

関連ツール

    比較表を見る / 最初に検討しやすいツールを確認する