Giter Site home page Giter Site logo

iobroker.sayit's Introduction

Logo

ioBroker sayit adapter

Number of Installations Number of Installations NPM version

Test and Release Translation status Downloads

This adapter uses Sentry libraries to automatically report exceptions and code errors to the developers. For more details and for information how to disable the error reporting see Sentry-Plugin Documentation! Sentry reporting is used starting with js-controller 3.0.

SayIt Adapter can convert text to speech and play it on some device.

Configuration

Actually, the following outputs are supported:

  • Browser - browser will play the text within opened iobroker.vis page. It is supported almost by every desktop browser and by few mobile Browsers.

  • Home24- MediaPlayer - the text will be sent and played to the Android device with Home24 - MediaPlayer installed. For this will be used build in Android text to speech engine. The port cannot be changed and set to 50000.

  • Home24 - MediaPlayer and FTP Server - the text will be sent and played on the Android device with Home24 - MediaPlayer installed. For this will be used the Google text to speech engine. Generated mp3 file will be copied over FTP to an Android device and played with Home24 - MediaPlayer. Both apps have to have same home directories. (E.g., root directory of "sd card").

  • System - the text will be played by OS, where the ioBroker adapter runs. Following OS are supported: Windows, linux, Mac OSx.

  • Windows engine - the text will be played by windows, where the sayIt adapter runs. For this will be used the Windows text to speech engine, that should be preconfigured by user. You can check here how to set up it.

  • Sonos - play text on the Sonos device. Be sure the Web Adapter is enabled. It is required to enable SONOS to read the generated mp3 files.

  • Heos - play text on HEOS device. Be sure the Web Adapter is enabled. It is required to enable HEOS to read the generated mp3 files.

  • Chromecast - play text on a Chromecast device.

  • MPD - play text on Music Player Daemon. Use only http for web adapter, don't use https.

To enable the text to speech on RaspberryPI or linux system call one time following command sudo apt-get -y install mpg321 to install mpg321.

The mp3/wav files can be played to by writing its name into the object. (e.g. /vis.0/main/img/door-bell.mp3)

The file must be first loaded.

TTS engines

Online:

  • Google: English, German, Russian, Italian, Spanish, French;
  • Yandex: Russian To use Yandex voices you must request the API key here: https://tech.yandex.ru/speechkit/cloud/doc/dg/concepts/About-docpage/. [This service will be disabled 1st of Jan 2019 and replaced by Yandex.cloud] To use Yandex.cloud you should register here: [https://cloud.yandex.ru/], install SpeechKIT API in the Cloud and get Auth Token and Folder ID as described in API instructions.
  • Cloud: To use Cloud voices you need configured and running cloud adapter or enter app-key directly in settings
  • Amazon Web Services Polly: To use AWS Polly voices, you need to create an access key and secret key here. The Amazon documentation can you find here.

Offline:

  • PicoTTS (linux only): English, German, Italian, Spanish, French; For PicoTTS it is necessary to install the following packages: libttspico-utils and lame. Installation command: sudo apt-get install libttspico-utils lame

  • Coqui TTS: English, German, Spanish, French, Dutch, Japanese, Chinese; For instructions how to use go to the official documentation

Cloud and Amazon Web Services Polly text formatting

You can format your text with Speech Synthesis Markup Language.

Most useful features:

  • <break time="3s"/>- make a pause for x seconds (max 10 seconds).
  • <emphasis> big </emphasis> - make an emphasis on some word.
  • <prosody volume="+6dB" rate="90%">I am speaking this</prosody> - control speed and volume parameters.
  • <say-as interpret-as="digits">12345</say-as> - say every digit separately.

More info.

System command

If you have some program, that can play audio files locally or somewhere else, you can write this command here. E.g.

myCustomPlayer --option

If System output is selected, the sayit adapter will execute the following command on a local system:

myCustomPlayer --option /opt/iobroker/node_modules/iobroker.sayit/say.mp3

If file name must stay somewhere in the middle, you can use %s to specify where the file name must be placed:

myCustomPlayer --option "%s" > /dev/null

sayIt will make myCustomPlayer --option "/opt/iobroker/node_modules/iobroker.sayit/say.mp3" > /dev/null from it.

Usage

SayIt adapter cannot be used alone. It must be controlled from javascript adapter or from "vis" with specific widget. After creation of adapter instance, you can find the following objects:

  • sayit.N.tts.text: Phrase to be spoken.
  • sayit.N.tts.volume: volume which will be used by playing of the phrase.
  • sayit.N.tts.playing: true if a text is now playing and false if not. Supported only for "windows" and "system" play mode.
  • sayit.N.tts.cachetext: Phrase to be cached, and then it can be used without an internet. E.g., you can enter here manually "No internet" and if ping to google.com is negative, write "No internet" to "tts.text" and it will be pronounced. Of course, cache must be enabled.

State tts.text supports extended syntax, so the language/engine and volume can be defined together with text. It is used to enable multi-language text2speech engines. E.g., if adapter has engine Google-english, it is possible with phrase de:Sag es to force using Google-Deutsch speech engine.

With ru;75;Погода хорошая we can force using russian language and volume 75%.

You can specify the volume of announcement in percent from current or given volume (not from maximal). E.g., if command is de;75;Gutes Wetterand "announce volume" is 50%, the announcement will be played with volume 38% from 100% possible.

The system command to play the mp3 file can be specified too. If you leave it blank, the default settings will be used: windows - cmdmp3.exe, OSX - /usr/bin/afplay, linux - mpg321 or omxplayer (recommended).

To install omxplayer write sudo apt-get install omxplayer or write sudo apt-get install mpg321 to install mpg321.

Note: The default announce selection will be possible only after the start of the instance.

