天天看點

AnalyticDB向量檢索+AI 實戰: 聲紋識别一、背景二、聲紋識别原理三、如何使用AnalyticDB搭建聲紋對比系統四、AnalyticDB介紹五、參考文獻六、結語

一、背景

近年來,随着人工智能對傳統行業的賦能改造,越來越多的基于人工智能的業務解決方案被提出來,聲紋識别在保險行業中的身份認證便是一個很好的例子. 聲紋識别是根據說話人發音的生理和行為特征,自動識别說話人身份的一種生物識别技術,對應在電話銷售場景下,它主要解決以下安全問題:一方面,有不法分子竊取電話銷售人員賬号資訊,非法擷取客戶個人資訊資料并進行販賣、洩露,嚴重侵犯了公民個人的資訊隐私權,另一方面,部分行業從業人員利用一些規則漏洞,通過套保、騙保等非法手段實施金融詐騙. 針對這些安全問題,可以通過實時聲紋認證加以解決,以電話銷售人員為監管核心,利用每個人獨一無二的聲紋進行嚴密的個人身份認證,保證電話銷售人員對接客戶時是本人注冊登入,規範電銷人員行為,從源頭上有效規避資訊洩露、漏洞利用等風險。

二、聲紋識别原理

AnalyticDB向量檢索+AI 實戰: 聲紋識别一、背景二、聲紋識别原理三、如何使用AnalyticDB搭建聲紋對比系統四、AnalyticDB介紹五、參考文獻六、結語

上圖是端對端的深度學習訓練和推理過程。對比傳統聲紋識别模型,我們的模型在實際使用中優勢明顯,在使用者遠端身份驗證場景,通過注冊使用者說一段話,即可輕松快速的确認注冊使用者身份,識别準确率達到95%以上,秒級響應,實時聲紋核身。下面簡要介紹我們模型的特點。

2.0 度量學習

實驗發現,在聲紋識别中采用softmax進行網絡訓練 ,用餘弦相似度的測試性能往往不如傳統聲紋識别模型,尤其是在魯棒性上。分析發現[6]基于softmax的分類訓練,為了得到更小的loss,優化器會增大一些easy samples的L2 length,減小hard examples 的L2 length,導緻這些樣本并沒有充分學習,特征呈現放射狀,以MNIST識别任務為例,基于softmax學到的特征分布如圖3(a)所示. 同類别特征分布并不聚攏,在L2 長度上拉長,呈放射狀,且每個類别的間距并不大,在verification的任務中,會導緻相鄰的兩個類别得分很高。

為了達到類内聚攏,類間分散的效果,我們研究了在圖像領域中應用較為成功的幾種softmax變種,包括AM-softmax[4],arcsoftmax[5]等,從圖3(b)可以看到,基于margin的softmax,相比純softmax,類間的分散程度更大,且類内特征更聚攏,對聲紋1:1比對和1:N搜尋的任務友好。

AnalyticDB向量檢索+AI 實戰: 聲紋識别一、背景二、聲紋識别原理三、如何使用AnalyticDB搭建聲紋對比系統四、AnalyticDB介紹五、參考文獻六、結語

2.1 噪音魯棒性

在特征提取時,對于簡單加性噪音,我們提出了基于功率譜減法,實作噪音抑制;對于其他複雜噪音,我們提出了基于降噪自動編碼器的噪音補償模型,将帶噪語音特征映射到幹淨語音特征,實作噪音消除。

在模型訓練時,我們采用資料增強的訓練機制,将噪音資料通過随機高斯的形式加入到聲紋模型的訓練中,使得訓練後的模型對噪音資料具有更好的魯棒性。

2.2 短音頻魯棒性

為了提高短音頻魯棒性,我們提出了基于短時幀級别的模型訓練機制,使模型能夠在極短的語音時長(約0.5秒)下即可完成聲紋識别. 在此基礎上,我們在模型訓練中引入了更多高階的音頻統計資訊和正則化方法,進一步提升了模型在短語音條件下(2~3秒)的識别精度。

三、如何使用AnalyticDB搭建聲紋對比系統

3.0 建立插件

使用一下SQL來分别建立AnalyticDB的非結構化分析插件OpenAnalytic和向量檢索插件fastann。

AnalyticDB向量檢索+AI 實戰: 聲紋識别一、背景二、聲紋識别原理三、如何使用AnalyticDB搭建聲紋對比系統四、AnalyticDB介紹五、參考文獻六、結語

3.1 建表

我們可以建立一個表來儲存所有說話人的聲音和聲音的特征,後續我們可以從這個表中搜尋說話人。

AnalyticDB向量檢索+AI 實戰: 聲紋識别一、背景二、聲紋識别原理三、如何使用AnalyticDB搭建聲紋對比系統四、AnalyticDB介紹五、參考文獻六、結語

3.2 建立索引

我們可以為特征向量列建立向量檢索索引。

AnalyticDB向量檢索+AI 實戰: 聲紋識别一、背景二、聲紋識别原理三、如何使用AnalyticDB搭建聲紋對比系統四、AnalyticDB介紹五、參考文獻六、結語

3.3 建立聲紋識别算法pipeline

通過以下sql,我們可以在資料庫中建立聲紋特征提取的算法模型。

AnalyticDB向量檢索+AI 實戰: 聲紋識别一、背景二、聲紋識别原理三、如何使用AnalyticDB搭建聲紋對比系統四、AnalyticDB介紹五、參考文獻六、結語

