[Subject Prev][Subject Next][Thread Prev][Thread Next][Date Index][Thread Index]

[hts-users:00759] Re: HGenS and WUW matrix


Hi,

  I have a question regarding HTS internals (either HGenS or mlpg
code in hts_engine). From what I am seeing the W^{T}U^{-1}W matrix is
stored as TxWidth, while the parameter matrix C is TxD, where D is the
order. For my modifications, in some instances (e.g. GV) I need to
somehow compute the W^{T}U^{-1}WC product, but that's not
straightforward as the matrix dimensions mismatch.

Note that the actual size of the W^{T}U^{-1}W matrix is TD-by-TD.
It is a (4LD+1)-diagonal band symmetric matrix. Therefore, we need
to store only TD-by-(2LD+1) elements for it. The size of the C "vector"
is TD-by-1.

When using diagonal covariance matrices, we can calculate each of the
D-dimensions independently. Therefore, at each dimension, we need
to store only T-by-(2L+1) elements for W^{T}U^{-1}W and only
T-by-1 elements for C, where 2L+1=Width.

Sincerely,
Tomoki Toda
 Nara Institute of Science and Technology
 E-mail: tomoki@xxxxxxxxxxx
 TEL: +81-743-72-5282
 FAX: +81-743-72-5289

----- Original Message ----- From: "Alexander Gutkin" <alexander.gutkin@xxxxxxxxx>
To: <hts-users@xxxxxxxxxxxxxxx>
Sent: Wednesday, August 01, 2007 11:54 PM
Subject: [hts-users:00758] HGenS and WUW matrix


Hi,

  I have a question regarding HTS internals (either HGenS or mlpg
code in hts_engine). From what I am seeing the W^{T}U^{-1}W matrix is
stored as TxWidth, while the parameter matrix C is TxD, where D is the
order. For my modifications, in some instances (e.g. GV) I need to
somehow compute the W^{T}U^{-1}WC product, but that's not
straightforward as the matrix dimensions mismatch. I've tried several
approaches to computing the product but so far without any success.
  The following code snippet from my code is a current broken
implementation of computing the following term:

   B = W^{T}U^{-1]M - W^{T}U^{-1}WC

   // for a given m
   for (t = 1; t <= pst->T; t++) {
       B[t] = 0.0;
       for (k = 1; (k <= pst->width) && (t + k <= pst->T); k++) {
           B[t] += (pst->sm.WUW[t][k] * C[t + k][m]);
       }
       B[t] = pst->sm.WUM[t] - B[t];
   }

                  Thanks in advance,
                                     Alexander.




Follow-Ups
[hts-users:00760] Re: HGenS and WUW matrix, Alexander Gutkin
References
[hts-users:00758] HGenS and WUW matrix, Alexander Gutkin