Priorities

To immediately pronounce the text despite the queued texts, you have two possibilities:

  • place "!" as a first character in text, so this text will be pronounced immediately after the current one.
  • write true into "tts.clearQueue" state and the queue will be cleared. After that you can write a new text into tts.text, but all queued texts are thrown away.

Engines

The following values for engines are possible:

Google

  • en - English
  • de - Deutsch
  • pl - Polski
  • ru - Русский
  • uk - український
  • it - Italiano
  • es - Espaniol
  • fr - Français
  • nl - Nederlands
  • zh-CN - 简体中文
  • pt - Português

Yandex

  • ru_YA:Yandex - Русский
  • ru_YA_CLOUD:Yandex Cloud - Русский [Yandex.Cloud API generates files in OGG format. To play ogg files on linux mplayer should be installed and selected as system player]

Amazon polly via cloud

  • ru-RU_CLOUD_Female - Русский - Татьяна
  • ru-RU_CLOUD_Male - Русский - Максим
  • de-DE_CLOUD_Female - Deutsch - Marlene
  • de-DE_CLOUD_Male - Deutsch - Hans
  • de-DE_CLOUD_Female_Vicki - Deutsch - Vicki
  • de-DE_CLOUD_Male_Daniel - Deutsch - Daniel
  • de-AT_CLOUD_Female_Hannah - Österreich - Hannah
  • en-US_CLOUD_Female - en-US - Female - Salli
  • en-US_CLOUD_Male - en-US - Male - Joey
  • da-DK_CLOUD_Female - da-DK - Female - Naja
  • da-DK_CLOUD_Male - da-DK - Male - Mads
  • en-AU_CLOUD_Female - en-AU - Female - Nicole
  • en-AU_CLOUD_Male - en-AU - Male - Russell
  • en-GB_CLOUD_Female_Amy - en-GB - Female - Amy
  • en-GB_CLOUD_Male - en-GB - Male - Brian
  • en-GB_CLOUD_Female_Emma - en-GB - Female - Emma
  • en-GB-WLS_CLOUD_Female - en-GB-WLS - Female - Gwyneth
  • en-GB-WLS_CLOUD_Male - en-GB-WLS - Male - Geraint
  • cy-GB_CLOUD_Female - cy-GB - Female - Gwyneth
  • cy-GB_CLOUD_Male - cy-GB - Male - Geraint
  • en-IN_CLOUD_Female - en-IN - Female - Raveena
  • en-US_CLOUD_Male_Chipmunk - en-US - Male - Chipmunk
  • en-US_CLOUD_Male_Eric - en-US - Male - Eric
  • en-US_CLOUD_Female_Ivy - en-US - Female - Ivy
  • en-US_CLOUD_Female_Jennifer - en-US - Female - Jennifer
  • en-US_CLOUD_Male_Justin - en-US - Male - Justin
  • en-US_CLOUD_Female_Kendra - en-US - Female - Kendra
  • en-US_CLOUD_Female_Kimberly - en-US - Female - Kimberly
  • es-ES_CLOUD_Female - es-ES - Female - Conchita
  • es-ES_CLOUD_Male - es-ES - Male - Enrique
  • es-US_CLOUD_Female - es-US - Female - Penelope
  • es-US_CLOUD_Male - es-US - Male - Miguel
  • fr-CA_CLOUD_Female - fr-CA - Female - Chantal
  • fr-FR_CLOUD_Female - fr-FR - Female - Celine
  • fr-FR_CLOUD_Male - fr-FR - Male - Mathieu
  • is-IS_CLOUD_Female - is-IS - Female - Dora
  • is-IS_CLOUD_Male - is-IS - Male - Karl
  • it-IT_CLOUD_Female - it-IT - Female - Carla
  • it-IT_CLOUD_Male - it-IT - Male - Giorgio
  • nb-NO_CLOUD_Female - no-NO - Female - Liv
  • no-NO_CLOUD_Female - no-NO - Female - Ida
  • nl-NL_CLOUD_Female - nl-NL - Female - Lotte
  • nl-NL_CLOUD_Male - nl-NL - Male - Ruben
  • pl-PL_CLOUD_Female_Agnieszka - pl-PL - Female - Agnieszka
  • pl-PL_CLOUD_Male_Jacek - pl-PL - Male - Jacek
  • pl-PL_CLOUD_Female_Ewa - pl-PL - Female - Ewa
  • pl-PL_CLOUD_Male_Jan - pl-PL - Male - Jan
  • pl-PL_CLOUD_Female - pl-PL - Female - Maja
  • pt-BR_CLOUD_Female - pt-BR - Female - Vitoria
  • pt-BR_CLOUD_Female_Camila - pt-BR - Female - Camila
  • pt-BR_CLOUD_Male - pt-BR - Male - Ricardo
  • pt-PT_CLOUD_Male - pt-PT - Male - Cristiano
  • pt-PT_CLOUD_Female - pt-PT - Female - Ines
  • ro-RO_CLOUD_Female - ro-RO - Female - Carmen
  • sv-SE_CLOUD_Female - sv-SE - Female - Astrid
  • tr-TR_CLOUD_Female - tr-TR - Female - Filiz
  • pt-BR_CLOUD_Female_Camila - pt-BR - Female - Camila

Pico TTS

  • en-US - Englisch US
  • en-GB - Englisch GB
  • de-DE - Deutsch
  • it-IT - Italiano
  • es-ES - Espaniol
  • fr-FR - Français

Coqui TTS

  • English
  • Deutsch
  • Espanol
  • Francais
  • Nederlands
  • 日本