3.4 擷取說話人聲紋特征

通過以下sql可以使用3.3建立的pipeline。這個UDF的輸入是pipeline名稱和目标文本。輸出是一個說話人聲音的特征向量。

`# 通過聲音檔案識别

SELECT open_analytic.pipeline_run_dist_random('speaker_feature_extractor',

<聲音檔案>);`
           

3.5 說話人聲紋特征導入AnalyticDB

擷取聲音特征後, 我們可以使用一下sql來講資料插入3.1建立的表中。

AnalyticDB向量檢索+AI 實戰: 聲紋識别一、背景二、聲紋識别原理三、如何使用AnalyticDB搭建聲紋對比系統四、AnalyticDB介紹五、參考文獻六、結語

3.6 在資料庫中搜尋最相似的的人

通過以下sql,我們可以在聲音特征庫中搜尋最相似的說話人。然後我們可以根據特征間距離是否滿足預設的門檻值來判斷是否是同一個人。

AnalyticDB向量檢索+AI 實戰: 聲紋識别一、背景二、聲紋識别原理三、如何使用AnalyticDB搭建聲紋對比系統四、AnalyticDB介紹五、參考文獻六、結語

3.7 比較兩個聲音是否為同一個人

我們還可以提取出兩個人的聲音特征然後直接計算二者的距離來判斷這兩個聲音是否來自同一個說話人。SQL如下

AnalyticDB向量檢索+AI 實戰: 聲紋識别一、背景二、聲紋識别原理三、如何使用AnalyticDB搭建聲紋對比系統四、AnalyticDB介紹五、參考文獻六、結語

四、AnalyticDB介紹

分析型資料庫(AnalyticDB)是阿裡雲上的一種高并發低延時的PB級實時資料倉庫,可以毫秒級針對萬億級資料進行即時的多元分析透視和業務探索。AnalyticDB for MySQL 全面相容MySQL協定以及SQL:2003 文法标準, AnalyticDB forPostgreSQL 支援标準 SQL:2003,高度相容 Oracle 文法生态。

向量檢索和非結構化資料分析是AnalyticDB的進階功能。目前兩款産品都包含向量檢索功能, 可以支援人臉, 人體, 車輛等的相似查詢和推薦系統。AnalyticDB在真實應用場景中可以支援10億級别的向量資料的查詢, 毫秒級别的響應時間。AnalyticDB已經在多個城市的重大項目中大規模部署。

在一般的包含向量檢索的的應用系統中, 通常開發者會使用向量檢索引擎(例如Faiss)來存儲向量資料, 然後使用關系型資料庫存儲結構化資料。在查詢時也需要交替查詢兩個系統, 這種方案會有額外的開發工作并且性能也不是最優。AnalyticDB支援結構化資料和非結構化資料(向量)的檢索,僅僅使用SQL接口就可以快速的搭建起以圖搜圖或者圖檔+結構化資料混合檢索等功能。AnalyticDB的優化器在混合檢索場景中會根據資料的分布和查詢的條件選擇最優的執行計劃,在保證召回的同時,得到最優的性能。AnalyticDB向量版采用了多項創新性技術, 這些技術在我們的論文 AnalyticDB-V: A Hybrid Analytical Engine Towards Query Fusion for Structured and Unstructured Data 中有詳細介紹介紹。目前論文已經被資料庫三大頂會之一的VLDB接受, 具有技術領先性。

結構化資訊+非結構化資訊(圖檔)混合檢索在實際應用中被廣泛使用的。例如人臉門禁系統被部署在多個小區時, 我們使用一張表存儲了所有小區的人臉特征, 在人臉檢索時我們隻需要檢索目前小區的人臉特征。在這種情況下, 使用AnalyticDB我們隻需要在SQL中增加where 小區名 ='xxx' 就可以輕易實作。AnalyticDB同時提供了先進的圖像文本分析算法, 能夠提取非結構化資料的特征和标簽, 使用者僅僅需要使用SQL就可以完成圖像文本内容的分析。

五、參考文獻

[1] Heigold G, Moreno I, Bengio S, et al. End-to-end text-dependent speaker verification[C]//2016 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2016: 5115-5119.

[2]Li C, Ma X, Jiang B, et al. Deep speaker: an end-to-end neural speaker embedding system[J]. arXiv preprint arXiv:1705.02304, 2017.

[3] Snyder D, Garcia-Romero D, Sell G, et al. X-vectors: Robust den embeddings for speaker recognition[C]//2018 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2018: 5329-5333.

[4] Wang F, Cheng J, Liu W, et al. Additive margin softmax for face verification[J]. IEEE Signal Processing Letters, 2018, 25(7): 926-930.

[5] Dang J, Guo J, Xue N, et al. Arc face: Additive angular margin loss for deep face recognition[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019: 4690-4699.

[6] Ranjan R, Castillo C D, Chellappa R. L2-constrained softmax loss for discriminative face verification[J]. arXiv preprint arXiv:1703.09507, 2017.

六、結語

本文介紹了如何使用AnalyticDB來搭建聲紋比對系統。AnalyticDB還支援其他多種多樣人工智能算法如目标檢測, 商品識别, 基因識别等等。想了解更多請用釘釘掃碼加入AnalyticDB向量版交流群。