文章目录
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"