• Keine Ergebnisse gefunden

Segmentlisten in R erzeugen

N/A
N/A
Protected

Academic year: 2022

Aktie "Segmentlisten in R erzeugen"

Copied!
15
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Analyse von Segmentlisten in EMU/R

Jonathan Harrington &

Tina John

(2)

Überblick

Sprachdatenbank Segmentliste 2. label() Labeldatei 1. emu.query()

Trackdatei 3. emu.track()

4. dcut()

Vektor, Matrix

ANALYSE

(3)

Segmentlisten in R erzeugen

1. queryGUI

4. Segmentliste als Text-Datei speichern (z.B d.txt)

2. Query Tool 3. Segmentliste

> seg = read.segs("d.txt") 5. In R einlesen:

> a = "Phoneme = b | d & Start ( Word,Phoneme ) = 1"

> seg = emu.query("seminar04", "agr*", a) Oder gleich nach 2:

Sprachdatenbank Äußerungswildcard Abfrage

(4)

> seg

segment list from database: seminar04

query was: Phoneme = b | d & Start ( Word,Phoneme ) = 1 labels start end utts

d 466.651 566.191 agr:agr002 d 434.403 536.321 agr:agr004 b 447.065 564.620 agr:agr005 b 486.797 637.999 agr:agr006 d 479.687 577.936 agr:agr007

Spalte 1: die Etikettierungen Spalte 2: die Startzeiten

Spalte 3: die Endzeiten

> ende = muend(seg)

Spalte 4: die Äußerungen

Grundfunktionen auf Segmentlisten

label(), mustart(), muend(), utt()

> label (seg)

> labs = label(seg)

> begin = mustart(seg)

> u = utt(seg)

(5)

summary()

> summary(seg)

segment list from database: seminar04

query was: Phoneme = b | d & Start ( Word,Phoneme ) = 1 with 48 segments

Segment distribution:

b d 24 24

Zusammenfassung der Bestandteile der Segmentliste

(6)

> vec = c("a", "b", "a", "b", "c", "a")

> table(vec) a b c

3 2 1

> labs = label(seg)

table()

> table(labs) labs

b d 24 24 Tabellierung von Vektoren

> summary(seg)

segment list from database: seminar04

query was: Phoneme = b | d & Start ( Word,Phoneme ) = 1 with 48 segments

Segment distribution:

b d 24 24

(7)

mudur()

> seg

segment list from database: seminar04

query was: Phoneme = b | d & Start ( Word,Phoneme ) = 1 labels start end utts

d 466.651 566.191 agr:agr002 d 434.403 536.321 agr:agr004 b 447.065 564.620 agr:agr005 b 486.797 637.999 agr:agr006 d 479.687 577.936 agr:agr007

Segmentdauern

> dauern = muend(seg) - mustart(seg)

> dauern = mudur(seg) oder

> dauern[3:5]

117.555 151.202 98.249

Segmentdauern

(8)

Struktur eine Segmentliste

Eine Segmentliste kann wie eine Matrix behandelt werden Reihen 10 bis 12:

> seg[10:12,]

Anzahl der Segmente (Reihen)

> nrow(seg)

Der letzte Segment

> n = nrow(seg)

> seg[n,]

Außer dem vierten:

> seg[-n,]

Außer dem vorletzten

> seg[-(n-1),]

> seg[-4,]

Außer dem letzten:

Außer den letzten drei:

> seg[-((n-2):n),]

(9)

> seg

> labs = label(seg)

> dauern = mudur(seg)

> labs

"d" "d" "b" "b" "d"

Ein logischer Vektor temp der T ist, für alle Elemente in labs, die "b" sind

> temp = labs == "b"

> temp

FALSE FALSE TRUE TRUE FALSE

Logische Vektoren

Eine Segmentliste der "b" Segmente?

> seg[temp,]

(10)

> seg

> labs = label(seg)

> dauern = mudur(seg)

> labs

"d" "d" "b" "b" "d"

Ein logischer Vektor temp der T ist, für alle Elemente in labs, die "b" sind

> temp = labs == "b"

> temp

FALSE FALSE TRUE TRUE FALSE Ein Vektor, bdur, der Dauern der "b" Segmente

> bdur = dauern[temp]

(11)

> mean(c(3, 4, 5))

> zahlen = c(3, 4, 5)

> mean(zahlen)

> bdur = dauern[temp]

> dauern = mudur(seg)

> temp = labs == "b"

> labs = label(seg) Durchschnitt:

Die durchschnittliche Dauer der "b" Segmente?

> mean(bdur) oder > mean(dauern[temp])

(12)

> max(c(3, 4, 5))

> zahlen = c(3, 4, 5)

> max(zahlen)

Die Höchstdauer der "d" Segmente?

> temp = labs=="d"

> max(dauern[temp])

> dauern = mudur(seg)

> labs = label(seg)

5

(13)

Die Etikettierungen der Segmente mit einer Dauer von mehr als 100 ms

> dauern = mudur(seg)

> labs = label(seg)

> temp = dauern > 100

> labs[temp]

[1] "d" "b" "b" "b" "d"

(14)

Eine Tabellierung der Etikettierungen die eine Dauer haben, die größer als die Durchschnittsdauer aller Segmente ist.

> dauern = mudur(seg)

> labs = label(seg)

> m = mean(dauern)

> lvec = dauern > m

> table(labs[lvec]) b d

16 6

(15)

Zusammenfassung der Funktionen

emu.query()

Etikettierungen davon Startzeit davon

Endzeit davon

Äußerungen davon Dauern davon

mustart() muend() utt()

mudur()

Durchschnitt

Höchstwert, Mindestwert

Tabellierung

Logische Vektoren anwenden Auf eine Segmentliste

seg[temp,]

Auf einen Vektor

labs[temp] dauern[temp]

Segmentliste erzeugen read.segs()

label()

mean() max() min()

Zusammenfassung davon summary()

table()

Anwendung auf numerische Vektoren

Anwendung auf Schriftzeichen Vektoren

Referenzen

ÄHNLICHE DOKUMENTE

Sie fasst zusammen, die Anzahl der Autos, die zwischen 0h und 12h am Montag, Dienstag, und Mittwoch über eine Brücke fahren. Die Werte für Montag, Dienstag, und Mittwoch sind

werden für Auswahl benötigt Die Dauer aller "E" Vokale. Die Segmente, für die F1 über 700

Für Fragen 7-10 benötigen Sie eine Matrix von F1-F4 zum Segment-Onset der Diphthonge:.. fonset = dcut(dip.fdat,

Sie fasst zusammen, die Anzahl der Autos, die zwischen 0h und 12h am Montag, Dienstag, und Mittwoch über eine Brücke fahren. Die Werte für Montag, Dienstag, und Mittwoch sind

a) Schreiben Sie eine Funktion, die zu einem zuf¨ alligen Vektor x ∈ [0, 1] n die Anzahl der Eintr¨ age bestimmt die kleiner als α ∈ (0,

BufferedReader -Objekte schließlich modellieren die Eingabe als eine Folge von Zeilen, die einzeln durch String-Objekte repräsentiert werden können:.

Schreiben Sie eine 4 × 4-Matrix aus ganzen Zahlen hin und berechnen Sie die Determinante auf drei Arten: durch Entwickeln nach der ersten Spalte, durch Entwickeln nach der zweiten

1) Safety (zu jedem Zeit- punkt höchstens einer), 2) Fairness (jeder Request wird „schliesslich“ erfüllt)?. Wieso