千家信息网

如何分析DuerOS中的SSML应用

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章将为大家详细讲解有关如何分析DuerOS中的SSML应用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在对话式AI系统中,语音交互是主要的输入
千家信息网最后更新 2025年12月03日如何分析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安全错误 数据库的锁怎样保障安全 邯郸交友软件开发服务费 rac启动数据库 服务器可靠性与稳定性的区别 单片机使用什么软件开发语言 腾讯服务器如何下载网页的文档 网络安全法规定国家提倡什么 linux服务器镜像文件 数据库中的数据是如何存放的 加强青少年网络安全的建议 网络安全证书怎么处理 esb服务器 阿里云服务器租用合同 路由器怎么查看虚拟服务器 工业数据库软件有哪些 蓝天互联网科技有限公司 数据库添加表中的数据 最强的服务器提供商 中级职称评审论文有数据库要求么 关系数据库中的主键是 浙江态势推演系统软件开发 ftp上传数据库出现错误 白帽子网络技术联系电话 浙江智慧医养软件开发系统 数据库清除单据语句 国家网络安全宣传周汇报 hana 数据库为什么好 办理网络安全证需要多少钱 上海静安网络技术有限公司 服务器的目录安全性 郑州天健湖网络安全中心位置
0