位置: IT常识 - 正文

基于Web Speech API给ChatGPT加上语音功能,距离MOSS又近了一步(基于网络创新形成的大数据的最突出特征是什么?( ))

编辑:rootadmin
基于Web Speech API给ChatGPT加上语音功能,距离MOSS又近了一步

目录

前言

起步

实现过程

webkitSpeechRecognition

speechSynthesis

小例子

遇到的问题

效果展示

总结


前言

推荐整理分享基于Web Speech API给ChatGPT加上语音功能,距离MOSS又近了一步(基于网络创新形成的大数据的最突出特征是什么?( )),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:基于重大误解实施的民事法律行为,基于网页的客服系统,基于网页的客服系统,基于网络创新形成的大数据的最突出特征是什么?( ),基于中国国情的中国式现代化具有哪些特色,基于网页的客服系统,基于核心素养下的大单元教学设计,基于专业性的家校双向互动,需要家长的学校教育参与,内容如对您有帮助,希望把文章链接给更多的朋友!

去年写了两篇关于接入ChatGPT的文章:微信接入ChatGPT,使用Node+ChatGPT+Wechaty做一个微信机器人_DieHunter1024的博客-CSDN博客

站在巨人的肩膀上,用Node+ChatGPT模块实现一个接口_DieHunter1024的博客-CSDN博客

我自己也把微信小号接入了ChatGPT,同事们直呼过瘾,每天在群里聊得风生水起

这不前段时间看了《流浪地球2》,在感叹国产科幻片如此优秀的同时,心中萌生出了一个想法,我是不是也能把语音技术结合到ChatGPT中,做个语音对话机器人玩玩?

说干就干,参照之前的文章,我们使用nodejs实现了chatGPT接口,现在只需在前端页面中实现语音识别以及语音合成就行了

起步

说到语音功能,浏览器已经提供了对应的Web Speech API,其中有两个对象,分别是

webkitSpeechRecognition:语音识别对象speechSynthesis:语音合成对象

借助这两个对象,我们可以调用麦克风和扬声器,对浏览器进行交互

下面是一个简单的流程,用户使用webkitSpeechRecognition中的函数进行语音识别,将字符发送到之前做的chatGPT接口中,chatGPT模块调用openai换取AI模型输出结果,返回到浏览器,浏览器通过speechSynthesis合成音效,完成一个对话周期

实现过程webkitSpeechRecognition // 创建语音识别对象 const recognition = new webkitSpeechRecognition(); // 语音设置成中文 recognition.lang = "zh-CN"; // 开始识别 recognition.start(); // 当识别到语音时触发事件 recognition.addEventListener("result", (event) => { console.log(event.results); });

使用上述代码后,页面中会弹出权限请求,点击允许 

然后我们直接说话就会有识别结果(需要挂vpn)

基于Web Speech API给ChatGPT加上语音功能,距离MOSS又近了一步(基于网络创新形成的大数据的最突出特征是什么?( ))

如果打开了麦克风,但是说话没有反应的,大概率是因为识别服务没请求到,需要挂vpn

此外, webkitSpeechRecognition类还有以下常用配置:

recognition.continuous = true 持续识别,直到调用stop,默认为false,识别一次就会自动关闭

recognition.interimResults = true 识别时是否打断并更新结果,默认为false,设置为true时会有如下效果

speechSynthesis

接下来看看语音合成

const speakText = new SpeechSynthesisUtterance("hello world"); speechSynthesis.speak(speakText);

在控制台输入以下代码,即可合成hellow world的语音效果

小例子

了解了上述用法,我们可以在浏览器上实现模仿自己说话的功能,代码如下

<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>ASR-Node</title> <style> * { margin: 0; padding: 0; } #app { width: 1000px; margin: 100px auto 0; text-align: center; } h3 { margin-bottom: 20px; } </style> </head> <body> <div id="app"> <h3>ChatGPT-ASR-Bot</h3> <main> <span>发送:</span> <span id="send_msg"></span> <br /> <span>接收:</span> <span id="rec_msg"></span> </main> </div> <script type="module"> const speak = (str) => { rec_msg.textContent = str; const speakText = new SpeechSynthesisUtterance(str); // 转换字符 speechSynthesis.speak(speakText); // 语音合成 }; const listen = () => { // 创建语音识别对象 const recognition = new webkitSpeechRecognition(); // 语音设置成中文 recognition.lang = "zh-CN"; // 当识别到语音时触发事件 recognition.addEventListener("result", (event) => { const { results } = event; console.log(results); const len = results.length; const { transcript } = results[len - 1][0]; send_msg.textContent = transcript; speak(transcript); }); return recognition; }; // 开始识别 listen().start(); </script> </body></html>

