支持的 SSML 标签 - Amazon Polly
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

支持的 SSML 标签

亚马逊 Polly 支持以下 SSML 标签:

操作

SSML 标签

神经语音的可用性

添加停顿

<break>

完全可用

强调词语

<emphasis>

不可用

为特定词语指定另一种语言

<lang>

完全可用

在您的文本中插入自定义标签

<mark>

完全可用

在段落之间添加停顿

<p>

完全可用

使用语音发音

<phoneme>

完全可用

控制音量、语速和音高

<prosody>

部分可用

为合成语音设置最长持续时间

<prosody amazon:max-duration>

不可用

在句子之间添加停顿

<s>

完全可用

控制如何朗读特殊的词语类型

<say-as>

部分可用

标识 SSML 增强文本

<speak>

完全可用

首字母缩略词和缩写的发音

<sub>

完全可用

指定词性以改善发音

<w>

完全可用

添加呼吸音

<amazon:auto-breaths>

不可用

播音员风格

<amazon:domain name="news">

仅限选定的神经语音

添加动态范围压缩

<amazon:effect name="drc">

完全可用

柔和地朗读

<amazon:effect phonation="soft">

不可用

控制音质

<亚马逊:效果vocal-tract-length>

不可用

轻读

<amazon: effect name="whispered">

不可用

如果您在神经或标准格式中使用不受支持的 SSML 标签,则会出现错误。

标识 SSML 增强文本

<speak>

这个<speak>标签是所有亚马逊 Polly SSML 文本的根元素。所有 SSML 增强文本均位于 <speak> 标签之内。

<speak>Mary had a little lamb.</speak>

神经和标准 TTS 格式都支持此标签。

添加停顿

<break>

神经和标准 TTS 格式都支持此标签。

要向文本添加停顿,请使用 <break> 标签。您可以根据强度设置停顿(等同于逗号、句子或段落后的停顿),也可以将停顿设置为特定的时间长度(以秒为单位或以毫秒为单位)。如果您没有指定属性来确定暂停时长,Amazon Polly 将使用默认值,即<break strength="medium"/>,它在逗号后添加了暂停的长度。

strength 属性值:

  • none:无停顿。使用 none 去除正常情况下会出现的停顿,例如句号之后的停顿。

  • x-weak:与 none 长度相同,无停顿。

  • weak:设置与逗号后的停顿相同的持续时间的停顿。

  • medium:与 weak 长度相同。

  • strong:设置与句子后的停顿相同的持续时间的停顿。

  • x-strong:设置与段落后的停顿相同的持续时间的停顿。

time 属性值:

  • [number]s:停顿的持续时长,以秒为单位。持续时长上限为 10s

  • [number]ms:停顿的持续时长,以毫秒为单位。持续时长上限为 10000ms

例如:

<speak> Mary had a little lamb <break time="3s"/>Whose fleece was white as snow. </speak>

如果未将属性用于 break 标签,则结果将因文本而异:

  • 如果 break 标签旁边没有其他标点,则将创建 <break strength="medium"/>(逗号时长停顿)。

  • 如果标签位于逗号旁边,则将标签升级到 <break strength="strong"/>(句子时长停顿)。

  • 如果标签位于句号旁边,则将标签升级到 <break strength="x-strong"/>(段落时长停顿)。

强调词语

<emphasis>

只有标准 TTS 格式支持此标记。

要强调词语,请使用 <emphasis> 标签。强调词语会更改语速和音量。更多强调会让 Amazon Polly 说出文字的声音越来越慢。不需强调的内容会读得更轻、更快。请使用 level 属性指定强调程度。

level 属性值:

  • Strong:提高音量、降低语速,朗读更大声、更缓慢。

  • Moderate:提高音量、降低语速,但程度弱于 strongModerate 为默认值。

  • Reduced降低音量,加快语速。朗读更轻柔、更快。

注意

语音的正常语速和音量在 moderatereduced 级别之间。

例如:

<speak> I already told you I <emphasis level="strong">really like</emphasis> that person. </speak>

为特定词语指定另一种语言

<lang>

神经和标准 TTS 格式都支持此标签。

利用 <lang> 标签将特定的词语、短语或句子指定为另一种语言。外语词汇和短语如果放在 <lang> 标签对之间一般会朗读得更好。请使用 xml:lang 属性指定语言。有关可用语言的完整列表,请参阅 亚马逊 Polly 支持的语言

如果您不应用 <lang> 标签,输入文本中的所有词语将使用 voice-id 中指定的语音的语言朗读。如果您应用 <lang> 标签,将使用这种语言朗读词语。

例如,如果voice-id是乔安娜(会说美国英语),亚马逊 Polly 用没有法语口音的 Joanna 声音说以下话:

<speak> Je ne parle pas français. </speak>

如果你用 Joanna 的声音<lang>标签,亚马逊 Polly 用带有美国口音的法语用乔安娜的声音说出这句话:

