speechSynthesis没有声音
目录
- 前言
- 问题解决思路
- 1. 首先从代码中寻找答案,常用的speechSynthesis合成代码如下
- 2. 分析
- 3.解决
- 下载需要的文件
前言
本片文章首先针对的问题是[前端使用speechSynthesis合成声音,但是无法播放出声音的问题解决方案],目前所知道的出现问题的前提条件如下:
1、电脑系统为win7
2、浏览器不限制(google浏览器版本89前可以,89后需要使用其它解决方案)
问题解决思路
1. 首先从代码中寻找答案,常用的speechSynthesis合成代码如下
var utterThis = new window.SpeechSynthesisUtterance('你好,世界!');
window.speechSynthesis.speak(utterThis);
SpeechSynthesisUtterance对象有以下属性可以设置:
- text – 要合成的文字内容,字符串。
- lang – 使用的语言,字符串, 例如:“zh-cn”
- voiceURI – 指定希望使用的声音和服务,字符串。
- volume – 声音的音量,区间范围是0到1,默认是1。
- rate – 语速,数值,默认值是1,范围是0.1到10,表示语速的倍数,例如2表示正常语速的两倍。
- pitch – 表示说话的音高,数值,范围从0(最小)到2(最大)。默认值为1。
因此上面也可以写成如下代码:
var utterThis = new window.SpeechSynthesisUtterance('你好,世界!');
utterThis.text = "a";
utterThis.pitch = 2;
除了属性,当然还有一些方法可以进行调用:
- speak() – 只能接收SpeechSynthesisUtterance作为唯一的参数,作用是读合成的话语。
- stop() – 立即终止合成过程。
- pause() – 暂停合成过程。
- resume() – 重新开始合成过程。
- getVoices – 此方法不接受任何参数,用来返回浏览器支持的语音包列表,是个数组。
2. 分析
所有的属性和方法都分析过后,最终确定在了getVoices()这个方法上面,因为在可以播放声音的电脑上调用时返回了数据,然而在不能播放声音的电脑上调用时返回的是个空数组,那么我们大致可以确定问题关键了,就是没有语音包,按照正常流程,那就是下载系统语音包,然后安装重启即可,可是在实际操作中,并没有那么简单,因此按照此流程操作并不能解决问题。但是经过我多方资料查找,终于发现了一个可用的方案。
3.解决
下载需要的文件
- 下载win7TTS语言包
- 按照zip中description.txt文件的安装顺序安装即可
- 重启电脑
speechSynthesis没有声音相关推荐
- vue js 语音播报 语音读文字 window.speechSynthesis new SpeechSynthesisUtterance (补充无声音 问题解决办法)
存在问题1 : 在google chrome 89版本之后 默认使用的线上服务来合成语音 所以在国内可能会没有声音 解决办法 : 通过getVoices 获取 localService为true 的字 ...
- js解决浏览器,SpeechSynthesis不能正常合成中文语音
工作中遇到,浏览器不能合成语音; 解决思路,合成失败时, 循环合成列表, 找到能正常合成的为止; 对于一直不能合成的浏览器, 设置开关, 关闭循环功能 <!DOCTYPE html> &l ...
- JSElectron使用speechSynthesis进行语音合成
背景 近期项目有需求要语音实时合成,且在全内网的环境下. 第一时间想到的是pyttsx3,但无奈其貌似不能暂停语音播放,于是放弃. 然后发现这位老哥的文章,使用SpeechSynthesis这个API ...
- StompJS+SpeechSynthesis实现前端消息实时语音播报
前言 前端消息的实时推送我相信很多人不陌生,我们可以想到利用WebSocket,服务端主动向客户端推送数据,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输.其 ...
- H5语音合成SpeechSynthesis
SpeechSynthesis 介绍:文档传送门 网页语音 API 的SpeechSynthesis 接口是语音服务的控制接口:它可以用于获取设备上关于可用的合成声音的信息,开始.暂停语音,或除此之外 ...
- window.speechSynthesis.speak 不能自动执行问题
代码如下 博主试了 谷歌浏览器没声音 火狐浏览器有声音.win系统自带的浏览器也有声音 暂时没找到好的解决方法 function speak() {var utterThis = new window ...
- speechSynthesis.speak()在chrome不执行问题
现象: 其他支持此功能的浏览器正常,但chrome无声音,也没有执行speechSynthesisUtterance.onstart()方法. 大概推测的原因: 1. 打印window.speechS ...
- 人工智能在音频链中找到自己的声音
人工智能在音频链中找到自己的声音 AI finds its voice in audio chain 硅基silicon-based麦克风的出现重塑了音频领域.但在未来几年,市场研究公司Yole Dé ...
- DSP28335声音降噪(未完成)
1. 确定使用的模块是Webrtc-NS,采集声音的芯片TLV32AIC23,实际测试发现Webrtc-NS无法使用,所以改成FIR滤波器. 从时域特性上来看,数字滤波器还可以分为有限冲激响应数字滤波 ...
- 中国顶级黑客45秒使用声音来破坏您的计算机
近日,中国知名黑客教父,网络安全专家,东方联盟始创人郭盛华已经表明,您的文件可能会被声音损坏.那里已经有黑客窃取了破坏性的恶意软件,可以清除硬盘中的文件. 硬盘是一件奇迹般的事情,能够在极小的空间内存 ...
最新文章
- springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
- Failed to read schema document ‘http://code.alibabatech.com/schema/dubbo/dubbo.xsd‘问题解决方法
- python - work3
- web应用调试工具_如何使用浏览器开发人员工具调试渐进式Web应用程序
- 好大夫王航:长尾开发者应尽快接入百度轻应用
- h5 video 手机上无法显示_手机镜象投屏到电视上全屏显示
- coolfire文章之七
- 数据结构:图结构的实现
- 音乐播放器制作 (HTML + CSS + JavaScript)
- 部分GDAL工具功能简介
- Python实现画图软件功能
- MFC生成错误msado15.tlh(3991):fatal error C1003: 错误计数超过100;正在停止编译
- php程序设计专用周报告,《php程序设计》实验论文报告.doc
- 代付业务-受托代付、委托代付
- java中的参数传递(只有值传递没有引用传递)
- 杰理之唤醒源获取【篇】
- 【Carsim学习】Carsim2019安装教程
- 计算机操作系统实验指导 (第3版) 第四篇 操作系统学习指导和习题解析 第21章:虚拟存储管理 习题和答案
- eclipse安装TFS插件
- Windows10任务计划怎么用
热门文章
- Reactjs开发基础
- SIM卡中ICCID标识与IMSI的区别
- js实现form的submit请求
- 一文详解PPTC自恢复保险丝的设计应用
- python中quadratic_python 练习题:定义一个函数quadratic(a, b, c),接收3个参数,返回一元二次方程ax^2+bx+c=0的两个解...
- 交叉编译openssl(arm和x86_64)
- 安卓虚拟机 选择分辨率
- Dominating Patterns UVALive - 4670 AC自动机
- Windows 10无线网连不上怎么办-旧时光 oldtimeblog
- Android省市县三级联动 真实项目抽出 调用只需3行代码