1. TTSplayer的使用

TTS 能力的应用场景多为语音播报,将文本信息转换为语音数据后,需要在音频设备上播放出来。TTS 播放器就是针对这一场景而设计开发的一款通用产品。本开发指南面向安卓平台和PC平台下的 Java 语言。

TTS 播放器有以下特性

  • 支持选择播放设备类型,如:外放,蓝牙耳机。 仅Android 平台
  • 支持创建多个实例同时进行合成播报
  • 支持暂停/继续/调整播放进度等控制
  • 支持播放进度通知。仅本地 TTS 能力
  • 支持合成进度通知。仅本地 TTS 能力
  • 播放过程中可以通知正在播放的音节(拼音),及当前断句。仅本地 TTS 能力
  • 支持简化播放。当业务场景非常简单时(仅使用一个播放器实例),可使用简化接口省略 TTS 能力初始化等调用。
  • 平台相关功能可扩展。

1.1 使用

当仅使用一个 TTS 播放器实例且无其他 TTS 能力调用时,可以参考以下示例

// 初始化灵云 SDK。如果是 Android 平台,第二个参数为 Context 实例
HciCloudSys.hciInit(sysInitConfig, null);

TTSPlayer player = new TTSPlayer(new TTSPlayerListener() {

    @Override
    public void onPlayerEventStateChange(PlayerEvent playerEvent) {
        System.out.println(playerEvent.toString());
        // TODO: 状态通知,BEGIN, END, PAUSE, RESUME, BUFFERING
    }

    @Override
    public void onPlayerEventProgressChange(PlayerEvent playerEvent,
            int playPos, int synthPos, int total) {
        // TODO: 进度通知,PROGRESS
        // playPos 为播放进度,synthPos 为合成进度,total 为总进度
    }

    @Override
    public void onPlayerEventProgressChange(PlayerEvent playerEvent,
            int textStart, int textEnd, String sentence,
            TtsSynthSyllable syllable) {
        // TODO: 进度通知,PROGRESS
        // textStart, textEnd 为当前播放的句子在合成文本中的起始位置
        // sentence 为当前播放的句子文本
        // syllable 为当前播放的音节
    }

    @Override
    public void onPlayerEventPlayerError(PlayerEvent playerEvent,
            int errorCode) {
        // TODO: 错误通知, ENGINE_ERROR, DEVICE_ERROR
        // errorCode 错误代码
    }

    @Override
    public void onPlayerEventSeek(PlayerEvent playerEvent, int seekPos) {
        // TODO: 进度调整通知, SEEKING, SEEK
        // seekPos 进度位置
    }
});

// ****** 以下调用不一定在同一线程上,但是时序上要保证正确 ********

player.play("要播放的文本", "capkey=tts.local.synth,speed=5",
        "dataPath=/path/to/resource");
// ... 其他逻辑
player.pause();
// ... 其他逻辑
player.seek(1000, true); // 调整进度至 1000,调整完成后,自动 resume
// ... 其他逻辑
player.stop();
// ... 其他逻辑
HciCloudSys.hciRelease();

results matching ""

    No results matching ""