Amazon polly direct

  • ru-RU_AP_Female - Русский - Татьяна
  • ru-RU_AP_Male - Русский - Максим
  • de-DE_AP_Female - Deutsch - Marlene
  • de-DE_AP_Female_Vicki - Deutsch - Vicki
  • de-DE_AP_Male - Deutsch - Hans
  • en-US_AP_Female - en-US - Female - Salli
  • en-US_AP_Male - en-US - Male - Joey
  • da-DK_AP_Female - da-DK - Female - Naja
  • da-DK_AP_Male - da-DK - Male - Mads
  • en-AU_AP_Female - en-AU - Female - Nicole
  • en-AU_AP_Male - en-AU - Male - Russell
  • en-GB_AP_Female_Amy - en-GB - Female - Amy
  • en-GB_AP_Male - en-GB - Male - Brian
  • en-GB_AP_Female_Emma - en-GB - Female - Emma
  • en-GB-WLS_AP_Female - en-GB-WLS - Female - Gwyneth
  • en-GB-WLS_AP_Male - en-GB-WLS - Male - Geraint
  • cy-GB_AP_Female - cy-GB - Female - Gwyneth
  • cy-GB_AP_Male - cy-GB - Male - Geraint
  • en-IN_AP_Female - en-IN - Female - Raveena
  • en-US_AP_Male_Chipmunk - en-US - Male - Chipmunk
  • en-US_AP_Male_Eric - en-US - Male - Eric
  • en-US_AP_Female_Ivy - en-US - Female - Ivy
  • en-US_AP_Female_Jennifer - en-US - Female - Jennifer
  • en-US_AP_Male_Justin - en-US - Male - Justin
  • en-US_AP_Female_Kendra - en-US - Female - Kendra
  • en-US_AP_Female_Kimberly - en-US - Female - Kimberly
  • es-ES_AP_Female - es-ES - Female - Conchita
  • es-ES_AP_Male - es-ES - Male - Enrique
  • es-US_AP_Female - es-US - Female - Penelope
  • es-US_AP_Male - es-US - Male - Miguel
  • fr-CA_AP_Female - fr-CA - Female - Chantal
  • fr-FR_AP_Female - fr-FR - Female - Celine
  • fr-FR_AP_Male - fr-FR - Male - Mathieu
  • is-IS_AP_Female - is-IS - Female - Dora
  • is-IS_AP_Male - is-IS - Male - Karl
  • it-IT_AP_Female - it-IT - Female - Carla
  • it-IT_AP_Male - it-IT - Male - Giorgio
  • nb-NO_AP_Female - nb-NO - Female - Liv
  • nl-NL_AP_Female - nl-NL - Female - Lotte
  • nl-NL_AP_Male - nl-NL - Male - Ruben
  • pl-PL_AP_Female_Agnieszka - pl-PL - Female - Agnieszka
  • pl-PL_AP_Male_Jacek - pl-PL - Male - Jacek
  • pl-PL_AP_Female_Ewa - pl-PL - Female - Ewa
  • pl-PL_AP_Male_Jan - pl-PL - Male - Jan
  • pl-PL_AP_Female - pl-PL - Female - Maja
  • pt-BR_AP_Female - pt-BR - Female - Vitoria
  • pt-BR_AP_Male - pt-BR - Male - Ricardo
  • pt-PT_AP_Male - pt-PT - Male - Cristiano
  • pt-PT_AP_Female - pt-PT - Female - Ines
  • ro-RO_AP_Female - ro-RO - Female - Carmen
  • sv-SE_AP_Female - sv-SE - Female - Astrid
  • tr-TR_AP_Female - tr-TR - Female - Filiz
  • ko-KR_AP_Female - ko-KR - Female - Seoyeon

Changelog

5.0.0 (2024-07-16)

  • (mcm1957) Adapter requires admin v7 or newer now
  • (mcm1957) Adapter requires jas-controller 5 or newer now
  • (bluefox) Added possibility to play directly from states: sayit.0/tts.userfiles/gong.mp3

4.0.5 (2024-07-12)

  • (bluefox) Packages updated
  • (bluefox) Corrected playing in vis
  • (bluefox) Corrected blockly
  • (bluefox) Corrected upload of files

4.0.1 (2024-05-25)

  • (bluefox) Packages updated
  • (neopholus) Using the pre-calculated duration of the mp3 to wait long enough even for longer announcements

4.0.0 (2023-10-31)

  • (bluefox) Breaking changes: A minimal node.js version is 16
  • (bluefox) Browser outputs now to vis(1) and vis-2

3.0.5 (2023-04-17)

  • (bluefox) Corrected error with System player
  • (bluefox) Do not allow for chromecast to cache files.
  • (bluefox) Allowed to add cloud App-Key without running cloud adapter
  • (bluefox) Added austrian language
  • (bluefox) Added norwegian language
  • (klein0r) Used sendTo instead of setState in blockly

3.0.0 (2023-04-03)

  • (bluefox) Restored cloud engines. Warning: update cloud adapter to at least 4.4.0
  • (bluefox) Breaking changes: A minimal node.js version is 14

2.1.2 (2023-03-27)

  • (bluefox) Corrected engines with web-link

2.1.1 (2023-03-24)

  • (Jey-Cee) Added support for Coqui TTS
  • (bluefox) Renamed all configuration attributes

2.0.0 (2023-03-23)

  • (bluefox) Adapter was completely rewritten with async/await
  • (bluefox) Could be buggy

1.13.0 (2023-03-22)

  • (bluefox) Made compatible with future js-controller

1.12.6 (2022-02-09)

  • (bluefox) used setForeignBinaryState if possible

1.12.5 (2022-02-09)

  • (bluefox) Fixed errors in io-package.json

1.12.3 (2021-06-25)

  • (bluefox) corrected the Google engine
  • (bluefox) Added new voices: german, korean, brasil, Dutch

