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將立刻開始語音播報天氣信息。

到此自動語音播報天氣 就完成了。

 

關注一下,

👇👇👇



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM