广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >如何用JavaScript让你的浏览器说话
  • 194
分享到

如何用JavaScript让你的浏览器说话

2024-04-02 19:04:59 194人浏览 泡泡鱼
摘要

目录1. 最简单的例子2. 自定义语速和音调3. 怎么调整音量4. 常用的函数5. 事件监听6. 总结1. 最简单的例子 让我们来创建一个基础函数,这个函数的参数为我们想说的话或者词

1. 最简单的例子

让我们来创建一个基础函数,这个函数的参数为我们想说的话或者词,最后让我们的浏览器说出来。我们将利用在大多数现代浏览器上都可以使用的原生apispeechSyntehsis。


function speak(sentence) {
    const utterance = new SpeechSynthesisUtterance(sentence)
    window.speechSynthesis.speak(utterance)
}

// test
speak('hello world');

信不信由你,以上的代码就是让大部分浏览器说出一句话所需要的一切!让我们来看看这里具体发生了什么。

我们创建的speak()函数,该函数以词句为参数。我们创建了一个发声对象,他实际上是一个语言请求对象,其中包含了有关说什么和如何说相关的所有数据。

2. 自定义语速和音调

让我们做一个稍微复杂一点的示例,尝试修改说出来的单词的速度和音调。



function speak(sentence, pitch, rate) {
    const utterance = new SpeechSynthesisUtterance(sentence)

    utterance.rate = rate
    utterance.pitch = pitch

    window.speechSynthesis.speak(utterance)
}

在上面的示例中,我们基于原来函数增加了音调和语速2个参数。在我们创建了发声对象之后,我们可以直接在发声对象上直接修改某些属性。但是,目前还不能通过构造函数或者setter方法来修改。

pitch(音调)是一个浮点数,取值范围是0到2,默认值是1。这个值的效果可能受到引擎或者声音的限制。

rate(语速)是一个浮点数,取值范围是0.1到10,默认值是1。

现在,如果我们使用简单的句子调用上面的代码,我们的浏览器就会以正常的语速和音调说出下面的话:


speak('Hello world', 1, 1)

3. 怎么调整音量

我们也可以像调整音调和速度一样调整音量,让我们来快速了解一下如何实现



function speak(sentence, volume) {
    const utterance = new SpeechSynthesisUtterance(sentence)

    utterance.volume = volume

    window.speechSynthesis.speak(utterance)
}

修改之前的代码,我们现在传入音量参数。音量也是一个浮点数,取值范围0到1,默认值是0.5。

同样,目前没有办法通过构造函数或者setter方法来设置音量。现在,我们给这个函数传入自己想要的句子和音量就能听到想要的结果了。

4. 常用的函数

speechSynthesis对象有一些可以派得上用场的函数。我们可以暂停、恢复、甚至取消语言的进度。让我们快速浏览一下:


const utterance = new SpeechSynthesisUtterance('Hello world');
window.speechSynthesis.speak(utterance);

// 暂停 
window.speechSynthesis.pause();
// 恢复
window.speechSynthesis.resume();
// 取消
window.speechSynthesis.cancel();

上面的代码将会说出我们想要的句子,并且这段语音会暂停、恢复,最终取消。你也可以在你的浏览器里面试一试上面的代码。

我们也可以通过speechSynthesis对象上的paused属性来直接判断该段音频是否被暂停,它将会返回一个布尔值来表示该段音频是否被暂停了。


window.speechSynthesis.paused // Boolean

如果还有一些积压的等待读出来的句子怎么办?嗯,还有一个属性pending,用来检查是否有任何等待说出来的语音。它返回一个布尔值,指示是否有待处理的语音。


const utterThis = new SpeechSynthesisUtterance('Hello world');
const utterThat = new SpeechSynthesisUtterance('Hello javascript');

window.speechSynthesis.speak(utterThis);
window.speechSynthesis.speak(utterThat);
window.speechSynthesis.pending;

执行上面的代码时,将会有两段语音排队,并且他们会按照顺序播放。当我们获取pending属性时,这个值将返回true,因为,有第二段语音在等待播放。

注意:如果你只有一段语音,这个pending属性将会一直返回false,因为没有排队等待播放的语音。

5. 事件监听

当我们使用SpeechSynthesisUtteranceapi时,我们可以监听几个比较有用的事件。让我们一起看一下:


const utterance = new SpeechSynthesisUtterance('Hello world')

utterance.addEventListener('start', () => console.log('Utterance start'))
utterance.addEventListener('pause', () => console.log('Utterance paused'))
utterance.addEventListener('resume', () => console.log('Utterance resumed'))
utterance.addEventListener('end', () => console.log('Utterance end'))

window.speechSynthesis.speak(utterance)

6. 总结

希望这篇文章足以让你在浏览器里面玩转“合成语音”啦!你现在应该掌握了如何开始,停止和暂停语音,以及调整语音的速率,音调和音量。

以上就是如何用JavaScript让你的浏览器说话的详细内容,更多关于JavaScript的资料请关注编程网其它相关文章!

--结束END--

本文标题: 如何用JavaScript让你的浏览器说话

