博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Home Assistant系列 -- 自动语音播报天气
阅读量:6760 次
发布时间:2019-06-26

本文共 1833 字,大约阅读时间需要 6 分钟。

 在树莓派上要让 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,使配置生效。重启完成后,新添加的自动化将自动出现在web操作界面上。按照此自动化规则,Home Assistant将在每天早上7点30分判断气温是否高于30°C,如果高于该温度则语音播报天气信息。

 

当然也可以手工触发该自动化规则,点击自动化面板上左下角操作图标。

此时Home Assistant将立刻开始语音播报天气信息。

到此自动语音播报天气 就完成了。

 

关注一下,

???

 

转载于:https://www.cnblogs.com/wirehome/p/10383822.html

你可能感兴趣的文章
ls只显示文件名/只显示文件夹名
查看>>
Java并发编程:同步容器
查看>>
水晶报表之动态列--简化版实现
查看>>
验证控件的使用四( RangeValidator)
查看>>
网络编程(一):用C#下载网络文件的2种方法
查看>>
复制graphic
查看>>
基于NopCommerce的开源电商系统改造总结
查看>>
JavaScript是怎样让互联网变慢的(及对策)
查看>>
诺基亚预装WIN8系统的LUMIA平板真机曝光-应用电台
查看>>
遇见C++ PPL:C++ 的并行和异步
查看>>
软件开发中关于向后兼容的理解
查看>>
ios开发之 MPMoviePlayerController 视频播放器
查看>>
count(*)、count(val)和count(1)的解释
查看>>
[Leetcode] Largest Rectangle in Histogram
查看>>
final (Java)
查看>>
The Master of Science degree in Computer Scienc
查看>>
利用Stack倒序List,利用Set使List不能添加重复元素
查看>>
移动云计算应用开发入门经典
查看>>
当跳票成了习惯
查看>>
InstallShield 10 Express 使用
查看>>