mirror of
https://gitee.com/bobo2cj/yiwa.git
synced 2025-12-06 11:19:19 +08:00
develop
YiWa
介绍
- 伊瓦(伊娃&瓦力),用于家庭数据展示和语音手势交互(如:儿童奖励表,幼童算数,搜索图片,俄罗斯方块等);
- 建议设备:4G内存及以上配置笔记本或平板电脑(需要Ubuntu系统);语音和手势识别、短文本语义匹配,本地化运行未调接口。
- 借助Flask框架蓝图功能实现插件化开发,未来将做成一个功能插件商店,可购买安装优质插件功能内容。
- 技术基础(Flask、SQLite、HTML、jQuery),易于开发。内含不同技术示例,各个技术阶段的都能开发自己的功能。
- 大家可以fork自行增加不同领域的专业内容进行孵化,或幼教机构将其改造为青少年Python学习项目。
- 支持Ubuntu, Deepin, Fedora, Mac等类Unix系统下调试开发运行, 不支持Windows.
Python版本
| 分支版本 | Python版本 | 成功运行 |
|---|---|---|
<=v0.4 |
Python3.6 |
Ubuntu18.10 |
>v0.4 |
Python3.8 |
Ubuntu20.04 |
截图
- 语音状态
- 指令目录
实现逻辑
- 接收麦克风语音,本地离线匹配唤醒词(YiWa);
- 唤醒后继续接收麦克风指令,本地语音识别,转换成文字;
- 接着分应用范围向量搜索匹配指令,匹配成功后,再做文本模糊相似性比对;
- 命中指令后操作浏览器跳转指令对应url地址,实现数据展示;
- 同时指令和手势配置关联页面动作实现语音控制页面动作;
主要技术清单
| 模块 | 技术、模型 | 备注 |
|---|---|---|
| 依赖库管理 | pip | |
| 虚拟环境 | virtualenv | |
| Web框架 | flask | https://dormousehole.readthedocs.io/en/1.1.2/ |
| 前端页面 | jinja2+html+jquery | |
| 数据库 | sqlite | |
| 缓存 | memcache | |
| 页面自动化 | playwright | https://playwright.nodejs.cn/python/docs/library |
| 语音唤醒 | snowboy | https://pypi.org/project/snowboy/ |
| 语音识别 | asr_abc[pytorch]、whisper-tiny | https://github.com/glynpu/asr_abc |
| 短文本匹配 | text2vec[transformers]、 faiss[sentence_transformers] |
https://gitee.com/hf-models/text2vec-base-chinese |
| 手势方向识别 | mediapipe | api/gdr/_mediapipe.py |
| 二维码 | qrcode | |
| 文本播报 | kokoro-zh-v1.1 | 已测试,暂未加入,流式耗费资源较高 |
安装 详见Wiki
- 安装依赖
pip install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple - 浏览器自动化 playwright install chromium 安装速度可能比较慢;
- 注意snowboy的安装(建议找下载速度较快的gitee搬运仓库)参考这里
启动运行,详见Wiki
- python3 web.py
- python3 yiwa.py
- 启动无误后,对着麦克风说
YiWa激活,显示所有指令查看已支持的功能指令;
本地开发概述,详见Wiki
- 最好基于类Linux系统开发(Debian,Ubuntu,Fedora,MacOS)
- 可开发基于Flask的插件页面,插件以独包形式,放入apps文件夹下,
- 插件必需包含configs.py配置文件
- 指定必需的参数:APPID :str, APPNAME :str, COMMANDS :dict
- 插件的__init__.py文件必需导入其他flask页面文件,参考已存在的插件包。
- 插件包的静态文件放入各自包里
- 约定:
- 插件必需以单独文件夹形式放入apps文件夹中
- 插件文件夹根目录,必需包含自我介绍的配置文件configs.py文件
TODO
- 小学算术(11位数以内加减乘除,可设置)
- 汉字笔顺(可设置字体和内容)
- 随机出一张喜欢的图,照着画画,按照自己的想象去创意(后台可自行配置关键词)
- 做个在线升级和安装apps的功能,备份本地apps,从gitee拉取代码,替换apps,重启服务。
- 高德地图通勤(跨省/市,后台可设置)
- 时间线功能,适配包含:远古时代(二叠纪、侏罗纪、白垩纪);中国历史编年线;中国古诗词诗人所在年代line
- 贪吃蛇(语音控制:前后左右,调头[近食物],停下[按时缩短],加速,跳过,隐身,自动;
- 设置:食物个数,食物种类和增长点,穿墙,穿过自身,障碍物,老鹰飞过等;其他:长度排名[时间点|长度])
- ✅ 俄罗斯方块游戏,参考这里,谢谢
- 会优先做一个猜水果游戏[苹果、茄子、双星等],在家里和孩子一起玩。
- 人生剩余时间倒计时
- 出门提醒清单(后台可配置)
- 相册轮播(后台管理本地图片)
- 会试着用docker来解决部署过于麻烦的问题。
- 可能哪天会结束这个项目的更新,我还有很多没学,很多想法需要时间实现,很多有趣和必须要做的事情等着我;
- 这里我只是做一个小平台,提供一个思路,希望能够为大家所用。
Languages
Python
51.3%
JavaScript
28.5%
HTML
14.3%
CSS
5.8%


