Home Assistant系列 -- 自动语音播报天气
在树莓派上要让 Home Assistant 发声朗读 ,从硬件上我们需要 3.5mm插口音箱(耳机)或usb口音箱(耳机)。软件方面 我们需要一个媒体播放器以及 tts ( 将文字转化为语音的服务 )。
1. 安装媒体播放器
使用命令 sudo apt-getinstall vlc 在树莓派上安装 VLC 媒体播放器。
因为树莓派有多个音频输出设备,我们在它的图形界面中设置音频输出设备为 Analog 也就是它的耳机插口。
打开 Home Assistant 的配置文件 configuration.yaml 配置 VLC 媒体播放器。在配置中添加如下内容 保存退出:
media_player:
- platform: vlc
2. 配置TTS 语音服务
国内外有多家大厂都提供tts 服务,这里我选择的是使用百度的tts,当然大家也可以使用谷歌或微软。
首先需要登录百度云官网,注册百度语音服务。注册完成后,保存appid、apikey及secretkey三个数值备用。打开Home Assistant 的configuration.yaml配置文件。在配置文件中找到tts配置节点修改为如下内容:
tts:
- platform: baidu
#app_id,api_key,secret_key从百度云上注册得到
app_id: xxxxxxxxxx
api_key: xxxxxxxxxx
secret_key: xxxxxxxxxx
#speed:语速0-9(缺省5)
#pitch:语调0-9(缺省5)
#volume:音量0-15(缺省5)
#person:声音(0:女,1:男,3:百度合成,4:百度合成,缺省0)
speed: 5
pitch: 5
volume: 15
person: 0
保存配置后,重新启动Home Assistant,使配置生效。打开 HA 的 web界面这时就会在面板中看到vlc 媒体播放器。打开后 在其中输入文字 系统就会调用tts服务 将文字转化为语音,然后用媒体播放器播放出来。
3. 配置自动化
打开 HA 的配置文件 configuration.yaml ,在文件中填入如下内容:
- alias: weather_report
initial_state: true
trigger:
- platform: time
hours: 7
minutes: 30
seconds: 0 condition:
condition: numeric_state
entity_id: sensor.weather_temperature
above: 30 #判断气温是否高于30°C action:
- service: tts.baidu_say
data_template:
entity_id: media_player.vlc
message: "现在播报天气信息。温度,{{states('sensor.weather_temperature')}}°C, 湿度{{states('sensor.weather_humidity')}},风速{{states('sensor.weather_wind_speed')}}, 气压{{states('sensor.weather_pressure')}}"
以上配置是接入了天气组件的,有朋友不知道如何接入天气请看这篇文章智能家居系统 Home Assistant 系列 --配置天气信息
保存配置后,重新启动Home Assistant,使配置生效。重启完成后,新添加的自动化将自动出现在web操作界面上。按照此自动化规则,Home Assistant将在每天早上7点30分判断气温是否高于30°C,如果高于该温度则语音播报天气信息。
当然也可以手工触发该自动化规则,点击自动化面板上左下角操作图标。
此时Home Assistant将立刻开始语音播报天气信息。
到此自动语音播报天气 就完成了。
关注一下,更多精彩,不容错过!
Home Assistant系列 -- 自动语音播报天气的更多相关文章
- Home Assistant系列美化篇——替换天气 UI
替换天气组件 weather 的默认 UI,生成美观大方的气象卡片. Home Assistant 原生的天气平台不少,国内用户常用的有雅虎天气和 Darksky.其他论坛和社区也有分享自制的和风.彩 ...
- PHP实现智能语音播报
原文地址 https://www.jianshu.com/p/91a046ec6ebc 大家估计都知道现在很多AI音响能够给你播报天气,叫你起床...甚至能够接受语音指令!所谓的人工智能音响,听起来很 ...
- 智能家居系统 Home Assistant 系列 --安装系统之Windows
Home Assistant 是一个成熟完整的基于 Python 的智能家居系统. 首先得安装Python环境.在浏览器中访问Python官网 www.python.org 进入Downloads中的 ...
- iOS10 语音播报填坑详解(解决串行播报中断问题)
iOS10 语音播报填坑详解(解决串行播报中断问题) 在来聊这类需求的解决方案之前,咱们还是先来聊一聊这类需求的真实使用场景:语音播报.语音播报需求运用最为广泛的应该是收银对账了,就类似于支付宝.微信 ...
- Home Assistant系列 -- 基于树莓派安装并设置自启动
Home Assistant 是当前智能家居最火热的开源DIY 软件,之前的文章 智能家居系统 Home Assistant 系列 --介绍篇 已经详细介绍过了,这里就不详细介绍了,今天介绍 如何 ...
- Android语音播报、后台播报、语音识别
Android语音播报.后台播报.语音识别 本文介绍使用讯飞语音实现语音播报.语音识别功能. 讯飞开放平台:http://www.xfyun.cn/index.php/default/index 程序 ...
- iOS如何实现语音播报及后台播放
最近项目刚刚交付,偶然间用到了语音播报和语音搜索的功能.语音搜索我用的是讯飞的demo,感觉效果还不错,感兴趣的话可以去官网上面下载demo,里面讲的特别的详细,不过稍显麻烦一些.语音播报讯飞也有de ...
- SpeechLib 语音播报
SpeechLib这的dll专门用来播放语音,能够识别英语.简体和繁体.并且可以播放声音文件,支持WAV格式,但不支持MP3.在报警场合下已经够用了. 基本播放语音及文件.支持异步. using Sy ...
- 语音合成,语音播报功能(系统)-b
第一次接触语音合成,只实现了很简单的功能,记录一下,以后免得去网上四处找资料 最近在做高德地图导航的时候有个语音播报的功能,高德sdk已经提供了要语音的字符串.我要做的就是把这些字符串读出声音来即可. ...
随机推荐
- Stop-VM
stop-vm vm01 -force 正常关机,留给Guest 5分钟保存数据,然后关闭 stop-vm vm02 -turnoff 断电关机 Windows Server 2008 R2默认没有 ...
- Java学习---基础知识学习
2016-07-23 周六 利用键盘输入的时候需要抛出异常 ,直接快捷键 ctrl + 1 ;定义数组 int score[] = new int[4] ; 只有4个数字BufferedRead ...
- iOS开发之iOS界面UI
1.UILabel NSString *str = @"字符串大小"; UIFont *font = [UIFont fontWithName:@"Arial" ...
- Vmstat主要关注哪些数据?
除特殊情况外,一般关注飘红部分 任务的信息(procs) r(running) 在internal时间段里,运行队列中的进程数,即表示正在运行或者正在等待CPU时间的进程数,如果这个参数值超过服务器上 ...
- hql to_number
select max(cast(o.ordernum,int)) from className o or select max(cast(o.ordernum as int)) from classN ...
- 4、Python文件操作工具 xlsxwriter 工具
# _*_ encoding:utf-8 _*_ import xlsxwriter #创建xlsx后缀名的excelexcel = xlsxwriter.Workbook(r'D:\github\f ...
- (七)Linux下的关机与重启命令
============================================================================================= 关机与重启命 ...
- python中的装饰函数
在面向对象(OOP)的设计模式中,decorator被称为装饰模式.OOP的装饰模式需要通过继承和组合来实现,而Python除了能支持OOP的decorator外,直接从语法层次支持decorator ...
- list详解
#include <iostream> #include <vector> #include <list> std::list<std::string> ...
- Laravel发送邮件配置-问题解决
MAIL_DRIVER=smtp MAIL_HOST=smtp..com MAIL_PORT= MAIL_USERNAME=phpfangzhan@@@@@.com MAIL_PASSWORD=*** ...