Корзина  (пустая) 0 руб.
Корзина  (пустая) 0 руб.
Корзина  (пустая) 0 руб.
Корзина  (пустая) 0 руб.

+7 495 204-27-80

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

ТЕМА: Плагин Say The Weather, говорящий по-русски

Плагин Say The Weather, говорящий по-русски 13 Июль 2016 19:50 #18013

  • Mobilniy
  • Mobilniy аватар
  • Вне сайта
  • Академик
  • Сообщений: 827
  • Спасибо получено: 92
  • Репутация: 8
Для тех кто еще не знает, уже давно существует плагин Say The Weather, говорящий погоду на DLNA-совместимые устройства / Sonos / ImperiHome, но говорящий её исключительно по-английски, да и ветер в метрической системе там еще и в км/ч, что русскому человеку "режет слух".
В итоге было решено переделать плагин, дабы он говорил по-русски.
Дальше в описании и вложениях, речь идет о бета-версии переделанного плагина. :lol:

Благодарности: автору плагина JoeyD, dimis'у за идею и кусочек кода, Anzic'у за тестирование.

Возможные ограничения:
1). На UI5 работа не проверялась, под рукой уже нет такого контроллера.
2). Оригинальная функция Say location (говорящая об используемой метеостанции) заменена на приветствие, с указанием времени дня, дня недели и числа.
3). Оригинальный скрипт еще сильно не чистился от лишнего кода автора.
4). Невозможно использовать английский и русский одновременно. Если будет необходимость - доработаю этот вопрос, тогда отпадет нужна в 3 пункте. :)
5). Т.к. Weather Alerts судя по всему в России не используются, я их не переводил (если у кого-то вылезут - сделайте скриншот, плиз)
В остальном скрипт работает, как этого требовал автор плагина JoeyD.

Необходимые приготовления:
1) Требуется плагин Wunderground Weather App версии 1.5 или поздней и последняя версия (1.8) плагина Say The Weather App.
Следующие плагины являются опциональными, для воспроизведения на колонках Sonos, DLNA-совместимых устройствах и программе ImperiHome.
Без них плагин только готовит текстовую версию прогноза.

2) Опционально: Sonos App
3) Опционально: DLNA App
4) Опционально: Imperihome App

Установка:
1). Устанавливаем плагины Wunderground Weather App и Say The Weather.
2). На веб-морде Vera заходим в Apps > Develop Apps > Luup files
Нажимаем на Upload и загружаем следующие файлы:
Обязательно (без них ничего не будет работать) - I_SayTheWeather.xml, L_SayTheWeather.lua, D_SayTheWeather1.json
Опционально: L_DLNATTS.lua
Загрузка L_DLNATTS.lua требуется для тех, кто собирается воспроизводить погоду с помощью плагина DLNA App с помощью движка Microsoft TTS.
В скрипте я поменял битрейт на минимальный (на синтезированном голосе незаметно и дает мгновенный отклик) + сам голос изменен на более приятный мужской.
Если кому-то требуется максимальный битрейт - пересоберу второй.
Т.к. TTS от Google то работает, то нет, вот мини-инструкция, как ставить Microsoft TTS, на примере плагина DLNA App.
Для работы Microsoft TTS нам нужны Microsoft Client Id: и Microsoft Client Secret:
Чтобы их получить, нужно проделать шаги от 1 до 4 по нижеуказанной ссылке:
msdn.microsoft.com/en-us/library/mt146806.aspx
Полученные данные ввести в настройках плагина DLNA App

3). В плагине SayThe Weather мы видим следующие вкладки
a) Defaults -- Базовые настройки
b) Weather Alerts -- Оповещения, которые судя по всему в России не работают
c) Condition Phrases (1) -- Первые 10 фраз погодных условий
d) Condition Phrases (2) -- Вторая десятка фраз погодных условий
e) Temperature Phrases -- Фразы о температуре
f) Wind Speed Phrases -- Фразы о ветре
Параметры от "c" до "f" нужно поменять на русские фразы, это можно сделать с помощью скрипта weather.lua на мои базовые (во вложении) или вручную.
Для того чтобы поменять с помощью скрипта нужно открыть его в текстовом редакторе
и заменить в первой строчке "local STW_DEVICE=293", "293" на id Вашего плагина SayTheWeather.
Далее заходим в Apps > Develop Apps > Luup files, загружаем туда weather.lua.
Далее переходим в Apps > Develop Apps > Test Luup code (Lua), вводим туда:
local pogoda = require("weather.lua.lzo")
os.execute(pogoda)
Нажимаем GO

