【项目背景】今年火爆全网的是通过文本描述生成绘画的形式,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图

【项目设计】
主控使用行空板,利用行空板上的麦克风和讯飞语音识别库,识别提示词,再利用flagstudio提供的文字生成图片API,生成AI图像并在屏幕上显示。
【项目硬件】
按钮连接在行空板P21引脚,用于开启录音,和启动显示AI图像。
(提示词:梅 兰 竹 菊)
【语音识别】
注册“讯飞开放平台”,在”控制台“获取:APPID、APISecret、APIKey。

加载讯飞语音识别扩展

利用Mind+软件Python模式编写程序:

测试视频
【AI绘画电脑版】
Mind+ Python模式——代码FlagStudio是智源研究院应用文生图,文生音乐等人工智能模型支持艺术创作相关的开源项目集合,利用图文、声文等多模态模型,依托研究院在NLP和CV领域大模型的研究基础,为艺术创作提供更加符合中文场景的人工智能开源算法和模型,使创作效率更加高效,创作空间更加开阔,创作成果更加细腻。当前主要提供文生图相关的能力。https://flagopen.baai.ac.cn注册获取apikey。
-
-
- #导入相关库
- import requests
- import json
- import base64
- import cv2
- import numpy as np
- from alive_progress import alive_bar
- import time
-
- while True:
- u="https://flagopen.baai.ac.cn/flagStudio/auth/getToken"
- param={"apikey":"aee3672220ec348b3b3dfaa7956a8282"}
- token_response=requests.get(url=u,params=param)
- token_json=json.loads(token_response.text)
- token=token_json['data']['token']
-
- #调用api
- u = "https://flagopen.baai.ac.cn/flagStudio/v1/text2img"
- prompt=input("请输入你的创意:")
- param={"prompt":prompt,"steps":80,"style":"国画","width":512,"height":512}
- 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}
- response=requests.post(url=u,json=param,headers=header)
- print('AI正在绘画中...')
-
- img_json=json.loads(response.text)
- img=img_json['data']
- img=base64.b64decode(img)
-
-
- imgstring = np.array(img).tobytes()
- imgstring = np.asarray(bytearray(imgstring), dtype="uint8")
- image = cv2.imdecode(imgstring, cv2.IMREAD_COLOR)
- mylist = range(0,30)
- with alive_bar(len(mylist)) as bar:
- for i in mylist:
- bar()
- time.sleep(0.5)
- print('绘制完成')
- cv2.imshow('result',image)
- cv2.waitKey(0)
- cv2.destroyAllWindows()
复制代码

【行空板AI绘画测试】
使用行空板上的A键开启录音,B键启动AI绘画并在屏幕上显示。
(提示词:奔腾的俊马)
(提示词:可爱的兔子)^_^
(提示词:海上日落)^_^

测试演示视频
【行空板AI绘画】
装置按钮按下启动录音,再次按下启动AI绘画并在屏幕上显示。

python代码:
-
- # -*- coding: UTF-8 -*-
-
- # MindPlus
- # Python
- from pinpong.extension.unihiker import *
- import requests,json,base64,cv2,time
- from pinpong.board import Board,Pin
- from unihiker import Audio
- from unihiker import GUI
- import numpy as np
- import xunfeiasr
- import math
- import cv2
-
-
- u_gui=GUI()
- Board().begin()
- u_audio = Audio()
- p_p21_in=Pin(Pin.P21, Pin.IN)
- xunfeiasr.xunfeiasr_set(APPID="d41ee990",APISecret="NmFkZjdhM2U3ZmU5ZmNlN2FjOGJmYjY4",APIKey="d551eafc91a585a49beabe7ad3644ca4")
- ShiBieNaRong = 0
- BiaoShi = 0
- AnNiuBiaoShi = 0
- 识别显示=u_gui.draw_text(text="行空板AI画",x=25,y=120,font_size=30, color="#0000FF")
-
- while True:
- if (not (ShiBieNaRong == 0)):
- if (BiaoShi == 1):
- BiaoShi = 0
- buzzer.play(buzzer.DADADADUM,buzzer.Once)
- if (p_p21_in.read_digital()==True):
- if (AnNiuBiaoShi == 0):
- AnNiuBiaoShi = 1
- u_gui.clear()
- 识别显示=u_gui.draw_text(text="正在录音……",x=15,y=120,font_size=30, color="#0000FF")
- ShiBieNaRong = 0
- u_audio.record("record.wav",4)
- BiaoShi = 1
- 识别显示.config(text="正在识别……")
- ShiBieNaRong = xunfeiasr.xunfeiasr(r"record.wav")
- 识别显示.config(text=ShiBieNaRong)
- else:
- if (AnNiuBiaoShi == 1):
- AnNiuBiaoShi = 0
- 识别显示.config(text="AI绘画中...")
- u="https://flagopen.baai.ac.cn/flagStudio/auth/getToken"
- param={"apikey":"dc267e87afd46df5265544412f2ee40d"}
- token_response=requests.get(url=u,params=param)
- token_json=json.loads(token_response.text)
- token=token_json['data']['token']
- prompt = ShiBieNaRong
- u = "https://flagopen.baai.ac.cn/flagStudio/v1/text2img"
- param={"prompt":prompt,"steps":80,"style":"国画","width":512,"height":512}
- 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}
- response=requests.post(url=u,json=param,headers=header)
- img_json=json.loads(response.text)
- img=img_json['data']
- img=base64.b64decode(img)
- imgstring = np.array(img).tobytes()
- imgstring = np.asarray(bytearray(imgstring), dtype="uint8")
- image = cv2.imdecode(imgstring, cv2.IMREAD_COLOR)
- 进度条=u_gui.fill_rect(x=0,y=200,w=0,h=30,color="#FF0000")
- for my_variable in range(1, 11):
- 进度条.config(w=(math.ceil((240 * (my_variable / 10)))))
- time.sleep(0.2)
- 进度条.remove()
- image=cv2.resize(image,(240,320))
- cv2.imwrite("img.png", image)
- AI图=u_gui.draw_image(image="img.png",x=0,y=0)
-
-
复制代码 【演示视频】
|
File "/root/mindplus/cache/新建项目-2023-8-3-21-27-57.mp/AI绘画.py", line 11, in
import xunfeiasr
ModuleNotFoundError: No module named 'xunfeiasr'
请问这样该怎么解决?