In [1]:
import pandas as pd
import numpy as np
from IPython.display import Audio, FileLink, display

Labor 05¶

Subjekt-Prädikat-Objekt Satz¶

Der Student lernt Mathe.

Fragen:¶

    1. Wer lernt Mathe?
    1. Was tut der Student mit Mathe?
    1. Was lernt der Student?
    1. Was passiert da?

1. Wer lernt Mathe?¶

title

In [2]:
Audio('sound/1.wav')
Out[2]:
Your browser does not support the audio element.
In [3]:
Audio('sound/1_monoton.wav')
Out[3]:
Your browser does not support the audio element.
In [4]:
silben = ["Der", "Stu", "dent", "lernt", "Ma", "the"]
silbendauer = [0.127, 0.221, 0.391, 0.306, 0.167, 0.31]
f0 = [113.2, 114.6, 150.4, 95.87, 102.6, 98.63]
intensity = [66.1, 57.0, 85.9, 56.1, 58.2, 54.34]
df_1 = pd.DataFrame({"Silbe": silben, "Silbendauer(ms)": silbendauer, "Grundfrequenz": f0, "Intensitaet(dB)": intensity})
df_1 = df_1.set_index("Silbe")
df_1["Silbendauer(%)"] = df_1["Silbendauer(ms)"] / df_1["Silbendauer(ms)"].sum() *100
df_1
Out[4]:
Silbendauer(ms) Grundfrequenz Intensitaet(dB) Silbendauer(%)
Silbe
Der 0.127 113.20 66.10 8.344284
Stu 0.221 114.60 57.00 14.520368
dent 0.391 150.40 85.90 25.689882
lernt 0.306 95.87 56.10 20.105125
Ma 0.167 102.60 58.20 10.972405
the 0.310 98.63 54.34 20.367937

Was tut der Student mit Mathe?¶

title

In [5]:
Audio('sound/2.wav')
Out[5]:
Your browser does not support the audio element.
In [6]:
Audio('sound/2_monoton.wav')
Out[6]:
Your browser does not support the audio element.
In [7]:
silbendauer = [0.14, 0.198, 0.307, 0.422, 0.258, 0.248]
f0 = [105.5, np.nan, 110.2, 135.4, 132.8, 99.15]
intensity = [53.4, 53.4, 52.1, 66.1, 59.7, 53.2]
df_2 = pd.DataFrame({"Silbe": silben, "Silbendauer(ms)": silbendauer, "Grundfrequenz": f0, "Intensitaet(dB)": intensity})
df_2 = df_2.set_index("Silbe")
df_2["Silbendauer(%)"] = df_2["Silbendauer(ms)"] / df_2["Silbendauer(ms)"].sum() *100
df_2
Out[7]:
Silbendauer(ms) Grundfrequenz Intensitaet(dB) Silbendauer(%)
Silbe
Der 0.140 105.50 53.4 8.900191
Stu 0.198 NaN 53.4 12.587413
dent 0.307 110.20 52.1 19.516847
lernt 0.422 135.40 66.1 26.827718
Ma 0.258 132.80 59.7 16.401780
the 0.248 99.15 53.2 15.766052

Was lernt der Student?¶

title

In [8]:
Audio('sound/3.wav')
Out[8]:
Your browser does not support the audio element.
In [9]:
Audio('sound/3_monoton.wav')
Out[9]:
Your browser does not support the audio element.
In [10]:
silbendauer = [0.132, 0.191, 0.282, 0.231, 0.194, 0.224]
f0 = [111.9, 121.4, 105.1, 120, 132.8, 106]
intensity = [54.81, 54.37, 51.42, 52.28, 63.17, 56.69]
df_3 = pd.DataFrame({"Silbe": silben, "Silbendauer(ms)": silbendauer, "Grundfrequenz": f0, "Intensitaet(dB)": intensity})
df_3 = df_3.set_index("Silbe")
df_3["Silbendauer(%)"] = df_3["Silbendauer(ms)"] / df_3["Silbendauer(ms)"].sum() *100
df_3
Out[10]:
Silbendauer(ms) Grundfrequenz Intensitaet(dB) Silbendauer(%)
Silbe
Der 0.132 111.9 54.81 10.526316
Stu 0.191 121.4 54.37 15.231260
dent 0.282 105.1 51.42 22.488038
lernt 0.231 120.0 52.28 18.421053
Ma 0.194 132.8 63.17 15.470494
the 0.224 106.0 56.69 17.862839

Was passiert da?¶

title