После этого фразы должы быть заменены.
Чтобы удалить скрипт, в Test Luup code (Lua), вводим:
os.remove("/etc/cmh-ludl/weather.lua.lzo")
Нажимаем GO

Полный синтаксис кода управления через luup запросы следующий:
Технически все параметры являются опциональными, т.к. плагин смотрит дефолтные значения, прописанные в Defaults.
P.S. не забываем, что Include Location это теперь Приветствие. :))

luup.call_action("urn:joeyd-com:serviceId:SayTheWeather1","SayTheWeather",
{DontSay = "",
RenderTargetID= "",
PrefixStatement="",
SuffixStatement="",
IncludeLocation="",
IncludeCurrentConditions="",
IncludeForecasts="",
IncludeAlerts = "",
Volume="",
SonosZone="",
SonosSameVolumeForAll="",
}
,[DeviceNumber])

DontSay="true/false" Если параметр равен true, то плагин только напишет прогноз, но не будет проговаривать его на необходимом устройстве.
RenderTargetID: ID плагина, управляющего "говорящим" устройством, например, ID DLNA App
PrefixStatement = "[любой текст]". Префикс (начальное приветствие) перед прогнозом погоды, например "Доброе утро!".
Может быть заменено параметром IncludeLocation (см. выше).
SuffixStatement = "[любой текст]". Суффикс (окончание) после прогноза погоды, например, "Хорошего дня!"
IncludeLocation="true / false". Если true - будет заменено на приветствие с текущим днем недели и числом.
IncludeCurrentConditions="true / false". Если true - добавит информацию о погоде на данный момент времени.
IncludeForecasts="01" Указывает, за какие дни требуется прогноз
0 указывает прогноз на сегодня, 1 на завтра и т.п. Плагин поддерживает запрос прогноза от 0 до 3 дней и зависит от метеостанции.
Например: чтобы получить прогноз на сегодня "0" и завтра "1" - указываем "01". Если только на послезавтра - указываем "2". На все дни - "0123", ну и т.д.

IncludeAlerts: "changes","all", or "none". Не работающие в России оповещения, будет сообщать об изменениях, все или не сообщать, соответственно.
Volume= [число от 1 до 100]. Громкость воспроизведения на устройстве. Если не указано - будет воспроизводить на громкости из вкладки Defaults.
SonosZone="[Зоны через запятую или 'ALL']" Указывает зоны Sonos'а, на которые требуется воспроизводить прогноз.
SonosSameVolumeForAll="true/false". Если true - то все зоны будут воспроизводить на одинаковом уровне громкости.

P.s. DeviceNumber это id плагина Say The Weather, а не устройства, которое будет проговаривать погоду.

Например:
luup.call_action("urn:joeyd-com:serviceId:SayTheWeather1","SayTheWeather",
{PrefixStatement="Доброе утро!"
SuffixStatement="Хорошего дня!"
IncludeLocation="false",
IncludeCurrentConditions="true",
IncludeAlerts = "ALL",
IncludeForecasts="01"
}
,[DeviceNumber])

Выдаст фразу:
Доброе утро! Сейчас на улице ясно, тепло, температура двадцать шесть градусов. Ветер слабый, четыре метра в секунду. Сегодня вероятны грозы и комфортно. Температура ночью девятнадцать градусов, днем двадцать семь градусов. Ветер умеренный, семь метров в секунду. Завтра переменная облачность и слегка прохладно. Температура ночью шестнадцать градусов, днем двадцать пять градусов. Ветер умеренный, семь метров в секунду. Хорошего дня!



h6aaab9f_2016-07-13.jpg


Это вложение скрыто для гостей. Пожалуйста, авторизуйтесь или зарегистрируйтесь, чтобы увидеть его.



