文本转语音通过语音合成标记语言(SSML)改进合成 知识点详解(1)

本文详述如何使用SSML(语音合成标记语言)来调整文本转语音的各个方面,包括选择语音、切换语言、调整讲话风格、模拟不同角色、插入中断和暂停、添加音素、创建自定义词典、调整音律以及使用Bookmarks。这些技巧可用于优化语音合成输出,使其更自然、更具表现力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 创建SSML文档

speak是根元素,speak元素包含重要信息,例如版本,语言和标记词汇定义。
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="string"></speak>
属性说明:
version:指示用于解释文档标记的 SSML 规范的版本。 当前版本为 1.0。
xml:lang: 指定根文档语言。
xmlns:指定文档的url,用于定义SSML文档的标记词汇(元素类型和属性名称)

2. 选择文本转语言所用的语音

voice元素用于指定文本转语音所用的语音。

实例:

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-ChristopherNeural">
        This is the text that is spoken.
    </voice>
</speak>
voice标签中name属性标识用于文本转语音时输出的语音

3. 使用多个语音

在speak元素中,可以为文本转语音指定多种语音。这些语音可采用多种语言,
必须将文本包装在voice元素中。

实例:

 	<voice name="en-US-JennyNeural">
        Good morning!
    </voice>
    <voice name="en-US-ChristopherNeural">
        Good morning to you too Jenny!
    </voice>
如上代码,speak标签中的两个voice标签name属性标记了语音的类型

4. 调整讲话风格

默认情况下,对于神经语音,文本转语音服务使用中性讲话风格。可以调整
简化风格来表达不同的情感(例如愉悦、同情和冷静生气等),或者使用 
**mstts:express-as** 元素针对不同场景(例如自定义服务、新闻广播和语音助手)
优化语音。

目前以下神经语音支持讲话风格调整:

  • en-US-AriaNeural

  • en-US-JennyNeural

  • en-US-GuyNeura

  • en-US-SaraNeural

  • ja-JP-NanamiNeural

  • pt-BR-FranciscaNeural

  • zh-cn-XiaoxiaoNeural

  • zh-cn-YunyangNeural

  • zh-cn-YunyeNeural

  • zh-cn-YunxiNeural

  • zh-cn-XiaohanNeural

  • zh-cn-XiaomoNeural

  • zh-cn-XiaoxuanNeural

  • zh-cn-XiaoruiNeural

  • zh-cn-XiaoshuangNeural

     1.若想进一步调整讲话强度,可以使用styledegree 指定更强或更温柔的风格。(目前中文神经语音支持说话风格调整)
     2.除了调整说话风格和风格程度,还可调整 role 参数,使语音模拟不同的年龄和性别。 例如,男性语音可以提高音调和改变			
     语调来模拟女性语音,但语音名称不会更改。 目前,这些中文(普通话,简体)神经语音支持角色调整:
     zh-cn-XiaomoNeural,zh-cn-XiaoxuanNeural
    
<mstts:express-as styledegree="1" role="角色" style="讲话风格"></mstts:express-as>
如上代码所示:
1.属性style指定讲话风格
讲话风格参考:[讲话风格](https://docs.azure.cn/zh-cn/cognitive-services/speech-service/speech-synthesis-markup?tabs=csharp#adjust-speaking-styles)
2.属性styledegree指定说话强度在0.01-2(默认值为1)
3.属性role指定讲话角色扮演。 语音将充当不同的年龄和性别,但语音名称不会更改。
	(目前role仅支持zh-cn-XiaomoNeural 和 zh-cn-XiaoxuanNeural)
	角色定义:
	role="Girl"	该语音模拟女孩。
	role="Boy"	该语音模拟男孩。
	role="YoungAdultFemale"	该语音模拟年轻成年女性。
	role="YoungAdultMale"	该语音模拟年轻成年男性。
	role="OlderAdultFemale"	该语音模拟年长的成年女性。
	role="OlderAdultMale"	该语音模拟年长的成年男性。
	role="SeniorFemale"	该语音模拟老年女性。
	role="SeniorMale"	该语音模拟老年男性。

实例:

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="zh-cn">
    <voice name="zh-cn-XiaomoNeural">
        	女儿看见父亲走了进来,问道:
        <mstts:express-as role="YoungAdultFemale" style="calm"	styledegree="1.5">
            “您来的挺快的,怎么过来的?”
        </mstts:express-as>
        	父亲放下手提包,说:
        <mstts:express-as role="OlderAdultMale" style="calm">
          	“刚打车过来的,路上还挺顺畅。”
        </mstts:express-as>
    </voice>
</speak>
如上代码所示:需要在根元素中引入xmlns:mstts才能使用<mstts:express-as>标签在<voice>标签中两个<mstts:express-as>分别定义了此对话的模仿	
角色(role)和讲话风格(style),还有讲话语音强度(styledegree),此对话有三个角色,第一个是讲解(不在mstts标签中的),第二个是女儿
(role="YoungAdultFemale"),第三个是父亲(role="OlderAdultMale"),通过设置role属性可以用一个语音zh-cn-XiaomoNeural讲出三种不同的角色
语调。

5. 调整讲话语言

可以调整神经语音的讲话语言。 使用 <lang xml:lang> 元素,使一种语音能够流利地讲
不同的语言(例如英语、西班牙语和中文)。目前,一下神经语音支持讲话语言调整:
en-US-JennyMultilingualNeural。如果不支持某语言,则服务不会返回音频流。

当前, 元素与 prosody 和 break 元素不兼容,你无法调整此元素中的暂停和韵律,如音调、调型、速率、持续时间和音量。

查看en-US-JennyMultilingualNeural此神经语音:支持的讲话语言

实例:

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US">
    <voice name="en-US-JennyMultilingualNeural"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

S 占占

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值