🔐 聲紋辨識 (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%)。
經典
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 矩陣需要反覆重調。