SpeechSynthesisUtterance基本介绍

SpeechSynthesisUtterance是HTML5中新增的API,用于将指定文字合成为对应的语音.也包含一些配置项,指定如何去阅读(语言,音量,音调)等

官方文档地址(https://developer.mozilla.org/zh-CN/docs/Web/API/SpeechSynthesisUtterance)

SpeechSynthesisUtterance基本属性

  • SpeechSynthesisUtterance.lang 获取并设置话语的语言
  • SpeechSynthesisUtterance.pitch 获取并设置话语的音调(值越大越尖锐,越低越低沉)
  • SpeechSynthesisUtterance.rate 获取并设置说话的速度(值越大语速越快,越小语速越慢)
  • SpeechSynthesisUtterance.text 获取并设置说话时的文本
  • SpeechSynthesisUtterance.voice 获取并设置说话的声音
  • SpeechSynthesisUtterance.volume 获取并设置说话的音量
  • SpeechSynthesisUtterance.text基本方法
  • speak() 将对应的实例添加到语音队列中
  • cancel() 删除队列中所有的语音.如果正在播放,则直接停止
  • pause() 暂停语音
  • resume() 恢复暂停的语音
  • getVoices 获取支持的语言数组. 注意:必须添加在voiceschanged事件中才能生效

使用demo

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><div><label for="voices">语言:</label><select name="voice" id="voices"><option value="">请选择</option><!-- <option value="Google_SC">Google 普通话(中国大陆)</option><option value="Kangkang_SC">Microsoft Kangkang - Chinese (Simplified, PRC)</option> --></select></div><div><label for="rate">语速:</label><input id="rate" name="rate" type="range" min="0" max="3" value="1" step="0.1"></div><div><label for="pitch">音调:</label><input id="pitch" name="pitch" type="range" min="0" max="2" step="0.1"></div><div><textarea id="text" name="text"></textarea></div><div><button onclick="startAudio()">点击播放语音</button></div><div><button onclick="stopAudio()">点击结束语音</button></div><div><button onclick="pauseAudio()">点击暂停语音</button></div><div><button onclick="resumeAudio()">恢复暂停的语音</button></div></body>
<script>let utterance = new SpeechSynthesisUtterance() // 创建 语音对象// 获取元素对象let dom_voices = document.querySelector('#voices')const options = document.querySelectorAll('[type="range"], [name="text"]')options.forEach(e => e.addEventListener('change', handleChange))// voiceschanged 事件speechSynthesis.addEventListener('voiceschanged', () => {let voices = speechSynthesis.getVoices();// 根据系统语音创建选项voices.forEach(e => {const option = document.createElement('option')option.value = e.langoption.text = e.namedom_voices.appendChild(option)})})// 发生改变时触发function handleChange(e) {// console.log(this.name, this.value);utterance[this.name] = this.value}function startAudio() {utterance.lang = dom_voices.selectedOptions[0].value // 设置语言speechSynthesis.speak(utterance);}// 点击结束语音function stopAudio() {speechSynthesis.cancel(utterance)}function pauseAudio() {speechSynthesis.pause(utterance)}function resumeAudio() {speechSynthesis.resume(utterance);}
</script></html>

js 文字转语音 api SpeechSynthesisUtterance相关推荐

  1. 【存货系列】JS文字转语音方案设计及实现

    文章目录 JS文字转语音方案设计及实现 写在前面的话 设计思路 总体逻辑设计 核心接口设计 代码实现 可配置对象 初始化函数 IE浏览器实现 Chrome/Safari浏览器实现 使用方式 引入js文 ...

  2. 【Qbot】6.讯飞文字转语音Api使用/VITS派蒙复读机实现

    该项目计划长期进行维护更新,欢迎star:https://github.com/zstar1003/Qbot 前言 看完流浪地球2之后,萌生了一个想法:我想给机器人完整的一生.作为一个完整的机器人,声 ...

  3. JS文字转语音技术实现

    前言 最近在做排队叫号系统,涉及到文字转语音播报,因此总结了几种前端文字转语音发声的方法. 一.Web Speech API h5新提供的一个原生语音识别技术的API,可以将文本转成语音并播放. 作为 ...

  4. 微信小程序调用百度文字转语音API

    文字转语音,这里接入的是百度的https://ai.baidu.com/docs#/TTS-API/top里面有详细的介绍怎么去申请.不多说什么 直接效果已解决ios播放没有语音的bug,已经亲测魅族 ...

  5. html+js文字合成语音代码 支持在线试听播放和转换成mp3格式下载到本地 单文件 便携版 在线AI文字转换音频速度超快

    <!doctype html><html lang="en"><head><meta charset="UTF-8"& ...

  6. 百度文字转语音Api,文字长度限制问题

    百度合成语音接口,文字内容长度限制,纯汉字不得超过2048个(不包含任何其他字符,否则报错) 百度语音合成接口使用,就不再累赘,去参考这个博主的文章 https://blog.csdn.net/bel ...

  7. 文字转语音的api接口

    话不多说,直接干货 一.百度接口实现免费文字转语音 http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=4&text=你好啊 ...

  8. Python调用有道语音API实现文字转音频

    有道文字转语音API: https://ai.youdao.com/DOCSIRMA/html/语音合成TTS/API文档/语音合成服务/语音合成服务-API文档.html 获取应用ID和应用密钥: ...

  9. vue+文字转换为语音播放,播放指定内容,附带js版本 ,SpeechSynthesisUtterance

    首先: 调动方法:参数为指定文字: //语音播报yybbFun(data){this.commonjs.handleSpeak(data);}, 公共方法地址: https://mp.csdn.net ...

最新文章

  1. 电信运营商如何玩转大数据?
  2. 2019了,互联网研发是不是都快要被淘汰了?
  3. 央行允许银行倒闭破产,那么储户的存款怎么办?
  4. c语言 抽奖算法,腾讯2018校招笔试!抽奖算法思路c++实现!进入鹅厂真的简单!...
  5. JAVA单例模式 关于延迟加载问题
  6. Netty工作笔记0017---Channel和Buffer梳理
  7. Android程序对不同手机屏幕分辨率自适应的总结
  8. flink实战—时间窗口(Time Windows)的原理和使用
  9. 解读《美国国家BIM标准》– BIM能力成熟度模型(五)
  10. 淘宝签名分析之一(反编译和利用frida快速找点)
  11. ubuntu下配置host的方法
  12. 如何部署JSP应用到阿里云服务器上(一)
  13. IDEA创建Maven工程Servlet
  14. 淘宝天猫使用内部优惠券购物省钱指南
  15. 微信小程序列表项的右侧带箭头怎么做?
  16. PhpStorm配置Vue
  17. unity-大地图分块加载研究
  18. 卫星测控matlab程序,北斗卫星导航信号串行捕获算法MATLAB仿真报告(附MATLAB程序).docx...
  19. 预算内资金 budgetary funds
  20. KTX 和 Kotlin android extension 都到底是个啥?

热门文章

  1. matlab单相电源在哪里,浅谈基于MATLAB的单相独立光伏逆变电源电路仿真设计
  2. gRPC-Go入门教程
  3. 内蒙古计算机四级网络工程师报名时间,2021内蒙古软考报名-信息系统项目管理师报名-系统集成项目管理工程师报名-报名简章-报名通知...
  4. python实现《五子棋》
  5. 发布移动App应用,Android应用市场发布渠道
  6. VH-HFCN based Parking Slot and Lane Markings Segmentation on Panoramic Surround View
  7. python检测猫脸
  8. html制作进销存,手把手教你定制属于自己的进销存软件
  9. 超材料 s参数反演 matlab,一种基于改进K‑K算法的超材料电磁参数反演方法与流程...
  10. Ubuntu20.04安装UHD3.15+GNURadio3.8