聲紋識(shí)別 | 快速概覽 + 詳細(xì)了解N:N聚類算法是如何應(yīng)用的

0 評(píng)論 11201 瀏覽 12 收藏 13 分鐘

編輯導(dǎo)語(yǔ):如今的識(shí)別功能越來(lái)越強(qiáng)大,比如:指紋識(shí)別、人臉識(shí)別、虹膜識(shí)別、聲紋識(shí)別等等,聲紋識(shí)別多用于金融行業(yè)和刑偵場(chǎng)景,進(jìn)行聲音匹配;本文作者詳細(xì)介紹和分析了聲紋識(shí)別中N:N聚類算法是如何應(yīng)用的,我們一起來(lái)看一下。

筆者前段時(shí)間有幸了解到聲紋的概念:聲紋識(shí)別,作為生物識(shí)別技術(shù)的一種,跟臉象、指紋、虹膜等一樣,是每個(gè)人獨(dú)一無(wú)二的特征;在金融行業(yè)、刑偵場(chǎng)景應(yīng)用中,對(duì)于說(shuō)話人身份的鑒別認(rèn)證,應(yīng)用頗多。

作為產(chǎn)品功能設(shè)計(jì),一般有三個(gè)類別,分別是1:1(說(shuō)話人確認(rèn))、1:N(說(shuō)話人辨認(rèn))、N:N(在聲紋1:N的基礎(chǔ)上,進(jìn)行大規(guī)模、自動(dòng)化和高效的聲紋匹配,類似聲海中找特定聲音,或者找相似聲音)。

本文從聲紋識(shí)別的基本概念入手,科普知識(shí);同時(shí)分享筆者思考的聲紋識(shí)別的N:N聚類算法的流程與應(yīng)用場(chǎng)景,希望可以和大家多多交流。

本文將從如下方面為你一一解讀:

  • 什么是聲紋?
  • 聲紋識(shí)別的原理。
  • 聲紋識(shí)別的三個(gè)應(yīng)用大類:1:1、1:N、N:N。
  • N:N聚類分析的技術(shù)原理與應(yīng)用流程、應(yīng)用場(chǎng)景。
  • 聲紋識(shí)別的幾類攻擊。

一、什么是聲紋?

聲紋(Voiceprint),是用電聲學(xué)儀器顯示的攜帶言語(yǔ)信息的聲波頻譜,是由波長(zhǎng)、頻率以及強(qiáng)度等百余種特征維度組成的生物特征,具有穩(wěn)定性、可測(cè)量性、唯一性等特點(diǎn)。

人類語(yǔ)言的產(chǎn)生是人體語(yǔ)言中樞與發(fā)音器官之間一個(gè)復(fù)雜的生理物理過(guò)程,發(fā)聲器官——舌、牙齒、喉頭、肺、鼻腔在尺寸和形態(tài)方面每個(gè)人的差異很大,所以任何兩個(gè)人的聲紋圖譜都有差異。

每個(gè)人的語(yǔ)音聲學(xué)特征既有相對(duì)穩(wěn)定性,又有變異性,不是一成不變的;這種變異可來(lái)自生理、病理、心理、模擬、偽裝,也與環(huán)境干擾有關(guān);盡管如此,由于每個(gè)人的發(fā)音器官都不盡相同,因此在一般情況下,人們?nèi)阅軈^(qū)別不同的人的聲音或判斷是否是同一人的聲音。

二、聲紋識(shí)別的原理

想要通過(guò)聲音識(shí)別某個(gè)人,或者從聲海中辨認(rèn)出誰(shuí)是誰(shuí),有兩個(gè)核心的問(wèn)題:就是特征提取和模式匹配了。

數(shù)據(jù)收集階段,提取并提取并選擇對(duì)說(shuō)話人的聲紋具有可分性強(qiáng)、穩(wěn)定性高等特性的聲學(xué)或語(yǔ)言特征;之后選擇合適的模型(具體大家可以自行搜索,這里不多贅述)在進(jìn)行聲音識(shí)別。

三、聲紋識(shí)別的三個(gè)應(yīng)用大類:1:1、1:N、N:N

1. 說(shuō)話人確認(rèn) 1:1

1:1 說(shuō)話人確認(rèn)是確認(rèn)說(shuō)話人身份的方法,針對(duì)“對(duì)于同樣的文本內(nèi)容,有兩段錄音,這兩段錄音到底是不是出自一人之口”這樣的問(wèn)題,也就是“兩句話到底是不是一個(gè)人說(shuō)“的問(wèn)題。

該類場(chǎng)景相對(duì)簡(jiǎn)單,主要應(yīng)用于用戶的注冊(cè)和驗(yàn)證,以及APP內(nèi)的聲紋核身。

2. 說(shuō)話人確認(rèn) 1:N

