Уведомления в KODI + проговаривание голосом

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
C_3AXAPOB
Сообщения: 510
Зарегистрирован: Ср июн 08, 2016 4:17 pm
Благодарил (а): 124 раза
Поблагодарили: 101 раз

Уведомления в KODI + проговаривание голосом

Сообщение C_3AXAPOB » Пн фев 27, 2017 12:33 am

Очень мне нравится KODI и вроде всё в нем есть а чего-то иногда не хватает и надо делать самому.
Поэтому набросал небольшое дополнение для KODI и скрипт для МЖД.

Для чего это?
Показывает уведомление в KODI и проговаривает его голосом Алисы. В моем случае используется движок Ivonna но будет работать и с Google и с Yandex.

1. Нужно в KODI установить мое дополнение:
script.alicevox.master.zip
(117.25 КБ) 259 скачиваний
2. Создать скрипт SimpleKodiNotify с таким содержанием:
СпойлерПоказать

Код: Выделить всё

$level=$params['level'];
$ph=$params['ph'];
$id=$params['id'];

if (isOnline('KitchenKodi'))
{
$str=$ph;
$filename = md5($str) . '_ivona';
$cachedVoiceDir = ROOT . 'cached/voice';
$cachedFileName = $cachedVoiceDir . '/' . $filename;
$wavurl='http://192.168.2.91/cached/voice/'.$filename.'.wav';
$str=urlencode($str);
safe_exec('ffmpeg -i "'.$cachedFileName.'".mp3 -acodec pcm_u8 -ar 22050 "'.$cachedFileName.'".wav');
sleep(3);
geturl('http://kodi:kodi@192.168.2.17:8080/jsonrpc?request={"jsonrpc":"2.0","method":"GUI.ShowNotification","params":{"title":"Алиса","message":"'.$str.'","image":"http://192.168.2.91/img/logo_small.png","displaytime":10000},"id":1} ',0);
sleep(2);
geturl('http://kodi:kodi@192.168.2.17:8080/jsonrpc?request={"jsonrpc":"2.0","method":"Addons.ExecuteAddon","params":{"addonid":"script.alicevox.master","params":["'.$wavurl.'"]},"id":1}',0);
} 
3. В МЖД в общих настройках в обработчиках в AfterSay вписать runScript('SimpleKodiNotify', array("level"=>$level, "ph"=>$ph));

Замечания:
- Это не универсальное решение и всё нужно настраивать под себя.
- В связи с ограничениями KODI голос воспроизводится без остановки основного воспроизведения, как системный звук.
Т.е. вы смотрите фильм всплывает уведомление и звучит голос Алисы.
- Редко но иногда не срабатывает.
- Не работает с несколькими фразами так как нет очереди воспроизведения. В связи с этим использую только для важных уведомлений.
- Я совсем не погромист поэтому увиденный "код" может вас шокировать.
За это сообщение автора C_3AXAPOB поблагодарил:
savenko_egor (Пн фев 27, 2017 1:42 am)
Рейтинг: 1.16%
Orange pi pc plus, megaD-2561, Xiaomi
--------------------------------------------------
http://connect.smartliving.ru/profile/908
Аватара пользователя
savenko_egor
Сообщения: 705
Зарегистрирован: Вс авг 03, 2014 8:17 pm
Откуда: Украина, Запорожье
Благодарил (а): 108 раз
Поблагодарили: 147 раз
Контактная информация:

Re: Уведомления в KODI + проговаривание голосом

Сообщение savenko_egor » Пн фев 27, 2017 1:41 am

Напишите Eraser в тему: Модуль уведомлений для Kodi. Пусть себе в модуль добавит.
Аватара пользователя
Eraser
Сообщения: 1085
Зарегистрирован: Вт окт 21, 2014 7:31 pm
Откуда: Киров
Благодарил (а): 14 раз
Поблагодарили: 868 раз
Контактная информация:

Re: Уведомления в KODI + проговаривание голосом

Сообщение Eraser » Чт мар 02, 2017 1:29 pm

warik писал(а):Напишите Eraser в тему: Модуль уведомлений для Kodi. Пусть себе в модуль добавит.
Добавил
Connect ---- Telegram
ЮMoney для благодарностей за помощь: 410012076838296 или нажмите кнопку "Спасибо"!!! :D
Аватара пользователя
Kvantos
Сообщения: 295
Зарегистрирован: Вт окт 31, 2017 1:05 pm
Благодарил (а): 26 раз
Поблагодарили: 49 раз

