JSON格式文本说明
目前,数字人服务平台对接了多家TTS服务厂商,各厂商对多音字标记、插入停顿、数值读法标记等功能的支持程度和支持方式均有不同。
为了方便客户对接,统一定义了一套通用的文本标记格式,由数字人服务平台进行解析,适配各TTS服务厂商的实现。
1.文本格式定义
1.5.0起,项目配置接口中,scene.textDriver.text参数使用新定义的数据格式传参,支持多音字标记、插入停顿、数值读法标记等功能。
使用JSON格式定义通用文本标记,示例如下:
{
"parts": [
{
"sentences": [
{ "type": 1, "word": "国家" },
{ "type": 3, "word": "兴", "pron": "xing", "tone": 1 },
{ "type": 1, "word": "亡," },
{ "type": 2, "word": "", "duration": 3000 },
{ "type": 1, "word": "匹夫有责。" },
{
"type": 4,
"word": "1234",
"start": true,
"end": true,
"interpret": 2
},
{ "type": 1, "word": "!" }
]
}
]
}
文本格式属性说明:
| 属性名称(key) | 类型 | 必需 | 说明 |
|---|---|---|---|
| parts | Array(part) | 是 | 文本中的段落数组,每个文本由1个或多个段落组成。服务端解析时,会在段落和段落之间添加一个换行符(\n)。 |
part说明:
| 属性名称(key) | 类型 | 必需 | 说明 |
|---|---|---|---|
| sentences | Array(sentence) | 是 | 段落中的语句数组,每个段落由1个或多个语句组成。语句包含纯文本、多音字标记、停顿标记、数值读法标记等。 |
sentence说明:
| 属性名称(key) | 类型 | 必需 | 说明 |
|---|---|---|---|
| type | Integer | 是 | 语句类型,枚举值。表示当前语句的类型或作用。1=字符文本,纯文本内容。2=停顿标记,用来在文本中插入一个停顿标记,需要设置停顿时长。3=多音字标记,用来标注1个多音字汉字的发音,需要设置发音和声调。4=数值读法标记,用来标注数值的读法,需要设置数值字符范围和读法。 |
| word | String | 是 | 语句文本内容。type=1,任意字符,支持1个字符或多个字符组成的字符串;type=2,文本内容无效,解析时忽略文本内容,传入固定值:"";type=3,1个汉字字符;type=4,数值字符,支持1个数字或多个数字组成的数值。 |
| duration | Long | 否 | 停顿时长,单位:毫秒。type=2时有效,必需。取值范围: 50 ~ 5000,即50毫秒 ~ 5秒。允许连续插入多个停顿。 |
| pron | String | 否 | 汉语拼音发音,type=3时有效,必需。 |
| tone | Integer | 否 | 汉语拼音声调,枚举值。type=3时有效,必需。1=阴平(¯);2=阳平(´);3=上声(ˇ);4=去声(`);5=轻声(˙)。 |
| start | Boolean | 否 | 数值开始,true时表示该字符为数值标记的开始。type=4时有效,必需。 |
| end | Boolean | 否 | 数值结束,true时表示该字符为数值标记的结束。type=4时有效,必需。 |
| interpret | Integer | 否 | 数值读法,枚举值。type=4时有效,必需。1=按数字读,如1234读作一千二百三十四;2=按序列读,如1234读作一二三四。 |