![]() |
灵云SDK开发手册(C API)
5.2
|
以下描述了如何使用灵云TTS播放器功能。
TTS播放器封装了灵云SDK的TTS模块并且实现了实时播放的功能,能将任意文字信息实时转化为标准流畅的自然语音并朗读出来。
TTS播放器封装了灵云SDK的TTS能力,其许多概念仍然是基于TTS基础API的。建议在使用灵云TTS播放器之前, 先熟悉 TTS能力 的相关内容。
在使用灵云TTS播放器之前,需要选择合适的TTS模块和能力以及音频编解码库, 具体请参见 选择模块和能力 和 音频编解码库。
在使用播放器之前,仍然需要先初始化系统模块,请参见 系统模块的初始化/终止。
在初始化系统模块之后,就可以使用 hci_tts_player_init() 创建播放器对象,同时需要设置初始化参数和回调函数参数。
初始化参数主要是设置本地资源库的路径等。
如果是只使用云端能力,可以直接指定初始化配置串为空或者NULL。
为了能接收播放器内部信息,如状态信息、播放情况及错误信息等,应用层需要实现播放器的回调函数接口。 回调函数通过 PLAYER_CALLBACK_PARAM 参数传递给 hci_tts_player_init() 函数。 下面的代码示例实现了回调函数接口的写法:
通过 hci_tts_player_start() 来播放由文本合成的语音数据,示例如下:
这里的配置项pszConfig包括了初始化会话的配置项(capKey,也即发音人)、合成选项以及播放设备ID(deviceId)选项。
要注意的是:播放器支持的格式audioFormat只有pcm。windows平台支持pcm8K16bit pcm16k16bit, ios平台支持pcm8k8bit pcm8k16bit pcm11k8bit pcm11k16bit pcm16k8bit pcm16k16bit。
start() 函数会在后台启动一个线程进行播放,因此此函数会立即退出。播放的状态变化或者是否错误可以通过回调函数来获得。另外 回调函数还可以获得当前合成的文本位置,开发者可根据此位置信息实现类似高亮显示这样的功能。
可以使用 hci_tts_player_pause() 和 hci_tts_player_resume() 来暂停和恢复播放过程。
可以使用 canStop() 来检查当前是否可以被停止,只有当播放器处于 PLAYER_STATE_PLAYING 或者 PLAYER_STATE_PAUSE时, 才能够被停止。
可以使用 stop() 来停止播放过程。
可以使用 hci_tts_player_get_state() 来获取播放器当前状态
当不再使用TTS播放器的时候,需要反初始化TTS播放器,示例如下:
当不再使用其它灵云能力时,需要反初始化系统模块,请参见 系统模块的初始化/终止。