話者ダイアライゼーション徹底解説:機械はどうやって「誰が何を話したか」を知るのか
文字起こしダイアライゼーション基礎知識

話者ダイアライゼーション徹底解説:機械はどうやって「誰が何を話したか」を知るのか

BMMamane B. MoussaMay 26, 2026Updated July 2, 20262 min read

Summarize this article with:

TL;DR

話者ダイアライゼーションは、各音声セグメントを声のベクトルとして符号化し、類似したベクトルを話者グループへクラスタリングすることで、「いつ誰が話しているか」に答える文字起こしの機能です。クリーンな2話者音声では最新システムはDER10%未満を達成します(pyannoteはVoxConverseで9.0%、Deepgram v2は2026年5月に登場)。一方、DIHARD IIIのような難しい多話者音声では、トップシステムでも11〜14%にとどまります。最大の失敗要因は発話の重なりです。録音ボタンを押す前に録音環境を整えることは、どの編集後処理のテクニックよりも多くのエラーを取り除きます。

話者ダイアライゼーションは、文字起こしの中で「誰が何を話したか」を割り出す役割を担う部分です。これがないと、2人のインタビューは途切れのない独り言のようにしか読めません。これがあると、同じ文字起こしが脚本のように読め、それぞれの声が正しく帰属し、すべての引用を出所までたどれます。

この記事では、最新のダイアライゼーションを支えるパイプライン、声を確実にクラスタリングできる理由、主な失敗モード、DER精度指標の読み方、そして録音できれいな話者ラベルを得るために実践できる手順を取り上げます。

ダイアライゼーションとは何で、何ではないのか

ダイアライゼーションが答えるのは「いつ誰が話しているか」という問いであり、「この人は具体的に誰か」ではありません。 ダイアライゼーションシステムは、既知の人物データベースと照合するのではなく、音響的特徴に基づいて話者に「話者1」「話者2」「話者3」とラベルを付けます。事後に話者へタグを付け(「話者1はAlice」)、一度の置換ですべての出現箇所を修正できます。

ダイアライゼーションと混同されやすい関連タスクが2つあります。

  • 音声区間検出(VAD)。 無音・音楽・ノイズと対比して、そもそもどこで発話が起きているかを判定します。ダイアライゼーションはVADがすでに実行済みであることを前提とします。上流のステップについてはVADの仕組みをご覧ください。
  • 話者識別。 未知の声を、登録済みの既知人物のサンプルと比較します(「これはAliceの声に聞こえる」)。データベースが必要です。ダイアライゼーションの方がシンプルで、より一般的なニーズです。

ほとんどのインタビューや会議のユースケースでは、識別なしのダイアライゼーションで十分です。一度特定すれば、あとは全体へ反映できます。

埋め込み・クラスタリングのパイプライン

標準的なダイアライゼーションパイプラインは4つの段階で構成されますが、最新のシステムでは4回の逐次呼び出しとしてではなく、単一のニューラルパスとして実装されています。

  1. VAD。 無音、BGM、非発話領域を除去します。
  2. セグメンテーション。 残りの音声を短いウィンドウに切り分けます。通常は各区間1.5〜3秒です。
  3. 埋め込み。 各セグメントを、そのセグメントの声の特徴を捉えた高次元ベクトルとして符号化します。
  4. クラスタリング。 類似した埋め込みを持つセグメントを話者クラスタにまとめ、各クラスタにラベルを割り当てます。

出力は(開始時刻、終了時刻、話者ラベル)のタプル列です。単語の書き起こしは別のASRステップが担当し、ダイアライゼーションの出力が単語を話者へ対応付けます。

文字起こし全体の中でダイアライゼーションがどこに位置づけられるかを知りたい方は、AI文字起こしの仕組みの記事で、アップロードから整形済み出力までの製品パイプライン全体を解説しています。

声の埋め込みが機能する理由

ダイアライゼーションを可能にする鍵は、言葉が変わっても声の音響的特徴が安定しているという点にあります。 ピッチの範囲、フォルマント周波数(母音を区別する共鳴)、話す速さ、呼吸のパターン、音素の癖は、会話を通じて一人の人間にとって驚くほど一貫しています。

