🔐 聲紋辨識 (Speaker Recognition)

辨識「是誰說的」· 技術脈絡・實戰選型・踩坑筆記

作者TonTon Huang Ph.D.投入時間:~150 天 (2020/03–2020/08)|更新:2026-07-28

聲紋辨識 (Speaker Recognition) 的目標是從語音訊號中提取說話人的生物特徵,判斷「是誰說的」——這與 ASR「說了什麼」完全不同。技術核心在於三個面向:向量抽取(i-vector / d-vector / x-vector)、模型架構(CNN / ResNet / TDNN)、評分方式(LDA / PLDA)。

#聲紋辨識 #x-vector #ECAPA-TDNN #WeSpeaker #EER #VoxCeleb

兩大核心應用場景

1:1 身份驗證
Speaker Verification

確認「這是不是本人」。適用於電話銀行聲紋登入、企業語音門禁等。需處理開放集 (Open-set) 拒絕判定。

1:N 身份識別
Speaker Identification

從資料庫中找出「最像的是誰」。適用於客服中心說話人追蹤、智慧家庭多用戶辨識。

從 i-vector 到深度學習嵌入

GMM-UBM
傳統基礎
i-vector
Dehak 2009
d-vector
Google 2014
x-vector
Snyder 2018
ECAPA-TDNN
2020 SOTA
  • i-vector:從 GMM super-vector 中萃取「身份向量」,需數十秒音訊,對短音訊效果差。
  • d-vector (Google 2014):用 DNN 最後一層的隱藏狀態作為嵌入,多段音訊平均後作為聲紋表示。
  • x-vector (Snyder 2018):TDNN 架構 + Statistics Pooling Layer(均值 + 標準差)→ 段層級嵌入;短音訊(~10秒)表現強,搭配 LDA + PLDA 後端。
  • ECAPA-TDNN:引入 Squeeze-Excitation 與 Multi-Scale Aggregation,目前主流生產級方案,在 VoxCeleb1-O 測試集 EER 可達 0.8% 以下。

必懂的五大評估指標

FRR (False Rejection Rate)
錯誤拒絕率

同一人被判為不同人 → 「把主人擋在門外」

FAR (False Acceptance Rate)
錯誤接受率

不同人被判為同一人 → 「放小偷進門」

EER (Equal Error Rate)
等錯誤率 ↓越低越好

FRR = FAR 時的閾值點。ECAPA-TDNN 在 VoxCeleb1-O 可達 0.8% 以下。

RTF (Real Time Factor)
實時比

例:RTF=0.01 代表 1 秒算力可處理 100 秒音訊。

ACC (Accuracy)
準確率

ACC = 1 − min(FAR + FRR),另見 ROC 曲線全面評估。

主流框架與最新研究

🔥 推薦
WeSpeaker:產業界最受歡迎的生產級聲紋辨識框架,支援 ECAPA-TDNN、ResNet34 等架構,內建資料增廣與分佈式訓練。
🔥 推薦
SincNet:直接處理原始波形的深度學習架構,可解釋性高,適合研究場景。
🔥 2026-04
SpeakerRPL V2:開放集聲紋辨識 SOTA。LogitNorm + RPL 混合損失 + 自適應錨點,在 Vox1-O* 開放集測試中將 EER 從 1.72% → 0.24%(降幅 93%)。
經典
ASV-Subtools(廈門大學):完整的聲紋識別工具鏈,涵蓋 i-vector / x-vector / ECAPA-TDNN。
經典
NVIDIA NeMo:整合 SpeakerNet 的工業級工具包,搭配 QuartzNet ASR 可建立完整的聲紋+辨識管線。

常用資料集

資料集 說話人數 語言 備註
VoxCeleb 1 & 2 7,000+ 多語言(英語為主) 切成 7 部分,下載需時;台灣 IP 可訪問
CN-Celeb 1 & 2 3,000+ 中文 ⚠️ 放在百度雲,台灣 IP 被封鎖
AISHELL-1 400 中文(大陸口音) 下載相對方便
TIMIT 630 英語 phonetically-balanced,小型基準集
Mozilla Common Voice (zh-TW) 繁體中文(台灣口音) ⭐ 台灣口音最佳選擇
⚠️ 數據踩坑:CN-Celeb 等中文聲紋數據集存放在百度雲,台灣 IP 直接封鎖,下載前務必準備好 VPN 或代理。VoxCeleb 被切成 7 份,合併需要額外的時間成本。

選型與部署建議

✅ 生產首選:WeSpeaker + ECAPA-TDNN,搭配 PLDA 後端評分。SNR 低於 5dB 的極端環境下,EER 仍可維持在 1.5% 以下。
✅ 開放集拒絕:若需要辨識「這個聲音不在資料庫中」,評估 SpeakerRPL V2(LogitNorm + Adaptive Anchors),少樣本微調時穩定性顯著優於傳統方法。
✅ 資料增廣:真實錄音通常很短;可用程式動態切割、加背景噪音(MUSAN / RIR)做資料增廣,有效提升模型在真實場景的泛化能力。
⚠️ 為何 DNN 優於 i-vector:i-vector 的協方差矩陣對資料扭曲(雜訊、頻道差異)非常敏感,而 DNN 透過 Cross-Entropy 訓練天然具備失真不變性,在大規模數據上不會像 i-vector 的 UBM/T 矩陣需要反覆重調。
🔐

繼續探索語音處理其他主題