vue使用WEB自带TTS实现语音文字互转

前言

时隔多日,自己已经好久没更新文章了;今年一直跟随公司的政策[BEI YA ZHA]中,做了一个又一个的需求,反而没有多少自己的时间,更别说突破自己


o·( )o·(雾)


然后最近,我朋友突然和我说有没有做过TTS,我第一反应是

……
一脸无辜

于是就出现我们今天主题的
什么是TTS?

去调查了一番,简单的说就是一种语音文本互转的技术

  • 这里涉及到语音合成的概念.语音合成是通过机械的、电子的方法产生人造语音的技术。TTS技术(又称文语转换技术)隶属于语音合成
  • 而WEB,也就是我们的浏览器,已经给我们封装好了TTS,能够很方便的调用API,基本上,我们能够使用原生的前端元素直接实现文本转语音,语音转文字

因此任何前端框架都可以使用该套逻辑实现TTS

WEB自带TTS

它是有自己的官方文档的,我们可以很轻易的就通过该API文档来找到我们需要的实现的逻辑

WEB自带TTS官方中文文档API

基础事件

文字转语音基础事件

这里给大家列出几个常用的基础事件,更多可访问上面的API文档

// 创建 SpeechSynthesisUtterance 对象
var speechUtterance = new SpeechSynthesisUtterance('Hello, how are you?');

// 创建 SpeechSynthesis 对象
var synthesis = window.speechSynthesis;

// 设置语音合成的事件处理函数

// 开始语音合成
speechUtterance.onstart = function(event) {
  console.log('Speech synthesis started.');
};

// 结束语音合成
speechUtterance.onend = function(event) {
  console.log('Speech synthesis ended.');
};

// 暂停语音合成
speechUtterance.onpause = function(event) {
  console.log('Speech synthesis paused.');
};

// 恢复语音合成
speechUtterance.onresume = function(event) {
  console.log('Speech synthesis resumed.');
};

// 分段语音合成
speechUtterance.onboundary = function(event) {
  console.log('Speech boundary reached at character index ' + event.charIndex + '.');
};

// 启动语音合成
var btn = document.querySelector('button');
btn.addEventListener('click', function() {
  synthesis.speak(speechUtterance);
});
语音转文字基础事件
// 创建 SpeechRecognition 对象
var recognition = new window.SpeechRecognition();

// 设置语音识别的事件处理函数

// 开始语音识别
recognition.onstart = function(event) {
  console.log('Speech recognition started.');
};

// 结束语音识别
recognition.onend = function(event) {
  console.log('Speech recognition ended.');
};

// 识别到语音结果
recognition.onresult = function(event) {
  var transcript = event.results[0][0].transcript;
  console.log('Recognized speech: ' + transcript);
};

// 启动语音识别
var btn = document.querySelector('button');
btn.addEventListener('click', function() {
  recognition.start();
});

VUE项目

我有将本次研究的成果放到我的git上,以下为我项目中的截图

在这里插入图片描述
在这里插入图片描述

1

还有一个文本跟随朗读变色的实际上是我朋友需要的研究的功能,其实界面是差不多的,结尾我会放出我项目的git链接,以供大家参考

语音转文字

在我的项目中,vue实现语音转文字的代码如下:

  • 界面

文字转语音

  • 界面

git链接

WEB自带TTS实现语音文字互转git

结语

以上为我用vue实现WEB自带TTS来实现语音文字互转的过程,如有更多内容会在本文章更新

构建一个基于Python的图书商城是一个非常有趣且实用的项目。下面我将为你介绍如何着手建立这样一个系统的基本框架和技术选型建议。 ### 技术栈选择 #### 后端部分 1. **Django** 或者 **Flask**: Django 是全功能Web框架,自带ORM、用户认证模块等功能;而 Flask 更轻量级,灵活性更高。 - 如果想要快速搭建原型并且使用官方推荐的最佳实践,可以选择 **Django** - 对于需要高度定制化的小规模应用来说,**Flask** 可能更适合 2. **数据库管理工具**: - MySQL / PostgreSQL 等关系型数据库适合存储结构化的数据如书籍信息表单记录等。 3. **缓存服务**: - Redis 用于加速频繁查询的数据访问速度,例如热门商品列表或用户的购物车内容。 4. **异步任务处理队列**: - Celery + RabbitMQ/Redis 作为消息代理可以帮助后台运行耗时的任务比如订单通知邮件发送等而不阻塞主线程响应请求。 #### 前端部分 - HTML/CSS/JavaScript 构建网页界面交互逻辑,结合Bootstrap或其他前端UI库提升视觉体验。 - AJAX 或 Fetch API 实现无刷新页面更新以及AJAX上传文件等功能。 - Vue.js/React/AngularJS 框架之一可以让开发者更高效地编写复杂的单页应用程序(SPA),提高用户体验流畅性。 ### 功能需求分析 ##### 用户角色及权限控制 - 匿名访客: 浏览首页分类导航搜索栏查看最新推荐书目详情加入收藏夹 - 注册会员: 上述所有外加个人中心维护地址电话偏好设置下单结算历史记录评价晒单 - 店铺管理员: 商品上下架编辑库存价格促销活动审核退货申请统计报表导出销售情况 - 平台超级管理员: 监控整体运营状况分配子账号资源限制安全审计日志审查 ##### 核心业务流程设计 1. **商品管理**:包括但不限于录入新货品基本信息(标题作者出版社出版日期定价封面缩略图)、修改删除已存在的条目。 2. **订单处理**:从顾客提交预购清单直至确认收讫期间的所有环节跟踪记录状态变更提醒物流进度安排发票开具。 3. **支付集成**:对接第三方网银平台支付宝微信钱包等多种渠道保证资金流的安全可靠便捷程度。 4. **社交分享评论区互动交流体系完善促进社区氛围形成良性循环带动销量增长。 5. **搜索引擎优化SEO+精准营销推送机制确保网站能在各大检索引擎排名靠前吸引更多潜在买家光顾关注。 ### 第三方API接入考量因素 - 地址解析插件帮助识别输入的城市街道门牌号码格式规范准确匹配地理位置信息方便配送安排。 - 文字语音TTS合成技术支持视障群体无障碍浏览电子读物丰富产品多样性增强竞争力。 - 图片压缩裁剪CDN加速节点部署降低服务器带宽成本缩短加载时间改善移动端适配兼容性。 --- 以上就是关于用Python创建在线书店的一些建议和思路参考啦!当然实际开发过程中还有很多细节需要注意考虑进去哦~如果对你有所帮助的话希望可以继续探讨深入学习呢! --相关问题--: 1. 在Python Web开发中,Django 和 Flask 的区别是什么? 2. 如何在Python项目中有效地管理和配置不同环境下的敏感信息(如API密钥)? 3. 使用Python进行大规模并发处理时有哪些最佳做法?
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值