我有语音记录。为了计算音素,我想把字符串分成单个音素段。不幸的是,用于音素的字符之间并没有100%的差异。例如,长/i/声音被转录
iË
(注:
Ë
i
. 这种双重用途
我
两个音素的分离导致两个不同的问题:
试验数据:
test1 <- "dɪd ÉnɪbÉdi liËv ðeÉ glÉËsɪz hÉªÉ lÉËst wiËk sÊmbÉdi dɪd"
所有音素的向量:
phonemes <- c("ɪÉ","eɪ","ÊÉ","Éɪ","aɪ","eÉ","aÊ","ÉÊ", # diphthongs
"iË","uË","ÉË","ÉË","ÉË", # long vowels
"É","ɪ", "É","É","Ê","æ","i","Ê", # short vowels
"j","w", # semi-vowels
"r","l", # approximants
"n","m","Å", # nasals
"f","v","θ","ð","s","z","Ê","Ê","h", # fricatives
"ʧ","ʤ", # affricates
"p","b","t","d","k","g") # plosives
交替模式:
phonemes_pattern <- paste0("(", paste0(phonemes, collapse = "|"), ")")
这个
split
操作:
str_split(gsub(" ", "", test1), paste0("(?<=", phonemes_pattern, ")"))
[[1]]
[1] "d" "ɪ" "d" "É" "n" "ɪ" "b" "É" "d" "i" "l" "i" "Ë" "v" "ð" "eÉ" "g" "l" "ÉË" "s" "ɪ" "z" "h" "ɪ" "É" "l" "ÉË" "s" "t"
[30] "w" "i" "Ë" "k" "s" "Ê" "m" "b" "É" "d" "i" "d" "ɪ" "d" ""
结果是正确的
对于长的/i/音
我
和
也是分开的。有人能帮忙吗?