<speak> <lang xml:lang="fr-FR">Je ne parle pas français.</lang>. </speak>

因为 Joanna 的母语不是法语,发音会以她的母语为基础,也就是美国英语。例如,虽然完美的法语发音在 français 这个词中有一个小舌颤音 /R/,但 Joanna 的美国英语语音将这个音素发为相应的 /r/。

如果你使用voice-id关于会说意大利语的乔治有以下文字,亚马逊 Polly 用乔治的声音说出这句话,发音是意大利语:

<speak> Mi piace Bruce Springsteen. </speak>

如果你在以下内容中使用相同的声音<lang>标签,亚马逊 Polly 用带意大利口音的英语发音 Bruce Springsteen:

<speak> Mi piace <lang xml:lang="en-US">Bruce Springsteen.</lang> </speak>

此标签也可以用作可选标签的替代品DefaultLangCode合成语音时的选项。但是,这样做需要您使用 SSML 设置文本格式。

在您的文本中插入自定义标签

<mark>

神经和标准 TTS 格式都支持此标签。

要在文本中添加自定义标签,请使用<mark>标签。Amazon Polly 不对标签执行任何操作,但会返回标签在 SSML 元数据中的位置。此标签可以是您希望注明的任何内容,但需要具备以下格式:

<mark name="tag_name"/>

例如,假设标签名称是 "animal",输入文本是:

<speak> Mary had a little <mark name="animal"/>lamb. </speak>

亚马逊 Polly 可能会返回以下 SSML 元数据:

{"time":767,"type":"ssml","start":25,"end":46,"value":"animal"}

在段落之间添加停顿

<p>

神经和标准 TTS 格式都支持此标签。

要在文本段落之间添加停顿时间,请使用 <p> 标签。使用此标签,停顿时长将长于母语者在逗号或句子结束后停顿的时长。在段落两端使用 <p> 标签:

<speak> <p>This is the first paragraph. There should be a pause after this text is spoken.</p> <p>This is the second paragraph.</p> </speak>

这与使用 <break strength="x-strong"/> 指定停顿的效果相同。

使用语音发音

<phoneme>

神经和标准 TTS 格式都支持此标签。

<phoneme>要让 Amazon Polly 对特定文本使用语音发音,请使用标签。

<phoneme> 标签需要具有两个属性。它们指示 Amazon Polly 使用的音标和更正发音的音标符号:

  • alphabet

    • ipa— 指明将使用国际音标 (IPA)。

    • x-sampa— 指明将使用拓展音标字母评估法 (X-SAMPA)。

  • ph

随着<phoneme>标签,亚马逊 Polly 使用指定的发音ph属性而不是默认情况下与所选声音使用的语言相关的标准发音。

例如 "pecan" 这个词可以发两个音。在以下示例中,“pecan” 在每行中被分配了不同的发音。亚马逊 Polly 按照中规定的方式发音山核桃ph属性,而不是使用默认发音。

国际音标 (IPA)

<speak> You say, <phoneme alphabet="ipa" ph="pɪˈkɑːn">pecan</phoneme>. I say, <phoneme alphabet="ipa" ph="ˈpi.kæn">pecan</phoneme>. </speak>

拓展音标字母评估法 (X-SAMPA)

<speak> You say, <phoneme alphabet='x-sampa' ph='pI"kA:n'>pecan</phoneme>. I say, <phoneme alphabet='x-sampa' ph='"pi.k{n'>pecan</phoneme>. </speak>

汉语普通话使用拼音发音。

拼音

<speak> 你说 <phoneme alphabet="x-amazon-pinyin" ph="bo2">薄</phoneme>。 我说 <phoneme alphabet="x-amazon-pinyin" ph="bao2">薄</phoneme>。 </speak>

日语使用读音假名和发音假名。

Yomigana

<speak> 名前は<phoneme alphabet="x-amazon-yomigana" ph="ひろかず">浩一</phoneme>です。 名前は<phoneme alphabet="x-amazon-yomigana" ph="ヒロカズ">浩一</phoneme>です。 名前は<phoneme alphabet="x-amazon-yomigana" ph="Hirokazu">浩一</phoneme>です。 </speak>

发音假名

<speak> 名前は<phoneme alphabet="x-amazon-pron-kana" ph="ヒロカ'ズ">浩一</phoneme>です。 </speak>

控制音量、语速和音高

<prosody>

标准 TTS 语音完全支持 Prosody 标签属性。神经语音支持volumerate属性,但不支持pitch属性。

要控制所选语音的音量、语速或音高,请使用 prosody 标签。

音量、语速和音高取决于所选的具体语音。不同语言的语音各有不同,说同一语言的不同人之间也各不相同。因此,虽然所有语言的属性都是类似的,但各种语言之间的差异很明显,没有适用于所有语言的值。

