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
至少要讓錯誤可被看見。三個層次,由易到難:
- 把分群結果攤開:印出「分出 N 群 / 有 M 個 enrollment」。使用者知道自己會議有幾個人,
N=6 對一場十幾人的會議是一眼可辨的警訊。這一項幾乎零成本,卻是目前完全缺失的。
- 具名要有下限,寧可不命名:每群給出比對相似度;低於門檻就維持
SPEAKER_N,不要冠名。並考慮「群內相似度離散度」—— 混合體的離散度會明顯偏高,那正是「這群不該被命名」的訊號。
- 單一 enrollment 要特別保守:只有一個註冊者時,比對退化成「像不像這唯一的人」的單邊判斷,沒有其他向量能把錯誤指派擋掉。這種情況應該提高門檻或直接不命名,而不是照常比對。
為什麼這件事值得做好(不只是修 bug)
能把「誰說的」做對,是這個工具真正稀缺的能力。 純文字轉錄已經是紅海 —— 多的是又快又準的選擇。但會議、訪談、口述歷史這些場景,真正的瓶頸從來不是字有沒有打對,而是這句話是誰說的:
- 會議紀錄要按發言人歸屬決議與承諾
- 訪談研究要區分受訪者與訪員
- 多方協調要追溯「這個條件是哪一方提出的」
而這正是目前所有工具都做得很勉強的一段。把聲紋這條線做紮實,比再擠 0.1% 的 CER 有價值得多 —— 後者是在紅海裡挪動小數點,前者是在補一個沒人補好的缺口。
具體可以往下走的方向:
- 多人註冊:從單邊判斷變成多路鑑別,錯誤指派會被其他人的向量擋掉。這是投入產出比最高的一項。
- 就地註冊(semi-supervised):會議本身就含所有人的聲音。讓使用者聽幾段代表性 cue、標上名字,反過來當成這場會議的 enrollment,比事前另外錄樣本實際得多,也自動解決通道失配。
- 分群數的先驗:使用者常常知道與會人數。允許給一個範圍或期望值,比讓演算法從零猜穩得多。
- 通道失配:enrollment 若與會議在不同裝置/空間錄製,向量本身就偏移。至少要能偵測並警示。
#179(多來源錄音交叉驗證)與本 issue 指向同一個根本限制:單一遠場麥克風把語者間的可分辨度壓縮掉了。多支麥克風擺在不同位置,同一個人在兩份錄音中的相對音量與到達時間差構成空間線索,那是單一來源在原理上拿不到的資訊,而它恰好對語者分離特別有效。
兩張可以獨立進行,但若要從根本改善分群品質,空間線索 + 多人註冊是同一件事的兩半。
Impact
- 具名標籤目前不能用於任何需要正確歸屬的場合,而那正是開
--diarize 的人想要的東西。
- 影響範圍不限於錯的那幾群:既然沒有任何 surface 訊號,使用者無從判斷這次的標籤能不能信。
- 上游 skill(把逐字稿整理成正式紀錄的那類)必須被明確告知「不要採信 diarization 的具名標籤」,否則錯誤會直接流進正式文件。
Problem
在一場 84 分鐘、1770 個 cue 的多人會議上開
--diarize,context 目錄底下只有一位已註冊的聲紋樣本。結果:Speaker 1Speaker 2Speaker 3Speaker 5Speaker 4抽驗那 655 個具名 cue,發現它吞掉了至少兩位別人:
這兩處的交棒語句就在前一個 cue、語意上毫無歧義,但標籤照錯。
這不是「標籤不夠準」,是主動製造錯誤資訊
沒有標籤時,下游知道自己不知道,會去找別的依據。有一個錯的人名時,下游會相信它 —— 因為具名標籤看起來就是「系統已經辨識出來了」。
實際後果:這份逐字稿的用途是產出跨機構的正式會議紀錄。若照標籤歸屬,主席的致詞與受邀專家的法律意見都會被記在第三個人頭上。這種錯誤一旦進了正式紀錄就會被引用、被轉述,且沒有任何自動機制會發現它 —— 只有當場在的人讀到才可能察覺。
Actual:兩層失效疊在一起
第一層 —— 分群數嚴重低估。 這場會議實際發言者至少八九位,管線只分出 6 群。也就是說在具名比對發生之前,聲學分群就已經把多位講者併在一起了。
第二層 —— 對「已經是混合體」的群做具名比對。 那一群裡有註冊者的一份,相似度過了閾值,於是整群被冠名 —— 包含另外兩個人。
兩層的錯誤方向相同、互相放大:分群越保守(群數越少),每一群越可能是混合體;混合體越大,越容易命中某個 enrollment。而唯一會 surface 的訊號是「有幾群」,但那個數字沒有被印出來。
Expected
至少要讓錯誤可被看見。三個層次,由易到難:
N=6對一場十幾人的會議是一眼可辨的警訊。這一項幾乎零成本,卻是目前完全缺失的。SPEAKER_N,不要冠名。並考慮「群內相似度離散度」—— 混合體的離散度會明顯偏高,那正是「這群不該被命名」的訊號。為什麼這件事值得做好(不只是修 bug)
能把「誰說的」做對,是這個工具真正稀缺的能力。 純文字轉錄已經是紅海 —— 多的是又快又準的選擇。但會議、訪談、口述歷史這些場景,真正的瓶頸從來不是字有沒有打對,而是這句話是誰說的:
而這正是目前所有工具都做得很勉強的一段。把聲紋這條線做紮實,比再擠 0.1% 的 CER 有價值得多 —— 後者是在紅海裡挪動小數點,前者是在補一個沒人補好的缺口。
具體可以往下走的方向:
與 #179 的關係
#179(多來源錄音交叉驗證)與本 issue 指向同一個根本限制:單一遠場麥克風把語者間的可分辨度壓縮掉了。多支麥克風擺在不同位置,同一個人在兩份錄音中的相對音量與到達時間差構成空間線索,那是單一來源在原理上拿不到的資訊,而它恰好對語者分離特別有效。
兩張可以獨立進行,但若要從根本改善分群品質,空間線索 + 多人註冊是同一件事的兩半。
Impact
--diarize的人想要的東西。