window屬性:speechSynthesis

2020-07-31 15:57 更新

speechSynthesis屬性

注意:speechSynthesis屬性目前處于實驗性階段,在使用它之前,請仔細檢查瀏覽器兼容性表。

Window對象的只讀屬性speechSynthesis返回一個SpeechSynthesis對象,該對象是使用Web Speech API語音合成功能的入口點。

SpeechSynthesis 也從它的父接口繼承屬性, EventTarget.

SpeechSynthesis.paused 只讀
當(dāng)SpeechSynthesis 處于暫停狀態(tài)時, Boolean 值返回 true 。
SpeechSynthesis.pending 只讀
當(dāng)語音播放隊列到目前為止保持沒有說完的語音時, Boolean 值返回 true 。
SpeechSynthesis.speaking 只讀
當(dāng)語音談話正在進行的時候,即使SpeechSynthesis處于暫停狀態(tài), Boolean 返回 true。

speechSynthesis屬性語法

var synth = window.speechSynthesis;

speechSynthesis屬性值

一個SpeechSynthesis對象。

speechSynthesis屬性示例

在我們的基本語音合成器演示中,我們首先使用window.speechSynthesis獲取對SpeechSynthesis控制器的引用。在定義了一些必要的變量之后,我們使用SpeechSynthesis.getVoices()檢索可用語音的列表并用它們填充選擇菜單,以便用戶可以選擇他們想要的語音。

在inputForm.onsubmit處理程序內(nèi)部,我們使用preventDefault()停止表單提交,創(chuàng)建一個新SpeechSynthesisUtterance實例,其包含文本<input>的文本,將話語的語音設(shè)置為<select>元素中選擇的語音,然后通過該SpeechSynthesis.speak()方法開始說話。

var synth = window.speechSynthesis;

var inputForm = document.querySelector('form');
var inputTxt = document.querySelector('input');
var voiceSelect = document.querySelector('select');


function populateVoiceList() {
  voices = synth.getVoices();

  for(i = 0; i < voices.length ; i++) {
    var option = document.createElement('option');
    option.textContent = voices[i].name + ' (' + voices[i].lang + ')';
    
    if(voices[i].default) {
      option.textContent += ' -- DEFAULT';
    }

    option.setAttribute('data-lang', voices[i].lang);
    option.setAttribute('data-name', voices[i].name);
    voiceSelect.appendChild(option);
  }
}

populateVoiceList();
if (speechSynthesis.onvoiceschanged !== undefined) {
  speechSynthesis.onvoiceschanged = populateVoiceList;
}

inputForm.onsubmit = function(event) {
  event.preventDefault();

  var utterThis = new SpeechSynthesisUtterance(inputTxt.value);
  var selectedOption = voiceSelect.selectedOptions[0].getAttribute('data-name');
  for(i = 0; i < voices.length ; i++) {
    if(voices[i].name === selectedOption) {
      utterThis.voice = voices[i];
    }
  }
  synth.speak(utterThis);
  inputTxt.blur();
}

規(guī)范

規(guī)范 狀態(tài) 注釋
Web Speech API 
該規(guī)范中“SpeechSynthesis”的定義。
Draft
 

瀏覽器兼容性

電腦端 移動端
Chrome
Edge
Firefox
Internet Explorer
Opera
Safari
Android webview Chrome for Android
Edge Mobile Firefox for Android
Opera for Android
iOS Safari
基本支持 支持:33 支持 支持:49 支持 ? 支持:7 支持 支持 支持 支持 支持:7.1


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號