Hi,
I'm wondering if is it possible, using the audioout node, to reproduce TTS not on all connected client but only on specific one.
For example I want to play TTS when I cange tab on menu, but only for the client that made this action and not in every client showing the same tab.
Please, let me known.
Thanks in advance.
Dario.
It should be possible but you need the socket id which you should be able to capture from either the control node or from some interaction from the browser. If you include the socket id in the sent message, it should only go to that client.
Just note that the socket id can change more often than you think. It will change, for example, if the client temporarily loses the websocket connection.
I've got the sockeitid in msg, it's recognized every time by dashboard ui.
But it seems that differently to other nodes (I've seen on source code) ui_audio doesn't pass on emit socketid.
I've try to change it but nothing seems to change.
I'm looking now in ui.js...
That may be a bug, I'm sure that I read in the docs for Dashboard that the audio node is supposed to respect the socket id.
1 Like
I posted an issue on github.
I'm really confused because I'm unable to understand is this is really an issue or if it's me that misunderstand the functionality.
In my head everything should be works as in frontend.
Now fixed in master. v3.5.0
not released to npm yet.
2 Likes
Definitely a bug:
opened 02:24PM - 23 May 23 UTC
closed 07:37AM - 24 May 23 UTC
bug
"DiscIaimer": I post previously on nodered forum, here:
[https://discourse.no… dered.org/t/dashboard-ui-audiout-is-it-possible-play-tts-only-on-specific-socketid-client/78637](https://discourse.nodered.org/t/dashboard-ui-audiout-is-it-possible-play-tts-only-on-specific-socketid-client/78637)
but I'm unable to understand if this is a bug, or something missing or whatever.
So: **really sorry if this post may be inappropriate.**
If this is inappropriate, please consider this post null.
### What are the steps to reproduce?
After a button click on ui or <whatever> event, I passed in msg.payload the text to reproduce by TTS to AudioOut node.
Please note tha inside msg there's the socketid, and its value is correct.
### What happens?
if I've got 2/3 computers connected, I noticed that every one play the same audio.
### What do you expect to happen?
if there is on msg the socketid valorized, the audio should be played only on correct client (in my example the same that press the button,or definitely plays the "action")
### Please tell us about your environment:
- [ ] Node-RED-Dashboard version: 3.4.0
- [ ] Node-RED version: 3.0.2
- [ ] node.js version:
- [ ] npm version:
- [ ] Platform/OS: Linux(docker container)
- [ ] Browser: Chrome.
Fixed on 3.5
EDIT: sorry @dceejay I did not see your post just before the mine
One question @dceejay : I see at code the use of emitSocket, but what happens in socketid doesn't exist on "msg"?
It should be great if the audio played on every client in this case (just like now).
system
Closed
23 June 2023 07:49
10
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.