HTML5 之音訊合成(SpeechSynthesis)
H5 讓我們的 Web 互動更加生動有趣,但瀏覽器的多樣性以及揮之不去的相容問題,卻阻礙了技術發展。這並不是我們拒絕的理由,恰恰相反,它應該成為動力。
一、語音場景
文章標題為了嚴謹,所以叫音訊合成。如果用大白話來解釋,那就是「文字轉語音」。語音的場景就太多了:
- 點讀機:哪裡不會點哪裡
- 有聲小說:看著太累,聽起來不錯
-
Web
頁面警示使用者的操作 - 鬧鐘,提醒,小祕書
- 殘疾人支援
…
這些都是隨處可見的例子,但真正燃起我激情的是這個 ofollow,noindex">場景 ,簡直酷炫到爆:
二、技術核心
看完上面的動畫,按捺不住內心的好奇,隨手就翻起了原始碼。Oh~原來如此,把你揪出來:
let sayhello = new window.SpeechSynthesisUtterance('你好,歡迎來到 Jartto 的部落格!'); window.speechSynthesis.speak(sayhello);
事情的真相就是簡單如此,短短兩行,就實現了語音播報。
三、相容性
如此有趣的 API
,突然想到了一萬個應用場景。別忙,先來看看 SpeechSynthesis
的相容性吧:

四、API 文件
SpeechSynthesis
介面是語音服務的控制介面,屬於 網頁語音 API ,它可以用於獲取裝置上關於可用的合成聲音的資訊,開始、暫停語音,或除此之外的其他命令。
五、完整示例
六、補充:SpeechRecognition
SpeechRecognition
顧名思義,語音識別,屬於 網頁語音 API
。需要麥克風等音訊輸入裝置的支援,可以識別使用者的語音輸入,並且轉化成文字。
SpeechRecognition API
需要硬體支援,所以相容性並不好,大致如下:

七、未來暢想
相信不久的未來,瀏覽器會逐步統一,相容問題將會化為烏有。我們將會用更多的時間去探索技術,而不是去相容老破舊的網站或者機器。當然,Web 技術會大行其道,使用者將會擁有到更加有趣的體驗。今天,我們邁進了一步!