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)
	}, 一段时间)

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

    原文作者:冬至1931
    原文地址: https://blog.csdn.net/dzhi1931/article/details/109244797
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