54 Star 352 Fork 101

haok2 / yiwa

加入 Gitee
与超过 1000 万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README.md

YiWa

介绍

  • 伊瓦(伊娃&瓦力),用于家庭数据展示和简单交互(例如:儿童自律表,幼儿园算数,随机爬取一个恐龙图片等); 需要一个树莓派(网络、麦克风)和一台电视机(HDMI线)无需鼠标,只要说出指令,页面跳转到对应功能; 它是一个伪AI项目,全部基于百度AI开放平台,语音识别指令,NLP语义理解;可以理解为带有大屏的假"智能音箱"。
  • 不知咋就在这个分类下了,他是家庭语音控制"假机器人",语音转页面指令动作,利用树莓派+(显示屏)电视机,实现家庭的内容展示和无键鼠控制; 未来将做成一个功能插件商店,可购买安装优质插件功能内容,例如:儿童自律表,小学算术题,随机出个简笔画,家庭电子书,励志黑板报等。 该系统基于百度AI开发平台,语音识别,NLP匹配指令,支持本地开发,上传商店,技术基础,易于开发, 基础代码已给出不同技术示例,让各个技术阶段的都能开发自己的功能。
  • 大家可以fork自行增加不同领域的专业内容进行孵化,或幼教机构将其改造为儿童Python学习项目,总之,它在我脑中有很多种可能; 我也想把它作为一个项目孵化,恰好我现在也供职于一家儿童心理教育类公司。
  • 支持Ubuntu, Deepin, Fedora, Mac等类Unix系统下调试开发运行, 不支持Windows.

截图

  • 语音状态

语音状态

  • 指令目录

指令目录

  • 自律表格(扫描二维码在手机端管理,在家庭无线网内使用)

自律表格 自律表格管理界面

树莓派运行时样子,有视频,树莓派2b+usb麦克风+usb无线网卡

:movie_camera: :point_right: 操作录像已上传B站,点我去看 :point_left:

树莓派

  • 抖音上育子心得,不少家长建议少看电视,觉得有道理,那就把它改为语音交互的视觉输出端!

  • 俄罗斯方块 俄罗斯方块

大概流程

接收麦克风语音,本地离线匹配唤醒词;唤醒后继续接收麦克风指令,指令接入百度语音识别平台,转换成文字; 接着继续使用百度AI平台的NLP功能,将指令短文本和本地预设好的指令短文本,做语义比较; 匹配成功后,通过selenium打开本地预设指令对应的url地址,就此实现无鼠标语音控制页面内容展示功能。

