上圖是端對端的深度學(xué)習(xí)訓(xùn)練和推理過程。對比傳統(tǒng)聲紋識別模型,我們的模型在實(shí)際使用中優(yōu)勢明顯,在用戶遠(yuǎn)程身份驗(yàn)證場景,通過注冊用戶說一段話,即可輕松快速的確認(rèn)注冊用戶身份,識別準(zhǔn)確率達(dá)到95%以上,秒級響應(yīng),實(shí)時(shí)聲紋核身。下面簡要介紹我們模型的特點(diǎn)。
實(shí)驗(yàn)發(fā)現(xiàn),在聲紋識別中采用softmax進(jìn)行網(wǎng)絡(luò)訓(xùn)練 ,用余弦相似度的測試性能往往不如傳統(tǒng)聲紋識別模型,尤其是在魯棒性上。分析發(fā)現(xiàn)[6]基于softmax的分類訓(xùn)練,為了得到更小的loss,優(yōu)化器會(huì)增大一些easy samples的L2 length,減小hard examples 的L2 length,導(dǎo)致這些樣本并沒有充分學(xué)習(xí),特征呈現(xiàn)放射狀,以MNIST識別任務(wù)為例,基于softmax學(xué)到的特征分布如圖3(a)所示. 同類別特征分布并不聚攏,在L2 長度上拉長,呈放射狀,且每個(gè)類別的間距并不大,在verification的任務(wù)中,會(huì)導(dǎo)致相鄰的兩個(gè)類別得分很高。
為了達(dá)到類內(nèi)聚攏,類間分散的效果,我們研究了在圖像領(lǐng)域中應(yīng)用較為成功的幾種softmax變種,包括AM-softmax[4],arcsoftmax[5]等,從圖3(b)可以看到,基于margin的softmax,相比純softmax,類間的分散程度更大,且類內(nèi)特征更聚攏,對聲紋1:1比對和1:N搜索的任務(wù)友好。

