I cannot get the Live Transcription text. Could you please advise on how to obtain it?.
The IClosedCaptionControllerEvent::onLiveTranscriptionMsgInfoReceived() callback method is not being called.
Which version?
Meeting SDK for Windows (C++)
zoom-sdk-windows-5.15.5.19455
To Reproduce (If applicable)
Download and build the “sdk_demo_v2.sln” on your Windows machine. Note: select “Release/Win32” build mode.
Have another ZOOM client (host) ready to start the meeting on another machine.
Start a Zoom meeting.
Run sdk_demo_v2 to join the meeting.
In the first dialog, check “Customized UI Mode”. Select the “SetDomain” button.
Create a JWT token, then copy and paste the token into the appropriate field and click the “Auth” button.
In the second dialog, select the “Only Join” tab window and type “Meeting number”, “Name” as Bot’s name, and “Meeting password”. Then, select the “join” button.
You should now see your meeting bot in the Zoom client on the host machine.
Activate “Live Transcription” on the host Zoom client.
Say something and ensure that the live transcriptions appear as subtitles.
Set a breakpoint in the SDKInterfaceWrap::onLiveTranscriptionMsgInfoReceived() callback method.
This callback method is not being called.
Device (please complete the following information):
Device Spec: DELL Note PC
OS: Windows 10 Home
IDE: Microsoft Visual Studio Community 2019 Version 16.11.27
Microsoft .NET Framework Version 4.8.09037
zoom client version on another machine: 5.15.7 (21404)
Additional context
I have implemented onLiveTranscriptionStatus() in the same context, and then it is working successfully when subtitles are disabled or enabled by the host. Based on this, I believe the Meeting SDK has been implemented correctly. However, onLiveTranscriptionMsgInfoReceived() is not called. I would like to know how this can be called and how I can get the live transcription.
Note: I have not checked the onLiveTranscriptionMsgReceived() callback, as it is currently treated as deprecated.
It seems that the error which you have encountered are related to the account features.
The account which you have tested on might not have the live transcription and translation feature enabled.
Let me get back to you if there are alternatives methods which might trigger OnLiveTranscriptionMsgInfoReceived
Meanwhile could you try to observe whats the behavior of this if you set the value to -1?
captionController->SetTranslationLanguage(-1)
Hi @chunsiong.zoom, just wanted to say thank you and that the demos found in your github have been immensely helpful in getting us started for our projects. We’re also trying to get live transcription messages and have been running into the same issues with onLiveTranscriptionMsgInfoReceived not being triggered. In the meantime, we’ve tested onLiveTranscriptionMsgReceived and that seems to be working fine still. Would you recommend just sticking with that for the time being even though it’s being deprecated soon?
Update: After some further testing, we’re still unable to trigger onLiveTranscriptionMsgInfoReceived, but we did notice that onOriginalLanguageMsgReceived is being triggered as long as live transcription is turned on (captionController->StartLiveTranscription()). This event also supplies a ILiveTranscriptionMessageInfo object so it seems to be working pretty much in the same manner as onLiveTranscriptionMsgInfoReceived. In the sample code, though @chunsiong.zoom, you have marked onOriginalLanguageMsgReceived as deprecated, but the latest SDK docs hasn’t. Is this method safe to use until we figure out how to properly trigger onLiveTranscriptionMsgInfoReceived?
I’ve concluded some testing and here are some additional notes which you might find useful.
onOriginalLanguageMsgReceived is the replacement method for onLiveTranscriptionMsgReceived
If you do not have a translation plan in place, can call the following code, to get the speech to text in onOriginalLanguageMsgReceived
captionController->StartLiveTranscription();
captionController->SetMeetingSpokenLanguage(0); //english
captionController->SetTranslationLanguage(-1); //none
captionController->EnableReceiveSpokenLanguageContent(true);
If you have a translation plan in place, below is the variation in code, to get the translated speech-to-text in OnLiveTranscriptionMsgInfoReceived
captionController->StartLiveTranscription();
captionController->SetMeetingSpokenLanguage(0); //english
captionController->SetTranslationLanguage(1); //mandarin
captionController->EnableReceiveSpokenLanguageContent(true);
Thanks @chunsiong.zoom for the additional notes. We do have the translation plan for our accounts, but I do remember using all those settings earlier today and OnLiveTranscriptionMsgInfoReceived still wasn’t triggering. Maybe it was because I wasn’t doing it as host, but I can give that a try tomorrow. Regardless, onOriginalLanguageMsgReceived is working and we don’t really need any translation, so we may just stick with that. On a slightly separate note, it’s a not a big issue and not sure if it’s intended, but we’re also noticing that each transcription or caption message is triggering their respective events twice. Even after I conditioned it to only trigger on ILiveTranscriptionMessageInfo objects of type ZoomVideoSDKLiveTranscription_OperationType_Complete, the events are still being triggered twice.
I can get transcriptions with the bot as the host now, but I would like to get transcriptions when the bot is not the host. Please support me on how can I get.