<争渡读屏语音开放接口 API

争渡读屏语音开放接口是将争渡读屏使用的语音接口开放出来,从而可以让用户根据自己的喜好来开发自己的语音插件。

通过争渡读屏语音开放接口,用户可将自己喜欢的语音库作出插件从而供争渡读屏调用。

争渡读屏语音开放接口只有接口定义,不包含具体实现。争渡读屏(https://www.zdsr.com/)不对第三方语音插件做任何保证。

根据争渡读屏语音开放接口编写出的插件应为32位 dll 文件,路径为 {pf}\zdsr\common\opentts\{pluginname}\{pluginname}.dll

备注: opentts 目录下要求存在 pluginname 文件夹,并且该文件夹内存在 pluginname.dll 文件,该插件才会被加载。

  • 名称: 争渡读屏语音开放接口(ZDOpenTTSAPI)
  • 版本: 2

需要实现的方法如下:

1.获取本接口信息

int WINAPI GetOpenTTSInfo(int* pReserved1, int* pReserved2, int* pReserved3)
参数:
	[out] int* pReserved1: 保留参数暂不使用
	[out] int* pReserved2: 保留参数暂不使用
	[out] int* pReserved3: 保留参数暂不使用
返回值:
	int: 本接口实现的版本号

2.初始化语音接口

BOOL WINAPI Initial()
返回值:
	FALSE:失败
	TRUE:成功

3.获取角色数量

int WINAPI GetVoiceCount()
返回值:
	int: 角色数量

4.获取指定角色的名称

void WINAPI GetVoiceName(int vid, WCHAR* voiceName)
参数:
	[in]  int vid:	角色序号
	[out] WCHAR* voiceName:	返回角色名称,Unicode
返回值: void

5.设置响应速度

void WINAPI SetResponseSpeed(int value)
参数:
	[in] int value:	响应 0-100
返回值: void
备注:不支持时,实现空函数

6.设置语音引擎参数

void SetParam(int type,int value)
参数:
	[in] int type : 参数类型 0: 角色序号, 1: 语速, 2: 音量, 3: 音高, 4: 声卡, 5: 数字读法, 6: 音量放大, 7: 语速加倍, 8: 音色 
	[in] int value: 值 角色序号0-N;语速,音量,音高均为0--100;声卡0-N;数字读法0-1;音量放大,语速加倍,音色均为0-100;
返回值: void
备注:不支持的参数实现时可忽略

7.获取朗读状态

BOOL WINAPI IsSpeaking()
返回值:
	TRUE 正在朗读
	FALSE 停止朗读

8.获取是否引擎控制数字读法

BOOL WINAPI IsControlNumricType()
返回值:
	TRUE 支持数字数值读法控制
	FALSE 不支持数字数值读法控制

9.朗读文本

void WINAPI Speak(WCHAR* text, int pitch)
参数:
	[in] WCHAR* text:	要朗读的文本,Unicode
	[in] int pitch:		-1 使用设置的音高朗读; 0-100 使用该音高进行朗读
返回值: void

10.停止朗读

void WINAPI Stop()
返回值: void

11.暂停朗读

void WINAPI Pause()
返回值: void
备注: 如不实现则必须提供空函数

12.恢复朗读

void WINAPI Resume()
返回值: void
备注: 如不实现则必须提供空函数

13.获取音频采样位数和采样率

int WINAPI GetAudioFormat(int* pBitsPerSample)
参数:
	[out] int* pBitsPerSample 返回音频的采样位数
返回值: int 采样率 不支持文本转音频数据时, 返回0

14.获取对指定文本返回合成的音频数据

int WINAPI TextToAudio(WCHAR* text, int* ptr)
参数:
	[in] WCHAR* text	要合成的文本,Unicode
	[out] int* ptr		音频short数组的地址
返回值: int 音频short数组的长度
备注:不支持文本转音频数据时,实现空函数

15.打开引擎设置

void WINAPI OpenSettings()
返回值: void

16.释放语音接口

void WINAPI UnInitial()
返回值: void

17.额外配置

争渡读屏在送入语音接口朗读之前,会对文本做必要的格式化处理,如果争渡读屏对文本的处理会影响到插件语音的朗读效果,则可以使用该配置文件来进行修正。

  • 约定的配置文件名称为:{pluginname}.ini
  • 存放到插件所在目录
  • 必须保存为Unicode(UTF-16LE)格式

参考格式如下:

[Settings]
novocalchar= ;替换发音字符,缺省为空格
filterchars= ;读屏标点方案设置为不发音,而该引擎会发音的标点符号串