JS实现文字转语音播放
背景
实现方式
第一种:百度文字转语音开放API
第二种:微软TTS语音引擎
第三种:SpeechSynthesisUtterance
总结
背景
在做项目的过程中,经常会遇到场景是客户要求播放语音的场景,所以将JS实现文字转语音播放的各种实现方式做统一整理。

实现方式
第一种:百度文字转语音开放API
注意:本方式一定要有外网,可以访问百度,不然无法远程调用百度接口。

接口:http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=2&text=你要转换的文字
lan=zh:语言是中文,如果改为lan=en,则语言是英文。
ie=UTF-8:文字格式。
spd=2:语速,可以是1-9的数字,数字越大,语速越快。
text=**:这个就是你要转换的文字。
JS示例:

function test(test){
var url = "http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&text='" +encodeURI(test);
var n = new Audio(url);
n.play;
}

  

第二种:微软TTS语音引擎
注意:本方式仅支持IE浏览器,需要调用IE内置ActiveX控件

安装方式:
a. 下载、并安装插件:微软TTS5.1语音引擎(中文)
b. 设置:安装好后,打开IE浏览器的Internet选项的安全中,点开自定义级别,打开各个站点,将“ActiveX控件和插件”下的所有栏目设为启用。
属性:
voiceObj.Rate:设置说话语速 语音朗读速度,取值范围为-10到+10。数值越大,速度越快
voiceObj.Volume:设置说话音量 取值范围为0到100。数值越大,音量越大。
方法:
voiceObj.Speak:朗读,将文本信息转换为语音并按照指定的参数进行朗读,该方法有Text和Flags两个参数,分别指定要朗读的文本和朗读方式(同步或异步等)。
voiceObj.GetVoices:获取系统中的语音,用于指定SpVoice的Voice属性。
voiceObj.Pause:暂停朗读,可暂停使用该对象的所有朗读进程。该方法没有参数。
voiceObj.Resume:恢复朗读,可恢复该对象所对应的被暂停的朗读进程。该方法没有参数。
voiceObj.Speak("", 2): 停止朗读,第一个参数设为空,第二个参数设为2
JS示例

var wordTemp = ""播放内容;
var obj = new ActiveXObject("Sapi.SpVoice");
obj.Speak(wordTemp );

  

第三种:SpeechSynthesisUtterance
SpeechSynthesisUtterance是HTML5中新增的API,用于将指定文字合成为对应的语音.也包含一些配置项,指定如何去阅读(语言,音量,音调)等,不支持IE浏览器。

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

var u = new SpeechSynthesisUtterrance();
u.text = "文字播放";
u.lang = 'zh';
u.rate = 0.7
speechSynthesis.speak(u);

  

原文参照

https://blog.csdn.net/WhiteEmperor/article/details/92568232

JS实现文字转语音播放的更多相关文章

  1. js 实现文字转音频播放

    var msg = new SpeechSynthesisUtterance("hello World"); console.log(msg); window.speechSynt ...

  2. web端文字转语音的几种方案

    最近在开发一个微信排队取号的的系统,其中对于服务员端(管理端) 需要有呼叫功能,即点按钮 就播出"xxx号顾客请就座"的声音. 经过在网上一番搜索研究,web端实现指定文字的语音播 ...

  3. js将文字转化为语音并播放

    js将页面中的某些文字信息转化为语音并自动播放 <!DOCTYPE html><html lang="en"><head> <meta c ...

  4. js文字转语音并播放

    这里调用的是百度文字转语音开放API html: <div> <input type="text" id="ttsText"> < ...

  5. [js常用]文字转化成语音

    使用百度语音接口,实现文字转化成语音播放 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" &qu ...

  6. js模仿微信语音播放的小功能

    自己写的一个模仿微信语音播放的小功能,实现的主要功能是:点击播放,点击暂停,播放切换,,,  代码如下: <!DOCTYPE html> <html lang="en&qu ...

  7. Delphi文字转语音TTS【支持选择语音库,播放,暂停,开始,停止,生成语音文件,设置音量,设置语速】

    作者QQ:(648437169) 点击下载➨文字转语音TTS [Delphi 文字转语音TTS]调用系统自带的TTS组件,支持XP,vista,win7,win8,win10系统,支持选择语音库,播放 ...

  8. js仿微信语音播放

    html结构如下: <div class="app-voice-you" voiceSrc="xx.mp3"> <img class=&quo ...

  9. Android文字转语音

    虽然视觉上的反馈通常是给用户提供信息最快的方式,但这要求用户把注意力设备上.当用户不能查看设备时,则需要一些其他通信的方法.Android提供了强大的文字转语音Text-to-Speech,TTS A ...

随机推荐

  1. Objective-C 消息发送与转发机制原理(摘)

    八面玲珑的 objc_msgSend 此函数是消息发送必经之路,但只要一提 objc_msgSend,都会说它的伪代码如下或类似的逻辑,反正就是获取 IMP 并调用: id objc_msgSend( ...

  2. Makefile 与tab

    Makefile文件由一系列规则(rules)构成.每条规则的形式如下. <target> : <prerequisites> [tab] <commands> 上 ...

  3. mysql 执行存储过程报错Prepared statement needs to be re-prepared

    今日思语:不喜欢再见 说再见,因为有时明知道下一次再见已是遥遥无期或是不再见 错误如下: ERROR 1615 (HY000) at line 406 in file: 'update-mysql.s ...

  4. OpenCV 学习笔记(0)两幅图像标定配准

    参考教程 依赖opencv扩展库,使用sifi匹配 保存配准信息 "./config/calibratedPara.yaml" #include <iostream> ...

  5. cronicle 任务调度一主多从安装试用

    cronicle 对于一主多从的安装还是很简单的,对于slave 就是少了setup一步,同时在master 界面,添加下slave 就可以了 就会加入集群中了 项目使用docker-compose ...

  6. 洛谷P3834题解

    若想要深入学习主席树,传送门. Description: 给定数列 \(\{a_n\}\) ,求闭区间 \([l,r]\) 的第 \(k\) 小的数. Method: 先对数据进行离散化,然后按照权值 ...

  7. discuz插件开发

    首先请修改global里的配载文件$_config['plugindeveloper'] = 2; 然后应用中心,点击设计插件 模块选择管理中心即可在应用里面显示链接 开发资料参考:http://fa ...

  8. vi 调到第一行和最后一行

    gg 跳到文件第一行Shift + g 跳到文件最后一行 chmod 777 abc.txt

  9. 20190815网络与信息安全领域专项赛线上赛misc WriteUp

    目录 签到题 题目内容 使用工具 解题步骤 七代目 题目下载地址 使用工具 解题步骤 亚萨西 题目下载链接 使用工具 解题步骤 24word 题目下载链接 使用工具 解题步骤 感想 几星期前报了名却完 ...

  10. web程序设计关于我们

    项目名称 福大咸鱼市场 开发团队 项目板块 负责人 美工 黄鸿杰 后端 胡继文 前端 葛家灿 联系方式:1175204449@qq.com