############## 0. EIGENSCHAFTEN EINER TRACKDATEI; TRACKDATEI EINLESEN # Vorhandene Trackdateien einer Sprachdatenbank trackinfo("kielread") seg.u = emu.query("kielread", "*", "Phonetic=U") # funktioniert form.u = emu.track(seg.u, "fm") # kann nicht funktionieren zcr.u = emu.track(seg.u, "zcr") # Segmentliste exportieren path = "Irgendein Verzeichnis" write.emusegs(seg.u, paste(path, "u.txt", sep="/")) # Die Segmentliste in Emu einlesen # Dir ZCR-Trackdatei in R einlesen zcr.u = read.trackdata(paste(path, "u-zcr.txt", sep="/")) # prüfen ob wir eine Trackdatei haben class(zcr.u) class(form.u) # Eigenschaften davon summary(zcr.u) ######################## 1.1 FRAMES, TRACKZEITEN plot(zcr.u[1,]) # Die tatsächlichen Werte frames(zcr.u[1,]) # Deren Zeiten tracktimes(zcr.u[1,]) start(zcr.u[1,]) end(zcr.u[1,]) seg.u[1,] start(seg.u[1,]) end(seg.u[1,]) ########################## 1.2 INDIZIERUNG nrow(zcr.u) ncol(zcr.u) dim(zcr.u) # Die Indizierung erfolgt wie bei einer Matrix seg.u[5:7,] # Eine Trackdatei der ZCR-Werte, Segmente 5-7 z = zcr.u[5:7,] # Die Frames davon # entweder frames(z) # oder frames(zcr.u[5:7,]) summary(vowlax.fdat) dim(vowlax.fdat) # F1 und F2 vom 10en Segment v = vowlax.fdat[10,1:2] # Alle Formanten außer F3 der Segmente 12, 18, und 20? v = # F1 und F2 von allen Segmenten? v = # Die F1- und F2-Frames der Segmente 10, 12, und 18? ## INDIZIERUNG MIT LOGISCHEN VEKTOREN # Segmentliste dim(vowlax) # Deren Etikettierungen length(vowlax.l) # Trackdatei F1-F4 dim(vowlax.fdat) # Logischer Vektor: T für "I" temp = vowlax.l == "I" # Trackdatei F1-F4 der "I" Vokale? # Trackdatei F1 und F3 der "I" und "a" Vokale? # Trackdatei der Grundfrequenz, "a" Vokale, Sprecherin "68"? # (vowlax.spkr enthält die Sprecheretikettierungen) # 2. ABBILDUNGEN ################################################ # plot() Einzelne Segmente # dplot() Ensemble Abbildung mehrerer Segmente plot(dip.fdat[5,2]) par(mfrow=c(2,2)) plot(dip.fdat[5:8,2], contig=F) plot(dip.fdat[5:8,2], contig=F, xlab="Dauer (ms)", ylab="F2 (Hz)") plot(dip.fdat[5:8,2], contig=F, xlab="Dauer (ms)", ylab="F2 (Hz)", time=0) par(mfrow=c(1,1)) dplot(dip.fdat[5:8,2]) # synchronisiert zum zeitlichen Mittelpunkt: offset dplot(dip.fdat[5:8,2], offset=.5, xlab="Dauer (ms)") # zeit-normalisiert: norm dplot(dip.fdat[5:8,2], norm=T, xlab="Dauer (Proportional)") # gemittelt: av dplot(dip.fdat[5:8,2], av=T) # gemittelt nach der Zeitnormalisierung dplot(dip.fdat[5:8,2], av=T, norm=T) # Bereich: ylim, xlim dplot(dip.fdat[5:8,2], av=T, norm=T, ylim=c(1200, 1700)) # Andere Farbe, Liniendichte usw.: siehe help(par) für Möglichkeiten dplot(dip.fdat[5:8,2], col="red", lwd=2, type="b") # nach Kategorie kodieren dplot(dip.fdat[,2], dip.l) # Zeitnormalisiert und gemittelt? # schwarz-weiss mit verschiedenen Plot-Symbolen 2 Grau-Stufen, # unterschiedliche Liniendichten dplot(dip.fdat[1:10,2], dip.l[1:10], type="b", pch=1:3, lwd=c(1,2,1), col=c("black", "black", "slategray") ) # Fragen in track.doc, .pdf 1.1 - 1.6, 1.10, 1.11, 2.1-2.5.