腾讯云语音合成SSML 标记语言_AI解决方案_同尘科技

语音合成 1年前 (2023-12-13) 浏览 76

SSML 是一种基于 XML 的语音合成标记语言。使用 SSML 可以更加准确、具体的定义合成音频的效果。

说明

腾讯云语音合成服务的 SSML 实现,基于 W3C 的语音合成标记语言版本1.1。

目前只有中文、英文合成支持 SSML 功能。

使用方式

将带标签的文本作为 text 参数值,上传至语音合成服务,发送给语音合成服务的请求内容如下:

{

“Action” : “TextToVoice”,

“AppId” : 12345,

“Codec” : “mp3”,

“Expired” : 1603271036,

“ModelType” : 1,

“PrimaryLanguage” : 1,

“ProjectId” : 0,

“SampleRate” : 8000,

“SecretId” : “AKID****”,

“SessionId” : “1234”,

“Speed” : 0,

“Text” : “<speak>电话号码是<say-as interpret-as=\”telephone\”>4008110510</say-as>。</speak>”,

“Timestamp” : 1603184636,

“VoiceType” : 1002,

“Volume” : 5

}

语音合成支持的 SSML 标签。其中 <speak> 标签中的未定义标签不合成,且 XML 格式错误可能会导致<speak> 标签的合成停止。

语音合成的 SSML 功能支持多个 <speak> 标签闭合嵌套于文本之中。例如:

<speak>她叫<say-as interpret-as=”name”>任盈盈</say-as>。

她的电话号码是<say-as interpret-as=”telephone”>+86-15188888888</say-as>。

她今年<say-as interpret-as=”cardinal”>22</say-as>岁了。

她有一个快递,单号是<say-as interpret-as=”digits”>5648234514237588</say-as>。

她的地址是<say-as interpret-as=”address”>深南大道10000号3单元304</say-as>。

</speak>再补充一下,<speak>

她的用户名是<say-as interpret-as=”characters”>b888_uαβγ</say-as>。

</speak>

标签

<speak>

描述

<speak>标签是所有待支持SSML标签的根节点。一切需要调用SSML标签的文本都要包含在“<speak></speak>”中。speak标签不支持属性。

语法

<speak>需要调用SSML标签的文本</speak>

标签关系

<speak> 标签可以包含文本和以下标签:<break><phoneme><say-as><sub>

示例

<speak>需要调用SSML标签的文本。</speak>

音频效果:SSML-speak1.wav

<sub>

描述

使用别名替换标签内文本。

语法

<sub alias=”别名”>文本</sub>

属性

属性名称属性类型属性值是否必选描述
aliasString替换后的内容用于替换标签内的文本。

标签关系

标签仅包括文本。

示例

<speak><sub alias=”语音合成”>TTS</sub></speak>

音频效果:SSML-sub.wav

<break>

描述

用于在文本中插入停顿,该标签是可选标签。使用<break>标签时,<speak>标签中除<break>标签外,必须包含有效文本。

语法

<break time=”string”/>

属性

属性名称属性类型属性值是否必选描述
timeString[number]s/[number]ms以秒/毫秒为单位设置停顿的时长 (如“2s“、“50ms”)。[number]s:以秒为单位,[number]取值范围为[1, 10]的整数。[number]ms:以毫秒为单位,[number]取值范围为[50, 10000]的整数。

标签关系

<break>是空标签,不能包含任何标签。

示例

<speak>请闭上眼睛休息一下<break time=”500ms”/>好了,请睁开眼睛。</speak>

<phoneme>

描述

用于控制标签内文本的读音,该标签是可选标签。

语法

<phoneme alphabet=”py” ph=”拼音串”>文本</phoneme>

属性名称属性类型属性值是否必选描述
alphabetStringpy“py”表示拼音。
phString标签内文本对应的拼音串拼音用法的赋值规范:- 字与字的拼音用空格分隔,拼音的数目必须与字数相等。- 每个拼音由发音和音调组成,音调为1~5的数字编号,其中“5”表示轻声。

标签关系

<phoneme>标签仅包括文本。