1.12.2 (2020-11-07)

  • (Apollon77) Prevent crash case (Sentry IOBROKER-SAYIT-Q, IOBROKER-SAYIT-S, IOBROKER-SAYIT-T)

1.12.0 (2020-10-19)

  • (withstu) Support for HEOS was added

1.11.5 (2020-09-24)

  • (Apollon77) prevent scheduled restart problems

1.11.3 (2020-09-17)

  • (Apollon77) make sure initialize errors do not crash adapter (Sentry IOBROKER-SAYIT-N)

1.11.2 (2020-08-08)

  • (Apollon77) catch errors in MDNS discovery (Sentry IOBROKER-SAYIT-E)

1.11.1 (2020-08-06)

  • (Apollon77) handle errors from process spawn better (Sentry IOBROKER-SAYIT-D)

1.11.0 (2020-08-02)

  • (Apollon77) Move the generated mp3 file to an own directory in iobroker-data instead of inside node_modules (Hopefully not breaking)
  • (Apollon77) Change the file writing to use Sync methods to make sure they cannot run in parallel

1.10.2 (2020-07-19)

  • (Apollon77) Crash case prevented (Sentry IOBROKER-SAYIT-8)

1.10.1 (2020-07-16)

  • (Apollon77) Handle edge cases and prevent crashes (Sentry IOBROKER-SAYIT-4, IOBROKER-SAYIT-6)
  • (Apollon77) try to get caching working again for Yandex

1.10.0 (2020-07-07)

  • (algar42) GUI updated to fill drop-downs correctly. Premium voices added to Yandex.Cloud engine

1.9.8 (2020-06-11)

  • (Apollon77) fixed error handling on file copy

1.9.7 (2020-06-11)

  • (algar42) tts.ogg state added for ogg file type

1.9.6 (2020-05-24)

  • (bluefox) Showed names of SONOS devices

1.9.4 (2020-05-11)

  • (Apollon77) Fix Blockly
  • (Apollon77) Update dependencies

1.9.3 (2020-04-24)

  • (bluefox) Fixed blockly with missing languages

1.9.2 (2020-04-21)

Changed type of top-level object to "meta" in order to comply with js-controller v3

1.9.1 (2020-03-12)

  • (foxriver76) removed usage of adapter.getMessage

1.9.0 (2019-11-06)

  • (algar42) Output file extension is changed dynamically based on the engine selected

1.8.2 (2019-07-11)

  • (bluefox) Web server URL will be updated if web server was updated

1.8.1

  • Add Ukrainian Google Language

1.8.0 (2018-12-04)

  • (bluefox) Priority for the text was added

1.7.1 (2018-09-19)

  • (BuZZy1337) fixed error in Blockly-Block

1.7.0 (2018-06-08)

  • (bluefox) Ivona removed
  • (bluefox) Error was fixed by upload of file to FTP
  • (bluefox) admin3

1.6.8 (2018-04-11)

  • (BuZZy1337) Generate separate mp3 files for each instance.
  • Fixes Issue#34
  • (BuZZy1337) Always upload mp3 files to the state sayit.X.tts.mp3

1.6.7 (2018-02-05)

  • (Apollon77) Remove unneeded logging
  • (bondrogeen) Admin3 Fixes

1.6.6 (2017-11-27)

  • (angelnu) Wait for a Google Home announcement to complete

1.6.5 (2017-11-04)

  • (bluefox) Fix cloud .pro

1.6.4 (2017-10-18)

  • (bluefox) Fix system commands

1.6.3 (2017-10-04)

  • (bluefox) Code refactoring
  • (bluefox) Add Google Home as output
  • (bluefox) Remove ivona because not more supported

1.5.2 (2017-03-09)

  • (bluefox) Catch error if some directory in mp3 folder

1.5.1 (2017-02-15)

  • (bluefox) Fix blockly language

1.5.0 (2017-01-27)

  • (DarkChaos) Add AWS Polly as source
  • (bluefox) Add cloud as a source

1.4.0 (2017-01-16)

  • (bluefox) fixed install problem
  • (bluefox) add PicoTTS as a source

1.3.3 (2017-01-13)

  • (bluefox) show only installed instances in blockly

1.3.2 (2017-01-10)

  • (angelnu) changes for new chromecast tts

1.3.1 (2016-12-27)

  • (bluefox) small fixed of config dialog
  • (AirKing555) Fix Volume change

1.3.0 (2016-12-20)

  • (instalator) add mpd

1.2.1 (2016-10-31)

  • (bluefox) Fix cache

1.2.0 (2016-10-28)

  • (bluefox) Finish sayit

1.1.3 (2016-10-24)

  • (bluefox) Fix changing of engine

1.1.2 (2016-10-20)

  • (bluefox) Add omxplayer option

1.0.1 (2016-10-12)

  • (bluefox) support for blockly

1.0.0 (2016-05-14)

  • (bluefox) Make the type of mp3 as file

0.3.16 (2015-12-26)

  • (Vegetto) Support for Chromecast devices

0.3.16 (2015-12-26)

  • (bluefox) enable play of mp3 files from disk

0.3.15 (2015-11-10)

  • (bluefox) fill default settings by first start

0.3.14 (2015-11-01)

  • (bluefox) fixed error with sayItWindows

0.3.13 (2015-10-27)

  • (bluefox) fixed error with sayItSystem

0.3.12 (2015-10-06)

  • (bluefox) fixed error if received mp3 file is too short
  • (bluefox) try to implement cache datapoint (you can use sayit.0.tts.cachetext to create cache for phrases and use sayit without internet)

0.3.11 (2015-08-03)

  • (bluefox) change google requests from http to https

