InterPhonic语音合成系统开发手册 WORD wBlockAlign; // = 每采样点字节数 : wBitsPerSample / 8 WORD wBitsPerSample; // = 量化比特数: 8 | 16 WORD wCbSize; // = 下一个结构体的大小 : 0 char szFact[4]; // = \ WORD wUnknown1; // = 4; WORD wUnknown2; // = 0; DWORD dwDatasize_raw; // = Datasize : FileSize - 58 char szData[4]; // = \ DWORD dwDatasize; // = DataSize : FileSize - 58 }; // 缺省的头信息 const TWaveAULAWHdr DEF_AULAWWAVHDR = { { 'R', 'I', 'F', 'F' }, 0, // 根据实际情况取值 {'W', 'A', 'V', 'E'}, {'f', 'm', 't', ' '}, 18, 6, // 根据实际情况取值 1, 8000, // 根据实际情况取值 16000, // 根据实际情况取值 2, // 根据实际情况取值 16, // 根据实际情况取值 0, {'f', 'a', 'c', 't'}, 4, 0, 0, // 根据实际情况取值 {'d', 'a', 't', 'a'}, 0, // 根据实际情况取值 }; ⑷ 断开与TTS服务的连接
合成完毕后,如果不需要再合成文本,需要断开已建立的连接: nRet = TTSDisconnect(hTTSInstance); if(nRet != TTSERR_OK) { // 断开与TTS服务的连接 }
39
InterPhonic语音合成系统开发手册
⑸ 逆初始化语音合成系统
最后一步就是从系统内存中移出语音合成系统: nRet = TTSUninitialize(); if( nRet != TTSERR_OK) { // 失败?? } 网络开发
在进行网络开发时,开发步骤与本地开发是完全一致的。具体开发方法请参阅:回调方式开发的网络开发部分内容。
40
InterPhonic语音合成系统开发手册
第3章 多引擎管理接口
3.1接口简介
多引擎管理接口是讯飞语音应用平台客户端上提供的应用程序开发接口,通过一致的接口,透明地支持网络版、本地版两种开发方式。可以用来管理、查询位于本地或网络中的所有语音引擎及每个引擎拥有的Voice信息,控制语音服务引擎、查询引擎的静态属性及动态统计信息,以实现多合成引擎的语音服务需要。多引擎管理接口支持C/C++、Delphi等语言的调用,不直接支持VB、C#、java等高级语言的调用。 接口函数列表
在多引擎管理开发包中提供如下函数调用: 函数名称 SEMFindFirstEngine SEMFindNextEngine SEMFindFirstVoice SEMFindNextVoice SEMFindClose SEMGetEngineInfo SEMEngineCtrl 开发包组件
Windows平台下的开发 开发组件 头文件 动态引入库 运行时刻库
开发组件 头文件 运行库 开发包支持情况
开发包类型 本地开发 网络开发 组件组成 iFly_SEM.h、TTSErrcode.h iFlyTTS.lib iFlyTTS.dll 组件组成 iFly_SEM.h、TTSErrcode.h libiFlyTTS.so 说明 接口函数的声明 包含接口函数的引入 接口函数的具体实现 说明 接口函数的声明 包含接口函数的具体实现 功能简介 启动引擎搜索 搜索下一个引擎 启动Voice搜索 搜索下一个Voice 关闭搜索 查询各种引擎信息 通过命令字对引擎进行各种控制 UNIX/LINUX平台下的开发
Windows系统 支持 支持 41
InterPhonic语音合成系统开发手册
3.2函数调用
SEMFindFirstEngine 函数原型
TTSRETVAL SEMFindFirstEngine(PTEngineFindFilter pFindFilter, DWORD *pdwEngineID, HSEMHANDLE *phFindHandle); 功能
查找满足过滤条件的第一个引擎; 参数
? pFindFilter [in]
指向引擎过滤条件结构的指针;为NULL时表示没有过滤条件;结构体的定义如下: typedef struct { TTSDWORD cbSize; /* [in] Size of structure */ TTSDWORD dwFilterMask; /* [in] Filter mask flag */ TTSCHAR szVoiceName[SEM_VOICENAME_LEN_MAX]; /* [in] Voice name */ TTSCHAR szIP[TTS_IP_MAXLEN]; /* [in] Server IP address */ TTSDWORD dwLanguage; /* [in] Language ID */ TTSDWORD dwGender; /* [in] Speaker gender of voice */ TTSDWORD dwAge; /* [in] Speaker age of voice */ TTSDWORD dwSampleRate; /* [in] Sample rate of voice */ TTSDWORD dwStatus; /* [in] Engine status */ TTSCHAR szEngineName[SEM_ENGINENAME_LEN_MAX]; /* [in] Engine name */ TTSDWORD dwReserved; /* [in/out] Reserved: must set to zero */ } TEngineFindFilter, *PTEngineFindFilter; 其中: cbSize [in] 结构的大小,以字节为单位。 dwFilterMask [in] 过滤条件掩码,指明结构中的哪些成员起作用,具体定义参考后面的表格。 szVoiceName [in] 引擎包含的Voice的名称,支持通配符”*”和”?”,如”Xiao*”。 szIP [in] 引擎所在的IP地址,点分十进制格式,如”192.168.73.12”。 注意:本条件只对网络版SEM接口有效。 dwLanguage [in] 引擎支持的语种,具体定义参考后面的表格。
42
相关推荐: