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 相关文章推荐
popdiv
Jul 14 Javascript
silverlight线程与基于事件驱动javascript引擎(实现轨迹回放功能)
Aug 09 Javascript
jquery.ui.draggable中文文档(原文翻译)
Nov 15 Javascript
javascript实现复选框选中属性
Mar 25 Javascript
js给selected添加options的方法
May 06 Javascript
jquery滚动特效集锦
Jun 03 Javascript
JS实现漂亮的窗口拖拽效果(可改变大小、最大化、最小化、关闭)
Oct 10 Javascript
jsTree使用记录实例
Dec 01 Javascript
vue中的数据绑定原理的实现
Jul 02 Javascript
layui实现图片虚拟路径上传,预览和删除的例子
Sep 25 Javascript
微信小程序添加插屏广告并设置显示频率(一天一次)
Dec 06 Javascript
ES2020 已定稿,真实场景案例分析
May 25 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
ThinkPHP 连接Oracle数据库的详细教程[全]
2012/07/16 PHP
PHP实现克鲁斯卡尔算法实例解析
2014/08/22 PHP
php 使用fopen函数创建、打开文件详解及实例代码
2016/09/24 PHP
PHP 搜索查询功能实现
2016/11/29 PHP
基于thinkPHP类的插入数据库操作功能示例
2017/01/06 PHP
关于textarea提交的内容无法换行的解决办法
2013/04/09 Javascript
js中如何把字符串转化为对象、数组示例代码
2013/07/17 Javascript
javascript中数组的sort()方法的使用介绍
2013/12/18 Javascript
JS中的数组的sort方法使用示例
2014/01/22 Javascript
使用Node.js实现一个简单的FastCGI服务器实例
2014/06/09 Javascript
jQuery函数map()和each()介绍及异同点分析
2014/11/08 Javascript
jQuery的几个我们必须了解的特点
2015/05/03 Javascript
Js删除数组中某一项或几项的几种方法(推荐)
2016/07/27 Javascript
Canvas实现动态的雪花效果
2017/02/13 Javascript
node.js调用Chrome浏览器打开链接地址的方法
2017/05/17 Javascript
Angular.JS中select下拉框设置value的方法
2017/06/20 Javascript
微信小程序中weui用法解析
2019/10/21 Javascript
vue实现设置载入动画和初始化页面动画效果
2019/10/28 Javascript
使用webpack/gulp构建TypeScript项目的方法示例
2019/12/18 Javascript
Python中使用SAX解析xml实例
2014/11/21 Python
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
快速了解Python相对导入
2018/01/12 Python
Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能
2018/11/23 Python
python爬虫 基于requests模块的get请求实现详解
2019/08/20 Python
windows10环境下用anaconda和VScode配置的图文教程
2020/03/30 Python
a标签下载链接的简单实现
2016/09/13 HTML / CSS
Manduka官网:瑜伽垫、瑜伽毛巾和服装
2018/07/02 全球购物
几个数据库方面的面试题
2016/07/01 面试题
机电一体化应届生求职信范文
2014/01/24 职场文书
求职意向书
2014/04/01 职场文书
小区文明倡议书
2014/05/16 职场文书
2014年公务员退休工资改革方案
2014/10/01 职场文书
单位法人授权委托书范本
2014/10/09 职场文书
张丽莉事迹观后感
2015/06/16 职场文书
红色革命电影观后感
2015/06/18 职场文书
如何制定一份可行的计划!
2019/06/21 职场文书