Profile Picture

What standard the RVisemeKey enum based on?

Posted By ifarkas 4 Years Ago
You don't have permission to rate!
Author
Message
ifarkas
ifarkas
Posted 4 Years Ago
View Quick Profile
Senior Member

Senior Member (405 reputation)Senior Member (405 reputation)Senior Member (405 reputation)Senior Member (405 reputation)Senior Member (405 reputation)Senior Member (405 reputation)Senior Member (405 reputation)Senior Member (405 reputation)Senior Member (405 reputation)

Group: Forum Members
Last Active: 4 Years Ago
Posts: 18, Visits: 57
Hi Dev Support,What's the Phoneme/Viseme mapping to IPA, X-SAMPA, ARPABET standards, please?My goal is to map AWS Polly visemes to RVisemeKey enum.
Thx, IvanRLPy.EVisemeID_NONERLPy.EVisemeID_EERLPy.EVisemeID_ERRLPy.EVisemeID_IHRLPy.EVisemeID_AHRLPy.EVisemeID_OHRLPy.EVisemeID_W_OORLPy.EVisemeID_S_ZRLPy.EVisemeID_CH_JRLPy.EVisemeID_F_VRLPy.EVisemeID_THRLPy.EVisemeID_T_L_D_NRLPy.EVisemeID_B_M_PRLPy.EVisemeID_K_G_H_NGRLPy.EVisemeID_AERLPy.EVisemeID_R
Johnny (RL)
This post has been flagged as an answer
Johnny (RL)
Posted 4 Years Ago
View Quick Profile
Junior Member

Junior Member (180 reputation)Junior Member (180 reputation)Junior Member (180 reputation)Junior Member (180 reputation)Junior Member (180 reputation)Junior Member (180 reputation)Junior Member (180 reputation)Junior Member (180 reputation)Junior Member (180 reputation)

Group: Forum Members
Last Active: 2 Years Ago
Posts: 17, Visits: 646
ifarkas (9/6/2022)
Hi Dev Support,What's the Phoneme/Viseme mapping to IPA, X-SAMPA, ARPABET standards, please?My goal is to map AWS Polly visemes to RVisemeKey enum.
Thx, IvanRLPy.EVisemeID_NONERLPy.EVisemeID_EERLPy.EVisemeID_ERRLPy.EVisemeID_IHRLPy.EVisemeID_AHRLPy.EVisemeID_OHRLPy.EVisemeID_W_OORLPy.EVisemeID_S_ZRLPy.EVisemeID_CH_JRLPy.EVisemeID_F_VRLPy.EVisemeID_THRLPy.EVisemeID_T_L_D_NRLPy.EVisemeID_B_M_PRLPy.EVisemeID_K_G_H_NGRLPy.EVisemeID_AERLPy.EVisemeID_R


Hi ifarkas,

You should do the mapping yourself. Aws Polly has its own viseme, which you can map to the RL's viseme
You may need to adjust this mapping table back and forth to achieve the best Lipsync result.
Similar to the following code:



        awspolly_mapping_dict = {
            "p"  : RLPy.EVisemeID_B_M_P,
            "t"  :  RLPy.EVisemeID_T_L_D_N,
            "S"  : RLPy.EVisemeID_S_Z,
            "T"  : RLPy.EVisemeID_T_L_D_N,
            "a"  : RLPy.EVisemeID_AH,
            "o"  : RLPy.EVisemeID_W_OO,
            # .....more
        }

        key_list = []
        time_list = []
        weight_list = []
        for i in range(len(AWSPollyData)):
            key = int(awspolly_mapping_dict[AWSPollyData[I].viseme])
            time =AWSPollyData[I].time
            key_list.append(key)
            time_list.append(time)
            weight_list.append(100)
        result = viseme_component.AddVisemesClipWithData(_set_time, _name, _audio_object, time_list, key_list, weight_list)


ifarkas
ifarkas
Posted 4 Years Ago
View Quick Profile
Senior Member

Senior Member (405 reputation)Senior Member (405 reputation)Senior Member (405 reputation)Senior Member (405 reputation)Senior Member (405 reputation)Senior Member (405 reputation)Senior Member (405 reputation)Senior Member (405 reputation)Senior Member (405 reputation)

Group: Forum Members
Last Active: 4 Years Ago
Posts: 18, Visits: 57
It was painful, but I did it. I had to map to the map. Thx.



Reading This Topic