ECAPA-TDNN、NVIDIA NeMoのTitaNet、x-vectorアーキテクチャといった最新の話者埋め込みモデルは、短い音声セグメントを受け取り、192〜512次元のベクトルを出力します。同じ話者の2つのセグメントはその空間内で近くに集まり、異なる話者のセグメントはより離れて位置します。グルーピングは凝集型クラスタリングやスペクトラルクラスタリングのアルゴリズムが担います。

数学的な部分がボトルネックではありません。ボトルネックは、こうした前提が崩れたときに何が起きるかです。

ダイアライゼーションが失敗する場面

実際の録音で遭遇する5つの失敗モードは以下の通りです。

話者のオーバーラップ(発話の重なり)

2人が同時に話すと、カスケード型のほとんどのシステムは片方の話者を選び、もう片方を捨てます。重なった言葉は片方のラベルに割り振られ、もう片方の話者の発言は黙って失われます。これはパネルディスカッション、白熱した議論、テンポの速いインタビューにおける最大の単一エラー源です。

EENDモデルとも呼ばれるエンドツーエンドのニューラルダイアライゼーション手法は、ダイアライゼーションをマルチラベル予測問題として扱い、1つのセグメントを2人の話者に同時に割り当てられます。オーバーラップへの対処は改善しますが、システムの複雑さは増します。ほとんどの実務ワークフローでは、本当の解決策はマイク運用の徹底です。

似ている声

ピッチ、アクセント、話す速さが似ている2人の話者は、思った以上にしばしば1つのクラスタへ統合されてしまいます。同性のみのパネルや家族同士のインタビューは典型的なトラブルケースです。埋め込みが大きく重なっていれば、モデルには声が別人だと知る術がありません。

話者ごとの独立したマイクチャンネルなら、この問題を根本的に解決できます。それが不可能な場合は、ある程度の手動修正を見込んでください。

短い発話

一言の相槌(「うん」「そう」「まさにそう」)は、確信度の高い話者割り当てに足る音声量が不足しがちです。ほとんどのシステムは推測する(しばしば外れる)か、そのセグメントをスキップします。片方が短い質問を立て続けに投げるやり取り形式のインタビューでは、話者誤認の問題が非常に目立ちます。

背景の声

背景のテレビ、薄い壁越しに聞こえる別の会話、スマホからの音声再生——いずれもダイアライザーには新しい話者として扱われます。2人のインタビューのはずが突然4人の話者が表示され、参加者2人に加えてニュース番組に出演中の誰かが紛れ込むわけです。静かな場所で録音することが安価な解決策です。

話者数の推定

ほとんどのシステムは、話者数を自動検出するか、ヒントを受け付けます。自動検出は完璧ではありません。たとえばDeepgramのダイアライゼーションは、人数の入力を求めずに自動検出し、16人以上の話者でも正確な結果を得られると謳っています。Pyannoteは話者数を任意のヒントとして受け付けます。使っているツールがパラメータに対応しており、話者数がわかっているなら指定してください。ツールが自動推定する場合は、出力の最初の1分間を慎重に確認しましょう。

CATTの会議文字起こしツールでの話者ラベル表示
CATTの会議文字起こしツールでの話者ラベル表示

Diarization Error Rate(DER)の解説

DERはダイアライゼーションの標準的な精度指標です。 計算式は3種類のエラーを組み合わせます。

  • 話者混同。 発話は正しく検出されたが、誤った話者が割り当てられた。
  • 脱漏。 実際の発話が無音としてラベル付けされた。
  • 誤検出。 無音やノイズが発話としてラベル付けされた。

DER =(誤検出+脱漏+話者混同)/ 参照発話の総時間。

DER10%未満は、現実世界のほとんどの音声ドメインで一般的に良好とみなされます。

システムベンチマークDER
pyannote(pyannote.ai)VoxConverse9.0%
Picovoice FalconVoxConverse10.3%
Amazon TranscribeVoxConverse11.1%
PyannoteAIDIHARD III11.2%
DiariZen(オープンソース)DIHARD III13.3%
EEND-TADIHARD III14.5%
Google STTダイアライゼーションVoxConverse50.2%

出典:Picovoice公開ベンチマーク(VoxConverse)および独立系研究ベンチマーク(DIHARD III)、2026年7月。

DER10%は、およそ10秒に1秒の割合で話者ラベルが誤っていることを意味します。60分のファイルなら、6分間の帰属誤りがある計算です。これが問題になるかどうかはユースケース次第です。大まかな会議の要約なら許容できます。法廷記録では許容できません。

