Analyse von Spektra 2 Jonathan Harrington 1. Wiederholung: Spektra in R einlesen 2. Einige grundlegende Funktionen 3. Zugriff auf Spektralwerte 4. Spektrale-Abbildungen.

Slides:



Advertisements
Ähnliche Präsentationen
Aufbau, Abfrage, Analyse von Sprachdatenbanken
Advertisements

Spektrale Analysen in EMU-R: eine Einführung
Fast Fourier Transformation
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Objekt – Relationales – Modell Tomasz Makowski IN
Seminar Stochastik im WS 02/03
Die akustische Analyse von Sprachlauten.
Quellen-Filter Theorie der Sprachproduktion
Die akustische Analyse von Sprachlauten
Spektra von periodischen Signalen. Resonanz.
Formant-Analysen von Vokalen
Tina John Ebenen und Links in Sprachdatenbanken. Ebenen = Symbole werden mit der Zeit in einer Ebene verbunden. Namen der Ebenen Symbole der Word-Ebene.
ErstellungAnalyse Abfrage Digitale Zeitsignale akustisch, artikulatorisch Etikettieren Verknüpfung mit Symbolen Signalverarbeitung abgeleitete Signale.
Bilder und Rasterdaten
Spektrogramm Das Spektrogramm stellt 3 Dimensionen dar:
Spektrogramm und Spektrum
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.
Die akustische Analyse von Sprachlauten
Übung Akustische Phonetik
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.
Formant-Analysen von Vokalen
Spektrale Analysen in EMU-R: eine Einführung
Die t-Verteilung Jonathan Harrington.
Grundlagen der R Programmiersprache
Anwendung von Emu-TCL Jonathan Harrington.
Formant-Analysen von Vokalen (2) Jonathan Harrington 1, 2 Struktur und Abbildung einer Trackdatei 3, 4. Anwendung von vorhandenen und eigenen Funktionen.
Wahrscheinlichkeit und die Normalverteilung
Berechnung von digitalen Signalen
Berechnung von digitalen Signalen Jonathan Harrington.
Spektrale Analysen in EMU-R: eine Einführung
Aufbau, Abfrage, Analyse von Sprachdatenbanken ErstellungAnalyse Abfrage Digitale Zeitsignale akustisch, artikulatorisch Etikettieren Verknüpfung mit Symbolen.
Vokale und die Quantaltheorie
Aufbau, Abfrage, Analyse von Sprachdatenbanken ErstellungAnalyse Abfrage Digitale Zeitsignale akustisch, artikulatorisch Etikettieren Verknüpfung mit Symbolen.
Logistische Regression und psychometrische Kurven
Abfragen aus einer Sprachdatenbank Jonathan Harrington.
Frequenz- und Zeitauflösung
Parametrisierung von Spektra
Abfragen aus einer Sprachdatenbank Jonathan Harrington.
Grundlagen der Analyse von Sprachdatenbanken
Artikulationsstelle, F2-Locus, Locusgleichungen Jonathan Harrington.
Etikettierungsebenen Jonathan Harrington. Das Ziel Etikettierungen verschiedener Ebenen aufzubauen, und miteinander zu verlinken.
Aufbau, Abfrage, Analyse von Sprachdatenbanken ErstellungAnalyse Abfrage Digitale Zeitsignale akustisch, artikulatorisch Etikettieren Verknüpfung mit Symbolen.
WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.
Dynamische Programmierung (2) Matrixkettenprodukt
Algorithmentheorie 02 – Polynomprodukt und Fast Fourier Transformation
Vorlesung Informatik 2 Algorithmen und Datenstrukturen Halbzeit: Was haben wir bisher gelernt? Prof. Th. Ottmann.
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Spektralanalyse Spektralanalyse ist derart wichtig in allen Naturwissenschaften, dass man deren Bedeutung nicht überbewerten kann! Mit der Spektralanalyse.
FH D Fachhochschule Düsseldorf Fachgebiet Strömungstechnik und Akustik
Digital Audio Medientyp digital audio representation
Digital Audio Medientyp digital audio representation
Von Tom Wehnert & Konstantin Preißer
Histogramm/empirische Verteilung Verteilungen
Rechnen mit Prozenten Klasse 7c – Schuljahr 2013/2014.
1 März 2004 Bernd Reuther / Prof. Dr. Paul Müller, AG ICSY, Universität Kaiserslautern Multimediasysteme Blockveranstaltung Übung 1 - Wahrnehmung.
Varianzanalyse mit Messwiederholungen
Einige Kriterien für die Durchführung einer Varianzanalyse Jonathan Harrington.
Die Fourier-Analyse Durch die Fourier-Analyse wird ein Sprachsignal in Sinusoiden zunehmender Frequenz zerlegt, sodass wenn diese summiert werden, das.
Polynome und schnelle Fourier-Transformation
Herleitung DFT Spektrum zeitdiskretes Signal (periodisch) DFT IDFT
Plosive [a d a] [a t a] [a th a]
Programmiervorkurs WS 2014 Referenzdatentypen
1 Tagesüberblick 5 Lösung Hausaufgabe/Fragen Assoziative Felder Funktionen zu Variablenbehandlung.
Verbindung zwischen Praat und EMU Tina John. Etikettierungen: Praat zu EMU labeller 1. Praat Etikettierung4. EMU Etikettierung 2. labConvert: Konvertiert.
Grundlagen der R Programmiersprache Modul G WS 07/08.
Etikettierungsstrukturen und Abfragen in Emu Jonathan Harrington.
Kapitel 6: Einführung in die DFT
Spektrogramm und Spektrum Sitzung 8 Spektrogramm und Spektrum Date ip003rb.wav laden Formantwerte (F1 und F2) vom /a:/ im ‘mal’ ablesen Formantwerte.
 Präsentation transkript:

