話者分離
話者ダイアライゼーション(Speaker Diarization) / ワシャブンリ
複数の人が話している音声を、話し手ごとの区間に分けて「誰が、いつ話したか」を推定する技術です。字幕の話者ごとの色分けや、対談・会議の文字起こしで発言者を付ける作業に使われます。
- 英語表記
- Speaker Diarization
- 出力
- 発話区間の開始・終了時刻と、話者1・話者2のような匿名のラベル
- 一般的な処理の流れ
- 発話区間の検出、話者埋め込み(声の特徴のベクトル化)、クラスタリング
- もう一つの方式
- 区間ごとの話者を1つのニューラルネットワークで直接出すEnd-to-End型(EEND)
- 精度の指標
- DER(Diarization Error Rate)
- 一般に知られる実装の例
- pyannote.audio、NVIDIA NeMo
「話者分離」という言葉から、混ざった声を別々の音声に切り分ける技術を想像する人は多いのですが、多くの場合そうではありません。音声はそのままで、どの区間を誰が話しているかに印を付けるのが話者分離です。
話者分離の現場での使われ方
放送字幕の制作では、話し手ごとに字幕の文字色を変える慣行があります。対談やバラエティのように発言が次々に入れ替わる番組では、1枚ごとに「これは誰の発言か」を判定する作業が字幕制作の大きな手間になります。話者分離の結果があれば、色の割り当ての下書きを機械で作り、人は確認と修正に回れます。
文字起こしでは、インタビューや座談会、記者会見の音声に「話者1」「話者2」のラベルを付け、後から人が実名に置き換える使い方が一般的です。音声認識の結果と時刻で突き合わせると、話者ごとに発言を並べたテキストになります。アーカイブの分野では、番組の中で特定の出演者が話している区間を探すための手がかりとしても使われます。
話者分離の仕組み
よく使われる方式は3つの段階でできています。まずVADで人が話している区間を切り出し、次に各区間の声の特徴を数百次元のベクトルにします。このベクトルを話者埋め込みと呼び、x-vectorなどの手法が知られています。最後に、似たベクトルをまとめるクラスタリングを行い、まとまりの数を話者の数とみなしてラベルを振ります。
この方式は1つの区間に1人しか話していない前提に立つので、声が重なる場面が苦手です。そこで、短い時間ごとに「誰と誰が話しているか」を1つのニューラルネットワークで直接出すEnd-to-End型の研究が進み、実際のツールでは両者を組み合わせた構成も使われています。オープンソースのpyannote.audioは、その代表的な例です。
精度はDERで比べます。話しているのに検出しなかった時間、話していないのに検出した時間、話者を取り違えた時間を足し、総発話時間で割った値です。
話者分離で間違えやすい点とトラブル
いちばんの誤解は、名前まで分かると思われていることです。話者分離が返すのは匿名のラベルだけで、「話者1が司会者」だと決めるのは人か、別の話者認識の仕組みです。
結果が崩れやすい条件もはっきりしています。主なものは次の通りです。
- 相づちや「はい」だけの短い発話で、声の特徴が取り出しにくい
- 2人の声が重なり、どちらのラベルにも寄らない
- 話者数が分からず、声の似た2人が1人にまとまる、あるいは同じ人が2人に分かれる
- 電話やリモート出演の音質の悪い音声が混ざる
参加者の人数が分かっている会議なら、多くのツールで話者数を指定すると結果が安定します。仕組みと現場での精度の影響は話者分離の仕組みと字幕への影響で詳しく扱っています。
よくある質問
話者分離と話者識別の違いは何ですか
話者分離は、登録なしで録音を話し手ごとの区間に分け、匿名のラベルを付けます。話者識別は、あらかじめ登録した声と照合して「この声は誰か」を答えます。名前が必要なら話者識別、初めて聞く録音を分けるなら話者分離です。
話者分離は何人まで対応できますか
ツールによりますが、人数が増えるほど誤りは増えます。会議のように人数が決まっている場合は、話者数をあらかじめ指定すると精度が上がることが多いです。
話者分離で声を別々のファイルに分けられますか
話者分離そのものは区間に印を付けるだけです。区間の時刻を使って音声を切り出すことはできますが、声が重なった部分は2人分の声が混ざったまま残ります。声そのものを分けたいときは音源分離の技術を使います。
この用語を扱ったコラム
似ている形式との違い
| 名前 | 主に使う場面 | 話者分離との違い |
|---|---|---|
| 話者認識 | 声による本人確認・出演者の特定 | 事前に登録した声と照合して名前を返す。話者分離は登録なしで匿名のラベルを返す |
| 音声認識 | 字幕・文字起こし | 何を話したかをテキストにする。誰が話したかは扱わない |
| 音源分離 | 声とBGMの分離・リミックス | 混ざった音を別々の音声信号に分ける。話者分離は音を分けずに時間の区間を分ける |
関連する用語
最終更新
