校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 鮮為人知的HTML5語音合成功能

鮮為人知的HTML5語音合成功能

熱門標簽:高德地圖標注錯誤怎么修改 江蘇高頻外呼系統線路 平頂山電子地圖標注怎么修改 標準智能外呼系統 搜狗星級酒店地圖標注 地圖標注自己去過的地方 會聲會影怎樣做地圖標注效果 洛陽市伊川縣地圖標注中心官網 電銷機器人視頻

聽一下就會發現,播放出來的聲音并不是預先錄制好的音頻資料,而是通過文字識別后合成的語音

請先戴上耳機,然后將下面的代碼復制到chrome控制臺中體驗~

let msg = new SpeechSynthesisUtterance("歡迎你閱讀我的博客");
window.speechSynthesis.speak(msg);

看,前端實現語音合成并不難

今天的主角 Speech Synthesis API

通過上面的例子我們可以猜測到上面調用的兩個方法的功能

SpeechSyntehesisUtteranc
window.speechSynthesis.speak

當然了,語音合成不僅僅包含這兩個API,but我們先從這兩點入手

SpeechSyntehesisUtteranc

參考:developer.mozilla.org/en-US/docs/… SpeechSyntehesisUtteranc 對象包含了語音服務要讀取的內容和一些參數,比如語言,音高和音量

SpeechSyntehesisUtteranc()
SpeechSynthesisUtterance.lang
SpeechSynthesisUtterance.pitch
SpeechSynthesisUtterance.rate
SpeechSynthesisUtterance.voice
SpeechSynthesisUtterance.volume

注意:以上屬性都是 可讀寫 的! 可以把下面這段代碼copy下來嘗試一下,注釋中會有說明

let msg = new SpeechSynthesisUtterance();
msg.text = "how are you" // 要合成的文本
msg.lang = "en-US" // 美式英語發音(默認自動選擇)
msg.rate = 2  // 二倍速(默認為 1,范圍 0.1~10)
msg.pitch = 2 // 高音調(數字越大越尖銳,默認為 1,范圍 0~2 )
msg.volume = 0.5 // 音量 0.5 倍(默認為1,范圍 0~1)
window.speechSynthesis.speak(msg);

同時這個對象還可以響應一系列事件,可能會用到的:

  • start
  • end
  • boundary
  • pause
  • resume

借助這些事件我們可以完成一些簡單的功能,比如英文句子的單詞數量統計:

let count = 0; // 詞語數量
let msg = new SpeechSynthesisUtterance();
let synth = window.speechSynthesis;
msg.addEventListener('start',()=>{
    // 開始閱讀
    console.log(`文本內容: ${msg.text}`);
    console.log("start");
});
msg.addEventListener('end',()=>{
    // 閱讀結束
    console.log("end");
    console.log(`文本單詞(詞語)數量:${count}`);
    count = 0;
});
msg.addEventListener('boundary',()=>{
    // 統計單詞
    count++;
});

經過嘗試,由于中文沒有用空格將每個詞語分開,所以會進行自動的識別,比如 歡迎讀者 會被識別為 歡迎 和 讀者 兩個詞語

SpeechSynthesis

參考: developer.mozilla.org/en-US/docs/…

說完了 SpeechSyntehesisUtteranc 我們再來看看 SpeechSynthesis

SpeechSynthesis 的主要作用是對語音進行一系列的控制,比如開始或者暫停

它有三個只讀屬性,表明了語音的狀態:

SpeechSynthesis.paused
SpeechSynthesis.pending

同時還有一系列方法用來操作語音:

•SpeechSynthesis.speak() 開始讀語音,同時觸發 start 事件
•SpeechSynthesis.pause() 暫停,同時觸發 pause 事件
•SpeechSynthesis.resume() 繼續,同時觸發 resume 事件
•SpeechSynthesis.cancel() 取消閱讀,同時觸發 end 事件

基于這些操作方法,我們可以進一步增強我們的文字閱讀器:

回到最初的起點

讓我們回到最初的起點,我們可以基于上面的內容猜測一下有些網站中,文章的自動閱讀是怎么實現的

如果這個網站前端采用了 MVVM 框架(以 Vue 為例),那么文章內容是也許存儲在 data 中,可以用來構造我們需要的語音合成

當然,也有可能文章是通過 ajax 請求得到的,解析請求的數據,構造語音合成對象

如果文章是直接在 html 中寫死的,這個時候就需要對 DOM 進行解析,經過測試,即便是下面這樣的混亂的結構

