Amazon Polly
开发人员指南

Amazon Polly 支持的 SSML 标签

使用 SSML 增强输入文本让您可以进一步控制 Amazon Polly 如何根据您提供的文本生成语音。

例如,您可以在您的文本中包含长时间暂停,或更改语速或音高。Amazon Polly 可通过一部分 SSML 标记标签(由 W3C 推荐的语音合成标记语言 (SSML) 版本 1.1 定义)提供此类控制。

支持的 SSML 标签

Amazon Polly 支持以下 SSML 标签:

输入文本中的不受支持的 SSML 标签生成错误。

标识 SSML 增强文本

<speak>

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

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

添加停顿

<break>

要向文本添加停顿,请使用 <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>

要强调词语,请使用 <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>

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

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

例如,如果 voice-id 是 Joanna(说美国英语),Amazon Polly 会使用 Joanna 的语音朗读以下内容,没有法语腔调:

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

使用您使用 Joanna 语音时加入 <lang> 标签,Amazon Polly 会用 Joanna 的语音以美国口音的法语朗读这个句子:

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

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

如果您使用说意大利语的 voice-id Giorgio 朗读以下文本,Amazon Polly 会以 Giorgio 的语音通过意大利语发音朗读这个句子:

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

如果您使用同一语音,但加入 <lang> 标签,Amazon Polly 会以意大利口音的英语进行 Bruce Springsteen 的发音:

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

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

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

<mark>

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

<mark name="tag_name"/>

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

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

Amazon Polly 可能会返回以下 SSML 元数据:

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

在段落之间添加停顿

<p>

要在文本段落之间添加停顿时间,请使用 <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>

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

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

  • alphabet

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

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

  • ph

添加 <phoneme> 标签后,Amazon Polly 将使用 ph 属性指定的发音,而不是所选语音所用的语言默认关联的标准发音。

例如 "pecan" 这个词可以发两个音。在以下示例中,“pecan”在每一行指定了不同的发音。Amazon Polly 根据 ph 属性发音 pecan,而不是使用默认发音。

国际音标 (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>

控制音量、语速和音高

<prosody>

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

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

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

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

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

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

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

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

    <speak> Sometimes it can sometimes 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">speed 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>

要控制您希望语音在合成后花费多长时间,请使用具有 <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 将正常读取语音。它不会减慢语音或添加静默,因此生成的音频比请求的短。

注意

Amazon 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> 标签放置在另一个此标签中,则 Amazon 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> 标签。这是因为二者都会影响文本的朗读速度。

    在以下示例中,Amazon 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>

要在行与行或句子与句子之间添加停顿,请使用 <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>

使用具有 interpret-as 属性的 <say-as> 标签,告知 Amazon Polly 如何朗读某些字符、词语和数字。这可让您提供更多上下文,以消除 Amazon Polly 呈现文本方法中的任何歧义。

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

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

interpret-as 具有以下可用值:

  • charactersspell-out:拼读文本的每个字母,例如 a-b-c 的发音。

  • 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 选项仅适用于英语语言的声音。

分数

Amazon Polly 会将具有 interpret-as="fraction" 属性的 say-as 标签中的值视为一般分数。分数采用以下语法形式:

  • 分数

    语法:基数/基数,如 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”之间必须有一个 +。Amazon 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="dmy">12-31-1900</say-as>. </speak>

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

  • mdy:月-日-年。

  • dmy:日-月-年。

  • ymd:年-月-日。

  • md:月-日。

  • dm:日-月。

  • ym:年-月。

  • my:月-年。

  • d: 天.

  • m: 月.

  • y: 年份.

  • yyyymmdd:年-月-日。如果您使用此格式,则可使用问号让 Amazon Polly 跳过部分日期。

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

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

    不需要 Format

电话

即使没有 <say-as> 标签,Amazon Polly 也会尝试根据文本的格式正确地解释您提供的文本。例如,如果文本中包含 "202-555-1212",Amazon Polly 会将它解释为 10 位数的电话号码,并分别朗读每个数字,并在每个连字符处短暂停顿。在这种情况下,您不需要使用 <say-as interpret-as="telephone">。但是,如果您提供的文本是“2025551212”,希望 Amazon Polly 将它朗读为电话号码,则需要指定 <say-as interpret-as="telephone">

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

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

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

<sub>

使用具有 <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>

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

此标签使用以下语法:

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

下列值可以用于 role 属性:

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

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

  • amazon:VBD:将单词解释为过去式或过去分词。

例如,美国英语对单词“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: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: read, or as its alternative meaning, a fresh waterfish <w role="amazon:SENSE_1">bass</w>. </speak>

注意

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

添加呼吸音

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

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

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

  • 自动模式:Amazon Polly 自动将呼吸音插入语音输出

  • 混合模式:由您和 Amazon 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 breathes <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> 标签来告知 Amazon 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 参数,Amazon 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:effect name="drc">

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

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


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

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

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

您可以结合使用 drc 标签和 Amazon 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 volume 标签可增大整个音频文件的音量。

当结合使用 drcprosody volume 标签时,Amazon Polly 会首先应用 drc 标签,以增大中等声音(这些声音接近阈值)。然后,再应用 prosody volume 标签,进一步均匀增大整个音轨的音量。


                    通过结合使用 drc 标签和 prosody volume 标签,除了可增大除整个音轨的音量之外,还可增大中等声音的音量。

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

<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">

使用 <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>

控制音质

<amazon:effect vocal-tract-length>

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

要在 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 标签和 Amazon 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">

此标签表示输入文本应使用低声而不是正常语音说出。这可用于 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 语音说出的合成语音会使用低语,但短语 "she said" 是正常语音。

您可以通过将韵律结构速度降低最多 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>

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

本页内容: