[项目]行空板语音AI绘画 精华

4524浏览
查看: 4524|回复: 15

[项目] 行空板语音AI绘画

[复制链接]
本帖最后由 云天 于 2023-7-31 16:46 编辑

【项目背景】今年火爆全网的是通过文本描述生成绘画的形式,ai绘画,也叫“ai作画”、“人工智能绘画”,即通过 AI 生成技术得到画作或图片。ai作画由来已久,有许多创作ai绘画作品的方式,包括基于规则的图像生成算法、深度学习算法。最早的ai作画系统 AARON 由 Harold Cohen 于 1960 年代末开始开发。AARON 使用基于符号规则的方法来生成图像,不同于现在ai作画是输出数字化图像,AARON 真的是用画笔和颜料来绘画。2018 年一幅 AI 生成的画被售出超过 40 万美元。这个项目中 AI 基于 GAN (生成对抗网络)技术,学习了 1.5 万件艺术作品,它只能生成油画风格的艺术作品。 2021 年 1 月,OpenAI 发布了 DALL·E,并在一年后发布了生成能力更强的 DALL·E 2。2022 年 7 月 midjourney 开放公测,有人通过 midjourney 生成的作品获得艺术奖项,引起广泛讨论。2022 年 8 月 AI 模型 Stable Diffusion 的开源,才真正引爆了全民参与 AI 作画的热潮。我们可以通过国内的如 画宇宙、盗梦师、tiamat、6pen、draft art、意间AI绘画、即时设计,轻松体验迄今最强的开源 AI 作画模型。
下面是我使用“画宇宙”(https://creator.nolibox.com/creator),利用提示词:花海 日落 古代 战士,生成的AI图
行空板语音AI绘画图4

【项目设计】
主控使用行空板,利用行空板上的麦克风和讯飞语音识别库,识别提示词,再利用flagstudio提供的文字生成图片API,生成AI图像并在屏幕上显示。
【项目硬件】
按钮连接在行空板P21引脚,用于开启录音,和启动显示AI图像。
行空板语音AI绘画图2


行空板语音AI绘画图1

(提示词:梅 兰 竹 菊)


【语音识别】
注册“讯飞开放平台”,在”控制台“获取:APPID、APISecret、APIKey。
行空板语音AI绘画图5
加载讯飞语音识别扩展
行空板语音AI绘画图6

利用Mind+软件Python模式编写程序:
行空板语音AI绘画图7
测试视频

【AI绘画电脑版】
Mind+ Python模式——代码FlagStudio是智源研究院应用文生图,文生音乐等人工智能模型支持艺术创作相关的开源项目集合,利用图文、声文等多模态模型,依托研究院在NLP和CV领域大模型的研究基础,为艺术创作提供更加符合中文场景的人工智能开源算法和模型,使创作效率更加高效,创作空间更加开阔,创作成果更加细腻。当前主要提供文生图相关的能力。https://flagopen.baai.ac.cn注册获取apikey。
  1. #导入相关库
  2. import requests
  3. import json
  4. import base64
  5. import cv2
  6. import numpy as np
  7. from alive_progress import alive_bar
  8. import time
  9. while True:
  10.     u="https://flagopen.baai.ac.cn/flagStudio/auth/getToken"
  11.     param={"apikey":"aee3672220ec348b3b3dfaa7956a8282"}
  12.     token_response=requests.get(url=u,params=param)
  13.     token_json=json.loads(token_response.text)
  14.     token=token_json['data']['token']
  15. #调用api
  16.     u = "https://flagopen.baai.ac.cn/flagStudio/v1/text2img"
  17.     prompt=input("请输入你的创意:")
  18.     param={"prompt":prompt,"steps":80,"style":"国画","width":512,"height":512}
  19.     header={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36",
  20.         "Accept": "application/json",
  21.         "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
  22.         "X-Requested-With": "XMLHttpRequest",
  23.         "token":token}
  24.     response=requests.post(url=u,json=param,headers=header)
  25.     print('AI正在绘画中...')
  26.     img_json=json.loads(response.text)
  27.     img=img_json['data']
  28.     img=base64.b64decode(img)
  29.     imgstring = np.array(img).tobytes()
  30.     imgstring = np.asarray(bytearray(imgstring), dtype="uint8")
  31.     image = cv2.imdecode(imgstring, cv2.IMREAD_COLOR)
  32.     mylist = range(0,30)
  33.     with alive_bar(len(mylist)) as bar:
  34.         for i in mylist:
  35.             bar()
  36.             time.sleep(0.5)
  37.     print('绘制完成')
  38.     cv2.imshow('result',image)
  39.     cv2.waitKey(0)
  40.     cv2.destroyAllWindows()
复制代码

行空板语音AI绘画图8
【行空板AI绘画测试】
使用行空板上的A键开启录音,B键启动AI绘画并在屏幕上显示。
行空板语音AI绘画图3

(提示词:奔腾的俊马)

行空板语音AI绘画图11

(提示词:可爱的兔子)^_^

行空板语音AI绘画图12

(提示词:海上日落)^_^


行空板语音AI绘画图9
测试演示视频

【行空板AI绘画】
装置按钮按下启动录音,再次按下启动AI绘画并在屏幕上显示。
行空板语音AI绘画图10
python代码:
  1. #  -*- coding: UTF-8 -*-
  2. # MindPlus
  3. # Python
  4. from pinpong.extension.unihiker import *
  5. import requests,json,base64,cv2,time
  6. from pinpong.board import Board,Pin
  7. from unihiker import Audio
  8. from unihiker import GUI
  9. import numpy as np
  10. import xunfeiasr
  11. import math
  12. import cv2
  13. u_gui=GUI()
  14. Board().begin()
  15. u_audio = Audio()
  16. p_p21_in=Pin(Pin.P21, Pin.IN)
  17. xunfeiasr.xunfeiasr_set(APPID="d41ee990",APISecret="NmFkZjdhM2U3ZmU5ZmNlN2FjOGJmYjY4",APIKey="d551eafc91a585a49beabe7ad3644ca4")
  18. ShiBieNaRong = 0
  19. BiaoShi = 0
  20. AnNiuBiaoShi = 0
  21. 识别显示=u_gui.draw_text(text="行空板AI画",x=25,y=120,font_size=30, color="#0000FF")
  22. while True:
  23.     if (not (ShiBieNaRong == 0)):
  24.         if (BiaoShi == 1):
  25.             BiaoShi = 0
  26.             buzzer.play(buzzer.DADADADUM,buzzer.Once)
  27.     if (p_p21_in.read_digital()==True):
  28.         if (AnNiuBiaoShi == 0):
  29.             AnNiuBiaoShi = 1
  30.             u_gui.clear()
  31.             识别显示=u_gui.draw_text(text="正在录音……",x=15,y=120,font_size=30, color="#0000FF")
  32.             ShiBieNaRong = 0
  33.             u_audio.record("record.wav",4)
  34.             BiaoShi = 1
  35.             识别显示.config(text="正在识别……")
  36.             ShiBieNaRong = xunfeiasr.xunfeiasr(r"record.wav")
  37.             识别显示.config(text=ShiBieNaRong)
  38.     else:
  39.         if (AnNiuBiaoShi == 1):
  40.             AnNiuBiaoShi = 0
  41.             识别显示.config(text="AI绘画中...")
  42.             u="https://flagopen.baai.ac.cn/flagStudio/auth/getToken"
  43.             param={"apikey":"dc267e87afd46df5265544412f2ee40d"}
  44.             token_response=requests.get(url=u,params=param)
  45.             token_json=json.loads(token_response.text)
  46.             token=token_json['data']['token']
  47.             prompt = ShiBieNaRong
  48.             u = "https://flagopen.baai.ac.cn/flagStudio/v1/text2img"
  49.             param={"prompt":prompt,"steps":80,"style":"国画","width":512,"height":512}
  50.             header={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36","Accept": "application/json","Content-Type": "application/x-www-form-urlencoded; charset=UTF-8","X-Requested-With": "XMLHttpRequest","token":token}
  51.             response=requests.post(url=u,json=param,headers=header)
  52.             img_json=json.loads(response.text)
  53.             img=img_json['data']
  54.             img=base64.b64decode(img)
  55.             imgstring = np.array(img).tobytes()
  56.             imgstring = np.asarray(bytearray(imgstring), dtype="uint8")
  57.             image = cv2.imdecode(imgstring, cv2.IMREAD_COLOR)
  58.             进度条=u_gui.fill_rect(x=0,y=200,w=0,h=30,color="#FF0000")
  59.             for my_variable in range(1, 11):
  60.                 进度条.config(w=(math.ceil((240 * (my_variable / 10)))))
  61.                 time.sleep(0.2)
  62.             进度条.remove()
  63.             image=cv2.resize(image,(240,320))
  64.             cv2.imwrite("img.png", image)
  65.             AI图=u_gui.draw_image(image="img.png",x=0,y=0)
复制代码
【演示视频】







木子呢  管理员

发表于 2023-7-31 18:55:36

大佬,又出新作啦!!
回复

使用道具 举报

云天  初级技神
 楼主|

发表于 2023-7-31 21:37:27

木子呢 发表于 2023-7-31 18:55
大佬,又出新作啦!!


回复

使用道具 举报

rzegkly  版主

发表于 2023-8-1 16:48:42

每次读云天老师作品,收获满满
回复

使用道具 举报

三春牛-创客  初级技神

发表于 2023-8-1 22:27:56

哇,厉害啊!!
回复

使用道具 举报

三春牛-创客  初级技神

发表于 2023-8-1 22:29:43

真的好智能,赞!
回复

使用道具 举报

花生编程  中级技匠

发表于 2023-8-2 23:14:19

厉害厉害
回复

使用道具 举报

花生编程  中级技匠

发表于 2023-8-2 23:15:22

好棒的项目啊,赞!
回复

使用道具 举报

小小怪同学呀  学徒

发表于 2023-8-3 22:15:38

Traceback (most recent call last):
  File "/root/mindplus/cache/新建项目-2023-8-3-21-27-57.mp/AI绘画.py", line 11, in <module>
    import xunfeiasr
ModuleNotFoundError: No module named 'xunfeiasr'

请问这样该怎么解决?
回复

使用道具 举报

ZZ小海鸥  高级技师 来自手机

发表于 2023-8-4 09:03:23

太牛了
回复

使用道具 举报

云天  初级技神
 楼主|

发表于 2023-8-5 16:21:47

小小怪同学呀 发表于 2023-8-3 22:15
Traceback (most recent call last):
  File "/root/mindplus/cache/新建项目-2023-8-3-21-27-57.mp/AI绘画 ...

Mind+ python 模块 图形化下,运行
回复

使用道具 举报

付老师  学徒

发表于 2023-10-18 12:16:40

老师您好,请问FlagStudio的apikey如何获取?我进去https://flagopen.baai.ac.cn网站,在apikey管理里面没有找到对应的模型
回复

使用道具 举报

DeadWalking  初级技师

发表于 2024-1-10 13:15:29

学习云天老师!
回复

使用道具 举报

达拉斯  高级技师

发表于 2024-3-8 15:32:09

大佬,又出新作啦,太棒了。。。
回复

使用道具 举报

DFBJeEqYNRj  学徒

发表于 2024-3-14 20:16:04

https://flagopen.baai.ac.cn注册获取apikey。怎么获取?
回复

使用道具 举报

k神无双  学徒

发表于 2024-4-4 21:31:19

### error: [Errno -3] Temporary failure in name resolution   这样的域名错误如何解决?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail