全部产品

语音合成时间戳功能介绍

更新时间:2020-09-28 14:00:45

语音实时合成服务在输出音频流的同时,可输出每个字在音频中的时间位置,即时间戳,时间戳功能又叫字级别音素边界接口。该时间信息可用于驱动虚拟人口型、做视频配音字幕等。

注意

只有支持字级别音素边界接口的发音人才有此功能。

参数设置

在客户端设置请求参数enable_subtitletrue,开启时间戳功能。

以Java SDK为例,其设置⽅式如下。

// 是否开启字幕功能(返回对应文本的相应时间戳),默认不开启。 
synthesizer.addCustomedParam("enable_subtitle", true);

服务端响应

服务端返回的带字幕信息的响应MetaInfo事件。

参数

类型

说明

subtitles

List

时间戳信息。

其中,SubtitleItem格式如下。

参数

类型

说明

text

String

⽂本信息。

begin_time

Integer

⽂本对应tts语⾳开始时间戳,单位ms。

end_time

Integer

⽂本对应tts语⾳结束时间戳,单位ms。

示例

{
    "header": {
        "message_id": "05450bf69c53413f8d88aed1ee60****",
        "task_id": "640bc797bb684bd6960185651307****",
        "namespace": "SpeechSynthesizer",
        "name": "MetaInfo",
        "status": 20000000,
        "status_message": "GATEWAY|SUCCESS|Success."
    },
    "payload": {
        "subtitles": [
            {
                "text": "xx",
                "begin_time": 130,
                "end_time": 260
            },
            {
                "text": "xx",
                "begin_time": 260,
                "end_time": 370
            }
        ]
    }
}

注意事项

  • TTS服务返回的字幕是基于发音的,所以不能直接用于上屏,需要使用您的原始文本。

  • 如果用于上屏,可以基于返回的结果,定位每个句子的句首和句尾时间戳。