Navigation

    Forum

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • intraHouse Site
    1. Home
    2. div115
    D
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    div115

    @div115

    4
    Reputation
    16
    Posts
    2
    Profile views
    0
    Followers
    0
    Following
    Joined Last Online

    div115 Follow

    Best posts made by div115

    • RE: Плагин TextToSpeech

      привел в рабочее состояние text2speech

      Как оказалось, на сегодняшний момент Yandex полностью поменял API по сравнению с тем, под который написан плагин, по этому пришлось переписать немножко код (я качал и ковырял версию 0.0.4 с гитхаба).

      Для того что-бы получить доступ к фунциям Yandex SpeechKit пришлось:

      • зарегистрировать на себя облако создав платежный аккаунт,
      • получить IAM-токен
      • создать каталог в облаке (и запомнить его ID - он нам далее пригодится для синтеза звука)
      • в каталоге создать - Сервисный аккаунт
      • в сервисном аккаунте создать API-ключ - и запомнить его - он нам далее пригодится для синтеза звука.

      Итого: по результатам регистрации на Yandex должен быть API-ключ и ID каталога.

      Далее ковырял установленный плагин, заранее прошу прощения за корявый код, т.к. таких слов как js-node и CURL до текущей ситуации я не знал.
      Ковырял при помощи описания API от Yandex https://cloud.yandex.ru/docs/speechkit/tts/request + гуглил по синтаксису и функциям языков.

      По большому счету надо переписать в плагине одну библиотеку из модуля "yandex-speech" для этого идем в: /var/lib/intrahouse-c/plugins/text2speech/node_modules/yandex-speech/lib
      там есть файл: YandexTTS.js

      Содержимое YandexTTS.js после моего ковыряния:

      'use strict';
      
      var request = require('request');
      var fs = require('fs');
      
      
      var yandex_tts_url = 'https://tts.api.cloud.yandex.net/speech/v1/tts:synthesize';
      
      var YandexTTS = function (options, callback) {
        
      
      var headers = {'Authorization': 'Api-Key ' + options['developer_key']};
      
      var dataString = 'text='+  options['text'] +
          '&lang='+ options['lang'] +
          '&voice='+ options['speaker'] +
          '&emotion='+ options['emotions'] +
        //  '&speed=' + options['speed'] + '';
          '&speed=0.9' +
        //  '&folderId=' + options['folder_id'] + '';
       	'&folderId=b1g92u63tba34rg4c8sr';
      
      
      var request_options = {
          url: yandex_tts_url,
          method: 'POST',
          headers: headers,
          body: dataString
      };
         	var file = fs.createWriteStream(options['file']);
          	file.on('finish', callback);
      	request(request_options).pipe(file);
      };
      
      module.exports = YandexTTS;
      

      Если кто-то будет пользоваться исправленным кодом, в коде надо заменить слово b1****************sr на ранее полученный ID каталога и в параметрах плагина надо в поле токен прописать ранее полученный API-ключ и после этого перезапустить плагин.

      В параметры плагина text2speech, пытался добавить элементы: folderId и speed - но что-то у меня не получилось, - параметры в интерфейсе появились, данные там сохранялись, но вызвать их у меня не получилось.

      Далее, как выяснилось, в новом API SpeechKit в качестве ответа выдает файл в формате ogg (по умолчанию), или в RAW (надо дополнительно выбирать при передаче параметров) - который потом придется преобразовывать в какой-то другой формат. Сразу в формате wav SpeechKit не синтезирует. Поэтому пришлось доустановить в линуксе mplayer, т.к. тот что был у меня установлен по умолчанию файлы ogg не проигрывал.

      При вызове информатора, в тексте который необходимо озвучить можно расставлять ударения в словах вставляя перед ударной гласной 3 символа: %2B согласно документации Yandex вообще-то надо ставить символ "+" но у меня как-то не срослось с урл-кодированием передаваемого текста, и поэтому вместо "+" ставлю %2B

      В целом на текущий момент синтез звука в IH работает.

      И еще, изначально в text2speech не было голоса alena, - как по мне - так это самый приятный голос из синтезируемых. Его можно добавить поправив файл /var/lib/intrahouse-c/plugins/text2speech/text2speech.json добавив следующий код в параметре yandex_speaker:

      {
                "id": "alena",
                "name": "Alena"
              },
      

      и после перезапуска плагина можно будет выбрать и такой голос.

      posted in intraHouse V4 Cherry
      D
      div115
    • RE: Плагин HTTP-Client

      @div115
      проблема решена, как оказалась я неправильно установил систему IntraHouse

      IH ставил на Debian 10, по умолчанию в нем нет пакета sudo. И посмотрев что установка ругается в том числе на sudo я решил установить IH без команды sudo: "curl -sL https://git.io/fN1JN | bash -E -s ru"
      вместо "curl -sL https://git.io/fN1JN | sudo -E bash -s ru".

      С варнингами система поставилась и работала, + там точно работали планины МегаД, р2р, и уведомления на телефон. А с планином http получилась засада - после запуска он сразу же останавливался.

      Внимательно прочитав список поддерживаемых систем я на виртуалке поставил Ubuntu 18.04, на нее IH и плагин http. - все работало как надо.

      Так я решил что IH просто не поддерживает Debian 10. Потом на виртуалке я поставил Debian 9, в очередной раз обратив внимание на то что команда установки не запустилась ругаясь на sudo. Я установил IH как и раньше - без sudo. Грабли оказались те же - http плагин не работал. Тогда я до установил sudo и переустановил IH правильной коммандой - и счастье - http заработал.

      Далее на физическом сервере на котором работал IH на debian 10 я сделал бэкап проекта, доустановил sudo и переустановил IH правильной коммандой. Далее апгрейдил IH до последней версии и просто переключился с демо-проекта на рабочий проект что был раньше (оказывается во время переустановки он не удалился и даже не пришлось загружать бэкап). Теперь все работает как надо.

      posted in Плагины
      D
      div115

    Latest posts made by div115

    • RE: Плагин MQTT

      Добрый день, подскажите как лучше реализовать такую задачу:
      есть устройство, которое 1 раз в минуту отправляет топик. Как изменять состояние виртуального устройства в интрахаузе, следующим способом: если есть сообщение за последние 65 сек, то устройство работает, если нет - то выключено.

      posted in Плагины
      D
      div115
    • RE: Мобильное приложение

      ну и отлично, ждем 5ю версию 🙂

      posted in Приложение для смартфонов
      D
      div115
    • RE: Плагин Xiaomi

      Пользователь @dev написал в Плагин Xiaomi:

      Опишите пожалуйста какой вам функционал необходим в первую очередь от Xiaomi Roborock. Спасибо!

      В первую очередь - оповещение IH об окончании уборки, об ошибках, о начале зарядки.
      (- окончание об уборке необходимо для того, - что если робот проводил уборку на этаже отличном от размещения базы, - он просто тихо пробормочет что закончил уборку и так и будет стоять на этаже пока про него не вспомнят и не перенесут на этаж где находится база;

      • оповещение об ошибках - та же история - застрял, не смог выехать, намотал носок на щетку - пробормотал себе что-то и стоит где-то там;
      • оповещение о зарядки нужно о том, что бы знать что робот нормально запарковался на док станции и сюрпризов с разряженным роботом не будет). Получается что во время уборки необходимо находится где-то недалеко от робота, что бы слышать что и как там с ним, а говорит он достаточно тихо.

      Во вторую - запуск на уборку, выбор режимов уборки.

      В третью в качестве плюшек - состояние батареи, расходников, статистика.

      posted in Плагины
      D
      div115
    • RE: Мобильное приложение

      В мобильном приложении у устройства "Актуатор универсальный бинарный"-> теплый пол на вкладке настройка не отображаются дополнительные параметры устройства, хотя в браузере параметры отображаются. В чем может быть причина?
      (скрипт писал по образцу: https://ih-systems.com/ru/warm-floor/
      все обновления установлены)

      posted in Приложение для смартфонов
      D
      div115
    • RE: Плагин Xiaomi

      Возможно ли добавить Xiaomi Roborock по такому принципу?
      https://mysku.ru/blog/diy/80134.html

      posted in Плагины
      D
      div115
    • RE: Голосовое управление IH

      Пользователь @Alex_Jet написал в Голосовое управление IH:

      @div115, по мне - легче аккуратно демонтировать полотно потолка (есть успешный опыт), если это конечно натяжной потолок, а не гипсокартонный, чем плясать с бубном). Если гиспокартонная конструкция, то наверное лучше освоить pulse audio)

      потолок совмещенный - лдсп + натяжной, - на стыке вклеена светодиодная полоса в алюминиевом корпусе, поверх потолка поклеены ПВХ плинтуса, для того что-бы все исправить - надо пройти этот стык.

      так что я попробую разобраться с pulseaudio, если все будет совсем коряво, - то буду химичить с доп usb колонками.

      за участие и за советы - Большое спасибо!

      posted in intraHouse V4 Cherry
      D
      div115
    • RE: Голосовое управление IH

      ок, спасибо буду копать pulseaudio

      Пользователь @Alex_Jet написал в Голосовое управление IH:

      Но опять же - зачем? Какое применение?

      так уже сложилось, как я писал выше, что уже существующие потолочные динамики хотя и находятся недалеко от OPIz физически я их подключить не могу не нарушив ремонта, поэтому буду запускать звук через LAN на ту железяку к которой подключены эти динамики

      posted in intraHouse V4 Cherry
      D
      div115
    • RE: Голосовое управление IH

      Пользователь @Alex_Jet написал в Голосовое управление IH:

      Объясните по другому. Не понимаю вашу задачу! mdmTerminal2 - это железка "сама в себе", которую можно интегрировать в любой умный дом. У меня сейчас используется 3 терминала - в центре гостевой (по сути охватывает половину первого этажа), на втором этаже в спальне/кабинете и у сына в комнате. При этом благодаря LMS во всех вышеперечисленных комнатах сделан мультирум.

      допустим у меня есть несколько контроллеров на OPZ (OPZ_1, OPZ_2, OPZ_3 и т.д.) на которых стоит MDM и squeezelite, так же у меня есть IH c LMS который видит все плееры.

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

      posted in intraHouse V4 Cherry
      D
      div115
    • RE: Голосовое управление IH

      Пользователь @Alex_Jet написал в Голосовое управление IH:

      Отдельный железный сервер УД + LMS +Media, к которому подключен только кабель Eth

      да, так оно у меня и есть

      Сам хочу разработать плату для установки на нее OPiZ + микрофон с усилителем на TS472 + усилитель (хотя бы PAM8610) мощности + светодиодное кольцо на базе WS28xx, но пока руки не доходят...

      по моей задумке, - на апельсин хочу повесить

      1. датчик движения,
      2. i2c датчики температуры/влажности, освещенности, СО2,
      3. микрофон,
      4. динамики с усилителем из колонок типа: http://microlab.com/ru/catalog/stereosistemyi/usb/md-122/ - кмк будет вполне бюджетно
        (исключение коридоры 1,2 этажей - там уже стоит потолочная акустика)
      5. возможно лед ленту W2812

      И да...я до конца не понял, но похоже у Вас связка LMS ->squeezelite не работает? Если так, то это проще простого! На клиентах ставим squeezelite и их находит LMS (в его настройках на закладке "Информация" есть раздел "Информация о плеере"). Собственно на главной странице LMS сверху справа будет выпадающий список из плееров)

      да, - связка есть, - так у меня работает интернет-радио и медиатека, squeezelite у меня еще кроме сервера стоит на планшете с IH-kiosk - но тут источник звука LMS. Как указать какому плееру воспроизводить звук с конкретного MDMтерминала - я не знаю, буду благодарен если подскажете.

      Passive-poe в реализации OPiZ очень плохой вариант... Лучше взять переходники для passive-poe и снимать хотя бы 12В, подавая сразу на усилитель (тот же PAM8610 - хорошая вещь!), а для OPiZ поставить step-down! - кушает она не мало и греется прилично!

      спасибо за совет, - у меня как раз есть свободные порты в passive-poe-панели, заколхоженной из 24х портовой patch-панели и б/п от ноутбука.

      posted in intraHouse V4 Cherry
      D
      div115
    • RE: Голосовое управление IH

      Пользователь @Alex_Jet написал в Голосовое управление IH:

      раз на сервере стоит iH, то вероятно можно использовать голосовой плагин самого iH?

      да, наверное так можно, но реакция на кодовое слово вроде бы воспроизводится mdmTerminal-ом локально - на апельсине,

      А может все-таки к акустике подключить малинку/апельсинку?

      да, - на крайний вариант так и сделаю - раздраконю и прицеплю какие-нибудь usb колонки. Существующая потолочная аккустика - не вариант, т-к к ним идут только акустические провода от усилителя в электрощитовой (усилитель подключен к серверу IH) - а электрощитовая в подвале... + еще потолок уже сделан, - перепротянуть провода не получится, - но в 1,5 метрах от потолочной акустки есть отверстие под универсальный датчик - туда затянута из электрощитовой витая пара, - на нее планировал повесить апельсин с MDMтерминалом, микрофоном и датчиками, - питать планировал по пасив-пое.

      Вообще теоретически на это сервер можно установить mdmTerminal2 и в сценарии tts осуществлять через второй плагин. По крайней мере у меня несколько терминалов и я могу на любой вывести tts.

      этот вариант, как я понимаю, тоже не решает вопроса с озвучкой ответа на ключевое слово.

      А вот сервер УД у меня - только сервер, находящийся в темном черном углу. Даже LMS живет на другой железке.

      у меня на физ. сервере живет IH, LMS и SqueezePlayer
      конечно хотелось бы перенаправить весь звук от апельсинки на сервер по сети, но пока не знаю как это сделать... 😞

      posted in intraHouse V4 Cherry
      D
      div115