prosody 标签有三个属性,每个属性均有若干可用的设置值。每个属性使用相同的语法:

<prosody attribute="value"></prosody>

  • volume

    • default:将当前语音的音量重置为默认级别。

    • silentx-softsoftmediumloudx-loud:将当前语音的音量设置为预定义值。

    • +ndB-ndB:相对于当前音量水平调整音量。值 +0dB 表示没有变化,+6dB 表示大约为当前音量的两倍,-6dB 表示大约为当前音量的一半。

    例如,可通过以下方式设置段落的音量:

    <speak> Sometimes it can be useful to <prosody volume="loud">increase the volume for a specific speech.</prosody> </speak>

    或者,您也可以通过以下方式设置它:

    <speak> And sometimes a lower volume <prosody volume="-6dB">is a more effective way of interacting with your audience.</prosody> </speak>
  • rate

    • x-slowslowmediumfastx-fast。 将所选语音的音高设置为预定义值。

    • n%:语速的非负值百分比变更。例如,值为 100% 意味着语速不变,值为 200% 意味着语速是默认值的两倍,值为 50% 意味着语速是默认值的一半。此值的范围在 20-200% 之间。

    例如,可通过以下方式设置段落的语速:

    <speak> For dramatic purposes, you might wish to <prosody rate="slow">slow up the speaking rate of your text.</prosody> </speak>

    或者,您也可以通过以下方式设置它:

    <speak> Although in some cases, it might help your audience to <prosody rate="85%">slow the speaking rate slightly to aid in comprehension.</prosody> </speak>
  • pitch

    • default:将当前语音的音高重置为默认级别。

    • x-lowlowmediumhighx-high:将当前语音的音高设置为预定义音高。

    • +n%-n%:按相对百分比调节音高。例如,值 +0% 表示没有基准音高更改,+5% 提供了更高一点的基准音高,-5% 会产生更低一点的基准音高。

    例如,可通过以下方式设置段落的音高:

    <speak> Do you like sythesized speech <prosody pitch="high">with a pitch that is higher than normal?</prosody> </speak>

    或者,您也可以通过以下方式设置它:

    <speak> Or do you prefer your speech <prosody pitch="-10%">with a somewhat lower pitch?</prosody> </speak>

<prosody> 标签必须至少包含一个属性,但同一标签中可包含更多属性。

<speak> Each morning when I wake up, <prosody volume="loud" rate="x-slow">I speak quite slowly and deliberately until I have my coffee.</prosody> </speak>

还可使用嵌套标签进行组合,例如:

<speak> <prosody rate="85%">Sometimes combining attributes <prosody pitch="-10%">can change the impression your audience has of a voice</prosody> as well.</prosody> </speak>

为合成语音设置最长持续时间

<prosody amazon:max-duration>

目前只有标准 TTS 格式支持此标签。

要控制您希望语音在合成后花费多长时间,请使用具有 <prosody> 属性的 amazon:max-duration 标签。

合成的语音的持续时间会因您选择的语音而略有不同。这样很难使合成的语音与需要精确计时的视觉效果或其他活动匹配。对于翻译应用程序来说,此问题被扩大,因为使用不同语言说特定短语所需的时间可能大不相同。

<prosody amazon:max-duration> 标签使合成的语音与所需的时间量(持续时间)匹配。

此标签使用以下语法:

<prosody amazon:max-duration="time duration">

使用 <prosody amazon:max-duration> 标签,您可以指定持续时间,以秒或毫秒为单位:

  • ns:最长持续时间,以秒为单位

  • nms:最长持续时间,以毫秒为单位

例如,以下说出的文本的最长持续时间为 2 秒:

<speak> <prosody amazon:max-duration="2s"> Human speech is a powerful way to communicate. </prosody> </speak>

放置在标签中的文本没有超过指定的持续时间。如果选定的语音或语言通常需要超过该持续时间,则 Amazon Polly 会加快语音速度,使其适合指定的时长。

如果指定的持续时间长于以正常速率读取文本所需的时间,则 Amazon Polly 会正常读取语音。它不会减慢语音或添加静默,因此生成的音频比请求的短。

注意

亚马逊 Polly 将速度提高不超过正常速度的 5 倍。如果文本的说出速度超过此值,则通常不明智。如果语音在加速到最大值后仍无法符合指定的持续时间,则音频将加速,但持续时间将长于指定的持续时间。

您可以在 <prosody amazon:max-duration> 标签中包括单个句子或多个句子,并且可以在文本中使用多个 <prosody amazon:max-duration> 标签。

例如:

<speak> <prosody amazon:max-duration="2400ms"> Human speech is a powerful way to communicate. </prosody> <break strength="strong"/> <prosody amazon:max-duration="5100ms"> Even a simple ‘Hello’ can convey a lot of information depending on the pitch, intonation, and tempo. </prosody> <break strength="strong"/> <prosody amazon:max-duration="8900ms"> We naturally understand this information, which is why speech is ideal for creating applications where a screen isn’t practical or possible, or simply isn’t convenient. </prosody> </speak>

