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 相关文章推荐
encode脚本和normal脚本混用的问题与解决方法
Mar 08 Javascript
firefox插件Firebug的使用教程
Jan 02 Javascript
js数据验证集合、js email验证、js url验证、js长度验证、js数字验证等简单封装
May 15 Javascript
javascript闭包入门示例
Apr 30 Javascript
javascript实例分享---具有立体效果的图片特效
Jun 08 Javascript
深入分析原生JavaScript事件
Dec 29 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
Feb 08 Javascript
Layui数据表格之单元格编辑方式
Oct 26 Javascript
JavaScript定时器常见用法实例分析
Nov 15 Javascript
基于redis的小程序登录实现方法流程分析
May 25 Javascript
vue中的v-model原理,与组件自定义v-model详解
Aug 04 Javascript
Vue父组件监听子组件生命周期
Sep 03 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输入流php://input使用示例(php发送图片流到服务器)
2013/12/25 PHP
PHP中Closure类的使用方法及详解
2015/10/09 PHP
Laravel6.2中用于用户登录的新密码确认流程详解
2019/10/16 PHP
在textarea中屏蔽js的某个function的javascript代码
2007/04/20 Javascript
JavaScript Cookie显示用户上次访问的时间和次数
2009/12/08 Javascript
前端开发的开始---基于面向对象的Ajax类
2010/09/17 Javascript
javascript AOP 实现ajax回调函数使用比较方便
2010/11/20 Javascript
jQuery中:last选择器用法实例
2014/12/30 Javascript
浅谈javascript 函数属性和方法
2015/01/21 Javascript
jQuery中事件与动画的总结分享
2016/05/24 Javascript
Node.js 文件夹目录结构创建实例代码
2016/07/08 Javascript
深入探究angular2 UI组件之primeNG用法
2017/07/26 Javascript
vue click.stop阻止点击事件继续传播的方法
2018/09/04 Javascript
JavaScript定时器设置、使用与倒计时案例详解
2019/07/08 Javascript
详解JavaScript 浮点数运算的精度问题
2019/07/23 Javascript
Vue初始化中的选项合并之initInternalComponent详解
2020/06/11 Javascript
Python中unittest模块做UT(单元测试)使用实例
2015/06/12 Python
python使用xslt提取网页数据的方法
2018/02/23 Python
pandas 使用apply同时处理两列数据的方法
2018/04/20 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
2018/07/27 Python
python多进程控制学习小结
2018/10/31 Python
Python+Selenium实现自动化的环境搭建的步骤(图文)
2020/09/01 Python
浅谈matplotlib默认字体设置探索
2021/02/03 Python
css3弹性盒模型(Flexbox)详细介绍
2014/10/08 HTML / CSS
美国滑雪和滑雪板商店:Buckman
2018/03/03 全球购物
社团活动策划书范文
2014/01/09 职场文书
广告学毕业生求职信
2014/01/30 职场文书
幼儿园教师奖惩制度
2014/02/01 职场文书
《生命 生命》教学反思
2014/04/19 职场文书
高中学生自我评价范文
2014/09/23 职场文书
2014年最新领导班子整改方案
2014/09/27 职场文书
2014年办公室人员工作总结
2014/12/09 职场文书
病人写给医生的感谢信
2015/01/23 职场文书
经理岗位职责范本
2015/04/15 职场文书
产品调价通知函
2015/04/20 职场文书
2015年街道除四害工作总结
2015/05/15 职场文书