Re: Уведомления в KODI + проговаривание голосом

Сообщение Kvantos » Вт окт 02, 2018 5:23 pm

Привет всем.
Имеем kodi17.6 на win10x64
Ставлю дополнение (из шапки).

Код: Выделить всё

import xbmcaddon
import xbmcgui
import xbmc
import sys

addon       = xbmcaddon.Addon()
addonname   = addon.getAddonInfo('name')

xbmc.enableNavSounds(True)
xbmc.playSFX(sys.argv[1])

Настраиваю все (запрос

Код: Выделить всё

http://xbmc:xbmc@192.168.2.122:8080/jsonrpc?request={"jsonrpc":"2.0","method":"GUI.ShowNotification","params":{"title":"Алиса","message":"'.$str.'","image":"http://192.168.2.91/img/logo_small.png","displaytime":10000},"id":1}
отрабатывает)

Пробую простейший пример из браузера:

Код: Выделить всё

http://xbmc:xbmc@192.168.2.122:8080/jsonrpc?request={"jsonrpc":"2.0","method":"Addons.ExecuteAddon","params":{"addonid":"script.alicevox.master","params":["D:\\ringtone.wav"]},"id":1}
Звука нет! ((((

имеем логи:

Код: Выделить всё

17:13:59.253 T:12624   DEBUG: CWebServer[8080]: request received for /jsonrpc?request={%22jsonrpc%22:%222.0%22,%22method%22:%22Addons.ExecuteAddon%22,%22params%22:{%22addonid%22:%22script.alicevox.master%22,%22params%22:[%22D:\\ringtone.wav%22]},%22id%22:1}
17:13:59.268 T:2528   DEBUG: Previous line repeats 1 times.
17:13:59.268 T:2528   DEBUG: Thread LanguageInvoker start, auto delete: false
17:13:59.269 T:2528    INFO: initializing python engine.
17:13:59.921 T:2528   DEBUG: CPythonInvoker(8, C:\Users\user\AppData\Roaming\Kodi\addons\script.alicevox.master\addon.py): start processing
17:13:59.946 T:2528   DEBUG: -->Python Interpreter Initialized<--
17:13:59.946 T:2528   DEBUG: CPythonInvoker(8, C:\Users\user\AppData\Roaming\Kodi\addons\script.alicevox.master\addon.py): the source file to load is "C:\Users\user\AppData\Roaming\Kodi\addons\script.alicevox.master\addon.py"
17:13:59.946 T:2528   DEBUG: CPythonInvoker(8, C:\Users\user\AppData\Roaming\Kodi\addons\script.alicevox.master\addon.py): setting the Python path to C:\Users\user\AppData\Roaming\Kodi\addons\script.alicevox.master;C:\Program Files (x86)\Kodi\system\python\DLLs;C:\Program Files (x86)\Kodi\system\python\Lib;C:\Program Files (x86)\Kodi\python27.zip;C:\Program Files (x86)\Kodi\system\python\lib\plat-win;C:\Program Files (x86)\Kodi\system\python\lib\lib-tk;C:\Program Files (x86)\Kodi;C:\Program Files (x86)\Kodi\system\python;C:\Program Files (x86)\Kodi\system\python\lib\site-packages
17:13:59.946 T:2528   DEBUG: CPythonInvoker(8, C:\Users\user\AppData\Roaming\Kodi\addons\script.alicevox.master\addon.py): entering source directory C:\Users\user\AppData\Roaming\Kodi\addons\script.alicevox.master
17:13:59.962 T:2528   DEBUG: CPythonInvoker(8, C:\Users\user\AppData\Roaming\Kodi\addons\script.alicevox.master\addon.py): instantiating addon using automatically obtained id of "script.alicevox.master" dependent on version 2.14.0 of the xbmc.python api
17:13:59.963 T:2528    INFO: CPythonInvoker(8, C:\Users\user\AppData\Roaming\Kodi\addons\script.alicevox.master\addon.py): script successfully run
17:13:59.968 T:2528    INFO: Python script stopped
17:13:59.968 T:2528   DEBUG: Thread LanguageInvoker 2528 terminating
17:14:09.995 T:11544    INFO: Python, unloading python shared library because no scripts are running anymore
В чем загвоздка подскажите плс.
MDM живет на 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux
Ответить