話者分離とは?文字起こしで「誰が話したか」を見分ける仕組み

話者分離(話者ダイアライゼーション)の仕組みをわかりやすく解説。話者認識との違い、精度が落ちる原因、話者ラベル付きの文字起こしをきれいに仕上げるコツを紹介します。

3人分の声が色分けされた区間に分かれた波形と、それぞれの区間が文字起こしの話者ラベル付きの行に対応している様子

他の言語でも読めます: English, Русский, Українська, Dansk, Deutsch, Español, Français, Italiano, Magyar, Nederlands, Norsk bokmål, Polski, Português (Brasil), Suomi, Svenska, Türkçe, Ελληνικά, עברית, العربية, 한국어, 中文(中国), 中文(台灣), Indonesia, Tiếng Việt

話者分離(話者ダイアライゼーション)とは、自動文字起こしの中で「誰がいつ話したか」を判断する工程です。録音を区間に分け、同じ声に聞こえる区間をまとめて、「話者1」「話者2」のようにラベルを付けます。話者分離は誰の名前も知らないため、名前はあとからあなた自身か、参加者をすでに把握しているシステムが付けます。声がはっきり区別できる少人数のクリアな録音では良く機能しますが、発言の重なり、似た声、電話音声、大人数の録音は苦手です。

このガイドでは、話者分離をわかりやすく説明し、話者認識との違い、内部の仕組み、精度が落ちる原因、そして信頼できる話者ラベル付きの文字起こしを得る方法を解説します。

話者分離とは?

話者ラベルのない文字起こしは、ただの文字の壁です。話者分離によって、それが会話になります。

話者1  00:00:03  ご参加ありがとうございます。予算から始めましょうか?
話者2  00:00:07  はい。出張費が10%ほど予算を超えています。
話者1  00:00:12  なるほど、原因は何でしょう?

英語のdiarizationは「diary(日記)」に由来し、システムが各瞬間にどの声が話しているかを記録していくことを表しています。ほとんどの文字起こしツールでは、話者分離は音声認識と並行して動きます。音声認識モデルがタイムスタンプ付きの単語を出力し、話者分離モデルがタイムスタンプ付きの話者区間を出力し、その2つを突き合わせて、各単語や各文に話者ラベルを付けます。

インタビュー、会議、ポッドキャストを文字起こしするなら、このラベルこそがテキストを使えるものにします。正しい人の発言として引用でき、誰が一番話したかを数えられ、長い通話を話者ごとに流し読みできます。

話者分離と話者認識の違い

この2つはよく混同され、製品ページでも「話者識別」という言葉が両方の意味で大まかに使われていることがあります。

話者分離話者認識
答える問い誰がいつ話したか?この人は誰か?
事前の声のサンプル不要必要(登録済みの声紋や参照用の音声)
出力匿名のラベル(話者1、話者2)名前、または本人との一致
主な用途インタビュー、会議、ポッドキャストの文字起こし音声ログイン、コールセンターでの本人確認、既知の話者との照合
種類オフライン(ファイル全体)またはストリーミング識別(多数の中の誰か)と照合(本当に本人か)

2つを組み合わせているツールもあります。会議ツールは、サインインしている参加者のうち誰のマイクが有効かを把握しているので、声を分析しなくても名前を表示できます。一度声にタグを付けると、以降の録音でその声を認識しようとするアプリもあります。たとえばOpenAIの話者分離対応の文字起こしモデルは、ドキュメントによると、既知の話者の短い参照音声を受け付けます。アップロードしたファイルに対する通常の話者分離、つまりほとんどの文字起こしサービスが行っている処理では、最後に汎用ラベルが付き、それを自分で名前に変えることになります。

話者分離の仕組み

最新のシステムは細部こそ異なるものの、大まかには同じ段階を踏みます。最も広く使われている話者分離ライブラリの1つであるオープンソースのpyannote.audioは、Hervé Bredin氏のInterspeech 2023の論文「pyannote.audio 2.1 speaker diarization pipeline: principle, benchmark, and recipe」で、そのパイプラインを3つの主要な段階として説明しています。短いスライド窓ごとの局所的なセグメンテーション、話者埋め込み、そして全体のクラスタリングです。

1. 音声のある場所を見つける

音声区間検出(VAD)で、録音のどの部分に話し声が含まれるかを判定し、無音、音楽、雑音を取り除きます。ここでの誤りはあとの工程に連鎖します。見逃した話し声にはラベルが付かず、話し声と間違えた雑音は架空の話者を生むことがあります。

2. 音声を区間に分ける

