千家信息网

如何分析DuerOS中的SSML应用

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章将为大家详细讲解有关如何分析DuerOS中的SSML应用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在对话式AI系统中,语音交互是主要的输入
千家信息网最后更新 2026年11月04日如何分析DuerOS中的SSML应用

这篇文章将为大家详细讲解有关如何分析DuerOS中的SSML应用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

在对话式AI系统中,语音交互是主要的输入输出方式。对语音输出而言,有两种主要的方法,一种是事先制作好音频,然后根据用户的请求,播放音频;另一种是通过语音合成中的TTS技术,将文本转化为语音。在很多情况下,制作的音频往往要比语音合成的用户体验要好,因为人的声音中有更多的"色彩",语音语调中可以有更多的情绪。

但是,预先制作的工作量往往较大,而且由于预制的确定性,导致输出内容的动态性较弱。按需定制,动态输出正是TTS的强大之处。那么,如何让TTS的表达更加生动呢?在对话式AI系统DuerOS中, 内容的生动化表达是通过SSML 实现的。

什么是SSML

SSML是一种标准的,基于XML的标记语言,使用这些标识来命令语音合成器/服务把文本(输入)转化成可读的输出结果。简单来说,就是把带有一定文字标识格式的文本语言转化语音输出结果。

SSML设计的最初目的就是为了帮助开发人员提高合成结果的内容,通过格式化和标准化的标记方式来控制语音输出的各种属性,例如发音,音量等参数设置。因此,SSML设计的几个关键要素如下:

  • 一致性:提供可预测的语音输出控制,支持不同的语音合成服务部署

  • 兼容性:支持W3C的标准,包括但不仅限于VoiceXML,ACSS和 SMIL

  • 通用性:支持各种语音内容

  • 国际化:支持各种语言的语音输出

  • 自动化和可读性:支持自动化生成和手写文本格式,支持良好的可读性

  • 可部署性:能够支持目前现有的技术,尽量减少可选功能数量。

SSML 的工作原理

支持SSML的TTS系统(语音合成处理器)将负责将文档呈现为语音输出,并使用标记中包含的信息按照预期以音频形式呈现文档,主要原理如下:

1)XML解析:XML解析器用于从传入的文本文档中提取文档树和内容。此步骤中获得的结构、标记和属性会影响以下每个步骤。

2)结构分析:文档的结构会影响文档的阅读方式。例如,有一些常见的与段落和句子相关的口语模式。

3)文本规范化:所有书面语言都有特殊的结构,需要将书面形式转换为口语形式。文本规范化是执行此转换的合成处理器的自动过程。例如,当文档中出现"$200"时,可以将其称为"200美元"。到这一步结束时,要说的文本已经完全转换为token,token的具体构成细节是特定于语言的。标记通常用空格分隔,通常是单词。 一般地,SSML中的标记不能跨越其他的标记。

4)文本到音位的转换: 一旦语音合成处理器确定了要说的token集合,就必须为每个token派生发音。发音可以很方便地描述为音素序列,它是语言中用来区分一个词和另一个词的声音单位。每种语言都有一个特定的音位集。

5)韵律分析:韵律是语音输出的一组特征,包括音调(也称为语调或旋律)、时间(或节奏)、停顿、说话速度、对单词的强调和许多其他特征。韵律分析,对于使语言听起来自然,正确传达语音中的意义是非常重要的。

6)波形生成: 语音合成处理器利用音位和韵律信息生成音频波形。此处理步骤有许多方法,因此可能存在相当大的特定于处理器的变化。

SSML中的元素和属性示例

SSML是一种标记语言,所以必须具备一定的文件结构。所有的SSML文件都需要的Speak元素标签入口,更多关于SSML的语法格式,可以参考W3C官方文档,以下是关于SSML主要标签的说明。

SSML具有非常强大的功能支持,比较典型的功能就是录音文件播放功能。其具体的实现方式是通过一个

下面是W3C规范中给出的一个示例:


xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
xml:lang="en-US">


Please say your name after the tone.

DuerOS中的SSML

