| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536 |
- #ifndef _JTTS_ML_H_
- #define _JTTS_ML_H_
- #pragma pack( push, jtts_ml_h )
- #pragma pack( 8 )
- #ifdef __cplusplus
- extern "C"
- {
- #endif
- #define TTSAPI __stdcall
- //ERRCODE
- typedef enum
- {
- ERR_NONE, // 0
- ERR_ALREADYINIT, // 1
- ERR_NOTINIT, // 2
- ERR_MEMORY, // 3
- ERR_INVALIDHWND, // 4
- ERR_INVALIDFUNC, // 5
- ERR_OPENLIB, // 6
- ERR_READLIB, // 7
- ERR_PLAYING, // 8
- ERR_DONOTHING, // 9
- ERR_INVALIDTEXT, // 10
- ERR_CREATEFILE, // 11
- ERR_WRITEFILE, // 12
- ERR_FORMAT, // 13
- ERR_INVALIDSESSION, // 14
- ERR_TOOMANYSESSION, // 15
- ERR_MORETEXT, // 16
- ERR_CONFIG, // 17
- ERR_OPENDEVICE, // 18
- ERR_RESETDEVICE, // 19
- ERR_PAUSEDEVICE, // 20
- ERR_RESTARTDEVICE, // 21
- ERR_STARTTHREAD, // 22
- ERR_BEGINOLE, // 23
- ERR_NOTSUPPORT, // 24
- ERR_SECURITY, // 25
- ERR_CONVERT, // 26
- ERR_PARAM, // 27
- ERR_INPROGRESS, // 28
- ERR_INITSOCK, // 29
- ERR_CREATESOCK, // 30
- ERR_CONNECTSOCK, // 31
- ERR_TOOMANYCON, // 32
- ERR_CONREFUSED, // 33
- ERR_SEND, // 34
- ERR_RECEIVE, // 35
- ERR_SERVERSHUTDOWN, // 36
- ERR_OUTOFTIME, // 37
- ERR_CONFIGTTS, // 38
- ERR_SYNTHTEXT, // 39
- ERR_CONFIGVERSION, // 40
- ERR_EXPIRED, // 41
- ERR_NEEDRESTART, // 42
- ERR_CODEPAGE, // 43
- ERR_ENGINE, // 44
- ERR_CREATEEVENT, // 45
- ERR_PLAYMODE, // 46
- ERR_OPENFILE, // 47
- ERR_USERABORT, // 48
- ERR_LICENSEFULL, // 49
- ERR_LICENSEFILEINVALID, // 50
- ERR_LICENSE, // 51
- ERR_LICENSEEXPIRED, // 52
- ERR_SSMLINVALID, // 53
- ERR_INVALIDPLAYHANDLE, // 54
- }ERRCODE;
- //---------------------------------------------------------------------------
- // 系统的设置选项
- //支持多语种
- //
- //这里列出的是系统内建的语言定义,需要安装相应音库才能真正支持,
- //但目前并非所有语言都有相应的音库
- //
- //对于这里没有列出的语言,将来也可能会发布相应的音库,同时会分配一个数值,
- //只要安装此音库后,就可以使用。对于没有列出的语言,如果想使用,可以直接使用数值
- //
- //可以通过Lang系列函数得到所有系统中定义的(包括将来扩展的)语言数值及其描述的信息
- //
- //对于系统中真正支持的语言,可以通过jTTS_GetVoiceCount, jTTS_GetVoiceAttribute函数
- //得到所有安装的音库,并从其属性中知道其语言
- //
- #define LANGUAGE_MANDARIN 0 // 汉语普通话
- #define LANGUAGE_CANTONESE 1 // 广东话
- #define LANGUAGE_CHINESE LANGUAGE_MANDARIN
- #define LANGUAGE_US_ENGLISH 10 // 美国英语
- #define LANGUAGE_BRITISH_ENGLISH 11 // 英国英语
- #define LANGUAGE_ENGLISH LANGUAGE_US_ENGLISH
- #define LANGUAGE_FRENCH 20 // 法语
- #define LANGUAGE_CANADIAN_FRENCH 21 // 加拿大法语
- #define LANGUAGE_SPANISH 30 // 西班牙语
- #define LANGUAGE_LATINAMERICAN_SPANISH 31 // 拉丁美洲西班牙语
- #define LANGUAGE_PORTUGUESE 40 // 葡萄牙语
- #define LANGUAGE_BRAZILIAN_PORTUGUESE 41 // 巴西葡萄牙语
- #define LANGUAGE_DUTCH 50 // 荷兰语
- #define LANGUAGE_BELGIAN_DUTCH 51 // 比利时荷兰语
- #define LANGUAGE_GERMAN 60 // 德语
- #define LANGUAGE_ITALIAN 70 // 意大利语
- #define LANGUAGE_SWEDISH 80 // 瑞典语
- #define LANGUAGE_NORWEGIAN 90 // 挪威语
- #define LANGUAGE_DANISH 100 // 丹麦语
- #define LANGUAGE_POLISH 110 // 波兰语
- #define LANGUAGE_GREEK 120 // 希腊语
- #define LANGUAGE_HUNGARIAN 130 // 匈牙利语
- #define LANGUAGE_CZECH 140 // 捷克语
- #define LANGUAGE_TURKISH 150 // 土耳其语
- #define LANGUAGE_RUSSIAN 500 // 俄语
- #define LANGUAGE_ARABIC 600 // 阿拉伯语
- #define LANGUAGE_JAPANESE 700 // 日语
- #define LANGUAGE_KOREAN 710 // 韩语
- #define LANGUAGE_VIETNAMESE 720 // 越南语
- #define LANGUAGE_MALAY 730 // 马来语
- #define LANGUAGE_THAI 740 // 泰语
- //支持多领域
- //
- //这里列出的是系统内建的领域定义,需要安装相应音库的资源包才能真正支持。
- //
- //对于这里没有列出的领域,将来也可能会发布相应的资源包,同时会分配一个数值,
- //只要安装此资源包后,就可以使用。对于没有列出的领域,如果想使用,可以直接使用数值
- //
- //可以通过Domain系列函数得到所有系统中定义的(包括将来扩展的)领域数值及其描述的信息
- //
- //对于系统中真正支持的领域,可以通过jTTS_GetDomainCount, jTTS_GetDomainAttribute函数
- //得到所有安装的领域
- #define DOMAIN_COMMON 0 // 通用领域,新闻
- #define DOMAIN_FINANCE 1 // 金融证券
- #define DOMAIN_WEATHER 2 // 天气预报
- #define DOMAIN_SPORTS 3 // 体育赛事
- #define DOMAIN_TRAFFIC 4 // 公交信息
- #define DOMAIN_TRAVEL 5 // 旅游餐饮
- #define DOMAIN_CARBORNE 6 //汽运
- #define DOMAIN_QUEUE 7 //排队
- #define DOMAIN_SONG 8 //点歌
- #define DOMAIN_INSURANCE 9 //保险
- #define DOMAIN_VOYAGE 10 //航空
- #define DOMAIN_REVENUE 11 //税务
- #define DOMAIN_ELECPOWER 12 //电力
- #define DOMAIN_MESSAGE 13 //短信
- #define DOMAIN_FINAINSU 14 //金融保险
- #define DOMAIN_TELECOM 15 //电信
- #define DOMAIN_CUSTOM 28 // 一般定制领域
- #define DOMAIN_MIN 0
- #define DOMAIN_MAX 31
- //支持的CODEPAGE
- #define CODEPAGE_GB 936 // 包括GB18030, GBK, GB2312
- #define CODEPAGE_BIG5 950
- #define CODEPAGE_SHIFTJIS 932
- #define CODEPAGE_KCS 949
- #define CODEPAGE_ISO8859_1 1252
- #define CODEPAGE_UNICODE 1200
- #define CODEPAGE_UNICODE_BIGE 1201 // BIG Endian
- #define CODEPAGE_UTF8 65001
- // Supported TAG
- #define TAG_AUTO 0x00 // Autocheck, SSML > S3ML > JTTS > NONE
- #define TAG_JTTS 0x01 /* 仅处理含有jTTS 3.0支持的TAG: \read=\ */
- #define TAG_SSML 0x02 // Treat as Speech Synthesis Markup Language
- #define TAG_NONE 0x03 // No TAG, Treat as plain text
- #define TAG_S3ML 0x04 // Treat as SinoVoice Speech Synthesis Markup Language
- //DigitMode
- #define DIGIT_AUTO_NUMBER 0
- #define DIGIT_TELEGRAM 1
- #define DIGIT_NUMBER 2
- #define DIGIT_AUTO_TELEGRAM 3
- #define DIGIT_AUTO DIGIT_AUTO_NUMBER
- // PuncMode
- #define PUNC_OFF 0 /* 不读符号,自动判断回车换行是否分隔符*/
- #define PUNC_ON 1 /* 读符号, 自动判断回车换行是否分隔符*/
- #define PUNC_OFF_RTN 2 /* 不读符号,强制将回车换行作为分隔符*/
- #define PUNC_ON_RTN 3 /* 读符号, 强制将回车换行作为分隔符*/
- // EngMode
- #define ENG_AUTO 0 /* 自动方式 */
- #define ENG_SAPI 1 /* 强制采用英文读法 */
- #define ENG_LETTER 2 /* 强制单字母方式 */
- #define ENG_LETTER_PHRASE 3 /* 强制采用字母+自录音词汇的方式 */
- //Gender
- #define GENDER_FEMALE 0
- #define GENDER_MALE 1
- #define GENDER_NEUTRAL 2
- //AGE
- #define AGE_BABY 0 //0 - 3
- #define AGE_CHILD 1 //3 - 12
- #define AGE_YOUNG 2 //12 - 18
- #define AGE_ADULT 3 //18 - 60
- #define AGE_OLD 4 //60 -
- //PITCH
- #define PITCH_MIN 0
- #define PITCH_MAX 9
- //VOLUME
- #define VOLUME_MIN 0
- #define VOLUME_MAX 9
- //SPEED
- #define SPEED_MIN 0
- #define SPEED_MAX 9
- //AUDIOVOLUME
- #define AUDIOVOLUME_MIN 0
- #define AUDIOVOLUME_MAX 100
- //BACKAUDIOFLAG
- #define BACKAUDIOFLAG_REPEAT 0x01
- #define BACKAUDIOFLAG_DEFAULT 0x00
- //BACKAUDIO
- #define BACKAUDIO_NONE 0 // 没有背景音乐
- #define BACKAUDIO_MIN 1 // 最小的背景音乐序号
- #define BACKAUDIO_MAX 10000 // 最大的背景音乐序号
- //VOICESYTLE
- #define VOICESTYLE_CADENCE 0 // 抑扬顿挫
- #define VOICESTYLE_FLAT 1 // 平稳庄重
- //VOICEBUFSIZE
- #define VOICEBUFSIZE_DEFAULT 0 // Default: 128K
- #define VOICEBUFSIZE_MIN 16 // 16K
- #define VOICEBUFSIZE_MAX 8192 // 8M
- //INSERTINFOSIZE
- #define INSERTINFOSIZE_DEFAULT 0 // Default: 100
- #define INSERTINFOSIZE_MIN 1
- #define INSERTINFOSIZE_MAX 1000
- //---------------------------------------------------------------------------
- //jTTS_Play状态
- #define STATUS_NOTINIT 0
- #define STATUS_READING 1
- #define STATUS_PAUSE 2
- #define STATUS_IDLE 3
- //jTTS_PlayToFile的文件格式
- #define FORMAT_WAV 0 // PCM Native (和音库一致,目前为16KHz, 16Bit)
- #define FORMAT_VOX_6K 1 // OKI ADPCM, 6KHz, 4bit (Dialogic Vox)
- #define FORMAT_VOX_8K 2 // OKI ADPCM, 8KHz, 4bit (Dialogic Vox)
- #define FORMAT_ALAW_8K 3 // A律, 8KHz, 8Bit
- #define FORMAT_uLAW_8K 4 // u律, 8KHz, 8Bit
- #define FORMAT_WAV_8K8B 5 // PCM, 8KHz, 8Bit
- #define FORMAT_WAV_8K16B 6 // PCM, 8KHz, 16Bit
- #define FORMAT_WAV_16K8B 7 // PCM, 16KHz, 8Bit
- #define FORMAT_WAV_16K16B 8 // PCM, 16KHz, 16Bit
- #define FORMAT_WAV_11K8B 9 // PCM, 11.025KHz, 8Bit
- #define FORMAT_WAV_11K16B 10 // PCM, 11.025KHz, 16Bit
- #define FORMAT_FIRST 0
- #define FORMAT_LAST 10
- // jTTS_Play / jTTS_PlayToFile / jTTS_SessionStart 函数支持的dwFlag定义
- // 此项仅对jTTS_PlayToFile适用
- #define PLAYTOFILE_DEFAULT 0x0000 //默认值,写文件时只增加FORMAT_WAV_...格式的文件头
- #define PLAYTOFILE_NOHEAD 0x0001 //所有的格式都不增加文件头
- #define PLAYTOFILE_ADDHEAD 0x0002 //增加FORMAT_WAV_...格式和FORMAT_ALAW_8K,FORMAT_uLAW_8K格式的文件头
- #define PLAYTOFILE_MASK 0x000F
- // 此项仅对jTTS_Play适用
- #define PLAY_RETURN 0x0000 // 如果正在播放,返回错误
- #define PLAY_INTERRUPT 0x0010 // 如果正在播放,打断原来的播放,立即播放新的内容
- #define PLAY_MASK 0x00F0
- // 播放的内容
- #define PLAYCONTENT_TEXT 0x0000 // 播放内容为文本
- #define PLAYCONTENT_TEXTFILE 0x0100 // 播放内容为文本文件
- #define PLAYCONTENT_AUTOFILE 0x0200 // 播放内容为文件,根据后缀名采用外界Filter DLL抽取
- // 无法判断的当作文本文件
- #define PLAYCONTENT_MASK 0x0F00
- // 播放的模式,同时用于SessionStart
- #define PLAYMODE_DEFAULT 0x0000 // 在jTTS_Play下缺省异步,在jTTS_PlayToFile下缺省同步
- // jTTS_SessionStart下为主动获取数据方式
- #define PLAYMODE_ASYNC 0x1000 // 异步播放,函数立即退出
- #define PLAYMODE_SYNC 0x2000 // 同步播放,播放完成后退出
- #define PLAYMODE_MASK 0xF000
- // jTTS_FindVoice返回的匹配级别
- #define MATCH_LANGUAGE 0 // 满足LANGUAGE,
- #define MATCH_GENDER 1 // 满足LANGUAGE, GENDER
- #define MATCH_AGE 2 // 满足LANGUAGE, GENDER, AGE
- #define MATCH_NAME 3 // 满足LANGUAGE, GENDER,AGE,NAME
- #define MATCH_DOMAIN 4 // 满足LANGUAGE, GENDER,AGE,NAME, DOMAIN,也即满足所有条件
- #define MATCH_ALL 4 // 满足所有条件
- // InsertInfo信息
- #define INFO_MARK 0
- #define INFO_VISEME 1
- //各种信息串的长度
- #define VOICENAME_LEN 32
- #define VOICEID_LEN 40
- #define VENDOR_LEN 32
- #define DLLNAME_LEN 256
- #define ATTRNAME_LEN 32
- #define XMLLANG_LEN 256
- //JTTS_PARAM
- typedef enum
- {
- PARAM_CODEPAGE, // CODEPAGE_xxx
- PARAM_VOICEID, // Voice ID
- PARAM_PITCH, // PITCH_MIN - PITCH_MAX
- PARAM_VOLUME, // VOLUME_MIN - VOLUME_MAX
- PARAM_SPEED, // SPEED_MIN - SPEED_MAX
- PARAM_PUNCMODE, // PUNC_xxx
- PARAM_DIGITMODE, // DIGIT_xxx
- PARAM_ENGMODE, // ENG_xxx
- PARAM_TAGMODE, // TAG_xxx
- PARAM_DOMAIN, // DOMAIN_xxx
- PARAM_TRYTIMES, // 0-100
- PARAM_IDLETIME, // 0-60 (s), default 10, 0 means 无限等待
- PARAM_LOADBALANCE, // TRUE, FALSE
- PARAM_VOICESTYLE, // VOICESTYLE_CADENCE, VOICESTYLE_FLAT
- PARAM_BACKAUDIO, // BACKAUDIO_NONE, BACKAUDIO_MIN - BACKAUDIO_MAX
- PARAM_BACKAUDIOVOLUME, // AUDIOVOLUME_MIN - AUDIOVOLUME_MAX
- PARAM_BACKAUDIOFLAG, // BACKAUDIOFLAG_xxx
- PARAM_VOICEBUFSIZE, // VOICEBUFSIZE_DEFAULT, or n (K)
- PARAM_INSERTINFOSIZE, // INSERTINFOSIZE_DEFAULT, or n
- }
- JTTS_PARAM;
- //JTTS_CONFIG
- #define JTTS_VERSION4 0x0004 // version 4.0
- typedef struct JTTS_CONFIG_T
- {
- WORD wVersion; // JTTS_VERSION4
- WORD nCodePage;
- char szVoiceID[VOICEID_LEN]; // 使用的音色
- short nDomain;
- short nPitch;
- short nVolume;
- short nSpeed;
- short nPuncMode;
- short nDigitMode;
- short nEngMode;
- short nTagMode;
- short nTryTimes; // 重试次数,此成员仅用于远程合成
- short nIdleTime; //////////////////////////////////////////
- BOOL bLoadBalance; // 负载平衡,此成员仅用于远程合成
- short nVoiceStyle; // 朗读风格
- short nBackAudio; // BACKAUDIO_NONE: 无背景音乐,BACKAUDIO_MIN-BACKAUDIO_MAX: 背景音乐序号,在资源管理中心"录音管理器"中定义
- short nBackAudioVolume; // 背景音乐的音量
- WORD wBackAudioFlag; // 背景音乐的属性
- short nVoiceBufSize; // 设置内部缓冲区的大小
- short nInsertInfoSize; // 缓冲区中插入信息的个数
- short nReserved[6]; // 保留
- }
- JTTS_CONFIG;
- //JTTS_VOICEATTRIBUTE
- typedef struct JTTS_VOICEATTRIBUTE_T
- {
- char szName[VOICENAME_LEN]; // 只能为英文名称
- char szVoiceID[VOICEID_LEN]; // 音色的唯一标识
- short nGender; // GENDER_xxx
- short nAge; // AGE_xx
- DWORD dwDomainArray; // 由低位向高位,分别表示DOMAIN_xxx
- DWORD nLanguage; // 支持的语言, LANGUAGE_xxx
- char szVendor[VENDOR_LEN]; // 提供厂商
- char szDLLName[DLLNAME_LEN]; // 对应的DLL
- DWORD dwVersionMS; // 引擎的版本号,对应"3.75.0.31"的前两节
- // e.g. 0x00030075 = "3.75"
- DWORD dwVersionLS; // e.g. 0x00000031 = "0.31"
- }
- JTTS_VOICEATTRIBUTE;
- // 插入信息
- typedef struct INSERTINFO_T
- {
- int nTag; // 有二种:INFO_MARK, INFO_VISEME
- DWORD dwValue; // 具体信息:
- // MARK时,高24位mark文本偏移,低8位文本长度
- // VISEME时,表示唇型
- DWORD dwBytes; // 在语音流的什么地方插入,必须按顺序增加
- }
- INSERTINFO;
- typedef struct JTTS_LANGATTRIBUTE_T
- {
- int nValue;
- char szName[ATTRNAME_LEN];
- char szEngName[ATTRNAME_LEN];
- char szXmlLang[XMLLANG_LEN];
- }
- JTTS_LANGATTRIBUTE;
- typedef struct JTTS_DOMAINATTRIBUTE_T
- {
- int nValue;
- char szName[ATTRNAME_LEN];
- char szEngName[ATTRNAME_LEN];
- }
- JTTS_DOMAINATTRIBUTE;
- typedef struct JTTS_COUNTERS_T
- {
- int nSession;
- }
- JTTS_COUNTERS;
- // 系统通知消息及回调函数部分
- // 系统通知消息
- #define WM_JTTS_NOTIFY (WM_USER + 0x4999)
- // 回调函数
- typedef BOOL (TTSAPI * JTTS_CALLBACKPROC)(WORD wParam, LONG lParam, DWORD dwUserData);
- typedef BOOL (TTSAPI * JTTS_DATACALLBACKPROC)(DWORD dwSessionID, WORD wParam, LONG lParam,
- unsigned char * pVoiceData, DWORD dwLen,
- INSERTINFO* pInsertInfo, int nInsertInfo,
- DWORD dwUserData);
- // WM_JTTS_NOTIFY / JTTS_CALLBACKPROC / JTTS_DATACALLBACKPROC中wParam的定义
- #define NOTIFY_BEGIN 0 // lParam: 没有使用
- #define NOTIFY_END 1 // lParam: 没有使用
- #define NOTIFY_SENTEND 2 // lParam: 已经读完的字节数
- #define NOTIFY_SENTBEGIN 3 // lParam: 将要读到的位置(以字节数计算)
- #define NOTIFY_MARK 4 // lParam: 标记Mark串的位置和长度, 参考宏GETMARKOFFSET和GETMARKLEN
- #define NOTIFY_VISEME 5 // lParam: 标记唇型信息,现版本中未使用
- #define NOTIFY_CHANGECONFIG 6 // 系统主动使用与传入Config不同的配置
- #define NOTIFY_DATA 7 // 仅用于 JTTS_DATACALLBACKPROC,传递合成数据和InsertInfo信息
- // lParam not use; dwLen是pVoiceData长度; pVoiceData语音数据缓冲;
- // nInsertInfo, pInsertInfo是插入数据的数目和内容
- // 为和老版本兼容而保留
- #define NOTIFY_PROGRESS 2
- #define NOTIFY_PROGRESS2 3
- // 通过NOTIFY_MARK的lParam得到具体的Mark String的偏移量和长度
- #define GETMARKOFFSET(lParam) (lParam >> 8)
- #define GETMARKLEN(lParam) (lParam & 0xFF)
- //------------------------------------------------------------------------
- // 系统函数
- ERRCODE TTSAPI jTTS_Init(const char * pcszLibPath, const char * pcszSerialNo);
- ERRCODE TTSAPI jTTS_End();
- int TTSAPI jTTS_GetLangCount();
- ERRCODE TTSAPI jTTS_GetLangAttribute(int nIndex, JTTS_LANGATTRIBUTE * pAttribute);
- ERRCODE TTSAPI jTTS_GetLangAttributeByValue(int nValue, JTTS_LANGATTRIBUTE * pAttribute);
- int TTSAPI jTTS_GetDomainCount();
- ERRCODE TTSAPI jTTS_GetDomainAttribute(int nIndex, JTTS_DOMAINATTRIBUTE * pAttribute);
- ERRCODE TTSAPI jTTS_GetDomainAttributeByValue(int nValue, JTTS_DOMAINATTRIBUTE * pAttribute);
- //-------------------------------------------------------------
- // 音库信息函数
- int TTSAPI jTTS_GetVoiceCount();
- ERRCODE TTSAPI jTTS_GetVoiceAttribute(int nIndex, JTTS_VOICEATTRIBUTE * pAttribute);
- ERRCODE TTSAPI jTTS_GetVoiceAttributeByID(const char *pszVoiceID, JTTS_VOICEATTRIBUTE * pAttribute);
- BOOL TTSAPI jTTS_IsVoiceSupported(const char *pszVoiceID);
- ERRCODE TTSAPI jTTS_FindVoice(int nLanguage, int nGender, int nAge, char * szName, int nDomain,
- char * pszVoiceID, WORD * pwMatchFlag);
- ERRCODE TTSAPI jTTS_PreLoad (const char *pszVoiceID);
- //------------------------------------------------------------------------
- // 设置函数
- ERRCODE TTSAPI jTTS_Set(const JTTS_CONFIG * pConfig);
- ERRCODE TTSAPI jTTS_Get(JTTS_CONFIG * pConfig);
- ERRCODE TTSAPI jTTS_SetParam(JTTS_PARAM nParam, DWORD dwValue);
- ERRCODE TTSAPI jTTS_GetParam(JTTS_PARAM nParam, DWORD *pdwValue);
- //------------------------------------------------------------------------
- // 播放函数
- ERRCODE TTSAPI jTTS_SetPlay(UINT uDeviceID, HWND hwnd, JTTS_CALLBACKPROC lpfnCallback, DWORD dwUserData);
- ERRCODE TTSAPI jTTS_Play(const char * pcszText, DWORD dwFlag);
- ERRCODE TTSAPI jTTS_Stop();
- ERRCODE TTSAPI jTTS_Pause();
- ERRCODE TTSAPI jTTS_Resume();
- int TTSAPI jTTS_GetStatus();
- //------------------------------------------------------------------------
- // 播放到文件函数
- ERRCODE TTSAPI jTTS_PlayToFile(const char *pcszText, const char * pcszFileName,
- UINT nFormat, const JTTS_CONFIG * pConfig,
- DWORD dwFlag, JTTS_CALLBACKPROC lpfnCallback,
- DWORD dwUserData);
- //-------------------------------------------------------------
- // 合成过程底层函数
- ERRCODE TTSAPI jTTS_SessionStart(const char * pcszText, DWORD * pdwSessionID,
- UINT nFormat, const JTTS_CONFIG *pConfig, DWORD dwFlag,
- int * pnBitsPerSample, int * pnSamplesPerSec);
- ERRCODE TTSAPI jTTS_SessionGetData(DWORD dwSessionID, int nBufIndex, unsigned char ** ppVoiceData,
- DWORD * pdwLen, int nReserveLen, INSERTINFO** ppInsertInfo,
- int* pnInsertInfo);
- ERRCODE TTSAPI jTTS_SessionStop(DWORD dwSessionID);
- ERRCODE TTSAPI jTTS_SessionGetReadBytes(DWORD dwSessionID, DWORD * pdwBytes);
- ERRCODE TTSAPI jTTS_SessionExec(DWORD dwSessionID, JTTS_DATACALLBACKPROC lpfnDataCallback, DWORD dwUserData);
- #ifdef __cplusplus
- }
- #endif
- #pragma pack( pop, jtts_ml_h )
- #endif //_JTTS_ML_H_
|