自制聊天机器人实现与chatgpt或微信好友对话【附代码】

闲来无事,想实现一个可与chatgpt或者微信好友对话的聊天机器人。该聊天机器人还可应用于QQ好友或者其他地方的语音输入。功能还是比较简单的,后期会慢慢更新,让人机交互体验感不断提升。

项目描述:

语音输入"开启语音助手"等待用户语音输入(等待时间为2秒,可自行调整),再将语音转文字输入到对话框中(识别时长为5秒,可自行调整),语音输入"关闭语音助手"将提出程序。利用语音识别完成文字输入,实现聊天功能。


环境描述

python语言

windows10


前期准备

先要安装以下几个库

pip install pyperclip
pip install pyautogui
pip install speech_recognition
pip install pyaudio
pip install wave

本项目发送文字对话是用来模拟鼠标发送按键,因此需要获取"发送"按钮相对于屏幕的坐标位置

这个坐标位置也是非常好获取的,直接用微信截图快捷键就可以显示。

例如现在想获取微信对话框发送按钮的坐标,点击微信截图,将鼠标放在发送按钮上,有个POS就是坐标位置。


 

功能展示

全程使用时需要开启科学上网(这里网上有很多办法,自己寻找)

与微信好友对话

1.修改发送按钮坐标位置

2.如果是微信对话需要注释掉以下几行:

            # 对于chatgpt需要在点击一下对话框pyautogui.moveTo(639, 929)pyautogui.mouseDown()  # 鼠标左键按下,发送内容pyautogui.mouseUp()  # 鼠标左键抬起

我这里是(1405,787)

pyautogui.moveTo(1405, 787)  # 鼠标光标移动至发送按钮(这里是坐标)
pyautogui.mouseDown()  # 鼠标左键按下,发送内容
pyautogui.mouseUp()  # 鼠标左键抬起
python wechat_root/wechat.py

3.语言输入"开启语言助手",将开启功能。 

开始录制...
录制结束...
result2:
{   'alternative': [{'confidence': 0.97500253, 'transcript': '开启语音助手'}],'final': True}

 4.当你windows任务栏右下角显示"麦克风"的图标表示开启录音,图标关闭表示录制结束。录制时长默认为5秒,可自行修改。

5.此时会将语音转文字输入在微信对话框中并自动发送。

每次输入间隔为2秒(可自行修改)。修改下面的就行。

    if text_ == '开启语音助手':  # 开启time.sleep(2)  # 等待2s输入一次

如果用户没有输入任何东西也不会发送任何东西的。 仅在输入有效才发送。

 

 6.用户语音输入"关闭语音助手",即可退出。


与chatGPT对话 

与上述微信对话一样,只不过需要修改chatgpt发送按钮和对话框坐标。

比如我chatgpt发送按钮为(1531,933),对话框坐标为(639,929)。

            pyautogui.moveTo(1531, 933)  # 鼠标光标移动至发送按钮(这里是坐标)pyautogui.mouseDown()  # 鼠标左键按下,发送内容pyautogui.mouseUp()  # 鼠标左键抬起# 对于chatgpt需要在点击一下对话框pyautogui.moveTo(639, 929)pyautogui.mouseDown()  # 鼠标左键按下,发送内容pyautogui.mouseUp()  # 鼠标左键抬起

用户语音输入"开启语音助手"即可开启对话。

 


 完整代码

https://github.com/YINYIPENG-EN/chatbot.git

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/236.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【kubernetes】负载均衡器安装部署-Haproxy与keepalived

前言:二进制部署kubernetes集群在企业应用中扮演着非常重要的角色。无论是集群升级,还是证书设置有效期都非常方便,也是从事云原生相关工作从入门到精通不得不迈过的坎。通过本系列文章,你将从虚拟机准备开始,到使用二进制方式从零到一搭建起安全稳定的高可用kubernetes集…

vite构建工具初识

一、什么是vite vite官网地址:https://cn.vitejs.dev/ Vite 是一个由 Vue.js 作者尤雨溪开发的新一代前端构建工具,它相比于传统的 webpack,具有更快的启动速度、更高的开发效率和更简洁的配置方式。 Vite的主要特点包括: 快速…

Java(七):项目部署

项目部署 运行容器解决Centos8中yum命令遇到的问题打包项目拷贝.jar到容器中安装jdk后台运行.jar后台运行.jar并输入日志实时查看日志查看/杀死运行程序目录结构日志配置 运行容器 $ docker run -d -p 8001:8001 -p 8081:8081 -p 8082:8082 --namelocal_centos --privilegedtr…

EasyCode代码生成插件-模板分享(基于数据表生成MyBatisPlus格式的dao,service,controller和vue组件)

目录 概述 使用演示 模板代码 实体类pojo 表现层controller 业务层service接口 业务层serviceImpl实现类 持久层dao Vue组件 概述 本片博客用于分享EasyCode的自定义模板(模板在篇末),用于简化开发,免去重复性的工作。 …

6.28作业

作业1 结构体不能被继承,类可以被继承结构体默认的都是公共,类默认是私有的 转载【结构体和类的区别】 结构体是值类型,类是引用类型 结构体存在栈中,类存在堆中 结构体成员不能使用protected访问修饰符,而类可以 结…

无法更新iPhone,提示“无法检查更新”怎么办?

当我们需要 iPhone更新系统时,可以前往iPhone设置-通用-软件更新中获取更新推送。不过一些用户可能会遇到无法更新的问题,例如会提示“无法检查更新,检查软件更新时出错”。 以上情况可能是网络问题,可以尝试重新打开设置&#xf…

vue中使用mock.js

安装mock npm install mockjs --save-dev或者在ui中选择依赖 查看安装是否成功 进入package.json文件 配置mock 在src目录下新建mock文件夹,在mock文件夹下建立index.js 配置模拟请求数据 index.js import Mock from mockjsconst loginData Mock.mock(http://l…

YOLOv5图像和视频对象生成边界框的目标检测实践(GPU版本PyTorch错误处理)

识别图像和视频里面的对象,在计算机视觉中是一个很重要的应用,比如无人驾驶,这个就需要实时的检测到周边环境的各种对象,并及时做出处理。目标检测在以往的文章中有重点讲解过几种,其中Faster R-CNN的源码解读&#xf…

Spring Bean的实例化过程

一、前言 对于写Java的程序员来说,Spring已经成为了目前最流行的第三方开源框架之一,在我们充分享受Spring IOC容器带来的红利的同时,我们也应该考虑一下Spring这个大工厂是如何将一个个的Bean生产出来的,本期我们就一起来讨论一…

局域网远程连接

一根网线连接两台电脑 前言步骤1 设置B“允许远程连接”2 A和B必须在同一个网段下面3 “winr”,输入“mstsc”中4 弹出“远程桌面连接”窗口,输入B的ip地址和B电脑的用户名及密码(winL键锁屏,看看B的用户名和密码是什么&#xff0…

注意力机制和Transformer

注意力机制和Transformer 机器翻译是NLP领域中最重要的问题之一,也是Google翻译等工具的基础。传统的RNN方法使用两个循环网络实现序列到序列的转换,其中一个网络(编码器)将输入序列转换为隐藏状态,而另一个网络&…

《kafka 核心技术与实战》课程学习笔记(六)

生产者消息分区机制原理剖析 为什么分区? Kafka 有主题(Topic)的概念,它是承载真实数据的逻辑容器,而在主题之下还分为若干个分区,也就是说 Kafka 的消息组织方式实际上是三级结构:主题 - 分区…