Analyse von Spektra 2 Jonathan Harrington 1. Wiederholung: Spektra in R einlesen 2. Einige grundlegende Funktionen 3. Zugriff auf Spektralwerte 4. Spektrale-Abbildungen 5. Spektrale Unterschiede in Plosiven

Zuerst zur Erinnerung… Bei einer Fourier-Analyse werden N aufeinanderfolge digitale Werte eines Zeitsignals in N spektrale Werte umgewandelt. Dauer in ms eines N-Punkt-Fensters: N/fs kHz, wo fs kHz die Abtastrate in kHz ist. zB 256 Punkte bei 10 kHz = 25.6 ms. Das Algorithmus um die Fourier-Analyse anzuwenden ist ein FFT und dafür muss N einer Potenz 2 sein. Von den N-spektralen Werten behalten wir diejenigen bis zur und inkl. der Faltung-Frequenz. Das sind (N/2) + 1 spektrale Komponente zwischen 0 und fs/2 Hz mit einem Frequenzabstand von fs/N

1a. Utterance-List der kielread06 Datenbank laden to tkassp

b. FFT Anwendung N = 512 bedeutet eine Frequenzauflösung von 16000/512 = Hz (bei einer Abtastrate von 16 kHz). den Pfad eintragen, wo die spektralen Daten gespeichert werden sollen Die Extension, mit der die spektralen Daten gespeichert werden sollen

c. Template-Datei ändern

k67*00* add to list K67MR010 add to list e. Segmentliste speichern zB fric.txt d. Äußerungen auswählen

f.gespeicherte Segmentliste in R einlesen…

fric = read.emusegs("H:/fric.txt") Segmentliste g. Spektral-Objekte in R einlesen sp = emu.track(fric, "dft") Spektral-Trackdatei sp5 = dcut(sp,.5, prop=T) Spektral-Matrix der Daten zum 50% Zeitpunkt Spektral-Objekte fric.l = label(fric) Label-Vektor

sp5Spektral-Matrix zum zeitlichen Mittelpunktfric.lLabel-Vektor sp Spektral-Trackdatei 2. Drei grundlegende Funktionen is.spectral() ist dies ein Spektral-Objekt? dim() Wieviele Dimensionen? trackfreq() Welche Frequenzen sind vorhanden? fric Segmentliste

