vue项目或网页上实现文字转换成语音播放功能


Posted in Javascript onJune 09, 2020

一、在网页上实现文字转换成语音

方式一:

摘要:语音合成:也被称为文本转换技术(TTS),它是将计算机自己产生的、或外部输入的文字信息转变为可以听得懂的、流利的口语输出的技术。
1、 使用百度的接口:

http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=2&text=你要转换的文字

2、参数说明:

lan=zh:语言是中文,如果改为lan=en,则语言是英文。

ie=UTF-8:文字格式。

spd=2:语速,可以是1-9的数字,数字越大,语速越快。

text=**:这个就是你要转换的文字。
3、代码示例:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>语音测试</title>
	</head>
	<body>
		<div>
			<input type="text" id="ttsText">
			<input type="button" id="tts_btn" onclick="doTTS()" value="播放">
		</div>
		<div id="bdtts_div_id">
			<audio id="tts_autio_id" autoplay="autoplay">
				<source id="tts_source_id" src="http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=9&text=播报内容" type="audio/mpeg">
				<embed id="tts_embed_id" height="0" width="0" src="">
 </audio>
		</div>
	</body>
	<script type="text/javascript"> 
		function doTTS(){
			var ttsDiv = document.getElementById('bdtts_div_id');
			var ttsAudio = document.getElementById('tts_autio_id');
			var ttsText = document.getElementById('ttsText').value;

			ttsDiv.removeChild(ttsAudio);
			var au1 = '<audio id="tts_autio_id" autoplay="autoplay">';
			var sss = '<source id="tts_source_id" src="http://tts.baidu.com/text2audio?lan=Zh&ie=UTF-8&spd=4&text='+ttsText+'" type="audio/mpeg">';
			var eee = '<embed id="tts_embed_id" height="0" width="0" src="">';
			var au2 = '</audio>';
			ttsDiv.innerHTML = au1 + sss + eee + au2;
			
			ttsAudio = document.getElementById('tts_autio_id');
			
			ttsAudio.play();
		}
		</script>
</html>

方式二:
1、调动方法:参数为指定文字
2、这里主要用的是SpeechSynthesisUtterance的方法
3、代码示例:

在这里插入代码片
<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>
	<button id="abc">点击</button>
</body>
</html>
<script type="text/javascript">
	// window.οnlοad=function(){
	// 	const synth = window.speechSynthesis
		// let msg = new SpeechSynthesisUtterance("你好");
	// console.log(msg)
	// //msg.rate = 4 播放语速
	// //msg.pitch = 10 音调高低
	// //msg.text = "播放文本"
	// //msg.volume = 0.5 播放音量
	// synth.speak(msg);
	// }
	const synth = window.speechSynthesis
	const msg = new SpeechSynthesisUtterance()
	msg.text = 'hello world'
	msg.lang = 'zh-CN'
	function handleSpeak(e) {
		synth.speak(msg)
	}
	function throttle(fn,delay) {
		let last = 0
		return function() {
	 		const now = new Date()
	 		if(now - last > delay) {
	 		fn.apply(this,arguments)
	 		last = now
	 		}
		}
	}
 
 console.log(msg);
 
	document.getElementById('abc').onclick=throttle(handleSpeak,1000);
</script>

二、在vue项目中实现文字转换为语音播放

1、调用方法:参数为指定的文字
2、主要使用的也是是SpeechSynthesisUtterance的方法(其他方法也可以,如使用百度的接口)
3、代码示例:

在这里插入代码片
 <img
 v-on:click="read(word.word)"
 src="../../assets/laba.png"
 alt="小喇叭"
 width="20px"
 height="20px"
 style="float: right;margin-top: 7px"
 />
在这里插入代码片
 methods: {
 read: function(word) {
 const synth = window.speechSynthesis;
 const msg = new SpeechSynthesisUtterance();
 msg.text = word;
 msg.lang = "zh-CN";
 function handleSpeak(e) {
 synth.speak(msg);
 }
 function throttle(fn, delay) {
 let last = 0;
 return function() {
 const now = new Date();
 if (now - last > delay) {
 fn.apply(this, arguments);
 last = now;
 }
 };
 }
 console.log(msg);

 throttle(handleSpeak(), 1000);
 },
 }

点击小喇叭即可播放

