SpeechSynthesisUtterance: rate 屬性

Baseline 已廣泛支援

此功能已成熟,並可在多種裝置和瀏覽器版本上使用。自 2018 年 9 月以來,它已在各種瀏覽器中推出。

SpeechSynthesisUtterance 介面的 rate 屬性用於獲取和設定語音播報的速度。

如果未設定,將使用預設值 1。

一個表示語速值的浮點數。它的範圍可以從 0.1(最低)到 10(最高),其中 1 是當前平臺或語音的預設語速,應對應正常說話速度。其他值則相對於此作為百分比,例如 2 表示兩倍速,0.5 表示半速,以此類推。

某些語音合成引擎或語音可能會進一步限制最小和最大語速。如果使用了 SSML,此值將被標記中的 prosody 標籤覆蓋。

示例

調整播放速度

在此示例中,我們可以使用滑塊調整播放速度,然後點選“播放”按鈕來播放語音。

HTML

html
<p id="text">It was a dark and stormy night.</p>

<div id="rate-control">
  <label for="rate">Rate:</label>
  <input type="range" min="0.5" max="2" value="1" step="0.1" id="rate" />
</div>

<button id="play">Play</button>

CSS

css
body {
  font-family: sans-serif;
}

#rate-control {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 1rem 0;
}

JavaScript

js
const synth = window.speechSynthesis;

const text = document.querySelector("#text");
const play = document.querySelector("#play");
const rate = document.querySelector("#rate");

function speak() {
  if (synth.speaking) {
    synth.cancel();
  }
  const utterThis = new SpeechSynthesisUtterance(text.textContent);
  utterThis.addEventListener("error", () => {
    console.error("SpeechSynthesisUtterance error");
  });
  utterThis.rate = rate.value;
  synth.speak(utterThis);
}

play.addEventListener("click", speak);

輸出

規範

規範
Web Speech API
# dom-speechsynthesisutterance-rate

瀏覽器相容性

另見