

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 設定合成語音的最長持續時間
<a name="maxduration-tag"></a>

*<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 會正常讀取語音。&POL; 不會減慢語音的速度或加入靜音，因此產生的音訊會比所請求的短。

**注意**  
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>
```



```
```

當 Amazon Polly 傳回合成語音時，使用 `<prosody amazon:max-duration>`標籤可能會增加延遲。延遲的程度取決於文字內容及其長度。我們建議所使用的文字內容，最好包含相對較短的文字段落。

**限制**

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

