Прогноз погоди голосом

 

 
Як зробити скрипт, який говорить погоду.

 

 
Прогноз погоди у FreeBSD.

 

 
Я часто бачив, як на роботі люди дивляться прогноз погоди, шукають дані на якихось сайтах або запитують мене знайомі:

 

- Чи дивився ти погоду?

 
Це все не для мене, мені не хочеться шукати погоду на сайтах, дивитися дані за певний період та порівнювати їх з іншими джерелами. Я завжди думав що будь-якої миті можна подивитися на градусник на кухні і одягнутися по погоді. Тому я написав простий Shell script скрипт для Bourne shell який просто при натисканні на ньому говорить погоду на даний момент. Так є випадки по роботі або побутового характеру, коли потрібно знати заздалегідь, наприклад, коли будуть заморозки. З цією метою завжди можна змінити скрипт.

 
Під статтею перегляньте демонстративне відео роботи даного скрипта.

 

 
Приступимо до написання скрипта.

 

 
Для початку нам знадобиться встановити та налаштувати синтезатора мови під назвою Festival. Як це зробити в операційній системі FreeBSD я вже писав на своєму сайті, тому зараз не про це розповідатиму, а перейду безпосередньо до скрипту. Як встановити синтезатора мови Festival на FreeBSD, можете почитати в моїй попередній статті «Вчимо розмовляти FreeBSD».

 
Отже, створюємо файл з будь-якою назвою з розширенням sh, у мене це pogoda.sh. Пишемо до нього наступні рядки:

 

 

#!/bin/sh

 
URL='https://www.accuweather.com/ua/ua/kyiv/324505/weather-forecast/324505'

 
wget -q -O- "$URL" | awk -F'/acm_RecentLocationsCarousel\.push/{print $10". градусів зараз ст." }'| head -1 > /tmp/pogoda

 
wget -q -O- "$URL" | awk -F\" '/acm_RecentLocationsCarousel\.push/{print $2"." }'| head -1 >> /tmp/pogoda

 
wget -q -O- "$URL" | awk -F\: '/acm_RecentLocationsCarousel\.push/{print $9"." }'| head -1 >> /tmp/pogoda

 
festival --language russian --tts /tmp/pogoda

 

 
Ось і весь скрипт, він створить у каталолі /tmp файл pogoda, в який запише дані про погоду у вашому місті. А синтезатор мови Festival вже прочитає вміст файлу pogoda.

 
У прикладі показано місто Київ це верхній рядок URL

 

 
https://www.accuweather.com/ua/ua/kyiv/324505/weat...

 

 
Для вибору Москви пишемо:

 

 
https://www.accuweather.com/ru/ua/moscow/294021/we...

 

 
Таким чином, можна вибрати будь-яке місто.

 

 
Ах так, і не забудьте зробити скрипт виконуваним командою:

 

 
chmod a+x