By ifarkas - 3 Years Ago
|
Hi Dev Support,How do I display the spoken word text over the Voice in the Viseme timeline, like in the image below (AccuLips)?I'd like to do the same in a Python plugin, please.Thx, Ivan
|
By Johnny (RL) - 3 Years Ago
|
ifarkas (9/6/2022) Hi Dev Support,How do I display the spoken word text over the Voice in the Viseme timeline, like in the image below (AccuLips)?I'd like to do the same in a Python plugin, please.Thx, Ivan
The Python API is currently unable to add spoken word text over the viseme clip. This feature is expected to be added in the next verseion.
|
By ifarkas - 3 Years Ago
|
OK. Understood. Can I have an object-related TEXT track, where I can put text between key markers, similar to the AccuLips UI?
|
By Johnny (RL) - 3 Years Ago
|
Unfortunately, iClone doesn't currently support the ability to add text tracks, so the Python API doesn't currently have either.
|
By Johnny (RL) - 3 Years Ago
|
Hi ifarkas,
This feature is added in iClone 8.1, You can add the spoken word while creating a viseme clip. A new version will be released in the next few days, thanks.
clip_time = RLPy.IndexedFrameTime(0, RLPy.RGlobal.GetFps()) # create clip at frame 0 viseme_list = RLPy.RVisemeKeyVector() for i in range(len(MSVisemeOffset)): key = RLPy.RVisemeKey() key.SetID(ms_mapping_dict[MSVisemeID[i]]) key.SetTime(RLPy.RTick.FromMilliSecond(int(MSVisemeOffset[i]))) key.SetWeight(1.0) viseme_list.append(key) word_list = RLPy.RWordDataVector() word1 = RLPy.RWordData() word1.m_kStart = RLPy.RTick.FromMilliSecond(int(MSVisemeOffset[0])) word1.m_kEnd = RLPy.RTick.FromMilliSecond(int(MSVisemeOffset[10])) word1.m_strText = "Hi" word_list.append(word1) word2 = RLPy.RWordData() word2.m_kStart = RLPy.RTick.FromMilliSecond(int(MSVisemeOffset[10])) word2.m_kEnd = RLPy.RTick.FromMilliSecond(int(MSVisemeOffset[20])) word2.m_strText = "Maddie" word_list.append(word2) wav_path = dataset_path + "HiMaddie.wav" audio_object = RLPy.RAudio.CreateAudioObject() audio_object.Load(wav_path) result = self.viseme_animator.AddVisemesClipWithData(clip_time, "VisemeClip", audio_object, viseme_list, word_list, "Hi! Maddie")
|
By ifarkas - 3 Years Ago
|
That's great news @Johnny (RL)! Thank you very much for your help. What do these variables represent, please?
|
By animagic - 3 Years Ago
|
@Johnny (RL): It's good to see that the Python API is still being worked on.
Could we PLEASE get updated APII documentation for iClone 8, as it seems that there have been changes since iClone 7. The wiki has not been updated in two years.
|
By ifarkas - 3 Years Ago
|
I did it.

|
By animagic - 3 Years Ago
|
ifarkas (10/5/2022) I did it. Congratulations! Could you explain how?
Also, do you somehow have documentation for the iClone 8 compatible Python API, because however I try I have not had an satisfactory answer...:crying:
|
By ifarkas - 3 Years Ago
|
@animagic: I am so glad you asked. The code by Johnny (RL) helped me.
TTS Lip-sync is a commercial plugin released soon, a result of a 2 yearlong R&D. The associated website (paid service) generates the MP3 audio and Sentence, Word, Viseme, SSML timestamp file in the requested language. At start 74 languages, 76 dialects, and 352 male, female, and child voices will be available. Soon after lunch more languages and voices and more advanced UI is coming.
|