<div id="test">
    <p>1</p>
    <p>2</p>
    <ul>
        <li>3</li>
        <li>4</li>
    </ul>
    <table>
        <tr>
            <td>5</td>
            <td>6</td>
        </tr>
        <tr>
            <td>7</td>
            <td>8</td>
        </tr>
    </table>
    <img src="https://www.baidu.com/img/bd_logo1.png" alt="">
    9
</div>

直接通過 innerText 讀取其中的文本,然后構造語音合成對象,也能按照期望順序閱讀(圖片會被忽略)

當然如果我們想要忽略一些特殊的結構,比如表格,我們可以花一些精力在解析上,把我們不想要的數據或者 DOM 元素篩掉

不管怎樣,我們都能找到合適的解決方案~

閑話

這個特性,是一個還在草案中的特性,沒有被廣泛支持

再次強調,這個 API 暫時還不能應用到生產環境中

目前比較通用的做法是在后端構造將文本合成成語音文件的 API(也許是第三方 API),然后在前端作為媒體播放

曾經在我迷茫的時候,我去閱讀一些大牛的文章,讀到一些前輩對前端開發的思考。其中有一點令我印象深刻:

前端是最貼近用戶的,一切要從用戶的的角度考慮,無障礙使用也是一個很重要的課題。雖然做這樣的功能帶來的收益遠遠小于其他業務,但是為了讓產品更好的服務用戶,多付出一些勞動也是值得的,這也是前端開發的一種精神
 

總結

以上所述是小編給大家介紹的鮮為人知的HTML5語音合成功能,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

標簽:松原 蚌埠 廣西 鄂爾多斯 常德 阿克蘇 果洛 廣東