0.3.10 (2015-07-26)

  • (bluefox) add new voice Russian-Maxim
  • (bluefox) fixed error with mp24ftp

0.3.9 (2015-07-09)

  • (bluefox) fixed error by mediaplayer24

0.3.8 (2015-06-09)

  • (bluefox) make the volume for announcement configurable
  • (bluefox) make the command for "system" configurable

0.3.7 (2015-05-28)

  • (bluefox) fixed volume for an announcement
  • (bluefox) support for play files from internal filesystem, like /sayit.0/tts.userfiles/myGong.mp3

0.3.6 (2015-03-24)

  • (bluefox) fixed error with volume by sonos

0.3.5 (2015-03-22)

  • (bluefox) fixed error in an announcement

0.3.4 (2015-03-20)

  • (bluefox) fixed error in an announcement

0.3.3 (2015-03-20)

  • (bluefox) enable announcement

0.3.2 (2015-03-16)

  • (bluefox) clear cache if engine changed

0.3.1 (2015-03-15)

  • (bluefox) fixed small error with log

0.3.0 (2015-03-08)

  • (bluefox) add ivona/Amazon voices

0.2.2 (2015-03-08)

  • (bluefox) fixed error by buffering of non-generated texts.

0.2.1 (2015-03-07)

  • (bluefox) fixed error by buffering of non-generated texts.

0.2.0 (2015-03-02)

  • (bluefox) add yandex-russian support

0.1.0 (2015-03-02)

  • (bluefox) queue texts

0.0.1 (2015-02-06)

  • (bluefox) initial commit

License

The MIT License (MIT)

Copyright (c) 2014-2024, bluefox [email protected]

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

iobroker.sayit's People

Contributors

airking555 avatar algar42 avatar angelnu avatar anunezde avatar apollon77 avatar bondrogeen avatar buzzy1337 avatar darkchaos avatar dependabot[bot] avatar eistee82 avatar foxriver76 avatar germanbluefox avatar instalator avatar jey-cee avatar johnnybyzhang avatar klein0r avatar larsdecker avatar ldittmar81 avatar lgtm-migrator avatar mccrossen avatar mcm1957 avatar neopholus avatar om2804 avatar paul53 avatar sbormann avatar schmakus avatar t4qjxh8n avatar thewhobox avatar unclesamswiss avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

iobroker.sayit's Issues

SayIt - Objekte - Werte Feld lässt sich mit Admin 3.1.4 nicht beschreiben

Das Wertefeld in Admin 3.1.4 lässt sich beim Sayit Adapter - Text nicht beschreiben.
Im Wertefeld für die Volume gibt es keine Probleme.
In den Einstellungen für die Text Zeile ist der Haken für Lesen und Editieren gesetzt (Standard Einstellung)

*** Fehlerbeschreibung auf Admin 3.1.4 aktualisiert ***
*** Ich verwende SayIt Adapter v1.6.6 ***

Getestet mit
Chrome 63.0.3239.132
IEdge 41.16299.15.0
FireFox 58.0 (64-Bit)

image

image

sayit >1.6.7 und MediaPlayer24 nicht FTP

