www.pudn.com > OS.rar > InterSound4.h, change:2006-11-08,size:18303b


/*----------------------------------------------+ 
 |												| 
 |	InterSound4.h - InterSound 4 Standard API	| 
 |												| 
 |		Platform:	Any							| 
 |		Release:	4.0.200604111312			| 
 |												| 
 |		Copyright (c) 1999-2006, iFLYTEK Ltd.	| 
 |		All rights reserved.					| 
 |												| 
 +----------------------------------------------*/ 
 
#ifndef __IFLYTEK_INTERSOUND4__STANDARD_API__H__ 
#define __IFLYTEK_INTERSOUND4__STANDARD_API__H__ 
 
 
#ifdef WIN32 
#include <windows.h> 
#endif 
 
 
#ifdef __cplusplus 
extern "C" { 
#endif 
 
 
/* 
 *	COMMON DEFINES 
 */ 
 
#ifndef IN 
#define IN 
#define OUT 
#endif 
 
#ifndef FAR 
#define FAR 
#endif 
 
#ifndef PASCAL 
 
#ifdef WIN32 
#define PASCAL	__stdcall 
#else 
#define PASCAL	 
#endif 
	 
#endif 
 
#ifndef CONST 
#define CONST	const 
#endif 
 
typedef char	TTSBOOL; 
 
#define TTSFALSE  0 
#define TTSTRUE  -1 
 
typedef void TTSVOID; 
typedef TTSVOID FAR* LPTTSVOID; 
typedef CONST TTSVOID FAR* LPCTTSVOID; 
typedef LPTTSVOID FAR* LPLPTTSVOID; 
 
#define TTSNULL	0 
 
typedef unsigned char  TTSBYTE,  FAR* LPTTSBYTE; 
typedef unsigned short TTSWORD,  FAR* LPTTSWORD; 
typedef unsigned long  TTSDWORD, FAR* LPTTSDWORD; 
 
typedef TTSDWORD TTSVAR, FAR* LPTTSVAR; 
 
#if defined(UNICODE) || defined(_UNICODE) 
typedef unsigned short TTSCHAR; 
#define TTSTEXT(s)	L##s 
#else 
typedef char TTSCHAR; 
#define TTSTEXT(s)	s 
#endif 
 
typedef const TTSCHAR* TTSSTR; 
 
 
/* 
 *	ERROR CODES 
 */ 
 
typedef TTSWORD TTSERROR; 
 
#define TTSERR_OK		0x0000	/* success */ 
#define TTSERR_FAILED	0xFFFF	/* failed */ 
 
#define TTSERR_BASE		0x8000	/* error number base */ 
 
#define TTSERR_UNIMPEMENTED			TTSERR_BASE + 0		/* unimplemented function */ 
#define TTSERR_UNSUPPORTED			TTSERR_BASE + 1		/* unsupported on this platform */ 
#define TTSERR_INVALID_HANDLE		TTSERR_BASE + 2		/* invalid handle */ 
#define TTSERR_INVALID_PARAMETER	TTSERR_BASE + 3		/* invalid parameter(s) */ 
#define TTSERR_PART_FAILED			TTSERR_BASE + 4		/* part failed */ 
#define TTSERR_INSUFFICIENT_HEAP	TTSERR_BASE + 5		/* insufficient heap size  */ 
#define TTSERR_STATE_REFUSE			TTSERR_BASE + 6		/* refuse to do in current state  */ 
#define TTSERR_INVALID_ATTR_ID		TTSERR_BASE + 7		/* invalid attribute id */ 
#define TTSERR_INVALID_ATTR_VALUE	TTSERR_BASE + 8		/* invalid attribute value */ 
#define TTSERR_BEFORE_INIT			TTSERR_BASE + 9		/* any operate before initializion */ 
#define TTSERR_MORE_INIT			TTSERR_BASE + 10	/* initialized more than once */ 
#define TTSERR_REQUIRE_HEAP			TTSERR_BASE + 11	/* request user heap */ 
#define TTSERR_INVALID_HEAP			TTSERR_BASE + 12	/* invalid user heap pointer */ 
#define TTSERR_END_OF_INPUT			TTSERR_BASE + 13	/* end of input */ 
 
 
/* 
 *	INSTANCE HANDLE 
 */ 
 
typedef LPTTSVOID HTTS; 
 
 
/* 
 *	MINIMIZED HEAP SIZE REQUIRED 
 */ 
 
#define TTS_MIN_HEAP	(48 * 1024L) 
 
 
/* 
 *	INSTANCE ATTRIBUTES 
 */ 
 
typedef struct tagTTSAttr TTSATTR; 
typedef TTSATTR FAR* LPTTSATTR; 
 
struct tagTTSAttr 
{ 
	TTSDWORD	dwAttrId;		/* attribute id */ 
	TTSVAR		varAttrValue;	/* attribute value */ 
	TTSERROR	ttsError;		/* error code */ 
}; 
 
/* constants for values of field dwParamId */ 
#define TTSATTR_USER_HEAP			0x00000000	/* user heap for instance (NULL for dynamically allocation) */ 
#define TTSATTR_USER_HEAP_SIZE		0x00000001	/* size of the user heap */ 
#define TTSATTR_CALLBACK_PARAMETER	0x00000002	/* user callback parameter */ 
#define TTSATTR_ATTRCH_CALLBACK		0x00000003	/* attribute change callback entry */ 
#define TTSATTR_LANGUAGE			0x00000100	/* language, e.g. Chinese */ 
#define TTSATTR_INPUT_CODEPAGE		0x00000101	/* input code page, e.g. GBK */ 
#define TTSATTR_TEXT_MARK			0x00000102	/* text mark, e.g. CSSML */ 
#define TTSATTR_TEXT_SCOPE			0x00000103	/* text scope, e.g. number */ 
#define TTSATTR_USE_PROMPTS			0x00000104	/* whether use prompts */ 
#define TTSATTR_RECOGNIZE_PHONEME	0x00000105	/* how to recognize phoneme input */ 
#define TTSATTR_INPUT_MODE			0x00000200	/* input mode, e.g. from fixed buffer, from callback */ 
#define TTSATTR_INPUT_TEXT_BUFFER	0x00000201	/* input text buffer */ 
#define TTSATTR_INPUT_TEXT_SIZE		0x00000202	/* input text size */ 
#define TTSATTR_INPUT_CALLBACK		0x00000203	/* input callback entry */ 
#define TTSATTR_PROGRESS_BEGIN		0x00000204	/* current processing position */ 
#define TTSATTR_PROGRESS_LENGTH		0x00000205	/* current processing length */ 
#define TTSATTR_PROGRESS_CALLBACK	0x00000206	/* progress callback entry */ 
#define TTSATTR_READ_PUNCTUATIONS	0x00000300	/* whether read punctuations */ 
#define TTSATTR_READ_AS_NAME		0x00000301	/* whether read as name */ 
#define TTSATTR_READ_DIGIT			0x00000302	/* how to read digit, e.g. read as number, read as value  */ 
#define TTSATTR_CHINESE_NUMBER_1	0x00000303	/* how to read number "1" in Chinese */ 
#define TTSATTR_OUTPUT_VOICE		0x00000400	/* output voice or not */ 
#define TTSATTR_OUTPUT_CALLBACK		0x00000401	/* output callback entry */ 
#define TTSATTR_PHONEME_WATCH		0x00000402	/* how to watch phoneme, e.g. Chinese Pin-Yin */ 
#define TTSATTR_WATCH_CALLBACK		0x00000403	/* watch callback entry */ 
#define TTSATTR_ROLE				0x00000500	/* speaker role */ 
#define TTSATTR_SPEAK_STYLE			0x00000501	/* speak style */ 
#define TTSATTR_VOICE_SPEED			0x00000502	/* voice speed */ 
#define TTSATTR_VOICE_TONE			0x00000503	/* voice tone */ 
#define TTSATTR_VOLUME				0x00000504	/* volume value */ 
#define TTSATTR_VEMODE				0x00000600	/* voice effect - predefined mode */ 
#define TTSATTR_VE_AMPLIFY			0x00000601	/* voice effect - amplify */ 
#define TTSATTR_VE_ECHO				0x00000602	/* voice effect - echo */ 
#define TTSATTR_VE_REVERB			0x00000603	/* voice effect - reverb */ 
#define TTSATTR_VE_CHROUS			0x00000604	/* voice effect - chrous */ 
#define TTSATTR_VE_PITCH			0x00000605	/* voice effect - pitch adjust */ 
 
/* alias for dwParamId */ 
#define TTSATTR_RECOGNIZE_PINYIN	TTSATTR_RECOGNIZE_PHONEME	/* whether recognize Chinese Pin-Yin */ 
 
/* constants for values of attribute TTSATTR_LANGUAGE */ 
#define TTSLANGUAGE_CHINESE		1		/* Chinese (with English) */ 
#define TTSLANGUAGE_ENGLISH		2		/* English */ 
#define TTSLANGUAGE_FRENCH		3		/* French */ 
 
/* constants for values of attribute TTSATTR_INPUT_CODEPAGE */ 
#define TTSCODEPAGE_GBK			936		/* GBK (default) */ 
#define TTSCODEPAGE_BIG5		950		/* Big5 */ 
#define TTSCODEPAGE_UTF16LE		1200	/* UTF-16 little-endian */ 
#define TTSCODEPAGE_UTF16BE		1201	/* UTF-16 big-endian */ 
#define TTSCODEPAGE_UTF7		65000	/* UTF-7 */ 
#define TTSCODEPAGE_UTF8		65001	/* UTF-8 */ 
#define TTSCODEPAGE_GB2312		TTSCODEPAGE_GBK 
#define TTSCODEPAGE_UTF16		TTSCODEPAGE_UTF16LE 
#define TTSCODEPAGE_UNICODE		TTSCODEPAGE_UTF16 
#define TTSCODEPAGE_PHONETIC_PLAIN	23456 
 
/* constants for values of attribute TTSATTR_TEXT_MARK */ 
#define TTSTEXTMARK_NONE		0		/* none */ 
#define TTSTEXTMARK_SIMPLE_TAGS	1		/* simple tags (default) */ 
#define TTSTEXTMARK_CSSML		2		/* CSSML */ 
 
/* constants for values of attribute TTSATTR_TEXT_SCOPE */ 
#define TTSSCOPE_UNLIMITED			0	/* unlimited scope (default) */ 
#define TTSSCOPE_CHINESE_NUMBER		1	/* Chinese number */ 
#define TTSSCOPE_CHINESE_VALUE		2	/* Chinese value */ 
#define TTSSCOPE_CHINESE_DATETIME	3	/* Chinese date or time */ 
 
/* constants for values of attribute TTSATTR_INPUT_MODE */ 
#define TTSINPUT_FIXED_BUFFER	0		/* from fixed buffer */ 
#define TTSINPUT_CALLBACK		1		/* from callback */ 
 
/* constants for values of attribute TTSATTR_READ_DIGIT */ 
#define TTSREADDIGIT_AUTO		0		/* decide automatically (default) */ 
#define TTSREADDIGIT_AS_NUMBER	1		/* say digit as number */ 
#define TTSREADDIGIT_AS_VALUE	2		/* say digit as value */ 
 
/* constants for values of attribute TTSATTR_CHINESE_NUMBER_1 */ 
#define TTSCHNUM1_READ_YAO		0		/* read number "1" [yao1] in chinese (default) */ 
#define TTSCHNUM1_READ_YI		1		/* read number "1" [yi1] in chinese */ 
 
/* constants for values of attribute TTSATTR_PHONEME_WATCH */ 
#define TTSPHONEME_NONE			0		/* none (default) */ 
#define TTSPHONEME_PINYIN		1		/* Chinese Pin-Yin */ 
 
/* constants for values of attribute TTSATTR_SPEAKER */ 
#define TTSROLE_DEFAULT			0		/* default speaker */ 
#define TTSROLE_TIANCHANG		1		/* Tianchang (female) */ 
#define TTSROLE_WENJING			2		/* Wenjing (female) */ 
#define TTSROLE_YANPING			3		/* Yanping (female) */ 
#define TTSROLE_YUFENG			4		/* Yufeng (male) */ 
#define TTSROLE_SHERRI			5		/* Sherri (female) */ 
#define TTSROLE_XIAOJIN			6		/* Xiaojin (female) */ 
#define TTSROLE_NANNAN			7		/* Nannan (child) */ 
#define TTSROLE_JINGER			8		/* Jinger (female) */ 
#define TTSROLE_JIAJIA			9		/* Jiajia (girl) */ 
#define TTSROLE_YUER			10		/* Yuer (female) */ 
#define TTSROLE_XIAOQIAN		11		/* Xiaoqian (female) */ 
#define TTSROLE_LAOMA			12		/* Laoma (male) */ 
 
/* constants for values of attribute TTSATTR_SPEAK_STYLE */ 
#define TTSSTYLE_PLAIN			0		/* plain speak style */ 
#define TTSSTYLE_NORMAL			1		/* normal speak style (default) */ 
#define TTSSTYLE_VIVID			2		/* vivid speak style */ 
 
/* constants for values of attribute TTSATTR_VOICE_SPEED */ 
/* the range of voice speed value is from -32768 to +32767 */ 
#define TTSSPEED_MIN		-32768		/* slowest voice speed */ 
#define TTSSPEED_NORMAL		0			/* normal voice speed (default) */ 
#define TTSSPEED_MAX		+32767		/* fastest voice speed */ 
 
/* constants for values of attribute TTSATTR_VOICE_TONE */ 
/* the range of voice tone value is from -32768 to +32767 */ 
#define TTSTONE_MIN			-32768		/* lowest voice tone */ 
#define TTSTONE_NORMAL		0			/* normal voice tone (default) */ 
#define TTSTONE_MAX			+32767		/* highest voice tone */ 
 
/* constants for values of attribute TTSATTR_VOLUME */ 
/* the range of volume value is from -32768 to +32767 */ 
#define TTSVOLUME_MIN		-32768		/* minimized volume */ 
#define TTSVOLUME_NORMAL	0			/* normal volume (default) */ 
#define TTSVOLUME_MAX		+32767		/* maximized volume */ 
 
/* constants for values of attribute TTSATTR_VEMODE */ 
#define TTSVEMODE_NONE			0		/* none */ 
#define TTSVEMODE_WANDER		1		/* wander */ 
#define TTSVEMODE_ECHO			2		/* echo */ 
#define TTSVEMODE_ROBERT		3		/* robert */ 
#define TTSVEMODE_CHROUS		4		/* chorus */ 
#define TTSVEMODE_UNDERWATER	5		/* underwater */ 
#define TTSVEMODE_REVERB		6		/* reverb */ 
#define TTSVEMODE_ECCENTRIC		7		/* eccentric */ 
 
/* attribute change callback type */ 
typedef TTSERROR (FAR PASCAL FAR* TTSCB_ATTRCH)( 
	IN	LPTTSVOID	lpParameter,	/* [in] user callback parameter */ 
	IN	TTSDWORD	dwAttrId,		/* [in] attribute id */ 
	IN	TTSVAR		varAttrValue );	/* [in] attribute value */ 
 
/* progress callback type */ 
typedef TTSERROR (FAR PASCAL FAR* TTSCB_PROGRESS)( 
	IN	LPTTSVOID	lpParameter,	/* [in] user callback parameter */ 
	IN	TTSDWORD	dwProcBegin,	/* [in] current processing position */ 
	IN	TTSDWORD	dwProcLen );	/* [in] current processing length */ 
 
/* input callback type */ 
typedef TTSERROR (FAR PASCAL FAR* TTSCB_INPUT)( 
	IN	LPTTSVOID	lpParameter,	/* [in] user callback parameter */ 
	OUT	LPTTSVOID	lpText,			/* [out] input text buffer */ 
	OUT	LPTTSDWORD	lpdwSize );		/* [out] input text size */ 
 
/* output callback type */ 
typedef TTSERROR (FAR PASCAL FAR* TTSCB_OUTPUT)( 
	IN	LPTTSVOID	lpParameter,	/* [in] user callback parameter */ 
	IN	TTSWORD		wCode,			/* [in] output data code */ 
	IN	LPCTTSVOID	lpcData,		/* [in] output data buffer */ 
	IN	TTSDWORD	dwSize );		/* [in] output data size */ 
 
/* constants for values of parameter wCode */ 
#define TTSCODE_COMMAND		0x0000	/* command */ 
#define TTSCODE_PCM8K16B	0x0208	/* pcm 8k 16bit */ 
#define TTSCODE_PCM11K16B	0x020B	/* pcm 11k 16bit */ 
#define TTSCODE_PCM16K16B	0x0210	/* pcm 16k 16bit */ 
 
/* structure for output command */ 
typedef struct tagTTSOutputCommand TTSOUTPUTCOMMAND; 
typedef TTSOUTPUTCOMMAND FAR* LPTTSOUTPUTCOMMAND; 
 
struct tagTTSOutputCommand 
{ 
	TTSDWORD	dwCommand;		/* command name */ 
	TTSDWORD	dwParam1;		/* parameter 1 */ 
	TTSDWORD	dwParam2;		/* parameter 2 */ 
}; 
 
/* constants for values of command name */ 
#define TTSOUTCMD_SILENCE	0		/* output silence (dwParam1 is the length by ms) */ 
#define TTSOUTCMD_RESET		1		/* reset the decoder */ 
 
/* watch callback type */ 
typedef TTSERROR (FAR PASCAL FAR* TTSCB_WATCH)( 
	IN	LPTTSVOID	lpParameter,	/* [in] user callback parameter */ 
	IN	TTSWORD		wSylType,		/* [in] syllable type */ 
	IN	LPCTTSVOID	lpcSylText,		/* [in] syllable text buffer */ 
	IN	TTSDWORD	dwTextLen,		/* [in] syllable text length */ 
	IN	LPCTTSVOID	lpcSylPhone,	/* [in] syllable phoneme buffer */ 
	IN	TTSDWORD	dwPhoneLen );	/* [in] syllable phoneme length */ 
 
/* constants for values of parameter wSylType */ 
#define TTSSYL_SYMBOL		0		/* symbol */ 
#define TTSSYL_PROMPT		1		/* prompt */ 
#define TTSSYL_CHINESE		2		/* chinese syllable */ 
#define TTSSYL_ENGLISH		3		/* english syllable */ 
#define TTSSYL_ENDSENT		-1		/* end sentense */ 
 
 
/* 
 *	STRUCTURE CONTAINING FUNCTION ENTRIES 
 */ 
 
struct tagInterSound4 
{ 
	/* global initialize */ 
	TTSERROR (FAR PASCAL FAR* Initialize)(TTSVOID); 
	TTSERROR (FAR PASCAL FAR* InitializeEx)(LPTTSVOID lpParameter); 
 
	/* global uninitialize */ 
	TTSVOID (FAR PASCAL FAR* Uninitialize)(TTSVOID); 
 
	/* create an instance */ 
	TTSERROR (FAR PASCAL FAR* Create)( 
		OUT	HTTS FAR*	lphTTS,			/* [out] handle to an instance */ 
		IN	LPTTSATTR	lpAttrs,		/* [in] attributes to initialize the instance */ 
		IN	TTSDWORD	dwAttrs );		/* [in] attribute count */ 
 
	/* release an instance */ 
	TTSERROR (FAR PASCAL FAR* Release)( 
		IN	HTTS		hTTS );			/* [in] handle to an instance */ 
 
	/* get a attribute associated with an instance */ 
	TTSERROR (FAR PASCAL FAR* GetAttr)( 
		IN	HTTS		hTTS,			/* [in] handle to an instance */ 
		IN	TTSDWORD	dwAttrId,		/* [in] attribute id */ 
		OUT	LPTTSVAR	lpAttrValue );	/* [out] buffer to receive the attribute value */ 
 
	/* set a attribute associated with an instance */ 
	TTSERROR (FAR PASCAL FAR* SetAttr)( 
		IN	HTTS		hTTS,			/* [in] handle to an instance */ 
		IN	TTSDWORD	dwAttrId,		/* [in] attribute id */ 
		IN	TTSVAR		varAttrValue );	/* [in] attribute value */ 
 
	/* get attributes associated with an instance */ 
	TTSERROR (FAR PASCAL FAR* GetAttrs)( 
		IN	HTTS		hTTS,			/* [in] handle to an instance */ 
		OUT	LPTTSATTR	lpAttrs,		/* [out] buffer to receive the attributes of the instance */ 
		IN	TTSDWORD	dwAttrs );		/* [in] attribute count */ 
 
	/* set attributes associated with an instance */ 
	TTSERROR (FAR PASCAL FAR* SetAttrs)( 
		IN	HTTS		hTTS,			/* [in] handle to an instance */ 
		IN	LPTTSATTR	lpAttrs,		/* [in] attributes to set for the instance */ 
		IN	TTSDWORD	dwAttrs );		/* [in] attribute count */ 
 
	/* open media on an instance and give current thread's control to it */ 
	TTSERROR (FAR PASCAL FAR* Open)( 
		IN	HTTS		hTTS );			/* [in] handle to an instance */ 
 
	/* close media on an instance and return current thread's control */ 
	TTSERROR (FAR PASCAL FAR* Close)( 
		IN	HTTS		hTTS );			/* [in] handle to an instance */ 
 
	/* synthesize a buffer of text on an instance */ 
	TTSERROR (FAR PASCAL FAR* SynthText)( 
		IN	HTTS		hTTS,			/* [in] handle to an instance */ 
		IN	LPCTTSVOID	lpcData,		/* [in] pointer of text buffer data to be synthesized */ 
		IN	TTSDWORD	dwSize );		/* [in] size of text buffer data to be synthesized */ 
 
	/* begin to synthesize from callback on an instance */ 
	TTSERROR (FAR PASCAL FAR* SynthStart)( 
		IN	HTTS		hTTS );			/* [in] handle to an instance */ 
 
	/* load a text user dict, if another loaded, it would be unloaded */ 
	TTSERROR (FAR PASCAL FAR* LoadTextUserDict)( 
		IN	HTTS		hTTS,			/* [in] handle to an instance */ 
		IN	TTSSTR		szTextPath );	/* [in] path of the text user dict */ 
 
	/* unload the text user dict, if any loaded */ 
	TTSERROR (FAR PASCAL FAR* UnloadTextUserDict)( 
		IN	HTTS		hTTS );			/* [in] handle to an instance */ 
 
	/* load a binary user dict, if another loaded, it would be unloaded */ 
	TTSERROR (FAR PASCAL FAR* LoadBinUserDict)( 
		IN	HTTS		hTTS,			/* [in] handle to an instance */ 
		IN	TTSSTR		szBinPath );	/* [in] path of the binary user dict */ 
 
	/* unload the binary user dict, if any loaded */ 
	TTSERROR (FAR PASCAL FAR* UnloadBinUserDict)( 
		IN	HTTS		hTTS );			/* [in] handle to an instance */ 
 
	/* load a prompt resource, if another loaded, it would be unloaded */ 
	TTSERROR (FAR PASCAL FAR* LoadPrompt)( 
		IN	HTTS		hTTS,			/* [in] handle to an instance */ 
		IN	TTSSTR		szTextRes,		/* [in] path of the prompt text resource */ 
		IN	TTSSTR		szVLibRes );	/* [in] path of the prompt voice library */ 
 
	/* unload the prompt resource, if any loaded */ 
	TTSERROR (FAR PASCAL FAR* UnloadPrompt)( 
		IN	HTTS		hTTS );			/* [in] handle to an instance */ 
}; 
 
 
/* const structure instance containing function entries */ 
extern CONST struct tagInterSound4 InterSound4; 
 
 
/* parameters for voice effect amplify */ 
typedef struct tagTTSVEAmplifyParam TTSVEAMPLIFYPARAM; 
 
struct tagTTSVEAmplifyParam 
{ 
	TTSWORD		m_nPeriod;			/* 1-2000ms */ 
	TTSBYTE		m_fAmpMin;			/* 0-100% */ 
	TTSBYTE		m_fAmpMax;			/* 0-100% */ 
}; 
 
 
/* parameters for voice effect echo */ 
typedef struct tagTTSVEEchoParam TTSVEECHOPARAM; 
 
struct tagTTSVEEchoParam 
{ 
	TTSBYTE		m_fInitDecay;		/* 0-100% */ 
	TTSBYTE		m_fDecay;			/* 0-100% */ 
	TTSWORD		m_nDelay;			/* 1-2000ms */ 
}; 
 
 
/* parameters for voice effectVE reverb */ 
typedef struct tagTTSVEReverbParam TTSVEREVERBPARAM; 
 
struct tagTTSVEReverbParam 
{ 
	TTSBYTE		m_fInitDecay;		/* 0-100% */ 
	TTSBYTE		m_nFilters;			/* 1-16 */ 
	TTSBYTE		m_fDecay[16];		/* 0-100% */ 
	TTSBYTE		m_nDelay[16];		/* 1-100ms */ 
}; 
 
 
/* parameters for voice effect chrous */ 
typedef struct tagTTSVEChrousParam TTSVECHROUSPARAM; 
 
struct tagTTSVEChrousParam 
{ 
	TTSBYTE		m_fInitDecay;		/* 0-100% */ 
	TTSBYTE		m_fInitRatio;		/* 0-100% */ 
	TTSBYTE		m_nDelayMin;		/* 1-40ms */ 
	TTSBYTE		m_nDelayMax;		/* 1-40ms */ 
	TTSBYTE		m_nFilters;			/* 1-16 */ 
	TTSBYTE		m_nFilterFreq;		/* 初始频率1-50 */ 
	TTSBYTE		m_nFilterFreqDelta;	/* 频率变化1-50 */ 
}; 
 
 
/* parameters for voice effect pitch */ 
typedef struct tagTTSVEPitchParam TTSVEPITCHPARAM; 
 
struct tagTTSVEPitchParam 
{ 
	TTSBYTE		m_fDeltaPitch;		/* 0-90% */ 
	TTSWORD		m_nPeriod;			/* 1-20000ms */ 
}; 
 
 
#ifdef __cplusplus 
} 
#endif 
 
 
#endif /* !__IFLYTEK_INTERSOUND4__STANDARD_API__H__ */