is.spectral(sp) is.spectral(sp5) [1] TRUE dim(sp)dim(sp5) [1] sp5Spektral-Matrix zum zeitlichen Mittelpunkt fric.l Label-Vektor sp Spektral-Trackdatei 9 Segmente fric.l [1] "x" "C" "C" "x" "x" "C" "C" "C" "C" 257 Spalten weil wir einen 512 Punkt FFT angewendet haben fric Segmentliste

Mit trackfreq() bekommt man die tatsächlichen Frequenzen: trackfreq(sp5) … Was ist der Frequenzabstand in diesem Fall zwischen den Spektralkomponenten? 16000/512 = Hz sp5Spektral-Matrix zum zeitlichen Mittelpunkt fric.l Label-Vektor sp Spektral-Trackdatei fric Segmentliste

3. Zugriff auf die Spektralwerte Spektrale Trackdatei/Matrizen können genau wie Trackdateien/Matrizen behandelt werden, abgesehen davon, dass sich die Werte nach dem Komma auf die Frequenzen beziehen.

zB Spektrale Werte (zum zeitlichen Mittelpunkt) des 4en Segmentes (also alle Frequenzen) das gleiche zwischen Hz sp5[4,1000:2000] Spektrale Werte, Segmente 4, 5, 7 Frequenzen Hz sp5[c(4,5,7), 2000:2500] Spektrale Werte aller Segmente Hz: sp5[,0:500] sp5Spektral-Matrix zum zeitlichen Mittelpunkt fric.l Label-Vektor sp Spektral-Trackdatei fric Segmentliste

Frequenzen 480 Hz und 2000 Hz Segmente 1 und 3? sp5[c(1,3), c(480, 2000)]

Man kann auch einzelne Spektralwerte bekommen: man bekommt (wie in allen Fällen) die Werte der nächst liegenden Frequenz, zB:

Spektrale Werte aller Segmente zu 490 Hz w = sp5[,490] attr(,"class") [1] "numeric" "spectral" attr(,"fs") [1] 500 w 500 is die nächst liegende Frequenz an 490 trackfreq(sp5)[15:20] [1] sp5Spektral-Matrix zum zeitlichen Mittelpunkt fric.l Label-Vektor sp Spektral-Trackdatei fric Segmentliste

w enthält 9 dB Werte = die Amplituden zu dieser Frequenz 490 Hz. Warum 9? attr(,"class") [1] "numeric" "spectral" attr(,"fs") [1] 500 w Das sind die Amplituden zu 490 Hz dieser Segmente: fric.l [1] "x" "C" "C" "x" "x" "C" "C" "C" "C" sp5Spektral-Matrix zum zeitlichen Mittelpunkt fric.l Label-Vektor sp Spektral-Trackdatei fric Segmentliste

attr(,"class") [1] "numeric" "spectral" attr(,"fs") [1] 500 w Das sind die Zeiten zu denen, die Spektral-Werte vorkommen. (zum zeitlichen Mittelpunkt des jeweiligen Segmentes) sp5Spektral-Matrix zum zeitlichen Mittelpunkt fric.l Label-Vektor sp Spektral-Trackdatei fric Segmentliste

attr(,"class") [1] "numeric" "spectral" attr(,"fs") [1] 500 w sp5Spektral-Matrix zum zeitlichen Mittelpunkt fric.l Label-Vektorsp Spektral-Trackdatei fric Segmentliste fric segment list from database: kielread06 query was: Phonetic = C | x labels start end utts 1 x K67MR001 2 C K67MR001 3 C K67MR001 4 x K67MR003 5 x K67MR003 6 C K67MR004 7 C K67MR004 8 C K67MR006 9 C K67MR008 zeitlicher Mittelpunkt des 5en Segmentes

plot() 4. Abbildung der Spektra eigentlich plot.spectral() – d.h. plot() erkennt, dass es sich um spektrale Objekte handelt, und setzt dann plot.spectral() ein (ein Beispiel von Object Oriented Programming) daher um Hilfe/Beispiele bei der Anwendung der Abbildungen von Spektra zu bekommen, help(plot.spectral), jedoch ganz einfach plot() bei der Erzeugung von Spektral-Abbildungen verwenden.