虽然放不了声音,但是效果还是很直观的:

实现完毕后,我们就可以在语音识别完成和语音合成之前这两个节点对接ChatGPT接口(代码比较多,就不贴出来了,有兴趣可以直接下载源码)

遇到的问题

虽然在识别时使用了continuous:true属性。webkitSpeechRecognition仍然会超时自动关闭。解决方式是在其end事件钩子中执行重新识别的操作

效果展示

总结

本文带领各位认识了Web Speech API的两个对象以及常用的函数,实现了一个模仿自己说话的案例,并接入最近比较火的ChatGPT模型,以实现一个类似小爱同学的语音助手的语音对话功能。

最后,感谢你的阅读,如果文章对你有帮助,还希望支持一下作者。

在这里我也抛砖引玉,期待看到大家的进阶玩法

源码:chatGPT-ASR: ChatGPT接入语音识别与合成的功能

本文链接地址:https://www.jiuchutong.com/zhishi/298601.html 转载请保留说明!

上一篇:【深度估计】单目深度估计(深度计算公式)

下一篇:何为 Vue3 组件标注 TS 类型,看这篇文章就够了!(vue组件标签)

  • t3出行怎么打车(t3出行如何打车)

    t3出行怎么打车(t3出行如何打车)

  • 希沃白板的课件怎么转换成ppt(希沃白板的课件怎么修改)

    希沃白板的课件怎么转换成ppt(希沃白板的课件怎么修改)

  • 抖音视频震动效果怎么弄(抖音的振动在哪里开)

    抖音视频震动效果怎么弄(抖音的振动在哪里开)

  • 多多果园怎样隐藏自己的水滴(多多果园怎么隐藏自己)

    多多果园怎样隐藏自己的水滴(多多果园怎么隐藏自己)

  • ar人工智能模型训练一般采用什么计算机(基于人工智能的ar vr 应用开发)

    ar人工智能模型训练一般采用什么计算机(基于人工智能的ar vr 应用开发)

  • oppoa37m手机怎么分屏(oppoA37m手机怎么截屏)

    oppoa37m手机怎么分屏(oppoA37m手机怎么截屏)

  • 拼多多怎么一起拍两个不一样的(拼多多怎么一起下单多件商品)

    拼多多怎么一起拍两个不一样的(拼多多怎么一起下单多件商品)

  • 苹果a2031是第几代(苹果a2038是第几代)

    苹果a2031是第几代(苹果a2038是第几代)

  • 充电接口松动及插不紧的解决方法(充电接口松动及处理方法)

    充电接口松动及插不紧的解决方法(充电接口松动及处理方法)

  • 微信双手合十是啥意思(微信双手合十是什么)

    微信双手合十是啥意思(微信双手合十是什么)

  • 抖音注销后身份证可以绑定其他号嘛(抖音注销后身份信息还可以用吗)

    抖音注销后身份证可以绑定其他号嘛(抖音注销后身份信息还可以用吗)

  • 手机怎么导出联系人(手机怎么导出联系人到电脑)

    手机怎么导出联系人(手机怎么导出联系人到电脑)

  • 百度百科怎么创建词条(百度百科怎么创建自己要钱吗)

    百度百科怎么创建词条(百度百科怎么创建自己要钱吗)

  • 网易云私信会显示已读吗(网易云私信会显示地址吗)

    网易云私信会显示已读吗(网易云私信会显示地址吗)

  • 怎样把抖音视频锁起来(怎样把抖音视频播放长一点)

    怎样把抖音视频锁起来(怎样把抖音视频播放长一点)

  • 微信如何取消双小人(微信如何取消双重认证)

    微信如何取消双小人(微信如何取消双重认证)

  • 淘宝台湾买家怎么处理(淘宝台湾订单)

    淘宝台湾买家怎么处理(淘宝台湾订单)

  • 微信传照片有限制吗(微信传照片有限额吗)

    微信传照片有限制吗(微信传照片有限额吗)

  • 如何下载打印机驱动并安装(电脑如何下载打印机)

    如何下载打印机驱动并安装(电脑如何下载打印机)

  • 淘手游怎么提现微信(淘手游怎么提现在微信)

    淘手游怎么提现微信(淘手游怎么提现在微信)

  • 如何使用手机号码登录支付宝账户(如何使用手机号查快递)

    如何使用手机号码登录支付宝账户(如何使用手机号查快递)

  •  oppo怎么解除禁止安装权限(oppo怎么解除禁止自动读取验证码)

    oppo怎么解除禁止安装权限(oppo怎么解除禁止自动读取验证码)

  • 蓝牙显示已连接但是没声音(蓝牙显示已连接但是手机声音)

    蓝牙显示已连接但是没声音(蓝牙显示已连接但是手机声音)

  • qq留言怎么隐藏(qq留言怎么隐藏手机型号)

    qq留言怎么隐藏(qq留言怎么隐藏手机型号)

  • 解决VuePress中的”Error from chokidar : Error: EBUSY“问题(vuepress plugin)

    解决VuePress中的”Error from chokidar : Error: EBUSY“问题(vuepress plugin)

  • 个人所得税预扣率10%
  • 建筑业资源税如何缴纳
  • 建筑劳务适用税率
  • 支票结算业务流程
  • 关税的记税依据
  • 分给当期投资者利润如何做会计分录?
  • 施工企业的成本会计对象
  • 营改增后服务业增值税税率
  • 融资租赁开具的发票是货物还是租金
  • 折旧完的固定资产出售
  • 固定资产抵扣新政策2022
  • 企业向个人采购产品没有发票
  • 工资个税合理避税
  • 小规模纳税人月末结转增值税
  • 资产减值损失和信用减值损失的区别
  • 企业改制后职工有几项补偿
  • 进项税加计抵扣分录
  • 工会经费怎么使用
  • 王者荣耀进不去怎么回事最新
  • 解决口苦最快的方法
  • 收到上级工会下拨的工会经费
  • 企业所得税汇算清缴扣除标准2023
  • 企业给学校捐款的申请怎么写
  • php常见面试问题
  • 在windows7操作具有
  • 出租的土地
  • 库存商品的主要类型
  • 施工企业自建自用的工程
  • 担保余值包括
  • php设置中文编码
  • PHP:imagesettile()的用法_GD库图像处理函数
  • 贷记卡怎么还利息
  • 如何做商品批发
  • 解决的英文
  • php中execute
  • 财产清查两种制度
  • 定时器计数器实验报告
  • opencv图像识别特定形状
  • 利息收入怎么做账务处理
  • 纳税人识别号是不是税号
  • 排污收费制度在排污费征收方面存在的问题
  • 固定资产盘盈为什么计入管理费用
  • 外贸进项税额怎么算
  • 土地使用权被政府收回要交个税吗
  • 电子税务局是指什么意思
  • 无法支付的应付账款为什么计入营业外支出
  • 无形资产的处置损益
  • 企业收到宣传费怎么做账
  • 汽车销售公司办理贷款重点调查哪些
  • 为什么借贷平台借不到钱了
  • 成本大于收入汇算清缴怎么处理
  • 会计分录的记账要素
  • 咨询服务费计入哪里
  • 私立幼儿园怎样转公立幼儿园
  • 固定资产处置相关问题
  • 简易征收租赁税率3还是5
  • 商品流通企业会计做账流程
  • VMware虚拟机安装Android系统
  • 如何关闭windows更新
  • ubuntu20.04换阿里源
  • win7 u盘启动按哪个键
  • linux diy
  • win8.1怎么用
  • cocos2djs
  • opengl绘制简单矩形代码
  • android应用程序的主要语言是java
  • 批处理语言 从入门到精通
  • css-1
  • python数据结构与算法分析 第2版(图灵出品)
  • 谈谈关于中华文明的五个突出特性
  • jquery校验form表单
  • python 父类方法
  • jquery的优点和缺点
  • jquery 插件写法
  • 人脸识别身份验证
  • 咸阳国税局长是哪里人
  • 亦庄地税局税务局营业大厅
  • 国家税务局何时上班
  • 重庆税务局查询缴费记录
  • 误餐费报销管理办法
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设