文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-09-05 05:22

关注

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

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

一、准备工作

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

二、安装所需要的库

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

pip install SpeechRecognitionpip install pyttsx3pip install openai

三、获取openai的api_key

访问openai官网并登录

   选择第三个入口

在右上角选择View API Keys

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

四、替换apikey,运行代码

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

import speech_recognition as srimport pyttsx3import 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 text    except 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=""                break            if "未识别到语音" 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("好的,再见")        break    if not "未识别到语音" in call_text:        speak("现在默认处于待机模式。若想开启对话,请呼唤语音助手。")

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

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

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

来源地址:https://blog.csdn.net/Cozy_maple/article/details/131179957

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