vue 前端JS实现文字转语音功能

vue 前端JS实现文字转语音功能

上代码

//data 中定义判断IE的方法
isIe():() => {
	if(!!window.ActiveXObject || "ActiveXObject " in window){
		return true
	}else{
		return false
	}
}
// methods
let msg = 'hello world'
if(this.isIe()){
	let voiceObj = new ActiveXObject("Sapi.SpVoice")
	voiceObj.Rate = -1 // 语速
	voiceObj.Volume = 60 // 音量
	voiceObj.Speak(msg,1)
}else{
	let speakMsg = new SpeechSynthesisUtterance(msg)
	speakMsg.rate = 1 // 语速
	speakMsg.pitch = 1.5 // 音量
	window.speechSynthesis.speak(speakMsg)
}
/*
	循环播放语音
	第一种: 不点击触发下列方法,需要后台通过Websocket推送消息,前端参考HTML5 WebSocket设置接收后台消息并触发下面方法
	第二种: 通过事件触发
	第三种: 一进入页面自动播放,将下列方法放到mounted()或者created()中即可
*/
	let timer
	timer = setInterval(() => {
		let msg = 'hello world'
		if(this.isIe()){
			let voiceObj = new ActiveXObject("Sapi.SpVoice")
			voiceObj.Rate = -1 // 语速
			voiceObj.Volume = 60 // 音量
			voiceObj.Speak(msg,1)
		}else{
			let speakMsg = new SpeechSynthesisUtterance(msg)
			speakMsg.rate = 1 // 语速
			speakMsg.pitch = 1.5 // 音量
			window.speechSynthesis.speak(speakMsg)
		}
	}, 延时的时间)
	setTimeOut(() => {
		// 一段时间后清除定时器
		clearInterval(timer)
	}, 一段时间)

	// 如果需要点击循环再次点击移除可手动添加移除定时器
	

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值