Untitled

 avatar
unknown
plain_text
a year ago
2.1 kB
5
Indexable
let SpeechRuleJS = {
    name: "旁白/对话",
    id: "ttsrv.multi_voice",
    author: "TTS Server",
    version: 4,
    tags: {narration: "旁白", dialogue: "对话", system: "sys"},

    handleText(text) {
        const list = [];
        let tmpStr = "";
        let endTag = "narration";
        
        // Perform specific text replacements
        text = text.replace(/-ssi/g,"shi");
        text = text.replace(/Ok Toyeon/g,"Ohk Toyeon");
        text = text.replace(/Lumian/g,"Lu-mi-ahn");
    
        text.split("").forEach((char, index) => {
            tmpStr += char;
    
            if (char === '“') {
                endTag = "dialogue";
                list.push({text: tmpStr, tag: "narration"});
                tmpStr = "";
            } else if (char === '”') {
                endTag = "narration";
                tmpStr = tmpStr.slice(0, -1);
                list.push({text: tmpStr, tag: "dialogue"});
                tmpStr = "";
            } else if (char === '[') {
                endTag = "sys";
                list.push({text: tmpStr, tag: "narration"});
                tmpStr = "[";
            } else if (char === ']') {
                endTag = "narration";
                tmpStr += "]";
                list.push({text: tmpStr, tag: "sys"});
                tmpStr = "";
            } else if (index === text.length - 1) {
                list.push({text: tmpStr, tag: endTag});
            }
        });
    
        return list;
    },
    

    splitText(text) {
        let separatorStr = "。?? ?!!;;"

        let list = []
        let tmpStr = ""
        text.split("").forEach((char, index) => {
            tmpStr += char

            if (separatorStr.includes(char)) {
                list.push(tmpStr)
                tmpStr = ""
            } else if (index === text.length - 1) {
                list.push(tmpStr);
            }
        })

        return list.filter(item =>  item.replace(/[“”]/g, '').trim().length > 0);
    }

};
Editor is loading...
Leave a Comment