示例

<speak>

现状是各地的经济水平是<phoneme alphabet=”py” ph=”cen1 ci1 bu4 qi2″>参差不齐</phoneme>的。需要缩小较弱地域和较强地域的<phoneme alphabet=”py” ph=”cha1 ju4″>差距</phoneme>。要做好这个<phoneme alphabet=”py” ph=”chai1 shi4″>差事</phoneme>可不容易啊。

</speak>

音频效果:SSML-phoneme.wav

<say-as>

描述

用于指示出标签内文本的信息类型,进而按照该类型的默认发音方式发音。

语法

<say-as interpret-as=”string”>文本</say-as>

属性名称属性类型属性值是否必选描述
interpret-asStringcardinal/digits/telephone/name/address/id/characters/punctuation/date/time/currency/measure指示出标签内文本的信息类型:• cardinal:按整数或小数发音。• digits:按数字发音。• telephone:按电话号码常用方式发音。• name:按人名发音。• address:按地址发音。• id:适用于账户名、昵称等。• characters:将标签内的文本按字符一一读出。• punctuation:将标签内的文本按标点符号的方式读出来。• date:按日期发音。• time:按时间发音。• currency:按金额发音。• measure:按计量单位发音。

各<say-as>类型支持范围

cardinal

格式示例输出说明
数字串1487一千四百八十七整数输入范围:[-18446744073709551615,18446744073709551615]。小数输入范围:对小数点后小数的位数没有特殊限制,建议不超过10位。
负号+数字串-1487负一千四百八十七
以逗号分隔3位数字串10,500一万零五百
负号+以逗号分隔3位数字串-10,500负一万零五百
数字串+小数点+2个零9.00
负号+数字串+小数点+2个零-110.00负一百一十
数字串+小数点+数字串88.090八十八点零九
负号+数字串+小数点+数字串-88.001负八十八点零零一

digits

格式示例输出说明
数字串356210985三五六二一零九八五对数字串的长度没有特殊限制。建议不超过20位,且当数字串超过10位时,每个数字后插入停顿。

telephone

格式示例输出说明
座机号5605560五六零 五五六零支持7~8位座机号,支持空格和’-‘作为分隔符。其中:7位座机号支持“3-4”的数字分隔方式。8位座机号支持“4-4”的数字分隔方式。
560 5560五六零 五五六零
560-5560五六零 五五六零
55605560五五六零 五五六零
5560 5560五五六零 五五六零
5560-5560五五六零 五五六零
座机号+分机号55605560-105五五六零 五五六零 转幺零五支持1~4位分机号。
55605560转105五五六零 五五六零 转幺零五
55605560分机105五五六零 五五六零 转幺零五
55605560分机号105五五六零 五五六零 分机号幺零五
区号+座机号01055605560零幺零 五五六零 五五六零支持区号:010、02x、03xx、04xx、05xx、07xx、08xx、09xx。
010 55605560零幺零 五五六零 五五六零
010-5560-5560零幺零 五五六零 五五六零
(010)55605560零幺零 五五六零 五五六零
031955605560零三幺九 五五六零 五五六零
0319-55605560零三幺九 五五六零 五五六零
区号+座机号+分机号010 33878528-1054零幺零 三三八七 八五二八 转幺零五四
010-33878528-1054零幺零 三三八七 八五二八 转幺零五四
(010)33878528-1054零幺零 三三八七 八五二八 转幺零五四
(010)33878528转1054零幺零 三三八七 八五二八 转幺零五四
(010)33878528分机1054零幺零 三三八七 八五二八 分机幺零五四
(010)33878528分机号1054零幺零 三三八七 八五二八 分机号幺零五四
国家代码+区号+座机号86-010-33878528八六 零幺零 三三八七支持国家代码:86、(86)、+86、(+86)、0086。并统一读为“八六”。
(86)10-33878528八六 幺零 三三八七 八五二八
+86-010-33878528八六 零幺零 三三八七 八五二八
0086-10-33878528八六 幺零 三三八七 八五二八
(+86)-10-3387 8528八六 幺零 三三八七 八五二八
国家代码+区号+座机号+分机号(86)21-33878528-1054八六 二幺 三三八七 八五二八 转幺零五四
(86)021-3387-8528-1054八六 零二幺 三三八七 八五二八 转幺零五四
(86)021-33878528转1054八六 零二幺 三三八七 八五二八 转幺零五四
(86)21-3387-8528分机号1054八六 二幺 三三八七 八五二八 分机号幺零五四
+86-021-3387-8528分机1054八六 零二幺 三三八七 八五二八 分机幺零五四
手机号151 8828 1075幺五幺八八二八 幺零七五支持11位手机号,支持3-3-5、3-4-4两种数字分隔方式
151-882-81075幺五幺 八八二 八幺零七五
151-8828-1075幺五幺八八二八 幺零七五
国家代码+手机号+86-15188281075八六 幺五幺 八八二八 幺零七五
(+86)-151-8828-1075八六 幺五幺 八八二八 幺零七五
+8615188281075八六 幺五幺 八八二八 幺零七五
0086-151 882 81075八六 幺五幺 八八二 八幺零七五
服务号110幺幺零支持常用的服务号如110。支持以400/800开头的10位服务号,支持以“3-3-4”的数字分隔方式。支持以12530/17951/12593开头的16位号码。
95566九五五六六
4008110280四零零 八幺幺 零二八零
800-810-8888八零零 八幺零 八八八八
1253013520638377幺二五三零 幺三五 二零六三 八三七七
其他(86)(21)8832-80976-0907八六 二幺 八八三二 八零九七六 零九零七支持“数字串+分隔符(左右括号、-)”方式。

