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 相关文章推荐
百度Popup.js弹出框进化版 拖拽小框架发布 兼容IE6/7/8,Firefox,Chrome
Apr 13 Javascript
json数据的列循环示例
Sep 06 Javascript
JavaScript中的运算符种类及其规则介绍
Sep 26 Javascript
js特殊字符过滤的示例代码
Mar 05 Javascript
Node.js中require的工作原理浅析
Jun 24 Javascript
JS获取当前日期时间并定时刷新示例
Mar 04 Javascript
浅谈Javascript中Object与Function对象
Sep 26 Javascript
理解JavaScript中Promise的使用
Jan 18 Javascript
详解jQuery lazyload 懒加载
Dec 19 Javascript
jQuery实现点击关注和取消功能
Jul 03 jQuery
JS获取当前时间的实例代码(昨天、今天、明天)
Nov 13 Javascript
ES6对象操作实例详解
May 23 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
2020最新CPU的性能排名
2020/04/02 数码科技
PHP无刷新上传文件实现代码
2011/09/19 PHP
php从数据库中获取数据用ajax传送到前台的方法
2018/08/20 PHP
在laravel中使用with实现动态添加where条件
2019/10/10 PHP
检测jQuery.js是否已加载的判断代码
2011/05/20 Javascript
自己编写的类似JS的trim方法
2013/10/09 Javascript
ie9 提示'console' 未定义问题的解决方法
2014/03/20 Javascript
点击button获取text内容并改变样式的js实现
2014/09/09 Javascript
JS实现控制表格行内容垂直对齐的方法
2015/03/30 Javascript
jQuery控制元素显示、隐藏、切换、滑动的方法总结
2015/04/16 Javascript
JavaScript中split() 使用方法汇总
2015/04/17 Javascript
JS使用JSON作为参数实例分析
2016/06/23 Javascript
微信小程序 免费SSL证书https、TLS版本问题的解决办法
2016/12/14 Javascript
vue2.0设置proxyTable使用axios进行跨域请求的方法
2017/10/19 Javascript
vue.js select下拉框绑定和取值方法
2018/03/03 Javascript
Vue插槽原理与用法详解
2019/03/05 Javascript
vue单页应用的内存泄露定位和修复问题小结
2019/08/02 Javascript
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
2018/04/08 Python
详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
2018/12/02 Python
python3爬虫怎样构建请求header
2018/12/23 Python
详解Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)
2019/05/27 Python
Python中调用其他程序的方式详解
2019/08/06 Python
python学生信息管理系统实现代码
2019/12/17 Python
学习Python列表的基础知识汇总
2020/03/10 Python
ubuntu 安装pyqt5和卸载pyQt5的方法
2020/03/24 Python
Python多线程:主线程等待所有子线程结束代码
2020/04/25 Python
keras之权重初始化方式
2020/05/21 Python
学生党员思想汇报
2013/12/28 职场文书
培训主管岗位职责
2014/02/01 职场文书
毕业生写求职信的要点
2014/03/04 职场文书
国旗下的演讲稿
2014/05/08 职场文书
2014迎接教师节演讲稿
2014/09/10 职场文书
成绩报告单家长评语
2014/12/30 职场文书
2016新春团拜会致辞
2015/08/01 职场文书
分析mysql中一条SQL查询语句是如何执行的
2021/06/21 MySQL