plot(sp5 ) Spektra aller Segmente Spektra im Bereich Hz, + Etikettierung plot(sp5[,1000:3000], fric.l) Nach Etikettierung kodiert plot(sp5, fric.l) Spektra der Segmente 3 und 5 Frequenzbereich höher als 3500 Hz nach Farbe kodiert plot(sp5[c(3,5), 4000:8000], fric.l[c(3,5)]) sp5Spektral-Matrix zum zeitlichen Mittelpunkt fric.l Label-Vektor sp Spektral-Trackdatei fric Segmentliste

4b. Durchschnittsspektra (ensemble-averaged spectra) zuerst etwas zu Decibel…

Decibel-Werte Die Amplituden-Werte, die man durch tkassp bekommt sind in Decibel. Decibel sind aber Logarithmen, und um den Durchschnitt von Logarithmen zu bekommen, müssen sie zuerst in Anti- Logarithmen (eine Potenz hoch 10) umgerechnet werden. Diese Umrechnung in Anti-Logarithmen konvertiert die logarithmische Decibel oder Bel Skala in eine lineare Kraft Skala Die Berechnung (Durchschnitt usw.) erfolgt dann in der Kraft-Skala. Dann werden diese Berechnungen wieder in dB konveriert.

Logarithmische dB-Werte 60 dB 70 dB lineare Kraft-Werte 10^6 10^7 Berechnungen durchführen (10^6 + 10^7)/2 = Logarithmische dB-Werte 10 * log( , base=10) [1]

Glücklicherweise muss man nicht selbst diese Umrechnungen Decibel Kraft Decibel durchführen: dies erfolgt bei Funktionen wie plot() oder fapply() automatisch durch die Setzung des Argumentes power = T

Decibel Frequenz Dieser Wert ist der Durchschnitt aller 'roten' Werten zur selben Frequenz plot(sp5[,1000:1500], fric.l) plot(sp5[,1000:1500], fric.l, fun="mean", power=T)

5. Analyse von Plosiven

plos.lEtikettierungen ("b", "d") plos.wDie entsprechenden Wortetikettierungen plos.lvDie Etikettierungen der danach kommenden Vokale plos.aspVektor der Zeiten, zu denen der Burst vorkommt plos.samZeitsignale von "b" "d" plos.dftSpektrale Trackdatei Wie kann man plos.dft benutzten um (a) die Abtastrate (b) die Fensterlänge, mit der die spektralen Daten berechnet worden sind, zu bekommen? freqint = trackfreq(plos.dft) fs = 2 * max(freqint) N = fs/freqint[2]

Die [b, d] Burst-Spektra sollen sich dadurch unterscheiden, dass zwischen Hz [d]- Spektra steigen (die Amplitude nimmt mit zunehmender Frequenz zu) während [b]-Spektra fallen. Kann dieser Unterschied in diesen Daten festgestellt werden?

plot(plos.sam[2,], type="l") abline(v=plos.asp[2], col=2) Das Spektrum ist über 256 Punkte berechnet worden. Wieviele ms bei fs = Hz? 16 ms abline(v=plos.asp[2]-8, col=3) abline(v=plos.asp[2]+8, col=3) Hier ist das Zeitsignal fuer den zweiten Segment Der Zeitpunkt, zu dem der Burst vorkommt… Hier ist das Intervall, worauf der 256-Punkt FFT analysiert worden ist…

Wir benötigen die spektralen Werte zum Zeitpunkt vom Burst. p5 = dcut(plos.dft, plos.asp) plos.lEtikettierungen ("b", "d") plos.wDie entsprechenden Wortetikettierungen plos.lvDie Etikettierungen der danach kommenden Vokale plos.aspVektor der Zeiten, zu denen der Burst vorkommt plos.samZeitsignale von "b" "d" plos.dftSpektrale Trackdatei

Beweise, dass [b] Spektra steigen, [d] fallen (zwischen 500 Hz und 4000 Hz?)

plot(p5[,500:4000], plos.l, ylab="Intensitaet (dB)", xlab="Frequenz (Hz)") plot(p5[,500:4000], plos.l, fun="mean", power=T, xlab="Frequenz (Hz)") par(mfrow=c(1,2))