windows-nt/Source/XPSP1/NT/enduser/speech/tts/common/sigproc/sigproc.h
2020-09-26 16:20:57 +08:00

71 lines
2 KiB
C

/******************************************************************************
* sigproc.h *
*-----------*
* I/O library functions for extended speech files (vapi format)
*------------------------------------------------------------------------------
* Copyright (C) 1999 Entropic, Inc
* Copyright (C) 2000 Microsoft Corporation Date: 03/02/00
* All Rights Reserved
*
********************************************************************* PACOG ***/
#ifndef _SIGPROC_H_
#define _SIGPROC_H_
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif
#define LN2 0.6931471806
inline int LpcOrder( int p)
{
return (int)((p / 1000.0) + 2.5);
}
enum {LPC_ALFA=0, LPC_PARCOR} ;
enum {WINDOW_HAMM, WINDOW_HANN, WINDOW_BLACK, WINDOW_RECT, WINDOW_BART};
double* ComputeWindow (int iType, int iSize, bool bSymmetric);
int WindowSignal (double* pdSamples, int iNumSamples, int iType, bool bSymmetric);
double* GetDurbinCoef (double* pdData, int iNumData, int iOrder, int iCoefType, double *pdError);
double* Autocor (double* x, int m, int iOrder);
double* DurbinRecursion (double* pdAutoc, int iOrder, int iCoefType, double *pdError);
void ParcorFilterSyn (double* pdData, int iNumData, double* pdParcor, double* pdMemory, int iOrder);
void ParcorFilterAn (double* pdData, int iNumData, double* pdParcor, double* pdMemory, int iOrder);
bool ParcorToAlfa (double* pdParcor, double* pdAlfa, int iOrder);
double* Cepstrum (double *pdData, int iNumData, int iLpcOrder, int iCepOrder);
void Alfa2Cepstrum (double* pdAlfa, int iNumAlfa, double* pdCepstrum, int iNumCepstrum);
double EuclideanDist (double c1[], double c2[], int iLen);
double Energy (double* pdData, int iNumData, int iWindType);
int RemoveDc (double* pdSamples, int iNumSamples);
int Resample (double* pdOriginal, int iNumOrig,
int iInSampFreq, int iOutSampFreq,
double** pdResampled, int* iNumResamp);
int NonIntegerDelay (double* pdSamples, int iNumSamples, double dDelay);
#endif