使用<prosody amazon:max-duration>当 Amazon Polly 返回合成语音时,标签可能会增加延迟。延迟程度取决于段落及其长度。我们建议使用由较短文本段落组成的文本。

限制

在如何使用 <prosody amazon:max-duration> 标签及其如何与其他 SSML 标签结合使用方面存在限制:

  • <prosody amazon:max-duration> 标签中的文本不能超过 1500 个字符。

  • 不能嵌套 <prosody amazon:max-duration> 标签。如果你放一个<prosody amazon:max-duration>在另一个标签里面,亚马逊 Polly 会忽略内部标签。

    例如,在下面,将忽略 <prosody amazon:max-duration="5s"> 标签:

    <speak> <prosody amazon:max-duration="16s"> Human speech is a powerful way to communicate. <prosody amazon:max-duration="5s"> Even a simple ‘Hello’ can convey a lot of information depending on the pitch, intonation, and tempo. </prosody> We naturally understand this information, which is why speech is ideal for creating applications where a screen isn’t practical or possible, or simply isn’t convenient. </prosody> </speak>
  • 不能在 <prosody> 标签中使用具有 rate 属性的 <prosody amazon:max-duration> 标签。这是因为二者都会影响文本的朗读速度。

    在以下示例中,亚马逊 Polly 忽略了<prosody rate="2">标签:

    <speak> <prosody amazon:max-duration="7500ms"> Human speech is a powerful way to communicate. <prosody rate="2"> Even a simple ‘Hello’ can convey a lot of information depending on the pitch, intonation, and tempo. </prosody> </prosody> </speak>

停顿和 max-duration

当使用 max-duration 标签时,您仍可以在文本中插入停顿。但是,在计算最长语音持续时间时,Amazon Polly 会将暂停时长包括在内。此外,Amazon Polly 保留了在段落中放置逗号和句点的短暂停顿时间,也包括在最长持续时间内。

例如,在下面的数据块中,在 8 秒语音中出现由逗号和句号引起的 600 毫秒中断:

<speak> <prosody amazon:max-duration="8s"> Human speech is a powerful way to communicate. <break time="600ms"/> Even a simple ‘Hello’ can convey a lot of information depending on the pitch, intonation, and tempo. </prosody> </speak>

在句子之间添加停顿

<s>

神经和标准 TTS 格式都支持此标签。

要在行与行或句子与句子之间添加停顿,请使用 <s> 标签。使用此标签的效果与以下情况效果相同:

  • 用句点结束一个句子

  • 利用 <break strength="strong"/> 指定停顿

<break> 标签不同,<s> 标签要放在句子两端。对于按行朗读的文本这种语音合成方法很有用,例如诗歌。

在以下示例中,<s> 标签在第一句和第二句之后加入一个短的停顿。最后一个句子没有 <s> 标签,但它后面也有一个短停顿,因为它以句点结尾。

<speak> <s>Mary had a little lamb</s> <s>Whose fleece was white as snow</s> And everywhere that Mary went, the lamb was sure to go. </speak>

控制如何朗读特殊的词语类型

<say-as>

除了“字符”或“拼写”功能外,此标签由神经和标准 TTS 格式提供支持。如果 Amazon Polly 在运行时遇到此 SSML 代码,则将使用相关的标准语音合成受影响的句子。但请注意,这句话仍然会按照使用神经语音的情况收费。

使用<say-as>用 the 标记interpret-as属性告诉亚马逊 Polly 如何说出某些字符、单词和数字。这使您能够提供额外的上下文,以消除有关 Amazon Polly 应如何呈现文本的任何歧义。

say-as 标签使用一个属性 <interpret-as>,该属性使用若干可能可用的值。每个属性使用相同的语法:

<say-as interpret-as="value">[text to be interpreted]</say-as>

