本项目灵感来源是我的一个专业课程设计,当时耗时近四天在网上都没找到十分有用的信息。

以下是本项目完整的步骤流程,算是对自己工作的一个阶段性总结。希望同感兴趣的小伙伴们相互探讨、交流和学习。

一、准备工作

首先,需要准备①最新版的python  可以访问openai的网络  ③chatgpt账号

二、安装所需要的库

打开cmd命令行,分别安装以下三个库

pip install SpeechRecognition
pip install pyttsx3
pip install openai

三、获取openai的api_key

1.访问openai官网并登录

选择第三个入口

2.在右上角选择View API Keys

3.点击creat new secret key创建你的密钥,并复制好好保存

四、替换apikey,运行代码

废话不多说,上代码(一定要把第六行的YOUR APIKEY替换成你刚才复制的密钥

import speech_recognition as sr
import pyttsx3
import openai# 设置你的 API 密钥
openai.api_key = 'YOUR APIKEY'#用刚才复制的api key替换单引号里面的内容
#对话核心
def chat_with_gpt(prompt):response = openai.Completion.create(engine='text-davinci-003',prompt=prompt,max_tokens=1000,temperature=1,n=1,stop=None)reply = response.choices[0].text.strip()return reply# 初始化语音识别器和语音合成器
recognizer = sr.Recognizer()
engine = pyttsx3.init()def listen():with sr.Microphone() as source:print("请开始说话...")audio = recognizer.listen(source)try:text = recognizer.recognize_google(audio, language='zh-CN')print("User:", text)return textexcept sr.UnknownValueError:print("抱歉,无法识别你说的话")return "未识别到语音"except sr.RequestError:print("抱歉,发生了一些错误")return ""#语音输出
def speak(text):print("Chatgpt:", text)engine.say(text)engine.runAndWait()# 主程序循环
while True:#常驻开机循环call_text = listen()      #call_text为唤醒变量while "语音助手" in call_text:#说“语音助手”,说“退出”之前,会一直循环speak("您好,我是您的智能语音助手,现在可以说出您的问题")while True:input_text = listen()         #input_text为对话时语音输入的变量if "退出" in input_text:speak("好的,您若有任何需要,请再次呼唤语音助手,再见!")call_text=""breakif "未识别到语音" in input_text:speak("抱歉,我无法识别到您的提问")else:# 根据输入做出相应回答# 这里可以根据你的需求添加更多的对话逻辑chat_prompt =   input_text chat_reply = chat_with_gpt(chat_prompt)speak(chat_reply)if "关机" in call_text and not "确认" in call_text:speak("关机之后,再次见到我需要重新运行程序,请您确认是否关机。若要关机请说确认关机")call_text = call_text+"未识别到语音"if "确认" in call_text:#确认是否关机,退出主循环speak("好的,再见")breakif not "未识别到语音" in call_text:speak("现在默认处于待机模式。若想开启对话,请呼唤语音助手。")

把代码保存到.py文件里,运行代码。

现在你已经拥有了一个【私人智能语音助手】啦!要使用它,请先呼唤“语音助手”!

最后附上手写的简陋流程图,帮助大家理解最后一个主程序循环代码:

【一分钟学会】用python做一个语音对话ChatGPT的程序——打造私人语音助手相关推荐

  1. python表白程序-用Python做一个表白小姐姐的程序

    今天来填昨天自己给自己挖的那个坑,用Python实现那个曾经抖音上很火的.表白小姐姐程序,自己写了一个简单版本的,基本功能都可以实现,撩小姐姐怕是有点困难,但单身狗们还是可以自娱自乐一下的. 首先讲一 ...

  2. 用python做一个随机点名程序(不重复点名)

    用python做一个简单的随机点名程序(不重复点名) 这是我来到csdn的第一篇文章,内容如果有瑕疵的地方或者代码可以进一步改善,请大家对我指点一二.谢谢! 废话不多说,上代码! import ran ...

  3. python 制作自己的新闻_新闻-十行代码,用Python做一个迷你版的美图秀秀

    十行代码,用Python做一个迷你版的美图秀秀 2020-02-28 10:16:08 作者: 匿名 浏览量:65次 美图秀秀相信大家都不陌生,大家只要操作美图秀秀,就可以P掉图片中脸上的一些瑕疵,让 ...

  4. python 两点曲线_十行代码,用Python做一个迷你版的美图秀秀

    美图秀秀相信大家都不陌生,大家只要操作美图秀秀,就可以P掉图片中脸上的一些瑕疵,让人变得更加的美丽.今天小编就带领大家来借助Python和Flask来实现一个美图秀秀的网页设计,大家只需要通过网页上传 ...

  5. 老滚5初始化python失败_五分钟学会怎么用python做一个简单的贪吃蛇

    Pygame 是一组用来开发游戏软件的 Python 程序模块,基于 SDL 库的基础上开发.我们今天将利用它来制作一款大家基本都玩过的小游戏--贪吃蛇. 一.需要导入的包 import pygame ...

  6. python热搜排行功能_用Python做一个微博热搜榜的语音播报

    微博是一个社交平台,有高效的信息流,几乎所有人能在这上面找到自己感兴趣的内容.经常使用微博的小伙伴,大家对微博热搜榜应该都不会很陌生.每天发生了什么新闻呢,谁谁谁又上热搜了. 在这个信息社会,每天发生 ...

  7. python随手记自动记账_菜鸟也疯狂!8分钟用Python做一个酷炫的家庭随手记

    原标题:菜鸟也疯狂!8分钟用Python做一个酷炫的家庭随手记 每个月都有各种各样的开销,不当家不知道柴米贵呀!柴米油盐酱醋茶样样都要开销,吃的穿的,各种开销,每个月都没有啥结余,小编月初是富人,月底 ...

  8. 【云开发】10分钟零基础学会做一个快递查询微信小程序,快速掌握微信小程序开发技能(轮播图、API请求)

    大家好,我叫小秃僧 这次分享的是10分钟零基础学会做一个快递查询微信小程序,快速掌握开发微信小程序技能. 这篇文章偏基础,特别适合还没有开发过微信小程序的童鞋,一些概念和逻辑我会讲细一点,尽可能用图说 ...

  9. python程序-30分钟学会用Python编写简单程序

    原标题:30分钟学会用Python编写简单程序 参与文末每日话题讨论,赠送异步新书 异步图书君 学习目标 知道有序的软件开发过程的步骤. 了解遵循输入.处理.输出(IPO)模式的程序,并能够以简单的方 ...

最新文章

  1. 密切值matlab程序,密切值法
  2. spark sql的简单操作
  3. 【MySQL】可重复读模式下 unique key失效案例
  4. Java自动装箱与拆箱及其陷阱
  5. POJ3013 Big Christmas Tree(最短路径树)
  6. 湖北省武汉科技大学计算机报名,湖北武汉科技大学第33次计算机等级考试报名通知...
  7. fegin 参数丢失_许多参数和丢失的信息
  8. C语言:结构体中一级指针和二级指针的创建与释放示例
  9. 职场老油条靠它升职后:还用Excel手动做报表?想想就可笑
  10. 项目以任务还是以功能为中心?
  11. 一次排查服务器端接口报500错误的经历
  12. 2021-1-29Linux学习纪要
  13. 超声广义相干因子( Generalized Coherence Factor,GCF)波束合成仿真
  14. team网卡配置_在CentOS7中配置网路成组(Network Team)
  15. python线程wait_Python线程指南
  16. WireShark全版本下载
  17. operator=的用法
  18. Node.js bull Redis连接数过多
  19. a as as big rat_励志英语名言-20页
  20. DL_POLY下并行计算出错问题解决

热门文章

  1. c语言结构体内嵌结构体指针_C语言中的结构指针
  2. 软件测试登录测试用例点
  3. java记事本实验总结_第十四周课程总结实验报告(简单记事本的实现)
  4. 微信小程序图片高度按照图片真实宽高比自适应
  5. shops buyaction.php,360为什么迟迟不收录我站点? - 搜外SEO问答
  6. 假的肯德基活动链接的分析
  7. 机器学习-白板推导-系列(五)笔记:降维(PCA/SVD/PCoA/PPCA)
  8. 织梦模板网站后台数据库设定详细解释说明
  9. node版本管理n的使用
  10. 架构-防火墙iptables