1:N 說(shuō)話人辨認(rèn)是辨認(rèn)說(shuō)話人身份的方法,針對(duì)“對(duì)于一段語(yǔ)音,需要迅速在樣本庫(kù)中進(jìn)行搜尋比對(duì),以確認(rèn)這段語(yǔ)音與樣本庫(kù)中哪段語(yǔ)音相似度最高”,也就是說(shuō)“給定的一段語(yǔ)音屬于樣本庫(kù)中誰(shuí)說(shuō)的”的問(wèn)題。

該類場(chǎng)景比較常見(jiàn),主要應(yīng)用于黑名單用戶進(jìn)線檢測(cè)、提高安防能力等。

3. 說(shuō)話人聚類 N:N

在聲紋 1:N 的基礎(chǔ)上,進(jìn)行大規(guī)模、自動(dòng)化和高效的聲紋匹配。

舉個(gè)例子,如果吉尼斯舉行一個(gè)比賽,5萬(wàn)個(gè)人都錄制一段文字內(nèi)容相同的語(yǔ)音;作為吉尼斯的審核方,如果想要快速鑒別這5萬(wàn)個(gè)數(shù)據(jù)有沒(méi)有造假、或者重復(fù)(比如將一段語(yǔ)音復(fù)制無(wú)數(shù)次,冒充數(shù)據(jù));那么雇傭業(yè)務(wù)員一條一條語(yǔ)音聽(tīng),是有點(diǎn)不科學(xué)的,語(yǔ)音聽(tīng)多了也會(huì)混亂,而且很低效。

那么有什么好的辦法呢?那就是N:N說(shuō)話人聚類,下文會(huì)詳細(xì)介紹如何解決此類問(wèn)題。

四、N:N聚類分析的技術(shù)原理與應(yīng)用流程,應(yīng)用場(chǎng)景

對(duì)于千億級(jí)別的無(wú)標(biāo)簽錄音文件,如何做有效的處理?

舉個(gè)例子,假如說(shuō)你有很多的語(yǔ)音片段(語(yǔ)音的文本內(nèi)容是相同的),這些語(yǔ)音片段分別歸屬于甲乙丙丁等人;僅憑人耳辨識(shí)是無(wú)法分辨出哪些語(yǔ)音片段屬于甲,哪些語(yǔ)音片段屬于乙。

通過(guò)N:N聚類的算法,進(jìn)行聲紋的相似度檢測(cè),將屬于同一個(gè)人說(shuō)話的語(yǔ)音片段不斷進(jìn)行合并歸類;最后屬于甲說(shuō)話的語(yǔ)音片段全部被歸為一類,屬于乙說(shuō)話的語(yǔ)音片段全部被歸為一類;以此類推,類內(nèi)語(yǔ)音的相似度極高,類間語(yǔ)音的相似度較低,達(dá)到將這些語(yǔ)音片段分人整理的目的。

簡(jiǎn)單介紹一下聚類分析:聚類分析是根據(jù)在數(shù)據(jù)中發(fā)現(xiàn)的描述對(duì)象及其關(guān)系的信息,將數(shù)據(jù)對(duì)象分組。

目的是——組內(nèi)的對(duì)象相互之間是相似的(相關(guān)的),而不同組中的對(duì)象是不同的(不相關(guān)的);組內(nèi)相似性越大,組間差距越大,說(shuō)明聚類效果越好。

聚類效果的好壞依賴于兩個(gè)因素:

  • 衡量距離的方法(distance measurement)?;
  • 聚類算法(algorithm)。

目前主流的說(shuō)話人聚類算法是在說(shuō)話人分割的基礎(chǔ)上,基于貝葉斯信息判據(jù),采用凝聚分層聚類算法,直接對(duì)說(shuō)話人分割后的語(yǔ)音段進(jìn)行判決,將屬于同一個(gè)說(shuō)話人的語(yǔ)音段合并為一類。

其基本思想是從每個(gè)語(yǔ)片段中提取特征參數(shù),例如梅爾倒譜參數(shù),計(jì)算每?jī)蓚€(gè)語(yǔ)音段之間特征參數(shù)的相似度,并利用BIC判斷相似度最高的兩個(gè)語(yǔ)音段是否合并為同一類。

對(duì)任意兩段語(yǔ)音都進(jìn)行上述判決,直到所有的語(yǔ)音段不再合并。

——摘自“說(shuō)話人聚類的初始類生成方法”

聚類&聲紋識(shí)別的主要場(chǎng)景:在跨渠道、跨場(chǎng)景收集語(yǔ)音同時(shí)建立聲紋庫(kù)的時(shí)候;由于各場(chǎng)景應(yīng)用的客戶賬號(hào)或許不同,說(shuō)話人在不同場(chǎng)景中分別注冊(cè)過(guò)聲紋,難以篩除重復(fù)注冊(cè)語(yǔ)音,建立統(tǒng)一聲紋庫(kù)。

我們?nèi)绾慰焖俚娜ズY除屬于某一個(gè)人在不同情況下錄制的多條錄音文件?也就是如何保證最終留下的錄音文件(聲紋庫(kù))是唯一的?