interpret-as 具有以下可用值:

  • characters要么spell-out: 拼出文本的每个字母,如a-b-c。

    注意

    目前,使用神经语音时不支持此选项。如果 Amazon Polly 在运行时遇到此 SSML 代码,则将使用相关的标准语音合成受影响的句子。但请注意,这句话仍然会按照使用神经语音的情况收费。

  • cardinalnumber:将数字文本解释为基数,如 1,234。

  • ordinal:将数字文本解释为序数,如第 1,234。

  • digits:单独拼读每个数字,如 1-2-3-4。

  • fraction:将数字文本解释为分数。这可用于真分数(如 3/20)和带分数(如 2 ½)。有关更多信息,请参阅下文。

  • unit:将数字文本解释为度量单位。该值应是后跟一个单位的数字或分数,且中间没有空格(如 1/2inch),或者只后跟一个单位(如 1meter)。

  • date:将文本解释为日期。必须使用格式属性指定日期格式。有关更多信息,请参阅下文。

  • time:将数字文本解释为由分和秒组成的持续时间,例如 1'21"

  • address:将文本解释为街道地址的一部分。

  • expletive:用哔哔声盖过标签中包含的内容。

  • telephone:将数字文本解释为 7 位数或 10 位数的电话号码,例如 2025551212。您还可以使用此值处理电话分机,例如 2025551212x345。有关更多信息,请参阅下文。

    注意

    目前 telephone 选项仅适用于部分语言。但是,它适用于讲英语变体(en-AU、en-GB、en-IN、en-US 和 en-GB-WLS)、西班牙语变体(es-ES、es-MX 和 es-US)、法语变体(fr-FR 和 fr-CA)和葡萄牙语变体(pt-BR 和 pt-PT)以及德语 (de-DE)、意大利语 (it-IT)、日语 (ja-JP) 和俄语 (ru-RU) 的人员。另请注意,在某些情况下,阿拉伯语 (arb) 等语言会自动处理设置为电话号码的号码,因此实际上并没有实施 telephone SSML 标签。

分数

亚马逊 Polly 会解释其中的值say-as有以下内容的标签interpret-as="fraction"属性为常用分数。分数采用以下语法形式:

  • 分数

    语法:基数/基数,如 2/9。

    例如:<say-as interpret-as="fraction">2/9</say-as> 的发音为 "two ninths"。

  • 非负带分数

    语法:基数+基数/基数,例如 3+1/2。

    例如,<say-as interpret-as="fraction">3+1/2</say-as> 的发音为"three and a half"。

    注意

    一定有一个+在 “3” 和 “1/2” 之间。如果没有,亚马逊 Polly 不支持混合数字+,例如 “3 1/2”。

日期

如果将 interpret-as 设为 date,您还需要指明日期格式。

它使用以下语法:

<say-as interpret-as="date" format="format">[date]</say-as>

例如:

<speak> I was born on <say-as interpret-as="date" format="mdy">12-31-1900</say-as>. </speak>

下列格式可以与 date 属性一起使用。

  • mdy: Month-day-year。

  • dmy: Day-month-year。

  • ymd: 是ear-month-day。

  • md:月-日。

  • dm:日-月。

  • ym:年-月。

  • my:月-年。

  • d: 天。

  • m: 月。

  • y: 年份。

  • yyyymmdd: 是ear-month-day。如果您使用这种格式,则可以使用问号让 Amazon Polly 跳过部分日期。

    例如,亚马逊 Polly 将以下内容呈现为 “9 月 22 日”:

    <say-as interpret-as="date">????0922</say-as>

    不需要 Format

电话

Amazon Polly 会尝试根据文本的格式正确解释您提供的文本,即使没有<say-as>标签。例如,如果您的文本包含 “202-555-1212”,则 Amazon Polly 会将其解释为 10 位数的电话号码,并分别说出每个数字,每个短划线会短暂停一下。在这种情况下,您不需要使用 <say-as interpret-as="telephone">。但是,如果您提供文本 “2025551212” 并希望亚马逊 Polly 将其作为电话号码说出来,则需要指定<say-as interpret-as="telephone">

解释每种元素的逻辑是语言特定的。例如,在美国英语和英国英语中,电话号码的发音方法不同 (在英国英语中,同一数字会组成一组,例如“两个五”或“三个四”)。要了解差别,请使用美国语音和英国语音测试以下示例:

<speak> Richard's number is <say-as interpret-as="telephone">2122241555</say-as> </speak>

首字母缩略词和缩写的发音

<sub>

神经和标准 TTS 格式都支持此标签。

使用具有 <sub> 属性的 alias 标签,用另一个词(或发音)替换选定文本,例如首字母缩略词或缩写。

使用以下语法:

<sub alias="new word">abbreviation</sub>

在以下示例中,将用“Mercury”替换元素的化学符号,以使音频内容更加清晰。

<speak> My favorite chemical element is <sub alias="Mercury">Hg</sub>, because it looks so shiny. </speak>

指定词性以改善发音

<w>

神经和标准 TTS 格式都支持此标签。

可使用 <w> 标签来自定义词语的发音,方式是指定词语的词性或替代含义。可使用 role 属性执行此操作。

此标签使用以下语法:

<w role="attribute">text</w>

下列值可以用于 role 属性:

要指定词性,请执行以下操作:

  • amazon:VB:将单词解释为动词 (一般现在时)。

  • amazon:VBD: 将单词解释为过去时动词。

  • amazon:DT: 将单词解释为限定词。

  • amazon:IN: 将单词解释为介词。

  • amazon:JJ: 将单词解释为形容词。

  • amazon:NN: 将单词解释为名词。

例如,美国英语对单词“read”的发音会根据标签的不同有所变化,具体取决于词性:

