Как научить FreeBSD говорить погоду и время

Прогноз погоды голосом 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

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

Пока писал статью про говорящую погоду, подумал почему бы не сделать тоже самое с часами.
Теперь наша система умеет говорить дату и время, просто двойным щелчком по ярлыку который указывает на простой написанный мною скрипт.
В видео под статьёй показана работа скрипта, там я его выполняю несколько раз, чтобы было видно что это не просто чтение текста, а реальное время меняющееся с каждой минутой.
Создаём пустой файл с любым именем где вам удобно, я создал в домашней директории под названием date, то есть date.sh.
Затем делаем его исполняемым командой:


chmod a+x ~/date.sh

Файл date.sh или как вы его назовёте приведите к следующему виду:

#!/bin/sh
date +%A | tee > /tmp/date
date +%_d | tee >> /tmp/date
date +%B | tee >> /tmp/date
date +%Y. | tee >> /tmp/date
date +%k | tee >> /tmp/date
date +%M | tee >> /tmp/date
festival --language russian --tts /tmp/date


Все скрипт готов давайте создадим ярлык на рабочем столе.
Создайте файл на рабочем столе под названием часы, время или как вам угодно со следующим содержанием:

[Desktop Entry]
Version=1.0
Type=Application
Name=Часы
Comment=
Exec=/Путь к скрипту/date.sh
Icon=/Путь к изображению/clock.png
Path=
Terminal=false
StartupNotify=false

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

Коментувати

Простий текст

  • Не дозволено жодних HTML теґів.
  • Рядки й абзаци переносяться автоматично.
  • Адреси вебсторінок та адреси електронної пошти автоматично перетворюються у посилання.