Speech Synthesis API入門

Speech Synthesis API非常容易實(shí)現(xiàn)。事實(shí)上,只需兩行代碼即可讓您的網(wǎng)絡(luò)應(yīng)用與用戶交流。

var utterance = new SpeechSynthesisUtterance('Hello Treehouse');
window.speechSynthesis.speak(utterance);
speechSynthesis 接口
  • speak(SpeechSynthesisUtterance)- 這個(gè)方法應(yīng)該傳遞一個(gè)實(shí)例SpeechSynthesisUtterance。然后它會(huì)將此添加到需要說(shuō)出的話語(yǔ)隊(duì)列中。
  • cancel() - 此方法將從隊(duì)列中刪除所有話語(yǔ)。如果當(dāng)前正在說(shuō)話,那么它將被停止。
  • pause() - 此方法將立即暫停正在講話的任何話語(yǔ)。
  • resume() - 此方法將使瀏覽器恢復(fù)說(shuō)出先前暫停的話語(yǔ)。
  • getVoices() - 此方法返回瀏覽器支持的所有語(yǔ)音的列
speechSynthesis屬性 默認(rèn)是false
  • pending-true 如果隊(duì)列中有尚未開(kāi)始說(shuō)話的話語(yǔ)。
  • speaking- true 如果當(dāng)前正在說(shuō)話。
  • paused- true 如果當(dāng)前暫停了話語(yǔ)。
SpeechSynthesisVoice 屬性
  • name - 描述語(yǔ)音的人類可讀名稱。
  • voiceURI - 指定該語(yǔ)音的語(yǔ)音合成服務(wù)的位置的URI。
  • lang - 此語(yǔ)音的語(yǔ)言代碼。
  • default- true如果這是瀏覽器使用的默認(rèn)語(yǔ)音,則設(shè)置為。
  • localService - API可以使用本地和遠(yuǎn)程服務(wù)來(lái)處理語(yǔ)音合成。如果此屬性設(shè)置為true語(yǔ)音合成,則此語(yǔ)音由本地服務(wù)處理。如果false是正在使用的遠(yuǎn)程服務(wù)。
該text屬性允許您設(shè)置您希望說(shuō)出的文本。這將覆蓋先前傳遞給SpeechSynthesisUtterance構(gòu)造函數(shù)的任何文本。
utterance.text = 'Hello Treehouse';
該lang屬性使您能夠指定文本的語(yǔ)言。這將默認(rèn)為HTML文檔的語(yǔ)言。
utterance.lang = 'en-US';
該volume屬性允許您調(diào)整語(yǔ)音的音量。應(yīng)在此處指定介于0和1之間的浮點(diǎn)值。默認(rèn)值為1。
utterance.volume = 1;
該rate屬性定義了應(yīng)該說(shuō)出文本的速度。這應(yīng)該是介于0和10之間的浮點(diǎn)值,默認(rèn)值為1。
`utterance.rate` = 1;
該pitch屬性控制文本的高低。這應(yīng)該是介于0和2之間的浮點(diǎn)值,值為1是默認(rèn)值。
utterance.pitch = 1;

注:本volume,rate和pitch屬性不被所有的聲音支持
監(jiān)聽(tīng)SpeechSynthesisUtterance事件
  • onstart- start當(dāng)話語(yǔ)開(kāi)始被說(shuō)出時(shí),事件被觸發(fā)。
  • onend- end一旦說(shuō)出話語(yǔ),就會(huì)觸發(fā)事件。
  • onerror- error如果發(fā)生阻止說(shuō)出話語(yǔ)的錯(cuò)誤,則觸發(fā)該事件。
  • onpause- pause如果話語(yǔ)在說(shuō)話時(shí)暫停,則會(huì)觸發(fā)事件。
  • onresume- resume如果暫停說(shuō)話暫停,則會(huì)觸發(fā)該事件。
  • onboundary- boundary只要在說(shuō)出話語(yǔ)時(shí)達(dá)到單詞或句子邊界,就會(huì)觸發(fā)事件。
  • onmark- mark語(yǔ)音合成標(biāo)記語(yǔ)言(SSML)文件中到達(dá)“標(biāo)記”標(biāo)記時(shí)觸發(fā)事件。我們?cè)谶@篇文章中沒(méi)有涉及SSML。只要知道可以使用基于XML的SSML文檔將語(yǔ)音數(shù)據(jù)傳遞給話語(yǔ)。這樣做的主要優(yōu)點(diǎn)是,在構(gòu)建具有大量需要合成的文本的應(yīng)用程序時(shí),可以更輕松地管理語(yǔ)音內(nèi)容。
var utterance = new SpeechSynthesisUtterance('Hello Treehouse');

utterance.onstart = function(event) {
    console.log('The utterance started to be spoken.')
};

window.speechSynthesis(utterance);

#檢查瀏覽器支持
if ('speechSynthesis' in window) {
    // You're good to go!
} else {
    // Ah man, speech synthesis isn't supported.
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,890評(píng)論 18 139
  • 女兒昨天給我出了一道題,說(shuō)學(xué)校辯論隊(duì)下周有一場(chǎng)辯論賽,辯題是“窮養(yǎng)兒富養(yǎng)女是不是過(guò)時(shí)的生育觀”,隊(duì)里讓隊(duì)員的父母首...
    清晨起閱讀 2,026評(píng)論 32 32
  • 以前因?yàn)闀某雒某呻娨晞。缃駞s反過(guò)來(lái)了,反而是因?yàn)橐徊侩娨晞∈购芏鄷疄槿怂獣院妥放?,就如《人民的名義》里...
    林暉先生閱讀 107評(píng)論 0 0
  • 工具:油畫棒、水彩技法:油水分離 最近一直在用油畫棒畫畫 它雖然比較難刻畫細(xì)節(jié) 但貴在色彩艷麗 高純度的顏色 讓人...
    悠然小妖閱讀 678評(píng)論 4 10