<speak> The word <say-as interpret-as="characters">read</say-as> may be interpreted as either the present simple form <w role="amazon:VB">read</w>, or the past participle form <w role="amazon:VBD">read</w>. </speak>

要指定具体含义,请执行以下操作:

  • amazon:DEFAULT: 使用该词的默认含义。

  • amazon:SENSE_1:在现在时中使用单词的非默认时态。例如,名词“bass”的发音不同,具体取决于其含义。默认含义是音域的最低部分。替代含义是一种淡水鱼,也称作“bass”,但发音不同。使用 <w role="amazon:SENSE_1">bass</w> 为音频文本呈现非默认发音 (淡水鱼)。

如果你综合以下内容,就能听出发音和含义的这种差异:

<speak> Depending on your meaning, the word <say-as interpret-as="characters">bass</say-as> may be interpreted as either a musical element: bass, or as its alternative meaning, a freshwater fish <w role="amazon:SENSE_1">bass</w>. </speak>
注意

一些语言可能有支持的词性的其他选择。

添加呼吸音

<amazon:breath> 和 <amazon:auto-breaths>

只有标准 TTS 格式支持此标记。

自然声音语音包括正确说出的字词和呼吸音。通过向合成语音添加呼吸音,可以使合成语音听起来更自然。<amazon:breath><amazon:auto-breaths> 标签可提供呼吸。您有以下选项:

  • 手动模式:您可以在文本中设置呼吸音的位置、长度和音量

  • 自动模式:亚马逊 Polly 会自动在语音输出中插入呼吸音

  • 混合模式:你和亚马逊 Polly 都会添加呼吸音

手动模式

在手动模式下,可将 <amazon:breath/> 标签放在要插入呼吸的输入文本中。您可以分别使用 durationvolume 属性自定义呼吸的长度和音量:

  • duration:控制呼吸的长度。有效值为: default, x-short, short, medium, long, x-long。默认值为 medium

  • volume:控制呼吸音有多大声。有效值为: default, x-soft, soft, medium, loud, x-loud。默认值为 medium

注意

每个属性值的确切长度和音量取决于所使用的特定 Amazon Polly 语音。

要使用默认值设置呼吸音,请不带属性使用 <amazon:breath/>

例如,要使用属性将呼吸的持续时间和音量设置为中等,可以按如下方式设置属性:

<speak> Sometimes you want to insert only <amazon:breath duration="medium" volume="x-loud"/>a single breath. </speak>

要使用默认值,只需使用标签:

<speak> Sometimes you need <amazon:breath/>to insert one or more average breaths <amazon:breath/> so that the text sounds correct. </speak>

您可以在一个段落内添加个别呼吸音,如下所示:

<speak> <amazon:breath duration="long" volume="x-loud"/> <prosody rate="120%"> <prosody volume="loud"> Wow! <amazon:breath duration="long" volume="loud"/> </prosody> That was quite fast. <amazon:breath duration="medium" volume="x-loud"/> I almost beat my personal best time on this track. </prosody> </speak>
自动模式

在自动模式下,您可以使用<amazon:auto-breaths>标签告诉亚马逊 Polly 以适当的间隔自动产生呼吸噪音。您可以设置间隔的频率、音量和持续时间。将 </amazon:auto-breaths> 标签放在要应用自动呼吸的文本的开头,然后将结束标签放在文本末尾。

注意

与手动模式标签 <amazon:breath/> 不同,<amazon:auto-breaths> 标签必须具有结束标签 (</amazon:auto-breaths>)。

您可以将以下可选属性与 <amazon:auto-breaths> 标签结合使用:

  • volume:控制呼吸音有多大声。有效值为: default, x-soft, soft, medium, loud, x-loud。默认值为 medium

  • frequency:控制文本中出现呼吸音的频率。有效值为: default, x-low, low, medium, high, x-high。默认值为 medium

  • duration:控制呼吸的长度。有效值为: default, x-short, short, medium, long, x-long。默认值为 medium

默认情况下,呼吸音的频率取决于输入文本。但是,呼吸音通常发生在逗号和句点之后。

