admin 管理员组文章数量: 887016
环境
python:3+
ffmpeg:用于处理视频和语音
gradio:UI界面和读取语音
概述
我们的目的是做一个语音智能助手
下面我们开始
准备工作
下载Visual Studio Code
Visual Studio Code
因为需要写python代码,用Visual Studio Code
比较方便。
安装python
python官网
执行下载好的exe文件,可以建议选择自定义安装,这样可以修改安装路径,只要别安装到C盘就行。
记得勾选添加到环境变量
添加环境变量
假设在安装时候,忘记了勾选添加到环境变量,那么我们可以自己配置
修改subprocess.py文件
安装ffmpeg
https://ffmpeg/
将下载好的安装包,进行解压,然后将解压后的文件夹放到平时自己喜欢的安装目录里。
比如:我的是D盘:D:\Program Files\ffmpeg
。
WINDOWS系统文字转语音WSAY
https://github/p-groarke/wsay/releases/tag/v1.5.0
点击下图进行下载:
使用GRADIO建立用户界面
先创建一个项目文件夹,比如我的:E:\openai\project\Chatbot
然后打开我们之前下载好的vsCode,并打开相关目录。
参照gradio官网写测试代码
https://gradio.app/quickstart/
测试代码1:页面
import gradio as gr
def 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 gr
def 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 messages
myfile=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_transcript
ui = gr.Interface(fn=transcribe, inputs=gr.Audio(source="microphone", type="filepath"), outputs="text")
ui.launch()
效果如下:
总结
- ffmpeg 来处理语音
- 利用WSAY,将文字转成语音
- 利用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
版权声明:本文标题:ChatGPT搭建语音智能助手 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1726314195h935042.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论