每一個(gè)人只對(duì)應(yīng)一條音頻,這就要用到聚類的算法;利用聲紋識(shí)別N:N說(shuō)話人聚類,對(duì)所有收集到的語(yǔ)音進(jìn)行語(yǔ)音相似度檢測(cè),將同一說(shuō)話人在不同場(chǎng)景中的多次錄制的語(yǔ)音篩選出來(lái);并只保留其中一條,從而保證了聲紋庫(kù)的獨(dú)特性,節(jié)省了大量的人力成本、資源成本。

對(duì)于目前的場(chǎng)景,我們選擇凝聚層次聚類算法,在這種場(chǎng)景下,我們是要篩除重復(fù)人說(shuō)話;那么我們可以將每一個(gè)錄音文件都當(dāng)作一個(gè)獨(dú)立的數(shù)據(jù)點(diǎn),看最后有凝聚出多少個(gè)獨(dú)立的數(shù)據(jù)簇,此時(shí)可以理解為類內(nèi)都是同一個(gè)人在說(shuō)話。

1)我們首先將每個(gè)數(shù)據(jù)點(diǎn)(每一條錄音文件)視為一個(gè)單一的類,即如果我們的數(shù)據(jù)集中有 X 個(gè)數(shù)據(jù)點(diǎn),那么我們就有 X 個(gè)類;然后,我們選擇一個(gè)測(cè)量?jī)蓚€(gè)類之間距離的距離度量標(biāo)準(zhǔn);作為例子,我們將用 average linkage,它將兩個(gè)類之間的距離定義為第一個(gè)類中的數(shù)據(jù)點(diǎn)與第二個(gè)類中的數(shù)據(jù)點(diǎn)之間的平均距離(這個(gè)距離度量標(biāo)準(zhǔn)可以選擇其他的)。

2)在每次迭代中,我們將兩個(gè)類合并成一個(gè);這兩個(gè)要合并的類應(yīng)具有最小的 average linkage,即根據(jù)我們選擇的距離度量標(biāo)準(zhǔn),這兩個(gè)類之間的距離最??;因此是最相似的,應(yīng)該合并在一起。

3)重復(fù)步驟 2 直到我們到達(dá)樹(shù)根,即我們只有一個(gè)包含所有數(shù)據(jù)點(diǎn)的類。這樣我們只需要選擇何時(shí)停止合并類,即何時(shí)停止構(gòu)建樹(shù),來(lái)選擇最終需要多少個(gè)類(摘自知乎)。

按照實(shí)際的場(chǎng)景,如果我們最終要得到1000個(gè)不重復(fù)的錄音文件,為了防止過(guò)度合并,定義的退出條件是最后想要得到的錄音文件數(shù)目。

聲紋識(shí)別 N:N聚類算法

處理的流程圖

聲紋識(shí)別 N:N聚類算法

聚類模擬圖

五、聲紋識(shí)別的幾類攻擊及其策略

1. 錄音重放攻擊

攻擊者錄制目標(biāo)說(shuō)話人的語(yǔ)音進(jìn)行播放,以目標(biāo)人身份試圖通過(guò)聲紋識(shí)別系統(tǒng)的認(rèn)證。

策略:基于隨機(jī)內(nèi)容聲紋的檢測(cè)技術(shù),利用隨機(jī)數(shù)字的不確定性,用戶在規(guī)定的時(shí)間內(nèi)(5-10S)需要念出指定的隨機(jī)內(nèi)容,如果超時(shí),則隨機(jī)內(nèi)容更新;因?yàn)閷?duì)于錄音重放的內(nèi)容是固定的,很不靈活,所以比較容易做限制。

2. 波形拼接攻擊

攻擊者將目標(biāo)說(shuō)話人的語(yǔ)音錄制下來(lái),通過(guò)波形編輯工具,拼接出指定內(nèi)容的語(yǔ)音數(shù)據(jù),以放音的方式假冒目標(biāo)說(shuō)話人,試圖以目標(biāo)人身份通過(guò)聲紋識(shí)別系統(tǒng)的認(rèn)證。

策略:同錄音重放。

3. 語(yǔ)音合成攻擊

攻擊者用語(yǔ)音合成技術(shù)生成目標(biāo)說(shuō)話人的語(yǔ)音,以放音的方式假冒目標(biāo)說(shuō)話人,試圖以目標(biāo)人的身份通過(guò)聲紋識(shí)別系統(tǒng)的認(rèn)證。

策略:同錄音重放;利用活體檢測(cè)技術(shù),加強(qiáng)算法的識(shí)別度。

以上,是關(guān)于聲紋識(shí)別的一些分享,希望大家可以多多交流,一同進(jìn)步。

 

本文由@寒白 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載

題圖來(lái)自Unsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 目前還沒(méi)評(píng)論,等你發(fā)揮!