以下示例显示如何使用 <amazon:auto-breaths> 标签。要决定为您的内容使用哪些选项,请将适用的示例复制到 Amazon Polly 控制台并听取差异。

  • 不带可选参数使用自动化模式。

    <speak> <amazon:auto-breaths>Amazon Polly is a service that turns text into lifelike speech, allowing you to create applications that talk and build entirely new categories of speech- enabled products. Amazon Polly is a text-to-speech service that uses advanced deep learning technologies to synthesize speech that sounds like a human voice. With dozens of lifelike voices across a variety of languages, you can select the ideal voice and build speech- enabled applications that work in many different countries.</amazon:auto-breaths> </speak>
  • 将自动化模式与音量控制结合使用。未指定的参数 (durationfrequency) 设置为默认值 (medium)。

    <speak> <amazon:auto-breaths volume="x-soft">Amazon Polly is a service that turns text into lifelike speech, allowing you to create applications that talk and build entirely new categories of speech-enabled products. Amazon Polly is a text-to-speech service, that uses advanced deep learning technologies to synthesize speech that sounds like a human voice. With dozens of lifelike voices across a variety of languages, you can select the ideal voice and build speech- enabled applications that work in many different countries.</amazon:auto-breaths> </speak>
  • 将自动化模式与频率控制结合使用。未指定的参数 (durationvolume) 设置为默认值 (medium)。

    <speak> <amazon:auto-breaths frequency="x-low">Amazon Polly is a service that turns text into lifelike speech, allowing you to create applications that talk and build entirely new categories of speech-enabled products. Amazon Polly is a text-to-speech service, that uses advanced deep learning technologies to synthesize speech that sounds like a human voice. With dozens of lifelike voices across a variety of languages, you can select the ideal voice and build speech- enabled applications that work in many different countries.</amazon:auto-breaths> </speak>
  • 将自动化模式与多个参数结合使用。对于未指明的人Duration参数,亚马逊 Polly 使用默认值 (medium)。

    <speak> <amazon:auto-breaths volume="x-loud" frequency="x-low">Amazon Polly is a service that turns text into lifelike speech, allowing you to create applications that talk and build entirely new categories of speech-enabled products. Amazon Polly is a text-to-speech service, that uses advanced deep learning technologies to synthesize speech that sounds like a human voice. With dozens of lifelike voices across a variety of languages, you can select the ideal voice and build speech-enabled applications that work in many different countries.</amazon:auto-breaths> </speak>

播音员风格

<amazon:domain name="news">

新闻播音员风格仅适用于 Matthew 或 Joanna 的声音,它们仅有美式英语 (en-US)、Lupe 的美国西班牙语 (es-US) 和艾米的英式英语 (en-GB) 版本。仅在使用 Neural 格式时支持。

要使用播音员风格,请使用 SSML 标签和以下语法:

<amazon:domain name="news">text</amazon:domain>

例如,你可以使用带有艾米声音的新闻播音员风格,如下所示:

<speak> <amazon:domain name="news"> From the Tuesday, April 16th, 1912 edition of The Guardian newspaper: The maiden voyage of the White Star liner Titanic, the largest ship ever launched, has ended in disaster. The Titanic started her trip from Southampton for New York on Wednesday. Late on Sunday night she struck an iceberg off the Grand Banks of Newfoundland. By wireless telegraphy she sent out signals of distress, and several liners were near enough to catch and respond to the call. </amazon:domain> </speak>

添加动态范围压缩

<amazon:effect name="drc">

神经和标准 TTS 格式都支持此标签。

根据音频文件中使用的文本、语言和语音,声音范围从轻柔到响亮。环境声音,如一辆正在行驶的车辆的声音,通常可以掩盖较轻柔的声音,从而使得音轨难以听清。要增强音频文件中某些声音的音量,请使用动态范围压缩 (drc) 标签。

drc 标签可为您的音频设置中等“响度”阈值,并且围绕该阈值增大声音的音量(增益)。它将应用最接近于该阈值的最大增益增加,而且增益增加远远小于该阈值。


                    动态范围压缩可围绕某个特定阈值增大声音的音量。

这使得中等声音在嘈杂环境中更易于听见,从而使整个音频文件更清晰。

drc 标签是一个布尔值参数 (既可能存在,也可能不存在)。它使用语法 <amazon:effect name="drc"> 且以 </amazon:effect> 结束。

你可以使用drc使用亚马逊 Polly 支持的任何语音或语言进行标记。可以将该标签应用于整个录音部分,或仅应用于几个词。例如:

<speak> Some audio is difficult to hear in a moving vehicle, but <amazon:effect name="drc"> this audio is less difficult to hear in a moving vehicle.</amazon:effect> </speak>
注意

当您在 语法中使用“drc”时,它是区分大小写的。amazon:effect

结合使用 drcprosody volume 标签

如下图所示,prosody volume 标签均匀增大整个音频文件的音量,从原始音量级别 (虚线) 增大到调节后的音量级别 (实线)。要进一步增大该文件中特定部分的音量,请结合使用 drc 标签和 prosody volume 标签。结合使用标签不会影响 prosody volume 标签的设置。


                    使用prosody volumetag 会增加整个音频文件的音量。

当你使用drcprosody volume标签放在一起,亚马逊 Polly 应用了drc首先标记,增加中音声音(接近阈值的声音)。然后,再应用 prosody volume 标签,进一步均匀增大整个音轨的音量。


                    使用drc用 a 标记prosody
                            volumetag 除了增加整个音轨的音量外,还增加了中音声音的音量。

要结合使用这两个标签,可将一个标签嵌入另一个标签中。例如:

