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

news/2024/12/30 3:37:23/

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

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

一、准备工作

        首先,需要准备①最新版的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文件里,运行代码。

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

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


http://www.ppmy.cn/news/950639.html

相关文章

ylb-接口2首页产品数据和接口3产品列表

总览: 1、service处理(分页查询) 在api模块下service包,创建一个产品接口ProductService:(目前方法为分页查询queryByTypeLimit(Integer pType,Integer pageNo,Integer pageSize)) package…

VUE实现当前页面刷新的七种方法

使用 location.reload() 方法进行页面刷新。 使用 location.reload() 方法可以简单地实现当前页面的刷新,这个方法会重新加载当前页面,类似于用户点击浏览器的刷新按钮。 在 Vue 中,可以将该方法绑定到 Vue 实例上,比如在 Vue 的 …

ChatGPT写python代码实录

ChatGPT写python代码实录 print(hello world) 众所周知,咱们程序员学习编程是为了世界好。 所以,咱们就从hello world开始。 然后是一个杨辉三角 def generate_triangle(n):triangle [] ​for i in range(n):row [1] * (i 1)for j in range(1, i):r…

15个借助AI,ChatGPT自动写代码工具

整理了15个借助AI和ChatGPT辅助我们自动写代码的工具,整理到 15个借助AI,ChatGPT自动写代码工具https://www.webhub123.com/#/home/detail?projectHashid19072648&ownerUserid27786724 ​每个卡片为一个工具对应的网址,点击图片直达。可以点击右上…

用 ChatGPT 写代码,效率杠杠的!

来源:https://www.cnblogs.com/scy251147/p/17242557.html ChatGPT出来好久了,vscode上面由于集成了相关的插件,所以用起来很简单,经过本人深度使用后,发觉其能力的强大之处,在书写单元测试,书…

c#怎么使用ChatGPT 写代码

ChatGPT 是一个基于 GPT-3 的自然语言生成模型,它可以理解自然语言描述,并生成对应的文本响应。虽然 ChatGPT 并不是一个专门用于编写代码的工具,但可以通过以下方式辅助编写 C# 代码: 提供语法帮助:可以向 ChatGPT 提…

挑战利用ChatGPT写代码,真的能成功吗?

使用姿势 1. 由于ChatGPT的注册门槛较高,国内很多网站都是付费的或者有各种限制!我在【多御浏览器】中使用,无需注册就能免费体验ChatGPT。 2. 使用ChatGPT4 我的问题有些口水文,但是它依然能懂! 设计一个表&#xff0…

零基础也能用ChatGPT写代码,简直不要太爽

最近朋友圈刷到最多的动态和话题都是围绕ChatGPT的,作为一个功能强大,用途广泛的聊天机器人,我们能用它做的事情太多了。比如用它写文案,写剧本,规划旅游路线,甚至写小说等等。在本文中,我们将探…