vc
Functions
-
int main(int argc, char *argv[])
vc [ option ] gmmfile [ infile ]
-l int
length of source vector
-m int
order of source vector
-L int
length of target vector
-M int
order of target vector
-k int
number of mixtures
-f
use full or block covariance instead of diagonal one
-d double+
delta coefficients
-D str
filename of double-type delta coefficients
-r int+
width of 1st (and 2nd) regression coefficients
-magic double
magic number
gmmfile str
double-type GMM parameters
infile str
double-type source static+dynamic vector sequence
stdout
double-type target static vector sequence
In the following example, the converted 4-th order vectors corresponding
data.source
are obtained using the trained 2-mixture GMMdata.gmm
.delta -l 5 -d -0.5 0.0 0.5 data.source | \ vc -k 2 -l 5 data.gmm > data.target
- Parameters:
argc – [in] Number of arguments.
argv – [in] Argument vector.
- Returns:
0 on success, 1 on failure.
-
class GaussianMixtureModelBasedConversion
Perform GMM-based voice conversion.
The input is the
-length source vectors: -length target vectors:The optimal target vectors can be drived in a maximum likelihood sense:
is the GMM that models the joint vectors. The mean vector and the covariance matrix of the -th mixture component are written as under the constraint between static and dynamic components is obtained by the maximum likelihood parameter generation algorithm.[1] T. Toda, A. W. Black, and K. Tokuda, “Voice conversion based on maximum-likelihood estimation of spectral parameter trajectory,” IEEE Transactions on Audio, Speech, and Language Processing, vol. 15, no. 8, pp. 2222-2235, 2007.
Public Functions
-
GaussianMixtureModelBasedConversion(int num_source_order, int num_target_order, const std::vector<std::vector<double>> &window_coefficients, const std::vector<double> &weights, const std::vector<std::vector<double>> &mean_vectors, const std::vector<SymmetricMatrix> &covariance_matrices, bool use_magic_number, double magic_number = 0.0)
- Parameters:
num_source_order – [in] Order of source vector,
.num_target_order – [in] Order of target vector,
.window_coefficients – [in] Window coefficients. e.g.) { {-0.5, 0.0, 0.5}, {1.0, -2.0, 1.0} }
weights – [in]
mixture weights.mean_vectors – [in]
mean vectors. The shape is .covariance_matrices – [in]
covariance matrices. The shape is .use_magic_number – [in] Whether to use magic number.
magic_number – [in] A magic number represents a discrete symbol.
-
inline int GetNumSourceOrder() const
- Returns:
Order of source vector.
-
inline int GetNumTargetOrder() const
- Returns:
Order of target vector.
-
inline bool IsValid() const
- Returns:
True if this object is valid.
-
bool Run(const std::vector<std::vector<double>> &source_vectors, std::vector<std::vector<double>> *target_vectors) const
- Parameters:
source_vectors – [in]
-th order source vectors containing dynamic components. The shape is .target_vectors – [out]
-th order target vectors. The shape is .
- Returns:
True on success, false on failure.
-
GaussianMixtureModelBasedConversion(int num_source_order, int num_target_order, const std::vector<std::vector<double>> &window_coefficients, const std::vector<double> &weights, const std::vector<std::vector<double>> &mean_vectors, const std::vector<SymmetricMatrix> &covariance_matrices, bool use_magic_number, double magic_number = 0.0)