tencent cloud

文档反馈

SSML 标记语言

最后更新时间:2022-06-29 18:38:54

    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">深南大道100003单元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>
    

    属性

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

    标签关系

    标签仅包括文本。

    示例

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

    音频效果:SSML-sub.wav

    <break>

    描述

    用于在文本中插入停顿,该标签是可选标签。

    语法

    <break time="string"/>
    

    属性

    属性名称 属性类型 属性值 是否必选 描述
    time String [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>
    
    属性名称 属性类型 属性值 是否必选 描述
    alphabet String py “py”表示拼音。
    ph String 标签内文本对应的拼音串 拼音用法的赋值规范:
    - 字与字的拼音用空格分隔,拼音的数目必须与字数相等。
    - 每个拼音由发音和音调组成,音调为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-as String cardinal/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
      格式 示例 输出 说明
      字符串 dell3301 D E L L 三 三 零 一 大小写英文字符、阿拉伯数字0~9、下划线。
      输出的空格表示每个字符之间插入停顿,即字符一个一个地读。
      tencent_1998 T E N C E N T 下划线 一 九 九 八
      AiDemo A I D E M O
    • characters
      格式 示例 输出 说明
      字符串 ISO 1-001-095498-1 I S O 一 杠 零 零 一 杠 零 五 四 零 九 八 杠 一 支持中文汉字、大小写英文字符、阿拉伯数字0~9以及部分全角和半角字符。
      输出的空格表示每个字符之间插入停顿,即字符一个一个地读。标签内的文本如果包含XML的特殊字符,需要做字符转义。常用的共有5个:
      <
      >
      &
      "
      '
      分别对应<、>、& 、"、'。
      x10u2385_u x 一 零 u 二 三 八 五 下划线 u
      v1.1.1 v 一 点 一 点 一
      版本号2.0 版本号二 点 零
      粤B BA000 粤B B A 零 零 零
      空中客车A330 空中客车A 三 三 零
      型号B01 B02和B03 型号B 零 一 B 零二 和B 零 三
      αβγ 阿尔法 贝塔 伽玛
    • punctuation
      格式 示例 输出 说明
      标点符号 省略号 支持常见中英文标点。输出的空格表示每个字符之间插入停顿,即字符一个一个地读。
      标签内的文本如果包含XML的特殊字符,需要做字符转义。常用的共有5个:
      <
      >
      &
      "
      '
      分别对应<、>、& 、"、'。
      …… 省略号
      !"#$%& 叹号 双引号 井号 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.00USD 十二美元 支持 AUD(澳元) 、CAD(加元)、 HKD(港币)、JPY(日元)、USD(美元)、CHF(瑞士法郎)、NOK(挪威克朗)、SEK(瑞典克朗)、GBP(英镑)、 RMB(人民币)、CNY(元)和 EUR(欧元)。
      支持的数字格式包括:整数、小数以及以逗号分隔的国际写法。
      12.50USD 十二点五美元
      15,000,000USD 一千五百万美元
      15,000,000.00USD 一千五百万美元
      12,000.35USD 一万两千点三五美元
      金额标识符+数字 $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">深南大道100001号楼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">10015cm²</say-as>
      </speak>
      

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

    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持