vue项目或网页上实现文字转换成语音播放功能

总结

到此这篇关于在vue项目或网页上实现文字转换成语音的文章就介绍到这了,更多相关在vue项目或网页上实现文字转换成语音内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
关于图片按比例自适应缩放的js代码
Oct 30 Javascript
jquery获取css中的选择器(实例讲解)
Dec 02 Javascript
JavaScript使用循环和分割来替换和删除元素实例
Oct 13 Javascript
倾力总结40条常见的移动端Web页面问题解决方案
May 24 Javascript
jquery实现tab选项卡切换效果(悬停、下方横线动画位移)
May 05 jQuery
jQuery遍历节点方法汇总(推荐)
May 13 jQuery
JavaScript实现移动端轮播效果
Jun 06 Javascript
Vue.js基础指令实例讲解(各种数据绑定、表单渲染大总结)
Jul 03 Javascript
详解vue-router 路由元信息
Sep 13 Javascript
返回上一个url并刷新界面的js代码
Sep 12 Javascript
如何手动实现一个 JavaScript 模块执行器
Oct 16 Javascript
处理canvas绘制图片模糊问题
May 11 Javascript
浅谈vue的第一个commit分析
Jun 08 #Javascript
从零开始在vue-cli4配置自适应vw布局的实现
Jun 08 #Javascript
详解Vue Cli浏览器兼容性实践
Jun 08 #Javascript
解决微信授权成功后点击按返回键出现空白页和报错的问题
Jun 08 #Javascript
微信h5静默和非静默授权获取用户openId的方法和步骤
Jun 08 #Javascript
基于javascript处理二进制图片流过程详解
Jun 08 #Javascript
vue-router的hooks用法详解
Jun 08 #Javascript
You might like
用php解析html的实现代码
2011/08/08 PHP
如何解决CI框架的Disallowed Key Characters错误提示
2013/07/05 PHP
php图片水印添加、压缩、剪切的封装类实现
2020/04/18 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
2018/08/21 PHP
window.event快达到全浏览器支持了,以后使用就方便了
2011/11/30 Javascript
用JavaScript实现动画效果的方法
2013/07/20 Javascript
javascript实现日期格式转换
2014/12/16 Javascript
JavaScript中匿名函数用法实例
2015/03/23 Javascript
javascript实现的简单的表单验证
2015/07/10 Javascript
JavaScript常用数组算法小结
2016/02/13 Javascript
深入理解关于javascript中apply()和call()方法的区别
2016/04/12 Javascript
JavaScript实现广告弹窗效果
2016/08/09 Javascript
jquery购物车结算功能实现方法
2020/10/29 Javascript
jQuery中DOM节点删除之empty与remove
2017/01/20 Javascript
node.js中debug模块的简单介绍与使用
2017/04/25 Javascript
vue父组件点击触发子组件事件的实例讲解
2018/02/08 Javascript
Vue filter介绍及详细使用
2018/04/04 Javascript
Vue封装的组件全局注册并引用
2019/07/24 Javascript
Vue父子之间值传递的实例教程
2020/07/02 Javascript
vue同个按钮控制展开和折叠同个事件操作
2020/07/29 Javascript
使用JavaScript和MQTT开发物联网应用示例解析
2020/08/07 Javascript
Python使用poplib模块和smtplib模块收发电子邮件的教程
2016/07/02 Python
python装饰器初探(推荐)
2016/07/21 Python
Python通过future处理并发问题
2017/10/17 Python
Python 数据处理库 pandas进阶教程
2018/04/21 Python
css3 media 响应式布局的简单实例
2016/08/03 HTML / CSS
HTML5中的nav标签学习笔记
2016/06/24 HTML / CSS
英国著名的茶叶品牌:Whittard of Chelsea
2016/09/22 全球购物
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
2013/03/30 面试题
Java面试题汇总
2015/12/06 面试题
个人求职自荐信范文
2014/06/20 职场文书
企业三严三实学习心得体会
2014/10/13 职场文书
2015年母亲节活动总结
2015/02/10 职场文书
致地震灾区的慰问信
2015/03/23 职场文书
导游词之鲁迅祖居
2019/10/17 职场文书
Java使用httpRequest+Jsoup爬取红蓝球号码
2021/07/02 Java/Android