In [11]:
Audio('sound/4.wav')
Out[11]:
Your browser does not support the audio element.
In [12]:
Audio('sound/4_monoton.wav')
Out[12]:
Your browser does not support the audio element.
In [13]:
silbendauer = [0.116, 0.153, 0.269, 0.181, 0.174, 0.225]
f0 = [106, np.nan, 109, 118.1, 156.3, 99.34]
intensity = [54.35, 52.77, 58.81, 57.67, 59.56, 52.7]
df_4 = pd.DataFrame({"Silbe": silben, "Silbendauer(ms)": silbendauer, "Grundfrequenz": f0, "Intensitaet(dB)": intensity})
df_4 = df_4.set_index("Silbe")
df_4["Silbendauer(%)"] = df_4["Silbendauer(ms)"] / df_4["Silbendauer(ms)"].sum() *100
df_4
Out[13]:
Silbendauer(ms) Grundfrequenz Intensitaet(dB) Silbendauer(%)
Silbe
Der 0.116 106.00 54.35 10.375671
Stu 0.153 NaN 52.77 13.685152
dent 0.269 109.00 58.81 24.060823
lernt 0.181 118.10 57.67 16.189624
Ma 0.174 156.30 59.56 15.563506
the 0.225 99.34 52.70 20.125224

Vergleich der Signale mit natuerlichen Pitch und derer mit nur einem Pitch-Point¶

Im Allgemeinen laesst sich auch mit nur einem Pitch-Point noch immer ganz gut erkennen, welche Silben betont sind. Dies liegt vermutlich daran, dass neben dem Pitch auch die Laenge der Silbe und deren Intensitaet Informationen ueber deren Betonung enthalten und diese gehen auch bei einem Signal mit monotonen Pitch nicht verloren.

Die einzelnen Parameter im Vergleich¶

In [14]:
print("Betontes Wort: Student")
display(df_1)
print("Betontes Wort: lernt")
display(df_2)
print("Betontes Wort: Mathe")
display(df_3)
print("Breite Betonung")
display(df_4)
Betontes Wort: Student
Silbendauer(ms) Grundfrequenz Intensitaet(dB) Silbendauer(%)
Silbe
Der 0.127 113.20 66.10 8.344284
Stu 0.221 114.60 57.00 14.520368
dent 0.391 150.40 85.90 25.689882
lernt 0.306 95.87 56.10 20.105125
Ma 0.167 102.60 58.20 10.972405
the 0.310 98.63 54.34 20.367937
Betontes Wort: lernt
Silbendauer(ms) Grundfrequenz Intensitaet(dB) Silbendauer(%)
Silbe
Der 0.140 105.50 53.4 8.900191
Stu 0.198 NaN 53.4 12.587413
dent 0.307 110.20 52.1 19.516847
lernt 0.422 135.40 66.1 26.827718
Ma 0.258 132.80 59.7 16.401780
the 0.248 99.15 53.2 15.766052
Betontes Wort: Mathe
Silbendauer(ms) Grundfrequenz Intensitaet(dB) Silbendauer(%)
Silbe
Der 0.132 111.9 54.81 10.526316
Stu 0.191 121.4 54.37 15.231260
dent 0.282 105.1 51.42 22.488038
lernt 0.231 120.0 52.28 18.421053
Ma 0.194 132.8 63.17 15.470494
the 0.224 106.0 56.69 17.862839
Breite Betonung
Silbendauer(ms) Grundfrequenz Intensitaet(dB) Silbendauer(%)
Silbe
Der 0.116 106.00 54.35 10.375671
Stu 0.153 NaN 52.77 13.685152
dent 0.269 109.00 58.81 24.060823
lernt 0.181 118.10 57.67 16.189624
Ma 0.174 156.30 59.56 15.563506
the 0.225 99.34 52.70 20.125224

Wir haben uns entschieden die Silbendauer ebenfalls in % zur Gesamtlaenge darzustellen, um eine bessere Vergleichsgrundlage zu schaffen. Damit ist dann auch recht eindeutig geworden, dass die betonten Woerter im Schnitt laenger und lauter als die Unbetonten sind und eine hoehere Grundfrequenz aufweisen. Also lauter sind.

Satz 4 verlangsamt¶

In [15]:
Audio('sound/4_slowed.wav')
Out[15]:
Your browser does not support the audio element.

Wir haben den 4. Satz auf das 1.6 fache verlangsamt. Beim Verlangsamen nimmt die Tonqualitaet ab, da die neuen Punkte zwischen den urspruenglichen Tonpunkten interpoliert werden. Diese Interpolation schafft es nicht, ein natuerlich klingendes Signal zu erschffen.

Vergleich Frage zu Aussage¶

Wir haben "Der Student lernt Mathe?" als Frage aufgenommen und mit dem letzten Staz(breiter Fokus) verglichen. Dabei ist der eindeutigste Unterschied, dass im letzten Wort ("Mathe") die Intensitaet deutlich hoeher ist und das die Grundfrequenz zum Ende hin stark ansteigt.

In [16]:
Audio('sound/frage.wav')
Out[16]:
Your browser does not support the audio element.
In [17]:
Audio('sound/aussage.wav')
Out[17]:
Your browser does not support the audio element.
Frage:¶

title

Aussage:¶

title

In [18]:
Audio('sound/4_frage_synth.wav')
Out[18]:
Your browser does not support the audio element.

Daraufhin haben wir zu der oben generierten monotonen Version der Aussage weitere Pitch-Points zugefuegt. Die Werte von diesen sind aus der aufgenommenen Frage genommen. Das dadurch generierte Signal klingt durchaus wieder wie eine Frage.

title