ChatGPT搭建语音智能助手

article/2024/12/22 22:46:17

环境

python:3+
ffmpeg:用于处理视频和语音
gradio:UI界面和读取语音

概述

我们的目的是做一个语音智能助手
在这里插入图片描述
下面我们开始

准备工作

下载Visual Studio Code

Visual Studio Code

因为需要写python代码,用Visual Studio Code比较方便。

安装python

python官网
在这里插入图片描述

执行下载好的exe文件,可以建议选择自定义安装,这样可以修改安装路径,只要别安装到C盘就行。

记得勾选添加到环境变量

添加环境变量

假设在安装时候,忘记了勾选添加到环境变量,那么我们可以自己配置

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

修改subprocess.py文件

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

安装ffmpeg

https://ffmpeg.org/

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

将下载好的安装包,进行解压,然后将解压后的文件夹放到平时自己喜欢的安装目录里。

比如:我的是D盘:D:\Program Files\ffmpeg

WINDOWS系统文字转语音WSAY

https://github.com/p-groarke/wsay/releases/tag/v1.5.0

点击下图进行下载:
在这里插入图片描述

在这里插入图片描述

使用GRADIO建立用户界面

先创建一个项目文件夹,比如我的:E:\openai\project\Chatbot

在这里插入图片描述
然后打开我们之前下载好的vsCode,并打开相关目录。

参照gradio官网写测试代码

https://gradio.app/quickstart/

测试代码1:页面

import gradio as grdef greet(name):return "Hello " + name + "!"demo = gr.Interface(fn=greet, inputs="text", outputs="text")demo.launch()   

执行代码:

PS E:\openai\project\Chatbot> python ui.py

可以看到控制台会打印如下信息:

Running on local URL:  http://127.0.0.1:7860

然后浏览器打开网址http://127.0.0.1:7860

在这里插入图片描述

但是我们是需要做成语音的,所以我们需要调整下;

在官网找到:
https://gradio.app/docs/#audio

在这里插入图片描述

测试代码2:

import gradio as grdef transcribe(audio):print(audio)return "这里显示音频"demo = gr.Interface(fn=transcribe, inputs=gr.Audio(source="microphone"), outputs="text")demo.launch()   

在这里插入图片描述

执行命令:py uimp.py

浏览器刷新地址如下页面:
在这里插入图片描述

接入openAI:

测试代码3:

在这里插入图片描述

执行命令:py uifinish.py

# 最终稿:import gradio as gr
import openai, subprocess
from pathlib import Path# 换成你自己的api_key
openai.api_key = "XXXXXXXXXXXXXXXXXXXXXX"messages = [{"role": "system", "content": '你是一名知识渊博,乐于助人的智能聊天机器人.你的任务是陪我聊天,请用简短的对话方式,用中文讲一段话,每次回答不超过50个字!'}]def transcribe(audio):global messagesmyfile=Path(audio)myfile=myfile.rename(myfile.with_suffix('.wav'))audio_file = open(myfile,"rb")transcript = openai.Audio.transcribe("whisper-1", audio_file)messages.append({"role": "user", "content": transcript["text"]})response = openai.ChatCompletion.create(model="gpt-3.5-turbo", messages=messages)system_message = response["choices"][0]["message"]# print(response)messages.append(system_message)subprocess.call(["wsay", system_message['content']])chat_transcript = ""for message in messages:if message['role'] != 'system':chat_transcript += message['role'] + ": " + message['content'] + "\n\n"return chat_transcriptui = gr.Interface(fn=transcribe, inputs=gr.Audio(source="microphone", type="filepath"), outputs="text")
ui.launch()

效果如下:

在这里插入图片描述

总结

  1. ffmpeg 来处理语音
  2. 利用WSAY,将文字转成语音
  3. 利用gradio,来生成UI页面,并提供语音输入

参考地址:

https://updayday.notion.site/Chat-GPT-WHISPER-API-GPT-3-5-TURBO-2af2630c857a4f0da92abcc763b4fd48

Whisper API cannot read files correctly

Renaming file extension using pathlib (python 3)

Path not found in Python


http://chatgpt.dhexx.cn/article/RyqqgmOC.shtml

相关文章

【利用ChatGPT学习英语口语(包括如何安装插件的详细教程)】

内容目录 一、插入ChatGPT语音播放插件1. 打开谷歌浏览器——右上角三点——更多工具——扩展程序2. 点击扩展程序三个横杠——打开chrome 应用商店3. 搜索Voice Control for ChatGPT——点击如下图第一个——添加至Chrome——添加扩展程序4. 成功安装,打开ChatGPT有…

ChatGPT Plus用户专享:86款高效功能插件,详尽安装与使用全攻略

在前天的文章中,我们介绍了 ChatGPT 开放的全新模式 Web Browsing(网页浏览),启用后 ChatGPT 就可以开始上网,收集最新的互联网资料进行作答。 其他关于chatgpt使用方面:请访问: 链接&#xf…

chatgpt小程序安装指引

chatgpt小程序安装指引 JAVA 创建数据库,名字随意,数据库编码为utf8mb4 导入sql文件,在renren-api/db目录下面 第一次导入数据的先执行chatgpt.sql文件,在根据日期先后顺序执行 已导入过的同志,根据更新已经更新日期来导入 后台管理默认账号密码为admin 修改application-de…

公有云和ChatGPT关系不大

前段时间要过年、休养身体,写长篇,所以公众号停更了两个月。 本文解释了AI云为什么不会成为云厂商的重要营收途径,延伸分析了一些云产品的本质。 1. 流量密码不是财富密码 这两个月才突然热议ChatGPT的朋友,其实技术嗅觉有点迟钝、…