話し声を、理想的には1人だけが話している短い区間に切り分けます。新しいニューラルモデルは一度に数秒ずつを見て、各フレームでどの話者が話しているかを推定するため、発言の重なりも検出できます。

3. 各区間を声の埋め込みに変換する

ニューラルネットワークが各区間を埋め込み(エンベディング)に変換します。これは、何が話されているかではなく、声がどう聞こえるか(高さ、音色、話し方)を表す数値の並びです。同じ人の区間からは、互いに近い埋め込みが得られるはずです。

4. 埋め込みをクラスタリングする

クラスタリングのアルゴリズムが、似た埋め込みをグループにまとめます。各グループが1人の話者になります。難しいのはグループの数を決めることで、少なすぎると2人が1つのラベルにまとまり、多すぎると1人が複数のラベルに分かれてしまいます。この判断を助けるために、想定される話者の人数を指定できるサービスもあります。

5. 単語と突き合わせる

最後に、話者区間を音声認識の単語のタイムスタンプと照合し、文字起こしの各行にラベルを付けます。区切り目での誤りはよくあり、返答の最初の言葉が直前の話者に割り振られることがあります。

研究者は、話し声の見逃し、誤検出、話者の取り違えを合わせた話者分離誤り率(DER)で品質を測ります。公開されている数値は、クリアな放送音声から雑音の多い多人数の会議まで、データセットによって大きく異なるため、1つの「精度」の数字だけでは、あなた自身の録音についてはほとんど何もわかりません。

話者分離の精度が落ちる原因

  • 発言の重なり。 2人が同時に話すと、たいていどちらか一方の声がラベルを取り、もう一方の言葉は失われるか、別の人の発言にされてしまいます。
  • 似た声。 年齢、性別、話し方が似た2人は、埋め込みが近くなり、1人にまとめられることがあります。
  • 電話音声や圧縮音声。 帯域の狭い電話回線や強く圧縮された音声メッセージでは、埋め込みが頼りにする細かな情報の多くが失われます。
  • 話者が多い。 声が1人増えるごとにクラスタリングは難しくなり、短くしか話さない人がいる場合は特にそうです。
  • 短い発言。 「はい」「ええ」「なるほど」のような一言のあいづちは、信頼できる埋め込みを作るには短すぎます。日本語の会話はあいづちが多いので、この影響を受けやすい傾向があります。
  • 離れた位置のマイク1本。 部屋の真ん中に置いたノートパソコンは反響を拾い、音量も不揃いになります。座る位置によって、同じ人でも違う声に聞こえることがあります。
  • 条件の変化。 話者が移動したり、ヘッドセットからスピーカーフォンに切り替えたり、小声で話し始めたりすると、2つのラベルに分かれることがあります。
  • 背景の雑音や音楽。 どちらも話し声と間違えられたり、声の特徴をぼやけさせたりします。

文字起こしで話者をより確実に分けるには

改善の大部分は、ソフトウェアではなく録音から生まれます。音声品質全般については文字起こしの精度を上げるコツで解説していますが、話者に関しては次の点が効果的です。

  • できれば一人ひとりに専用のマイクを用意し、難しい場合でも共用のマイクから全員が同じくらいの距離に座るようにします。
  • 各人を別々のトラックに録音できる場合(ポッドキャストの収録や、片側ずつを左右のチャンネルに分けたステレオの通話録音など)は、トラックごとに文字起こしします。チャンネルが分かれていれば、どんな声のクラスタリングよりも確実です。
  • 正確に記録したい部分では、話をかぶせないようにお願いし、答える前に一拍置いてもらいます。
  • 直接録音できるなら、スピーカーフォンや、部屋のスピーカーから流れるビデオ通話の音声は避けます。
  • 冒頭で参加者一人ひとりに名前を言ってもらいます。モデルの学習にはなりませんが、ラベルの名前変更がすぐに済みます。
  • できるだけ1つの会話は1つのファイルにまとめます。分割して文字起こしすると、パート1の話者1がパート2では話者2になるなど、ラベルがそろいません。
  • 文字起こしの最初の数分を確認します。2人がまとめられている場合、その問題はたいていファイル全体で続きます。

インタビューのマイクの配置や同意の取り方はインタビュー文字起こしのガイドで、通話についてはGoogle Meet・Zoom・Teamsの会議文字起こしガイドで解説しています。

Audiotextaで話者名を変更・修正する

Audiotextaでファイルをアップロードするか、リンクを貼り付けるか、マイクから録音すると、話者ラベルとタイムスタンプ付きの文字起こしが返ってきます。「話者1」「話者2」を実名にするには、エディタで話者名を変更します。新しい名前は、文字起こし全体のその話者の区間すべてに反映されます。エディタは再生中に単語をハイライトし、どの単語をクリックしても音声のその位置に移動できるので、怪しい発言を耳で確かめてすぐに直せます。

