

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

# 控制如何朗读特殊的词语类型
<a name="say-as-tag"></a>

*<say-as>*

 生成式、长篇、神经和标准 TTS 引擎支持 `<say-as>` 标签。但请注意，如果 Amazon Polly 使用神经语音并在运行时遇到带有 `characters` 选项的 `<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` 具有以下可用值：
+ `characters`或`spell-out`：拼出文本中的每个字母，如所示。 a-b-c
**注意**  
目前，神经语音不支持此选项。如果您使用神经语音，并且 Amazon Polly 在运行时遇到此 SSML 代码，则将使用相关的标准语音合成受影响的句子。但请注意，这句话仍然会按照使用神经语音的情况收费。
+ `cardinal` 或 `number`：将数字文本解释为基数，如 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 和）、西班牙语变体（es-es、es-mx 和 es-US en-GB-WLS）、法语变体（fr-fr 和 fr-ca）和葡萄牙语变体（pt-br 和 pt-pt），以及德语（de-de）、意大利语（it-it）、日语（ja-jp）和俄语（ru-jp）的声音 ru)。另请注意，在某些情况下，阿拉伯语（arb）等语言会自动处理设置为电话号码的数字，因此实际上并没有实施 `telephone` SSML 标签。

**分数**

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

  语法：*cardinal number*/*cardinal number*，例如 2/9。

  例如：`<say-as interpret-as="fraction">2/9</say-as>` 的发音为 "two ninths"。
+ *非负带分数*

  语法：*cardinal number*\$1*cardinal number*/*cardinal number*，例如 3\$11/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="mdy">12-31-1900</say-as>.
</speak>
```

下列格式可以与 `date` 属性一起使用。
+ `mdy`: Month-day-year.
+ `dmy`: Day-month-year.
+ `ymd`: Year-month-day.
+ `md`：月-日。
+ `dm`：日-月。
+ `ym`：年-月。
+ `my`：月-年。
+ `d`: 天。
+ `m`: 月。
+ `y`: 年份。
+ `yyyymmdd`: Year-month-day。 如果您使用这种格式，则可以使用问号让 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>
```