巨人網絡通訊聲明:本文標題《鮮為人知的HTML5語音合成功能》,本文關鍵詞  鮮為人知,的,HTML5,語音,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《鮮為人知的HTML5語音合成功能》相關的同類信息!
  • 本頁收集關于鮮為人知的HTML5語音合成功能的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    eeuss鲁片一区二区三区在线观看| 亚洲一二三四区不卡| 国产清纯在线一区二区www| 国产精品久久久久久久久图文区| 日韩毛片视频在线看| 日韩在线观看一区二区| 国产精品一区不卡| 在线免费精品视频| 久久亚洲二区三区| 亚洲精品高清在线观看| 久久99久久久欧美国产| 91亚洲大成网污www| 制服丝袜成人动漫| 国产片一区二区三区| 亚洲1区2区3区视频| 国产成人精品亚洲777人妖| 欧美性猛片aaaaaaa做受| ww久久中文字幕| 一区二区三区加勒比av| 激情综合一区二区三区| 色欧美日韩亚洲| 久久青草欧美一区二区三区| 亚洲高清免费视频| 国产成人免费在线观看| 51久久夜色精品国产麻豆| 国产精品午夜免费| 久久 天天综合| 日本韩国视频一区二区| 国产亚洲精品精华液| 日精品一区二区| 99re这里只有精品首页| 精品剧情在线观看| 亚洲一区二区三区在线看 | 欧美日韩国产小视频在线观看| 久久精品视频一区二区三区| 亚洲成人精品影院| 一本一道波多野结衣一区二区| 久久亚洲二区三区| 日本三级韩国三级欧美三级| 91污在线观看| 国产亚洲一区二区三区在线观看| 午夜精品福利久久久| 不卡大黄网站免费看| 久久综合狠狠综合久久激情 | 91精品欧美综合在线观看最新| 国产精品久久久久久久久免费丝袜 | 国产福利不卡视频| 日韩欧美久久一区| 香蕉乱码成人久久天堂爱免费| a美女胸又www黄视频久久| 久久综合色播五月| 毛片基地黄久久久久久天堂| 欧美色图12p| 一二三区精品视频| 色呦呦一区二区三区| 国产精品久久久久永久免费观看| 国产一区二区在线观看免费| 91精品国产综合久久精品麻豆| 一区二区三区四区不卡视频 | 依依成人精品视频| 成人高清免费观看| 日本一区二区三区久久久久久久久不 | 色综合久久中文字幕综合网| 国产精品乱码一区二区三区软件| 久久66热偷产精品| 精品国产亚洲一区二区三区在线观看| 午夜精品福利视频网站| 欧美日本在线播放| 五月天视频一区| 欧美裸体bbwbbwbbw| 亚洲福利电影网| 欧美日韩亚洲不卡| 午夜亚洲国产au精品一区二区| 精品视频免费看| 亚洲成人综合网站| 欧美日韩视频专区在线播放| 五月婷婷久久综合| 7777精品伊人久久久大香线蕉超级流畅 | 懂色av一区二区三区免费观看| 久久综合色播五月| 国产成人在线色| 亚洲欧洲精品一区二区三区| 91欧美激情一区二区三区成人| 亚洲精品亚洲人成人网在线播放| 色婷婷狠狠综合| 洋洋av久久久久久久一区| 欧美日精品一区视频| 亚洲1区2区3区视频| 777xxx欧美| 国产美女精品在线| 国产精品激情偷乱一区二区∴| 99久久99久久精品国产片果冻| 亚洲卡通动漫在线| 欧美日韩一级视频| 看电视剧不卡顿的网站| 久久久国产精品不卡| 99久久精品免费| 亚洲不卡av一区二区三区| 日韩一级高清毛片| 国产成人精品午夜视频免费| 一区在线观看视频| 欧美日韩日日骚| 国产一区二区三区黄视频 | 91女人视频在线观看| 偷窥少妇高潮呻吟av久久免费| 欧美一区二区黄| 国产精品亚洲视频| 一区二区在线观看视频| 69堂亚洲精品首页| 国产高清在线观看免费不卡| 最好看的中文字幕久久| 欧美日韩在线播放一区| 国内精品免费在线观看| 亚洲人成网站在线| 制服丝袜亚洲播放| 不卡电影一区二区三区| 五月天亚洲婷婷| 欧美国产欧美亚州国产日韩mv天天看完整 | 国产视频一区在线观看| 欧洲生活片亚洲生活在线观看| 蜜臀av性久久久久蜜臀av麻豆| 国产精品久久久久久久久免费丝袜| 欧美午夜一区二区三区免费大片| 精品一区二区三区不卡| 中文字幕一区二区三区蜜月| 日韩一区二区三区av| 成年人午夜久久久| 美日韩一区二区三区| 亚洲欧洲国产日本综合| 欧美一二三区在线| 91伊人久久大香线蕉| 久久激情综合网| 亚洲国产视频一区| 国产精品久久夜| 欧美v亚洲v综合ⅴ国产v| 色88888久久久久久影院野外| 久久福利视频一区二区| 亚洲国产人成综合网站| 欧美韩国日本综合| 日韩精品一区二区在线| 在线观看不卡一区| 成人精品一区二区三区中文字幕 | 久久综合久久综合久久| 欧美视频精品在线观看| av在线不卡网| 极品美女销魂一区二区三区 | 日韩欧美色电影| 久久久久国产免费免费| 欧美放荡的少妇| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 国产精品一区二区果冻传媒| 三级影片在线观看欧美日韩一区二区| 国产精品久久久久久久岛一牛影视| 日韩欧美国产小视频| 欧美日韩一区精品| 91亚洲大成网污www| 国产91丝袜在线播放| 精油按摩中文字幕久久| 偷拍亚洲欧洲综合| 亚洲国产精品影院| 亚洲蜜桃精久久久久久久| 国产午夜一区二区三区| 精品精品国产高清a毛片牛牛| 欧美裸体一区二区三区| 在线精品亚洲一区二区不卡| 99久久免费精品高清特色大片| 国产精品456| 国模套图日韩精品一区二区| 日本在线播放一区二区三区| 亚洲成人av资源| 亚洲一区二区精品久久av| 亚洲精品国产无天堂网2021| 欧美激情中文字幕一区二区| 国产色一区二区| 国产欧美一区二区精品婷婷| 久久蜜桃av一区精品变态类天堂| 精品噜噜噜噜久久久久久久久试看| 欧美一区二区三区精品| 91麻豆精品国产91| 717成人午夜免费福利电影| 777xxx欧美| 精品久久久久久综合日本欧美| 日韩午夜激情视频| 日韩亚洲欧美成人一区| 精品久久国产老人久久综合| 精品国免费一区二区三区| 精品国产91洋老外米糕| 精品久久一区二区三区| 久久久欧美精品sm网站| 欧美激情在线看| 自拍偷在线精品自拍偷无码专区 | 欧美调教femdomvk| 欧美日韩极品在线观看一区| 欧美日韩国产一级片| 91麻豆精品国产自产在线观看一区 | 中文字幕亚洲不卡| 亚洲人成影院在线观看| 亚洲一区影音先锋| 日韩vs国产vs欧美| 久久国产福利国产秒拍|