Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Русский
    3. ioBroker
    4. ioBroker драйвера
    5. Драйвер sayit

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Драйвер sayit

    This topic has been deleted. Only users with topic management privileges can see it.
    • I
      instalator last edited by

      @aurodionov:

      instalator, а если пнутьв скрипте включение усилка выдержать паузу потом сказать фразу.

      я к тому что-бы задержку сделать не в драйвере а в скрипте. `
      А как ты угадаешь когда будет что то говорить? делать вывод каждый раз добавляя в скриптах задержку?

      1 Reply Last reply Reply Quote 0
      • aurodionov
        aurodionov last edited by

        @instalator:

        Нак FADE чем то же дёргаете перед тем как сказать фразу.

        Получается дёрнули FADE->pause->seyit. Или не?

        1 Reply Last reply Reply Quote 0
        • I
          instalator last edited by

          @aurodionov:

          @instalator:

          Нак FADE чем то же дёргаете перед тем как сказать фразу.

          Получается дёрнули FADE->pause->seyit. Или не?

          Fade дергаю sayit.0.tts.playing `

          1 Reply Last reply Reply Quote 0
          • aurodionov
            aurodionov last edited by

            @instalator:

            Fade дергаю sayit.0.tts.playing `
            Под линуксом sayit.0.tts.playing вроде не работает, или я не понял как пользоватся

            1 Reply Last reply Reply Quote 0
            • I
              instalator last edited by

              @aurodionov:

              @instalator:

              Fade дергаю sayit.0.tts.playing Под линуксом sayit.0.tts.playing вроде не работает, или я не понял как пользоватся
              У меня винда.

              Bluefox.

              Драйвер сегодня стал проговаривать любую фразу по два раза. В логе ошибок нет

              ! sayit.0 2015-11-03 18:34:09 info sayit.0 saying: 1
              ! sayit.0 2015-11-03 18:34:07 info sayit.0 saying: 1
              ! sayit.0 2015-11-03 18:34:05 info sayit.0 saying: C:\ioBroker\node_modules\iobroker.sayit/gong.mp3
              ! sayit.0 2015-11-03 18:34:05 info sayit.0 saying: C:\ioBroker\node_modules\iobroker.sayit/gong.mp3

              1 Reply Last reply Reply Quote 0
              • Bluefox
                Bluefox last edited by

                пока не знаю почему. Перезапусти iobroker

                1 Reply Last reply Reply Quote 0
                • Bluefox
                  Bluefox last edited by

                  @instalator:

                  Вопрос к Bluefox.

                  Может добавить в драйвер возможность задать время задержки перед дин дон?

                  Смысл в том что сделал усилитель D класса на микрушке, так вот у него есть логический вход FADE, т.е. при подачи управляющего сигнала он плавно включает громкость (примерно 2 сек.) и так же после снятия управляющего сигнала плавно убавляет громкость до 0 (чтобы небыло шума в динамиках при простое).

                  И кстати sayit.0.tts.playing у меня работает не корректно, менят статус через секунды 3 на false, хотя фраза еще произносится. `
                  Слишком специфичный случай. Вот если бы пришёл pul reuquest, я бы подумал..

                  Вставь в файл дин дон 2 секунды тишины в начале.

                  1 Reply Last reply Reply Quote 0
                  • V
                    vtec last edited by

                    То же иногда встречается проговаривание по 2-а раза. Тоже не пойму почему.

                    1 Reply Last reply Reply Quote 0
                    • I
                      instalator last edited by

                      @Bluefox:

                      @instalator:

                      Вопрос к Bluefox.

                      Может добавить в драйвер возможность задать время задержки перед дин дон?

                      Смысл в том что сделал усилитель D класса на микрушке, так вот у него есть логический вход FADE, т.е. при подачи управляющего сигнала он плавно включает громкость (примерно 2 сек.) и так же после снятия управляющего сигнала плавно убавляет громкость до 0 (чтобы небыло шума в динамиках при простое).

                      И кстати sayit.0.tts.playing у меня работает не корректно, менят статус через секунды 3 на false, хотя фраза еще произносится. `
                      Слишком специфичный случай. Вот если бы пришёл pul reuquest, я бы подумал..

                      Вставь в файл дин дон 2 секунды тишины в начале. `
                      Ну да специфичен, но а если стоит зонный услитель? и надо перед каждым произношение переключать зоны и тд.? я думаю задержка бы не помешала.

                      Ок как будет время зайду на гит. А тишина вначале это у меня план Б)

                      1 Reply Last reply Reply Quote 0
                      • I
                        instalator last edited by

                        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

                        Сегодня выскочила такая ошибочка.

                        Насколько я понял он говорит я еб..я открывать файл)

                        1 Reply Last reply Reply Quote 0
                        • Bluefox
                          Bluefox last edited by

                          @instalator:

                          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

                          Сегодня выскочила такая ошибочка.

                          Насколько я понял он говорит я еб..я открывать файл) `
                          Хм. Ошибка говорит, что не могу открыть, т.к кто то уже открыл.. Осталось выяснить, кто.

                          1 Reply Last reply Reply Quote 0
                          • I
                            instalator last edited by

                            @Bluefox:

                            Хм. Ошибка говорит, что не могу открыть, т.к кто то уже открыл.. Осталось выяснить, кто. `
                            А что это за файл вообще? у меня свой стоит для диндона.

                            1 Reply Last reply Reply Quote 0
                            • Bluefox
                              Bluefox last edited by

                              @instalator:

                              @Bluefox:

                              Хм. Ошибка говорит, что не могу открыть, т.к кто то уже открыл.. Осталось выяснить, кто. А что это за файл вообще? у меня свой стоит для диндона.
                              Это файл с текстом.

                              1 Reply Last reply Reply Quote 0
                              • I
                                instalator last edited by

                                @Bluefox:

                                пока не знаю почему. Перезапусти 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);
                                

                                иногда (скорее всего, когда файла нет в кеше) произносится одновременно видимо из-за потраченного времени на преобразование переменных.

                                1 Reply Last reply Reply Quote 0
                                • I
                                  instalator last edited by

                                  В коде драйвера не разбирался еще.

                                  Может организовать буфер в виде массива? Например: по setState('sayit.0.tts.text', 'Str') добавляем в массив строку, а потом уже массив обрабатываем с начало до конца, с проверкой что предыдущий элемент выполнен или сдвигая элементы массива.

                                  1 Reply Last reply Reply Quote 0
                                  • Bluefox
                                    Bluefox last edited by

                                    @instalator:

                                    В коде драйвера не разбирался еще.

                                    Может организовать буфер в виде массива? Например: по setState('sayit.0.tts.text', 'Str') добавляем в массив строку, а потом уже массив обрабатываем с начало до конца, с проверкой что предыдущий элемент выполнен или сдвигая элементы массива. `
                                    Именно так это и работает

                                    https://github.com/ioBroker/ioBroker.sa … n.js#L1027

                                    1 Reply Last reply Reply Quote 0
                                    • I
                                      instalator last edited by

                                      @Bluefox:

                                      @instalator:

                                      В коде драйвера не разбирался еще.

                                      Может организовать буфер в виде массива? Например: по setState('sayit.0.tts.text', 'Str') добавляем в массив строку, а потом уже массив обрабатываем с начало до конца, с проверкой что предыдущий элемент выполнен или сдвигая элементы массива. `
                                      Именно так это и работает

                                      https://github.com/ioBroker/ioBroker.sa … n.js#L1027 `

                                      Ок.

                                      Почему тогда бывают такие глюки, либо одновременно проговаривает две фразы, посланные в разное время,

                                      либо первую фразу вообще пропускает и говорит только последнюю?

                                      Щас вот в логе :

                                      ! 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 руб

                                      1 Reply Last reply Reply Quote 0
                                      • V
                                        vtec last edited by

                                        Может по этому у меня через Sonos, то неделю молчит, то неделю говорит. Так же замечены повторения.

                                        1 Reply Last reply Reply Quote 0
                                        • I
                                          instalator last edited by

                                          @Bluefox:

                                          @instalator:

                                          В коде драйвера не разбирался еще.

                                          Может организовать буфер в виде массива? Например: по setState('sayit.0.tts.text', 'Str') добавляем в массив строку, а потом уже массив обрабатываем с начало до конца, с проверкой что предыдущий элемент выполнен или сдвигая элементы массива. `
                                          Именно так это и работает

                                          https://github.com/ioBroker/ioBroker.sa … n.js#L1027 `

                                          А получается что сначала пишем mp3 в файл, а потом его воспроизводим?

                                          А нельзя его держать и воспроизводить из RAM, а потом когда драйвер не используется( все сказали) уже не спеша пишем в файлы.

                                          1 Reply Last reply Reply Quote 0
                                          • Bluefox
                                            Bluefox last edited by

                                            @instalator:

                                            А получается что сначала пишем mp3 в файл, а потом его воспроизводим?

                                            А нельзя его держать и воспроизводить из RAM, а потом когда драйвер не используется( все сказали) уже не спеша пишем в файлы. `
                                            Если ты знаешь, как из RAM воспроизвести звук под Linux (да хотя бы под Windows), расскажи как. 😄

                                            И это для всех звуковых карт и выходов…

                                            Проблема в том, что я не могу оценить длинну фразы. И если размер файла маленький, а фраза длинная (например тишина), то получаются накладки. Пока не знаю, как решить это. Есть библиотеки в Cи, но тогда для Windows будет требоватся VS2015..

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            930
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            16
                                            178
                                            47692
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo