将带标签的文本作为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>
标签关系
标签可以包含文本和以下标签:- break
- s
- w
- phoneme
- 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标记语言介绍