安装教程,看Wiki

  1. pip install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
  2. selenium使用的谷歌驱动文件需要替换为你本地chrome对应的版本,当前chrome84版本, 下载地址:这里选择不同版本
  3. 下载好chromedriver文件后不要更改文件名,就保持chromedriver或chromedriver.exe;
  4. 替换自己的百度AI的key(申请指南), 配置在nlp/configs.py文件修改(百度的短语相似度分析功能)。
  5. 注意snowboy的安装(建议找下载速度较快的gitee搬运仓库), 不同系统平台不一样(这里已经编译了苹果和树莓派). 参考这里
  6. 语音识别从百度更换到了asr_abc开源项目,[项目地址](https://github.com/glynpu/asr_abc), 同时由于其数据文件较大,开源单独下载后,放入项目中(asr/asr_abc/data/exp/conformer_encoder.pt), 下载地址

使用说明(程序启动),看Wiki

  1. python3.6 web.py
  2. python3.6 yiwa.py
  3. 启动无误后,即可对着你的麦克风说话,目前支持指令:返回首页,刷新指令,显示所有指令,重启等;

本地开发,看Wiki

  1. 最好基于类Linux系统开发(Debian,Ubuntu,Fedora,MacOS)
  2. 可开发基于Flask的插件页面,插件以独包形式,放入apps文件夹下, 插件必需包含configs.py文件,并指定必需的参数:APPID :str, APPNAME :str, COMMANDS :dict
  3. 插件的__init__.py文件必需导入其他flask页面文件,参考已存在的插件包。
  4. 插件包的静态文件放入各自包里
  5. 约定:
    • 插件必需以单独文件夹形式放入apps文件夹中
    • 插件文件夹根目录,必需包含自我介绍的配置文件,configs.py文件,至少有:appid,appname,

注意

  • !!!请申请你自己的百度AI应用key,方法在下面(安装教程)!!!
  • 目前只用了百度NLP短语匹配,语音识别已使用本地asr模型识别(pytorch,github上的)
  • 本人水平有限,能力一般,项目难度不大,你也可以。
  • 本地部署运行文档见项目Wiki

TODO

  • :white_check_mark: 做几个页面(至少包含欢迎和指令目录)
  • :white_check_mark: 使用websocket刷新yiwa的唤醒状态和语音指令,下一步加入是否“正在录音”的界面标识, 方便用户知道什么时候该说出指令,而不是去“碰”。
  • :white_check_mark: 提升下语音指令匹配的速度,先采用本地词库来预匹配,找到对应插件,再接百度, 缩小遍历范围(本地词库需要去生产词库文件,如果采用自动化去生成,对于速度没有保障, 故而采用jieba分词处理)
  • :white_check_mark: 做下tts文本转语音基础功能,供插件需要发出语音响应时调用(缺少对不同平台的处理, 例如mac用mei-jia,linux用xxx,windows用xxx)
  • :white_check_mark: 做个二维码生成基础功能,供插件调用,有的插件可能需要借助手机来配置,例如闹钟,通勤地点等 (渲染时需要使用自定义的render方法,看home页面的实现)
  • :white_check_mark: 做个系统配置管理页,修改一些能带来不同体验的参数,录音间隔时间和录音时长。
  • :white_check_mark: ip地址动态获取局域网本地ip
  • :white_check_mark: 自律表格(完成一项加一个鼓励,以鼓励为主,没有惩罚;后台可以配置自律项和鼓励项,以及奖励,兑换功能等;)
  • :white_check_mark: 简化版俄罗斯方块,主要是为了给寒假带来快乐,同时锻炼平面空间想象和专注力;
  • 幼小算术方法(学科类不止是做题,本质是方法)
  • 汉字笔顺动图展示
  • 随机出一张喜欢的图,照着画画,按照自己的想象去创意(我家孩子喜欢恐龙和工程车,后台可自行配置关键词)
  • :white_check_mark: 修改指令匹配逻辑,一级指令下只能唤醒该功能下的语音指令,避免功能间指令冲突
  • :white_check_mark: 修改顶部状态栏录音状态样式,录音中(绿色圆声音波段动图),识别中(黄色圆转圜动图),失败(红色圆感叹号图)
  • 英语单词
  • :white_check_mark: 停下来优化调整(部分代码替换为python的特性写法)
  • 做个在线升级和安装apps的功能,备份本地apps,从gitee拉取代码,替换apps,重启服务。
  • 高德地图通勤(跨省/市)
  • 时间线功能,适配包含:远古时代(二叠纪、侏罗纪、白垩纪);中国历史编年线;中国古诗词诗人所在年代line
  • 贪吃蛇(语音控制:前后左右,调头[近食物],停下[按时缩短],加速,跳过,隐身,自动;设置:食物个数,食物种类和增长点,穿墙,穿过自身,障碍物,老鹰飞过等;其他:长度排名[时间点|长度])
  • :white_check_mark: 俄罗斯方块游戏,参考这里,谢谢
  • 会优先做一个猜水果游戏[苹果、茄子、双星等],在家里和孩子一起玩。
  • 人生剩余时间倒计时
  • 使用电视机作为屏幕并不是个好办法,耗电!家里有2部淘汰的安卓手机,会尝试在安卓手机上运行(摄像头和麦克风都解决了),如果行不通或者难度不适合,则采用一块7寸显示屏配合树莓派使用。
  • 最后会试着用docker来解决部署过于的问题,但需要处理好调用宿主机硬件需求,如果不行则用shell来解决部署问题,尽可能的降低部署难度。
  • 到这里会结束这个项目的更新,我还有很多没学,很多想法需要时间实现,很多有趣和必须要做的事情等着我;这里我只是做一个小平台,提供一个思路,希望能够为大家所用。

简介

伊瓦,家庭语音控制"假机器人",语音转页面指令动作,利用树莓派+电视机,实现家庭的内容展示和无键鼠控制;技术基础,易于开发,基础代码已给出不同技术示例,让各个技术阶段的都能开发自己的功能;也可作为幼教机构教材,儿童Python编程课程项目。 展开 收起
Python 等 5 种语言
GPL-2.0
取消

发行版

暂无发行版

yiwa

贡献者

全部

近期动态

加载更多
不能加载更多了
Python
1
https://gitee.com/bobo2cj/yiwa.git
git@gitee.com:bobo2cj/yiwa.git
bobo2cj
yiwa
yiwa
develop

搜索帮助