H5让我们的网络交互更加生动有趣,但浏览器的多样性和挥之不去的兼容性问题阻碍了技术的发展。这不是我们拒绝的理由。相反,应该是动力。
第一,语音场景
为了严谨起见,文章的标题叫音频合成。如果用白话解释就是“文语转换”。声音的场景太多了:
点读机:点不到的地方,有个有声小说:看着太累了,听着还不错。网页警告用户操作闹钟,并提醒用户小秘书支持残疾人。这些到处都是例子,但真正点燃我激情的是这一幕。爽到爆炸。
事实证明,动画和语音的结合才是最好的用户体验。010-350000
二、技术核心
010-350000
看完上面的动画,我忍不住内心的好奇,就翻出了源代码。哦~我明白了,我给你找出来:
let say Hello=new window . speech synthesis(‘你好,欢迎来到Jartto的博客!’);window . speech synthesis . speak(say hello);事情的真相就这么简单。短短两行,就实现了语音播报。三。和睦相处
这么有趣的API,突然想到了一万个应用场景。先别忙,我们先来看看语音合成的兼容性:
010-350000
好像各大浏览器都支持的不错,那就试试吧!
四。API文档
010-350000
语音合成接口是语音服务的控制接口,属于Web语音API。它可以用来获取设备上可用的合成声音、开始和暂停语音或除此之外的其他命令的信息。
现在浏览器已经普遍支持了,我们不妨打印出来看看。010-350000
下面我们来适当解释一下:SpeechSynthesis.paused:当SpeechSynthesis处于暂停状态时,布尔值返回true。SpeechSynthesis.pending:当语音播放队列保存至今未完成的语音时,布尔值返回true。SpeechSynthesis.speaking:在进行语音对话时,即使语音合成处于暂停状态,Boolean也会返回true。当SpeechSynthesis.getVoices()方法返回的SpeechSynthesisVoice列表发生变化时,将触发speech synthesis . onvoiceschanged :此外,还有几种非常实用的方法:
删除语音对话队列中的所有对话。返回当前设备所有可用声音的列表。将SpeechSynthesis对象设置为暂停状态。SpeechSynthesis.resume():将SpeechSynthesis对象设置为非暂停状态:如果已经暂停,则继续。SpeechSynthesis.speak():向语音对话队列添加一个话语;它将在其他语音对话结束后播放。API很简单,这里就不赘述了。我们举个例子来品味一下。五.代码演示
MDN Web Docs上有一个生动的例子。让我们带着它学习:
010-350000
注意:为了演示,这里只列出核心代码。请参见下面的“完整示例”以获取完整的代码。不及物动词补充:演讲人认知
010-350000
既然提到了文语转换,就不得不提语音识别。SpeechRecognition顾名思义就是语音识别,属于网页语音API。它需要麦克风等音频输入设备的支持,可以识别用户的语音输入,并转换成文字。
SpeechRecognition API需要硬件支持,所以兼容性不好,大致如下:
010-350000
七。对未来的想象
010-350000
相信在不久的将来,浏览器会逐渐统一,兼容性问题会消失。看,微软低下了高贵的头颅,投入了谷歌的怀抱。
我们会花更多的时间去探索技术,而不是去兼容旧的网站或者机器。当然,网络技术将会普及,用户将会有更有趣的体验。