<speak> <prosody volume="loud">This text needs to be understandable and loud. <amazon:effect name="drc"> This text also needs to be more understandable in a moving car.</amazon:effect></prosody> </speak>

在本文中,prosody volume 标签将整段的音量增大为“响亮”。drc 标签增强第二句中中等值的音量。

注意

结合使用 drcprosody volume 标签时,请使用标准 XML 实践来嵌套标签。

柔和地朗读

<amazon:effect phonation="soft">

目前只有标准 TTS 格式支持此标签。

要指定输入文本应使用softer-than-normal语音,使用<amazon:effect phonation="soft">标签。

使用以下语法:

<amazon:effect phonation="soft">text</amazon:effect>

例如,您可以将此标签用于 Matthew 语音,如下所示:

<speak> This is Matthew speaking in my normal voice. <amazon:effect phonation="soft">This is Matthew speaking in my softer voice.</amazon:effect> </speak>

控制音质

<亚马逊:效果vocal-tract-length>

目前只有标准 TTS 格式支持此标签。

音色是声音的音质,可帮助您区分不同的声音,即使当这些声音具有相同的音高和响度时。影响到语音音色的最重要生理特征之一是声道的长度。声道是空气从声带的顶部直到嘴唇边缘跨越的一个腔体。

要控制 Amazon Polly 中输出语音的音色,请使用vocal-tract-length标签。此标签可更改发言者声道的长度,这听起来类似于更改发言者的身高。增加 vocal-tract-length 时,发言者听上去像是个子更高。减小时,发言者听上去像是个子更矮。您可以将此标签与 Amazon Polly 文字转语音组合中的任何语音一起使用。

要更改音色,请使用以下值:

  • +n%-n%:按当前语音的相对百分比进行更改来调整声道长度。例如,+4% 或 -2%。有效值范围为 +100% 至 -50%。此范围之外的值将被剪辑。例如,+111% 听起来像 +100%,-60% 听起来像 -50%。

  • n%:按当前语音的声道长度的绝对百分比来更改声道长度。例如,110% 或 75%。110% 的绝对值等同于 +10% 的相对值。100% 的绝对值等同于当前语音的默认值。

以下示例演示了如何更改声道长度来更改音色:

<speak> This is my original voice, without any modifications. <amazon:effect vocal-tract-length="+15%"> Now, imagine that I am much bigger. </amazon:effect> <amazon:effect vocal-tract-length="-15%"> Or, perhaps you prefer my voice when I'm very small. </amazon:effect> You can also control the timbre of my voice by making minor adjustments. <amazon:effect vocal-tract-length="+10%"> For example, by making me sound just a little bigger. </amazon:effect><amazon:effect vocal-tract-length="-10%"> Or, making me sound only somewhat smaller. </amazon:effect> </speak>

结合使用多个标签

你可以组合vocal-tract-length使用亚马逊 Polly 支持的任何其他 SSML 标签进行标记。由于音色 (声道长度) 与音高具有紧密联系,通过结合使用 vocal-tract-length<prosody pitch> 标签,您可能会得到最佳效果。为了生成最真实的语音,建议您对这两个标签使用不同的更改百分比。试用各种组合,以得到希望的最佳效果。

以下示例演示如何结合使用标签。

<speak> The pitch and timbre of a person's voice are connected in human speech. <amazon:effect vocal-tract-length="-15%"> If you are going to reduce the vocal tract length, </amazon:effect><amazon:effect vocal-tract-length="-15%"> <prosody pitch="+20%"> you might consider increasing the pitch, too. </prosody></amazon:effect> <amazon:effect vocal-tract-length="+15%"> If you choose to lengthen the vocal tract, </amazon:effect> <amazon:effect vocal-tract-length="+15%"> <prosody pitch="-10%"> you might also want to lower the pitch. </prosody></amazon:effect> </speak>

轻读

<amazon:effect name="whispered">

目前只有标准 TTS 格式支持此标签。

此标签表示输入文本应使用低声而不是正常语音说出。这可以用于 Amazon Polly 文字转语音组合中的任何语音。

它使用以下语法:

<amazon:effect name="whispered">text</amazon:effect>

例如:

<speak> <amazon:effect name="whispered">If you make any noise, </amazon:effect> she said, <amazon:effect name="whispered">they will hear us.</amazon:effect> </speak>

在这种情况下,角色说出的合成语音是低声的,但是 “她说” 这句话是用选定的 Amazon Polly 语音的普通合成语音说出的。

您可以通过将韵律结构速度降低最多 10% 来增强“低声”效果,具体视您期望的效果而定。

例如:

<speak> When any voice is made to whisper, <amazon:effect name="whispered"> <prosody rate="-10%">the sound is slower and quieter than normal speech </prosody></amazon:effect> </speak>

在为低声语音生成语音标记时,音频流还必须包括低声语音,以确保语音标记与音频流匹配。