这段时间正好是孩子地生会考和岳父岳母新房装修,老两口住了50多年的旧楼房总算要拆了,全楼搬迁到新建楼。地生会考和新房装修两件事赶到了一起,我累坏了。而且我在给家里积攒的大量旧物件做柜子时把手弄伤了,很严重流了好多血缝了三针。每天帮忙买东西,出主意,搬东西,晚上盯孩子背地生。直到今天早晨才彻底搬完,赶紧把行空板M10扩展组合运用赛作业完成。
这几天我想了好几个点子,奈何月底旧楼房就要封闭,新楼要入住,这些点子就来不及实现了。打算假期集中精力把几个点子都做成作品,传到造物记。一起关系好的老师问起我的科创作品,我把以前造物记做的好的作品发给了他。突然发现以前的有点作品缺少AI的加成,有AI的作品缺少声音,这不又是一个灵感吗?完善自己以前的作品,也是创新啊!
为作品掌上小小博物馆——麦积山浏览器加入AI语音合成和声音播放。(https://makelog.dfrobot.com.cn/article-313588.html)
一、硬件
行空板M10、行空板M10扩展板组合、免驱动喇叭


一、全部程序
程序在原有基础上增加了讯飞语音合成功能。

讯飞语音是Mind+自带的,不用搜用户库。

1、主程序

作用:显示初始界面,对各对象初始化。不需要显示的先隐藏起来,需要的显示出来。对象包括笑脸、快去看看按钮、各个文字、二维码、四个按钮、各个图片。在原程序的基础上初始化部分将四个图片的语音讲解提前合成好,以免后期合成点击按钮要等待2分钟才出图片和发出声音。
2、回调函数1

作用:当按下快去看看按钮时,出现第二个界面。第二个界面有文字和二维码、各个按钮。
3、回调函数2

作用:点击麦积山美图按钮时,显示麦积山全图、麦积山缩略图和定位框。新增加免驱喇叭播放提前合成的声音文件maijisahn.wav。
4、回调函数3

作用:点击东崖大佛按钮时,显示东崖大佛图片和返回按钮。新增加免驱喇叭播放提前合成的声音文件dongyadafo.wav。
5、回调函数4

作用:点击菩萨按钮时,显示菩萨图片和返回按钮。新增加免驱喇叭播放提前合成的声音文件pusha.wa。
6、回调函数5

作用:点击小沙弥按钮时,显示小沙弥图片和返回按钮。新增加免驱喇叭播放提前合成的声音文件xiaoshami.wav。
3、回调函数6

作用:点击返回按钮时,返回第二个届面。
8、定位函数,返回x、y坐标

作用:手触摸行空板屏幕时,移动麦积山图片。
三、python代码
# -*- coding: UTF-8 -*-
# MindPlus
# Python
import time
from unihiker import GUI
from unihiker import Audio
from df_xfyun_speech import XfTts
# 事件回调函数
def mouse_move(x,y):
global xZuoBiao
global yZuoBiao
if (flag == 1):
if (x >= 160):
xZuoBiao = (xZuoBiao - 10)
# 图片实在左移,下方除以-10表示右移。实际就是图片和
麦积山图.config(x=xZuoBiao)
定位.config(x=(xZuoBiao / -10))
elif (x <= 80):
xZuoBiao = (xZuoBiao + 10)
麦积山图.config(x=xZuoBiao)
定位.config(x=(xZuoBiao / -10))
if (y >= 160):
yZuoBiao = (yZuoBiao - 5)
麦积山图.config(y=yZuoBiao)
定位.config(y=(yZuoBiao / -10))
elif (y < 160):
yZuoBiao = (yZuoBiao + 5)
麦积山图.config(y=yZuoBiao)
定位.config(y=(yZuoBiao / -10))
def button_click2():
global flag
flag = 1
按钮.config(x=240)
东崖大佛按钮.config(x=240)
菩萨按钮.config(x=240)
小沙弥按钮.config(x=240)
文字1.config(x=240)
文字2.config(x=240)
文字3.config(x=240)
二维码.config(x=240)
返回按钮.config(x=240)
麦积山图.config(x=0)
time.sleep(0.5)
缩略图.config(x=1)
缩略图框.config(x=0)
time.sleep(0.5)
定位.config(x=0)
u_audio.start_play("maijisha.wav")
def button_click1():
圆形.remove()
微笑.remove()
进入按钮.remove()
文字1.config(x=57)
文字2.config(x=65)
文字3.config(x=67)
二维码.config(x=65)
按钮.config(x=130)
东崖大佛按钮.config(x=20)
菩萨按钮.config(x=130)
小沙弥按钮.config(x=20)
def button_click3():
按钮.config(x=240)
东崖大佛按钮.config(x=240)
菩萨按钮.config(x=240)
小沙弥按钮.config(x=240)
东崖大佛.config(x=0)
time.sleep(0.5)
返回按钮.config(x=190)
u_audio.start_play("dongyadafo.wav")
def button_click4():
按钮.config(x=240)
东崖大佛按钮.config(x=240)
菩萨按钮.config(x=240)
小沙弥按钮.config(x=240)
菩萨.config(x=0)
time.sleep(0.5)
返回按钮.config(x=190)
u_audio.start_play("pusha.wav")
def button_click5():
按钮.config(x=240)
东崖大佛按钮.config(x=240)
菩萨按钮.config(x=240)
小沙弥按钮.config(x=240)
小沙弥.config(x=0)
time.sleep(0.5)
返回按钮.config(x=190)
u_audio.start_play("xiaoshami.wav")
def button_click6():
麦积山图.config(x=240)
缩略图.config(x=242)
东崖大佛.config(x=240)
菩萨.config(x=240)
小沙弥.config(x=240)
缩略图框.config(x=242)
定位.config(x=240)
文字1.config(x=57)
文字2.config(x=65)
文字3.config(x=67)
二维码.config(x=65)
按钮.config(x=130)
东崖大佛按钮.config(x=20)
菩萨按钮.config(x=130)
小沙弥按钮.config(x=20)
返回按钮.config(x=240)
xZuoBiao = 0
yZuoBiao = 0
flag = 0
def on_buttona_click_callback():
文字1.config(x=57)
文字2.config(x=65)
文字3.config(x=67)
二维码.config(x=65)
按钮.config(x=130)
东崖大佛按钮.config(x=20)
菩萨按钮.config(x=130)
小沙弥按钮.config(x=20)
麦积山图.config(x=240)
缩略图.config(x=242)
缩略图框.config(x=242)
定位.config(x=240)
appId = "undefined"
apiKey ="undefined"
apiSecret = "undefined"
options = {}
business_args = {"aue":"raw","vcn":"xiaoyan","tte":"utf8","speed":50,"volume":8,"pitch":50,"bgs":0}
options["business_args"] = business_args
u_gui=GUI()
u_audio = Audio()
tts = XfTts(appId, apiKey, apiSecret, options)
u_gui.on_mouse_move(mouse_move)
u_gui.on_a_click(on_buttona_click_callback)
圆形=u_gui.draw_circle(x=120,y=140,r=50,width=3,color="#FF9900")
微笑=u_gui.draw_emoji(emoji="Smile",x=120,y=140,duration=0.2)
微笑.config(origin="center")
微笑.config(w=100)
进入按钮=u_gui.add_button(text="快去看看~",x=65,y=255,w=100,h=30,onclick=button_click1)
文字1=u_gui.draw_text(text="掌上小小博物馆",x=240,y=10,font_size=12, color="#CC33CC")
文字2=u_gui.draw_text(text="——麦积山",x=240,y=40,font_size=12, color="#CC33CC")
文字3=u_gui.draw_text(text="扫码进入网页",x=240,y=70,font_size=12, color="#FF0000")
二维码=u_gui.draw_image(image="二维码.png",x=240,y=95)
按钮=u_gui.add_button(text="麦积山美图",x=240,y=255,w=90,h=30,onclick=button_click2)
麦积山图=u_gui.draw_image(image="全图.png",x=240,y=0)
缩略图=u_gui.draw_image(image="全图.png",x=240,y=2)
东崖大佛按钮=u_gui.add_button(text="东崖大佛",x=240,y=205,w=90,h=30,onclick=button_click3)
东崖大佛=u_gui.draw_image(image="1.png",x=240,y=0)
菩萨按钮=u_gui.add_button(text="菩萨",x=240,y=205,w=90,h=30,onclick=button_click4)
菩萨=u_gui.draw_image(image="3.png",x=240,y=0)
小沙弥按钮=u_gui.add_button(text="小沙弥",x=240,y=255,w=90,h=30,onclick=button_click5)
小沙弥=u_gui.draw_image(image="4.png",x=240,y=0)
# 高设为50,50表示实际的高,不是比例。宽等比例变小
缩略图.config(h=61)
缩略图框=u_gui.draw_rect(x=242,y=0,w=134,h=62,width=2,color="#FF0000")
定位=u_gui.draw_rect(x=240,y=0,w=24,h=32,width=1,color="#00FFFF")
返回按钮=u_gui.add_button(text="返回",x=240,y=280,w=40,h=30,onclick=button_click6)
tts.synthesis("中间主佛是释迦牟尼佛,展现佛的庄严与慈悲,体现佛教核心信仰。两侧胁侍菩萨,造型优美,姿态各异,传达出温婉、虔敬等意涵,辅助烘托主佛神圣氛围 。", "dongyadafo.wav")
tts.synthesis("这尊佛像是 44 窟龛造像,传说与纪念西魏文皇后乙弗氏相关,有着独特历史文化背景 。", "pusha.wav")
tts.synthesis("这是第133 窟的 “东方微笑” 小沙弥造像,它以标志性微笑,传递着对安宁美好生活的向往,成为麦积山石窟传神之作", "xiaoshami.wav")
tts.synthesis("麦积山位于甘肃天水麦积区,因山形酷似麦垛得名,是国家 五A 级旅游景区,中国四大石窟之一麦积山石窟所在地,有 “陇上林泉之冠” 美誉,融合自然与石窟艺术,见证千年文化传承 。", "maijisha.wav")
xZuoBiao = 0
yZuoBiao = 0
flag = 0
while True:
pass
四、程序运行
1. 欢迎界面


2. 主界面


3. 东崖大佛


4.菩萨


5.小沙弥


6. 麦积山美图


7. 扫码进入网页

五、小红书视频网址
https://www.xiaohongshu.com/explore/6860da6a000000000d01b528?xsec_token=YBiIQ6ftzJXPn-BobfYXeIiVXD_UFVQ2ADOHppmy1LIKk%3D&xsec_source=pc_creatormng
评论