address

格式示例输出说明
常用地址格式深南大道1000号103-3深南大道 幺零零零号幺零三杠三支持常用地址格式。此处地址指标准的邮寄地址。
高新中四道377弄1137-1128号高新中四道三七七弄幺幺三七杠幺幺二八号
华润城六期3-1-3805华润城六期三杠一杠三八零五
大族云峰大厦2幢2106室大族云峰大厦二幢二幺零六室
高新中三道151弄19号高新中三道幺五幺弄十九号

id

格式示例输出说明
字符串dell3301D E L L 三 三 零 一大小写英文字符、阿拉伯数字0~9、下划线。输出的空格表示每个字符之间插入停顿,即字符一个一个地读。
tencent_1998T E N C E N T 下划线 一 九 九 八
AiDemoA I D E M O

characters

格式示例输出说明
字符串ISO 1-001-095498-1I S O 一 杠 零 零 一 杠 零 五 四 零 九 八 杠 一支持中文汉字、大小写英文字符、阿拉伯数字0~9以及部分全角和半角字符。输出的空格表示每个字符之间插入停顿,即字符一个一个地读。标签内的文本如果包含XML的特殊字符,需要做字符转义。常用的共有5个:&lt;&gt;&amp;&quot;&apos;分别对应<、>、& 、”、’。
x10u2385_ux 一 零 u 二 三 八 五 下划线 u
v1.1.1v 一 点 一 点 一
版本号2.0版本号二 点 零
粤B BA000粤B B A 零 零 零
空中客车A330空中客车A 三 三 零
型号B01 B02和B03型号B 零 一 B 零二 和B 零 三
αβγ阿尔法 贝塔 伽玛

punctuation

格式示例输出说明
标点符号省略号支持常见中英文标点。输出的空格表示每个字符之间插入停顿,即字符一个一个地读。标签内的文本如果包含XML的特殊字符,需要做字符转义。常用的共有5个:&lt;&gt;&amp;&quot;&apos;分别对应<、>、& 、”、’。
……省略号
!”#$%&叹号 双引号 井号 dollar 百分号 and
‘()*+单引号 左括号 右括号 星号 加号
,-./:;逗号 杠 点 斜杠 冒号 分号
<=>?@小于 等号 大于 问号 at
[\]^_左方括号 反斜线 右方括号 脱字符 下划线

date

