Skip to content

diarize 具名標籤 over-match:分群數低估 + 對混合體冠名,會把別人的發言記在註冊者頭上 #180

Description

@kiki830621

Problem

在一場 84 分鐘、1770 個 cue 的多人會議上開 --diarize,context 目錄底下只有一位已註冊的聲紋樣本。結果:

標籤 cue 數 佔比
Speaker 1 803 45%
具名(那位已註冊者) 655 37%
Speaker 2 242 14%
Speaker 3 53 3%
Speaker 5 5
Speaker 4 2

抽驗那 655 個具名 cue,發現它吞掉了至少兩位別人

  • 主持人宣布「請主席致詞」的下一個 cue 起,整段主席致詞被標成那位註冊者。
  • 主持人說「來,院長請」的下一個 cue 起,一位受邀專家長達百餘 cue 的法律論述,同樣被標成那位註冊者。

這兩處的交棒語句就在前一個 cue、語意上毫無歧義,但標籤照錯。

這不是「標籤不夠準」,是主動製造錯誤資訊

沒有標籤時,下游知道自己不知道,會去找別的依據。有一個錯的人名時,下游會相信它 —— 因為具名標籤看起來就是「系統已經辨識出來了」。

實際後果:這份逐字稿的用途是產出跨機構的正式會議紀錄。若照標籤歸屬,主席的致詞與受邀專家的法律意見都會被記在第三個人頭上。這種錯誤一旦進了正式紀錄就會被引用、被轉述,且沒有任何自動機制會發現它 —— 只有當場在的人讀到才可能察覺。

Actual:兩層失效疊在一起

第一層 —— 分群數嚴重低估。 這場會議實際發言者至少八九位,管線只分出 6 群。也就是說在具名比對發生之前,聲學分群就已經把多位講者併在一起了。

第二層 —— 對「已經是混合體」的群做具名比對。 那一群裡有註冊者的一份,相似度過了閾值,於是整群被冠名 —— 包含另外兩個人。

兩層的錯誤方向相同、互相放大:分群越保守(群數越少),每一群越可能是混合體;混合體越大,越容易命中某個 enrollment。而唯一會 surface 的訊號是「有幾群」,但那個數字沒有被印出來

Expected

至少要讓錯誤可被看見。三個層次,由易到難:

  1. 把分群結果攤開:印出「分出 N 群 / 有 M 個 enrollment」。使用者知道自己會議有幾個人,N=6 對一場十幾人的會議是一眼可辨的警訊。這一項幾乎零成本,卻是目前完全缺失的。
  2. 具名要有下限,寧可不命名:每群給出比對相似度;低於門檻就維持 SPEAKER_N,不要冠名。並考慮「群內相似度離散度」—— 混合體的離散度會明顯偏高,那正是「這群不該被命名」的訊號。
  3. 單一 enrollment 要特別保守:只有一個註冊者時,比對退化成「像不像這唯一的人」的單邊判斷,沒有其他向量能把錯誤指派擋掉。這種情況應該提高門檻或直接不命名,而不是照常比對。

為什麼這件事值得做好(不只是修 bug)

能把「誰說的」做對,是這個工具真正稀缺的能力。 純文字轉錄已經是紅海 —— 多的是又快又準的選擇。但會議、訪談、口述歷史這些場景,真正的瓶頸從來不是字有沒有打對,而是這句話是誰說的

  • 會議紀錄要按發言人歸屬決議與承諾
  • 訪談研究要區分受訪者與訪員
  • 多方協調要追溯「這個條件是哪一方提出的」

而這正是目前所有工具都做得很勉強的一段。把聲紋這條線做紮實,比再擠 0.1% 的 CER 有價值得多 —— 後者是在紅海裡挪動小數點,前者是在補一個沒人補好的缺口。

具體可以往下走的方向:

  • 多人註冊:從單邊判斷變成多路鑑別,錯誤指派會被其他人的向量擋掉。這是投入產出比最高的一項。
  • 就地註冊(semi-supervised):會議本身就含所有人的聲音。讓使用者聽幾段代表性 cue、標上名字,反過來當成這場會議的 enrollment,比事前另外錄樣本實際得多,也自動解決通道失配。
  • 分群數的先驗:使用者常常知道與會人數。允許給一個範圍或期望值,比讓演算法從零猜穩得多。
  • 通道失配:enrollment 若與會議在不同裝置/空間錄製,向量本身就偏移。至少要能偵測並警示。

#179 的關係

#179(多來源錄音交叉驗證)與本 issue 指向同一個根本限制:單一遠場麥克風把語者間的可分辨度壓縮掉了。多支麥克風擺在不同位置,同一個人在兩份錄音中的相對音量與到達時間差構成空間線索,那是單一來源在原理上拿不到的資訊,而它恰好對語者分離特別有效。

兩張可以獨立進行,但若要從根本改善分群品質,空間線索 + 多人註冊是同一件事的兩半。

Impact

  • 具名標籤目前不能用於任何需要正確歸屬的場合,而那正是開 --diarize 的人想要的東西。
  • 影響範圍不限於錯的那幾群:既然沒有任何 surface 訊號,使用者無從判斷這次的標籤能不能信。
  • 上游 skill(把逐字稿整理成正式紀錄的那類)必須被明確告知「不要採信 diarization 的具名標籤」,否則錯誤會直接流進正式文件。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingenhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions