你所不知道的HTML5——语音合成
前端能力的增强很大程度上依赖于 HTML5 的新 API,从这篇文章开始我也会对平时做不常用的一些 API 做一下学习总结
今天的文章就从语音合成开始
为什么想到这个 API 呢?
在写报告查资料的时候在 “人人都是产品经理”http://www.woshipm.com/ 上发现了一个有趣的功能(打了丑丑的马赛克)
听一下就会发现,播放出来的声音并不是预先录制好的音频资料,而是通过文字识别后合成的语音
那么我们如何在前端实现这样的功能呢?主角登场!
⚠️注意,这个 API 尚在草案阶段,并且在写 demo 的时候浏览器提示部分 API 可能将不被支持,所以本文中提到的解决方案不要用于产品中
语音合成超简单例子
请先戴上耳机,然后将下面的代码复制到chrome控制台中体验~
let msg = new SpeechSynthesisUtterance("欢迎你阅读我的博客");
window.speechSynthesis.speak(msg);
看,前端实现语音合成并不难
今天的主角 Speech Synthesis API
通过上面的例子我们可以猜测到上面调用的两个方法的功能
SpeechSyntehesisUtteranc
用来构造一个可以被读出的“东西”window.speechSynthesis.speak
将构造好的“东西”读出来
当然了,语音合成不仅仅包含这两个API,but我们先从这两点入手
SpeechSyntehesisUtteranc
参考:https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisUtterance
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