from modules.utils.CsvMgr import BaseManager


# speakers_mgr = BaseManager("./data/speakers.csv")
styles_mgr = BaseManager("./data/styles.csv")

if __name__ == "__main__":
    # builtin style
    styles = {
        "advertisement_upbeat": {
            "speed": 9,
            "oral": 7,
            "laugh": 2,
            "break": 1,
            "prefix": "兴奋的语气推广产品。",
        },
        "affectionate": {
            "speed": 6,
            "oral": 8,
            "laugh": 1,
            "break": 2,
            "prefix": "温暖亲切的语气。",
        },
        "angry": {
            "speed": 7,
            "oral": 5,
            "break": 3,
            "prefix": "生气厌恶的语气。",
        },
        "assistant": {
            "speed": 5,
            "oral": 7,
            "laugh": 1,
            "break": 2,
            "prefix": "热情轻松的语气。",
        },
        "calm": {
            "speed": 0,
            "oral": 4,
            "break": 4,
            "prefix": "沉着冷静的语气。",
        },
        "chat": {
            "speed": 6,
            "oral": 9,
            "laugh": 1,
            "break": 2,
            "prefix": "轻松随意的语气。",
        },
        "cheerful": {
            "speed": 7,
            "oral": 8,
            "laugh": 2,
            "break": 2,
            "prefix": "积极愉快的语气。",
        },
        "customerservice": {
            "speed": 5,
            "oral": 6,
            "laugh": 1,
            "break": 5,
            "prefix": "友好热情的语气。",
        },
        "depressed": {
            "speed": 2,
            "oral": 3,
            "break": 5,
            "prefix": "忧郁沮丧的语气。",
        },
        "disgruntled": {
            "speed": 4,
            "oral": 5,
            "break": 4,
            "prefix": "轻蔑抱怨的语气。",
        },
        "documentary-narration": {
            "speed": 4,
            "oral": 4,
            "break": 3,
            "prefix": "轻松且信息丰富的语气。",
        },
        "embarrassed": {
            "speed": 3,
            "oral": 3,
            "break": 5,
            "prefix": "不确定犹豫的语气。",
        },
        "empathetic": {
            "speed": 5,
            "oral": 6,
            "laugh": 1,
            "break": 3,
            "prefix": "关心理解的语气。",
        },
        "envious": {
            "speed": 5,
            "oral": 5,
            "laugh": 1,
            "break": 2,
            "prefix": "钦佩的语气。",
        },
        "excited": {
            "speed": 8,
            "oral": 7,
            "laugh": 2,
            "break": 1,
            "prefix": "乐观充满希望的语气。",
        },
        "fearful": {
            "speed": 9,
            "oral": 6,
            "break": 2,
            "prefix": "恐惧紧张的语气。",
        },
        "friendly": {
            "speed": 6,
            "oral": 7,
            "laugh": 1,
            "break": 2,
            "prefix": "愉快温暖的语气。",
        },
        "gentle": {
            "speed": 4,
            "oral": 5,
            "laugh": 1,
            "break": 3,
            "prefix": "温和礼貌的语气。",
        },
        "hopeful": {
            "speed": 5,
            "oral": 6,
            "laugh": 1,
            "break": 4,
            "prefix": "温暖渴望的语气。",
        },
        "lyrical": {
            "speed": 3,
            "oral": 4,
            "break": 4,
            "prefix": "优美感伤的语气。",
        },
        "narration-professional": {
            "speed": 5,
            "oral": 3,
            "break": 3,
            "prefix": "专业客观的语气。",
        },
        "narration-relaxed": {
            "speed": 2,
            "oral": 4,
            "break": 3,
            "prefix": "舒缓悦耳的语气。",
        },
        "newscast": {
            "speed": 6,
            "oral": 4,
            "break": 2,
            "prefix": "正式专业的语气。",
        },
        "newscast-casual": {
            "speed": 5,
            "oral": 5,
            "break": 2,
            "prefix": "随意的新闻语气。",
        },
        "newscast-formal": {
            "speed": 6,
            "oral": 3,
            "break": 2,
            "prefix": "正式权威的语气。",
        },
        "poetry-reading": {
            "speed": 4,
            "oral": 5,
            "break": 3,
            "prefix": "带情感和节奏的语气。",
        },
        "sad": {
            "speed": 0,
            "oral": 3,
            "break": 5,
            "prefix": "悲伤的语气。",
        },
        "serious": {
            "speed": 5,
            "oral": 3,
            "break": 4,
            "prefix": "严肃命令的语气。",
        },
        "shouting": {
            "speed": 7,
            "oral": 6,
            "break": 1,
            "prefix": "努力让别人听清楚的语气。",
        },
        "sports_commentary": {
            "speed": 8,
            "oral": 7,
            "laugh": 1,
            "break": 2,
            "prefix": "轻松感兴趣的体育播报语气。",
        },
        "sports_commentary_excited": {
            "speed": 9,
            "oral": 8,
            "laugh": 2,
            "break": 1,
            "prefix": "快速充满活力的体育播报语气。",
        },
        "whispering": {
            "speed": 2,
            "oral": 3,
            "break": 4,
            "prefix": "柔和的语气。",
        },
        "terrified": {
            "speed": 9,
            "oral": 7,
            "break": 1,
            "prefix": "害怕的语气。",
        },
        "unfriendly": {
            "speed": 4,
            "oral": 2,
            "break": 3,
            "prefix": "冷淡无情的语气。",
        },
    }
    styles_en = {
        "advertisement_upbeat": {
            "speed": 9,
            "oral": 7,
            "laugh": 2,
            "break": 1,
            "prefix": "Promote products or services with an excited and energetic tone.",
        },
        "affectionate": {
            "speed": 6,
            "oral": 8,
            "laugh": 1,
            "break": 2,
            "prefix": "Express a warm and affectionate tone with a higher pitch and volume. The speaker is in a state of capturing the listener's attention and is often likeable.",
        },
        "angry": {
            "speed": 7,
            "oral": 5,
            "break": 3,
            "prefix": "Express an angry and disgusted tone.",
        },
        "assistant": {
            "speed": 5,
            "oral": 7,
            "laugh": 1,
            "break": 2,
            "prefix": "Digital assistant uses an enthusiastic and relaxed tone.",
        },
        "calm": {
            "speed": 0,
            "oral": 4,
            "break": 4,
            "prefix": "Speak with a calm and composed attitude. The tone, pitch, and rhythm are much more consistent compared to other speech types.",
        },
        "chat": {
            "speed": 6,
            "oral": 9,
            "laugh": 1,
            "break": 2,
            "prefix": "Express a relaxed and casual tone.",
        },
        "cheerful": {
            "speed": 7,
            "oral": 8,
            "laugh": 2,
            "break": 2,
            "prefix": "Express a positive and cheerful tone.",
        },
        "customerservice": {
            "speed": 5,
            "oral": 6,
            "laugh": 1,
            "break": 5,
            "prefix": "Provide support to customers with a friendly and enthusiastic tone.",
        },
        "depressed": {
            "speed": 2,
            "oral": 3,
            "break": 5,
            "prefix": "Express a depressed and downcast tone with lower pitch and volume.",
        },
        "disgruntled": {
            "speed": 4,
            "oral": 5,
            "break": 4,
            "prefix": "Express a tone of contempt and complaint. This emotional voice exhibits displeasure and disdain.",
        },
        "documentary-narration": {
            "speed": 4,
            "oral": 4,
            "break": 3,
            "prefix": "Narrate documentaries in a relaxed, interested, and informative style, suitable for documentary voiceovers, expert commentary, and similar content.",
        },
        "embarrassed": {
            "speed": 3,
            "oral": 3,
            "break": 5,
            "prefix": "Express an uncertain, hesitant tone when the speaker feels uncomfortable.",
        },
        "empathetic": {
            "speed": 5,
            "oral": 6,
            "laugh": 1,
            "break": 3,
            "prefix": "Express care and understanding.",
        },
        "envious": {
            "speed": 5,
            "oral": 5,
            "laugh": 1,
            "break": 2,
            "prefix": "Express an admiring tone when you desire something others have.",
        },
        "excited": {
            "speed": 8,
            "oral": 7,
            "laugh": 2,
            "break": 1,
            "prefix": "Express an optimistic and hopeful tone. It seems something wonderful has happened, and the speaker is pleased.",
        },
        "fearful": {
            "speed": 9,
            "oral": 6,
            "break": 2,
            "prefix": "Express a fearful and anxious tone with a higher pitch, higher volume, and faster speech rate. The speaker is in a state of tension and unease.",
        },
        "friendly": {
            "speed": 6,
            "oral": 7,
            "laugh": 1,
            "break": 2,
            "prefix": "Express a pleasant, delightful, and warm tone. It sounds sincere and full of concern.",
        },
        "gentle": {
            "speed": 4,
            "oral": 5,
            "laugh": 1,
            "break": 3,
            "prefix": "Express a gentle, polite, and pleasant tone with a lower pitch and volume.",
        },
        "hopeful": {
            "speed": 5,
            "oral": 6,
            "laugh": 1,
            "break": 4,
            "prefix": "Express a warm and desirous tone. It sounds like something good is going to happen to the speaker.",
        },
        "lyrical": {
            "speed": 3,
            "oral": 4,
            "break": 4,
            "prefix": "Express emotions in a beautiful and sentimental way.",
        },
        "narration-professional": {
            "speed": 5,
            "oral": 3,
            "break": 3,
            "prefix": "Read content in a professional and objective tone.",
        },
        "narration-relaxed": {
            "speed": 2,
            "oral": 4,
            "break": 3,
            "prefix": "Express a soothing and pleasant tone when reading content.",
        },
        "newscast": {
            "speed": 6,
            "oral": 4,
            "break": 2,
            "prefix": "Narrate news in a formal and professional tone.",
        },
        "newscast-casual": {
            "speed": 5,
            "oral": 5,
            "break": 2,
            "prefix": "Deliver general news in a generic and casual tone.",
        },
        "newscast-formal": {
            "speed": 6,
            "oral": 3,
            "break": 2,
            "prefix": "Deliver news in a formal, confident, and authoritative tone.",
        },
        "poetry-reading": {
            "speed": 4,
            "oral": 5,
            "break": 3,
            "prefix": "Express an emotional and rhythmic tone when reading poetry.",
        },
        "sad": {"speed": 0, "oral": 3, "break": 5, "prefix": "Express a sad tone."},
        "serious": {
            "speed": 5,
            "oral": 3,
            "break": 4,
            "prefix": "Express a serious and commanding tone. The speaker's voice is usually stiff, and the pace is not as relaxed.",
        },
        "shouting": {
            "speed": 7,
            "oral": 6,
            "break": 1,
            "prefix": "Express a tone that sounds like the voice is far away or in another place, trying hard to be heard clearly.",
        },
        "sports_commentary": {
            "speed": 8,
            "oral": 7,
            "laugh": 1,
            "break": 2,
            "prefix": "Express a relaxed yet interested tone, used for sports commentary.",
        },
        "sports_commentary_excited": {
            "speed": 9,
            "oral": 8,
            "laugh": 2,
            "break": 1,
            "prefix": "Commentate on exciting moments in sports with a fast and energetic tone.",
        },
        "whispering": {
            "speed": 2,
            "oral": 3,
            "break": 4,
            "prefix": "Express a soft tone, trying to make a quiet and gentle sound.",
        },
        "terrified": {
            "speed": 9,
            "oral": 7,
            "break": 1,
            "prefix": "Express a terrified tone, with fast speech and trembling voice. It sounds like the speaker is in an unstable, frantic state.",
        },
        "unfriendly": {
            "speed": 4,
            "oral": 2,
            "break": 3,
            "prefix": "Express a cold and unfeeling tone.",
        },
    }
    id = 0
    for k, v in styles.items():
        v.pop("prefix")
        styles_mgr.add_item(id, k, f"builtin style {k}", v)
        id += 1
    # for k, v in styles_en.items():

    #     styles_mgr.add_item(id, f"en_{k}", f"builtin style {k}", v)
    #     id += 1