marytts.signalproc.analysis
Class RegularizedPreWarpedCepstrumEstimator

java.lang.Object
  extended by marytts.signalproc.analysis.RegularizedCepstrumEstimator
      extended by marytts.signalproc.analysis.RegularizedPreWarpedCepstrumEstimator

public class RegularizedPreWarpedCepstrumEstimator
extends RegularizedCepstrumEstimator

Implements the regularized cepstral envelope estimation in Cappe, O., Laroche, J., and Moulines E., 1995, "Regularized estimation of cepstrum envelope from discrete frequency points", in IEEE ASSP Workshop on app. of sig. proc. to audio and acoust. This approach is used in Harmonic plus Noise (HNM) model for pitch modification for the purpose of estimating amplitudes of harmonics at (new) pitch-modified locations. (See, i.e. (Stylianou, et. al.,1995) or Stylianou┬┤s PhD thesis for details) Stylianou, Y, Laroche, J., and Moulines E., 1995, "High quality speech modification based on a Harmonic + Noise model", in Proc. of the Europseech 1995. Various other techniques are used by other researchers to keep the overall spectral shape unchanged under pitch sclae modifications. For example, Quatieri uses SEEVOC approach (linear interpolation) to find amplitude values at modified frequencies. Failing to estimate the modified amplitudes successfully will result in changes in overal spectral envelope which may affect voice quality, presence, or even the identity of phones after pitch scaling.

Author:
Oytun Türk

Field Summary
 
Fields inherited from class marytts.signalproc.analysis.RegularizedCepstrumEstimator
DEFAULT_LAMBDA, REGULARIZED_CEPSTRUM_WITH_POST_MEL_WARPING, REGULARIZED_CEPSTRUM_WITH_PRE_BARK_WARPING
 
Constructor Summary
RegularizedPreWarpedCepstrumEstimator()
           
 
Method Summary
static double cepstrum2dbSpectrumValue(float[] ceps, double freqInHz, int samplingRateInHz)
           
static double[] cepstrum2dbSpectrumValues(float[] ceps, double[] freqsInHz, int samplingRateInHz)
           
static double[] cepstrum2dbSpectrumValues(float[] ceps, int maxFreqIndex, int samplingRateInHz)
           
static double cepstrum2linearSpectrumValue(float[] ceps, double freqInHz, int samplingRateInHz)
           
static double[] cepstrum2logAmpHalfSpectrum(float[] ceps, int fftSize, int samplingRateInHz)
           
static float[] freqsLinearAmps2cepstrum(double[] linearAmps, double[] freqsInHz, int samplingRateInHz, int cepsOrder)
           
static float[] freqsLinearAmps2cepstrum(double[] linearAmps, double[] freqsInHz, int samplingRateInHz, int cepsOrder, double[] weights, double lambda)
           
static double[][] precomputeM(double[] freqsInHz, int samplingRateInHz, int cepsOrder)
           
static double[] spectralEnvelopeDB(double[] linearAmps, double[] freqsInHz, int samplingRateInHz, int cepsOrder, int fftSize)
           
static double[] spectralEnvelopeLinear(double[] linearAmps, double[] freqsInHz, int samplingRateInHz, int cepsOrder)
           
static double[] spectralEnvelopeLinear(double[] linearAmps, double[] freqsInHz, int samplingRateInHz, int cepsOrder, int fftSize)
           
 
Methods inherited from class marytts.signalproc.analysis.RegularizedCepstrumEstimator
cepstrum2logAmpHalfSpectrum, freqsLinearAmps2cepstrum, freqsLinearAmps2cepstrum, precomputeInverted, precomputeLambdaR, precomputeM, precomputeMTransW, precomputeMTransWM
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RegularizedPreWarpedCepstrumEstimator

public RegularizedPreWarpedCepstrumEstimator()
Method Detail

freqsLinearAmps2cepstrum

public static float[] freqsLinearAmps2cepstrum(double[] linearAmps,
                                               double[] freqsInHz,
                                               int samplingRateInHz,
                                               int cepsOrder,
                                               double[] weights,
                                               double lambda)

freqsLinearAmps2cepstrum

public static float[] freqsLinearAmps2cepstrum(double[] linearAmps,
                                               double[] freqsInHz,
                                               int samplingRateInHz,
                                               int cepsOrder)

cepstrum2logAmpHalfSpectrum

public static double[] cepstrum2logAmpHalfSpectrum(float[] ceps,
                                                   int fftSize,
                                                   int samplingRateInHz)

cepstrum2linearSpectrumValue

public static double cepstrum2linearSpectrumValue(float[] ceps,
                                                  double freqInHz,
                                                  int samplingRateInHz)

cepstrum2dbSpectrumValue

public static double cepstrum2dbSpectrumValue(float[] ceps,
                                              double freqInHz,
                                              int samplingRateInHz)

cepstrum2dbSpectrumValues

public static double[] cepstrum2dbSpectrumValues(float[] ceps,
                                                 int maxFreqIndex,
                                                 int samplingRateInHz)

cepstrum2dbSpectrumValues

public static double[] cepstrum2dbSpectrumValues(float[] ceps,
                                                 double[] freqsInHz,
                                                 int samplingRateInHz)

precomputeM

public static double[][] precomputeM(double[] freqsInHz,
                                     int samplingRateInHz,
                                     int cepsOrder)

spectralEnvelopeLinear

public static double[] spectralEnvelopeLinear(double[] linearAmps,
                                              double[] freqsInHz,
                                              int samplingRateInHz,
                                              int cepsOrder)

spectralEnvelopeLinear

public static double[] spectralEnvelopeLinear(double[] linearAmps,
                                              double[] freqsInHz,
                                              int samplingRateInHz,
                                              int cepsOrder,
                                              int fftSize)

spectralEnvelopeDB

public static double[] spectralEnvelopeDB(double[] linearAmps,
                                          double[] freqsInHz,
                                          int samplingRateInHz,
                                          int cepsOrder,
                                          int fftSize)