展会信息港展会大全

手把手教你做语音控制智能家居
来源:互联网   发布日期:2021-05-20 07:42:09   浏览:15090次  

导读:手把手教你做天猫精灵语音控制智能灯 前言: 随着科技的发展,现在的家用电器功能越来越强大,虽然WiFi手机控制已经成为标准配置,但手机控制有时候仍然显得不是非常方便,人们必须把手机解锁,找到app,找到相应的配置界面才能操作。这样下来可能就几分钟过...

手把手教你做天猫精灵语音控制智能灯

前言:

随着科技的发展,现在的家用电器功能越来越强大,虽然WiFi手机控制已经成为标准配置,但手机控制有时候仍然显得不是非常方便,人们必须把手机解锁,找到app,找到相应的配置界面才能操作。这样下来可能就几分钟过去了。我们需要一个真正便捷的智能控制,那种最方便呢?当然是语言控制,语音控制是最自然的,最符合人们习惯的控制方式,也是最快捷的方式。今天我就手把手的教大家做一个语音控制的智能灯。我们使用的开发板是一款当今最流行的WiFi开发板esp8266。

语音识别概述

语音控制是人类的梦想,自从计算机出现后人们就不断的想让计算机能够识别人类的声音,但由于人类声音的复杂性,同样的语句,不同的人说出来计算机就不能正确识别,同样,一个人说话,说的语速不一样,计算机也很难识别,这样语音识别就发展的很慢,截止到21世纪初期,也只能识别简单的句子,识别的准确度也是差强人意。但随着近10年深度学习的发展,语音识别的准确度有了非常大的提高,长语音识别率能达到99%以上。这样语音识别的商业价值就渐渐体现出来。我们今天就是使用的语言识别功能是天猫精灵提供的,天猫精灵是阿里巴巴推出的一款智慧音箱,可以识别人的声音,可以和人做简单的对话。

手把手教你做语音控制智能家居

项目搭建

要使用天猫精灵语音控制我们的智能家居,需要先搭建开发环境,开发环境推荐使用Ubuntu linux,linux开发比windows开发要方便。

环境准备:

1.安装ubuntu操作系统

2.安装python环境及其依赖的包

sudo apt-get install-y python

sudo apt-get install-y gcc-multilib

sudo apt-get install-y libssl-dev libssl-dev:i386

sudo apt-get install-y libncurses5-dev libncurses5-dev:i386

sudo apt-get install-y lipeadline-dev lipeadline-dev:i386

sudo apt-get install-y python-pip

sudo apt-get install-y minicom

3.安装aos-cube

sudo pip install setuptools

sudo pip install wheel

sudo pip install aos-cube

#如果遇见pip红色报错,请执行pip install --upgrade pip进行升级即可

4.使用git下载源码

https://github.com/alibaba/AliOS-Things

至此环境已经安装完毕,在开发项目之前,要首先在天猫精灵的平台进行产品创建

产品创建

登录产品创建网站https://living.aliyun.com/,如果有淘宝账号,直接使用淘宝账号登录即可。如果没有则需要自己申请。

登录进去之后首先“创建新项目”

选择天猫精灵生态项目,输入自己的项目名称,点击确定。

手把手教你做语音控制智能家居

项目创建完毕,选择“创建新产品”

选择创建产品的品类

手把手教你做语音控制智能家居

选择产品的属性和功能

手把手教你做语音控制智能家居

第二项可以跳过,到设备调试界面,选择模组,添加新的设备

手把手教你做语音控制智能家居

添加完成后打开设备详情页面

手把手教你做语音控制智能家居

这个页面注意记录下来ProductKey,DeviceName,DeviceSecret这三个重要信息

外加Product Id,总共是四个参数,称为四元组。productID在下图中可以取到。

手把手教你做语音控制智能家居

至此产品和设备创建完毕,下面我们就要编写自己的产品代码。

工程创建

在环境搭建好之后可以使用下面命令创建自己的工程,开发板选择esp8266。

aos create project -b esp8266 -tlinkkit_demo -d 你自己的工作目录 工程目录名

工作目录要事先创建好,创建工程完成后会在工作目录下面生成一个工程目录。

其中app_entry.c 和linkkit_example_solo.c是我们需要更改的文件。

修改代码

1. 修改app_entry.c,添加下面代码

static void linkkit_check_awss(void)

{

int ret = 0;

int32_t len = 0;

netmgr_ap_config_t config1;

memset(&config1, 0, sizeof(netmgr_ap_config_t));

ret = netmgr_get_ap_config(&config1);

len = strlen(config1.ssid);

LOG("ret = %d\n", ret);

LOG("len = %d\n", len);

if (len

LOG("Network is not configured, active_awss\n");

awss_config_press();

}

}

在 application_start 函数中添加该函数的调用部分:

int application_start(int argc, char **argv)

{

...

netmgr_init();

linkkit_check_awss(); //Check configuration and trigger network config

...

这样就可以使能配网功能,设备在未配网状态下可以用“天猫精灵,找队友”发现设备。

2 .修改linkkit_example_solo.c文件

在属性处理函数user_property_set_event_handler内添加硬件控制功能。本函数默认仅仅是打印log。

手把手教你做语音控制智能家居

如果要使用eps8266的IO控制功能,需要在头文件引用esp8266的SDK头文件,并且添加esp8266 GPIO的初始化代码。我们实例的是一个智能灯,就要把控制LED灯的GPIO进行初始化,并把控制部分写入消息回调函数。

修改的代码如下

app_entry.h

手把手教你做语音控制智能家居

app_entry.c

手把手教你做语音控制智能家居

手把手教你做语音控制智能家居

linkkit_example_solo.c

手把手教你做语音控制智能家居

编译和烧写

代码修改完毕后,使用aos make进行编译,编译没有问题后

拷贝编译好的二进制文件烧写到esp8266芯片

使用乐鑫的烧写工具进行烧写,注意下面红色框内的参数需要自己修改。

其中blank.bin 和boot_v1.7_921600.bin在$(AOS_PATH)/platform/mcu/esp8266/bsp下面

手把手教你做语音控制智能家居

烧写完毕后,可以尝试实验天猫精灵“找队友”方式给esp8266配网。

配网成功后可以尝试实验语音控制LED灯的亮和灭。

可以在串口看到服务器和esp8266之间的打印, 波特率设置为921600

手把手教你做语音控制智能家居


赞助本站

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港