随着ChatGPT如火如荼的讨论,我们作为科技爱好者也禁不住手痒痒,想做点什么。
于是我问了下ChatGPT该怎么做
嗯,大致了解了。
那我们就开干吧。
更新一下,OpenAI最新发布了GPT3.0的模型的api,mind+的用户库OpenAI也及时更新了。
注意:由于openai政策的变化,api的访问不能直接到达服务器。可能无法正常使用。
正在寻求解决方案。
步骤1 打开最新的mind+
步骤2 选择python模式
步骤3 添加行空板模块
步骤4 添加百度语音模块
步骤5 添加用户库OpenAI模块
步骤6 图形化编程
步骤7 连接行空板
步骤8 运行代码
步骤9 设计外壳
步骤10 打印外壳
步骤11 组装行空板和音箱
步骤12 联网
步骤13 开始使用
材料清单
- 行空板 X1 链接
- usb喇叭或蓝牙音箱 X1
代码
# -*- coding: UTF-8 -*-
#注意填入百度云AI的秘钥和OpenAI的api key
# MindPlus
# Python
from unihiker import Audio
from aip import AipSpeech
from unihiker import GUI
import openai
import time
def synthesis(text):
try:
return aip_speech_client.synthesis(text,"zh", 1, aip_synthesis_option)
except Exception:
return aip_speech_client.synthesis(text,"zh", 1)
def saveAudio(src):
try:
with open(src, "wb") as f:
return f.write(aip_synthesis_result)
except FileNotFoundError as e:
print(f"[文件不存在] {e}")
return None
except TypeError as e:
print(f"[输入类型异常] {e}")
return None
except BaseException as e:
print(f"[通用异常] {e}")
return None
def readAudio(src):
try:
with open(src, "rb") as f:
return f.read()
except FileNotFoundError as e:
print(f"[文件不存在] {e}")
return None
except TypeError as e:
print(f"[输入类型异常] {e}")
return None
except BaseException as e:
print(f"[通用异常] {e}")
return None
def asr(b, f, r):
aip_asr_result = aip_speech_client.asr(b, f, r)
if aip_asr_result["err_no"] == 0:
return " ".join(aip_asr_result["result"])
else:
print(aip_asr_result["err_no"] + " " +aip_asr_result["err_msg"])
return None
# 事件回调函数
def button_click1():
global flag
flag = 1
u_gui=GUI()
u_audio = Audio()
aip_speech_client = AipSpeech("undefined", "undefined", "undefined") #填入百度AI语音合成的appID,API Key和Secret Key
aip_synthesis_option = {"aue": 6, "per": 3, "spd": 6, "pit": 5, "vol": 7}
openai.api_key = "" #填入OpenAI的api key
def askOpenAI(question):
res = openai.Completion.create(
model="text-davinci-003",
prompt=question,
temperature=0.9,
max_tokens=1024,
top_p=1,
frequency_penalty=0,
presence_penalty=0.6,
stop=None
)
message = res.choices[0].text
return message
anniu=u_gui.add_button(text="问我",x=90,y=260,w=60,h=40,onclick=button_click1)
xianshi=u_gui.draw_text(text="请触摸问我,说出问题",x=15,y=50,font_size=15, color="#00CCCC")
wenzi =u_gui.draw_text(text="",x=10,y=10,font_size=10, color="#000000")
wenzi .config(w=230)
ShiBieJieGuo = ""
flag = 0
while True:
if (flag == 2):
aip_synthesis_result = synthesis(askOpenAI(ShiBieJieGuo))
saveAudio("speech.wav")
ShiBieJieGuo = asr(readAudio("speech.wav"), "wav", 16000)
wenzi .config(text=ShiBieJieGuo)
u_audio.play("speech.wav")
flag = 0
wenzi .config(text=" ")
anniu.config(state="normal")
xianshi.config(x=15)
if (flag == 1):
xianshi.config(x=600)
wenzi .config(text="聆听中。。。")
anniu.config(state="disable")
u_audio.record("record.wav",10)
ShiBieJieGuo = asr(readAudio("record.wav"), "wav", 16000)
wenzi .config(text=ShiBieJieGuo)
time.sleep(2)
wenzi .config(text="思考中。。。")
flag = 2
代码等相关代码也在gitee开源了,欢迎大家star
https://gitee.com/rocketscn/chat-gpt-unihiker-speaker
腿毛利小五郎2023.09.21
太牛了
yeying2023.08.21
我下载了附件里面 chatgpt 的文件, 里面是空的。 我在 mind + 库里面也找不到chatpgt的库, 请问该怎么解决?
尼古拉磁感线2023.10.24
遇到了同样问题 求解
三春牛-创客2023.06.28
赞
三春牛-创客2023.06.28
不错
花生编程2023.06.28
赞!
花生编程2023.06.28
不错不错
nsynet2023.05.17
能不能把这些可以公开的代码在gitee等平台上公开了,可以继续研究和优化?
贺兰山下2023.05.03
谢谢分享,学习了
腿毛利小五郎2023.03.08
教程详细谢谢楼主
老曾2023.03.03
高手,请教下用你发的程序上传到行空板后,后面出现思考中就不动了,是什么问题
山水2023.03.09
openai的接口现在需要魔法才行,我也在看怎么弄。现在3.5的turbo也不是太贵,如果不墙可以试试
尼古拉磁感线2023.10.24
请问山水 魔法是啥 我是小白 遇到了同样的问题