如何用树莓派做一个家庭语音助手/智能音箱

44 篇文章 8 订阅
36 篇文章 1 订阅

一、前言

这学期闲来无事,于是搞了个简单的家庭语音助手,其主要实现的功能有:

  • 语音唤醒;
  • 控制家电;
  • 询问时间和日期;
  • 询问天气情况;
  • 查询垃圾分类;
  • 播报新闻;
  • 微信小程序远程控制

以下是为实现上述功能所需的底层基础:
语音合成、语音识别、多机通信、微机控制、python编程

二、底层基础实现

1)语音合成

如需了解,请移步我的另一篇博客:
《百度AI 开放平台 >>> 语音合成》

2)语音识别

如需了解,请移步我的另一篇博客:
《百度AI 开放平台 >>> 智能语音识别》

3)多机通信

可以选择使用单片机和树莓派各自的串口进行通信。

4)微机控制

就是一些单片机方面的控制,包括电平控制和输出脉冲控制,可以参照我之前的有关stm32 单片机的使用的博客:
https://blog.csdn.net/weixin_40973138/category_9282952.html

5)python编程

用树莓派最好还是使用python,比较方便,支持度也比较高。

三、主要功能实现

1)语音唤醒

所采用方案请参见我的另一篇博客 👉 《如何为DIY的智能音箱赋予语音唤醒能力》
在这里插入图片描述

实现方案:让单片机控制声音传感器,等待周围声音的触发。当检测到周围有达到一定分贝的声音时,便认为可能有用户正在对语音助手进行呼唤,于是通过串口发送指令给树莓派,树莓派接收到指令后便开始录音,当检测到音频中有关键词信息时,则可以确认是用户的呼叫,这样就实现了语音唤醒功能。
不过这个方案也有着一定的不足之处:在声音传感器检测声音信号到树莓派开始录音这一段时间不算太短,所以我们可能在喊关键词之前要先激活树莓派,等树莓派开始录音之后再喊关键词。

2)控制家电:

实现方案:树莓派检测到音频中有控制家电的关键词信息(例如开灯、关窗等),则通过串口发送指令给单片机,随即单片机通过控制电平或其他通讯方式控制家电。

3)询问时间和日期

实现方案:树莓派检测到音频中有询问时间或日期的关键词信息,调用python的datetime库的datetime.now()time库的time.localtime(time.time())获得当前时间和日期,然后再通过语音合成将时间日期播报出来。

4)询问天气情况

可使用:和风天气API,只需要注册一个开发者账户,然后按照其开发文档的要求格式进行数据请求:

# 深圳
https://free-api.heweather.net/s6/weather/now?location=shenzhen&key=2e3adxxxxxxxxxxxxxxxxxxa704c2

然后把数据中的天气信息拿出来即可。

实现方案:树莓派检测到音频中有询问天气情况的关键词信息,通过调用和风天气API 获得某地天气信息,然后再通过语音合成将某地天气情况播报出来。

5)查询垃圾分类

可使用:https://www.mxnzp.com/api/rubbish/type?name=,只需要在这个url后面添加想要查询的垃圾名称即可,例如香蕉皮:

https://www.mxnzp.com/api/rubbish/type?name=香蕉皮

返回结果:
在这里插入图片描述
然后把其中的垃圾类别拿出来即可。

实现方案:树莓派检测到音频中有查询垃圾分类的关键词信息,通过调用查询垃圾分类API 获得垃圾类别信息,然后再通过语音合成将该垃圾所属类别播报出来。

6)播报新闻

可使用:https://github.com/public-apis/public-apis,其中包括查询新闻的API

实现方案:树莓派检测到音频中有询问新闻的关键词信息,通过调用查询新闻API 获得某类新闻信息,然后再通过语音合成将新闻播报出来。

有时说不定还要汉字转拼音什么的,可以用天行数据API

7)微信小程序远程控制

我们知道,当树莓派连接家庭WiFi 时,其并不具备公网IP,所以为了让微信小程序能够远程控制树莓派,从而控制家电的目的,我们需要对树莓派进行内网穿透,该过程可以参考我之前写到博客:
《树莓派 >>> 端口映射到公网》
如此一来,在我们的小程序端向该公网端口发送数据,我们的服务器就能够将数据转发至树莓派,从而实现控制局域网树莓派的功能。

四、额外功能拓展

为语音助手赋予视觉能力,担当家庭守门人工作 👇
《如何用树莓派制作一个可语音交互的家庭智能监控》

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诺亚方包

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值