格式示例输出说明
xx年71年七一年支持2位和4位年份。其中:2位年份支持60年~99年、00年~09年、10年~19年。4位年份支持1000年~1999年、2000年~2099年。
08年零八年
20年二零年
2020年二零二零年
1998年一九九八年
2008年二零零八年
xx年xx月08年5月零八年五月当月份为1到9月时,支持开头带”0”和不带”0”两种写法。例如”1908年4月”和”1908年04月”。
2020年04月二零二零年四月
08年8月零八年八月
2020年8月二零二零年八月
xx年xx月xx日xx年xx月xx号98年4月23日九八年四月二十三日当日期为1到9日时,支持开头带”0”和不带”0”两种写法。例如”1908年4月8日”和”1908年04月08日”。
2020年08月23日二零二零年八月二十三日
20年8月8号二零年八月八号
2020年08月08号二零二零年八月八号
xx月xx号8月20日八月二十日
08月08号八月八号
年月缩写2020/08二零二零年八月支持”/“、”-“、”.”作为缩写的分隔符。
2020-08二零二零年八月
2020.08二零二零年八月
年月日缩写2020/08/09二零二零年八月九日
2020-8-9二零一八年八月八日
2020.08.09二零一八年八月九日
xx年xx月xx日~xx年xx月xx日xx年xx月xx号~xx年xx月xx号20年8月9日~30日二零年八月九日至三十日支持”~”、”-“作为”至”的缩写标志。
2020年08月09号-2020年09月09号二零二零年八月九月一号至二零二零年九月九
xx年xx月~xx年xx月20年04月~21年04月二零年四月至二一年四月
2020年04月~2021年04月二零二零年四月至二零二一年四月
xx月xx日~xx月xx日xx月xx号~xx月xx号10月1日~10月7日十月一日至十月七日
10月01号~10月07号十月一号至十月七号
xx月xx日~xx日xx月xx号~xx号10月1日~7日十月一日至七日
10月01号~07号十月一号至七号
年月日缩写~年月日缩写2020/03/03~2021/03/03二零二零年三月三日至二零二一年三月三日支持”/“、”.”作为缩写的分隔符,支持”~””-“作为”至”的缩写标志。
2020.9.9~2021.9.9二零二零年九月九日至二零二一年九月九日
月日缩写~月日缩写10/20~10/31十月二十日至十月三十一日
xx~xx月xx月~xx月1~10月一至十月
1月~10月一月至十月
月日年缩写10/25/2020二零二零年十月二十五日仅支持4位的年份,仅支持“/”作为日期的分隔符,仅支持”月/日/年”的书写方式。

time

格式示例输出说明
时刻12:00十二点支持常用时间和时间范围格式。
12:00:00点十二点
10:25分十点二十五分
10:25:30十点二十五分三十秒
09:25:14九点二十五分十四秒
时刻~时刻11:00~12:00十一点到十二点
09:00-14:00九点到十四点
11:00~11:30十一点到十一点三十分
11:00-15:18十一点到十五点十八分
10:30~11:00十点三十分到十一点
09:28-10:00九点二十八分到十点
10:20~11:20十点二十分到十一点二十分
06:00~08:00六点到八点
上午10:20~下午13:30上午十点二十分到下午十三点三十分
时间缩写5:00am凌晨五点当缩写为 am 时,小时在[0,5]范围内读作凌晨;当单位为 am 时,小时在[6,11]范围内读作上午。当缩写为 pm 时,小时为12时读作中午;当单位为 pm 时,小时在[1,5]范围内读作下午;小时在[6,11]范围内读作晚上。
5:30am凌晨五点三十分
5:20:12am凌晨五点二十分十二秒
7:00am上午七点
7:30AM上午七点半
7:20:25a.m.上午七点二十分二十五秒
07:08:12A.M.上午七点零八分十二秒
5:00pm下午五点
5:30PM下午五点三十分
5:20:12p.m.下午五点二十分十二秒
05:09:12P.M下午五点零九分十二秒
9:00pm晚上九点
9:30pm晚上九点三十分
9:20:12PM晚上九点二十分十二秒
9:02:12P.M.晚上九点零二分十二秒
12:00pm中午十二点
12:30p.m.中午十二点三十分
12:20:12PM中午十二点二十分十二秒