在特征提取時(shí),對于簡單加性噪音,我們提出了基于功率譜減法,實(shí)現(xiàn)噪音抑制;對于其他復(fù)雜噪音,我們提出了基于降噪自動(dòng)編碼器的噪音補(bǔ)償模型,將帶噪語音特征映射到干凈語音特征,實(shí)現(xiàn)噪音消除。
在模型訓(xùn)練時(shí),我們采用數(shù)據(jù)增強(qiáng)的訓(xùn)練機(jī)制,將噪音數(shù)據(jù)通過隨機(jī)高斯的形式加入到聲紋模型的訓(xùn)練中,使得訓(xùn)練后的模型對噪音數(shù)據(jù)具有更好的魯棒性。
為了提高短音頻魯棒性,我們提出了基于短時(shí)幀級別的模型訓(xùn)練機(jī)制,使模型能夠在極短的語音時(shí)長(約0.5秒)下即可完成聲紋識別. 在此基礎(chǔ)上,我們在模型訓(xùn)練中引入了更多高階的音頻統(tǒng)計(jì)信息和正則化方法,進(jìn)一步提升了模型在短語音條件下(2~3秒)的識別精度。
03如何使用AnalyticDB搭建聲紋對比系統(tǒng)
使用一下SQL來分別創(chuàng)建AnalyticDB的非結(jié)構(gòu)化分析插件OpenAnalytic和向量檢索插件fastann。
CREATE EXTENSION IF NOT EXISTS open_analytic;
CREATE EXTENSION IF NOT EXISTS fastann;
注:*左右滑動(dòng)閱覽
我們可以建立一個(gè)表來保存所有說話人的聲音和聲音的特征,后續(xù)我們可以從這個(gè)表中搜索說話人。
CREATE TABLE speaker_table (
speaker_id TEXT NOT NULL, # 說話人id
audio BYTEA NOT NULL, # 聲音文件
feature REAL[] NOT NULL, # 聲音特征向量
PRIMARY KEY (question)
);
注:*左右滑動(dòng)閱覽
我們可以為特征向量列創(chuàng)建向量檢索索引。
CREATE INDEX speaker_table_index
ON speaker_table USING ann (feature) WITH (dim = 512);
注:*左右滑動(dòng)閱覽
通過以下sql,我們可以在數(shù)據(jù)庫中創(chuàng)建聲紋特征提取的算法模型。
SELECT open_analytic.pipeline_create('speaker_feature_extractor');
注:*左右滑動(dòng)閱覽
通過以下sql可以使用3.3創(chuàng)建的pipeline。這個(gè)UDF的輸入是pipeline名稱和目標(biāo)文本。輸出是一個(gè)說話人聲音的特征向量。
# 通過聲音文件識別
SELECT open_analytic.pipeline_run_dist_random('speaker_feature_extractor',
<聲音文件>);
注:*左右滑動(dòng)閱覽
獲取聲音特征后, 我們可以使用一下sql來講數(shù)據(jù)插入3.1創(chuàng)建的表中。
INSERT INTO speaker_table VALUES (<說話人id>, <聲音文件>, <聲音特征向量>);
注:*左右滑動(dòng)閱覽
通過以下sql,我們可以在聲音特征庫中搜索最相似的說話人。然后我們可以根據(jù)特征間距離是否滿足預(yù)設(shè)的閾值來判斷是否是同一個(gè)人。
SELECT speaker_id, l2_distance(feature, <聲音特征向量>)
ORDER BY feature <-> <聲音特征向量>
LIMIT 10;
注:*左右滑動(dòng)閱覽
我們還可以提取出兩個(gè)人的聲音特征然后直接計(jì)算二者的距離來判斷這兩個(gè)聲音是否來自同一個(gè)說話人。SQL如下
SELECT l2_distance(feature1, feature2);
注:*左右滑動(dòng)閱覽
分析型數(shù)據(jù)庫(AnalyticDB)是阿里云上的一種高并發(fā)低延時(shí)的PB級實(shí)時(shí)數(shù)據(jù)倉庫,可以毫秒級針對萬億級數(shù)據(jù)進(jìn)行即時(shí)的多維分析透視和業(yè)務(wù)探索。AnalyticDB for MySQL 全面兼容MySQL協(xié)議以及SQL:2003 語法標(biāo)準(zhǔn), AnalyticDB forPostgreSQL 支持標(biāo)準(zhǔn) SQL:2003,高度兼容 Oracle 語法生態(tài)。
向量檢索和非結(jié)構(gòu)化數(shù)據(jù)分析是AnalyticDB的進(jìn)階功能。目前兩款產(chǎn)品都包含向量檢索功能, 可以支持人臉, 人體, 車輛等的相似查詢和推薦系統(tǒng)。AnalyticDB在真實(shí)應(yīng)用場景中可以支持10億級別的向量數(shù)據(jù)的查詢, 毫秒級別的響應(yīng)時(shí)間。AnalyticDB已經(jīng)在多個(gè)城市的重大項(xiàng)目中大規(guī)模部署。
在一般的包含向量檢索的的應(yīng)用系統(tǒng)中, 通常開發(fā)者會(huì)使用向量檢索引擎(例如Faiss)來存儲(chǔ)向量數(shù)據(jù), 然后使用關(guān)系型數(shù)據(jù)庫存儲(chǔ)結(jié)構(gòu)化數(shù)據(jù)。在查詢時(shí)也需要交替查詢兩個(gè)系統(tǒng), 這種方案會(huì)有額外的開發(fā)工作并且性能也不是最優(yōu)。AnalyticDB支持結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)(向量)的檢索,僅僅使用SQL接口就可以快速的搭建起以圖搜圖或者圖片+結(jié)構(gòu)化數(shù)據(jù)混合檢索等功能。AnalyticDB的優(yōu)化器在混合檢索場景中會(huì)根據(jù)數(shù)據(jù)的分布和查詢的條件選擇最優(yōu)的執(zhí)行計(jì)劃,在保證召回的同時(shí),得到最優(yōu)的性能。AnalyticDB向量版采用了多項(xiàng)創(chuàng)新性技術(shù), 這些技術(shù)在我們的論文?AnalyticDB-V: A Hybrid Analytical Engine Towards Query Fusion for Structured and Unstructured Data?中有詳細(xì)介紹介紹。目前論文已經(jīng)被數(shù)據(jù)庫三大頂會(huì)之一的VLDB接受, 具有技術(shù)領(lǐng)先性。
結(jié)構(gòu)化信息+非結(jié)構(gòu)化信息(圖片)混合檢索在實(shí)際應(yīng)用中被廣泛使用的。例如人臉門禁系統(tǒng)被部署在多個(gè)小區(qū)時(shí), 我們使用一張表存儲(chǔ)了所有小區(qū)的人臉特征, 在人臉檢索時(shí)我們只需要檢索當(dāng)前小區(qū)的人臉特征。在這種情況下, 使用AnalyticDB我們只需要在SQL中增加where 小區(qū)名 =’xxx’ 就可以輕易實(shí)現(xiàn)。AnalyticDB同時(shí)提供了先進(jìn)的圖像文本分析算法, 能夠提取非結(jié)構(gòu)化數(shù)據(jù)的特征和標(biāo)簽, 用戶僅僅需要使用SQL就可以完成圖像文本內(nèi)容的分析。
本文章轉(zhuǎn)載微信公眾號@阿里云瑤池?cái)?shù)據(jù)庫