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. appium环境应该注意问题

    python中的script要加入到环境变量中 pip3 install appium-python-client(安装appium模块通过引入webdriver) 如果pip3不是内部命令解决方法 ...

  2. uiwebview 离线缓存 图片

    uiwebview 离线缓存图片

  3. python--简单的文件断点续传实例

    一.程序说明 1.文件上传目标路径:home/file 2.目标文件:putfile.png 3.服务端代码:put_server.py 4.客户端代码:put_client.py 二.各部分代码 1 ...

  4. JS稀奇古怪题目

    JS稀奇古怪题目: 1.操作对象属性优先级高于普通赋值操作 var a = { n: 1 }; var b = a; //操作对象属性优先级高于普通赋值操作 a.x = a = { n: 2 }; c ...

  5. # [SDOI2019]移动金币 阶梯博弈 dp

    [SDOI移动金币 链接 vijos 思路 阶梯博弈,dp统计. 参见wxyww 代码 #include <bits/stdc++.h> using namespace std; cons ...

  6. request和response文件下载案例

    一.需求分析 * 文件下载需求: 1. 页面显示超链接 2. 点击超链接后弹出下载提示框 3. 完成图片文件下载 * 分析: 1. 超链接指向的资源如果能够被浏览器解析,则在浏览器中展示,如果不能解析 ...

  7. lastal

    http://last.cbrc.jp/doc/lastal.html This program finds local alignments between query sequences, and ...

  8. 【Alpha】“北航社团帮”小程序v1.0测试报告

    目录 测试计划.过程和结果 后端单元测试 后端压力测试 测试结果 指标解释 前端测试 授权登录与权限检查 功能测试 兼容性测试 性能测试 回答课程组问题 测试中发现的bug 场景测试 测试矩阵 出口条 ...

  9. SpringMVC(十六):如何使用编程方式替代/WEB-INF/web.xml中的配置信息

    在构建springmvc+mybatis项目时,更常用的方式是采用web.xml来配置,而且一般情况下会在web.xml中使用ContextLoaderListener加载applicationCon ...

  10. shell 备份mysql

    shell脚本备份mysql,放在crontab中,可以作为每日测试用数据库备份 #!/bin/bash string_time=`date +%Y%m%d%H%M`; file_path=`date ...