currency

格式示例输出说明
数字+金额标识符12.00RMB十二人民币支持 AUD(澳元) 、CAD(加元)、 HKD(港币)、JPY(日元)、USD(美元)、CHF(瑞士法郎)、NOK(挪威克朗)、SEK(瑞典克朗)、GBP(英镑)、 RMB(人民币)、CNY(元)和 EUR(欧元)。支持的数字格式包括:整数、小数以及以逗号分隔的国际写法。
12.50RMB十二点五人民币
15,000,000RMB一千五百万人民币
15,000,000.00RMB一千五百万人民币
12,000.35RMB一万两千点三五人民币
金额标识符+数字$12十二美元支持 CAD(加元)、$(美元)、$(美元)、Fr(法郎)、kr(丹麦克朗)、£(英镑)、¥(元)¥(元)和 €(欧元)。支持的数字格式包括:整数、小数以及以逗号分隔的国际写法。
$12.00十二美元
$12.12十二点一二美元
$12,000一万两千美元
$12,000.00一万两千美元
$12,000.99一万两千点九九美元
其他默认读法1213一千二百一十三
1213KML一千二百一十三K M L
1213.00KML一千二百一十三K M L
1213.9KML一千二百一十三点九K M L
1,000KML一千K M L
1,000.00KML一千K M L
1,000.98KML一千点九八K M L
12,000一万两千

measure

格式示例输出说明
数字+中文单位2片两片支持常见中文单位及单位缩写
120公顷一百二十公顷
100多毫克一百多毫克
100来米一百来米
100余人一百余人
1厘米20毫米一厘米二十毫米
120.00平方公里一百二十平方公里
数字+单位缩写120.56cm²一百二十点五六平方厘米
120㎡56cm²一百二十平方米五十六平方厘米
100m12cm6mm一百米十二厘米六毫米
范围10~15kg十至十五千克
10.24~789.82亩十点二四至七百八十九点八二亩
10米~15米十米至十五米
10.24cm~19.08cm十点二四厘米至十九点零八厘米
数字+单位+”/”+单位10元/斤十元每斤
199~299元/件一百九十九至二百九十九元每件
299.99元/g~399.99元/g二百九十九点九九元每克至三百九十九点九九元每克
其他默认读法12扎十二扎
30rm三十r m
4万万同胞四万万同胞
12.897微克十二点八九七微克

<say-as> 常见符号读法

