SpeechSynthesisUtterance:rate 属性

基线 广泛可用

此功能已完善,可在许多设备和浏览器版本上运行。自以下日期起,它已在各浏览器中可用 2018 年 9 月.

rate 属性是 SpeechSynthesisUtterance 接口的一部分,用于获取和设置语音表达的速度。

如果未设置,则将使用默认值 1。

表示速率值的浮点数。它可以在 0.1(最低)到 10(最高)之间变化,其中 1 是当前平台或语音的默认速率,应对应于正常的语音速率。其他值作为相对于此值的百分比,例如 2 是两倍的速度,0.5 是一半的速度,依此类推。

某些语音合成引擎或语音可能会进一步限制最小和最大速率。如果使用 SSML,则此值将被标记中的 韵律标签 覆盖。

示例

调整播放速率

在此示例中,我们可以使用滑块调整播放速率,然后使用“播放”按钮播放语音表达。

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 语音 API
# dom-speechsynthesisutterance-rate

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

另请参阅