在DuerOS的技能开发中,DuerOS会将技能返回的response消息里面的文本信息按照一定的规则转化成语音信息进行播放(可以参考面向接口/协议?看DuerOS的技能开发,用JavaScript打造AI应用-从Nodejs SDK 看DuerOS的技能开发以及从Java SDK看DuerOS的技能开发)。转化后的语音有着与预期相同的特征,如语调、语速、停顿等都相同。

DuerOS支持基础标签和扩展标签两种。基础标签里的所有标签都是SSML标准标签,相当于SSML标签的子集。扩展标签指DuerOS使用标准SSML语言定制的标签。

基础标签

基础标签目前包括6种:

  • speak:根标签

  • audio:根据url合成已有音频

  • say-as:设置数字、符号等的读法

  • sub:替换目标单词

  • silence:设置静音,在文本播报的开头或者结尾增加静音片段,最大10s

  • phoneme:多音字注音

对于audio标签而言,音频以服务器可以访问的的地址给出,目前支持16K采样和24K采样,16bit,单声道,44字节头的wave格式文件。出于性能的约束,要求必须将相应的音频文件上传到百度云bos平台,使用bos提供的地址。单个请求最大限制3个并列的audio资源,单个audio资源大小限制为3M。

使用前需要前把音频转换为支持的格式,推荐使用ffmpeg。命令参考如下:

ffmpeg -i  -acodec pcm_s16le -b:a 16k -ar 16000 -ac 1 -flags bitexact 

audio标签支持单标签和双标签,如果是双标签的话,当音频无法访问时,将合成嵌套文本。

扩展标签

扩展标签目前包括4种:

  • background:设置背景声

  • say-as: 在属性interpret-as加入两个新值,仅对英文有效

  • poem:设置诗词,属性值 "wuyan"代表五言诗;"qiyan"代表七言诗;"songci"代表宋词

  • space: 在所包含文本的空格处生成停顿

其中background标签与audio 标签具有类似的性质,要求必须将相应的音频文件上传到百度云bos平台,使用bos提供的资源url地址。

使用约束

DuerOS 中的SSML实现是W3C规范的一个子集,是应用过程中有着如下的约束:

  • audio标签不支持嵌套audio/background(内层标签不生效);

  • background/标签不支持嵌套自身,内层标签不生效;

  • sub/say-as标签不支持嵌套其他任何标签,会引发解析错误,导致标签按字母朗读;

  • 非汉字文本内部出现标签影响语义转换,建议使用汉字形式请求;

  • &和<符号在XML中为非法字符,使用前需进行转义操作,分别为&和<,另外,>(>)、"(")、'(')也建议使用前进行转义

  • 请求文本总长度(不包含SSML标签)应少于1024字节

需要注意的是,文本的长度是按照GBK编码计算的,文本的内容是UTF8编码,在不使用SSML 的时候,文本长度可达4k。

关于如何分析DuerOS中的SSML应用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

标签 语音 文本 支持 音频 输出 语言 内容 标记 文件 文档 格式 处理 处理器 属性 技能 更多 标准 结构 开发 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技互联网产品 金融科技与互联网金融 亿账通互联网科技 互联网科技的未来发展 济南和联互联网科技有限公司 互联网时代科技改变生活 中科明德北京互联网科技 元气玛特互联网科技公司是外包吗 广州百诚互联网科技有限公司官网 福建互联网展示科技馆设计 广西科技产业互联网是什么 艺电能源互联网科技有限公司招聘 上海万顺科技互联网有限公司招聘 张家口科技产业互联网平台 唐山双旺合互联网科技产业园 互联网科技的前景 第三届互联网大会安防黑科技 亚光科技低轨卫星互联网 安徽九吞吴互联网科技有限公司 互联网科技创业计划的风险分析 江苏根荣互联网科技 九亚互联网科技 睿民互联网科技 金融科技和互联网金融 群盈汇互联网科技有限公司 伊宁互联网科技做什么的 滨湖区互联网智能科技产品有哪些 国产互联网科技公司 陕西九四连强互联网科技有限公司 数字科技和互联网金融哪个好
0