Прогноз погоды голосом FreeBSD 11.

МАБУ

Как сделать скрипт который говорит погоду.


Прогноз погоды голосом FreeBSD 11.


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

- смотрел ли ты погоду.

Это все не для меня, мне не хочется искать погоду на сайтах, смотреть данные за определённый период и сравнивать их с другими источниками. Я всегда думал что в любой момент можно посмотреть на градусник в кухне и одеться по погоде. Поэтому я написал простой Shell script скрипт для Bourne shell который просто при клике по нем говорит погоду на данный момент. Да есть случаи по работе либо бытового характера когда нужно знать заранее например когда будут заморозки. В этих целях всегда можно изменить скрипт.

Под статьёй посмотрите демонстративное видео работы данного скрипта.


Приступим к написанию скрипта.


Для начала нам понадобится установить и настроить синтезатора речи под названием Festival. Как это сделать в операционной системе FreeBSD я уже писал на своём сайте, поэтому сейчас не буду об этом рассказывать, а перейду непосредственно к скрипту. Как установить синтезатора речи Festival на FreeBSDможете почитать в моей предыдущей статье «Учим разговаривать FreeBSD».

Итак создаём файл с любым названием с расширением sh, у меня это pogoda.sh. Пишем в него следующие строки:



#!/bin/sh

URL='https://www.accuweather.com/ru/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/ru/ua/kyiv/324505/weat...


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


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


Таким образом можно выбрать любой город.


Ах да, и не забудьте сделать скрипт исполняемым командой:


chmod a+x


Все готово, смотрим видео.


Загрузка беседы