关于chatGPT专栏

这边已经受到了限制,关于gpt的内容文章已经被下架了众多 所以我关于gpt的文章只能在微信公众号里面查看, 还有许多新的文章是在此平台没有发过的,所以想了解关于chatgpt的文章,可以关注我文章下面的公众号。

ChatGPT初步了解

ChatGPT 是 InstructGPT 的同级模型,它经过训练可以按照提示中的说明进行操作并提供详细的响应。 InstructGPT论文:https://arxiv.org/pdf/2203.02155.pdf InstructGPT怎么准备和标记数据集:https://harryliu.blog.csdn.net/article/detail…

chatgpt和openai RateLimit(api使用速率限制)介绍

OpenAI的API提供商在API使用方面有一些限制和规定,其中之一就是限制API的使用速率,以避免滥用和过度消耗资源。这种限制称为速率限制(Rate Limit),是许多API服务提供商都采用的一种机制。 OpenAI的速率限制规定了每个…

ChatGPT的字数限制是什么?如果解决字数限制

字数限制和解决方案 ChatGPT的字数限制是什么? 当我们向ChatGPT提问,而碰巧这个问题的答案比较复杂,一两句话说不清出的时候,就会发现我们的答案输出到一半就中断了,大概是550个中文字左右。 同样的,如果…

解封ChatGPT我只用了一句话

文章前言 ChatGPT作为一个AI语言模型可以帮助使用者生成各种各样的文字内容,目前已被广泛应用于各种语言任务中,例如:文本生成、机器翻译、问答系统等,基于保障使用者权益和维护良好的价值观,官方限制ChatGPT不能回答不当言论(攻…

OpenAI-ChatGPT最新官方接口《速率并发限制》全网最详细中英文实用指南和教程,助你零基础快速轻松掌握全新技术(八)(附源码)

Rate limits 速率并发限制 前言Introduction 导言What are rate limits? 什么是速率限制?Why do we have rate limits? 为什么我们有速率限制?What are the rate limits for our API? 我们API的速率限制是什么?GPT-4 rate limits GPT-4速率…

用Python+ChatGPT

前言 近来chatGPT挺火的,也试玩了一下,确实挺有意思。这里记录一下在Python中如何去使用chatGPT。 本篇文章的实现100%基于 chatGPT,我是搬运工无疑了!!! 本片文章比较简单,下一篇基于本文章来写…

ChatBox安装--ChatGPT的桌面客户端

ChatBox 是什么 是开源的 ChatGPT API (OpenAI API) 桌面客户端,Prompt 的调试与管理工具,支持 Windows、Mac 和 Linux。 > github地址 下载链接 支持的平台: Windows : 请下载.msi安装包 Mac:请下载.dmg(推荐…

安装chatglm

地址 下载源代码 下载完成后解压 安装cuda 输入nvcc -V查看是否安装cuda 输入nvidia-smi查看支持的最高版本,最高支持12.1 下载cudahttps://developer.nvidia.com/cuda-downloads 双击安装 同意之后点击下一步 选择精简模式即可 等待下载安装包 …

Chatgpt版本的opencv安装教程

文章目录 前言一、安装opencv方法一二、安装opencv方法二 前言 最近刚买了台RTX 3070的电脑,顺手刷了个ubuntu系统专门玩Carla,为了方便查资料,也顺手搭了浏览chatgpt的环境,用的clash,还挺好用的。然后刚好在看Carla…

ChatGPT平替工具claude,无需梯子,保姆级安装教程

前言 最近炒的最火的就属chatgpt了,他的强大功能让每个人忍不住都想去尝试一下,但是高大上的门槛,让很多人望而却步,目前在国内还没有开放ChatGPT的注册和使用,“科学上网”这道难关就难住了许多人,特别是…

工具_本地安装chatgpt,openai

项目源码:https://github.com/nomic-ai/gpt4all 第一步 下载模型,选择一个下载即可 第二步 下载gpt项目到本地 文件夹运行cmd 输入以下命令克隆到文件 git clone https://github.com/nomic-ai/gpt4all.git第三步 下载的模型文件拷贝到 项目/chat …

KeepChatGPT插件安装教程

KeepChatGPT插件安装教程 KeepChatGPT可以让在中国通过VPN使用ChatGPT的用户更加流畅,不再出现需要刷新的问题: 具体的教程(简单到爆炸)如下: 主要有三步: 下载篡改猴的插件: 下载Github上的 …

【软件工具】Pycharm社区版安装ChatGPT!

文章目录 0.前言1. 简介2. 安装2.1 Pycharm下载安装2.2 ChatGPT安装2.3 一些问答 3 一些问题结束语 0.前言 不需要科学上网也能用ChatGPT啦!!! 1. 简介 ChatGPT是一种语言模型,它由OpenAI训练, 可以用于多种任务&am…

如何在 Python 开发环境中调用 ChatGPT 模型?

本文将演示在本地的 python 项目中调用 ChatGPT 模型 前言 作为一名程序员,在开发过程当中时常需要使用 ChatGPT 来完成一些任务,但总是使用网页交互模式去 Web 端访问 ChatGPT 是很麻烦的,这时候我们可以使用代码来调用 ChatGPT 模型&…

海睿思分享 | 类chatgpt模型在信息抽取领域的应用

大语言模型(LLM,Large Language Model)是指能够处理海量数据、拥有百亿级参数的深度学习模型,它已成为⼈⼯智能领域中的新热点。2022 年 11 ⽉ 30 号 ChatGPT 发布,其卓越的性能表现给整个⾏业带来了巨⼤的冲击。⼈们不…