Spaces:
Build error
Build error
import prosodic as p | |
def getSymEnglish(): | |
PHO=[] | |
with open("english.txt", encoding="utf-8") as f: | |
content=f.read().splitlines() | |
for line in content: | |
x= p.Text(line) | |
x.parse() | |
PAR = x.bestParses()[0] | |
PHO.extend(x.phonemes()) | |
print(PHO) | |
PHO=set(PHO) | |
return PHO | |
ENG_SYM=["ʧ", "f", "θ", "k", "uː", "h", "b", "v", "ɔ", "t", "ɛ", "p", "ŋ", "ð", "iː", "ʌ", "j", "ʒ", "w", "ʊ", "n", "s", "ɛː", "g", "l", "d", "r", "æ", "ɑ", "ʤ", "ɪ", "ɔː", "m", "z", "ə", "a", "o", "e", "ʃ", "i"] | |
ExceptReplaceSym=['uː', 'iː', 'ɑ', 'ɛː', 'zi', 'kwi', 'ɔː'] | |
symbols =['ɯəj', 'ɤ̆j', 'ʷiə', 'ɤ̆w', 'ɯəw', 'ʷet', 'iəw', 'uəj', 'ʷen', 'tʰw', 'ʷɤ̆', 'ʷiu', 'kwi', 'ŋ͡m', 'k͡p', 'cw', 'jw', 'uə', 'eə', 'bw', 'oj', 'ʷi', 'vw', 'ăw', 'ʈw', 'ʂw', 'aʊ', 'fw', 'ɛu', 'tʰ', 'tʃ', 'ɔɪ', 'xw', 'ʷɤ', 'ɤ̆', 'ŋw', 'ʊə', 'zi', 'ʷă', 'dw', 'eɪ', 'aɪ', 'ew', 'iə', 'ɣw', 'zw', 'ɯj', 'ʷɛ', 'ɯw', 'ɤj', 'ɔ:', 'əʊ', 'ʷa', 'mw', 'ɑ:', 'hw', 'ɔj', 'uj', 'lw', 'ɪə', 'ăj', 'u:', 'aw', 'ɛj', 'iw', 'aj', 'ɜ:', 'kw', 'nw', 't∫', 'ɲw', 'eo', 'sw', 'tw', 'ʐw', 'iɛ', 'ʷe', 'i:', 'ɯə', 'dʒ', 'ɲ', 'θ', 'ʌ', 'l', 'w', '1', 'ɪ', 'ɯ', 'd', '∫', 'p', 'ə', 'u', 'o', '3', 'ɣ', '!', 'ð', 'ʧ', '6', 'ʒ', 'ʐ', 'z', 'v', 'g', 'ă', '_', 'æ', 'ɤ', '2', 'ʤ', 'i', '.', 'ɒ', 'b', 'h', 'n', 'ʂ', 'ɔ', 'ɛ', 'k', 'm', '5', ' ', 'c', 'j', 'x', 'ʈ', ',', '4', 'ʊ', 's', 'ŋ', 'a', 'ʃ', '?', 'r', ':', 'η', 'f', ';', 'e', 't', "'"] | |
def normEng (eng,delemit): | |
x= p.Text(eng) | |
x.parse() | |
PAR = str(x.bestParses()[0]).split("|") | |
SYL = x.syllables() | |
if len(PAR) != len(SYL): | |
print("check dif len: ", eng) | |
result="" | |
for i,syl in enumerate(SYL): | |
syllable = str(syl).replace("'","").replace("ː","").replace("ɑ","a") | |
if PAR[i].lower().upper() == PAR[i]: | |
result+=syllable+"'5"+" " | |
else: | |
result+=syllable+"'1"+" " | |
result=result.rstrip(" ") | |
if delemit !="": | |
takemore="" | |
for r in result: | |
if r in symbols: | |
takemore+=delemit+r | |
result=takemore | |
return result | |
Sen="string Sentence Examples. Someone tried to string him The violin string is first drawn on one side A piece of string she found in the kitchen would suffice".split(" ") | |
sen="" | |
for w in Sen: | |
sen+=normEng(w,"/") | |
print(sen) | |
#Chạy qua các từ tiếng anh -> lọc ra các phoneme đặc thù tiếng anh => ExceptReplaceSym=['uː', 'iː', 'ɑ', 'ɛː', 'zi', 'kwi', 'ɔː'] | |
#Chạy lọc các cau trong LDspeech -> chứa các từ riêng biệt: khoảng 500 câu | |
#Đưa đống hàm normEng vào tacotron đang train xem dọcđược không | |
#có nên thêm kí tự đánh dấu tiếng anh như Zalo nói | |
# Xử lí ngắt ngẫu nhiên của zalo * và ~ => tìm hiểu ý nghĩa 2 đấu đó => thay bằng phẩy | |
#Chạy lọc qua dict tiengs aanh với hàm normEng => check xem có kí tự mới nào không |