web端文字转语音播放的几种方式

以下列举几种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=**:这个就是你要转换的文字。

const text = '测试文字'
this.testAudio = new Audio()
this.testAudio.src = 'https://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=5&&text=' + text
this.testAudio.muted = false
this.testAudio.play()

二、SpeechSynthesisUtterance

HTML5中新增的API,用于将指定文字合成为对应的语音。不支持IE浏览器。
web端文字转语音播放的几种方式

this.speech = new SpeechSynthesisUtterance()
let speech = this.speech
speech.text = ‘测试文字’
speech.pitch = 1 // 设置话语的音调(0-2 默认1,值越大越尖锐,越低越低沉)
speech.rate = 0.9 // 设置说话的速度(0.1-10 默认1,值越大语速越快,越小语速越慢)
speech.volume = 10 // 设置说话的音量
speech.lang = 'zh-CN' // 设置播放语言
speechSynthesis.speak(speech)

三、微软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

var wordTemp = '测试文字'
var obj = new ActiveXObject("Sapi.SpVoice")
obj.Speak(wordTemp)

以上方法在web端播放一切正常,但是在移动端不能播放,求大神指教,下图是安卓的版本
web端文字转语音播放的几种方式

上一篇:论文翻译:2020_Densely connected neural network with dilated convolutions for real-time speech enhancemen


下一篇:【音频技术】智能语音(一)