-
DuerOS开放平台
-
技能开放平台
-
自定义技能
- 自定义技能简介
- 自定义技能创建
-
有屏技能
-
技能交互模型
-
自定义技能协议
- 处理DuerOS发送的请求
-
技能部署
-
技能开发样例
- 账户关联
-
技能测试
-
技能发布
-
技能付费
-
个性化服务
-
内容播报技能
-
小技能
-
平台能力扩展
-
SDK
-
预览版功能
- 全双工(Preview)
-
APP技能(Preview)
-
-
智能家居开放平台
- 品牌使用规范
-
开发者服务条款
语音合成标记语言(SSML:Speech Synthesis Markup Language),是提供语音合成的文本注释。
DuerOS会将技能返回的response消息里面的文本信息按照一定的规则转化成语音信息进行播放。转化后的语音有着相同特征,如语调、语速、停顿等都相同。但是在不同的场景下,可能需要不同的语音效果。例如在朗读儿童故事《白雪公主》时,公主说话的声音和小矮人说话的声音,在语调、语速、音色上都不同。这种情况下,开发者可以通过使用SSML标签得到不同的语音效果。
DuerOS支持基础标签和扩展标签两种。基础标签里的所有标签都是SSML标准标签,相当于SSML标签的子集。扩展标签指DuerOS使用标准SSML语言定制的标签。
基础标签包含speak
、audio
、say-as
、sub
、silence
等标签。
是SSML的根标签,所有的标签(基础标签和扩展标签)和文本都要包含在<speak></speak>
标签内。
在合成语音中引入外部的音频,音频以服务器可以访问的地址给出,目前仅支持wav格式的音频文件,同时要求文件大小不能超过3M,播放时间不能超过90s。如果音频文件不符合要求,可能存在播放失败的情况。
属性名称 | 描述 |
---|---|
src | 音频地址。仅支持百度云BOS的音频地址。 |
<speak>
播放周杰伦的听妈妈的话。<audio src="http://tis-audio.bj.bcebos.com/tingmamadehua.wav?authorization=bce-auth-v1%2F96d3a871ef2a41ae92abc41ae6acf932%2F2018-03-05T02%3A31%3A13Z%2F-1%2Fhost%2F792bff900a458fd52c07893f27957263a3b2719ee38e1a79212bd980ddd80156"></audio> 播放完了,好听吗?
</speak>
设置合成语音中数字、符号的读法,属性是type 。
属性名称 | 描述 |
---|---|
number: ordinal | 整数读法。 |
number: digits | 数字串读法。 |
number: score | 比分读法。 |
number: fraction | 分数读法。 |
telephone | 电话号码读法。 |
number |
|
- 一百二十三。
<say-as type="number:ordinal">123</say-as>
- 一二三。
<say-as type="number:digits">123</say-as>
- 十二比一百二十三。
<say-as type="number:score">12:123</say-as>
- 一百二十三分之十二。
<say-as type="number:fraction">12/123</say-as>
- 幺幺零。
<say-as type="telephone">110</say-as>
- 一百二十三。
<say-as type="number">123</say-as>
- 负一百二十三。
<say-as type="number">-123</say-as>
- 一百二十三点四五。
<say-as type="number">123.45</say-as>
- 负一百二十三点四五。
<say-as type="number">-123.45</say-as>
- 一百二十三比四十五。
<say-as type="number">123:45</say-as>
- 负一百二十三比四十五。
<say-as type="number">-123:45</say-as>
- 三乘以十的十一次幂。
<say-as type="number">3e+11</say-as>
- 三乘以十的负十一次幂。
<say-as type="number">3e-11</say-as>
- 一点二三乘以十的十一次幂。
<say-as type="number">1.23e+11</say-as>
- 一点二三乘以十的负十一次幂。
<say-as type="number">1.23e-11</say-as>
- 三乘以十的七次幂。
<say-as type="number">3E+07</say-as>
- 三乘以十的负七次幂。
<say-as type="number">3e-07</say-as>
- 一点二三乘以十的七次幂。
<say-as type="number">1.23e+07</say-as>
- 一点二三乘以十的负七次幂。
<say-as type="number">1.23e-07</say-as>
替换合成语音中部分词语的发音。
属性名称 | 描述 |
---|---|
alias | 替换词语后的发音。支持中文和英文,不支持数字。 |
用“胃溃疡”替换单词“GU”的发音,下面的语句读音是“报告单上显示你得了胃溃疡”。
<speak>
报告单上显示你得了<sub alias="胃溃疡">Gu</sub>。
</speak>
设置静音,在文本播报的开头或结尾增加静音片段。
属性名称 | 描述 |
---|---|
time | 设置静音时间,支持单位s、ms,最大10s,当设置静音时间超过10s时,统一按10s处理。 |
<speak>
走廊里传来脚步声,乱哄哄的教室突然安静下来。<silence time="5s"></silence>所有人都盯着教室门。
</speak>
设置合成语音的背景音。目前仅支持wav格式的音频文件,同时要求文件大小不能超过3M,播放时间不能超过90s。如果音频文件不符合要求,可能存在播放失败的情况。
属性名称 | 描述 |
---|---|
src | 音频地址,仅支持百度云BOS的音频地址。 |
repeat | 音频文件是否重复播放。 |
<speak>
<background src="http://tis-audio.bj.bcebos.com/lantern_festival.wav?authorization=bce-auth-v1%2F96d3a871ef2a41ae92abc41ae6acf932%2F2018-03-05T02%3A31%3A01Z%2F-1%2Fhost%2F40a27013eb5244b349301dc1775747ccf3254a1e65b29a6109f38a4479f4cc29" repeat="yes">欢迎使用百度语音合成服务</background>。
</speak>
设置合成语音中英文单词读音方式。
属性名称 | 描述 |
---|---|
interpret-as |
|
<speak>
美国宇航局简称读作<say-as interpret-as="as-word">NASA</say-as>还是<say-as interpret-as="as-character">NASA</say-as>。
</speak>
该标签仅对英文有效。
在使用SSML标签时,请注意以下限制条件。
- 标签audio不能包含background标签。
- 标签audio、background不支持自我嵌套。
- 标签sub、say-as不能包含其他任何标签,会引发解析错误。
一些SSML标签使用时需要链接文件、播放文件,如audio标签、background标签。目前SSML标签只支持对百度网址的文件访问,推荐使用百度云对象存储BOS存放文件。下面以audio标签为例,介绍如何在百度云BOS上存储文件及SSML标签如何引用文件。
1.登录百度云对象存储BOS。如果你没有百度账号,请先注册。
2.开通BOS服务。 具体操作步骤请参考开通BOS服务指南,BOS是付费项目,请根据需要选择付费类型。
3.点击新建Bucket。
4.填写新建的Bucket信息。
- 按要求填写Bucket名称。
- 选择所属区域。建议根据技能所在区就近存储。
- 根据技能需要选择合适的存储类型。目前支持标准存储、低频存储、冷存储三种类型,存储类型详细信息请参考存储类型的特点。
- 选择读写权限。SSML标签链接的文件不能选择私有权限,可以选择公共读或公共读写。
5.上传文件。选择需要上传的文件,点击上传。
6.获取文件链接地址。
7.在audio标签加入文件链接地址。
<speak>
播放清晨<audio src="http://ssml-example.bj.bcebos.com/qingchen.wav"></audio>,这是一首让你每次聆听都会有不同感动的音乐,早晨若少了纯真鸟语,这一天洒下的阳光都是寂寞的。
</speak>
了解更多百度云BOS存储内容,请参考百度云对象存储BOS指南。
说明:
- 开放平台提供了资源管理服务,该服务提供了1G的百度云BOS存储空间,供开发者存储技能中需要的资源。
- 开放平台提供了SSML音频转码服务,可以方便快捷的将音频文件转成WAV格式文件。