我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

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

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

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

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

一、准备工作

        首先,需要准备①最新版的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

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录