Это вложение скрыто для гостей. Пожалуйста, авторизуйтесь или зарегистрируйтесь, чтобы увидеть его.


P.S. добавил поддержку Responsive Voice взамен почившего в бозе движка от Google
Загрузить через веб-интерфейс и перезагрузить lua engine
Вложения:
  • Вложение Это вложение скрыто для гостей. Пожалуйста, авторизуйтесь или зарегистрируйтесь, чтобы увидеть его.
Последнее редактирование: 14 Авг 2017 15:25 от Mobilniy.
Спасибо сказали: Acute, MixaSP, Anzic, ilya123, PhantoMM, nmatyash, andreynoch

Плагин Say The Weather, говорящий по-русски 19 Июль 2016 01:40 #18073

  • Acute
  • Acute аватар
  • Вне сайта
  • Администратор
  • Сообщений: 3104
  • Спасибо получено: 459
  • Репутация: 70
Если не охота регистрироваться у Микрософтa (как мне), а Google TTS то работает, то не работает (как у меня), то есть костыль, как заставить заговорить Sonos по русски.
В настройках Sonos App во вкладке TTS ставим движок Mary, а Server URL mary.dfki.de:59125/. Никаких регистраций, плагин заговорит. Решение, канеш временное, и наверна уступает по качеству речи Микрософту, но для проверки сойдет. Надеюсь, с третьего пинка затолкаю Mary TTS в малинку, пока даже по Wiki не вышло. На винде работает норм.
Группа форума в Telegram t.me/zwaveforum

Плагин Say The Weather, говорящий по-русски 19 Июль 2016 09:50 #18078

  • ilya123
  • ilya123 аватар
  • Вне сайта
  • Инсталлятор
  • VeraPlus и Veralite
  • Сообщений: 760
  • Спасибо получено: 77
  • Репутация: 5
Mary TTS - там софт 15 года
больше не поддерживают чтоли??

русский не нашел---...как качество?

Плагин Say The Weather, говорящий по-русски 19 Июль 2016 10:59 #18082

  • Mobilniy
  • Mobilniy аватар
  • Вне сайта
  • Академик
  • Сообщений: 827
  • Спасибо получено: 92
  • Репутация: 8
Acute пишет:
Если не охота регистрироваться у Микрософтa (как мне)
Это принципиальная позиция или просто лень? :))
У меня заняло где-то 2 минуты от силы на регистрацию у Майкрософт.

Плагин Say The Weather, говорящий по-русски 19 Июль 2016 11:22 #18085

  • Acute
  • Acute аватар
  • Вне сайта
  • Администратор
  • Сообщений: 3104
  • Спасибо получено: 459
  • Репутация: 70
ilya123 пишет:
русский не нашел---...как качество?

Русский там второй в перечне :). Качество наверное так себе..
Mobilniy пишет:
Это принципиальная позиция или просто лень? )

Даже не знаю, что ответить ). Это просто "есть способ проще").
Группа форума в Telegram t.me/zwaveforum

Плагин Say The Weather, говорящий по-русски 24 Фев 2017 20:49 #20973

  • Mobilniy
  • Mobilniy аватар
  • Вне сайта
  • Академик
  • Сообщений: 827
  • Спасибо получено: 92
  • Репутация: 8
Внес изменения:
плагин некорректно отрабатывал отрицательные значения + что-то поменялось на последних прошивках при привязках данных из lua в xml

Плагин Say The Weather, говорящий по-русски 14 Авг 2017 15:26 #22782

  • Mobilniy
  • Mobilniy аватар
  • Вне сайта
  • Академик
  • Сообщений: 827
  • Спасибо получено: 92
  • Репутация: 8
Добавил поддержку Responsive Voice взамен почившего в бозе движка от Google
Загрузить через веб-интерфейс и перезагрузить lua engine

Плагин Say The Weather, говорящий по-русски 22 Нояб 2017 17:17 #23434

  • shurick
  • shurick аватар
  • Вне сайта
  • Новый участник
  • Сообщений: 1
  • Репутация: 0
Здравствуйте! Разжуйте новичку пожалуйста. Установил все по инструкции, как теперь заставить ImperiHome проговаривать прогноз. Спасибо!
Время создания страницы: 0.137 секунд