名前の変更と修正は書き出す前に済ませておきましょう。そうすれば、名前がTXT、SRT、VTT(いずれも無料プランで利用可能)や、ProプランのDOCX、PDF、CSV、JSONにも反映されます。字幕ファイルでは話者名が会話を追う助けになり、CSVやJSONでは誰が何を言ったかを分析できます。

すべての話者分離システムと同じく、Audiotextaも声がはっきり区別できるクリアな音声で最もよく機能します。また、話者名をファイルからファイルへ引き継ぐことはなく、録音ごとに新しい匿名のラベルから始まります。

話者ラベル付きで文字起こしできるツール

話者ラベルは今では一般的な機能ですが、実装の仕方はさまざまです。以下は、各ベンダーのドキュメント、または注記のある場合は第三者による説明に基づく概要です(2026年10月時点で確認。機能は変わることがあるので、各ベンダーのサイトでご確認ください)。

ツール種類話者ラベル備考
AudiotextaWebアプリ、拡張機能、APIあり(自動)エディタで話者名を変更。ラベルはファイルごと。
Otter.ai会議・文字起こしアプリあり各種ガイドによると、話者にタグを付けると以降の録音でOtterが声を認識できます。
Descript音声・動画編集ソフトあり(自動話者検出)ヘルプセンターに自動検出のファイル長の上限が記載されています。サンプルから声にラベルを付けます。
TurboScribeWeb文字起こしありベンダーは自動の話者検出とラベル付けと説明しています。
Zoom、Teams、Google Meetの文字起こし会議ツールに内蔵参加者アカウントの名前声の分析ではなくサインイン情報を利用。1台の会議室端末を共有している人は1人の話者として表示されることがあります。
OpenAI API(gpt-4o-transcribe-diarize)開発者向けAPIあり話者ラベル付きの区間を返します。既知の話者の参照音声も任意で指定可能。
AssemblyAI開発者向けAPIあり(speaker_labels)想定される話者の人数や範囲を指定できます。
Deepgram開発者向けAPIあり(diarizationオプション)各単語に話者番号を返します。
Whisper(オープンソース)ローカルモデルなしpyannote.audioなどの話者分離モデルと組み合わせます。
pyannote.audioオープンソースのライブラリ話者分離のみ文字起こしはしないため、音声認識モデルと組み合わせます。

この点では会議ツールに明確な利点があります。全員が自分のアカウントで参加していれば、声から推測しなくても名前がわかるからです。Otterのように声紋を記憶するアプリは、同じ人を何度も録音する場合に名前変更の手間を省けます。インタビュー、電話、ポッドキャストなど、アップロードした録音では声に基づく話者分離しか方法がなく、エディタでの簡単な確認と名前変更も作業の一部になります。

よくある質問

話者分離とは簡単に言うと何ですか?

話者分離(話者ダイアライゼーション)とは、録音の中で誰がいつ話したかを割り出す処理です。システムは音声を区間に分け、同じ声に聞こえる区間をまとめ、誰の名前も知らないまま「話者1」「話者2」のようにラベルを付けます。

話者分離と話者識別の違いは何ですか?

話者分離は声どうしを区別し、匿名のラベルを付けます。話者識別は声を既知の人物と照合するもので、事前に登録した声のサンプルか、会議ツールがサインイン中の参加者を把握しているといった、別の身元情報が必要です。

Whisperは話者を分離できますか?

オープンソースのWhisperモデルは音声を文字起こししますが、単体では話者ラベルを付けません。開発者はふつう、Whisperにpyannote.audioのような別の話者分離モデルを組み合わせます。多くのクラウド型サービスは、この処理を代わりに行ってくれます。

文字起こしで話者が入れ替わってしまうのはなぜですか?

よくある原因は、発言の重なり、似た声、短いあいづち、品質の低い電話音声や圧縮音声、背景の雑音、1つの録音に大勢が参加していることです。どんな設定よりも、録音環境を改善するほうが効果的なことがほとんどです。

話者ラベルを実名に変えるにはどうすればよいですか?

多くの文字起こしエディタでは、「話者1」のような汎用ラベルを一度名前に変えれば、同じラベルのすべての区間に反映されます。Audiotextaでは、書き出す前に文字起こしエディタで話者名を変更します。

Audiotexta を無料で試す

ファイルをアップロードするかリンクを貼り付けるだけで、数分で文字起こしが完成します。

文字起こしを始める

関連記事