私の見方:最高峰のオープンソースツールと物足りない商用アドオンの差は膨大で、極端なケースでは40ポイントを超えます。ここでは、ブランド全体ではなく基盤となるダイアライゼーションモデルでツールを選ぶことが、他のほぼすべての文字起こし機能よりも重要です。

文字起こしスタック全体で精度がどう測定されるかについては、文字起こし精度の解説をご覧ください。

きれいなダイアライゼーションのための実践ステップ

録音側をコントロールできるなら、最も効くレバーは以下の通りです。

  • 話者ごとにマイクを1本。 参加者ごとにUSBマイク、ピンマイク、ヘッドセットを用意します。これだけで、ダイアライゼーションの難しさの大部分を発生前に取り除けます。
  • 可能なら音声チャンネルを分ける。 マルチトラック録音(Riverside、Zencastr、または各参加者のマシンでのローカル収録)により、ダイアライザーはミックス済みストリームを分離する代わりにチャンネルごとに処理できます。チャンネルベースの帰属は実質的に解決済みの課題です。
  • 発話の合間に短いポーズ。 半秒の間隔があれば、システムは話者の境界を確実に検出しやすくなります。
  • 静かな環境。 テレビを消し、ドアを閉め、その場の他の人には静かにしてもらいましょう。
  • 対応していれば話者数を指定。 ファイル内の話者数がわかっていて、ツールがそのヒントを受け付けるなら活用します。

会議の録音については特に、Zoom会議の文字起こし方法の実践ガイドで、ダイアライゼーションをほぼ完璧に近づけるチャンネルレベルの録音設定を解説しています。

後からファイルを受け取ったとき

録音をコントロールできなかった場合は、手持ちの素材で作業することになります。回復のためのワークフローは以下の通りです。

  • 高品質なダイアライゼーションツールを実行する。 Pyannote、diarize_model=latestを指定したDeepgram(2026年5月のDeepgramドキュメントによると現在推奨のパラメータで、非推奨となったdiarize=trueの置き換え)、またはspeaker_labels: trueを指定したAssemblyAI。3つとも、典型的なインタビュー・会議音声に対して高い精度を発揮します。
  • ツールが受け付けるなら話者数を指定する。 APIがこのヒントに対応している箇所では、推定ノイズを減らせます。
  • 最初の1分間を丁寧に確認する。 冒頭でラベルが正しければ、通常は全体を通じて正しいままです。エラーは、モデルが話者の同一性を較正している冒頭に集中します。
  • 既知の混乱ポイントを検索する。 短い相槌、重なったセグメント、話者の交代は、エラーが集中する箇所です。
  • 話者へのタグ付けは手動で一度だけ。 残りは置換で処理します。

自分でダイアライゼーションパイプラインを組まずに、きれいな話者ラベル付き文字起こしだけが必要なら、CATTの会議文字起こしツールがアップロード時に自動でダイアライゼーションを実行します。

ダイアライズ済み文字起こしが実現すること

話者ラベル付きの文字起こしは、ラベルなしでは実現できないワークフローを開きます。

  • 話者ごとの発言文字数。 会議で誰が支配的になっていますか?
  • 話者ごとの分析。 参加者ごとの感情、各自が提起したトピック。
  • より良いLLM要約。 モデルは「参加者が議論しました」ではなく「AliceはXと主張し、BobはYと反論しました」のような出力を生成できます。
  • 引用の抽出。 リサーチノートや顧客の声のために、話者2の発言をすべて抜き出します。

インタビューの文字起こしについては特に、インタビュー録音の文字起こし方法のガイドで、話者ラベルを構造化出力へマッピングする方法を紹介しています。

ダイアライゼーションが不要なとき

録音が単一話者(ボイスメモ、講義、ソロポッドキャスト)なら、ダイアライゼーションはオフにしましょう。文字起こしの処理は速くなり、ダイアライゼーションのエラーが独り言に幻の話者区切りを紛れ込ませる小さなリスクも避けられます。

2人以上の声が含まれるものすべてにおいて、ダイアライゼーションは有効にする価値があります。コストは最小

Try transcription free

Convert any audio or video to clean, unwatermarked text — speaker labels, timestamps, and AI summaries included. First 10 minutes free, no account.

Related Articles