NEWS
Драйвер sayit
-
Таймаут можно поставить 5-10, а вот продолжительность увеличивайте до продолжительности самой длинной фразы. `
Но ведь, когда я отключаю звук извещения, то исчезают настройки длительности
filename="Скриншот 2015-10-05 07.32.13.png" index="1">~~
А проблема с двумя фразами остается
filename="Скриншот 2015-10-05 07.37.11_new.png" index="0">~~ -
Это означает, что устройство занято.
Нужно выставить длительность извещения больше на 1-2 сек, чем длительность самого извещения (например, если извещение длится 3 сек, то длительность извещения лучше выставить 5 сек).
Таймаут извещения это через какое время повторно воспроизводить извещение.
-
Bluefox, у ивоны есть регулировка скорости произношения. Вопрос какая она стоит по умолчанию? Т.к. заметил, что скорость произношения отличается(в ускоренную сторону) от той, что у меня на работе (работает через php скрипт).
-
У меня Cubietruck. Это мои настройки, воспроизводит и по 2, и по 3 записи подряд. -
У меня Cubietruck. Это мои настройки, воспроизводит и по 2, и по 3 записи подряд. `
Но ведь судя по объяснению автора
@Bluefox:Длительность извещения - через сколько секунд после начала вступительного звука (извещения - например ТаДа) начать воспроизводить фразу.
0 - значит сразу начать с текста и ТаДа не проигрывать. Хотя на некоторых системах может проиграться только ТаДа. `
В вашей ситуации голосовое сообщение будет проиграно через 15 секунд после начала вступительного звука, т.е появится большая пауза между вступлением и самим сообщением.И это не объясняет занятость устройства при произнесении нескольких фраз.
Попробовал настройки spectrekr, отрабатывает вступительный звук, и через 10 секунд идет фраза. Т.е очень долгая пауза. Но ошибками сыпать перестала. Насчет нескольких фраз подряд буду пробовать позже
-
Ну чтож…
Попробовал несколько фраз, запустив скрипт
var idSayIt = "sayit.0.tts.text"; { setState (idSayIt, 'Прогноз погоды на сегодня: '+getState("forecast.today").val); setState (idSayIt, 'Прогноз погоды на завтра: '+getState("forecast.tomorrow").val); setState (idSayIt, 'Прогноз погоды на послезавтра: '+getState("forecast.dayAfterTomorrow").val); }
Получил следующие ошибки.
Понял что у драйвера нет буфера на входе - то о чем просил electric69 в первом посте этой темы.Соответственно нужно контролировать переменную sayit.0.tts.playing и запускать следующую фразу только после установки ее в false.
Я пока так делать не умею
Покажите пожалуйста пример.
-
Получить значение````
getState('sayit.0.tts.playing').val -
@kID:Ну чтож…
Попробовал несколько фраз, запустив скрипт
var idSayIt = "sayit.0.tts.text"; { setState (idSayIt, 'Прогноз погоды на сегодня: '+getState("forecast.today").val); setState (idSayIt, 'Прогноз погоды на завтра: '+getState("forecast.tomorrow").val); setState (idSayIt, 'Прогноз погоды на послезавтра: '+getState("forecast.dayAfterTomorrow").val); }
Получил следующие ошибки.
filename="Скриншот 2015-10-06 20.33.06.png" index="0">~~
Понял что у драйвера нет буфера на входе - то о чем просил electric69 в первом посте этой темы.Соответственно нужно контролировать переменную sayit.0.tts.playing и запускать следующую фразу только после установки ее в false.
Я пока так делать не умею
Покажите пожалуйста пример. `
Я так понимаю с последним обновление должно быть исправлено, сам не проверял еще. -
Получить значение
getState('sayit.0.tts.playing').val
, а дальше или через условие, или через цикл ждать. `
Ни в коем случае не через цикл. Это не ардуино.В последней версии javascript появилось:
setState (idSayIt, 'Прогноз погоды на сегодня: '+getState("forecast.today").val,); setStateDelayed (idSayIt, 'Прогноз погоды на завтра: '+getState("forecast.tomorrow").val,10000); setStateDelayed (idSayIt, 'Прогноз погоды на послезавтра: '+getState("forecast.dayAfterTomorrow").val, 20000);
-
У меня у одного sayit после обновления по три раза говорит?
-
Заметил в логе ощибки
! host-Server-PC 2015-10-27 10:06:10 error instance system.adapter.sayit.0 terminated with code 6 (uncaught exception)
! TypeError: 2015-10-27 10:06:09 error at Timer.listOnTimeout [as ontimeout] (timers.js:112:15)
! TypeError: 2015-10-27 10:06:09 error at null._onTimeout (C:\ioBroker\node_modules\iobroker.js-controller\lib\adapter.js:1911:34)
! TypeError: 2015-10-27 10:06:09 error at Adapter.emit (events.js:98:17)
! TypeError: 2015-10-27 10:06:09 error at Adapter.sayLastGeneratedText (C:\ioBroker\node_modules\iobroker.sayit\main.js:27:13)
! TypeError: 2015-10-27 10:06:09 error at sayIt (C:\ioBroker\node_modules\iobroker.sayit\main.js:1037:13)
! TypeError: 2015-10-27 10:06:09 error at getLength (C:\ioBroker\node_modules\iobroker.sayit\main.js:172:23)
! TypeError: 2015-10-27 10:06:09 error at C:\ioBroker\node_modules\iobroker.sayit\main.js:1038:51
! TypeError: 2015-10-27 10:06:09 error at Object.sayItWindows [as func] (C:\ioBroker\node_modules\iobroker.sayit\main.js:766:9)
! TypeError: 2015-10-27 10:06:09 error at sayItSystem (C:\ioBroker\node_modules\iobroker.sayit\main.js:698:21)
! TypeError: 2015-10-27 10:06:09 error Cannot call method 'platform' of undefined
! uncaught 2015-10-27 10:06:09 error exception: Cannot call method 'platform' of undefined -
Поправил. Спасибо.
5278_unbenannt.png -
Добрался я до sayit наконец то, но не тут то было, драйвер не работает
! sayit.0 2015-11-01 22:27:55 error TypeError: Cannot call method 'exec' of undefined at sayItSystem (C:\ioBroker\node_modules\iobroker.sayit\main.js:733:37) at Object.sayItWindows [as func] (C:\ioBroker\node_modules\iobroker.sayit\main.js:767:9) at C:\ioBroker\node_modules\iobroker.sayit\main.js:1042:51 at getLength (C:\ioBroker\node_modules\iobroker.sayit\main.js:172:23) at sayIt (C:\ioBroker\node_modules\iobroker.sayit\main.js:1041:13) at Adapter.sayLastGeneratedText (C:\ioBroker\node_modules\iobroker.sayit\main.js:27:13) at Adapter.emit (events.js:98:17) at null._onTimeout (C:\ioBroker\node_modules\iobroker.js-controller\lib\adapter.js:1911:34) at Timer.listOnTimeout [as ontimeout] (timers.js:112:15)
! sayit.0 2015-11-01 22:27:55 error uncaught exception: Cannot call method 'exec' of undefined! host-Server-PC 2015-11-01 22:22:53 error instance system.adapter.sayit.0 terminated with code 6 (uncaught exception)
! TypeError: 2015-11-01 22:22:53 error at Timer.listOnTimeout [as ontimeout] (timers.js:112:15)
! TypeError: 2015-11-01 22:22:53 error at null._onTimeout (C:\ioBroker\node_modules\iobroker.js-controller\lib\adapter.js:1911:34)
! TypeError: 2015-11-01 22:22:53 error at Adapter.emit (events.js:98:17)
! TypeError: 2015-11-01 22:22:53 error at Adapter.sayLastGeneratedText (C:\ioBroker\node_modules\iobroker.sayit\main.js:27:13)
! TypeError: 2015-11-01 22:22:53 error at sayIt (C:\ioBroker\node_modules\iobroker.sayit\main.js:1041:13)
! TypeError: 2015-11-01 22:22:53 error at getLength (C:\ioBroker\node_modules\iobroker.sayit\main.js:172:23)
! TypeError: 2015-11-01 22:22:53 error at C:\ioBroker\node_modules\iobroker.sayit\main.js:1042:51
! TypeError: 2015-11-01 22:22:53 error at Object.sayItWindows [as func] (C:\ioBroker\node_modules\iobroker.sayit\main.js:767:9)
! TypeError: 2015-11-01 22:22:53 error at sayItSystem (C:\ioBroker\node_modules\iobroker.sayit\main.js:733:37)
! TypeError: 2015-11-01 22:22:53 error Cannot call method 'exec' of undefined
! uncaught 2015-11-01 22:22:52 error exception: Cannot call method 'exec' of undefined -
Добрался я до sayit наконец то, но не тут то было, драйвер не работает
! sayit.0 2015-11-01 22:27:55 error TypeError: Cannot call method 'exec' of undefined at sayItSystem (C:\ioBroker\node_modules\iobroker.sayit\main.js:733:37) at Object.sayItWindows [as func] (C:\ioBroker\node_modules\iobroker.sayit\main.js:767:9) at C:\ioBroker\node_modules\iobroker.sayit\main.js:1042:51 at getLength (C:\ioBroker\node_modules\iobroker.sayit\main.js:172:23) at sayIt (C:\ioBroker\node_modules\iobroker.sayit\main.js:1041:13) at Adapter.sayLastGeneratedText (C:\ioBroker\node_modules\iobroker.sayit\main.js:27:13) at Adapter.emit (events.js:98:17) at null._onTimeout (C:\ioBroker\node_modules\iobroker.js-controller\lib\adapter.js:1911:34) at Timer.listOnTimeout [as ontimeout] (timers.js:112:15)
! sayit.0 2015-11-01 22:27:55 error uncaught exception: Cannot call method 'exec' of undefined! host-Server-PC 2015-11-01 22:22:53 error instance system.adapter.sayit.0 terminated with code 6 (uncaught exception)
! TypeError: 2015-11-01 22:22:53 error at Timer.listOnTimeout [as ontimeout] (timers.js:112:15)
! TypeError: 2015-11-01 22:22:53 error at null._onTimeout (C:\ioBroker\node_modules\iobroker.js-controller\lib\adapter.js:1911:34)
! TypeError: 2015-11-01 22:22:53 error at Adapter.emit (events.js:98:17)
! TypeError: 2015-11-01 22:22:53 error at Adapter.sayLastGeneratedText (C:\ioBroker\node_modules\iobroker.sayit\main.js:27:13)
! TypeError: 2015-11-01 22:22:53 error at sayIt (C:\ioBroker\node_modules\iobroker.sayit\main.js:1041:13)
! TypeError: 2015-11-01 22:22:53 error at getLength (C:\ioBroker\node_modules\iobroker.sayit\main.js:172:23)
! TypeError: 2015-11-01 22:22:53 error at C:\ioBroker\node_modules\iobroker.sayit\main.js:1042:51
! TypeError: 2015-11-01 22:22:53 error at Object.sayItWindows [as func] (C:\ioBroker\node_modules\iobroker.sayit\main.js:767:9)
! TypeError: 2015-11-01 22:22:53 error at sayItSystem (C:\ioBroker\node_modules\iobroker.sayit\main.js:733:37)
! TypeError: 2015-11-01 22:22:53 error Cannot call method 'exec' of undefined
! uncaught 2015-11-01 22:22:52 error exception: Cannot call method 'exec' of undefined `Заработал, нужно было выбрать System а стоял Windows engine
-
Вопрос к Bluefox.
Может добавить в драйвер возможность задать время задержки перед дин дон?
Смысл в том что сделал усилитель D класса на микрушке, так вот у него есть логический вход FADE, т.е. при подачи управляющего сигнала он плавно включает громкость (примерно 2 сек.) и так же после снятия управляющего сигнала плавно убавляет громкость до 0 (чтобы небыло шума в динамиках при простое).
И кстати sayit.0.tts.playing у меня работает не корректно, менят статус через секунды 3 на false, хотя фраза еще произносится.
-
instalator, а если пнутьв скрипте включение усилка выдержать паузу потом сказать фразу.
я к тому что-бы задержку сделать не в драйвере а в скрипте.
-
instalator, а если пнутьв скрипте включение усилка выдержать паузу потом сказать фразу.
я к тому что-бы задержку сделать не в драйвере а в скрипте. `
А как ты угадаешь когда будет что то говорить? делать вывод каждый раз добавляя в скриптах задержку? -
Нак FADE чем то же дёргаете перед тем как сказать фразу.
Получается дёрнули FADE->pause->seyit. Или не?
-
Нак FADE чем то же дёргаете перед тем как сказать фразу.
Получается дёрнули FADE->pause->seyit. Или не?
Fade дергаю sayit.0.tts.playing `
-
Fade дергаю sayit.0.tts.playing `
Под линуксом sayit.0.tts.playing вроде не работает, или я не понял как пользоватся