符号读法
!叹号
双引号
#井号
$dollar
%百分号
&and
单引号
(左括号
)右括号
*
+
,逗号
.
/斜杠
:零冒号
;分号
<小于
=等号
>大于
?问号
@at
[左方括号
\反斜线
]右方括号
^脱字符
_下划线
`反引号
{左花括号

}右花括号
~波浪线
叹号
左双引号
右双引号
左单引号
右单引号
左括号
右括号
逗号
句号
冒号
分号
问号
顿号
省略号
……省略号
左书名号
右书名号
人民币符号
大于等于
小于等于
不等于
约等于
±加减
×
π
Α阿尔法
Β贝塔
Γ伽玛
Δ德尔塔
Ε艾普西龙
Ζ捷塔
Ε依塔
Θ西塔
Ι艾欧塔
Κ喀帕
拉姆达
Μ
Ν
Ξ克西
Ο欧麦克轮
Ρ
西格玛
Τ
Υ宇普西龙
Φfai
Χ
Ψ普赛
Ω欧米伽
α阿尔法
β贝塔
γ伽玛
δ德尔塔
ε艾普西龙
ζ捷塔
η依塔
θ西塔
ι艾欧塔
κ喀帕
λ拉姆达
μ
ν
ξ克西
ο欧麦克轮
π
ρ
σ西格玛
τ
υ宇普西龙
φfai
χ
ψ普赛
ω欧米伽

<say-as> 常见计量单位

格式类别示例
缩写长度nm(纳米)、μm(微米)、mm(毫米)、cm(厘米)、m(米)、km(千米)、ft(英尺)、in(英寸)
面积cm²(平方厘米)、㎡(平方米)、km²(平方千米)、SqFt(平方英尺)
体积cm³(立方厘米)、m³(立方米)、km³(立方千米)、mL(毫升)、L(升)、gallon(加仑)
重量μg(微克)、mg(毫克)、g(克)、kg(千克)
时间min(分)、sec(秒)、ms(毫秒)
电磁μA(微安)、mA(毫安)、Ω(欧姆)、Hz(赫兹)、KHz(千赫兹)、MHz(兆赫兹)、GHz(吉赫兹)、V(伏)、kV(千伏)、kWh(千瓦时)
声音dB(分贝)
气压Pa(帕)、kPa(千帕)、Mpa(兆帕)
中文单位支持不限于上述类别的中文单位,例如“米”、“秒”、“美元”、“毫升每瓶”等。以及中文量词,例如“架”、“场”、“头”、“部”、“盆”等。

标签关系

<say-as>标签仅包括文本。

示例

cardinal

<speak>

<say-as interpret-as=”cardinal”>12345</say-as>

</speak>

音频效果:say-as-cardinal.wav

digits

<speak>

<say-as interpret-as=”digits”>12345</say-as>

</speak>

音频效果:say-as-digits.wav

telephone

<speak>

<say-as interpret-as=”telephone”>12345</say-as>

</speak>

音频效果:say-as-telephone.wav

name

<speak>

她的曾用名是<say-as interpret-as=”name”>曾小凡</say-as>

</speak>

音频效果:say-as-name.wav

address

<speak>

<say-as interpret-as=”address”>深南大道10000号1号楼3单元304</say-as>

</speak>

音频效果:say-as-address.wav

id

<speak>

我的用户名是<say-as interpret-as=”id”>tencent_8858</say-as>

</speak>

音频效果:say-as-id.wav

characters

<speak>

希腊字母<say-as interpret-as=”characters”>αβ</say-as>

</speak>

音频效果:say-as-characters.wav

punctuation

<speak>

我最常用的标点是<say-as interpret-as=”punctuation”>,</say-as>

</speak>

音频效果:say-as-punctuation.wav

date

<speak>

<say-as interpret-as=”date”>2020-10-10</say-as>

</speak>

音频效果:say-as-date.wav

time

<speak>

<say-as interpret-as=”time”>5:30am</say-as>

</speak>

音频效果:SSML-say-as_time.mp3

currency

<speak>

<say-as interpret-as=”currency”>15,000.00RMB</say-as>

</speak>

音频效果:say-as-currency.wav

measure

<speak>

<say-as interpret-as=”measure”>100m²15cm²</say-as>

</speak>

音频效果:say-as-measure.wav

<word>

描述

用于表示文本的词语结构,该标签是可选标签。英文文本通常采用空格来进行分词,一般无需使用此标签。<word>标签内部必须是一个独立的词或短语,这个词或短语只能包含纯中文或纯英文,不能中英混合。

语法

<word>文本</word>

标签关系

<word>标签仅包括文本。

示例

<speak>广州市长<word>隆马戏</word>欢迎您。</speak>

音频效果:SSML-word.wav

<audio>

描述

用于在合成语音输出中插入录制的音频文件和其他音频格式。

语法

<audio src=”https://example.cos.ap-shanghai.myqcloud.com/demo.wav“></audio>

属性

属性名称属性类型属性值是否必选描述
srcString音频url指向音频媒体源的 URI。支持的协议为 https。音频限制条件:音频文件大小上限:3M音频格式:mp3、wav采样率:不限 音频时长:120s 音频存储服务器:腾讯云 cos(需开通公有读权限) 语音合成接口:实时语音合成

示例

你听<speak><audio src=”https://example.cos.ap-shanghai.myqcloud.com/knock_door.wav“></audio></speak>有敲门声

音频效果:SSML-audio.wav

- 0人点赞 -

发表点评 (0条)

not found

暂无评论,你要说点什么吗?