Formant-Analysen von Vokalen

Slides:



Advertisements
Ähnliche Präsentationen
Spektrale Analysen in EMU-R: eine Einführung
Advertisements

Inwiefern werden Formanten wegen der Telefonsprache unzuverlässig?
Kumulierte Häufigkeit
IrfanView starten Doppelklick Es erscheint dieses Fenster.
Die Satzprosodie Phrasengrenzen, Akzentuierung, Intonation.
Die akustische Analyse von Sprachlauten.
Quellen-Filter Theorie der Sprachproduktion
Die phonetischen Merkmale von Vokalen
Spektra von periodischen Signalen. Resonanz.
Formant-Analysen von Vokalen
Spektrogramm Das Spektrogramm stellt 3 Dimensionen dar:
Spektrogramm Das Spektrogramm stellt 3 Dimensionen dar:
Spektrogramm und Spektrum
Anschließen des Rekorders n Anschließen des Kassetten- oder DAT -Recorders: n Die beiden Ausgänge (line out) des Rekorders werden mit den Eingängen (line.
Einführung in die Phonetik und Phonologie
Spektrogramm und Spektrum Sitzung 8 Welche Konsonanten sind für sich alleine identifizierbar? -Alle Konsonanten ausser [pt] in tippt, weil das [p] nicht.
Laden einer Signaldatei
Starten von Multi-Speech Starten des Systems: n PC einschalten n Icon für Multi-Speech auf dem Desktop anklicken n Multi-Speech Main Program wählen Sitzung.
Übung Akustische Phonetik
Adaptive Dispersion in der Wahrnehmung von Vokale
Logische Vektoren in R Jonathan Harrington.
Spektrale Analysen in EMU-R: eine Einführung Jonathan Harrington.
Aufbau, Abfrage, Analyse von Sprachdatenbanken ErstellungAnalyse Abfrage Digitale Zeitsignale akustisch, artikulatorisch Etikettieren Verknüpfung mit Symbolen.
Spektrale Analysen in EMU-R: eine Einführung
Mixed Models Jonathan Harrington library(ez) library(lme4)
Hauptseminar: Speaker Characteristics Venice International University
Grundlagen der R Programmiersprache
Formant-Analysen von Vokalen (2) Jonathan Harrington 1, 2 Struktur und Abbildung einer Trackdatei 3, 4. Anwendung von vorhandenen und eigenen Funktionen.
Kovarianz, Korrelation, (lineare) Regression
Berechnung von digitalen Signalen
Berechnung von digitalen Signalen Jonathan Harrington.
Sprachproduktion- und Sprachperzeption
Logistische Regression und die Analyse von Proportionen
Spektrale Analysen in EMU-R: eine Einführung
Vokale und die Quantaltheorie
Logistische Regression und psychometrische Kurven
Abfragen aus einer Sprachdatenbank Jonathan Harrington.
Die Prosodie Jonathan Harrington Felicitas Kleber.
Frequenz- und Zeitauflösung
Wann ist eine Regression zulässig? siehe siehe auch: UCLA Statistics Dept. Denise.
Parametrisierung von Spektra
Abfragen aus einer Sprachdatenbank Jonathan Harrington.
Artikulationsstelle, F2-Locus, Locusgleichungen Jonathan Harrington.
Etikettierungsebenen Jonathan Harrington. Das Ziel Etikettierungen verschiedener Ebenen aufzubauen, und miteinander zu verlinken.
4. Anwendung der logistic Regression auf die Berechung einer perzeptiven Grenzen zwischen Kategorien Experiment. Anhand der Sprachsynthese wurde ein F2-
Kovarianz, Korrelation, (lineare) Regression
Aufbau, Abfrage, Analyse von Sprachdatenbanken ErstellungAnalyse Abfrage Digitale Zeitsignale akustisch, artikulatorisch Etikettieren Verknüpfung mit Symbolen.
Was ist die artikulatorische Grundlage von Locus-Gleichungen? Hauptseminar: Modelle der Sprachproduktion & - perzeption Dozent: Prof. Dr. Jonathan Harrington.
Kovarianz, Korrelation, (lineare) Regression Jonathan Harrington BITTE NOCH EINMAL dframes.zip (Webseite 4.1) herunterladen und in pfad auspacken.
Die Nulldurchgangsrate
Was ist laut Stevens die Beziehung zwischen dem akustischen Signal, distinktiven Merkmalen und dem Lexikon?
Logistische Regression und die Analyse von Proportionen Jonathan Harrington.
2D-Visualisierung von Daten
Histogramm/empirische Verteilung Verteilungen
HLSyn – eine Kurzeinführung
EXPONENTIELLE VORGÄNGE UND FINANZMATHEMATIK
Auf Wunsch einer einzelnen Dame
Moin. Ich benutze PPT 2002 und möchte drei Bilder nacheinander 1
Einige Kriterien für die Durchführung einer Varianzanalyse Jonathan Harrington.
Hier die Frage formulieren ...
Aggregatsfunktion SQL = Structured Query Language.
Analyse von Spektra 2 Jonathan Harrington 1. Wiederholung: Spektra in R einlesen 2. Einige grundlegende Funktionen 3. Zugriff auf Spektralwerte 4. Spektrale-Abbildungen.
Driften Spiel des Lebens. Anzahl der Ziehung en Absolute Häufigk eit blau Absolute Häufigk eit rot Relative Häufigk eit blau Relative Häufigk eit rot.
1.4. Erstellen von Diagrammen
Plosive [a d a] [a t a] [a th a]
Musterlösung zum Arbeitsblatt Nr. 1
Etikettierungsstrukturen und Abfragen in Emu Jonathan Harrington.
Plosive [a d a] [a t a] [a th a]
Plosive [a d a] [a t a] [a th a]
 Präsentation transkript:

Formant-Analysen von Vokalen Jonathan Harrington Ellipse-Darstellung von Vokalformanten Ausreißer identifizieren Vokal-Targets setzen Literatur: http://www.phonetik.uni-muenchen.de/~jmh/research/emupapers/pasc.pdf Kap. 3 (S. 74-123)

1. Ellipse-Abbildungen Formanten (F1-F4) zum zeitlichen Mittelpunkt vowlax Segmentliste vowlax.fdat Trackdatei F1-F4 vowlax.rms Trackdatei dB-RMS vowlax.l Etikettierungen "E" "a" "I" "O" vowlax.spkr Sprecher-Etikettierungen "67" "68" Formanten (F1-F4) zum zeitlichen Mittelpunkt mid = dcut(vowlax.fdat, .5, prop=T) Nur F1 und F2 mid = mid[,1:2]

1. Ellipse-Abbildungen vowlax Segmentliste vowlax.fdat Trackdatei F1-F4 vowlax.l Etikettierungen "E" "a" "I" "O" vowlax.spkr Sprecher-Etikettierungen "67" "68" dcut(vowlax.fdat, .5, prop=T) mid = mid = mid[,1:2] Logischer Vektor um Sprecher “67” zu identifizieren vowlax.spkr==“67” temp = Ellipsen Sprecher 67 Sprecherin 68 eplot(mid[temp,], vowlax.l[temp], dopoints=T, form=T) Mit !temp statt temp E a I O 300 400 500 O O F1 O O O O O O 600 O 700 800 2000 1500 1000 F2

Mehrere Abbildungen gleichzeitig Eine Reihe, zwei Spalten par(mfrow=c(1,2)) eplot(mid[temp,], vowlax.l[temp], dopoints=T, form=T) eplot(mid[!temp,], vowlax.l[!temp], dopoints=T, form=T) wieder auf eine Reihe x eine Spalte setzen par(mfrow=c(1,1))

Info zu eplot() args(eplot) help(eplot) Eine Ellipse für alle Daten Eine Ellipse pro Kategorie eplot(mid[temp,]) eplot(mid[temp,], vowlax.l[temp]) Mit Mittelpunkt-Beschriftung eplot(mid[temp,], vowlax.l[temp], centroid=T) dopoints: eine entsprechende Etikettierung pro Wert eplot(mid[temp,], vowlax.l[temp], dopoints=T) Achsen drehen (nur für F1 x F2 Abbildungen) eplot(mid[temp,], vowlax.l[temp], centroid=T, form=T)

Keine Ellipsen eplot(mid[temp,], vowlax.l[temp], centroid=T, doellipse=F) Farben variieren Keine Farben und andere Linien, größere Liniendichte eplot(mid[temp,], vowlax.l[temp], centroid=T, col=F, line=T) eplot(mid[temp,1:2], vowlax.l[temp], centroid=T, col=c("pink", "red", "blue", "green"))

Achsen Beschriftung eplot(mid[temp,], vowlax.l[temp], form=T, main="Vokale", xlab="F2 (Hz)", ylab="F1 (Hz)") Bereiche setzen x = c(500, 3000) y= c(0, 1000) eplot(mid[temp,], vowlax.l[temp],form=T, xlim=x, ylim=y)

2. Ausreißer identifizieren vowlax Segmentliste vowlax.fdat Trackdatei F1-F4 vowlax.l Etikettierungen "E" "a" "I" "O" vowlax.spkr Sprecher-Etikettierungen "67" "68" F1 x F2 Abbildung zum Segment-Onset, "I" Vokale, Sprecher 67

vowlax.spkr=="67" & vowlax.l == "I" temp = vowlax Segmentliste vowlax.fdat Trackdatei F1-F4 vowlax.l Etikettierungen "E" "a" "I" "O" vowlax.spkr Sprecher-Etikettierungen "67" "68" A. Logischer Vektor um die "I" Vokale vom Sprecher 67 zu identifizieren vowlax.spkr=="67" & vowlax.l == "I" temp = B. Matrix, F1-F2 zum Segment-Onset der "I" Vokale vom Sprecher 67 on = dcut(vowlax.fdat[temp,1:2], 0, prop=T) C. Labels die dazu passen Oder labs = labs = rep("I", sum(temp)) vowlax.l[temp] D. Eine dazu passende Segmentliste seg = vowlax[temp,] seg segment list from database: kielread06 query was: Kanonic=a | E | I | O labels start end utts 4 I 1670.940 1710.690 K67MR001 5 I 2093.000 2144.190 K67MR001 7 I 538.687 595.187 K67MR003 ...

E. Abbildung (Achsen nicht drehen) on Matrix. F1, F2 zum Segment-Onset labs Vektor von "I" Labels seg Dazu passende Segmentliste E. Abbildung (Achsen nicht drehen) eplot(on, labs, dopoints=T, xlab="F1-Onset", ylab="F2-Onset") F. Ausreißer identifizieren Logischer Vektor wenn F2 dieser "I" Vokale weniger als zB 100 Hz ist temp = on[,2] < 100

eplot(on, labs, dopoints=T, xlab="F1-Onset", ylab="F2-Onset") temp = on[,2] < 100 G. Kann man diesen Befehl modifizieren, um den Ausreißer zu entfernen? eplot(on, labs, dopoints=T, xlab="F1-Onset", ylab="F2-Onset") eplot(on[!temp,], labs[!temp], dopoints=T, xlab="F1-Onset", ylab="F2-Onset")

on Matrix. F1, F2 zum Segment-Onset labs Vektor von "I" Labels seg Dazu passende Segmentliste temp = on[,2] < 100 Alternative Lösung: der Segment wird identifiziert, um den Formant-Fehler in EMU zu korrigieren. H. Der entsprechende Segment (also die Segmente, für die F2 weniger als 100 Hz ist) seg[temp,] segment list from database: kielread06 query was: Kanonic=a | E | I | O labels start end utts 194 I 911.563 964.625 K67MR096

Formantfehler in EMU korrigieren

I. (Nach der Korrektur) Formanten-Trackdatei aus seg on Matrix. F1, F2 zum Segment-Onset labs Vektor von "I" Labels seg Dazu passende Segmentliste I. (Nach der Korrektur) Formanten-Trackdatei aus seg form = emu.track(seg, "fm") J. Neue F1 und F2 zum Segment-Onset on2 = dcut(form[,1:2], 0, prop=T) K. Ellipse-Abbildung eplot(on2, labs, dopoints=T, xlab="F1-Onset", ylab="F2-Onset")

3. Vokalzielposition setzen wird oft zum 50% Zeitpunkt genommen, da hier der Vokal am wenigsten vom Kontext beeinflusst wird. Manchmal auch für offene und halb-offene Vokale: der Zeitpunkt, zu dem ein F1-Maximum erreicht wird (weil hier im Gegensatz zu Konsonanten der Vokaltrakt maximal offen ist).

Abbildung F1 vom ersten Segment von vowlax als Funktion der Zeit: vowlax Segmentliste vowlax.fdat Trackdatei F1-F4 vowlax.l Etikettierungen "E" "a" "I" "O" vowlax.spkr Sprecher-Etikettierungen "67" "68" Abbildung F1 vom ersten Segment von vowlax als Funktion der Zeit: plot(vowlax.fdat[1,1]) v = locator(1) Linke Maustaste klicken, um eine Vertikale Linie zu diesem Zeitpunkt zu überlagern abline(v=v) Der ms-Wert der Linie v$x

Logischer Vektor: T wenn w ein Maximum erreicht Die F1-Werte vom ersten Segment w = vowlax.fdat[1,1]$data w Die Zeiten, zu denen diese Werte vorkommen. T1 857.5 372 862.5 412 867.5 467 872.5 506 877.5 532 882.5 547 887.5 556 892.5 561 897.5 562 902.5 556 907.5 550 912.5 538 917.5 525 922.5 521 927.5 517 932.5 504 937.5 494 942.5 492 zeit = tracktimes(w) zeit Logischer Vektor: T wenn w ein Maximum erreicht temp = w == max(w) Die entsprechende Zeit dieses Maximums zeit[temp] [1] 897.5

Der Zeitpunkt, zu dem zuerst w ein Maximum erreicht In eine Funktion packen: mzeit <- function(werte) { zeit = tracktimes(werte) temp = werte == max(werte) # Sollte es 2 Maxima geben, nimm den ersten zeit[temp][1] } Der Zeitpunkt, zu dem zuerst w ein Maximum erreicht mzeit(w) Die mzeit() Funktion auf die Trackdatei andwenden: f1zeit = by(vowlax.fdat[,1], mzeit, simplify=T)

dcut(vowlax.fdat[,1], .35, .65, prop=T) Überprüfen für die ersten 10 Segmente for(j in 1:10){ plot(vowlax.fdat[j,1]) abline(v=f1zeit[j]) # Linke Maustaste klicken locator(1) } Vielleicht modifizieren, sodass der F1-Maximum nur im zeitlich mittleren 30% des Vokals vorkommt: mittel30 = dcut(vowlax.fdat[,1], .35, .65, prop=T) f1zeit = by(mittel30, mzeit, simplify=T)

Label-Dateien erzeugen Die Zeiten können exportiert werden, um in Emulabel eingelesen zu werden. Ein Vezeichnis definieren, zu dem die Etikettierungen exportiert werden sollen pfad = "ein Verzeichnis" Label-Dateien erzeugen makelab(f1zeit, utt(vowlax), pfad) Parallel Vektor von Äußerungsnamen Vektor von Zeiten

Template-Datei modifizieren, neue Ebene definieren (zB Target), damit die Zeiten der Zielpositionen abgebildet werden können.