更新时间:2024-09-12 GMT+08:00
分享

文本驱动SSML定义

MetaStudio语音驱动采用语音合成标记语言(SSML,Speech Synthesis Markup Language)来控制数字人的行为,包括动作、情绪以及TTS语音合成的多音字、停顿等。

SSML基础定义可参考语音合成标记语言版本 1.0。MetaStudio在此基础上,扩展了一些字段用于实现数字人的控制。

MetaStudio SSML当前支持如下能力:

  • TTS语音合成时,控制文字读音。
    包含如下标签:

speak标签

  • 描述

    <speak></speak>:SSML文本的根节点。

  • 语法
    1
    <speak>这里输入SSML标签的文本</speak>
    
  • 属性

  • 标签关系

    <speak>可以包含文本和标签,包括<break>、<phoneme>、<say-as>、<sub>标签。

break标签

  • 描述

    <break/>:在任意位置插入静音停顿。

  • 语法
    1
    <break time="String"/>
    
  • 属性
    表1 属性说明

    属性名称

    属性类型

    属性值

    是否必选

    描述

    time

    String

    最小200毫秒,最大10秒

    静音停顿时长,单位:毫秒。

    strength

    String

    取值如下所示:

    • none:没有韵律
    • x-weak:很短韵律
    • weak:短韵律
    • medium:中等韵律
    • strong:长韵律
    • x-strong:很长韵律

    韵律定义。

  • 标签关系

    不能包含其他任何标签。

  • 示例
    1
    2
    一句话<break time="200ms"/>另外一句话
    一句话<break strength="strong"/>另外一句话
    

phoneme标签

  • 描述

    <phoneme></phoneme>:中文多音字的发音或英文单词发音。

  • 语法
    1
    2
    <phoneme ph="string">文字</phoneme>
    The <phoneme ph="W EH1 DH AH0">weather</phoneme> is very good.
    
  • 属性
    表2 属性说明

    属性名称

    属性类型

    属性值

    是否必选

    描述

    ph

    String

    拼音或音素

    • 输入汉语拼音时,声调用1、2、3、4来表示,5表示轻声。
    • CMU词典音素
    • 举例1:天气的ph取值为“tian1 qi4”。
    • 举例2:weather的ph取值为“ˈweəðə(r)”。
  • 标签关系

    可以包含文本,不可以包含其他标签。

  • 示例
    1
    今天<phoneme ph="tian1 qi4">天气</phoneme>很好
    

    根据汉字获取拼音JS库,操作请参考pinyin-pro

say-as标签

  • 描述

    <say-as></say-as>:将文本指定为特定类型的内容,或者控制英文单词逐个字符拼写。

  • 语法
    1
    <say-as interpret-as="string">数字或单词</say-as>
    
  • 属性
    表3 属性说明

    属性名称

    属性类型

    属性值

    是否必选

    描述

    interpret-as

    String

    • number:数字
    • date:日期
    • figure:数值
    • phone:电话号码
    • english:英文单词
    • spell:逐个字母读英文

    将内容解释为给定类型读法。

  • 标签关系

    可以包含文本,不可以包含其他标签。

  • 示例
    1
    2
    3
    4
    5
    6
    <say-as interpret-as="number">123</say-as>
    <say-as interpret-as="date">2022/3/8</say-as>
    <say-as interpret-as="figure">175 cm</say-as>
    <say-as interpret-as="phone">151 12345678</say-as>
    <say-as interpret-as="english">Hello</say-as>
    <say-as interpret-as="spell">Hello</say-as><!-- 读:H E L L O -->
    

sub标签

  • 描述

    <sub></sub>:用其他词语替代读法。

  • 语法
    1
    <sub alias="string">文字</sub>
    
  • 属性
    表4 属性说明

    属性名称

    属性类型

    属性值

    是否必选

    描述

    alias

    String

    替代词语

    将标记的内容替换为此值进行阅读。

  • 标签关系

    可以包含文本,不可以包含其他标签。

  • 示例
    实际阅读为“保罗”。
    1
    <sub alias="保罗">Paul</sub>是德国人
    

prosody标签

  • 描述

    <prosody></prosody>:控制局部语速。

  • 语法
    1
    <prosody rate="50">文字</prosody>
    
  • 属性
    表5 属性说明

    属性名称

    属性类型

    属性值

    是否必选

    描述

    rate

    String

    语速百分比值。

    最小值50,最大值200。

    示例:50,表示用0.5倍速度阅读。

    语速值

  • 标签关系

    可以包含文本,不可以包含其他标签。

  • 备注
    1
    <prosody rate="50">大家好,我是MetaStudio数字人</prosody>
    

word标签

  • 描述

    <word></word>:设置选中文字为连读模式。选中文字只能包含文字,不能有标点符号或者空格等字符。

  • 语法
    1
    <word>文字</word>
    
  • 属性

  • 标签关系

    可以包含文本,不可以包含其他标签。

  • 备注
    1
    <word>大家好我是MetaStudio数字人</word>
    

相关文档