JS实现文字转语音播放

背景

在做项目的过程中,经常会遇到场景是客户要求播放语音的场景,所以将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示例:
百度语音接口JS示例

第二种:微软TTS语音引擎

注意:本方式仅支持IE浏览器,需要调用IE内置ActiveX控件

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

第三种:SpeechSynthesisUtterance

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

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

总结

目前只找到这三种,后续如果再找到其他那么继续补充。

  • 12
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值