目录

  • 前言
  • 问题解决思路
    • 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.解决

下载需要的文件

  1. 下载win7TTS语言包
  2. 按照zip中description.txt文件的安装顺序安装即可
  3. 重启电脑

speechSynthesis没有声音相关推荐

  1. vue js 语音播报 语音读文字 window.speechSynthesis new SpeechSynthesisUtterance (补充无声音 问题解决办法)

    存在问题1 : 在google chrome 89版本之后 默认使用的线上服务来合成语音 所以在国内可能会没有声音 解决办法 : 通过getVoices 获取 localService为true 的字 ...

  2. js解决浏览器,SpeechSynthesis不能正常合成中文语音

    工作中遇到,浏览器不能合成语音; 解决思路,合成失败时, 循环合成列表, 找到能正常合成的为止; 对于一直不能合成的浏览器, 设置开关, 关闭循环功能 <!DOCTYPE html> &l ...

  3. JSElectron使用speechSynthesis进行语音合成

    背景 近期项目有需求要语音实时合成,且在全内网的环境下. 第一时间想到的是pyttsx3,但无奈其貌似不能暂停语音播放,于是放弃. 然后发现这位老哥的文章,使用SpeechSynthesis这个API ...

  4. StompJS+SpeechSynthesis实现前端消息实时语音播报

    前言 前端消息的实时推送我相信很多人不陌生,我们可以想到利用WebSocket,服务端主动向客户端推送数据,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输.其 ...

  5. H5语音合成SpeechSynthesis

    SpeechSynthesis 介绍:文档传送门 网页语音 API 的SpeechSynthesis 接口是语音服务的控制接口:它可以用于获取设备上关于可用的合成声音的信息,开始.暂停语音,或除此之外 ...

  6. window.speechSynthesis.speak 不能自动执行问题

    代码如下 博主试了 谷歌浏览器没声音 火狐浏览器有声音.win系统自带的浏览器也有声音 暂时没找到好的解决方法 function speak() {var utterThis = new window ...

  7. speechSynthesis.speak()在chrome不执行问题

    现象: 其他支持此功能的浏览器正常,但chrome无声音,也没有执行speechSynthesisUtterance.onstart()方法. 大概推测的原因: 1. 打印window.speechS ...

  8. 人工智能在音频链中找到自己的声音

    人工智能在音频链中找到自己的声音 AI finds its voice in audio chain 硅基silicon-based麦克风的出现重塑了音频领域.但在未来几年,市场研究公司Yole Dé ...

  9. DSP28335声音降噪(未完成)

    1. 确定使用的模块是Webrtc-NS,采集声音的芯片TLV32AIC23,实际测试发现Webrtc-NS无法使用,所以改成FIR滤波器. 从时域特性上来看,数字滤波器还可以分为有限冲激响应数字滤波 ...

  10. 中国顶级黑客45秒使用声音来破坏您的计算机

    近日,中国知名黑客教父,网络安全专家,东方联盟始创人郭盛华已经表明,您的文件可能会被声音损坏.那里已经有黑客窃取了破坏性的恶意软件,可以清除硬盘中的文件. 硬盘是一件奇迹般的事情,能够在极小的空间内存 ...

最新文章

  1. springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
  2. Failed to read schema document ‘http://code.alibabatech.com/schema/dubbo/dubbo.xsd‘问题解决方法
  3. python - work3
  4. web应用调试工具_如何使用浏览器开发人员工具调试渐进式Web应用程序
  5. 好大夫王航:长尾开发者应尽快接入百度轻应用
  6. h5 video 手机上无法显示_手机镜象投屏到电视上全屏显示
  7. coolfire文章之七
  8. 数据结构:图结构的实现
  9. 音乐播放器制作 (HTML + CSS + JavaScript)
  10. 部分GDAL工具功能简介
  11. Python实现画图软件功能
  12. MFC生成错误msado15.tlh(3991):fatal error C1003: 错误计数超过100;正在停止编译
  13. php程序设计专用周报告,《php程序设计》实验论文报告.doc
  14. 代付业务-受托代付、委托代付
  15. java中的参数传递(只有值传递没有引用传递)
  16. 杰理之唤醒源获取【篇】
  17. 【Carsim学习】Carsim2019安装教程
  18. 计算机操作系统实验指导 (第3版) 第四篇 操作系统学习指导和习题解析 第21章:虚拟存储管理 习题和答案
  19. eclipse安装TFS插件
  20. Windows10任务计划怎么用

热门文章

  1. Reactjs开发基础
  2. SIM卡中ICCID标识与IMSI的区别
  3. js实现form的submit请求
  4. 一文详解PPTC自恢复保险丝的设计应用
  5. python中quadratic_python 练习题:定义一个函数quadratic(a, b, c),接收3个参数,返回一元二次方程ax^2+bx+c=0的两个解...
  6. 交叉编译openssl(arm和x86_64)
  7. 安卓虚拟机 选择分辨率
  8. Dominating Patterns UVALive - 4670 AC自动机
  9. Windows 10无线网连不上怎么办-旧时光 oldtimeblog
  10. Android省市县三级联动 真实项目抽出 调用只需3行代码