123 lines
3.3 KiB
C++
123 lines
3.3 KiB
C++
/******************************************************************************
|
|
* FeedChain.h *
|
|
*-------------*
|
|
* This is the header file for the CFeedChain implementation.
|
|
*------------------------------------------------------------------------------
|
|
* Copyright (C) 1999 Microsoft Corporation Date: 03/01/99
|
|
* All Rights Reserved
|
|
*
|
|
*********************************************************************** MC ****/
|
|
|
|
#ifndef FeedChain_H
|
|
#define FeedChain_H
|
|
|
|
#ifndef SPDebug_h
|
|
#include <spdebug.h>
|
|
#endif
|
|
#ifndef SPCollec_h
|
|
#include <SPCollec.h>
|
|
#endif
|
|
|
|
|
|
|
|
// Maximum posody breakpoints for each phon
|
|
typedef enum KNOTSLEN
|
|
{
|
|
KNOTS_PER_PHON = 20
|
|
}KNOTSLEN;
|
|
|
|
|
|
|
|
//-----------------------------------------------------
|
|
// This is the unit data the BE gets fron the FE
|
|
//-----------------------------------------------------
|
|
typedef struct UNITINFO
|
|
{
|
|
ULONG UnitID; // Inventory table ID
|
|
float duration; // Duration in seconds
|
|
float amp; // Abs amplitude
|
|
float ampRatio; // Amplitude gain
|
|
ULONG nKnots; // Number of prosody breakpoints
|
|
float pTime[KNOTS_PER_PHON]; // Breakpoint length
|
|
float pF0[KNOTS_PER_PHON]; // Pitch breakpoint
|
|
float pAmp[KNOTS_PER_PHON]; // Amplitude gain breakpoint
|
|
ULONG PhonID; // Phoneme ID
|
|
ULONG SenoneID; // Context offset from PhonID
|
|
USHORT AlloID;
|
|
USHORT NextAlloID;
|
|
USHORT AlloFeatures; // for viseme
|
|
ULONG flags; // Misc flags
|
|
ULONG csamplesOut; // Number of rendered samples
|
|
float speechRate;
|
|
|
|
//-- Event data
|
|
ULONG srcPosition; // Position for WORD events
|
|
ULONG srcLen; // Length for WORD events
|
|
ULONG sentencePosition; // Position for SENTENCE events
|
|
ULONG sentenceLen; // Length for SENTENCE events
|
|
void *pBMObj; // Ptr to bookmark list
|
|
|
|
//-- Control data
|
|
ULONG user_Volume; // Output volume level
|
|
bool hasSpeech;
|
|
|
|
//-- Debug output
|
|
enum SILENCE_SOURCE silenceSource;
|
|
CHAR szUnitName[15];
|
|
long ctrlFlags;
|
|
/*long cur_TIME;
|
|
long decompress_TIME;
|
|
long prosody_TIME;
|
|
long stretch_TIME;
|
|
long lpc_TIME;*/
|
|
} UNITINFO;
|
|
|
|
|
|
|
|
//-------------------------------------------------
|
|
// Since bookmarks can be stacked, we need to
|
|
// save each individually into a list
|
|
//-------------------------------------------------
|
|
typedef struct
|
|
{
|
|
LPARAM pBMItem; // Ptr to text data
|
|
} BOOKMARK_ITEM;
|
|
|
|
|
|
class CBookmarkList
|
|
{
|
|
public:
|
|
//----------------------------------------
|
|
// Needs destructor to dealloc
|
|
// 'BOOKMARK_ITEM' memory
|
|
//----------------------------------------
|
|
~CBookmarkList();
|
|
|
|
//----------------------------------------
|
|
// Linked list bookmark items
|
|
//----------------------------------------
|
|
CSPList<BOOKMARK_ITEM*, BOOKMARK_ITEM*> m_BMList;
|
|
};
|
|
|
|
//---------------------------------------------------
|
|
// Speech states
|
|
//---------------------------------------------------
|
|
enum SPEECH_STATE
|
|
{
|
|
SPEECH_CONTINUE,
|
|
SPEECH_DONE
|
|
};
|
|
|
|
|
|
|
|
class CFeedChain
|
|
{
|
|
public:
|
|
|
|
virtual HRESULT NextData( void **pData, SPEECH_STATE *pSpeechState ) = 0;
|
|
};
|
|
|
|
|
|
|
|
#endif //--- This must be the last line in the file
|