完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1.背景介绍
老人和小孩子独自在家的时候如果遇到紧急情况,通过拨打电话或者微信的方式通知家人存在操作不便的问题。例如,如果老人摔倒了手机很可能不在身边,对小孩来说手机的操作又过于复杂。针对这种情况,研发一种主动语音上报的系统,语音实时识别人的求救声,然后通过网络发送信息告知家人。 2.硬件选型在该语音主动告警系统中,需要语音时别模块和网络告警模块。xr806有丰富的外围接口,能够采集外部多种传感器的数据,功耗低,可以采用移动电源供电,支持wifi和bt,体积小,可以灵活部署于房间的各个角落。语音模块选用天问的ASRPRO模块,该模块集成度高,支持模块化编程,识别率高的特点。 3.软件实现3.1 软件流程硬件连接框图如下所示,Speech Module支持uart通信和gpio信号,本次实验选用gpio通信,即当识别到特定词汇时拉高gpio向xr806发送信后,xr806接收到信号后发送信息给mqtt client。 硬件实物链接如下图所示 软件整体的流程如下图所示。xr806完成初始化以后,连接网络,建立mqtt连接等待语音模块的输入,接收到信号后,发送mqtt信息给broken,订阅该topic的所有client都会收到该告警信号。语音试别模块上电完成初始化以后输入语音提示信息并循坏等待语音的输入,匹配到对应语音后拉高gpio发送信号给x806,延迟一秒下拉gpio,并输入提示语音。 3.2 语音识别(ASR)的实现天问的语音试别模块支持类似Scrach的模块化图形编程,程序代码如下。 3.3 XR806主机编程3.3.1 工程的建立程序编写完成后先生成模型,然后编译下载即可。 工程建立和编译参考【XR806开发板试用】全志XR806开发板FreeRTOS代码包及开发环境搭建教程 3.3.2 代码开发官方SDK中提供了参考,代码位于xr806_sdk/project/example,本次实现主要参考gpio和mqtt两个文件,基于mqtt的代码完成整体工程的开发。 官方例程是采用的阿里云的mqtt broken服务,使用前需要注册,本次开发采用EMQX提供的免费的公共MQTT服务器,相关信息如下: 按照此信息修改代码的定义:
客户端采用EMQX免费的MQTTX,该工具跨平台且提供网页版。手机端可以搜到MQTT助手等类似工具。 GPIO直接套用实例中的即可,需要完成默认func等配置的初始化:
修改mqtt_demo_fun的while(1)代码块,先判断采集到的gpio信号,然后再publish信息,相关修改如下:
3.3.3 编译执行 编译步骤可以参考工程建立章节提供的链接,官方实例,mqtt的启动依赖于网络的建立,因此系统启动后需要先建立网络,建立网络的命令如下:
系统启动以后,说一句“救命”,XR806就会发送"SOS"信息到broken,同时语音试别模块会发出“我来了”的提示信息。订阅/topic/xr806-sos该topic的Client会收到sos信息,如下: |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
全志T113双核异构处理器的使用基于Tina Linux5.0——RTOS系统定制开发
308 浏览 0 评论
全志T113双核异构处理器的使用基于Tina Linux5.0——RTOS编译开发说明
519 浏览 0 评论
1139 浏览 1 评论
2965 浏览 0 评论
为了学习内核开发,大佬手搓了一个轻量级操作系统YiYiYa OS
2909 浏览 0 评论
【开源硬件大赛】基于全志V853设计的全功能BTB学习开发板
3453浏览 8评论
3108浏览 5评论
1878浏览 4评论
全志V85x硬件设计大赛作品精选第二期,快来Pick你心目中的最佳方案
88987浏览 3评论
3612浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 16:03 , Processed in 0.571391 second(s), Total 52, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号