supergiovane / node-red-contrib-tts-ultimate Goto Github PK
View Code? Open in Web Editor NEWThis node transforms a text into a speech audio. You can hear the voice natively through Sonos or external players.
License: MIT License
This node transforms a text into a speech audio. You can hear the voice natively through Sonos or external players.
License: MIT License
Goodday, think I have an issue with the latest version, hope you can have a look...
Describe the bug
I have an "ownfile" node in front with an mp3. Before, the mp3 file was playing fine, now, TTS ultimate just announces the word "mp3" to the sonos speakers
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Play the MP3 file of the ownnode
TTS-Ultimate Version
Are you running node-red behind homematic, docker or anything similar?
Additional context
Works fine in previous version (might be view versions back)
In latest build, play-state (paused/playing) of sonos is not respected anymore.
When sonos is paused and a tts is played, sonos starts playing the queue after that (while it should just return to pause)
I created an access key and secret key. created the config and put the info in, and it always returns this:
"ttsultimate-config: Error getting polly voices CredentialsError: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1"
Dear Supergiovane,
I am a user of the previoius sonospollytts which has been depreciated and is beging extended and contiuned under tts Ultimate. Unformtuantely, I am not able to get the node up an running as Sonos cannot connect to the Folder to play the downloaded mp3.
The old node sonospollytts still worls without any connection problem so I am sure it has to do something with the node or my misconfigurations.
TTS-Ultimate Version
1.0.36
Node-Red is being operated on a VM Ubuntu 20.04 machine
Thank you very much as I am more than happy to use the new node.
Best reagrds
Patrick
Trying to upload files with the Ownfile node does not seem to work? After selecting, the file immediately dissappears and cannot be found in the dropdown list.
Coming from SonosPollyTTS if that makes any difference :)
How can I troubleshoot best?
I have made an setup. It found the sonos. The status is recieved. But when I want to play (tts or mp3) an error is shown in the Sonos app:
Can't 'tts.mp3?f........' play. The track isn't coded correctly. (Error translated from dutch to english)
I hope you can help
Hallo
I'm looking for a way to disable the warning message for TTS service that i dont use, as they fill my debug window.
Can a dummy settings be created or another setting where the warnings can be disabled?
Thanks for an awesome project. i Love it!
I have a raspberry matic running. In that raspberrymatic I installed the notered -plugin. I installed the tts-ultimate note and tried it with amazon polly. The requested mp3 - File is on the raspberry but the sonos says when i try to play it "Wiedergabe nicht möglich - Verbindung 172.0.0.1:1980 nicht möglich => it can't connect.
Can you please help me ?
Greetings Michael
Hi Massimo,
do you think it's possible in one of the next versions to integrate a variable "msg.mainplayer" to select the Player via msg?
I would like to use your node in a subflow. Therfore it's neccessary to select the player via the input o the subflow.
BR
Olli
when I send text to a player that is in "paused" state at the time the text is send, it will resume playing whatever it has been playing at the time it was set to "paused"
Hello.
I've been battling with this node for a few days now and can't figure out what I'm doing wrong.
I'm running node red in docker
Port 1980 is forwarded to the IP of the raspberry node-red is running on
1400 is forwarded to IP of my sonos speaker (i have also tried to forward it to the node-red IP)
When i edit the config i get this error: "ttsultimate-config: Error in discovery Error: No device found" but when i manually write IP of my sonos speaker, the node shows "sonos is connected"
So the problem is that when i try to send a message to my sonos speaker, i get an error in sonos app, 'cannot play tts.mp3.blabla.mp3' - could not connect to myip:1980
Could you point me in the right direction with the info provided? else ill me know what you need! thanks
Hello! :)
Is it possible to make a branch that does not need a Sonos speaker, but plays the audio on a raspberry pi instead?
Beside physical audio outputs there also is BT on a raspberry pi.
And there are cheap BT receiver circuits available, it would be great to just play the audio over bluetooth.
Having the cache is great and all the features in this node, but it wants and looks for a Sonos speaker (and I also don't yet know why it needs a server/port open, maybe because of Sonos?).
I did not find anything similar to this node, there only is a wavenet node which needs a Google API key.
Also, the google website https://cloud.google.com/text-to-speech has a lot of voices, having this and bluetooth sound makes it very interesting :o
Best regards!
Nik
Since version 1.0.18 it often happens that the spoken text in Amazon Polly is no longer spoken fluently. Longer pauses can be heard during the voice output. Is this possibly due to the new split function?
Hi,
Trying to play own files via the "ownfile" node but sonos says it cannot play the file because it cannot contact 192,168,0,3:1980 (it should be 192.168.0.3:1980) to be clear, it is looking for 192 comma 168 dot 0 dot 3 instead of 192 dot 168 dot 0 dot 3
How can this happen ?
Hi,
Using ownfile togtether with ttsultimate now, all good, except that after playing an mp3 file, the play status is not restored (music stopped, not resuming)
ps. it is only with the mp3 file of ownfile, when I just add "speech" (via msg.payload string), the problem is not there.
When i pause (from alexa, sonos app or phisical button ) music from radio streaming and sonos is no longer playing it, in the resume phase of tts-ultimate I hear about 200ms of music.
I suppose this happens when queue is in pause and not empty (it happens almost always if you really use sonos system!).
The solution maybe to check at start the state (play/pause) and decide if trigger resume only if the was is play.
Hi,
Thanks for the great plugin, but I noticed that TTS Ultimate does not restore exactly the previous state. For example when I start listening to an online radio station (from the Juke plugin on Sonos) with the use of the Sonos App. And then when I start TTS Ultimate to play something, afterwards the radio station is added as a queue item instead of just playing the station again.
I guess it's related to the way the previous state is captured and played again. I noticed when using group.create.snap than execute TTS and then do a group.play.snap afterwards the original state is played again (without a queue). Maybe this can be done directly in TTS Ultimate?
Mark
Hi, can I use emphasis (SSML) in my message?
I'm using now the Google TTS without authentication version
Thanks!
Salutation (i'll not respond to users that doesn’t wrote at least "Hello")
In ttsultimate as part of a node-red docker config on a rpi 4b
only the ipadres 192.168.20.48 works in the node as node-red-ip
when i use localhost or 127.0.0.1 or a host name is does not work!
I also restarted NR
Expected behavior
I like name resolution to work with or at least 127.0.0.1 or localhost
TTS-Ultimate Version
i use NR 2.1.3
on a docker on a rpi with latest OS
Love this node, working fine for me except when it interrupts music you can hear the volume change on the current playlist just before it reads the message. Also there seems to be quite a delay from when the msg is sent to when it is being played. It's about 8 seconds or so. Anything I can do from my end to speed that up?
Hello,
Thanks for the great node. I use it all the time, but I'm having issues with group announcements.
Describe the bug
I have a function node that sets up the call.
// Set the main player IP and each IP belonging to the player's group
var config= {
setMainPlayerIP:"192.168.1.16",
setPlayerGroupArray:[
"192.168.1.14",
"192.168.1.15",
"192.168.1.17",
"192.168.1.18",
"192.168.1.19",
"192.168.1.21"
]
};
msg.setConfig = config;
return msg;
These are all the Sonos players in my house. This is input into TTS-Ultimate. The problem is that some players will often play music at the TTS volume (music that wasn't playing before), but the message and the hail do not play. The behavior is not consistent. Sometimes it will work everywhere. Other times, only 1 or 2 Sonos players play music instead of the message.
To Reproduce
Steps to reproduce the behavior:
In my instance, I start my "Dinner" flow. This flow first announces it's dinner time, then it sets up lights and music.
Expected behavior
I expect all the players will play the hail and message, and then go back to what they were doing.
Screenshots
If applicable, add screenshots to help explain your problem.
TTS-Ultimate Version
1.0.36
Are you running node-red behind homematic, docker or anything similar?
Node-red is running in docker.
Additional context
I know when I did this directly with the home assistant nodes, I needed to:
If I didn't pause all the players, I would get strange behavior with music and volume.
Hello,
thank you for your pallette.
I hope youn can tell me, how to upload a amp3 file with a message to be said by the Sonos.
Your sample files work, but when I cose a file ti upload I can see for 1-2 seconds the filename next to the upoad button, but then the filename disappers.
Best wishes for X-Mas an thnks in advance
Martin
Hi,
Thanks for the awesome node you created, not sure if it possible, but I have a feature request.
Sometimes I mute my Sonos speaker and forget to unmute them. If I then send a text to it, including volume level, logically no sound comes out of the speaker (case it's muted). Would it be possible to add a function that checks on forehand whether the speaker is muted and then unmute it
Steps to reproduce the behavior:
Expected behavior
An option to unmute a muted speaker
Are you running node-red behind homematic, docker or anything similar?
Node-Red running on Hassio
The palette works great when music is playing, however there are two scenarios where the action doesn't recover well:
TV input
When the Sonos speaker is using the tv input (either through HDMI ARC or line in), this is not resumed when the message has played. In this case, the last played playlist resumes, ignoring the TV input.
Paused queue (no media playing, but playlist is paused)
When the Sonos speaker is currently not in use, but a playlist is paused, this is not restored when the message has played. In this case, the message mp3 becomes the current playlist. When trying to resume the original playlist, it plays back the message again.
Thanks for this palette. Extremely useful and a great solution!
Hi.
if I build an URL like this: http://noderedserver:1980/tts?f=. the nodeRed will completely crash:
25 Jan 18:26:23 - [red] Uncaught Exception:
25 Jan 18:26:23 - ReferenceError: error is not defined
at fine (/data/node_modules/node-red-contrib-tts-ultimate/ttsultimate/ttsultimate-config.js:475:107)
at ReadStream.<anonymous> (/data/node_modules/node-red-contrib-tts-ultimate/ttsultimate/ttsultimate-config.js:461:25)
at ReadStream.emit (events.js:198:13)
Alex
First of all: Great work on making it incredibly easy to get started and broadcast TTS on the Sonos system, well done!
Would it be possible to allow for using Polly's neural TTS? It sounds a lot more natural and would love to use that instead.
Hello!
And congratulations to this powerful and awful node!
I only have a question where to find the cache dir for the amazon aws speech files. I couldn't find.
And just for your information: If text input is too long (e.g. weather forecast), node red crashes, see attached. This prob can be solved easy by splitting the input with the "split" node, e.g. with period or comma as separator to split long text into multiple short texts. Works fine and could be a hint on your documentation.
Best
Guenni
Placed TTS-Ultimate node on flow, double clicked, in config it says add new config, clicked pencil, clicked add. clicked done. In config field i see config, did full deploy. When i try to edit the config, i get the message please save, full deploy. I can't edit the config. What am i doing wrong?
I recently moved my sonos speakers to a separate network. I added a second nic on my node red server that is connected to that network. However, TTS-Ultimate will not discover them. I can input an IP address of one of the speakers and it works fine that way, but i can't use multiple speakers now.
Hi, during the testing with my previous issue I found some debug error messages which occur every time I generate a TTS either via new next or via an existing mp3 file.
The below error messages appear with each TTS announcement. Everything is working fine, despite the below messages.
I can see this error message in the Node-Red Debug-UI.
1st Error:
"ttsultimate: Error STOPSync: upnp: statusCode 500 & upnpErrorCode <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><s:Fault><faultcode>s:Client</faultcode><faultstring>UPnPError</faultstring><detail><UPnPError xmlns="urn:schemas-upnp-org:control-1-0"><errorCode>701</errorCode></UPnPError></detail></s:Fault></s:Body></s:Envelope>"
2nd Error:
"ttsultimate: Error stopping in HandleSend: upnp: statusCode 500 & upnpErrorCode <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><s:Fault><faultcode>s:Client</faultcode><faultstring>UPnPError</faultstring><detail><UPnPError xmlns="urn:schemas-upnp-org:control-1-0"><errorCode>701</errorCode></UPnPError></detail></s:Fault></s:Body></s:Envelope>"
3rd Error:
"ttsultimate: Error SEEKSync: upnp: statusCode 500 & upnpErrorCode <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><s:Fault><faultcode>s:Client</faultcode><faultstring>UPnPError</faultstring><detail><UPnPError xmlns="urn:schemas-upnp-org:control-1-0"><errorCode>701</errorCode></UPnPError></detail></s:Fault></s:Body></s:Envelope>"
My docker-log for Node_red is showing the the above error message as well (here an example):
29 Aug 11:56:59 - [error] ttsultimate: Error SEEKSync: upnp: statusCode 500 & upnpErrorCode <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><s:Fault><faultcode>s:Client</faultcode><faultstring>UPnPError</faultstring><detail><UPnPError xmlns="urn:schemas-upnp-org:control-1-0"><errorCode>701</errorCode></UPnPError></detail></s:Fault></s:Body></s:Envelope>
As mentioned above, everything works fine but these messages appear
======
I'm using node-red-contrib-tts-ultimate 1.0.24 (+latest JS file you sent me) on Ubuntu Docker Node-Red V2.0.1
I have a Sonos-Beam at the TV (this is where I checked for the issues) additionally I have 2xSonos5 and several Sonos1
I'm using the Amazon-Polly TTS (with the default Joanna voice) no other players are defined in the config
I have some Volume issue after resume
This issue is not noticeable when the TTS volume is lower or equal to the Main volume
======
Using node-red-contrib-tts-ultimate 1.0.21 on Docker Node-Red V1.3.5
Hi,
Running node-red in home assistant, when I use this node on a Sonos playing a playlist from Spotify, the Sonos will start playing the next track in the queue after speaking the message, rather than pausing and resuming the current track.
I can get around the issue somewhat by sending a pause command before running the TTS node and then a resume command afterwards.
When I am listening to Pandora and I tell the node to play some content, my Sonos connect loses the current stream and starts to play what is in the queue.
Hi,
I have node red running in a docker container and want to use your TTS ultimate solution for some massages triggered by events. Somehow I do not get the sound to the speaker. I have fixed ip addresses for the Sonos devices as well as for the Raspberry running docker. The status in node red is „connected“ but when I run your demo flow with „hello world“ I hear nothing. Sonos playing music is interrupted. I‘m using google without authentication. Seems the sound file is not available. Do you have any Tipps what I can do? Where should I find the sound files?
Thanks for some insights
Chris
Hi Supergiovane
Thanks for your great Node and it works like a charm.
I have just on little thing that would be very nice. I use your Node for sending my own Files to Sonos in a Alert System. Now it would be a greate Feature when the node has a switch for clearing the queue.
I hope you can spend time for this Change.
I look forward,
Cheers,
Chris
hi
first thanks for the quick including of azure tts
i dont know if there is a bug, but i can't get it to work
on deploying i got this warning:
"ttsultimate.config: Microsoft AzureTTS service disabled. throwIfNullOrUndefined:subscriptionKey" and yes i have pasted a key and westeurope
and when i try to play audio i got thes error:
"ttsultimate: node id: xxx Error Downloading TTS: The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object. Received undefined. THE TTS SERVICE MAY BE DOWN."
i'am pretty sure i'am the problem :) but i hope for a little help
i got the key from "home > cognitive services" and then "Manage keys"
if thats not the correct place, then please point me in the right direction
/DKR
Hi
Is there a way to play a longer text without splitting it ?
using azure tts
/DKR
Hi,
thanks for the great plugin and continuation of the work, I just switched in one of my installations from sonospollytts to here.
** Issue **
When my playlist is empty, somehow the TTS track played (ownfile and normal) gets added to the playlist, or is at least set as the last song played in sonos. So I get some weird echo effect, when playing a second time, or it repeats the original message, when playing a new message right after the first one.
With one song in the playlist this behavior is gone.
Is it possible to handle this "empty playlist" issue, with removing all items from sonos, before playing, e.g. the next tts?
I'm still on sonos version 1. Wether this is causing the issue I can not verify.
Hi, I really like the tts ultimate and use it in our home for announcements.
Unfortunately, when I send a message to a configuration with additional players, the volume for the additional players is not restored. The volume remains at the volume of the announcement.
Additionally, sometimes running tracks are stopped after the announcement and restart from the beginning after selecting "play" in the Sonos app.
Would be great to know what I have done wrong or to get a workaround.
Thanks and best regards
Stefan
Main speaker always plays announcment fully, second speaker added via additional speakers sometimes misses the first 500ms or so, but plays the rest synchronized with the main speaker.
You can hear in the sample added in the attachment as the second speaker chimes in a bit louder.
Hi, first, thanks for this node,
I was using the sonospolly node and I am trying to migrate to this new node but I can't get the node to connect to Amazon Polly.
I enterted my key in the "AWS Access Key" filed, and my secret key in the "AWS Secret Key, when I hit Update, after about 10 seconds I have the following message in the "Voice field" : Error retrieving voices. Credentials errors, missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1
I am running version 12.8.6 of node.js.
I have deployed and restarted node-red but always the same error
Any hints on what I might be doing wrong ?
thanks for the help
It is not supposed to do that. No other projects do not it and i need to disable it. Why did you close the case when this issue was not resovled?
At the monemt im only using Google TTS whitout authentication.
In an attemt to get the logs to disapeer i created a dummy Amazon configuration, but that resoveled in even more logs.
How or where do i disable the logs below? is there some place i configure it? I know im not using the services and i'm fine whit that - just not logs. My other debuging is drawning in these logs.
Do i need to delete the project for it to reset?
30.12.2021 09.07.37
msg : string[60]
"ttsultimate-config 9063d34ebdbb425b: Polly service not used."
30.12.2021 09.07.37msg : string[65]
"ttsultimate-config 9063d34ebdbb425b: Google TTS service not used."
30.12.2021 09.07.37msg : string[74]
"ttsultimate-config 9063d34ebdbb425b: Microsoft AzureTTS service not used. "
30.12.2021 09.07.37msg : string[65]
"ttsultimate-config da48d04635322565: Google TTS service not used."
30.12.2021 09.07.37msg : string[76]
"ttsultimate-config da48d04635322565: Google Translate free service not used."
30.12.2021 09.07.37msg : string[74]
"ttsultimate-config da48d04635322565: Microsoft AzureTTS service not used. "
30.12.2021 09.08.48msg : string[164]
"ttsultimate-config da48d04635322565: Error getting polly voices CredentialsError: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1"
30.12.2021 09.08.49msg : string[60]
"ttsultimate-config 9063d34ebdbb425b: Polly service not used."
30.12.2021 09.08.49msg : string[65]
"ttsultimate-config 9063d34ebdbb425b: Google TTS service not used."
30.12.2021 09.08.49msg : string[74]
"ttsultimate-config 9063d34ebdbb425b: Microsoft AzureTTS service not used. "
30.12.2021 09.08.49msg : string[65]
"ttsultimate-config da48d04635322565: Google TTS service not used."
30.12.2021 09.08.49msg : string[76]
"ttsultimate-config da48d04635322565: Google Translate free service not used."
30.12.2021 09.08.49msg : string[74]
"ttsultimate-config da48d04635322565: Microsoft AzureTTS service not used. "
Hi, Is it possible to overwrite the target sonos (Main-Sonos-Player) with and overwrited via input (like you do it with msg.volume)
Example: msg.player = "Bedroom" or msg.player ="Group: House"
thanks for considering
Hi, i have configured TTS-Ultimate when i inject for example Hello or the hailing sound. The Sonos received it but you hear nothing. The volume is set to '30' after the injection the radio stream will continue.
I just changed my flows to use the new ultimate-node instead of Polly-tts.
The node does work with "Google without authentication" but I do not like the voices and would prefer the AWS ones
My AWS credentials were working fine with Polly-tst. However, im getting below error messages when using AWS credentials in the ultimate node
"ttsultimate-config: Error getting polly voices CredentialsError: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1"
Please advise on where I have to update this in my setting.
I'm running the latest Node-Red in Ubuntu-Docker.
thanks for your help
Hi
i hope you can and will add support for microsoft tts https://azure.microsoft.com/en-us/services/cognitive-services/text-to-speech/
/DKR
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.