NEWS
Драйвер sayit
-
То же иногда встречается проговаривание по 2-а раза. Тоже не пойму почему.
-
Вопрос к Bluefox.
Может добавить в драйвер возможность задать время задержки перед дин дон?
Смысл в том что сделал усилитель D класса на микрушке, так вот у него есть логический вход FADE, т.е. при подачи управляющего сигнала он плавно включает громкость (примерно 2 сек.) и так же после снятия управляющего сигнала плавно убавляет громкость до 0 (чтобы небыло шума в динамиках при простое).
И кстати sayit.0.tts.playing у меня работает не корректно, менят статус через секунды 3 на false, хотя фраза еще произносится. `
Слишком специфичный случай. Вот если бы пришёл pul reuquest, я бы подумал..Вставь в файл дин дон 2 секунды тишины в начале. `
Ну да специфичен, но а если стоит зонный услитель? и надо перед каждым произношение переключать зоны и тд.? я думаю задержка бы не помешала.Ок как будет время зайду на гит. А тишина вначале это у меня план Б)
-
Server-PC 2015-11-26 20:32:21 error host.Server-PC instance system.adapter.sayit.0 terminated with code 6 (uncaught exception)
sayit.0 2015-11-26 20:32:21 error Error: EBUSY, open 'C:\ioBroker\node_modules\iobroker.sayit\say.mp3'
sayit.0 2015-11-26 20:32:21 error uncaught exception: EBUSY, open 'C:\ioBroker\node_modules\iobroker.sayit\say.mp3
Сегодня выскочила такая ошибочка.
Насколько я понял он говорит я еб..я открывать файл)
-
Server-PC 2015-11-26 20:32:21 error host.Server-PC instance system.adapter.sayit.0 terminated with code 6 (uncaught exception)
sayit.0 2015-11-26 20:32:21 error Error: EBUSY, open 'C:\ioBroker\node_modules\iobroker.sayit\say.mp3'
sayit.0 2015-11-26 20:32:21 error uncaught exception: EBUSY, open 'C:\ioBroker\node_modules\iobroker.sayit\say.mp3
Сегодня выскочила такая ошибочка.
Насколько я понял он говорит я еб..я открывать файл) `
Хм. Ошибка говорит, что не могу открыть, т.к кто то уже открыл.. Осталось выяснить, кто. -
Хм. Ошибка говорит, что не могу открыть, т.к кто то уже открыл.. Осталось выяснить, кто. `
А что это за файл вообще? у меня свой стоит для диндона. -
Хм. Ошибка говорит, что не могу открыть, т.к кто то уже открыл.. Осталось выяснить, кто.
А что это за файл вообще? у меня свой стоит для диндона.
Это файл с текстом. -
пока не знаю почему. Перезапусти iobroker `
Я так понимаю когда setState ('sayit.0.tts.text', ''); устанавливает значение одновременно,происходит это насколько я понял из-за того что js выполняется не линейно
например:
setTimeout(function() {setState ('sayit.0.tts.text', 'Прогноз погоды на сегодня: '+getState("javascript.0.forecast.today").val); setState ('sayit.0.tts.text', 'Сейчас за окном '+ parseFloat(getState("mqtt.0.myhome.Bedroom.Temp_in").val).toFixed(0)+'°'); }, 1000); setTimeout(function() { setState ('sayit.0.tts.text', 'Курс доллара '+ (getState("javascript.0.Valuta.USD").val.toFixed(2)).toString().replace(/[.]+/g, ',')+' руб. , '+ 'курс евро '+ (getState("javascript.0.Valuta.EUR").val.toFixed(2)).toString().replace(/[.]+/g, ',')+ ' руб.'); }, 2000);
иногда (скорее всего, когда файла нет в кеше) произносится одновременно видимо из-за потраченного времени на преобразование переменных.
-
В коде драйвера не разбирался еще.
Может организовать буфер в виде массива? Например: по setState('sayit.0.tts.text', 'Str') добавляем в массив строку, а потом уже массив обрабатываем с начало до конца, с проверкой что предыдущий элемент выполнен или сдвигая элементы массива.
-
В коде драйвера не разбирался еще.
Может организовать буфер в виде массива? Например: по setState('sayit.0.tts.text', 'Str') добавляем в массив строку, а потом уже массив обрабатываем с начало до конца, с проверкой что предыдущий элемент выполнен или сдвигая элементы массива. `
Именно так это и работает -
В коде драйвера не разбирался еще.
Может организовать буфер в виде массива? Например: по setState('sayit.0.tts.text', 'Str') добавляем в массив строку, а потом уже массив обрабатываем с начало до конца, с проверкой что предыдущий элемент выполнен или сдвигая элементы массива. `
Именно так это и работаетОк.
Почему тогда бывают такие глюки, либо одновременно проговаривает две фразы, посланные в разное время,
либо первую фразу вообще пропускает и говорит только последнюю?
Щас вот в логе :
! Server-PC 2015-12-24 22:52:07 error host.Server-PC instance system.adapter.sayit.0 terminated with code 6 (uncaught exception)
! sayit.0 2015-12-24 22:52:07 error Error: EBUSY, open 'C:\ioBroker\node_modules\iobroker.sayit\say.mp3'
! sayit.0 2015-12-24 22:52:07 error uncaught exception: EBUSY, open 'C:\ioBroker\node_modules\iobroker.sayit\say.mp3'PS
Щас проговорила одновременно две фразы
! sayit.0 2015-12-24 23:00:06 info sayit.0 saying: 23:00
! sayit.0 2015-12-24 23:00:05 info sayit.0 saying: курс евро 76,04 руб -
Может по этому у меня через Sonos, то неделю молчит, то неделю говорит. Так же замечены повторения.
-
В коде драйвера не разбирался еще.
Может организовать буфер в виде массива? Например: по setState('sayit.0.tts.text', 'Str') добавляем в массив строку, а потом уже массив обрабатываем с начало до конца, с проверкой что предыдущий элемент выполнен или сдвигая элементы массива. `
Именно так это и работаетА получается что сначала пишем mp3 в файл, а потом его воспроизводим?
А нельзя его держать и воспроизводить из RAM, а потом когда драйвер не используется( все сказали) уже не спеша пишем в файлы.
-
А получается что сначала пишем mp3 в файл, а потом его воспроизводим?
А нельзя его держать и воспроизводить из RAM, а потом когда драйвер не используется( все сказали) уже не спеша пишем в файлы. `
Если ты знаешь, как из RAM воспроизвести звук под Linux (да хотя бы под Windows), расскажи как.И это для всех звуковых карт и выходов…
Проблема в том, что я не могу оценить длинну фразы. И если размер файла маленький, а фраза длинная (например тишина), то получаются накладки. Пока не знаю, как решить это. Есть библиотеки в Cи, но тогда для Windows будет требоватся VS2015..
-
А получается что сначала пишем mp3 в файл, а потом его воспроизводим?
А нельзя его держать и воспроизводить из RAM, а потом когда драйвер не используется( все сказали) уже не спеша пишем в файлы. `
Если ты знаешь, как из RAM воспроизвести звук под Linux (да хотя бы под Windows), расскажи как.И это для всех звуковых карт и выходов…
Проблема в том, что я не могу оценить длинну фразы. И если размер файла маленький, а фраза длинная (например тишина), то получаются накладки. Пока не знаю, как решить это. Есть библиотеки в Cи, но тогда для Windows будет требоватся VS2015.. `
А для чего оценивать длину фразы? можно ведь получить длительность mp3 файла.
читаем из буфера фраз строку, отправляем ее на "озвучку", получаем файл, узнаем его продолжительность и отправляем на воспроизведение, ставим какойнить флаг. Проверяем буфер, нет ли там еще чего, если есть отправляем на озвучку, получаем файл, узнаем время, проверяем предыдущий флаг (времени) если больше продолжительности первого файла то отправляем текущий на воспроизведение.
или я что то непонимаю
-
После обновления вообще молчит.
Server-PC 2015-12-26 16:00:11 error host.Server-PC startInstance sayit.0: cannot find start file!
Добавлено:
В папке с драйвером осталась только папка \iobroker\node_modules\iobroker.sayit\cmdmp3\
Больше ни файлов ни папок нет.
Пытаюсь обновить руками,
Долго висит на строке
! c:\iobroker>npm install iobroker.sayit
! /
! > iobroker.sayit@0.3.16 install c:\iobroker\node_modules\iobroker.sayit
! > node main.js –install
! 2015-12-26 16:07:14.235 - info: sayit.0 starting. Version 0.3.16 in c:/iobroker
! /node_modules/iobroker.sayit
! 2015-12-26 16:07:14.245 - info: sayit.0 Upload announce mp3 filesВисит а оказалось что уже работает.)
-
Свалился с ошибкой
! sayit.0 2015-12-26 16:36:42 error Error: EBUSY, open 'c:\iobroker\node_modules\iobroker.sayit\say.mp3'
! sayit.0 2015-12-26 16:36:42 error uncaught exception: EBUSY, open 'c:\iobroker\node_modules\iobroker.sayit\say.mp3'
Свалился и в папке \iobroker\node_modules\iobroker.sayit\ снова пусто. :shock:! 2015-12-26 16:36:42.233 - error: uncaught exception: EBUSY, open 'c:\iobroker\n
! ode_modules\iobroker.sayit\say.mp3'
! 2015-12-26 16:36:42.243 - error: Error: EBUSY, open 'c:\iobroker\node_modules\i
! obroker.sayit\say.mp3'
! npm ERR! iobroker.sayit@0.3.16 install:node main.js –install
! npm ERR! Exit status 6
! npm ERR!
! npm ERR! Failed at the iobroker.sayit@0.3.16 install script.
! npm ERR! This is most likely a problem with the iobroker.sayit package,
! npm ERR! not with npm itself.
! npm ERR! Tell the author that this fails on your system:
! npm ERR! node main.js --install
! npm ERR! You can get their info via:
! npm ERR! npm owner ls iobroker.sayit
! npm ERR! There is likely additional logging output above.
! npm ERR! System Windows_NT 6.1.7601
! npm ERR! command "C:\Program Files\nodejs\\node.exe" "C:\Program Files\nod
! ejs\node_modules\npm\bin\npm-cli.js" "install" "iobroker.sayit"
! npm ERR! cwd c:\iobroker
! npm ERR! node -v v0.10.35
! npm ERR! npm -v 1.4.28
! npm ERR! code ELIFECYCLE
! npm ERR! error rolling back Error: EPERM, unlink 'c:\iobroker\node_modules\iobro
! ker.sayit\say.mp3'
! npm ERR! error rolling back { [Error: EPERM, unlink 'c:\iobroker\node_modules\i
! obroker.sayit\say.mp3']
! npm ERR! error rolling back errno: 50,
! npm ERR! error rolling back code: 'EPERM',
! npm ERR! error rolling back path: 'c:\iobroker\node_modules\iobroker.sayit
! \say.mp3' }
! npm ERR! not ok code 0 -
У меня всё хорошо работает.
! sayit.0 2015-12-26 15:12:03 info sayit.0 saying: Облачно, небольшой дождь. Температура ночью 2°, днём 4°. Ветер юго-западный, 3 м в секунду.
! sayit.0 2015-12-26 15:12:00 info sayit.0 saying: /opt/iobroker/node_modules/iobroker.sayit/gong.mp3
! javascript.0 2015-12-26 15:12:00 info javascript.0 script.js.Weather_say: Вильнюс, 28 декабря => Облачно, небольшой снег. Температура ночью -4°, днём 0°. Ветер северо-восточный, 5 м в секунду.
! javascript.0 2015-12-26 15:12:00 info javascript.0 script.js.Weather_say: Вильнюс, 27 декабря => Облачно, снег. Температура ночью -2°, днём 0°. Ветер южный, 1 м в секунду.
! javascript.0 2015-12-26 15:12:00 info javascript.0 script.js.Weather_say: Вильнюс, 26 декабря => Облачно, небольшой дождь. Температура ночью 2°, днём 4°. Ветер юго-западный, 3 м в секунду.
! sayit.0 2015-12-26 15:11:03 info sayit.0 saying: Облачно, небольшой дождь. Температура ночью 2°, днём 4°. Ветер юго-западный, 3 м в секунду.
! sayit.0 2015-12-26 15:11:00 info sayit.0 saying: /opt/iobroker/node_modules/iobroker.sayit/gong.mp3
! javascript.0 2015-12-26 15:11:00 info javascript.0 script.js.Weather_say: Вильнюс, 28 декабря => Облачно, небольшой снег. Температура ночью -4°, днём 0°. Ветер северо-восточный, 5 м в секунду.
! javascript.0 2015-12-26 15:11:00 info javascript.0 script.js.Weather_say: Вильнюс, 27 декабря => Облачно, снег. Температура ночью -2°, днём 0°. Ветер южный, 1 м в секунду.
! javascript.0 2015-12-26 15:11:00 info javascript.0 script.js.Weather_say: Вильнюс, 26 декабря => Облачно, небольшой дождь. Температура ночью 2°, днём 4°. Ветер юго-западный, 3 м в секунду.Последние обновления идут всегда с таким текстом, но всё ставится и работает
!
-
Свалился с ошибкой
! sayit.0 2015-12-26 16:36:42 error Error: EBUSY, open 'c:\iobroker\node_modules\iobroker.sayit\say.mp3'
! sayit.0 2015-12-26 16:36:42 error uncaught exception: EBUSY, open 'c:\iobroker\node_modules\iobroker.sayit\say.mp3'
Свалился и в папке \iobroker\node_modules\iobroker.sayit\ снова пусто. :shock:! 2015-12-26 16:36:42.233 - error: uncaught exception: EBUSY, open 'c:\iobroker\n
! ode_modules\iobroker.sayit\say.mp3'
! 2015-12-26 16:36:42.243 - error: Error: EBUSY, open 'c:\iobroker\node_modules\i
! obroker.sayit\say.mp3'
! npm ERR! iobroker.sayit@0.3.16 install:node main.js –install
! npm ERR! Exit status 6
! npm ERR!
! npm ERR! Failed at the iobroker.sayit@0.3.16 install script.
! npm ERR! This is most likely a problem with the iobroker.sayit package,
! npm ERR! not with npm itself.
! npm ERR! Tell the author that this fails on your system:
! npm ERR! node main.js --install
! npm ERR! You can get their info via:
! npm ERR! npm owner ls iobroker.sayit
! npm ERR! There is likely additional logging output above.
! npm ERR! System Windows_NT 6.1.7601
! npm ERR! command "C:\Program Files\nodejs\\node.exe" "C:\Program Files\nod
! ejs\node_modules\npm\bin\npm-cli.js" "install" "iobroker.sayit"
! npm ERR! cwd c:\iobroker
! npm ERR! node -v v0.10.35
! npm ERR! npm -v 1.4.28
! npm ERR! code ELIFECYCLE
! npm ERR! error rolling back Error: EPERM, unlink 'c:\iobroker\node_modules\iobro
! ker.sayit\say.mp3'
! npm ERR! error rolling back { [Error: EPERM, unlink 'c:\iobroker\node_modules\i
! obroker.sayit\say.mp3']
! npm ERR! error rolling back errno: 50,
! npm ERR! error rolling back code: 'EPERM',
! npm ERR! error rolling back path: 'c:\iobroker\node_modules\iobroker.sayit
! \say.mp3' }
! npm ERR! not ok code 0 `
Посмотри, что я поменял: https://github.com/ioBroker/ioBroker.sa … 412dca8cb6Практически ничего :lol:
Видать установка не прошла.
-
Свалился с ошибкой
! sayit.0 2015-12-26 16:36:42 error Error: EBUSY, open 'c:\iobroker\node_modules\iobroker.sayit\say.mp3'
! sayit.0 2015-12-26 16:36:42 error uncaught exception: EBUSY, open 'c:\iobroker\node_modules\iobroker.sayit\say.mp3'
Свалился и в папке \iobroker\node_modules\iobroker.sayit\ снова пусто. :shock:! 2015-12-26 16:36:42.233 - error: uncaught exception: EBUSY, open 'c:\iobroker\n
! ode_modules\iobroker.sayit\say.mp3'
! 2015-12-26 16:36:42.243 - error: Error: EBUSY, open 'c:\iobroker\node_modules\i
! obroker.sayit\say.mp3'
! npm ERR! iobroker.sayit@0.3.16 install:node main.js –install
! npm ERR! Exit status 6
! npm ERR!
! npm ERR! Failed at the iobroker.sayit@0.3.16 install script.
! npm ERR! This is most likely a problem with the iobroker.sayit package,
! npm ERR! not with npm itself.
! npm ERR! Tell the author that this fails on your system:
! npm ERR! node main.js --install
! npm ERR! You can get their info via:
! npm ERR! npm owner ls iobroker.sayit
! npm ERR! There is likely additional logging output above.
! npm ERR! System Windows_NT 6.1.7601
! npm ERR! command "C:\Program Files\nodejs\\node.exe" "C:\Program Files\nod
! ejs\node_modules\npm\bin\npm-cli.js" "install" "iobroker.sayit"
! npm ERR! cwd c:\iobroker
! npm ERR! node -v v0.10.35
! npm ERR! npm -v 1.4.28
! npm ERR! code ELIFECYCLE
! npm ERR! error rolling back Error: EPERM, unlink 'c:\iobroker\node_modules\iobro
! ker.sayit\say.mp3'
! npm ERR! error rolling back { [Error: EPERM, unlink 'c:\iobroker\node_modules\i
! obroker.sayit\say.mp3']
! npm ERR! error rolling back errno: 50,
! npm ERR! error rolling back code: 'EPERM',
! npm ERR! error rolling back path: 'c:\iobroker\node_modules\iobroker.sayit
! \say.mp3' }
! npm ERR! not ok code 0 `
Посмотри, что я поменял: https://github.com/ioBroker/ioBroker.sa … 412dca8cb6Практически ничего :lol:
Видать установка не прошла. `
НУ раз не прошла это ладно, я же вручную 2 раза пробовал ставить не проходит.зависает на строке 2015-12-26 16:07:14.245 - info: sayit.0 Upload announce mp3 files
Но до этого видимо фалы скаыивает и в папке в с драйвером все файлы и папки появляются, в этот момент ребутнул iobroker, чтобы установку не отменилась и не удалила снова все фалйлы, сам драйвер пока работает.
-
Нарисовалась еще одна проблема - драйвер text to speech ничего не говорит. Т.е он отсылает запрос на конвертацию, получает mp3
и направляет его на mpg321, а тот уже отвечает
sayit-0 2016-01-10 19:00:03 error Can't find a suitable libao driver. (Is device in use?) sayit-0 2016-01-10 19:00:03 error MPEG 2.0 layer III, 64 kbit/s, 16000 Hz mono sayit-0 2016-01-10 19:00:03 error Playing MPEG stream from say.mp3 ... sayit-0 2016-01-10 19:00:03 error Directory: /opt/iobroker/node_modules/iobroker.sayit sayit-0 2016-01-10 19:00:03 error tcgetattr(): Inappropriate ioctl for device sayit-0 2016-01-10 19:00:03 error THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK! sayit-0 2016-01-10 19:00:03 error Uses code from various people. See 'README' for more! sayit-0 2016-01-10 19:00:03 error now maintained by Nanakos Chrysostomos and others. sayit-0 2016-01-10 19:00:03 error Version 0.3.2-1 (2012/03/25). Written and copyrights by Joe Drew, sayit-0 2016-01-10 19:00:03 error Cannot play:Error: Command failed: High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2, and 3.
При этом сигналы оповещения играет на ура.
Я понимаю что это проблемы не брокера а mpg321, потому как при попытке запуска из командной строки (mpg321 + имя файла) все повторяется.
Подозреваю, что что-то не доставил, а что понять не могу. Haus ты же тоже на Debian 8.2 ставишь, нет в этом разделе особенностей?
Только что выяснилось что mp3 играют из под юзера а из под рута не играют (adduser root audio сделал) так же из под рута не работает speaker-test :x