阿里云智能语音交互语音合成高频SSML标记语言使用介绍

将带标签的文本作为text参数值,上传至语音合成服务,以Java SDK为例:
SpeechSynthesizer synthesizer = new SpeechSynthesizer(client, getSynthesizerListener());
String text = "<speak>请闭上眼睛休息一下<break time=\"500ms\"/>好了,请睁开眼睛。</speak>";
synthesizer.setText(text);
发送给语音合成服务的请求内容如下:
{
    "payload": {
        "volume": 50,
        "sample_rate": 16000,
        "format": "wav",
        "text": "<speak>请闭上眼睛休息一下<break time=\"500ms\"/>好了,请睁开眼睛。</speak>"
    },
    "context": {
        "sdk": {
            "name": "nls-sdk-java",
            "version": "2.0.4"
        }
    },
    "header": {
        "namespace": "SpeechSynthesizer",
        "name": "StartSynthesis",
        "message_id": "5fdf78c0dd574b6897f3cb204dd0****",
        "appkey": "fd4er4aa****",
        "task_id": "6e1be78ef5804c50a2c5a8b92de1****"
    }
}
标签
  • 描述
    标签是所有待支持SSML标签的根节点。一切需要调用SSML标签的文本都要包含在中。
  • 语法
 <speak>需要调用SSML标签的文本</speak>
  • 标签关系
    标签可以包含文本和以下标签:

    1. break
    2. s
    3. w
    4. phoneme
    5. say-as
  • 示例
    1.空属性

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

    2.voice属性

    <speak voice="xiaogang">
      我是男声。
    </speak>  

    3.rate属性

    <speak rate="200">
    我的语速比正常人快。
    </speak>

    4.volume属性

    <speak volume="80">
    我的音量也很大。
    </speak>

    5.effect属性

    <speak effect="robot">
    你喜欢机器人瓦力吗?
    </speak>

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

    # 空属性
    <break/>
    # 带time属性
    <break time="string"/>
    # 示例
    <speak>
    请闭上眼睛休息一下<break time="500ms"/>好了,请睁开眼睛。
    </speak>

    7.
    用于表示文本的句子结构,该标签是可选标签。
    标签可以包含文本和以下标签

    • break
    • w
    • phoneme
    • say-as

      <s>文本</s>
      # 示例
      <speak><s>这是第一句话</s><s>这是第二句话</s></speak>

    8.
    用于控制标签内文本的读音,该标签是可选标签。英文文本不支持该标签。

    <phoneme alphabet="string" ph="string">文本</phoneme>
    # 示例
    <speak>
      去<phoneme alphabet="py" ph="dian3 dang4 hang2">典当行</phoneme>把这个玩意<phoneme alphabet="py" ph="dang4 diao4">当掉</phoneme>
    </speak>

参考文档:阿里云智能语音交互SSML标记语言介绍

上一篇:为collection增加排序功能


下一篇:我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。