时间戳功能介绍

长文本语音异步合成服务在输出音频流的同时,可输出每次传入文本中各单句(在句号、问号、叹号等位置切分)在音频中的时间位置,即句级别时间戳。该时间信息可用于视频配音字幕或有声书播报文字高亮等场景。本文为您介绍时间戳功能。

使用限制

针对长文本语音合成,目前只支持长文本RESTful接口句级时间戳。

参数设置

在客户端将请求参数enable_subtitle设置为true,开启时间戳功能。以RESTful接口为例、其设置方式如下:

// 长文本TTS RESTful接口支持句级时间戳,默认为false,不开启。
tts.put("enable_subtitle", true);

服务端响应

服务端返回的带字幕信息的响应sentences字段。

参数

类型

说明

sentences

List

时间戳信息

其中sentences字段格式如下:

参数

类型

说明

begin_time

String

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

end_time

String

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

示例

请求示例:

{
    "payload":{
        "tts_request":{
            "voice":"Aifan",
            "sample_rate":16000,
            "format":"mp3",
            "enable_subtitle":true,
            "text":"我家的后面有一个很大的园,相传叫作百草园。现在是早已并屋子一起卖给朱文公的子孙了,连那最末次的相见也已经隔了七八年,其中似乎确凿只有一些野草;但那时却是我的乐园。"
        },
        "notify_url":"http://123****.com",
        "enable_notify":false
    },
    "context":{
        "device_id":"my_device_id"
    },
    "header":{
        "appkey":"1iMxP16qgjP****",
        "token":"16aea272b48d4bb188664611837f****"
    }
}

返回示例:

{
    "status":200,
    "data":{
        "sentences":[
            {
                "text":"我家的后面有一个很大的园,相传叫作百草园",
                "begin_time":"0",
                "end_time":"4247"
            },
            {
                "text":"现在是早已并屋子一起卖给朱文公的子孙了,连那最末次的相见也已经隔了七八年,其中似乎确凿只有一些野草;但那时却是我的乐园",
                "begin_time":"4247",
                "end_time":"16060"
            }
        ],
        "task_id":"9628f978abab4628b1bcfd5a9da3749f",
        "audio_address":"http://nls-cloud-cn-shanghai.oss-cn-shanghai.aliyuncs.com/jupiter-flow/tmp/9628f978abab4628b1bcfd5a9da3749f.mp3?Expires=1621305670&OSSAccessKeyId=LTAIUpwNp2H****&Signature=OYHTJMQXM3ltvw9x3x32iUpiAx*****",
        "notify_custom":""
    },
    "error_code":20000000,
    "error_message":"SUCCESS",
    "request_id":"7e70c414c31a41ae86b4a5f4241a6f3c"
}