本文链接: https://www.lsjlt.com/news/124800.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何用JavaScript让你的浏览器说话
    目录1. 最简单的例子2. 自定义语速和音调3. 怎么调整音量4. 常用的函数5. 事件监听6. 总结1. 最简单的例子 让我们来创建一个基础函数,这个函数的参数为我们想说的话或者词...
    99+
    2022-11-12
  • 怎么使用JavaScript让你的浏览器说话
    这篇文章主要介绍怎么使用JavaScript让你的浏览器说话,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!javascript是一种什么语言javascript是一种动态类型、弱类型的语言,基于对象和事件驱动并具有相...
    99+
    2023-06-14
  • 如何实现让ie浏览器成为支持html5的浏览器
    本篇内容主要讲解“如何实现让ie浏览器成为支持html5的浏览器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何实现让ie浏览器成为支持html5的浏览器”吧...
    99+
    2022-10-19
  • IE浏览器如何启用javascript
    这篇文章主要介绍了IE浏览器如何启用javascript,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 IE浏览...
    99+
    2022-10-19
  • 如何用JavaScript检测当前浏览器是无头浏览器
    目录什么是无头浏览器(headless browser)?为什么叫“无头”浏览器?为什么要检测无头浏览器?检测无头浏览器User agent插件 Plugins语言WebGL浏览器特...
    99+
    2022-11-12
  • 如何使用JavaScript检测当前浏览器是无头浏览器
    这篇文章将为大家详细讲解有关如何使用JavaScript检测当前浏览器是无头浏览器,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。javascript是一种什么语言javascript是一种动态类型、弱类型...
    99+
    2023-06-14
  • 如何分析针对HTTPS浏览器会话的攻击
    如何分析针对HTTPS浏览器会话的攻击,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。关于SSL网站的好消息就是:大多数SSL网站都运行着强大的加密技术。坏消息就是:超过60%的...
    99+
    2023-06-12
  • 如何打开浏览器的JavaScript支持
    随着互联网技术的不断发展,网站变得越来越复杂,JavaScript也成为现代网站开发的一个重要组成部分。但是,在浏览网站时,有些人可能会遇到浏览器不支持JavaScript的情况。那么,如何打开浏览器的JavaScript支持呢?检查浏览器...
    99+
    2023-05-14
  • 如何按照字体名称调用字体让浏览器显示你希望的字体
    本篇内容介绍了“如何按照字体名称调用字体让浏览器显示你希望的字体”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!第1个问题:你如何指示浏览器显...
    99+
    2023-06-08
  • javascript中浏览器是如何看闭包的
    小编给大家分享一下javascript中浏览器是如何看闭包的,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言闭包,是javascript的一大理解难点,网上关于...
    99+
    2023-06-25
  • JavaScript浏览器的兼容问题如何解决
    本文小编为大家详细介绍“JavaScript浏览器的兼容问题如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript浏览器的兼容问题如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。inn...
    99+
    2023-07-04
  • 如何让网页自动调用双核浏览器的极速模式
    本篇内容介绍了“如何让网页自动调用双核浏览器的极速模式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在head标签中添加一行代码: XML/...
    99+
    2023-06-08
  • 如何使用JavaScript检测空闲的浏览器选项卡
    今天就跟大家聊聊有关如何使用JavaScript检测空闲的浏览器选项卡,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在某些情况下,当用户与我们的最终...
    99+
    2022-10-19
  • 如何用JavaScript让你的网页放烟花
    本篇文章给大家分享的是有关如何用JavaScript让你的网页放烟花,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。马上就要过春节了,大城市里依...
    99+
    2022-10-19
  • javascript如何实现浏览器用户代理检测脚本
    这篇文章给大家分享的是有关javascript如何实现浏览器用户代理检测脚本的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。以下是完整的用户代理字符串检测脚本,包括检测呈现引擎、平...
    99+
    2022-10-19
  • 如何让HTML5和CSS3网站在微软的浏览器中也能运行
    这篇文章给大家介绍如何让HTML5和CSS3网站在微软的浏览器中也能运行,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 起初,IE其实也是一款非常有进取心...
    99+
    2022-10-19
  • JavaScript如何通过userAgent判断几个常用浏览器详解
    前言 通常在做h5页面的时候需要在微信、QQ、微博等生态内做一些引流的工作,但引流时受限于这些平台。比如上次的文章《h5唤醒app实现以及注意点》就是妥协的一个办法,那么常用的这几个...
    99+
    2022-11-12
  • 如何使用JavaScript实现手机端判断浏览器类型
    这篇文章主要介绍如何使用JavaScript实现手机端判断浏览器类型,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!手机端判断浏览器类型BrowserInfo = {  &nbs...
    99+
    2023-06-20
  • Python爬虫如何使用浏览器的cookies browsercookie
    这篇文章给大家介绍Python爬虫如何使用浏览器的cookies browsercookie,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。很多用Python的人可能都写过网络爬虫,自动化获取网络数据确实是一件令人愉悦的...
    99+
    2023-06-02
  • 如何下载文件并使用Javascript将其压缩在浏览器中
    如何下载文件并使用Javascript将其压缩在浏览器中,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。与其生成zip文件并从您...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作