jitsi-meet
jitsi-meet copied to clipboard
Only one user can activate subtitles
Description:
Only one moderator can receive translated subtitles from other participants. Other participants and delegated moderators can't toggle their subtitles/choose a language.
Only the moderator who clicked subtitles first can see the translated transcripts from other people (closed captions).
Steps to reproduce:
-
Set up
docker-jitsi-meet-stable-7648-4
-
Create and join a meeting
-
At toolbar, find subtitles and choose a language
-
Invite another participant and let them speak
-
Notice that you can receive translated transcripts from their voice input, while the other participant cannot choose a language
-
Grant the said participant moderator status
-
As the other participant, find subtitles and choose a language
-
Notice that when the other moderator speaks, you don't receive translated transcripts
Actual behavior:
Other users must be able to enable translation and receive translated transcripts
Server information:
- Jitsi Meet version:
docker-jitsi-meet-stable-7648-4
- Operating System:
Docker desktop 4.10.1 (82475)
Client information:
-
Browser / app version:
-
Operating System:
Additional tests
I compiled a custom jitsi-meet
where the subtitles button always shows
Then I integrated the build/image to docker-jitsi-meet-stable-7648-4
react/features/subtitles/components/AbstractClosedCaptionButton.js
..still doesn't work for other participants other than the first moderator who enabled subtitles
As a newbie, I am eager to be given guidance/instructions as to how to support/fix this feature.
@saghul, thank you very much!
Hi, I am having the exact same issue, when using the VOSK trancription server. Are you using the Google transcription API or another service? I'm not sure if this comes from Jigasi or jitsi-web.
Thanks in advance
IIRC this is intentional. Once the moderator enables CC, the guests will also see the CC button and they can toggle them on. Is this not what you observe.
Thank you for the quick reply @saghul
Is this not what you observe
No, when the moderator enables CC, the guest does not see the CC button and does not see the subtitles either. If I promote the guest to the moderator role, they will have the CC button and the subtitles will show up.
I found this bit of code which was supposed to fix a similar issue. However, if visible
already exists, isn't the Boolean(transcription?.enabled && (isLocalParticipantModerator(state) || isTranscribing))
never executed?
Hi, I am having the exact same issue, when using the VOSK trancription server. Are you using the Google transcription API or another service? I'm not sure if this comes from Jigasi or jitsi-web.
Thanks in advance
I'm using the Google transcription API. I'm quite convinced that the problem lies somewhere in jigasi, but I have yet to understand the code.
Right now we're testing if using http://jaas.8x8.vc this is no longer a problem.
IIRC this is intentional. Once the moderator enables CC, the guests will also see the CC button and they can toggle them on. Is this not what you observe.
My bad, I've updated the label: Only one user can activate subtitles -> Only one user can see translated captions
Only the first participant who activated subtitles (most likely moderator) can actually see translated captions on their screens.
Thanks for the reply!
Only the first participant who activated subtitles (most likely moderator) can actually see translated captions on their screens.
I am having the same issue as well. Once the moderator has activated the subtitles, do the regular participants see the "CC" button?
Also, it seems to be working on the Linto AI jitsi demo: https://jitsi.linto.ai/ I believe they are also using Jigasi, but I don't know which version.
Sorry, I misspoke. It was almost correct. This is what should be happening:
- Moderator enables subtitles: the button shows for everyone, and it's ON
- The "TR" label should be visible for all
- Non-moderators can stop it for themselves
If you are not seeing this, what versions of everything did you deploy?
Moderator enables subtitles: the button shows for everyone, and it's ON
In my case, subtitles show only for the moderator, and the button doesn't show for anyone that is not a moderator. Subtitles are hidden as well for guests.
- jitsi/web stable-7648-4
- jitsi/jvb stable-7648-4
- jitsi/jicofo stable-7648-4
- jitsi/prosody stable-7648-4
- jigasi latest
- vosk latest
After some analysis, it looks like the issue comes from the Jigasi Transcriber joining as a visible participant. Related code.
I am having issues setting up a hiddenDomain
for the transcriber.
@devByGelu do you think your issue is caused by a similar thing?
I am having the same issue as well. Once the moderator has activated the subtitles, do the regular participants see the "CC" button?
They don't IIRC. I'll try to revisit this issue this weekend.
After some analysis, it looks like the issue comes from the Jigasi Transcriber joining as a visible participant. Related code.
I am having issues setting up a
hiddenDomain
for the transcriber.@devByGelu do you think your issue is caused by a similar thing?
I couldn't say for sure. Do you need help getting the subtitles button to "artificially" show up for other participants? @charles-zablit
Do you need help getting the subtitles button to "artificially" show up for other participants? @charles-zablit No problem, thanks :)
I've managed to fix the issue. You have to specify a hiddenDomain
in jitsi's config.js
. You can use recorder.meet.jitsi
if using docker. Then create a user in prosody for that domain named jigasi
, give it a password and fill in the config in sip-communications.properties.
Jigasi should login as a hidden participant and subtitles should be working as expected, for moderators and hosts.
You're awesome!
I'll try if i can recreate your fix in docker, then hopefully create a PR for the docs for other people to see. Were there any other resources that helped you implement the fix?
Here are the forums threads that helped me to find the issue:
Do you need help getting the subtitles button to "artificially" show up for other participants? @charles-zablit No problem, thanks :)
I've managed to fix the issue. You have to specify a
hiddenDomain
in jitsi'sconfig.js
. You can userecorder.meet.jitsi
if using docker. Then create a user in prosody for that domain namedjigasi
, give it a password and fill in the config in sip-communications.properties. Jigasi should login as a hidden participant and subtitles should be working as expected, for moderators and hosts.
Question: Does it works both ways? I mean with 2 differents traslations, for example the moderator traslating from english to spanish and the guest traslating from spanish to english.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Update on this issue, the latest stable-9457 version includes updates of refactor transcriptions api from pull request merged to master https://github.com/jitsi/jitsi-meet/pull/14144. From there you see AbstractClosedCaptionButton.tsx
is now using an updated function canStartSubtitles
as replacement.
@devByGelu 's method is forcing visible = true for all participants is not enough if you're building from an legacy version prior to that, participants still not getting the transcription.
Do some code tracing, participants other than the moderator is automatically receiving endpointMessageReceived
in conference.js
.
Then react/features/subtitles/middleware.ts
is registering (listening) to this event ENDPOINT_MESSAGE_RECEIVED
and then output newTranscriptMessage
to screen.
Therefore, it's recommended to upgrade server version to stable-9457 and do your customization from there.
confirm hiddenDomain solves the problem.
setup jitsi-meet
VirtualHost recorder.<domain>
and set recorder.recorder.<domain>
is fine.
/etc/init.d/prosody restart
then you can use
prosodyctl register jigasi recorder.<domain> <raw-password>
and found newly created account at /var/lib/prosody/recorderrecorder%2dbase64(password)
to sip-communicator.properties of jigasi and everything works.
I was wrongly registering jigasi under auth.<domain>
and therefore it joins as normal participant.