Seid 1.6.8 erfolgt keine Sprachausgabe mehr über MediaPlayer24. Betroffen ist die nicht FTP Ausgabe.
Ich konnte folgende Fehlermeldung finden:
2018-06-08 11:18:31.345 - �[32minfo�[39m: sayit.3 saying: Sprich einen Text zu mir! 2018-06-08 11:18:31.345 - �[31merror�[39m: sayit.3 uncaught exception: callback is not defined 2018-06-08 11:18:31.345 - �[31merror�[39m: sayit.3 ReferenceError: callback is not defined at uploadToStates (C:\ioBroker\node_modules\iobroker.sayit\lib\speech2device.js:31:17) at sayItMP24 (C:\ioBroker\node_modules\iobroker.sayit\lib\speech2device.js:234:9) at sayIt (C:\ioBroker\node_modules\iobroker.sayit\main.js:399:17) at Adapter.<anonymous> (C:\ioBroker\node_modules\iobroker.sayit\main.js:36:13) at emitTwo (events.js:106:13) at Adapter.emit (events.js:191:7) at Immediate.<anonymous> (C:\ioBroker\node_modules\iobroker.js-controller\lib\adapter.js:3429:38) at tryOnImmediate (timers.js:645:5) at processImmediate [as _immediateCallback] (timers.js:617:5)

Error: Null when Sonos was off

Hi!
I've seen "Error: null" from sayit in my log file. I figured out, that this happend when Sonos was off and doesn't play anything but sayit want's to say something. Normaly sayit saves the state and restarts the state after the sayit file is over. But because there was nothing played before sayit file there comes an error: null.

Datenpunkt für gecachetes File

Zur Weiterverarbeitung wäre es nett den pfad zur gecachten Datei als Datenopunkt zu haben. Man könnte damit z.B. die Ansage per Telegram versenden.

Jetzt geht nur:
sendTo('telegram.0', '/opt/iobroker/cache/e537bf069d292476aaac8f2c9568e955.mp3');

Schöner wäre:
sendTo('telegram.0', getState ("sayit.0.tts.cachedfile"));

Volume control not working

I am using version 1.7.0 of sayit and browser as output channel.
The playback is using an Android tablet with fully as browser.
What I notice is that the volume control doesn't work at all, it always plays at max. no matter if I set the volume globally or directly in the output.

double output / volume ignored chromecast

if a anouncement is set the text will be played twice.

the adapter seems to hook the wrong datapoint for the volume of the chromecast.
it sets the player volume, not the volume under status, so the text will be at the same volume regardless what you put into the volume argument of sayit.

Please add your adapter to ioBroker.discovery

I am an automatic service from ioBroker that searches adapters and makes suggestions.

I noticed that your adapter is not integrated in the ioBroker.discovery. Using the Discovery adapter, ioBroker can automatically find devices or suggest services to the user for installation. If possible I would live to see your adapter added there.

Some adapters have already been added and you can use them as blueprints. See: https://github.com/ioBroker/ioBroker.discovery You need to fork this project and then create a PR for your adapter to be added.

Basically the plugins can do HTTP calls, UDP discovery, MDNS, UPNP and will iterate over all devices found by IP scan and check local serial ports. If you want you can also add new discovery methods but please try to do that with at least dependencies as possible.

Then create one file under lib/adapters for your adapter to implement the detection and proposal of an instance to the user.

On questions, the other developers will support in the forum or via GitHub issues too.

If no detection is possible, simply close this issue and I won't bother you again. ;-)

Thanks,
your automatic adapter checker.

Sayit and Sonos: Web instance and device cannot be selected in config dialog

Problem: After selecting "Sonos" no devices or web instance can be selected, i.e. no devices or instances are shown.

Additional informations on installed adapters:

Web server 2.4.0
Sonos 1.7.4
SayIt 1.7.0 or 1.6.8 (both do not work)
Admin3
Js-controller 1.4.2
iobroker running on Windows 10

Installing SayIt 1.6.7 solves the problem, devices and instances can be selected. This version seems to use the old Admin configuration dialog.

upgrade von 1.6 auf 1.7 ohne Funktion

Nach der Upgrade auf 1.7 kommt dieser Fehler im Log

Cannot upload file "/opt/iobroker/node_modules/iobroker.sayit/sayit.0.say.mp3" to state: Error: ENOENT: no such file or directory, open '/opt/iobroker/node_modules/iobroker.sayit/sayit.0.say.mp3'

Schreibrechte liegen vor.

Amazon AWS Vicki

Hi!

Is it possible to add German "Vicki" as AWS Polly voice? Vicki is available as voice in AWS console.

dont work sayit.0.tts.userfiles

Used to work well. I write /sayit.0/tts.userfiles/domofon.mp3
{
"common": {
"name": "Gong files",
"role": "meta.user"
},
"native": {},
"acl": {
"object": 1636,
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator"
},
"_id": "sayit.0.tts.userfiles",
"type": "meta"
}

Cooldown time after usage?

Hey, im using sayIt with PicoTTS setup on my Raspberry Pi. Generally the setup works...
But i'm facing an issue i dont understand. When i manually set a text in the objects-tab in iobroker, the first time everythings works still fine and the text will be spoken via sonos.
But when i edit the field again right after text was spoken, it seems like that there is a sort of "cooldown time". Within 30 seconds (i measured the time) i can change the text as often as i want, but it will not be spoken via sonos.
But when i change the text after 31 seconds, it works again!
So, for me it looks like that there is a setting or something like that.
Can you tell me whats happening there?
The iobroker log shows no errors... its telling me that he sends the sound-file to sonos but he dont

Caching in Yandex Russian does not work.

Equal messages are written to the cache. Files are not used from the cache.

log-
2020-01-12 10:53:51.242 - .[32minfo.[39m: sayit.0 (173990) saying: 23:00
2020-01-12 10:53:51.851 - .[32minfo.[39m: sayit.0 (173990) Copied file "/opt/iobroker/node_modules/iobroker.sayit/lib/../sayit.0.say.mp3" to "/opt/iobroker/cache/686ed27b3ef3efad9c53409a4
b864646.mp3"
2020-01-12 10:53:54.950 - .[32minfo.[39m: sayit.0 (173990) saying: 23:00
2020-01-12 10:53:55.536 - .[32minfo.[39m: sayit.0 (173990) Copied file "/opt/iobroker/node_modules/iobroker.sayit/lib/../sayit.0.say.mp3" to "/opt/iobroker/cache/686ed27b3ef3efad9c53409a4
b864646.mp3"
2020-01-12 10:53:58.800 - .[32minfo.[39m: sayit.0 (173990) saying: 23:00
2020-01-12 10:53:59.349 - .[32minfo.[39m: sayit.0 (173990) Copied file "/opt/iobroker/node_modules/iobroker.sayit/lib/../sayit.0.say.mp3" to "/opt/iobroker/cache/686ed27b3ef3efad9c53409a4
b864646.mp3"
2020-01-12 10:54:00.001 - .[32minfo.[39m: javascript.0 (1940) script.js.Testt.ParserFile+Voda: звук-- false
2020-01-12 10:54:02.760 - .[32minfo.[39m: sayit.0 (173990) saying: 23:00

add Polish language

in engines.js please add:

"pl": {name: "Google - Polski", engine: "google", params: []}

[feature] IP of web.0

I'd like to enter the external IP manually. I'm running ioBrocker in a docker container. So the adapter just display the internel docker IP, not the extern one.

Volker

Multiple google home => wrong assignment

I got 2 google home mini which I want to address seperatly.

image
image

image

Both speakers say "Dies ist ein Test von Google Home null"
image

Both speakers say "Dies ist ein Test von Google Home eins"
image

The problem is that both mp3-files have the same content:

http://192.168.178.56:8082/state/sayit.0.tts.mp3
http://192.168.178.56:8082/state/sayit.1.tts.mp3

althouth the ttl text is different:

de;40;Dies ist ein Test von Google Home eins
de;40;Dies ist ein Test von Google Home null

Download and rename to just *.mp3
sayit 0 tts mp3
sayit 1 tts mp3

My guess is that both instances use the same mp3 file .. maybe add the instance id (0 or 1) to the filename

image

Unable to install

I just started with ioBroker today but this sounds just wrong:

$ ./iobroker add sayit
npm install iobroker.sayit --production --prefix "/opt/iobroker" (System call)
gyp WARN EACCES user "root" does not have permission to access the dev dir "/root/.node-gyp/6.13.1"gyp WARN EACCES attempting to reinstall using temporary dev dir "/opt/iobroker/node_modules/authenticate-pam/.node-gyp"

../authenticate_pam.cc:30:31: fatal error: security/pam_appl.h: Datei oder Verzeichnis nicht gefunden #include <security/pam_appl.h>
                               ^
compilation terminated.

make: *** [Release/obj.target/authenticate_pam/authenticate_pam.o] Fehler 1
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2gyp ERR! stack     at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23)

gyp ERR! stack     at emitTwo (events.js:106:13)gyp ERR! stack     at ChildProcess.emit (events.js:191:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:219:12)
gyp ERR! System Linux 4.9.59-v7+

gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"gyp ERR! cwd /opt/iobroker/node_modules/authenticate-pam
gyp ERR! node -v v6.13.1
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok 

npm
 WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/authenticate-pam):npm WARN optional
 SKIPPING OPTIONAL DEPENDENCY: [email protected] install: `node-gyp rebuild`npm WARN 
optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1
host.ioBroker-Pi install adapter sayit
npm install --production (System call) in "/opt/iobroker/node_modules/iobroker.sayit"
gyp
 
WARN EACCES
 user "root" does not have permission to access the dev dir "/root/.node-gyp/6.13.1"gyp WARN EACCES attempting to reinstall using temporary dev dir "/opt/iobroker/node_modules/iobroker.sayit/node_modules/mdns/.node-gyp"

Lautstärkenanpassung greift nicht mehr

"de;70;dies ist ein Text"

Die Lautstärke (hier 7=) greift nicht mehr.

Der Text wird immer mit der vollen Lautstärke abgespielt, egal welche Lautstärke übergeben wird.
Der Ankündigungsgong verändert sich von der Lautstärke her.

Getestet mit dem Sonso Adapter.

V1.6.0 generates errors and stops

Below is a log and the error is
ReferenceError: path is not defined at Text2Speech.sayItGetSpeech (/opt/iobroker/node_modules/iobroker.sayit/lib/text2speech.js:479:36)

I get this on all instances where I installed 1.6.0 over older 1.5.x

`host.opi 2017-09-25 15:09:59.099 error instance system.adapter.sayit.0 terminated with code 0 (OK)
sayit.0 2017-09-25 15:09:59.070 info terminating
sayit.0 2017-09-25 15:09:59.046 info stopping...
sayit.0 2017-09-25 15:09:59.042 error at Timer.listOnTimeout (timers.js:214:5)
sayit.0 2017-09-25 15:09:59.042 error at tryOnTimeout (timers.js:250:5)
sayit.0 2017-09-25 15:09:59.042 error at ontimeout (timers.js:386:11)
sayit.0 2017-09-25 15:09:59.042 error at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3083:38)
sayit.0 2017-09-25 15:09:59.042 error at Adapter.emit (events.js:191:7)
sayit.0 2017-09-25 15:09:59.042 error at emitTwo (events.js:106:13)
sayit.0 2017-09-25 15:09:59.042 error at Adapter. (/opt/iobroker/node_modules/iobroker.sayit/main.js:38:13)
sayit.0 2017-09-25 15:09:59.042 error at sayIt (/opt/iobroker/node_modules/iobroker.sayit/main.js:398:21)
sayit.0 2017-09-25 15:09:59.042 error at Text2Speech.sayItGetSpeech (/opt/iobroker/node_modules/iobroker.sayit/lib/text2speech.js:479:36)
sayit.0 2017-09-25 15:09:59.042 error ReferenceError: path is not defined
sayit.0 2017-09-25 15:09:59.041 error uncaught exception: path is not defined
sayit.0 2017-09-25 15:09:58.967 info saying: helligkeit hat 75
sayit.0 2017-09-25 15:07:53.473 info All files uploaded
sayit.0 2017-09-25 15:07:53.374 info Upload announce mp3 files
sayit.0 2017-09-25 15:07:53.358 info starting. Version 1.6.0 in /opt/iobroker/node_modules/iobroker.sayit, node: v6.11.3
sayit.0 2017-09-25 15:07:53.242 info States connected to redis: 127.0.0.1:6379
host.opi 2017-09-25 15:07:50.851 info instance system.adapter.sayit.0 started with pid 19853
host.opi 2017-09-25 15:07:20.814 info Restart adapter system.adapter.sayit.0 because enabled

`

not working

No idea why .. doesn't work (anymore) .. now playing never true .. mp3 rendered perfectly well .. sonos adapter correctly configured .. web adapter available. Quite frustrating :-(

SayIt 1.7.0 ->cannot upload file

Hatte mit der neuen Version heute morgen folgende Fehler im log
sayit.0 Cannot upload file "/opt/iobroker/node_modules/iobroker.sayit/lib/../sayit.0.say.mp3" to state: Error: ENOENT: no such file or directory, open '/opt/iobroker/node_modules/iobroker.sayit/lib/../sayit.0.say.mp3'
Gruß
Johnny

Playback error if device is set to "All"

Regarding https://forum.iobroker.net/viewtopic.php?f=20&t=10097&p=141785#p141783

Playback Device (for example Chromecast) in the sayit Settings is set to "All".
But sayit dont know how to handle "All".

I think we should maybe loop trough all (in this example) Chromecast Devices with the Announcement if the Setting is set to "All".
Something like
if adapter.config.cDevice == 'All' then get all chromacast devices - put it in an array and loop trough all Devices with the Announcement.

Hopefully that is possible without any significant delay of the output on the devices.

screenshot - 11 04 2018 14_00_23

Please check ioBroker.sayit with js-controller 2.0

Hi,

the new js-controller 2.0 will come into latest repository in the next days and we want to make sure that all adapters are working well. We already did a 2 weeks Beta test and so some adapter were aleady checked and some needed slight adjustments.

You can find more information in ioBroker/ioBroker.js-controller#482 and in the ioBroker Forum. If you have more technical questions please write in the referenced issue or in the Developer thread please. General questions are best in the genral thread.

Please update your systems to js-controller 2.0 and check your adapter.

Please close this issue once you have checked your adapter or received successfull reports from users.

Thank you very much for your support. Please contact us in the other Threads or Forum on any question.

sayit 1.7.0 gong.mp3

default
Нет возможности выбрать файл извещения. Только -none

sayit not saying

Quite frankly I have no idea what happend .. but I get no output on my Sonos anmore. I see the blockly running well and the command being triggered .. but nothing is ouput. Actually it worked for a few days and then it stoppen. I already reinstalled the adapter .. tried Sonos All and specific IP .. modified the blockly to set the Sonos audio volume .. no output. What could this be?

sayit.0 | 2018-10-02 19:34:27.760 | info | Set "sonos.0.root.192_168_178_xx.tts: 70;http://192.168.178.30:8082/state/sayit.0.tts.mp3
sayit.0 | 2018-10-02 19:34:27.700 | info | saying: Es klingelt an der Tür

Think about to fix the issues found by adapter checker

I am an automatic service that looks for possible errors in ioBroker and creates an issue for it. The link below leads directly to the test:

https://adapter-check.iobroker.in/?q=https://raw.githubusercontent.com/ioBroker/ioBroker.sayit

  • [E150] No common.connectionType found in io-package.json
  • [E152] No common.dataSource found in io-package.json
  • [E605] No actual year found in copyright. Please add "Copyright (c) 2014-2021 bluefox [email protected]" at the end of README.md
  • [E701] No actual year found in LICENSE. Please add "Copyright (c) 2015-2021 bluefox [email protected]" at the start of LICENSE
  • [E812] file test/ found in repository, but not found in .npmignore
  • [E814] file appveyor.yml found in repository, but not found in .npmignore
  • [E815] file .travis.yml found in repository, but not found in .npmignore

Thanks,
your automatic adapter checker.

MediaPlayer24 geht nicht mehr

Hatte seit Monaten eingestellt:
MediaPlayer24 und die IP des Tablets.

Jetzt geht dies nicht mehr.
Als Fehlermeldung kommt:
Cannot upload file "C:\ioBroker\node_modules\iobroker.sayit\sayit.0.say.mp3" to state: Error: ENOENT: no such file or directory, open 'C:\ioBroker\node_modules\iobroker.sayit\sayit.0.say.mp3'

Was wurde geändert?
Oder was mich ich tun damit dies wieder funktioniert?

Add Alexa2 support

Add support to forward speak to Alexa2 including setting and re-setting volume

cosmetical issues

Hi, using Chrome as Browser and displaying the settings for SayIt Instances i found some cosmetical issues.

Please see attached Screenshots.

Something is overlapping and using Google (Sayit.0) their is no description for the "suchen" field.

sayit_0
sayit_1

Wrong pronounciation

I switched Sayit to AWS Polly Marlene and have issues when it tries to say numbers like temperatures and humidities.
Example:

  • "es ist 1.2 °C" will be pronounced as "Es ist erste zwei Grad Celsius"
    That is simply wrong and nobody understands that. I should be "Es ist eins komma 2 Grad Celsius" or at least "Es ist eins punkt zwei Grad Celsius"
  • "es ist 3.14 °C" will be pronounced as "es ist dritte vierzehn Grad Celsius", which is wrong as well.
  • It is getting worse when it tries to say "es ist 3.141 °C". This will result in "Es ist dreitausend einhundert einundvierzig Grad Celsius", which is completely BS.
  • It is not getting better with more digits: "es ist 3.1415 °C" results in "es ist dritter eintausend vierhundert fünfzehn Grad Celsius"

That is completely unusable.

Ralf

sayit and sonos/audible issues

Overall the experience with sayit in combination with Sonos is buggy. 2 important issues:

  1. Sometimes, after a while, Sonos will stop speaking and in the playlist many "sayit.0" entries pile up

  2. When playing Audible previously, triggering a sayit output, instead of speaking, Audible starts the last audiobook from the beginning AND it is impossible to stop. Everytime I press the pause button in the Sonos app / Controller it just starts again...

Error: Load failed

Any idea where this error might come from? "Load failed" doesn't even exist in the github src-code.

sayit.0 | 2018-03-31 01:07:41.400 | error | Error: Load failed
-- | -- | -- | --
sayit.0 | 2018-03-31 01:07:41.395 | error | Error: Load failed
sayit.1 | 2018-03-31 01:07:41.366 | error | Error: Load failed
sayit.1 | 2018-03-31 01:07:41.360 | error | Error: Load failed
sayit.1 | 2018-03-31 01:07:38.389 | info | saying: Alarm! Da ist etwas an der Terrassentür los!
sayit.0 | 2018-03-31 01:07:38.391 | info | saying: Alarm! Da ist etwas an der Terrassentür los!

Quiet periods

Hi, how do I facilitate a short quiet period befor and after my say-text .. e.g. the sonos is playing and I want to slip a text in between .. it would be good to have sort of a mute for a second or two before and may be after the message.

Yamaha musiccast

Guten Tag,
besteht die Möglichkeit o.g. AV Receiver hier einzubinden ?
mfg
Dieter

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.