plda 學習筆記

2021-10-07 21:00:59 字數 1536 閱讀 8138

plda的計算公式如下:

假設語音資料由i個人構成,第i個人的第j條語音xij

=u+f

hij+

gwij

+ϵij

x_ = u + fh_+gw_+ϵ_

xij​=u

+fhi

j​+g

wij​

+ϵij

​ 理解這個公式:

u

uu是指所有資料的均值

f

ff是指各種身份的基底,包含了表示各種身份的特徵

h ij

h_hi

j​是指說話人語音的特徵

g

gg是指誤差空間,用來表示說話人不同語音之間不同變化的基底

w ij

w_wi

j​是指說話人此條語音的特徵

最後的殘留雜訊項 ϵij

ϵijϵi

j用來表示尚未解釋的東西,該項為零均高斯分布,方差為σσσ

這個模型可以看成兩個部分:等號右邊前兩項只跟說話人有關而跟說話人的具體某一條語音無關,稱為訊號部分,這描述了說話人類間的差異;

等號右邊後兩項描述了同一說話人的不同語音之間的差異,稱為噪音部分。這樣,我們用了這樣兩個假想變數來描述一條語音的資料結構。

我們注意到等號右邊的中間兩項分別是乙個矩陣和乙個向量的表示形式,這便是因子分析的又一核心部分。這兩個矩陣f和g包含了各自假想變數空間中的基本因子,這些因子可以看做是各自空間的特徵向量。比如,f的每一列就相當於類間空間的特徵向量,g的每一列相當於類內空間的特徵向量。而兩個向量可以看做是分別在各自空間的特徵表示,比如hi就可以看做是xij在說話人空間中的特徵表示。在識別打分階段,如果兩條語音的hi特徵相同的似然度越大,那麼這兩條語音就更確定地屬於同乙個說話人。

模型訓練:

模型訓練的目標就是輸入一堆資料 xij ,輸出可以最大程度上表示該資料集的高斯分布的引數 θ=[μ,f,g,σ]。

如果知道隱含變數 hi 和 wij ,那麼我們很容易求得 (\theta = [\mu,f,g,\sigma] ),反之亦然。這種雞生蛋、蛋生雞的問題最好的解決辦法就是em演算法。

訓練過程:

(1)均值處理:

計算所有訓練資料 xall 的均值 μ , 然後從訓練資料中減去該均值 xall=xall−μ 。

然後,假如訓練資料中共有 n 個人,則再計算 n 個人的均值 nμ。

(2)初始化:

初始化之前,我們需要說明幾個配置引數:特徵維度記為 d ,即 μ 是 d×1 維的, nμ 是 d×n 維的。 身份空間維度,需要我們預先指定,記為 nf ,即f 是 d×nf 維的,同時 hi 是 nf×1 維的。 雜訊空間維度,需同樣要預先指定,記為 ng ,即 g 是 d×ng維的,同時 wij 是 ng×1 維的。g 使用隨機初始化;f 初始化:對每個人的均值資料 nμ 進行pca降維,降到 nf 維,賦值給 fς 初始化為 d×1 維的常量

em演算法:

lda:

參考:

PLDA演算法描述

plda probabilistic linear discriminant analysis 也是一種通道補償演算法,號稱概率形式的lda演算法。plda同樣通常是基於i vector特徵的,因為i vector特徵即包含說話人資訊又包含通道資訊,而我們只關心說話人資訊,所以才需要通道補償。pld...

聲紋識別PLDA模型的理解

在聲紋識別領域中,我們假設訓練資料語音由i個說話人的語音組成,其中每個說話人有j段自己不同的語音。那麼,我們定義第i個說話人的第j條語音為xij。然後,根據因子分析,我們定義xij的生成模型為 這個模型可以看成兩個部分 等號右邊前兩項只跟說話人有關而跟說話人的具體某一條語音無關,稱為訊號部分,這描述...

學習筆記 雜湊學習筆記

hash基本原理 hash就是乙個像函式一樣的東西,你放進去乙個值,它給你輸出來乙個值。輸出的值就是hash值。一般hash值會比原來的值更好儲存 更小 或比較。那字串hash就非常好理解了。就是把字串轉換成乙個整數的函式。而且要盡量做到使字串對應唯一的hash值。它的主要思路是選取恰當的進製,可以...