library(emu)
# Befehle
# Segmentliste
vokal = emu.query("sekund", "*", "phonetic=Vokal")

# Vokal-Etikettierungen
vokal.l = label(vokal)

# Etikettierungen der Betonung
bet.l = substring(vokal.l, 2, 2)

# Trackdatei der Formanten
vokal.fm = emu.track(vokal, "fm")

# Formanten zum zeitlichen Mittelpunkt
fm5 = dcut(vokal.fm[,1:2], .5, prop=T)

# primär betonte Vokale aussuchen
temp = bet.l == "P"

# Abbildung
par(mfrow=c(1,2))
eplot(fm5[temp,], vokal.l[temp], centroid=T, dopoints=T, form=T)
eplot(fm5[!temp,], vokal.l[!temp], centroid=T, dopoints=T, form=T)

# Wenn Sie Ausreißer wegen Formantfehler haben, und möchten
# die Äußerungen finden, in denen diese vorkommen
# z.B. alle aP finden für die F1 > 900 Hz
temp = fm5[,1] > 900 & vokal.l == "aP"
utt(vokal[temp,])

# alle aS finden für die F1 > 400 und F2 > 1400
temp = fm5[,1] > 400 & fm5[,2] > 1400
# wieviele
sum(temp)
# in welcher Äußerung
utt(vokal[temp,])

# ggf. Bereiche setzen
xlim = c(800, 2400)
ylim = c(0, 1200)

# Abbildung
temp = bet.l == "P"
par(mfrow=c(1,2))
eplot(fm5[temp,], vokal.l[temp], centroid=T, dopoints=T, form=T, xlim=xlim, ylim=ylim)
eplot(fm5[!temp,], vokal.l[!temp], centroid=T, dopoints=T, form=T, xlim=xlim, ylim=ylim)

# Zentroid
cen = apply(fm5, 2, mean)

# Funktion für die Berechnung der euklidschen Entfernungen
euc = function(a, b) 
{
sqrt(sum((a - b)^2)) 
}

# Euklidsche Entfernungen berechnen
entfernung = apply(fm5, 1, euc, cen)

# Boxplot Abbildung
par(mfrow=c(1,1))
boxplot(entfernung ~ vokal.l)