r9y9 / nnmnkwii

Library to build speech synthesis systems designed for easy and fast prototyping.

Home Page:https://r9y9.github.io/nnmnkwii/latest/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

nnmnkwii/nnmnkwii/paramgen/_mlpg.py

XiaoshanHsj opened this issue · comments

line 121 b = P\mu

I think it should be "b = \sum_{l} W_{l}^{T}P_{l}\mu“

bs = precisions * means => P_{l}\mu
bm.dot_mv_plus_equals(win_mat.T, b_frames[:, win_index], target=b) => W_{l}^{T}

Hi, sorry for the super delay. If possible, could you describe in more details why the changes are needed?

firstly, bs = precisions * means, so bs = U^{-1} · M^{T}, where U -> variance matrix, M -> mean matrix (\mu);
then "b, P = build_poe(bs, precisions, win_mats)"
in function of build_poe(), we can see that "bm.dot_mv_plus_equals(win_mat.T, b_frames[:, win_index], target=b)"
so b = W^{T} · bs = W^{T} · U^{-1} · M^{T} = W^{T} · P · M^{T}