查看: 223|回复: 2

[参赛项目] 创客造|mind+|火车站广播系统

[复制链接]
本帖最后由 rzyzzxw 于 2021-2-6 17:44 编辑

【项目简介】
我的家乡在豫西的一个小小县级市汝州,焦枝线经过,有一个小火车站,我出远门常常在那里坐火车。
绿皮的那种。
https://mp.weixin.qq.com/s/8wJQ5Zj0tBI80IpLgeIQMQ
读了果冻老师的文章,介绍的是果源同学的作品,我想结合汝州火车站写一个播报系统。
【设计目标】
提醒工作人员对列车进站做好准备,提醒旅客及时上车以免延误,为旅客提供准确详细的检票信息。
程序模拟汝州火车站的情况,对接车、检票、停止检票环节进行设计,实现语音自动播报。满足工作人员及旅客的需求。
FriFebruary-202102058862..png


【分析】
汝州火车站是一个小站,只有一个候车厅,两个检票口,两个站台,一号站台1车道,二号站台1、2两个车道。
客车车次也不多,大多时间只有一列车停靠,两列客车同时进站的情况不很多。
只有普通列车,没有高铁。
所以整个程序比较简单。
【视频】
https://www.bilibili.com/video/BV1Yy4y1Y7St

1、程序界面
FriFebruary-202102056582..png
2、全部角色

3、变量和列表
4、背景
没有脚本

5、使用说明

FriFebruary-202102059578..png
6、接车-检票-停止检票按钮
初始定位,点击发送消息。




7、广播角色
初始化,定位,虚化。
接收到接车消息,询问车次、站台、车道信息,存入相应变量,然后执行自定义积木,播报工作人员接车信息。
自定义积木,接车,有车次、站台、车道三个参数。
这个积木是整个程序的核心内容。
播报录入的提示音,特别是提取车次中的字母和数字分别读出,为了读出数字,使用了一个变量--循环。
分段说明:
a读出车次字母和数字

b读出站台
c读出车道
以上方法可以减少对网络AI语音合成的依赖,完成数字语音播报。火车站的播报车次部分语音也是不很连续,好像也是这种处理方式。
录音


检票和停止检票积木程序相似,本角色全部脚本如下(感谢陈老师优化建议)。

8、重播检票和重播停止按钮


发送消息,再次播报最近输入保存在变量中的信息,无需重复输入。
接收消息并播报程序在上面广播角色中了。
到此,完成整个程序。
边写边测,现在可以开心的测试全部程序啦。

【小结】
编程学习,有趣且有用。
本项目有一个问题没有解决,播报接车时没有实现列车的始发和终点播报。
工作人员请注意,由南阳--开往--洛阳的****次列车就要开过来了,进*站台*道,请做好接车准备。
欢迎高手补充。


szjuliet  版主

发表于 2021-2-5 17:45:55

角色的名字和造型好可爱啊~~
几个改进意见:
1. 使用文字朗读代替声音播放
2. 将同类关键字作为列表存放,使用循环可以极大减少代码量
3. 因为所有的播放模块逻辑相似,可以使用带参数的函数来实现
4. 将车次增加起点和终点属性,保存为列表并导入到程序中,即可实现始发和终点播报。
回复

使用道具 举报

rzyzzxw  版主
 楼主|

发表于 2021-2-6 09:31:12

szjuliet 发表于 2021-2-5 17:45
角色的名字和造型好可爱啊~~
几个改进意见:
1. 使用文字朗读代替声音播放

谢谢陈老师指导,程序优化和AI文字朗读版正在进行中。
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

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

硬件清单

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

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

mail