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.
    • 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
                                          • I
                                            instalator last edited by

                                            @Bluefox:

                                            @instalator:

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

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

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

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

                                            А для чего оценивать длину фразы? можно ведь получить длительность mp3 файла.

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

                                            или я что то непонимаю

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            560
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            16
                                            178
                                            47626
                                            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