WEBVTT

00:04.880 --> 00:08.110
Dann machen wir weiter heute mit der Vorverarbeitung.

00:08.650 --> 00:11.350
Muss mal schauen, wie lange meine Stimme durchhält, bevor ich aufgebe.

00:12.010 --> 00:14.170
Ich vermute mal so eine halbe Vorlesung werde ich wahrscheinlich noch

00:14.170 --> 00:14.610
durchhalten.

00:17.450 --> 00:21.630
Wir hatten letztes Mal uns noch angeschaut, was ein Spektrogramm ist.

00:21.790 --> 00:25.190
Wir hatten gesehen, dass man in einem Spektrogramm so diese einzelnen

00:25.190 --> 00:31.610
Fenster einer Spektralanalyse, einer diskreten Fourier-Transformation

00:31.610 --> 00:33.770
eines ausgeschnittenen Fensters hernimmt.

00:34.390 --> 00:39.030
Die Werte in dieser DFT halt als Grauwerte darstellt.

00:39.150 --> 00:42.430
Schwarz viel Energie, weiß wenig Energie und die dann über die Zeit

00:42.430 --> 00:47.310
hinweg so aufgereiht hat, so dass man hier unten auf der X-Achse die

00:47.310 --> 00:51.070
Zeit hat und auf der Y-Achse die Frequenzbänder und dann die dritte

00:51.070 --> 00:53.750
Dimension, die durch die Grauwerte dargestellt wird, dann halt die

00:53.750 --> 00:56.870
Werte zu diesem Zeitpunkt in diesem Frequenzband.

00:58.610 --> 01:02.410
Und wir hatten noch eingeführt die Begriffe Oberschwingung und

01:02.410 --> 01:02.950
Harmonische.

01:02.950 --> 01:06.950
Und da war eben die Vorstellung, dass zumindest bei stimmhafter

01:06.950 --> 01:13.030
Sprache es eine Schwingung gibt, die durch die Stimmbänder auf den

01:13.030 --> 01:18.410
Luftstrom drauf modelliert wird und dass dann entsprechend es

01:18.410 --> 01:22.290
bestimmte Oberschwingungen gibt, die man dann die Harmonischen nennt.

01:23.790 --> 01:26.690
Harmonische und Oberschwingung ist im Prinzip das Gleiche, ist nur ein

01:26.690 --> 01:31.490
anderes Wort mit dem einzigen Unterschied, dass die erste Harmonische

01:31.490 --> 01:34.690
die Grundschwingung ist, während die erste Oberschwingung sozusagen

01:34.690 --> 01:38.870
die zweite Harmonische ist, also das erste Vielfache, das Doppelte der

01:38.870 --> 01:39.870
Grundfrequenz.

01:40.810 --> 01:44.250
Und in diesem Spektrum und in dem Spektrogramm menschlicher Sprache

01:44.250 --> 01:48.370
kann man eben feststellen, dass insbesondere diese Oberschwingungen

01:48.370 --> 01:52.790
Energie tragen und dass insbesondere einige wenige von diesen

01:52.790 --> 01:55.930
Oberschwingungen besonders viel Energie tragen, weil sie durch die

01:55.930 --> 01:59.570
Einstellung des Vokaltraktes besonders zur Resonanz kommen.

02:00.230 --> 02:04.750
Und diese Oberschwingung, diese Vielfachen der Grundschwingungen, die

02:04.750 --> 02:08.230
besonders viel Energie tragen, die nennt man eben gerade einen

02:08.230 --> 02:11.890
Formanten und die Formanten sind jeweils charakteristisch für den

02:11.890 --> 02:13.530
Laut, der gerade gesprochen wurde.

02:14.950 --> 02:17.770
Was man jetzt als nächstes macht, wenn man dieses Spektrogramm

02:17.770 --> 02:21.890
berechnet hat, man könnte theoretisch damit Spracherkennung schon mal

02:21.890 --> 02:22.310
betreiben.

02:22.470 --> 02:27.650
Diese Vektoren, die ich bekomme nach der DFT und nach einer

02:27.650 --> 02:31.210
Betragsbildung als Merkmal entnehmen für die Spracherkennung.

02:32.270 --> 02:35.650
Was man jetzt aber macht, ist, dass man auch hier immer noch weiter

02:35.650 --> 02:39.090
die Dimensionalität erst mal versucht zu reduzieren.

02:40.050 --> 02:45.370
Ein Problem ist ja zum Beispiel, dass die genaue Position der

02:45.370 --> 02:48.530
Formanten natürlich abhängt von der genauen Grundfrequenz.

02:49.330 --> 02:52.510
Also wenn ich mit einer höheren Stimme spreche, wandern die Formanten

02:52.510 --> 02:54.170
automatisch eher nach oben.

02:54.170 --> 02:56.830
Wenn ich mit einer tieferen Stimme spreche, eher nach unten.

02:57.050 --> 02:59.850
Und die Formanten sind ja immer an genau Vielfachen der

02:59.850 --> 03:00.510
Grundschwingung.

03:01.670 --> 03:06.550
Das heißt, je nachdem, wer da spricht, Mann oder Frau, hohe Stimme

03:06.550 --> 03:09.190
oder tiefe Stimme, sieht das Spektrum anders aus.

03:09.730 --> 03:11.370
Und das ist ja etwas, das wollen wir nicht.

03:11.430 --> 03:14.390
Wir würden gerne so sprecherspezifische Einflüsse rausbekommen.

03:15.650 --> 03:16.450
Und eine...

03:19.810 --> 03:22.850
eine Möglichkeit, die man jetzt hat, um das zu machen, ist die

03:22.850 --> 03:24.010
sogenannte Mählskalierung.

03:27.360 --> 03:33.840
Bei der Mählskalierung orientiert man sich an dem, was das menschliche

03:33.840 --> 03:34.440
Gehör macht.

03:34.540 --> 03:40.000
Wir hatten gesehen, das menschliche Gehör kann auch tiefere Frequenzen

03:40.000 --> 03:42.060
besser auflösen als höhere Frequenzen.

03:42.880 --> 03:45.120
Und das Gleiche macht man jetzt mit der Mählskala.

03:45.300 --> 03:49.940
Mit der Mählskala hat man eine im kontinuierlichen Fall eine

03:49.940 --> 03:53.300
Umskalierung der Frequenzachse im Spektrum.

03:55.460 --> 04:00.120
Im diskreten Fall hat man so Filterbänke, in denen man die Werte

04:00.120 --> 04:01.980
zusammenfasst.

04:02.740 --> 04:06.540
Und die Filterbänke sind solche Dreiecksfilterbänke und haben folgende

04:06.540 --> 04:07.140
Eigenschaft.

04:07.660 --> 04:10.760
Bei den niedrigen Frequenzen, die Filterbänke sind schmaler.

04:10.900 --> 04:14.600
Bei den höheren Filterfrequenzen werden die höheren Frequenzen, werden

04:14.600 --> 04:15.940
die Filterbänke immer breiter.

04:16.740 --> 04:22.380
Und es ist so, eine Filterbank fängt immer an bei der Spitze der

04:22.380 --> 04:23.500
vorhergehenden Filterbank.

04:23.500 --> 04:26.820
Also diese Filterbank fängt an bei der Spitze von der, diese

04:26.820 --> 04:30.360
Filterbank fängt an bei der Spitze von der und so weiter und so fort.

04:30.400 --> 04:33.400
Und dann ist hier schon falsch aufgezeichnet und die werden dann immer

04:33.400 --> 04:33.860
breiter.

04:35.020 --> 04:39.360
Muss man irgendwie das besser neu hinzeichnen.

04:40.020 --> 04:42.340
Und die werden dann entsprechend immer weiter.

04:43.560 --> 04:48.040
Und was man jetzt macht, ist man hat hier diskrete Werte stehen.

04:48.220 --> 04:50.580
Das sei das Ergebnis einer diskreten Fourier Transformation.

04:51.320 --> 04:54.980
Dann nimmt man alle die Werte, die in so ein Dreieck fallen, her.

04:55.760 --> 05:00.240
Man summiert die auf und zwar gewichtet mit der Höhe des Dreieckes

05:00.240 --> 05:05.160
über diesem Wert und bekommt dadurch eine gewichtete Summe und ersetzt

05:05.160 --> 05:09.300
eine gesamte Filterbank durch den Wert, der bei dieser gewichteten

05:09.300 --> 05:13.580
Summe rauskommt, sodass man am Ende hinterher nur noch so viele

05:13.580 --> 05:16.400
einzelne Werte übrig behält, wie man vorher Filterbänke hatte.

05:16.960 --> 05:21.860
Und jede Filterbank summiert halt gewichtet alle Frequenzbänder, die

05:21.860 --> 05:24.460
in sie hineingefallen sind, auf zu einem einzigen Wert.

05:27.040 --> 05:29.980
Im kontinuierlichen Fall sieht das einfach so aus, dass man da

05:29.980 --> 05:33.060
abbildet kontinuierlich eine Frequenz auf die andere.

05:33.620 --> 05:37.500
Null wird auf null Hertz abgebildet, aber dann zum Beispiel die 8000

05:37.500 --> 05:40.960
Hertz wird schon auf so einen Wert wie 3000 abgebildet.

05:41.040 --> 05:44.380
Und das ist dann kein wirkliches, richtiges Hertz mehr, sondern das

05:44.380 --> 05:47.260
ist dann eine Mählskalierte Hertz-Skala.

05:49.540 --> 05:51.780
Was hat jetzt diese Mählskala für einen Effekt?

05:52.160 --> 05:57.000
Das Erste sieht man, ich reduziere die Dimensionalität meines

05:57.000 --> 06:00.440
ursprünglichen kapstralen Vektors, weil ich behalte am Ende nur so

06:00.440 --> 06:02.500
viele Werte übrig, wie ich Filterbänke habe.

06:02.960 --> 06:05.680
Und das sind dann in der Regel weniger Filterbänke, als ich vorher

06:05.680 --> 06:06.240
Werte hatte.

06:07.280 --> 06:11.240
Dadurch, dass ich das reduziere und dass ich alle Werte, die in so ein

06:11.240 --> 06:16.420
Dreieck reinfallen, zusammenfasse in einen Wert, werden die Frequenzen

06:16.420 --> 06:19.380
in der Frequenzdimension verschmiert.

06:19.980 --> 06:24.340
Das heißt, es kommt jetzt auch auf einmal nicht mehr so genau darauf

06:24.340 --> 06:26.820
an, wo vorher eine Frequenz lag.

06:27.400 --> 06:31.480
Sie wird jetzt in dieser Filterbank verrechnet mit Frequenzen, die

06:31.480 --> 06:32.300
drum herum lagen.

06:33.140 --> 06:37.100
Und zum Teil fließt sie auch noch ein mit in eine der benachbarten

06:37.100 --> 06:41.640
Filterbänke, je nachdem, wo sie da in diesem Dreieck reinfällt.

06:42.280 --> 06:45.780
Und da ist eben die Idee dahinter, dass man hinterher, wenn man das

06:45.780 --> 06:48.480
macht, wenn man so diese Frequenzen zusammenfasst und verschmiert,

06:48.880 --> 06:51.740
dann kommt es auf die genaue Lage des Formanten gar nicht mehr so

06:51.740 --> 06:52.200
darauf an.

06:52.520 --> 06:55.760
Ob der jetzt fünf Hertz höher oder tiefer war, ob also die

06:55.760 --> 06:58.660
Grundfrequenz irgendwie ein bisschen höher oder tiefer war, kommt, ist

06:58.660 --> 06:59.920
danach nicht mehr so wichtig.

07:01.360 --> 07:04.820
Das Ganze wird sowieso alles in einer Filterbank zusammensummiert.

07:05.800 --> 07:09.380
Und deswegen ist das Ganze dadurch eine Darstellung, die weniger

07:09.380 --> 07:13.840
sprecherabhängig ist, weil die genaue Lage der Formanten verschmiert

07:13.840 --> 07:17.260
wird und jetzt nur noch auf einen, so einen Wert zusammen addiert

07:17.260 --> 07:17.500
wird.

07:28.280 --> 07:33.320
Das hier ist jetzt noch mal ein Bild, das noch mal zu dem Effekt der

07:33.320 --> 07:34.680
Fensterlänge was sagen sollte.

07:35.120 --> 07:38.600
Wir hatten letzte Woche darüber gesprochen und diskutiert, was für

07:38.600 --> 07:41.300
einen Unterschied macht es, ob ich ein langes Fenster nehme und damit

07:41.300 --> 07:44.740
ausschneide oder ob ich ein kurzes Fenster nehme und damit ich

07:44.740 --> 07:45.220
ausschneide.

07:45.880 --> 07:48.660
Und hier hat man zwei Spektren.

07:48.840 --> 07:51.980
Das eine wurde mit einem langen Fenster, das andere mit einem kurzen

07:51.980 --> 07:52.760
Fenster gerechnet.

07:53.240 --> 07:56.040
Jetzt ist die Frage, welches davon ist das lange Fenster und welches

07:56.040 --> 07:57.320
davon ist das kurze Fenster?

08:00.390 --> 08:04.590
Wenn man sich jetzt die beiden Spektren anschaut, welches davon ist

08:04.590 --> 08:08.530
offensichtlich mit einem langen Fenster gerechnet worden und welches

08:08.530 --> 08:11.690
ist offensichtlich davon mit einem kürzeren Fenster gerechnet?

08:13.250 --> 08:16.730
Was war noch mal der Unterschied zwischen langes Fenster nehmen und

08:16.730 --> 08:17.690
kurzes Fenster nehmen?

08:18.610 --> 08:23.190
Was passiert, wenn ich bei einer diskreten Foyer-Transformation ein

08:23.190 --> 08:24.050
langes Fenster nehme?

08:24.150 --> 08:25.750
Was passiert, wenn ich ein kurzes Fenster nehme?

08:25.890 --> 08:28.710
Was war da noch mal dieses Spannungsfeld, in dem ich mich bewegt habe?

08:33.510 --> 08:36.230
Haben wir letzte Woche eine Viertelstunde sicherlich drüber referiert,

08:37.010 --> 08:38.030
ausführlich darüber gesprochen.

08:39.550 --> 08:41.810
Wenn ich ein langes Fenster nehme, was passiert?

08:41.810 --> 08:44.230
Wie viele Werte schiebe ich in meine DFT rein?

08:44.290 --> 08:45.450
Wie viele Werte bekomme ich raus?

08:50.820 --> 08:55.260
Wenn ich 16 Werte in eine DFT rein schiebe, wie viele Werte spuckt mir

08:55.260 --> 08:57.320
die DFT raus, die diskrete Foyer-Transformation?

09:00.280 --> 09:01.680
Vorne kommen 16 Werte rein.

09:02.940 --> 09:06.260
Also ein Signal, von dem ich angehe, das periodisch ist, mit Periode

09:06.260 --> 09:09.440
16 Sample, was auch immer, wie häufig ich ein Sample halb mache, hängt

09:09.440 --> 09:11.060
davon ab, wie viel das hinterher in Sekunden ist.

09:11.760 --> 09:13.680
Jetzt schiebe ich diese 16 Werte in eine DFT rein.

09:13.680 --> 09:17.340
In wie viele Werte transformiert die diskrete Foyer-Transformation?

09:20.660 --> 09:23.320
In 16 komplexe Werte.

09:25.020 --> 09:28.820
Wenn ich jetzt also ein langes Fenster habe und reinschiebe, bekomme

09:28.820 --> 09:29.980
ich viele Werte raus.

09:30.080 --> 09:32.660
Wenn ich ein kurzes Fenster reinschiebe, schiebe ich wenige Werte

09:32.660 --> 09:34.160
rein, bekomme wenige Werte raus.

09:34.660 --> 09:37.160
Wofür standen nochmal die Koeffizienten, die bei einer DFT hinten

09:37.160 --> 09:37.660
rauskamen?

09:42.390 --> 09:47.470
Ja, also für die Amplitude und die Phase in einem Frequenzband.

09:48.250 --> 09:51.490
Wenn ich viele Werte reinschiebe, wie viele Frequenzbänder habe ich

09:51.490 --> 09:52.490
dann hinten, die rauskommen?

09:53.750 --> 09:54.550
Für viele.

09:55.110 --> 09:57.750
Wenn ich wenig reinschiebe, wie viele Frequenzbänder kommen hinten

09:57.750 --> 09:58.030
raus?

09:59.070 --> 09:59.590
Wenig.

10:00.350 --> 10:03.210
Von wie viel Hertz bis wie viel Hertz gehen die Frequenzbänder?

10:06.230 --> 10:06.750
Oder?

10:09.680 --> 10:11.020
Ich habe jetzt von...

10:11.020 --> 10:11.700
Ne, eben nicht.

10:11.800 --> 10:14.040
Die gehen von 0 bis zu einem bestimmten Wert.

10:18.600 --> 10:19.080
Halben.

10:19.080 --> 10:21.600
Nicht ganz zum Halben, echt kleiner als das Halben.

10:21.700 --> 10:22.800
Sagt mir, welches Theorien?

10:24.340 --> 10:24.860
Welches Theorien?

10:26.740 --> 10:28.320
Nyquist-Shenton-Theorien besagt das.

10:29.060 --> 10:33.780
Das heißt, wenn ich viele Werte reinschiebe, bekomme ich viele Werte

10:33.780 --> 10:36.560
raus und die decken den Wert von 0 bis halbe Grenzfrequenz ab.

10:36.960 --> 10:39.880
Wenn ich wenig Werte reinschiebe, kriege ich wenig Werte raus und die

10:39.880 --> 10:43.400
decken den Wert von 0 bis halbe Grenzfrequenz an.

10:43.460 --> 10:44.800
Und die halbe Grenzfrequenz ist immer gleich.

10:44.900 --> 10:47.140
Egal, ob ich ein kleines Fenster nehme oder ein großes Fenster, die

10:47.140 --> 10:47.860
hat sich nicht geändert.

10:48.680 --> 10:53.300
Wenn ich jetzt die beiden Dinger miteinander vergleiche, wo habe ich

10:53.300 --> 10:58.340
offensichtlich mehr Frequenzbänder aufgetragen in der Y-Achse und wo

10:58.340 --> 11:00.380
habe ich offensichtlich weniger Frequenzbänder aufgetragen?

11:02.720 --> 11:06.240
Genau, rechts hier habe ich eine viel feinere Auflösung in der

11:06.240 --> 11:06.860
Frequenzachse.

11:06.960 --> 11:08.840
Da kann ich viel mehr einzelne Frequenzbänder unterscheiden.

11:08.840 --> 11:13.600
Hier offensichtlich auf der Frequenz sind die Stufen viel breiter.

11:14.260 --> 11:17.160
Also muss das ein längeres Fenster gehabt haben als das hier.

11:17.920 --> 11:19.320
Woran kann ich es noch erkennen?

11:19.840 --> 11:24.220
Wenn ich längere Fenster nehme, bekomme ich dann mehr oder weniger

11:24.220 --> 11:25.380
Fenster auf der Zeitachse.

11:27.280 --> 11:31.020
Naja, wenn die Verschiebung immer gleich bleibt, bekomme ich weniger.

11:32.000 --> 11:34.940
Weniger gute Auflösung auf der Zeitachse, wenn ich ein langes Fenster

11:34.940 --> 11:35.160
habe.

11:36.000 --> 11:38.900
Ich verschiebe immer um 10 Millisekunden ein langes Fenster.

11:39.480 --> 11:43.900
Habe dann dementsprechend auf der Zeit eine schlechtere Auflösung,

11:44.580 --> 11:47.680
weil ich halt mehr vermische, verschwimme.

11:48.380 --> 11:54.480
Und das sieht man hier auch so ein bisschen, dass das hier in der

11:54.480 --> 11:56.360
Zeitauflösung schärfer ist als hier.

11:56.460 --> 11:59.740
Hier sind diese Striche immer so schön rot durchgehend.

12:00.280 --> 12:04.620
Hier sind sie zwar breiter, aber variieren in ihrer Farbe stärker.

12:05.240 --> 12:06.180
Als da vorne.

12:06.920 --> 12:09.560
Aber wie gesagt, an der Frequenzauflösung sieht man es halt besonders

12:09.560 --> 12:12.780
gut, dass man da rechts viel mehr Frequenzbänder darstellt als links.

12:13.460 --> 12:16.560
Also muss rechts das mit dem langen Fenster sein und links das mit dem

12:16.560 --> 12:17.280
kurzen Fenster.

12:19.200 --> 12:21.200
Was ich also bisher machen kann, ist.

12:23.340 --> 12:29.380
Ich kann so ein Spektrogramm berechnen mit Fensterung und DFT und kann

12:29.380 --> 12:35.640
darauf dann diese Mählskala anwenden und kann aus diesem Pro

12:35.640 --> 12:39.540
-Zeiteinheit kann ich diese Koeffizienten rausbekommen, je nachdem,

12:39.640 --> 12:41.920
wie viele Filterbänke ich in meiner Mählskalierung habe.

12:44.990 --> 12:46.750
Jetzt kann man noch was anderes machen.

12:47.530 --> 12:50.510
Und dafür gehen wir wieder zurück zum Quelle-Filter-Modell der

12:50.510 --> 12:50.930
Sprache.

12:51.690 --> 12:54.790
Beim Quelle-Filter-Modell der Sprache sind wir davon ausgegangen, wir

12:54.790 --> 12:57.410
haben entweder stimmhafte oder stimmlose Sprache, haben so einen

12:57.410 --> 13:01.890
Schalter, der zwischen einem periodischen Signal für die Anregung und

13:01.890 --> 13:03.390
weißem Rauschen hin und her schaltet.

13:03.830 --> 13:05.810
Und dann geht das Ganze durch den Vokaltrakt.

13:05.930 --> 13:11.290
Danach geht das Ganze durch die Lippen und wird dann entsprechend

13:11.290 --> 13:11.930
abgestrahlt.

13:11.990 --> 13:16.210
Wir bekommen ein Signal fn und das seien alles Systeme.

13:16.850 --> 13:19.710
Der Umschalter sei ein System, der Vokaltakt sei ein System, Lippen

13:19.710 --> 13:20.370
seien ein System.

13:20.950 --> 13:24.670
Dann ergibt sich das, oder Entschuldigung, das on ist das Signal, das

13:24.670 --> 13:25.630
durch den Umschalter kommt.

13:26.330 --> 13:32.690
Dann ergibt sich das Ergebnis von fn eben als das Signal, das da aus

13:32.690 --> 13:36.830
der Lunge rauskommt und hinter den Stimmlippen hervorkommt, gefaltet

13:36.830 --> 13:40.350
mit dem System, das für den Vokaltrakt steht, gefaltet mit dem System,

13:40.910 --> 13:46.670
das für die Lippen steht.

13:46.870 --> 13:51.590
Und wenn ich hier sage gefaltet, dann müssen rn und vn genau was sein

13:51.590 --> 13:54.170
für den Vokaltrakt und für die Lippen, damit das gilt?

13:55.650 --> 13:59.410
Was sind dann vn und rn für das System Vokaltrakt und für das System

13:59.410 --> 13:59.750
Lippen?

14:00.470 --> 14:03.990
Wenn da durch eine Faltung sowas hervorkommt, wenn ich das System, den

14:03.990 --> 14:09.590
Effekt des Systems durch eine Faltung beschreibe, nehmen wir mal an,

14:09.650 --> 14:14.930
das seien Zeit-Linear-Time-Invariant-Systems, also lineare Zeit

14:14.930 --> 14:16.090
-Invariante -Systeme.

14:16.690 --> 14:18.030
Was heißt das dann mit der Faltung?

14:18.170 --> 14:19.790
Was kann ich dann, was müssen die sein?

14:20.490 --> 14:22.210
Was muss vn und rn sein entsprechend?

14:26.040 --> 14:27.660
Na, müssen die Impulsantworten sein.

14:28.580 --> 14:33.300
Man hatte gesagt, ein System, ein lineares Zeit-Invariante-System kann

14:33.300 --> 14:33.740
ich z.B.

14:33.920 --> 14:37.180
dadurch ausrechnen, dass ich das Eingangssignal mit der Impulsantwort

14:37.180 --> 14:37.640
falte.

14:38.420 --> 14:41.660
Und jetzt sage ich ja hier gerade, das ist das Signal, was am Ende

14:41.660 --> 14:45.340
rauskommen soll aus dem System, das soll sein, das Eingangssignal,

14:45.540 --> 14:47.500
gefaltet mit vn, gefaltet mit rn.

14:47.580 --> 14:49.960
Und das soll das sein, wenn es durch den Vokaltrakt und die Lippen...

14:49.960 --> 14:53.820
Das heißt, vn muss damit die Impulsantwort des Vokaltraktes sein und

14:53.820 --> 14:57.100
rn dementsprechend die Impulsantwort der Lippen.

14:57.100 --> 14:59.680
Und damit gefaltet, kriege ich dieses System raus.

15:00.220 --> 15:03.260
Dann kriege ich dieses Ergebnis raus und habe den Vokaltrakt als

15:03.260 --> 15:04.000
System beschrieben.

15:04.520 --> 15:06.900
Und je nachdem, wie ich meinen Vokaltrakt einstelle, je nachdem,

15:07.020 --> 15:09.640
welchen Laut ich produzieren will, verändern sich eben die

15:09.640 --> 15:13.560
Impulsantwort und die vom Lippen- und Vokaltrakt.

15:15.260 --> 15:18.740
Jetzt kann man dieses System, dass man erst den Vokaltrakt hat und

15:18.740 --> 15:22.340
danach Lippen und dass die irgendwie das Signal verändern, auch noch

15:22.340 --> 15:26.060
mit einem anderen Modell annähern.

15:26.060 --> 15:28.100
Und das ist ein sogenannter Helmholtz-Resonator.

15:28.580 --> 15:33.240
Sieht man vielleicht hin und wieder im Physikunterricht in der Schule.

15:33.380 --> 15:34.480
Hat das schon mal irgendjemand gesehen?

15:35.100 --> 15:35.960
Ein Helmholtz-Resonator.

15:36.500 --> 15:41.360
Die Idee bei einem Helmholtz-Resonator ist, dass man sich die Resonanz

15:41.360 --> 15:42.540
-Eigenschaften von Röhren...

15:46.960 --> 15:48.460
zur Nutze macht.

15:49.260 --> 15:56.140
An welcher Frequenz so eine Röhre resoniert, hängt zum einen ab von

15:56.140 --> 15:59.760
der Größe der Öffnung, wie groß die Röhre ist, und zum anderen vom

15:59.760 --> 16:01.960
Volumen der gesamten Röhre.

16:02.460 --> 16:05.180
Und wenn ich weiß, wie groß die Öffnung der Röhre ist, dann kann ich

16:05.180 --> 16:10.060
das Volumen auch aus der Größe der Öffnung her berechnen, wenn ich

16:10.060 --> 16:11.280
weiß, wie lang die Röhre ist.

16:11.460 --> 16:14.880
Also im Prinzip Größe der Öffnung und Länge der Röhre bestimmen mir,

16:16.080 --> 16:17.400
welche Resonanzfrequenz das hat.

16:17.400 --> 16:22.720
Das heißt also, wenn ich eine Frequenz da reingebe, welche Frequenz

16:22.720 --> 16:24.160
besonders stark resoniert.

16:26.780 --> 16:29.960
Und wenn ich jetzt zum Beispiel weiß, ich hätte gerne ein Signal, das

16:29.960 --> 16:36.180
bestimmte Formanten hat, das hat also besonders viel Energie hier,

16:36.360 --> 16:37.040
hier und hier.

16:38.840 --> 16:42.620
Wenn ich das weiß, dann kann ich mir entsprechend auch solche Röhren

16:42.620 --> 16:48.620
zusammenbauen, die dann halt jede Röhre dann entsprechend resoniert an

16:48.620 --> 16:51.560
der Stelle, wo ich gerne meine Formanten haben will.

16:52.020 --> 16:55.240
Und auf die Art und Weise kann ich mir für jeden laut, wenn ich weiß,

16:55.360 --> 16:58.400
wie die Formanten aussehen sollen, kann ich mir so ein Gebilde von

16:58.400 --> 17:01.320
Röhren zum Beispiel hernehmen und habe dann hinterher einen

17:01.320 --> 17:04.420
Vokaltrakt, wenn ich die Röhren von der Länge und vom Durchschnitt her

17:04.420 --> 17:06.800
geschickt wähle, sodass das Richtige rauskommt.

17:09.760 --> 17:12.520
Was man jetzt mal machen kann, ist, man kann jetzt einfach mal

17:12.520 --> 17:14.720
menschliche Sprache hernehmen und messen.

17:14.720 --> 17:16.580
Und man hat das zum Beispiel für Vokale gemacht.

17:16.700 --> 17:19.880
Vokale sind immer stimmhaft, das heißt, in Vokalen kann ich auch immer

17:19.880 --> 17:20.600
Formanten sehen.

17:21.860 --> 17:24.780
Deswegen eignen sie sich ganz gut, wenn man jetzt Stimme anhand oder

17:24.780 --> 17:27.300
Laute anhand von Formanten charakterisieren möchte.

17:28.040 --> 17:30.780
Und was man da gemacht hat, hat man ganz viele Aufnahmen von

17:30.780 --> 17:34.820
amerikanischen Vokalen genommen und hat im Spektrogramm nachgeguckt,

17:34.880 --> 17:35.780
wo ist Position 1.

17:35.920 --> 17:37.380
Formant und wo ist Position 2.

17:37.560 --> 17:37.900
Formant.

17:38.720 --> 17:41.760
Ist natürlich relativ schwierig, die automatisch zu extrahieren, aber

17:41.760 --> 17:45.780
so durch Draufdrücken, Gucken kann man so ungefähr grob sagen, wo die

17:45.780 --> 17:46.040
liegen.

17:47.980 --> 17:52.600
Wenn ich weiß, wo zum Beispiel diese Formanten liegen für jeden Vokal,

17:52.940 --> 17:56.020
dann kann ich damit zum Beispiel Synthese betreiben.

17:56.660 --> 18:01.260
Dann brauche ich sozusagen nur Schwingungen, die diesen Formanten, die

18:01.260 --> 18:04.500
dafür sorgen, dass bei den Formanten halt extrem viel Energie ist, so

18:04.500 --> 18:05.800
zusammenmischen, dass das kommt.

18:05.920 --> 18:10.360
Ich kann mir sozusagen ein Spektrum aufzeichnen, das dem entspricht.

18:12.600 --> 18:15.680
Was ich also weiß, ist, dass mein Spektrum so aussehen soll.

18:19.310 --> 18:23.950
Es gibt irgendwo einen ersten Formanten und es gibt irgendwo einen

18:23.950 --> 18:24.830
zweiten Formanten.

18:25.210 --> 18:27.270
Das heißt, die sollen viel Energie haben.

18:27.810 --> 18:30.610
Jetzt weiß man, dass die unteren Formanten immer ein bisschen mehr

18:30.610 --> 18:32.710
Energie haben als die anderen, also macht man da so ein bisschen

18:32.710 --> 18:33.830
Schwingungen.

18:33.910 --> 18:37.510
Und dann muss man irgendwie numerische Mathematik, sich irgendwie eine

18:37.510 --> 18:41.830
glatte Kurve hier durchlegen, die halt dafür sorgt, dass sie ihre

18:41.830 --> 18:44.130
Maxima immer an diesem Formantenpositionen hat.

18:44.750 --> 18:46.010
Und dann hätte man ein Spektrum.

18:46.210 --> 18:48.270
Und das Spektrum kann man invertieren und dann hat man ein

18:48.270 --> 18:51.390
Zeitbereichssignal, das zum Beispiel so klingt wie dieser Formant.

18:52.890 --> 18:55.970
Wenn man sich jetzt mal anschaut, wo der erste und der zweite Formant

18:55.970 --> 18:59.190
bei Vokalen liegen, dann sieht das Ganze so aus.

18:59.670 --> 19:02.810
Hier hat man auf der einen Achse abgetragen die Frequenz des ersten

19:02.810 --> 19:05.930
Formandes, hier auf der anderen Achse die Frequenz des zweiten

19:05.930 --> 19:06.530
Formandes.

19:06.530 --> 19:10.150
Und dann hat man für hier in IPA-Notationen entsprechende

19:10.150 --> 19:14.770
amerikanische Vokale, die immer dahin gemalt, wo man bei der Aufnahme

19:14.770 --> 19:16.970
den ersten und den zweiten Formant gesehen hat.

19:17.610 --> 19:23.170
Und wenn man das macht, sieht man, dass sich die Vokale in so einer

19:23.170 --> 19:28.270
dreiecksähnlichen Region in diesem Raum aus erster und zweiter Formant

19:28.270 --> 19:29.050
klastern.

19:30.030 --> 19:32.770
Deswegen nennt man das Ganze erstmal das Vokal-Dreieck.

19:33.590 --> 19:36.490
Das ist der Bereich im Raum des ersten und zweiten Formandes, wo jetzt

19:36.490 --> 19:40.330
diese amerikanischen Vokale sich geklastert haben.

19:40.770 --> 19:43.670
Und innerhalb dieses Dreiecks kann man dann so Regionen ungefähr

19:43.670 --> 19:48.270
einordnen, dass man ungefähr sagen kann, wenn der erste Formant das

19:48.270 --> 19:51.370
ist und der zweite Formant das, dann muss es der Vokal sein.

19:52.710 --> 19:54.490
Das funktioniert nicht immer so schön.

19:54.570 --> 19:58.050
Man sieht zum Beispiel hier oben so diese Grennlinie zwischen den AE

19:58.050 --> 20:00.630
und den Y, die ist nicht wirklich scharf.

20:00.630 --> 20:04.110
Da gibt es relativ viele AE, die in diesen Y-Bereich mit reingehen.

20:04.510 --> 20:08.070
Und es gibt ein paar I, die kommen damit in diesen I-Bereich mit rein.

20:08.190 --> 20:09.930
Und da gibt es noch so ein Y, das da drin ist.

20:10.310 --> 20:15.210
Das heißt, diese Grenze zu finden ist nicht immer 100% einfach und 100

20:15.210 --> 20:20.010
% schön, aber im Großen und Ganzen liegen die da richtig.

20:21.950 --> 20:25.730
Was das unterstützt, ist die Vermutung, dass wenn ich weiß, wo die

20:25.730 --> 20:28.750
Formanten liegen, zumindest für Vokale, zumindest für stimmhafte

20:28.750 --> 20:31.970
Sprache, dann ist das ein sehr schönes Merkmal, um damit

20:31.970 --> 20:33.310
Spracherkennung zu betreiben.

20:35.350 --> 20:38.150
Und jetzt ist was relativ Kompliziertes passiert.

20:39.010 --> 20:42.630
Also Sie haben gehört Fourier-Transformation, Sie haben gehört Laplace

20:42.630 --> 20:44.510
-Transformation und Z-Transformation.

20:45.150 --> 20:48.910
Sie haben gesehen, dass wenn man die Z-Transformation zum Beispiel auf

20:48.910 --> 20:51.830
den Einheitskreis einschränkt, dass das so eine Approximation des

20:51.830 --> 20:53.250
Spektrums ist.

20:55.070 --> 20:57.910
Wir haben gesehen, wenn wir jetzt mit der Fourier-Transformation

20:57.910 --> 21:00.670
arbeiten oder mit der diskreten Fourier-Transformation, können wir ein

21:00.670 --> 21:01.550
Spektrogramm bekommen.

21:01.950 --> 21:04.970
Im Spektrogramm kann man schön sehen, wo da Formanten verlaufen.

21:05.430 --> 21:08.610
Und das scheint etwas zu sein, wo man gut den Laut ungefähr daran

21:08.610 --> 21:09.290
erkennen kann.

21:10.350 --> 21:13.190
Gleichzeitig ist es so, dass man auch ein System aufstellen kann, dass

21:13.190 --> 21:16.430
man den Vokalkarakter als lineares System aufstellen kann.

21:16.550 --> 21:19.350
Und anscheinend müssen ja auch diese Impulsantworten, die

21:19.350 --> 21:24.630
Konfiguration dieser linearen Systeme irgendwie charakteristisch sein

21:24.630 --> 21:26.010
für den Laut, der gesprochen wird.

21:26.010 --> 21:29.270
Und sowas wie Erster und Zweiter vom Mann scheinen ja auch ganz

21:29.270 --> 21:29.950
wichtig zu sein.

21:30.770 --> 21:34.530
Und irgendwie parallel dazu hatte man eine zweite Idee verfolgt, wie

21:34.530 --> 21:38.990
man Merkmale für die Vorverarbeitung extrahieren kann.

21:39.830 --> 21:43.750
Das nannte sich lineare Vorhersage, Linear Predictive Coding.

21:44.490 --> 21:48.550
Und was man zu dem Zeitpunkt noch nicht gesehen hatte, wo man aber

21:48.550 --> 21:52.170
hinterher drauf gekommen ist, ist, dass dieses Linear Predictive

21:52.170 --> 21:55.810
Coding sehr eng verwandt ist zu einer Vorverarbeitung, die man mit

21:55.810 --> 21:57.510
einer Z-Transformation machen würde.

21:59.390 --> 22:02.490
Deswegen nochmal die Erinnerung, oder andersherum, es gibt dieses

22:02.490 --> 22:03.510
Quelle -Filter-Modell.

22:03.630 --> 22:07.190
Man hat da so lineare Systeme drin stehen, mit der Sprache produziert

22:07.190 --> 22:07.410
wird.

22:07.790 --> 22:11.090
Und jetzt legt man sich auf ein spezielles lineares System fest.

22:11.550 --> 22:14.930
Man sagt nicht mehr, das ist irgendein Zeitinvariantes-Lineares

22:14.930 --> 22:19.170
-System, sondern das lineare System, das man verwendet, das sähe eben

22:19.170 --> 22:19.870
so aus.

22:19.870 --> 22:27.110
Das hätte da so P-Koeffizienten und hinten noch so ein E-Term dran.

22:28.550 --> 22:30.950
Das da ist ein vollständiges lineares System.

22:31.830 --> 22:35.730
Hat halt hier diese P-AKs, die ich halt geeignet wählen muss.

22:36.270 --> 22:39.650
Und hier hinten noch so ein E-Term, den ich auch geeignet wählen muss.

22:40.190 --> 22:43.470
Und wenn ich das hernehme, ist das ein lineares System.

22:43.570 --> 22:47.110
Und mit diesem linearen System kann ich sagen, da wird Sprache mit

22:47.110 --> 22:49.290
produziert.

22:51.010 --> 22:53.550
Das ist erstmal so die erste, die theoretische Überlegung.

22:56.170 --> 22:59.850
Wenn ich mir jetzt berechne, was ist die Z-Transformierte der

22:59.850 --> 23:03.210
Impulsantwort dieses Systems, dann komme ich hier hin.

23:03.790 --> 23:07.010
Das hier ist die Z-Transformierte der Impulsantwort dieses Systems.

23:07.490 --> 23:10.590
Von dem ich sage, von dem ich annehme, dieses System produziert

23:10.590 --> 23:14.610
menschliche Sprache, wenn ich nur immer für jeden Laut, den ich

23:14.610 --> 23:18.670
produzieren will, diese P-AKs da richtig wähle.

23:19.170 --> 23:21.730
Wir hatten letztes Mal schon gesehen, wenn man ein Signal z

23:21.730 --> 23:24.650
-transformiert, dann ist das so ein Quotient.

23:25.110 --> 23:27.970
Und wenn man beliebiges lineares System hernimmt, lineares

23:27.970 --> 23:30.930
zeitinvariantes System hernimmt, das man so als Differentialgleichung

23:30.930 --> 23:34.450
beschreiben kann, dann ist es ein Quotient aus zwei Polynomen.

23:35.070 --> 23:38.150
Jetzt habe ich hier nicht ein beliebiges lineares System, sondern ich

23:38.150 --> 23:41.770
habe ein festes, ein bisschen vereinfachtes lineares System genommen.

23:42.510 --> 23:47.590
Und das hat eben keine zwei Polynome, eins im Zähler und eins im

23:47.590 --> 23:50.770
Nenner, sondern das ist so vereinfacht, dass das Polynom, das im

23:50.770 --> 23:53.210
Zähler steht, ganz einfach ist, das lautet Konstant 1.

23:54.130 --> 23:57.850
Und stattdessen hat es nur noch ein Polynom unten im Nenner stehen.

23:58.550 --> 24:01.470
Und wenn ich also nur noch ein Polynom unten im Nenner stehen habe,

24:01.750 --> 24:04.510
dann kann der Zähler nie Null werden, der Zähler ist Konstant 1.

24:04.770 --> 24:08.050
Das System ist einfach so gewählt, dass halt sowas dabei herauskommt.

24:08.510 --> 24:13.690
Und unten im Nenner kommen halt nur noch Nullstellen vor, können

24:13.690 --> 24:17.430
Nullstellen vorkommen, nämlich an den Nullstellen dieses Polynoms oder

24:17.430 --> 24:20.610
besser dieses Polynoms 1- in dieser Sache.

24:21.330 --> 24:26.190
Das heißt, dieses System ist vollständig oder dieses Polynom ist

24:26.190 --> 24:28.090
vollständig durch seine Nullstellen beschrieben.

24:28.650 --> 24:31.290
Das heißt, die gesamte Impulsantwort ist vollständig durch die

24:31.290 --> 24:33.450
Nullstellen dieses Polynoms im Nenner beschrieben.

24:34.150 --> 24:38.570
Das heißt, dieser gesamte Impulsantwort ist vollständig durch die Pole

24:38.570 --> 24:41.630
der Z-transformierten der Impulsantwort beschrieben.

24:41.630 --> 24:45.410
Das heißt, wenn ich die Pole der Z-transformierten der Impulsantwort

24:45.410 --> 24:49.410
kenne, dann ist die Impulsantwort komplett beschrieben, dann kann ich

24:49.410 --> 24:52.490
sie ausrechnen und dann kann ich auch wiederum das Ergebnis oben

24:52.490 --> 24:56.030
dieses Systems ausrechnen, sprich Sprache produzieren.

24:56.750 --> 25:00.490
Das heißt, um zu wissen, welchen Sprachlaut ich jetzt produzieren will

25:00.490 --> 25:03.850
unter der Modellannahme, dass das da oben das ist, was der menschliche

25:03.850 --> 25:08.990
Vokaltrakt macht, reicht es mir aus, wenn ich die Pole kenne der Z

25:08.990 --> 25:12.250
-transformierten gemäß dieser Formel.

25:12.870 --> 25:17.930
Und deswegen nennt man das Ganze ein All-Pole-Modell und hat dann

25:17.930 --> 25:23.110
gesagt, die Pole dieser Z-transformierten, die für die Erzeugung eines

25:23.110 --> 25:28.550
Sprachlautes gemäß dieses Systems zuständig sind, sind gute Merkmale,

25:28.710 --> 25:32.390
um halt zu erkennen, welcher Laut da gerade produziert wird.

25:37.330 --> 25:40.450
Gleichzeitig gibt es aber auch eine andere Interpretation und man hat

25:40.450 --> 25:43.710
lange nicht gesehen, dass diese beiden Interpretationen genau das

25:43.710 --> 25:44.230
Gleiche sind.

25:44.330 --> 25:46.550
Das hier ist das, was man erst später herausgefunden hat.

25:48.870 --> 25:52.090
Ursprünglich hat man dieses System anders interpretiert.

25:52.770 --> 25:57.190
Man hat nämlich das interpretiert als ein System, das einen neuen Wert

25:57.190 --> 26:03.450
vorhersagt, basierend auf den k-letzten Werten, die es vorkam.

26:03.810 --> 26:08.930
Ich gucke mir also die letzten p-Werte an, die ich in meinem Signal

26:08.930 --> 26:16.770
gesehen habe, summiere die auf, rechne noch hinten irgendeinen Term

26:16.770 --> 26:20.930
drauf und sage, das soll jetzt die Vorhersage sein für den Wert meines

26:20.930 --> 26:22.430
Signals an der Stelle s n.

26:23.510 --> 26:28.350
Wenn man das so interpretiert, dann kann man sagen, dieses e von n ist

26:28.350 --> 26:29.470
eigentlich der Fehler.

26:30.710 --> 26:35.130
Wenn ich also meine Vorhersage des Wertes s von n nur basiere auf den

26:35.130 --> 26:40.110
p -letzten Worten und diesen e-Term hinten weglasse, dann ist e das,

26:40.210 --> 26:44.650
wovon sich meine Vorhersage... e das, wodurch sich meine Vorhersage

26:44.650 --> 26:46.250
vom tatsächlichen Wert unterscheidet.

26:46.750 --> 26:48.090
Und das nennt man halt ein Fehler.

26:48.610 --> 26:50.690
Aber deswegen heißt dieser Term e.

26:51.450 --> 26:57.630
Also e ist der vorhergesagte Fehler und der Wert s an der Stelle n ist

26:57.630 --> 27:02.070
ungefähr gleich dem Wert s tilde an der Stelle n, wobei s tilde halt

27:02.070 --> 27:07.570
nur vorne diese gewichtete Summe der bisher p-letzten gesehenen Werte

27:07.570 --> 27:07.930
ist.

27:09.430 --> 27:14.110
Jetzt ist natürlich noch die Frage, wo bekomme ich jetzt diese ak her?

27:14.830 --> 27:17.390
Wo bekomme ich die Koeffizienten her, mit denen ich meine letzten

27:17.390 --> 27:18.630
Werte zusammenmischen soll?

27:20.650 --> 27:24.170
Naja, ich will sie natürlich möglichst so wählen, dass der Fehler

27:24.170 --> 27:25.370
möglichst klein wird.

27:26.370 --> 27:31.010
Das heißt, ich wähle meine ak jetzt möglichst so, dass dieser Fehler,

27:31.270 --> 27:33.830
den ich bekomme, möglichst klein wird.

27:33.930 --> 27:36.710
Und wenn ich das mal einsetze und rechne, was ist denn en?

27:37.010 --> 27:39.290
Die Differenz zwischen sn und s tilde n.

27:39.770 --> 27:43.230
Ist gleich, ist gleich, ist gleich, kommt am Ende wieder das hier

27:43.230 --> 27:43.550
heraus.

27:43.650 --> 27:49.230
Dann hat man die gewichtete Summe wieder von den ak, s, n-k und möchte

27:49.230 --> 27:53.650
jetzt also die ak so wählen, dass dieser Term möglichst klein wird,

27:53.730 --> 27:54.830
dass er möglichst null wird.

27:57.680 --> 28:01.380
Kann man machen mit beliebigen Optimierungen.

28:01.380 --> 28:04.240
Das sind Optimierungsprobleme unter Nebenbedingungen.

28:05.520 --> 28:09.760
Und man findet jetzt solche Dinger so, dass der Fehler möglichst klein

28:09.760 --> 28:13.640
wird oder alternativ kann man den quadratischen Fehler minimieren.

28:14.120 --> 28:17.020
Und man bekommt dann solche Koeffizienten ai raus und diese

28:17.020 --> 28:20.720
Koeffizienten nennt man die linearen Vorhersage Koeffizienten, die

28:20.720 --> 28:24.540
Linear Predictive Coding Koeffizienten, die Linear Predictive

28:24.540 --> 28:25.140
Koefficients.

28:26.520 --> 28:32.900
Und da sie halt dafür stehen und man nimmt die häufig gerne als

28:32.900 --> 28:34.720
Merkmal in der Spracherkennung.

28:35.040 --> 28:37.580
Und der Grund, warum das funktioniert und das hat man lange nicht

28:37.580 --> 28:43.620
erkannt, ist, dass die gleichzeitig bestimmen, wo die Pole liegen in

28:43.620 --> 28:50.240
meinem Alpole-Modell der Z-transformierten der Impulsantwort eines

28:50.240 --> 28:52.300
Systems, das Sprache überhaupt produziert.

28:54.540 --> 28:58.300
Wenn man jetzt noch die Interpretation ein bisschen weiter betreiben

28:58.300 --> 29:04.580
will, dann hat man also hier eine Approximation der Z-transformierten

29:04.580 --> 29:05.480
der Impulsantwort.

29:06.320 --> 29:10.100
Und wenn ich jetzt bei der Z-transformierten den komplexen

29:10.100 --> 29:13.600
Einheitskreis hernehme, dann ist der hinterher die Fourier

29:13.600 --> 29:14.280
-transformierte.

29:16.580 --> 29:20.580
Und ist damit auch die Fourier-transformierte des eigentlichen

29:20.580 --> 29:23.440
Signales, den ich damit approximieren kann, wenn ich diesen

29:23.440 --> 29:25.380
Einheitskreis über die Z-transformierte habe.

29:25.880 --> 29:30.120
Und dann bekommt man ein Problem in der Form, dass ich hier nur ein

29:30.120 --> 29:31.060
Alpole -Modell habe.

29:31.200 --> 29:34.920
Das heißt, ich kann modellieren, an welcher Stelle strebt der Wert

29:34.920 --> 29:38.100
gegen unendlich im Spektrum, also wo wird er möglichst besonders hoch.

29:38.480 --> 29:42.000
Aber ich kann nirgendwo modellieren, an welcher Stelle im Spektrum

29:42.000 --> 29:43.000
wird der Wert denn Null.

29:44.480 --> 29:47.420
Weil ich halt nur die Pole habe, aber keine Nullstelle, sondern ich

29:47.420 --> 29:48.520
habe nur mal eins durch irgendwas.

29:50.060 --> 29:51.560
Jetzt ist die Frage, ist das ein Problem?

29:51.760 --> 29:54.840
Ja, das ist genau dann ein Problem, wenn ich nasale Laute habe.

29:55.000 --> 29:59.660
Nasale Laute können nämlich echte Nullstellen im Spektrum haben, weil

29:59.660 --> 30:04.040
ich dadurch Interferenz bestimmte Frequenzen auslöschen kann, indem

30:04.040 --> 30:07.300
ich halt die Abstrahlung aus der Nase und die Abstrahlung aus dem Mund

30:07.300 --> 30:10.400
sich entweder entsprechend überlappt.

30:11.100 --> 30:14.140
Oder halt, wenn ich den Mund zumache und nur durch die Nase abstrahle,

30:14.220 --> 30:18.220
aber den Mund habe ich als separaten Resonator, die Nasenhöhle habe

30:18.220 --> 30:19.560
ich als separaten Resonator.

30:19.960 --> 30:23.460
Und dann können eben gerade so Resonanzen entstehen, dass sich

30:23.460 --> 30:28.640
bestimmte Frequenzen auslöschen und es da zu echten Nullstellen kommt.

30:29.360 --> 30:33.820
Und das könnte ich bei einem Alpole-Modell nur dann genau modellieren,

30:33.900 --> 30:36.720
dass also das Spektrum da wirklich auf Null runtergeht, wenn ich

30:36.720 --> 30:38.860
unendlich viele LPC-Koeffizienten hätte.

30:39.660 --> 30:42.180
Ist in der Praxis aber gar nicht so wichtig, weil dass sich da

30:42.180 --> 30:45.720
wirklich etwas komplett zu Null auslöscht, ist eher unwahrscheinlich.

30:48.140 --> 30:50.940
Was man jetzt aber zeigen kann, das ist hier nochmal so ein Alpole

30:50.940 --> 30:57.880
-Modell, was man jetzt aber zeigen kann, man kann aus diesem

30:57.880 --> 31:00.940
Koeffizienten jetzt entsprechend so eine Approximation des Spektrums

31:00.940 --> 31:03.020
hernehmen, indem man sagt, durch die Koeffizienten ist die Z

31:03.020 --> 31:03.980
-Transformierte bestimmt.

31:04.140 --> 31:08.620
Ich gehe einmal den Einheitskreis ab, biegt das wieder auf und das ist

31:08.620 --> 31:11.940
entsprechend die Approximation meines normalen Spektrums.

31:12.560 --> 31:15.340
Und dann kann man mal übereinander legen, wie sieht denn so das

31:15.340 --> 31:18.600
Spektrum eigentlich aus, das echte Spektrum versus, wie sieht das

31:18.600 --> 31:21.540
Spektrum aus, das ich durch diese LPC-Approximation bekomme.

31:22.440 --> 31:27.500
Und da sieht man, natürlich ist diese Formel, dieses System für

31:27.500 --> 31:31.560
menschliche Sprachproduktion, das nur Pole kennt, kein wirklich 100%

31:31.560 --> 31:32.440
genaues System.

31:33.140 --> 31:36.800
In Wirklichkeit sieht menschliche Sprachproduktion anders aus, aber

31:36.800 --> 31:37.860
sie ist sehr ähnlich.

31:38.000 --> 31:41.520
Und was herauskommt, ist, dass ich eigentlich so eine geglättete

31:41.520 --> 31:43.700
Version meines Spektrums bekomme.

31:44.060 --> 31:47.340
Und die glättete Version sieht halt so aus, je nachdem davon, wie

31:47.340 --> 31:51.740
viele LPC-Koeffizienten ich habe, kann ich mehr oder weniger

31:53.700 --> 31:56.740
Nullstellen in meinem Polynom unten haben, kann ich also mehr oder

31:56.740 --> 32:02.200
weniger Pole-Stellen in meiner Z-Transformierten modellieren.

32:02.780 --> 32:04.560
Und wenn ich dann halt hier

32:07.920 --> 32:13.040
5 LPC-Koeffizienten habe, kann ich da entsprechend 5 Pole-Stellen mit

32:13.040 --> 32:18.240
modellieren und bekomme dann so eine geglättete Version, wo ich

32:18.240 --> 32:24.000
sozusagen eine geglättete Kurve lege durch die 5 hervorstechenden

32:24.000 --> 32:26.660
Maxima, die ich in meinem Spektrum habe.

32:27.120 --> 32:31.800
Das heißt, ich bekomme so eine schöne, geglättete Einhüllende meines

32:31.800 --> 32:37.960
Spektrums, die schön den Bergspitzen in dem Spektrum folgt und

32:37.960 --> 32:41.120
ansonsten nicht so wild hin- und herzackelt, wie das halt das Spektrum

32:41.120 --> 32:45.140
macht, sondern da schön, ruhig, geglättet, sanft der ganzen Sache

32:45.140 --> 32:45.580
folgt.

32:47.460 --> 32:51.180
Und da ich mir, um diese Kurve mir anschauen zu können, dadurch

32:51.180 --> 32:55.360
reichen mir nur die 5 LPC-Koeffizienten raus, habe ich sozusagen das

32:55.360 --> 32:59.680
gesamte Spektrum mit all seinen Höhen und Tiefen in einer geglätteten

32:59.680 --> 33:03.940
Version angenähert und dabei nur insgesamt 5 Werte gespeichert.

33:08.640 --> 33:12.480
Natürlich nimmt man jetzt in der Praxis nicht nur 5 Werte her, sondern

33:12.480 --> 33:13.740
deutlich mehr Werte.

33:14.380 --> 33:18.880
Aber genauso wie ich dann hier so ein Spektrum, wie ich beim Spektrum

33:18.880 --> 33:21.740
die Dimensionalität reduzieren kann, indem ich die Mail-Filterbank

33:21.740 --> 33:26.700
anwende, kann ich hier genauso durch das LPC halt eine Glättung dieses

33:26.700 --> 33:32.460
Spektrums bekommen und eine Reduktion der Parameter, indem ich halt

33:32.460 --> 33:38.040
weniger LPC-Koeffizienten hernehme, als ich hier Frequenzbänder habe

33:39.160 --> 33:43.200
in meinem ausgeschnittenen Fenstrum.

33:45.660 --> 33:51.400
Jetzt nimmt man nicht... also LPC ist sozusagen eine andere Variante,

33:51.680 --> 33:55.360
mit der ich ein Spektrum approximieren und glätten kann.

33:55.460 --> 33:59.820
Ich kann also entweder Fenstern, DFT hernehmen und dann mit einer Mail

33:59.820 --> 34:04.020
-Filterbank glätten oder ich kann Fenstern für jedes Fenster die LPC

34:04.020 --> 34:08.480
-Koeffizienten schätzen und das als geglättete Version meines

34:08.480 --> 34:09.780
Spektrums hernehmen.

34:10.600 --> 34:15.940
Jetzt bleibt man in der Regel nicht im Spektralbereich stehen, sondern

34:15.940 --> 34:20.580
man geht vom Spektralbereich nochmal über in einen anderen Bereich.

34:21.120 --> 34:24.680
Und dieser andere Bereich hat sich, ich weiß gar nicht genau, wie man

34:24.680 --> 34:27.380
darauf gekommen ist, hat sich mehr oder minder ein bisschen durch

34:27.380 --> 34:28.360
Zufall ergeben.

34:28.860 --> 34:36.860
Der andere Bereich sieht so aus, dass ich, wenn ich hier eine Funktion

34:36.860 --> 34:40.000
habe, dann gehe ich erst in den Spektralbereich, berechne die Fourier

34:40.000 --> 34:43.340
-Transformierte, im diskreten Fall diskrete Fourier-Transformierte,

34:43.920 --> 34:46.300
dann logarithmiere ich das Ergebnis.

34:46.920 --> 34:50.000
Das heißt, wenn ich zum Beispiel meine diskrete Fourier-Transformierte

34:50.000 --> 34:54.140
habe, wird jeder einzelne Wert in dem Vektor, der aus der diskreten

34:54.140 --> 34:58.140
Fourier -Transformation herausgekommen wurde, logarithmiert und danach

34:58.140 --> 35:01.040
schiebe ich das Ganze wieder durch eine inverse Fourier-Transformation

35:01.040 --> 35:01.540
durch.

35:03.040 --> 35:07.040
Das klingt jetzt erstmal unlogisch, weil die Inverse ist ja genau das

35:07.040 --> 35:09.560
Gegenteil von der Fourier-Transformation.

35:10.180 --> 35:13.080
Dadurch, dass ich aber einen Lock da drin stecken habe, kommt

35:13.080 --> 35:14.500
hinterher was Vernünftiges raus.

35:15.240 --> 35:15.580
Warum?

35:17.200 --> 35:21.240
Meine Annahme war ja, dass mein Sprachsignal irgendwie ein System hat.

35:21.680 --> 35:24.160
Wir hatten da zwei Systeme, jetzt gehen wir mal aus, wir haben nur ein

35:24.160 --> 35:24.560
System.

35:26.100 --> 35:30.100
Das wird gefaltet auf das Signal, das dahinter den Stimmbändern aus

35:30.100 --> 35:31.120
der Lunge herauskommt.

35:31.920 --> 35:33.540
Das sei also e gefaltet mit h.

35:34.100 --> 35:37.420
Wenn ich da die Fourier-Transformierte von dem Signal f nehme, dann

35:37.420 --> 35:40.080
ist das die Fourier-Transformierte von e mal der Fourier

35:40.080 --> 35:41.480
-Transformierten von h.

35:42.320 --> 35:44.840
Jetzt kommt aber als nächstes der Logarithmus da drauf.

35:45.320 --> 35:48.080
Und dann wird aus dieser Multiplikation eine Addition.

35:48.180 --> 35:51.240
Dann habe ich also den Logarithmus plus den Logarithmus.

35:51.360 --> 35:55.740
Einmal den Logarithmus von dem einen Signal plus den Logarithmus von

35:55.740 --> 35:58.460
der Impulsantwort, die für das System steht.

35:59.240 --> 36:04.120
Und wenn ich da wieder das Umgekehrte draufrechne, die inverse Fourier

36:04.120 --> 36:07.260
-Transformation, bleibt hier dieses Pluszeichen erhalten.

36:08.840 --> 36:13.300
Das heißt, das, was vorher im Zeitbereich mit einer Faltung

36:13.300 --> 36:15.220
miteinander verknüpft und verwoben war.

36:16.280 --> 36:19.740
Das Signal, das aus der Lunge rauskommt, nach den Stimmbändern und die

36:19.740 --> 36:22.900
Impulsantwort, die beschreibt, wie jetzt gerade der Vokaltrakt

36:22.900 --> 36:23.620
eingeschlammt ist.

36:23.700 --> 36:28.320
Das war erst durch eine Faltung im Zeitbereich miteinander verwoben.

36:28.460 --> 36:31.560
Sozusagen untrennbar voneinander zusammen.

36:33.200 --> 36:38.180
Und durch die Kevstal-Transformation sind wir hinterher wieder

36:38.180 --> 36:39.980
eigentlich im Zeitbereich.

36:40.160 --> 36:44.240
Und haben am Ende hier aber eine Addition.

36:44.600 --> 36:46.900
Das heißt, die beiden sind jetzt durch eine Addition nur noch

36:46.900 --> 36:47.940
miteinander verknüpft.

36:48.640 --> 36:53.220
Würde ich den einen kennen, könnte ich den anderen problemlos aus dem

36:53.220 --> 36:56.300
Gesamtergebnis rausbekommen, durch eine einfache Subtraktion.

36:57.180 --> 36:59.900
Und deswegen sagt man, dass das Kepp-Strom eine entfaltende

36:59.900 --> 37:00.740
Eigenschaft hat.

37:03.880 --> 37:07.340
Jetzt kann man noch eine andere Interpretation zusätzlich hinzunehmen.

37:08.320 --> 37:11.180
Dadurch, dass ich hier den Logarithmus habe und ich hier bei der

37:11.180 --> 37:14.720
Fourier -Transformierten meistens eine diskrete Fourier-Transformation

37:14.720 --> 37:17.080
habe und dann meistens auch nur einen Betrag hernehme.

37:18.600 --> 37:21.980
Die inverse Fourier-Transformation macht letztendlich dasselbe wie

37:21.980 --> 37:22.940
eine Fourier-Transformation.

37:23.260 --> 37:25.740
Da ist oben nur ein Minuszeichen an der anderen Stelle.

37:26.100 --> 37:28.380
Und wenn man in unterschiedliche Bücher reinguckt, ist das teilweise

37:28.380 --> 37:29.300
auch anders geschrieben.

37:29.780 --> 37:32.520
Das, was wir als Fourier-Transformation nehmen, sagen andere, da sei

37:32.520 --> 37:35.540
die inverse Fourier-Transformation oder andere machen die Fourier

37:35.540 --> 37:37.600
-Transformation ein bisschen leicht anders, irgendwo ein anderes

37:37.600 --> 37:40.020
Vorzeichen, dann ist die inverse Fourier-Transformation anders.

37:40.700 --> 37:42.360
Die machen alle letztendlich das Gleiche.

37:42.440 --> 37:43.600
Eine Art Frequenzanalyse.

37:43.700 --> 37:49.180
Sie gucken, mit welcher Frequenzen muss ich wie, mit welcher Amplitude

37:49.180 --> 37:52.200
und welcher Phase zusammen zu mischen, um das ursprüngliche Signal

37:52.200 --> 37:53.000
wieder zu erhalten.

37:53.900 --> 37:57.280
Das heißt, diese inverse Fourier-Transformation macht letztendlich

37:57.280 --> 38:06.960
auch nichts anderes als eine Frequenzanalyse auf dem logarithmierten

38:06.960 --> 38:07.520
Spektrum.

38:08.280 --> 38:11.060
Das heißt, man kann die Werte, die dann hinterher rauskommen, auch

38:11.060 --> 38:19.520
interpretieren als Phasen und Amplituden von unterschiedlichen

38:19.520 --> 38:22.980
Frequenzen, die ich zusammenmischen muss, um wieder das ursprüngliche

38:22.980 --> 38:25.320
Spektrum zusammenzubekommen.

38:32.860 --> 38:34.700
Jetzt erstmal zum Kempfstrum.

38:35.900 --> 38:38.720
Das Kempfstrum selber ist wieder eine komplexe Funktion.

38:41.100 --> 38:45.760
Wenn ich jetzt wieder das reale Spektrum nur nehme, also nur den

38:45.760 --> 38:50.200
Betrag hernehme vom Kempfstrum, kann man das eben interpretieren als

38:50.200 --> 38:53.820
eine Fourier-Transformierte des Leistungsspektrums.

38:56.320 --> 38:59.740
Beim Spektrum heißen die Werte hier, die rauskommen, das sind die

38:59.740 --> 39:01.620
Frequenzen, die werden in Herz angegeben.

39:02.260 --> 39:06.200
Wenn ich jetzt ins Kempfstrum reinrechne, durch die Logarithmierung

39:06.200 --> 39:07.880
sind das ja keine Sekunden mehr.

39:08.060 --> 39:11.280
Ich erhalte nicht das ursprüngliche Signal zurück, sondern man nennt

39:11.280 --> 39:14.220
dann die Werte hier die Quefrenzen.

39:14.580 --> 39:16.380
Das ist halt die Frequenz einmal umgekehrt.

39:19.180 --> 39:23.160
Und genauso kann man bestimmte Eigenschaften da beobachten.

39:24.860 --> 39:29.460
Wir haben hier ein Spektrum, Leistungsbetragsspektrum, also Betrag

39:29.460 --> 39:32.800
genommen vom komplexen Spektrum und das hier scheint sicherlich

39:32.800 --> 39:34.220
irgendwie die Grundfrequenz zu sein.

39:34.320 --> 39:37.580
Das scheint so die erste Oberschwingung zu sein.

39:38.760 --> 39:43.180
Jetzt hatten wir gesagt, wir machen letztendlich nichts anderes als

39:43.180 --> 39:47.680
eine Frequenzanalyse dieses Leistungsbetragsspektrum.

39:48.540 --> 39:52.700
Wenn ich jetzt eine Frequenzanalyse mache, dann habe ich ja so Sachen.

39:53.320 --> 39:57.300
Ich gucke mir, welche Schwingungen muss ich mit welcher Frequenz

39:57.300 --> 40:01.740
zusammenmischen, um wieder das ursprüngliche Signal zu bekommen.

40:02.420 --> 40:04.520
Jetzt haben wir hier eine bestimmte Grundfrequenz.

40:05.320 --> 40:11.900
Können wir daraus schließen, dass es da irgendeinen periodischen

40:11.900 --> 40:15.780
Anteil in diesem Spektrum geben muss, der mit der Grundfrequenz

40:15.780 --> 40:16.480
zusammenhängt?

40:22.230 --> 40:23.570
Die Oberschwingung.

40:23.870 --> 40:26.270
Wir hatten gesagt, wir haben gesehen, bei menschlicher Sprache und

40:26.270 --> 40:28.490
wahrscheinlich, weil das mit diesen Resonanzkörpern und allem

40:28.490 --> 40:34.010
sozusagen zusammenhängt, wiederholt sich diese Grundfrequenz immer bei

40:34.010 --> 40:34.730
Vielfachen.

40:35.030 --> 40:38.310
Bei jedem Vielfachen der Grundfrequenz gibt es entsprechenden Anteil

40:38.310 --> 40:39.570
im Spektrum.

40:40.250 --> 40:42.530
Bei manchen ist der Energieanteil besonders hoch.

40:42.670 --> 40:43.450
Das sind die Formanden.

40:43.990 --> 40:45.630
Bei den anderen ist er eher klein.

40:45.930 --> 40:47.210
Das sind dann eben keine Formanden.

40:48.290 --> 40:52.410
Aber jedes Vielfache der Grundfrequenz sehe ich da einen Ausschlag

40:52.410 --> 40:52.630
wieder.

40:52.750 --> 40:54.270
Mal ist er hoch, dann ist er Formand.

40:54.730 --> 40:56.610
Mal ist er klein, dann ist er kein Formand.

40:56.730 --> 41:00.230
Aber er wiederholt sich immer mit dem Abstand Grundfrequenz.

41:00.890 --> 41:03.410
Das heißt, da scheint es schon mal irgendwie eine periodische

41:03.410 --> 41:07.870
Schwingung zu geben, die ich in diesem Signal drin habe, die halt mit

41:07.870 --> 41:09.170
der Grundfrequenz vorkommt.

41:10.150 --> 41:13.430
Und wenn ich dann ins Skepstrum reingucke, sehe ich genau das.

41:14.230 --> 41:21.550
Wenn ich hier alle, was sind das, das sind also 220 Hertz oder was.

41:22.030 --> 41:27.990
Wenn ich also alle 220 Hertz wieder die Periode neu anfange, ist das

41:27.990 --> 41:30.410
eine hochfrequente oder eine niederfrequente Schwingung.

41:30.810 --> 41:33.290
Das ist eine eher hohe Frequenz oder eine eher niedrige Frequenz.

41:34.690 --> 41:39.090
Wenn man so alle 220 Hertz wieder im Takt hat.

41:46.700 --> 41:47.220
Andersrum.

41:47.880 --> 41:51.360
Das hier ist das Gesamte, was ich irgendwie zur Verfügung habe, um da

41:51.360 --> 41:52.460
nach Schwingungen drin zu suchen.

41:52.820 --> 41:56.180
Was wäre so die niederfrequenteste Schwingung, die ich da reinlegen

41:56.180 --> 41:59.360
könnte, wenn ich da eine komplette Kursenhochschwingung reinlegen

41:59.360 --> 41:59.620
könnte.

42:00.100 --> 42:04.600
Das kann nur eine sein, die halt hier einmal durch den Bereich

42:04.600 --> 42:05.080
durchschwingt.

42:05.980 --> 42:10.220
Das ist die kleinstmögliche Frequenz, die ich da reinlegen kann.

42:10.320 --> 42:11.840
Das ist die mit der längsten Periode.

42:12.560 --> 42:14.280
Ansonsten komme ich nicht einmal komplett durch.

42:15.000 --> 42:19.200
Hier habe ich etwas, das wiederholt sich da, da, da, da, da, da, da,

42:19.300 --> 42:19.720
da.

42:20.040 --> 42:22.080
Das wird also ganz häufig da reingelegt.

42:22.460 --> 42:26.160
Muss also dementsprechend eine hohe Frequenz haben, weil sie sich sehr

42:26.160 --> 42:26.940
häufig wiederholt hat.

42:27.000 --> 42:29.800
Eine sehr geringe Periode.

42:30.420 --> 42:34.780
Und dementsprechend finde ich eben diese Grundfrequenz, die sich sehr

42:34.780 --> 42:39.780
häufig mit schneller Frequenz hier wiederholt, eben bei den hohen QUE

42:39.780 --> 42:42.840
-Frenzen wieder, weil das Ganze halt nichts anderes ist als eine

42:42.840 --> 42:45.640
Fourier -Analyse des ursprünglichen Spektrums.

42:45.740 --> 42:50.180
Das heißt, hier muss ich dann entsprechend einen hohen Ausschlag

42:50.180 --> 42:53.920
bekommen und dieser hohe Ausschlag sagt halt, in diesem Signal gibt es

42:53.920 --> 42:56.580
irgendeinen periodischen Anteil, der mit sehr hoher Frequenz schwingt,

42:57.020 --> 43:01.020
und der wird eben gerade hervorgerufen durch diese Grundfrequenz, die

43:01.020 --> 43:03.900
halt dafür sorgt, dass die Oberschwingungen alle entsprechend in dem

43:03.900 --> 43:04.720
Signal drin sind.

43:05.520 --> 43:08.600
Und deswegen kann ich die Oberschwingung eines Sprachsignals im

43:08.600 --> 43:11.880
CapStrom immer weiter hinten bei den oberen Koeffizienten

43:11.880 --> 43:15.080
wiederfinden, als Indikator dafür, dass da irgendwie eine hohe

43:15.080 --> 43:16.680
Frequenz drin sein muss.

43:16.940 --> 43:19.800
Nicht, weil die Frequenz selber so hoch ist, sondern die Grundfrequenz

43:19.800 --> 43:22.840
ist niedrig, aber sie wiederholt sich immer bei Vielfachen davon.

43:23.420 --> 43:25.720
Das ist eben die schnelle Schwingung, die dann da drin ist.

43:28.240 --> 43:32.840
Jetzt ist es so, bei der Spracherkennung sind nur die unteren CapStral

43:32.840 --> 43:34.000
-Koeffizienten wichtig.

43:36.540 --> 43:42.280
Was man deshalb macht, ist, dass man die hohen Koeffizienten, die

43:42.280 --> 43:44.000
höheren Koeffizienten auf Null setzt.

43:44.700 --> 43:47.800
Und während sowas im Spektrum würde man sowas Filtern nennen.

43:47.900 --> 43:51.080
Wenn ich halt bestimmte Bereiche im Spektrum modifiziere, zum Beispiel

43:51.080 --> 43:53.340
auf Null setze, dann ist das eine Filterung.

43:53.820 --> 43:57.180
Wenn ich das Ganze im CapStrom mache, nenne ich das entsprechend

43:57.180 --> 43:58.280
Liftering.

43:58.280 --> 44:02.340
Und der Grund, warum die oberen Koeffizienten uninteressant sind und

44:02.340 --> 44:06.640
die unteren Koeffizienten wichtig sind, liegt eben darin, dass die

44:06.640 --> 44:10.640
unteren Koeffizienten die Makrostruktur, sprich die grobe Struktur des

44:10.640 --> 44:12.140
Spektrums beschreiben.

44:12.240 --> 44:16.460
Die beschreiben also, welche niederfrequenten Anteile machen mein

44:16.460 --> 44:21.160
Signal aus, während die oberen Koeffizienten die Mikrostruktur

44:21.160 --> 44:21.600
betreiben.

44:21.800 --> 44:27.360
Die sagen sozusagen, was ist das kleine Zittern, das auf die groben

44:27.360 --> 44:31.140
Kurven, auf die groben Verläufe im Spektrum gelegt werden.

44:32.360 --> 44:34.100
Die Makrostruktur ist interessant.

44:34.260 --> 44:37.380
Uns interessiert ungefähr, wo liegt ein Formant.

44:37.680 --> 44:40.700
Aber nicht, liegt er jetzt zehn Hertz höher oder zehn Hertz tiefer.

44:42.680 --> 44:45.540
Dieses Zittern der Spektralkurve, das ist etwas, das ist nicht

44:45.540 --> 44:45.940
interessant.

44:46.120 --> 44:48.400
Das ist entweder sprecherabhängig oder kanalerpengig.

44:48.760 --> 44:50.020
Deswegen werfen wir das weg.

44:50.940 --> 44:52.740
Bestes Beispiel halt die Grundfrequenz.

44:52.820 --> 44:55.600
Die Grundfrequenz ist etwas, das interessiert uns eigentlich nicht, wo

44:55.600 --> 44:57.020
genau die Grundfrequenz liegt.

44:57.480 --> 44:59.020
Das ist eine sehr Mikrostruktur.

44:59.140 --> 45:03.340
Die macht halt dieses Hubbeln, wann immer wieder das Spektrum ansetzt

45:03.340 --> 45:05.380
zu einem neuen lokalen Maximum.

45:06.460 --> 45:09.100
Wird deswegen entsprechend weggesetzt.

45:10.840 --> 45:13.360
Häufig macht man jetzt auch noch Folgendes, dass man den Nullten

45:13.360 --> 45:17.080
-Koeffizienten durch die Signalenergie ersetzt.

45:17.880 --> 45:19.120
Und das hat einen Grund.

45:19.580 --> 45:19.880
Warum?

45:20.560 --> 45:23.380
Der Grund lautet, es gibt einen Satz, kann man durch Nachrechnen

45:23.380 --> 45:24.580
zeigen.

45:26.200 --> 45:30.500
Die Energie des Signales, die ich habe, fließt nur in die Berechnung

45:30.500 --> 45:32.580
des Nullten-Kepstral-Koeffizienten ein.

45:33.040 --> 45:35.980
Wenn ich also ein Audiosignal habe im Zeitbereich und das Kepstral

45:35.980 --> 45:40.800
berechne und gucke, was ändert sich, wenn ich die Energie des Signals

45:40.800 --> 45:42.560
ändere, also das Hoch- oder Runterskaliere.

45:42.960 --> 45:46.220
Dann sehe ich im Kepstrom, das Einzige, was sich verändern wird, ist

45:46.220 --> 45:47.400
der Nullte-Koeffizient.

45:48.240 --> 45:51.360
Alle anderen Koeffizienten kriegen überhaupt nichts mehr von der

45:51.360 --> 45:54.260
absoluten Signalenergie mit, sondern die sind nur noch zuständig

45:54.260 --> 45:57.500
darum, wie die einzelnen Frequenzen sozusagen im Verhältnis zueinander

45:57.500 --> 45:57.820
stehen.

45:59.000 --> 46:01.480
Aber nicht, wie hoch jetzt die absolute Skalierung ist.

46:02.520 --> 46:04.080
Und das ist natürlich etwas, das wollen wir.

46:04.160 --> 46:07.200
Wir hatten schon gesagt am Anfang, unsere Vorverarbeitung soll so

46:07.200 --> 46:10.100
sein, dass es egal ist, ob ich laut oder leise spreche.

46:10.180 --> 46:11.420
Man soll trotzdem erkennen können.

46:11.940 --> 46:14.220
Und das habe ich dadurch jetzt durch das Kepstrom praktisch

46:14.220 --> 46:17.700
automatisch erledigt, weil nur noch ein einziger Koeffizient überhaupt

46:17.700 --> 46:19.280
abhängig ist von der Signalenergie.

46:19.840 --> 46:23.180
Und der Rest ist komplett 100% energienormiert.

46:23.500 --> 46:25.380
Das heißt, das Kepstrom ist deshalb schon mal eine schöne

46:25.380 --> 46:28.760
Vorverarbeitung, weil es halt überhaupt keine Energienormierung mehr

46:28.760 --> 46:29.200
benötigt.

46:29.280 --> 46:30.620
Es ist inhärent energienormiert.

46:31.320 --> 46:34.040
Und was man dann hin und wieder macht ist, da manchmal vielleicht die

46:34.040 --> 46:37.520
absolute Signalenergie doch irgendwie ein Hinweis sein kann, ersetzt

46:37.520 --> 46:40.480
man diesen Nullten-Kepstral-Koeffizienten durch die tatsächliche

46:40.480 --> 46:42.120
Signalenergie.

46:42.860 --> 46:45.560
Und man nimmt halt nur eine bestimmte Anzahl der unteren

46:45.560 --> 46:48.100
Koeffizienten, die höheren wirft man weg.

46:48.500 --> 46:52.220
Und so eine typische Zahl, was man nimmt, ist so etwas wie 13 Kepstral

46:52.220 --> 46:52.700
-Koeffizienten.

46:54.580 --> 46:59.100
Und so eine typische Vorverarbeitung wäre halt entsprechend Signal-

46:59.100 --> 47:03.340
Fourier -Transformation, dann Mählskalieren, ist man dann im

47:03.340 --> 47:06.720
Mählspektrum, dann bildet man den Logarithmus, macht die Inverse

47:06.720 --> 47:10.080
-Fourier -Transformation und ist dann im Mählskalierten Kepstrom.

47:11.800 --> 47:15.800
Jetzt kommt noch ein kleines Detail dazu.

47:16.580 --> 47:20.700
Häufig verwendet man statt der Inverse-Fourier-Transformation, um das

47:20.700 --> 47:23.600
Kepsum zu berechnen, Inverse-Fourier-Transformation, das ist die

47:23.600 --> 47:28.500
plainer Vanilla ursprüngliche Definition des Kepsums, häufig nimmt man

47:28.500 --> 47:32.620
statt der Inverse-Fourier-Transformation eine diskrete Kosinus

47:32.620 --> 47:33.080
-Transformation.

47:34.000 --> 47:36.620
Wer hat schon mal was von einer diskreten Kosinus-Transformation

47:36.620 --> 47:36.940
gehört?

47:40.480 --> 47:42.920
Das darf eigentlich nicht sein, ja?

47:45.900 --> 47:48.560
Ja, in einer bestimmten Form der MPEG-Kodierung.

47:48.740 --> 47:50.080
Und mit welcher MPEG-Kodierung?

47:52.300 --> 47:55.020
Wer hat gelernt, wie eine JPEG-Kodierung funktioniert?

47:55.280 --> 47:56.240
JPEG-Komprimierung.

47:57.800 --> 47:59.260
Kam das mal im Studium vor?

47:59.320 --> 48:00.180
Hat mal einer vorgerechnet?

48:00.900 --> 48:01.720
Wo kam das vor?

48:04.300 --> 48:06.940
Weil der Rest der Kommilitonen sich nicht daran erinnern kann, jemals

48:06.940 --> 48:08.280
was über JPEG gehört zu haben.

48:12.540 --> 48:13.420
Das Signal.

48:13.860 --> 48:16.480
Bild ist mir egal, ob das Bild oder Sprache ist, es ist ein Signal.

48:16.840 --> 48:20.820
Kann ich auf ein Bild anwenden und das zerlegen in, wie groß ist der

48:20.820 --> 48:22.440
Bauch für die einzelnen Kosinusschwingungen?

48:22.760 --> 48:24.760
Das kann ich auf Audiosignal genauso anwenden.

48:25.360 --> 48:28.520
Die diskrete Kosinus-Transformation ist sowas ähnliches wie die

48:28.520 --> 48:31.940
Fourier -Transformation, eine andere Form der Analyse-Schwingungen,

48:32.240 --> 48:34.640
die man hernimmt und man sich fragt, aus welchen Schwingungen ist das

48:34.640 --> 48:35.640
Signal zusammengesetzt?

48:36.040 --> 48:39.280
Und bei der diskreten Kosinus-Transformation fragt man sich halt, aus

48:39.280 --> 48:41.720
welchen Kosinusschwingungen ist das Signal zusammengesetzt?

48:42.840 --> 48:44.960
Und da hat man nicht mehr so einen Schnickschnack mit

48:44.960 --> 48:48.220
Phasenverschiebung und Höhenskalierung dabei, sondern man nimmt die

48:48.220 --> 48:52.420
echten Kosinus-Funktionen und hat nur noch deren Amplituden, die man

48:52.420 --> 48:53.060
zusammen mischt.

48:53.120 --> 48:56.100
Aber man verschiebt die nicht mehr in der Phase, wie man das bei der

48:56.100 --> 48:57.180
Fourier -Transformation hatte.

48:57.320 --> 48:58.720
Man hat diese Phasenverschiebung dabei.

48:59.680 --> 49:00.660
Hat einen schönen Vorteil.

49:00.800 --> 49:03.820
Nach einer diskreten Kosinus-Transformation kommen jetzt also Werte

49:03.820 --> 49:06.020
raus, aber die sind nicht mehr komplex.

49:06.500 --> 49:09.120
Wir haben ja deshalb komplexe Werte rausbekommen, weil wir

49:09.120 --> 49:12.840
letztendlich sowohl Phase als auch Amplitude in einem Wert kodiert

49:12.840 --> 49:13.100
haben.

49:13.960 --> 49:18.140
Und das kann man halt zeigen durch Umrechnen, dass das entsprechend

49:18.140 --> 49:21.880
halt mit so komplexen Werten geht, mit diesen E-hoch-I-Werten, weil da

49:21.880 --> 49:25.240
halt ein Kosinus und ein Phi-Masinus miteinander verschmolzen werden

49:25.240 --> 49:28.040
und man dann irgendwie so eine Phasenverschiebung und eine Skalierung

49:28.040 --> 49:29.000
der Amplituden drin hat.

49:29.300 --> 49:31.000
Hier braucht man die Phasenverschiebung nicht mehr.

49:31.100 --> 49:34.320
Das, was bei der diskreten Kosinus-Transformation rauskommt, ist schon

49:34.320 --> 49:35.480
mal inhärent reell.

49:36.260 --> 49:39.680
Hätte man das normale Capstrum, hätte ich nach der Stelle hier,

49:39.740 --> 49:42.600
nachdem ich das gemacht hätte, hätte ich danach schon wieder komplexe

49:42.600 --> 49:42.840
Werte.

49:43.440 --> 49:44.220
Schon wieder Mist.

49:44.420 --> 49:44.860
Wollen wir nicht.

49:44.940 --> 49:46.580
Wir hätten gerne einfach nur reelle Werte.

49:46.680 --> 49:48.900
Wir wollen da nicht groß mit komplexen Werten rumrechnen.

49:50.340 --> 49:52.880
Deswegen ist das Schöne nach der diskreten Kosinus-Transformation,

49:53.200 --> 49:56.860
wenn ich die statt dieser f t hoch minus 1 mache, kommen gleich reelle

49:56.860 --> 50:00.220
Werte raus, ohne dass ich nochmal Betragsbildung oder sowas machen

50:00.220 --> 50:00.460
muss.

50:02.100 --> 50:07.520
Es gibt insgesamt vier verschiedene Kosinus-Transformationen, die sich

50:07.520 --> 50:09.560
alle irgendwie durch so ein kleines Detail unterscheiden.

50:10.060 --> 50:14.920
Wichtig zu merken ist, die DCT 1 und die DCT 4 sind invers zueinander

50:14.920 --> 50:17.800
und die DCT 2 und die DCT 3 sind invers zueinander.

50:18.360 --> 50:22.340
Es gibt also die diskrete Kosinus-Transformation Nummer 2, die ist so

50:22.340 --> 50:26.920
definiert und deren Inversus ist gerade die diskrete Kosinus

50:26.920 --> 50:29.600
-Transformation 3, die ist halt so definiert.

50:29.840 --> 50:33.100
Man sieht schon, die Unterschiede sind minimal.

50:33.220 --> 50:35.400
Da gibt es dann halt nochmal hier noch so einen Koeffizienten, der da

50:35.400 --> 50:41.000
vorne vorkommt und ansonsten, da wird nochmal durch n geteilt,

50:41.080 --> 50:44.560
ansonsten ist das alles ungefähr qualitativ das gleiche.

50:46.100 --> 50:49.300
Also die diskrete Kosinus-Transformation macht genauso so eine Art

50:49.300 --> 50:51.980
Frequenzanalyse, halt mit reinen Kosinusschwingungen als

50:51.980 --> 50:55.000
Analysefrequenz und nicht mit diesen komplexen Sinus- und

50:55.000 --> 50:58.200
Kosinusschwingungen zusammengesetzt, die dann noch Phasen verschoben

50:58.200 --> 51:00.700
werden und deswegen nimmt man die gerne.

51:03.540 --> 51:06.140
Wie muss man sich das jetzt vorstellen, was passiert?

51:06.460 --> 51:08.120
Wir haben hier eine Audioaufnahme.

51:20.720 --> 51:25.340
Das ist die Aufnahme und da macht man jetzt erstmal eine reine

51:27.760 --> 51:30.220
Spektralanalyse, man berechnet also sein Spektrogramm und wenn man das

51:30.220 --> 51:32.800
Spektrogramm berechnet hat, sieht das so aus.

51:33.760 --> 51:38.040
Als nächsten Schritt legt man die Mehlfilterbänke drüber, das heißt

51:38.040 --> 51:42.120
man hat hier sein Signal und dann diese Mehlfilterbänke, die werden da

51:42.120 --> 51:48.220
drüber gelegt und aus diesen ursprünglichen 50 oder was Einheiten, die

51:48.220 --> 51:51.360
man da hat, macht man dann nur noch die Hälfte oder sowas.

51:51.520 --> 51:51.920
24.

51:52.880 --> 51:55.980
Also man hat so eine Filterbank, die man insgesamt drüber legt und hat

51:55.980 --> 51:58.660
dann deutlich weniger Werte, als man vorher hatte.

52:00.060 --> 52:01.900
Dann sieht das Ganze schon mal so aus.

52:02.560 --> 52:04.660
Dann ist das so ein bisschen schon mal verwaschen, die

52:04.660 --> 52:08.540
Frequenzauflösung nimmt ab, weil ich halt mehrere benachbarte

52:08.540 --> 52:12.640
Frequenzen, Gewichte zusammen addiere und dann an eine Stelle setze.

52:13.200 --> 52:15.900
Das heißt also in der Dimension Frequenz ist das Ganze schon mal

52:15.900 --> 52:18.260
unschärfer geworden, deutlich verwaschener geworden.

52:19.580 --> 52:25.180
Dann rechne ich den Logarithmus in den Ausschlägen, also aus jedem

52:25.180 --> 52:29.460
Wert in jeder Zelle nehme ich den Logarithmus und gehe danach in den

52:29.460 --> 52:30.260
Keppstrahlbereich.

52:32.520 --> 52:33.940
Und dann sieht das so aus.

52:35.760 --> 52:41.040
Und jetzt kann ich schon wieder deutlich schlechter was erkennen.

52:41.160 --> 52:44.020
Ich konnte es sehen, das Spektrogramm sieht irgendwie gefällig aus.

52:44.100 --> 52:46.720
Da kann man schön was drin erkennen, so Formanten, die verlaufen und

52:46.720 --> 52:47.040
so weiter.

52:47.440 --> 52:49.260
Das kann ich alles im Keppstrahl nicht mehr sehen.

52:50.420 --> 52:52.720
Für ein menschliches Auge sieht so ein Keppstrahl deutlich

52:52.720 --> 52:53.920
unstrukturierter aus.

52:55.100 --> 52:59.060
Dann liftere ich, das heißt ich nehme nur noch 13 Koeffizienten

52:59.060 --> 52:59.540
überhaupt her.

52:59.620 --> 53:04.560
Ich schmeiße den Rest der Koeffizienten weg und bekomme dann das hier.

53:04.640 --> 53:08.060
Und jetzt ist die Frage, wie viel an Informationen ist eigentlich

53:08.060 --> 53:11.780
jetzt in dem Ding noch drin, im Vergleich zu dem, was ich vorher im

53:11.780 --> 53:15.300
Original -Spektrum noch hatte, im Spektrogramm des Signals.

53:17.840 --> 53:20.280
Na gut, ich kann das Spektrum ja wieder, das Keppstrahl wieder

53:20.280 --> 53:20.900
invertieren.

53:21.000 --> 53:23.540
Ich kann das Keppstrahl wieder zurückrechnen.

53:23.800 --> 53:27.140
Wenn ich also dieses geliftete Keppstrahl zurückrechne, bekomme ich

53:27.140 --> 53:27.740
sowas raus.

53:28.200 --> 53:31.480
Und jetzt sieht man schon, das sieht halt deutlich unschärfer aus als

53:31.480 --> 53:33.400
das, was ich vorher hatte.

53:35.880 --> 53:41.120
Hier hatte ich vorher halt viel so gekräuselt, so rauschenähnliche

53:41.120 --> 53:43.960
Anteile, so feinstrukturierte Muster.

53:45.020 --> 53:49.280
Durch die Logarithmierung sind schon mal die Anzahl der Frequenzen

53:49.280 --> 53:50.260
deutlich geschrumpft.

53:50.380 --> 53:54.500
Also hier die Kästchen werden höher und in der Richtung wird es schon

53:54.500 --> 53:56.460
mal unschärfer.

53:57.080 --> 54:00.560
Und wenn ich dann jetzt noch das Keppstrum draufnehme und dann wieder

54:00.560 --> 54:04.020
zurückrechne und zwischendurch einmal liftere, dann sehe ich, dass ich

54:04.020 --> 54:08.080
noch mehr an dieser Feinstruktur, die ich vorher hatte, verliere und

54:08.080 --> 54:12.560
diese Feinstruktur noch mal unschärfer, blörrier wird.

54:13.140 --> 54:16.400
Das heißt also, aus meinem ursprünglich sehr feinstrukturierten

54:16.400 --> 54:22.100
Spektrogramm habe ich etwas gemacht, das deutlich grobschlechtiger

54:22.100 --> 54:25.860
aussieht, deutlich unschärfer aussieht, aber dementsprechend auch

54:25.860 --> 54:28.820
nicht mehr so empfindlich ist gegenüber Änderungen, die jetzt zum

54:28.820 --> 54:30.500
Beispiel die Sprecheridentität betreffen.

54:33.970 --> 54:37.610
Und mit all diesen Dingen, die ich habe, kann ich jetzt eine typische

54:37.610 --> 54:40.310
Vorverarbeitung mir hernehmen.

54:40.430 --> 54:43.670
Und das ist so eine Standardvorverarbeitung, wie man sie auch heute

54:43.670 --> 54:46.010
noch machen würde für automatische Spracherkennung.

54:47.070 --> 54:48.810
Ich habe mein digitales Signal.

54:48.990 --> 54:51.530
Ich muss mich für eine Abtastrate entscheiden und ich muss mich für

54:51.530 --> 54:52.590
eine Auflösung entscheiden.

54:53.410 --> 54:56.810
Typische Abtastrate, hatten wir gesehen, sind sowas wie 16 Kilohertz,

54:56.970 --> 55:02.070
weil wir hatten gesagt, bis 8000 Hertz sind wichtige Informationen.

55:02.470 --> 55:07.030
Alles, was überhalb von 8000 Hertz im Sprachsignal liegt, ist nur noch

55:07.030 --> 55:10.290
redundante Information, die für eigentliche Klassifikation nicht mehr

55:10.290 --> 55:10.830
wichtig ist.

55:11.650 --> 55:15.030
Wir hatten gesehen, wenn ich 16 Bit Auflösung bei der Quantisierung

55:15.030 --> 55:18.690
hernehme, dann kann ich das Quantisierungsrauschen in dem Bereich

55:18.690 --> 55:21.530
runterdrücken, der für das menschliche Ohr zum Beispiel auch nicht

55:21.530 --> 55:24.410
mehr wahrnehmbar wäre, der unterhalb der Hörschwelle liegt.

55:25.170 --> 55:28.750
Ich habe also das digitalisierte Signal, 16 Kilohertz Abtastrate, 16

55:28.750 --> 55:29.650
Bit Auflösung.

55:29.990 --> 55:33.790
Dann fange ich an, dieses kontinuierliche Signal zu fenstern, zum

55:33.790 --> 55:38.430
Beispiel mit einem Hammingfenster und da sind so typische Bereiche,

55:38.530 --> 55:41.830
dass ich das 16 Millisekunden breit mache und jeweils um 10

55:41.830 --> 55:44.630
Millisekunden verschiebe, dass ich also immer so eine Überlappung der

55:44.630 --> 55:48.070
Fenster habe von 16 Millisekunden Breite.

55:48.730 --> 55:52.170
Das heißt, wenn ein Fenster 16 Millisekunden breit ist und ich mit 16

55:52.170 --> 55:57.270
Kilohertz abtaste, dann habe ich in jedem Fenster 256 Abtastwerte,

55:57.730 --> 55:58.610
sogenannte Samples.

55:59.330 --> 56:02.970
Und so ein Fenster mit diesen 256 Abtastwerten, die ich da

56:02.970 --> 56:05.470
rausgeschnitten habe und dann halt noch gewichtet mit dem

56:05.470 --> 56:08.610
Hammingfenster halt entsprechend ein bisschen skaliert habe, das nenne

56:08.610 --> 56:09.470
ich ein Frame.

56:10.410 --> 56:14.150
Jetzt stecke ich so ein Frame, so ein Fenster in die diskrete Folie

56:14.150 --> 56:15.310
-Transformation rein.

56:16.430 --> 56:20.470
256 reelle Werte werden reingeschoben aus der diskreten Folie

56:20.470 --> 56:24.490
-Transformation kommen dann 256 komplexe Werte erstmal raus.

56:26.610 --> 56:28.990
Jetzt berechne ich das Betragsspektrum.

56:30.630 --> 56:35.930
Wenn ich von 256 komplexen Werten den Betrag nehme, wie viele Werte

56:35.930 --> 56:36.850
bekomme ich wieder raus?

56:38.750 --> 56:39.270
Ja.

56:41.350 --> 56:43.070
Ja, und dann will ich aber wissen, warum.

56:44.210 --> 56:44.430
Wieso?

56:44.550 --> 56:47.710
Wenn ich 256 Werte nehme und von jedem Wert nehme ich den Betrag, wie

56:47.710 --> 56:48.850
viele Werte habe ich am Ende wieder?

56:55.580 --> 57:00.200
Wenn ich 256 Werte habe und ich nehme von jedem Wert den Betrag, wie

57:00.200 --> 57:01.520
viele Werte habe ich dann hinterher?

57:03.900 --> 57:04.780
256 Werte.

57:13.150 --> 57:15.290
Ja, aber warum?

57:16.350 --> 57:20.130
Ich habe jetzt 256 Werte, ich nehme von denen den Betrag und ich sage

57:20.130 --> 57:22.550
jetzt, das was hinterher rauskommt ist symmetrisch.

57:23.290 --> 57:26.470
Ich bekomme zweimal 128 dieselben Werte raus.

57:26.550 --> 57:26.750
Warum?

57:31.600 --> 57:34.240
Ja, aber leider nicht immer.

57:34.460 --> 57:37.860
Also es ist mir nicht garantiert, dass wenn ich ein beliebiges Signal

57:40.540 --> 57:43.600
Diskret Fourier transformiere, dass wenn ich hinterher den Betrag

57:43.600 --> 57:48.320
nehme, dass die auch wirklich dann diese schöne Punktsymmetrie haben.

57:48.880 --> 57:52.580
Sie haben diese Punktsymmetrie aber genau da, aber haben immer diese,

57:52.780 --> 57:55.100
nicht genau dann, wenn, aber genau dann haben sie diese

57:55.100 --> 57:58.480
Punktsymmetrie, wenn die Werte, die ich vorher reingeschoben habe,

57:58.600 --> 57:59.420
reelle Werte sind.

58:00.060 --> 58:02.740
Das ist nämlich was, da sind wir bisher stillschweigend drüber

58:02.740 --> 58:03.120
gegangen.

58:03.240 --> 58:06.640
Wenn man sich die Definition der diskreten Fourier Transformation

58:06.640 --> 58:10.080
anschaut, da darf ich genauso gut komplexe Werte vorne reinschieben.

58:11.500 --> 58:13.400
Da macht die keine Annahme drüber.

58:14.060 --> 58:17.980
Ich kann also auch komplexe Werte rein, kann ich diskret Fourier

58:17.980 --> 58:19.120
transformieren, wenn ich das will.

58:19.540 --> 58:22.380
Bei uns, das Sprachsignal sind aber rein zufälligerweise nur reelle

58:22.380 --> 58:22.700
Werte.

58:23.160 --> 58:25.760
Und wenn es reelle Werte sind und ich dann eine diskrete Fourier

58:25.760 --> 58:29.180
Transformation mache und dann einen Betrag nehme, dann sind sie halt

58:29.180 --> 58:31.000
garantiert symmetrisch.

58:31.500 --> 58:33.700
Das heißt, ich kann die Hälfte der Werte wegschmeißen, weil sie nur

58:33.700 --> 58:34.300
gespiegelt sind.

58:41.360 --> 58:44.180
Die diskrete Fourier Transformation weiß gar nichts von Zeit.

58:44.720 --> 58:46.740
Die hat ein Signal, eine Funktion.

58:50.850 --> 58:53.530
In unserem Anwendungsfall, ein Sprachsignal ist halt glücklicherweise

58:53.530 --> 58:54.430
immer reelle Werte.

58:58.500 --> 59:01.260
Du hast halt irgendeine Funktion, da kommen komplexe Werte bei raus.

59:01.380 --> 59:04.680
Das gibt es sicherlich in der Mathematik beliebig viele Funktionen,

59:04.740 --> 59:10.080
die von den komplexen Werten, von den reellen Zahlen in die komplexen

59:10.080 --> 59:11.340
Werte zum Beispiel abbilden.

59:11.660 --> 59:14.340
Oder auch von den komplexen Zahlen in die komplexen Zahlen abbilden.

59:14.380 --> 59:16.680
Da kennt die Mathematik sicherlich ganz viele Funktionen.

59:16.920 --> 59:19.000
Und jede dieser Funktionen darf man Fourier transformieren.

59:19.840 --> 59:25.320
Jedes diskrete Folge von komplexen Werten darf man diskret Fourier

59:25.320 --> 59:25.900
transformieren.

59:26.600 --> 59:29.140
Das verbietet einem die Definition der diskreten Fourier

59:29.140 --> 59:30.060
Transformation nicht.

59:31.060 --> 59:31.820
Das geht halt.

59:32.160 --> 59:37.380
Dass man jetzt hier, mir fällt jetzt direkt keine Anwendung ein, nur

59:37.380 --> 59:39.820
weil mir da natürlich keine Anwendung einfällt, heißt das nicht, dass

59:39.820 --> 59:41.020
es die nicht vielleicht irgendwo auch gibt.

59:42.560 --> 59:44.660
Also die Mathematik verbietet das erstmal nicht.

59:45.180 --> 59:47.840
Bei uns, wie gesagt, so ein Sprachsignal, das was beim Mikrofon

59:47.840 --> 59:50.280
rauskommt, ist glücklicherweise reellwertig.

59:50.920 --> 59:54.320
Deswegen werde ich da immer reelle Werte meiner Vorverarbeitung in die

59:54.320 --> 59:56.180
diskrete Fourier Transformation reinschieben.

59:56.700 --> 01:00:01.380
Und deswegen nach der Betragsbildung habe ich dann immer die 128

01:00:01.380 --> 01:00:05.560
Werte, weil ich zweimal dieselben 128 Werte rausbekomme.

01:00:05.860 --> 01:00:07.080
Kann ich also die Hälfte wegwerfen.

01:00:07.140 --> 01:00:08.060
Das Ganze ist symmetrisch.

01:00:08.860 --> 01:00:10.180
Warum mache ich eine Betragsbildung?

01:00:10.600 --> 01:00:14.400
Warum sage ich, ich will unbedingt den Betrag des Spektrums hernehmen

01:00:14.400 --> 01:00:15.520
und nicht das Spektrum selber?

01:00:17.040 --> 01:00:19.720
Wenn wir nochmal auf die Definition des Capstrums schielen.

01:00:19.820 --> 01:00:22.860
Im Capstrum wird nicht verlangt, dass der Betrag der Fourier

01:00:22.860 --> 01:00:23.980
Transformierten genommen wird.

01:00:24.380 --> 01:00:25.820
Im Capstrum ist das egal.

01:00:25.820 --> 01:00:27.200
Das nimmt auch die Fourier Transformierte.

01:00:27.800 --> 01:00:30.260
Aber was ist das Schöne, wenn ich jetzt den Betrag bilde?

01:00:31.600 --> 01:00:34.020
Da kommen wir mit diesem Plus-i und Minus-i her.

01:00:35.000 --> 01:00:37.680
Was verliere ich nochmal durch die Betragsbildung im

01:00:42.830 --> 01:00:43.270
Spektrum?

01:00:43.270 --> 01:00:45.030
Genau, die Phase fehlt mir auf einmal.

01:00:45.250 --> 01:00:47.770
Also durch die Betragsbildung fliegt die Phase weg.

01:00:48.850 --> 01:00:51.690
Warum könnte das sinnvoll sein für Spracherkennung?

01:00:52.650 --> 01:00:55.410
Was ist ein Indikator dafür, dass bei Spracherkennung, bei

01:00:55.410 --> 01:01:00.450
menschlicher Sprache, die Phase kein wichtiges Merkmal ist, um die

01:01:00.450 --> 01:01:01.510
Sprache erkennen zu können?

01:01:03.670 --> 01:01:06.450
Kennen wir vielleicht irgendein anderes Spracherkennungssystem, das

01:01:06.450 --> 01:01:07.590
keine Phase hören kann?

01:01:10.630 --> 01:01:11.650
Genau das da.

01:01:12.590 --> 01:01:13.450
Das menschliche Ohr.

01:01:13.570 --> 01:01:15.510
Das menschliche Ohr kann auch keine Phase hören.

01:01:15.670 --> 01:01:20.190
Wir haben gesehen, so wie die Cochlea aufgebaut ist, wird sie zwar

01:01:20.190 --> 01:01:23.930
auch bestimmte Frequenzen ansprechen, aber wie die Frequenzen Phasen

01:01:23.930 --> 01:01:26.030
verschoben sind, das kann das menschliche Ohr nicht detektieren.

01:01:26.030 --> 01:01:29.210
Mit anderen Worten, wenn ich einen ganz einfachen Sinuston hernehme,

01:01:30.410 --> 01:01:32.830
dann kann ich einen Sinuston von 1 kHz hören.

01:01:33.530 --> 01:01:36.710
Und wenn ich diesen Sinuston Phasen verschiebe, dann wird das Ohr

01:01:36.710 --> 01:01:38.890
nichts anderes hören als diesen 1 kHz Ton.

01:01:38.970 --> 01:01:41.850
Es wird nicht unterscheiden können, wie ich diesen 1 kHz Ton Phasen

01:01:41.850 --> 01:01:42.350
verschiebe.

01:01:42.850 --> 01:01:45.730
Das heißt also, die Phase scheint für die Spracherkennung nicht

01:01:45.730 --> 01:01:46.370
wichtig zu sein.

01:01:46.450 --> 01:01:50.250
Deswegen kann ich den Betrag bilden und die Phaseninformationen

01:01:50.250 --> 01:01:50.970
wegwerfen.

01:01:51.350 --> 01:01:54.490
Das ist ganz im Sinne meiner globalen Strategie davon, dass ich die

01:01:54.490 --> 01:01:57.710
Datenrate minimieren möchte, dass ich die Dimensionalität des

01:01:57.710 --> 01:01:59.710
Merkmalsvektors reduzieren möchte.

01:01:59.810 --> 01:02:04.910
Ich mache so aus den 256 komplexen Werten nur noch 128 reelle Werte.

01:02:06.530 --> 01:02:08.650
Dann mache ich als nächstes die Mailskalierung.

01:02:08.790 --> 01:02:11.730
Und bei der Mailskalierung reduziere ich wieder die Dimensionalität

01:02:11.730 --> 01:02:15.230
und so typische Werte sind, dass man so 24 bis 40 dieser

01:02:15.230 --> 01:02:16.230
Mailfilterbänke hat.

01:02:16.670 --> 01:02:20.370
Dann mache ich also aus diesen 128 reellen Werten plötzlich nur noch

01:02:20.370 --> 01:02:21.770
24 bis 40 Werte.

01:02:22.850 --> 01:02:24.450
Dann logarithmiere ich das Ganze.

01:02:25.810 --> 01:02:28.110
Ändert sich an der Anzahl der Werten nicht, es scheinen nur die Werte

01:02:28.110 --> 01:02:29.770
selber, ändern sich in ihrem Dynamikumstand.

01:02:31.090 --> 01:02:32.950
Und dann werfe ich das Ganze wieder in eine diskrete

01:02:32.950 --> 01:02:34.470
Kosinustransformation raus.

01:02:35.010 --> 01:02:38.310
Und bei der diskreten Kosinustransformation, wenn ich da 24 reelle

01:02:38.310 --> 01:02:41.710
Werte reinwerfe, kommen wieder 24 reelle Werte raus.

01:02:43.450 --> 01:02:44.250
Alles in Mutter.

01:02:44.790 --> 01:02:48.410
Und dann bin ich im Kepstralbereich und mache das Liftering und

01:02:48.410 --> 01:02:51.210
behalte nur noch die untersten 13 Koeffizienten raus.

01:02:52.170 --> 01:02:56.930
Und so bin ich jetzt dazu hergekommen, dass ich aus einem 16

01:02:56.930 --> 01:03:01.790
Millisekunden breiten Fenster mit eigentlich 256 Abtastwerten nur noch

01:03:01.790 --> 01:03:03.950
13 reelle Werte gemacht habe.

01:03:04.470 --> 01:03:09.710
Und dieser 13 dimensionale reelle Vektor ist dann das Merkmal, dass

01:03:09.710 --> 01:03:14.670
ich aus diesem 16 Millisekunden langen Schnipsel Audio heraus

01:03:14.670 --> 01:03:15.470
extrahiert habe.

01:03:15.810 --> 01:03:18.950
Und dann schiebe ich meine 16 Millisekunden Fenster um 10

01:03:18.950 --> 01:03:21.990
Millisekunden weiter und extrahiere die nächsten 13 Werte.

01:03:22.170 --> 01:03:24.690
Schiebe weiter, extrahiere die nächsten 13 Werte, indem ich durch

01:03:24.690 --> 01:03:28.090
diese ganze Pipeline durchlaufe und habe auf die Art und Weise jetzt

01:03:28.090 --> 01:03:34.170
eine Vorverarbeitungspipeline herbekommen, die reduziert wird in der

01:03:34.170 --> 01:03:39.770
Dimension, die weniger sensitiv ist gegenüber sprecherspezifische

01:03:39.770 --> 01:03:43.150
Änderungen, zum Beispiel durch die Mailskalierung, die keine

01:03:43.150 --> 01:03:49.550
Phaseninformationen mehr enthält durch das Betragsspektrum, die durch

01:03:49.550 --> 01:03:54.250
das Kapstrum diese entfaltenden Eigenschaften des Kapstrums hat, die

01:03:54.250 --> 01:03:59.170
durch das Liftering nur noch die Makrostruktur des Spektrums abdeckt,

01:03:59.330 --> 01:04:00.650
aber nicht mehr die Mikrostruktur.

01:04:01.610 --> 01:04:05.790
Und die durch das Gehen in den Kapstralbereich, wenn wir mal den 0

01:04:05.790 --> 01:04:09.450
Kapstralkoeffizienten außer Acht lassen, komplett energienummiert

01:04:09.450 --> 01:04:09.750
sind.

01:04:10.450 --> 01:04:14.090
Die also unabhängig davon sind, wie groß dieses ursprüngliche Stück

01:04:14.090 --> 01:04:15.090
Audio skaliert wurde.

01:04:18.270 --> 01:04:22.250
Jetzt ist man an dieser Stelle immer noch nicht fertig.

01:04:22.830 --> 01:04:28.130
Ich habe jetzt also für ein 16 Millisekunden Fenster 13 Werte.

01:04:28.590 --> 01:04:31.670
Ich schiebe nur um 10 Millisekunden, das heißt alle 10 Millisekunden

01:04:31.670 --> 01:04:34.450
bekomme ich 13 neue Werte, so ähnlich wie so ein Spektrogramm.

01:04:35.410 --> 01:04:36.990
Und was sagen mir diese 13 Werte?

01:04:37.290 --> 01:04:42.270
Diese 13 Werte sagen mir aus, angenommen während dieses Fensters,

01:04:42.430 --> 01:04:46.310
während dieser 16 Millisekunden wäre mein ursprüngliches Signal

01:04:46.310 --> 01:04:49.930
stationär gewesen, das heißt die Zusammenmischung aus den Frequenzen

01:04:49.930 --> 01:04:50.830
ändert sich nicht mehr.

01:04:51.370 --> 01:04:55.830
Unter dieser Annahme bekomme ich ein statisches Abbild für dieses 16

01:04:55.830 --> 01:04:57.990
Millisekunden Fenster heraus.

01:04:58.710 --> 01:05:01.930
Und mir sagen diese 13 Werte, so sieht dieses 16 Millisekunden Fenster

01:05:01.930 --> 01:05:02.230
aus.

01:05:03.670 --> 01:05:07.310
Wenn ich aber ganz zurückgehe zu einem Spektrogramm.

01:05:09.110 --> 01:05:14.290
Ganz am Anfang zurück, wo ich mir das Spektrogramm angeguckt habe.

01:05:14.650 --> 01:05:18.470
Als wir uns das das erste Mal angeschaut haben, dann haben wir gesagt,

01:05:18.610 --> 01:05:23.630
ja, die Position der Formanten scheint wichtig, aber anscheinend haben

01:05:23.630 --> 01:05:26.230
diese Formanten auch einen bestimmten Verlauf.

01:05:26.750 --> 01:05:29.030
Die scheinen sich über die Zeit hinweg da irgendwie so

01:05:29.030 --> 01:05:29.750
durchzuschlängeln.

01:05:30.090 --> 01:05:33.790
Es scheint also von Interesse zu sein, wie sich auch diese Formanten

01:05:33.790 --> 01:05:35.570
über die Zeit hinweg verändern.

01:05:35.570 --> 01:05:37.330
In welche Richtung die laufen.

01:05:37.470 --> 01:05:40.890
Ob die jetzt gerade steigen oder fallen oder gleich bleiben.

01:05:42.170 --> 01:05:45.190
Und das sagen mir diese 13 Werte eben nicht.

01:05:48.980 --> 01:05:50.940
Das sagen mir diese 13 Werte nicht.

01:05:51.020 --> 01:05:53.660
Die 13 Werte geben mir nur den dynamischen Snapshot.

01:05:55.520 --> 01:05:57.140
Im schlimmsten Fall wie meiner Funktion.

01:05:57.280 --> 01:06:00.480
Ich kriege den Wert der Funktion an dieser Stelle, aber ich bekomme

01:06:00.480 --> 01:06:03.040
nicht, ob die Funktion jetzt gerade steigt oder fällt.

01:06:03.660 --> 01:06:07.720
Und um das zu bekommen, bräuchte ich sowas wie die Ableitung des

01:06:07.720 --> 01:06:08.200
Spektrogramms.

01:06:08.400 --> 01:06:11.500
Ich hätte gerne die Ableitung an der Stelle, um zu gucken, ob zum

01:06:11.500 --> 01:06:13.640
Beispiel das gerade steigt oder fällt.

01:06:14.280 --> 01:06:17.520
Und ich hätte gerne die zweite Ableitung, weil mich interessiert, ob

01:06:17.520 --> 01:06:19.720
die Steigung zunimmt oder die Steigung abnimmt.

01:06:21.140 --> 01:06:25.100
Jetzt kann ich erste und zweite Ableitung nicht bilden, weil ich habe

01:06:25.100 --> 01:06:29.540
da so ein diskretes Signal, ein digitales Signal mit so diskreten

01:06:29.540 --> 01:06:33.560
Fenstern, aber als Approximation der ersten und der zweiten Ableitung

01:06:33.560 --> 01:06:36.800
kann man die Differenz zu einem vorhergehenden Frame bilden.

01:06:36.920 --> 01:06:38.880
Ich kann also entweder erstmal die Differenz bilden.

01:06:39.640 --> 01:06:42.980
Das ist dann entsprechend eine Approximation der ersten Ableitung.

01:06:43.240 --> 01:06:45.340
Oder ich kann die Differenz der Differenz bilden.

01:06:45.860 --> 01:06:48.800
Und das ist dann entsprechend die Approximation der zweiten Ableitung.

01:06:49.240 --> 01:06:52.500
Und diese Differenzbildung und Differenz der Differenzbildung nennt

01:06:52.500 --> 01:06:54.660
man eben Delta- und Delta-Delta-Bildung.

01:06:55.440 --> 01:07:00.200
Und kann dann dadurch, dass ich also das erstmal bilde, mit meinem

01:07:00.200 --> 01:07:02.940
vorhergehenden Frame, bekomme ich einen Eindruck dafür, wie so die

01:07:02.940 --> 01:07:05.000
Dynamik in den einzelnen Frequenzbändern ist.

01:07:05.680 --> 01:07:08.180
Jetzt habe ich aber drei Vektoren.

01:07:08.860 --> 01:07:12.320
Ich habe das ursprüngliche Keppstrum, den ursprünglich gelieferten

01:07:12.320 --> 01:07:13.680
Keppstrahl -Koeffizienten.

01:07:13.940 --> 01:07:15.820
Ich habe sein Delta und sein Delta-Delta.

01:07:16.020 --> 01:07:17.420
Kommen jeweils immer 13 Werte raus.

01:07:17.920 --> 01:07:20.060
Was ich jetzt mache ist, dass ich einfach diese drei Vektoren

01:07:20.060 --> 01:07:24.080
übereinander stapel in einen langen Vektor, der dann dreimal 13, also

01:07:24.080 --> 01:07:26.700
39, dimensional ist.

01:07:27.040 --> 01:07:30.380
Und dieser 39-dimensionale Vektor enthält dann halt das statische

01:07:30.380 --> 01:07:32.940
Abbild und Informationen über die Dynamik.

01:07:37.480 --> 01:07:42.340
Dann kann ich dazu übergehen, noch andere Merkmale an diesem

01:07:42.340 --> 01:07:44.060
Merkmalsvektor hinten dran zu hängen.

01:07:44.640 --> 01:07:47.480
Und ein Merkmal, das man zum Beispiel gerne hinten dran hängt, wäre

01:07:47.480 --> 01:07:48.960
sowas wie die Autokorrelation.

01:07:51.800 --> 01:07:52.180
Warum?

01:07:53.280 --> 01:07:58.020
Was ist das Interessante, wenn ich ein Schnipsel-Audio mit sich selber

01:07:58.020 --> 01:07:58.760
korreliere?

01:07:59.440 --> 01:08:00.400
Was passiert dann?

01:08:01.460 --> 01:08:05.000
Autokorrelation ist ein bisschen ähnlich wie eine Faltung mit sich

01:08:05.000 --> 01:08:05.320
selber.

01:08:05.760 --> 01:08:09.900
Ich verschiebe das Ding ein bisschen, multipliziere und summiere auf.

01:08:10.080 --> 01:08:10.940
So wie bei der Faltung.

01:08:11.060 --> 01:08:13.980
Ob ich jetzt vorher mal umdrehe und schiebe oder ob ich nicht umdrehe

01:08:13.980 --> 01:08:16.120
und schiebe, ist letztendlich auch nicht mehr so wichtig.

01:08:18.100 --> 01:08:22.020
Ich habe den also übereinander, multipliziere, summiere auf, kriege

01:08:22.020 --> 01:08:22.680
einen Wert raus.

01:08:23.040 --> 01:08:25.860
Schiebe wieder, multipliziere, summiere auf, kriege wieder einen Wert

01:08:25.860 --> 01:08:26.100
raus.

01:08:26.660 --> 01:08:30.140
Wann werde ich besonders hohe Werte bekommen bei diesem Multiplizieren

01:08:30.140 --> 01:08:33.120
und Aufsummieren und wann werde ich eher niedrige Werte bekommen?

01:08:34.380 --> 01:08:38.780
Einfachstes Beispiel, wir nehmen uns eine einfache periodische

01:08:38.780 --> 01:08:39.920
Sinusschwingung her.

01:08:42.780 --> 01:08:45.560
Ich habe so eine Sinusschwingung angenommen, das sei das Signal, das

01:08:45.560 --> 01:08:47.680
ich jetzt mit sich selber korrelieren würde.

01:08:48.520 --> 01:08:52.400
Ich multipliziere immer, summiere auf, schiebe, multipliziere,

01:08:52.580 --> 01:08:53.220
summiere auf.

01:08:53.780 --> 01:08:57.360
Wann ist dieses Multiplizieren und Aufsummieren ein besonders hoher

01:08:57.360 --> 01:08:59.360
Wert und wann ist es ein besonders niedriger Wert?

01:09:00.400 --> 01:09:03.720
Naja, ein besonders hoher Wert ist, wenn ich immer gleiche Werte habe,

01:09:04.180 --> 01:09:06.980
die ich halt miteinander multipliziere, dann wird daraus ein Quadrat,

01:09:07.500 --> 01:09:10.040
auch wenn die vorher negativ waren, wird daraus das Quadrat und dann

01:09:10.040 --> 01:09:10.840
wird das aufsummiert.

01:09:11.460 --> 01:09:15.900
Ein besonders niedriger Wert ist, wenn sich die Sachen auslöschen.

01:09:17.080 --> 01:09:21.280
Wenn ich also die Sachen so übereinanderlege, dass sie gerade

01:09:21.280 --> 01:09:22.360
entgegengesetzt sind.

01:09:27.080 --> 01:09:31.540
Das heißt, wenn ich also so ein harmonisches Signal habe und wenn ich

01:09:31.540 --> 01:09:35.840
das einmal, eine gesamte Phase verschoben habe, dann bekomme ich in

01:09:35.840 --> 01:09:37.900
der Regel einen besonders hohen Wert.

01:09:39.140 --> 01:09:46.080
Das heißt, bei uns, bei einem Sprachsignal, das Signal muss sich

01:09:46.080 --> 01:09:49.100
selber ähnlich sein und das Signal ist sich genau dann selber ähnlich,

01:09:49.220 --> 01:09:53.660
wenn ich also so mehrere frequente, mehrere periodische Anteile habe,

01:09:54.320 --> 01:09:58.320
wenn ich so um einmal die ursprüngliche periodischen Anteile

01:09:58.320 --> 01:09:59.060
verschoben habe.

01:09:59.380 --> 01:10:01.200
Und das ist bei uns halt die Grundfrequenz.

01:10:01.580 --> 01:10:04.700
Das heißt, wenn ich sozusagen einmal um Grundfrequenz verschoben habe,

01:10:05.120 --> 01:10:08.320
dann habe ich wieder lokale Maxima, die ich aufmultipliziere und

01:10:08.320 --> 01:10:13.120
aufsummiere und habe dementsprechend das erste Mal ein lokales Maximum

01:10:13.120 --> 01:10:16.860
in der Autokorrelation, wenn ich das Signal einmal Grundfrequenz,

01:10:17.760 --> 01:10:20.120
Periode Grundfrequenz gegeneinander verschoben habe.

01:10:21.100 --> 01:10:25.020
Das heißt, so eine Autokorrelation ist zum Beispiel ein sehr simpler

01:10:25.020 --> 01:10:27.820
Detektor dafür, wie hoch ist denn jetzt die Grundfrequenz in meinem

01:10:27.820 --> 01:10:28.160
Signal.

01:10:28.540 --> 01:10:32.100
Ich muss einfach die Autokorrelation berechnen von dem Fenster und

01:10:32.100 --> 01:10:34.780
gucke dann von links nach rechts, wann ist das erste Mal, dass ich

01:10:34.780 --> 01:10:36.920
einen Ausschlag bekomme, hohen Ausschlag.

01:10:37.000 --> 01:10:40.460
Wann habe ich so ein erstes Mal ein lokales Maximum in meinen Werten.

01:10:40.900 --> 01:10:45.340
Und das nicht nur so ein kleines lokales Maximum, sondern so einen

01:10:45.340 --> 01:10:49.240
richtigen Ausschlag und das ist dann einmal die Grundfrequenz, um die

01:10:49.240 --> 01:10:49.900
ich verschoben habe.

01:10:50.000 --> 01:10:53.800
Daraus kann ich direkt die Herzzahl der Grundfrequenz ablesen.

01:10:56.180 --> 01:11:02.000
Das ist normalerweise eigentlich uninteressant, aber es gibt Sprachen,

01:11:02.060 --> 01:11:05.000
da kommt es auf den Verlauf der Grundfrequenz an, nämlich tonale

01:11:05.000 --> 01:11:05.660
Sprachen.

01:11:06.100 --> 01:11:09.140
Bei tonalen Sprachen will ich gerade wissen, wie verändert sich die

01:11:09.140 --> 01:11:10.420
Grundfrequenz über die Zeit.

01:11:10.800 --> 01:11:13.380
Und damit ich das weiß, muss ich wissen, wo ist die Grundfrequenz.

01:11:13.380 --> 01:11:17.760
Und da kann man zum Beispiel dann so eine Autokorrelation ausrechnen,

01:11:18.080 --> 01:11:23.480
so dass ich dann bekomme, sehe in dieser Autokorrelation, die ich

01:11:23.480 --> 01:11:27.760
ausgerechnet habe, wie verschiebt sich die Grundfrequenz über die Zeit

01:11:27.760 --> 01:11:28.040
hinweg.

01:11:28.140 --> 01:11:30.240
Ist das ein steigender Ton, ist das ein fallender Ton.

01:11:30.820 --> 01:11:33.760
Oder wenn ich allgemein die Prosodie analysieren möchte, also wird

01:11:33.760 --> 01:11:36.060
irgendwas besonders stark betont an irgendeiner Stelle.

01:11:38.500 --> 01:11:42.120
Das Ganze hat eine große Fallgrube.

01:11:43.800 --> 01:11:44.900
Und die sieht so aus.

01:11:45.320 --> 01:11:47.600
Man sagt, man sucht die erste Spitze.

01:11:48.420 --> 01:11:51.020
Und jetzt ist die erste Spitze meistens nicht so deutlich, wie man

01:11:51.020 --> 01:11:53.640
will, dass da wirklich so hier ein großes Schild, hallo, ich bin hier

01:11:53.640 --> 01:11:55.160
die große erste Spitze, hier bin ich.

01:11:55.840 --> 01:11:58.940
Sondern das ist irgendwie so, vielleicht ist das nur so ein

01:11:58.940 --> 01:12:02.040
Zwischenmaximum und der nächste große ist eigentlich die erste

01:12:02.040 --> 01:12:03.100
wirklich lokale Spitze.

01:12:05.580 --> 01:12:08.100
Das heißt, was passiert, wenn ich einen Fehler mache?

01:12:08.220 --> 01:12:12.300
Das heißt, was passiert, wenn ich die tatsächliche lokale Spitze nicht

01:12:12.300 --> 01:12:12.760
verpasse?

01:12:13.180 --> 01:12:15.800
Um wie viel schätze ich dann meine Grundfrequenz falsch?

01:12:17.380 --> 01:12:20.680
Wenn ich also die erste, die tatsächliche lokale Spitze verpasse, weil

01:12:20.680 --> 01:12:22.740
ich sie halt nicht für die lokale Spitze halte.

01:12:23.340 --> 01:12:25.920
Sondern erst die zweite große Spitze.

01:12:27.680 --> 01:12:32.500
Dann habe ich eine doppelte Frequenz, schätze ich dann, dass das die

01:12:32.500 --> 01:12:35.120
Grundfrequenz ist als die eigentliche Frequenz das ist.

01:12:35.540 --> 01:12:39.220
Das heißt, den Fehler, den ich potenziell mache, der ist nicht so 5

01:12:39.220 --> 01:12:42.280
Hertz oder 10 Prozent von der Grundfrequenz, sondern der ist

01:12:42.280 --> 01:12:44.100
mindestens 100 Prozent von der Grundfrequenz.

01:12:44.520 --> 01:12:47.700
Das heißt, wenn ich die nicht richtig erwische, diese Spitze, dann ist

01:12:47.700 --> 01:12:49.620
der Fehler, den ich mache, katastrophal.

01:12:50.080 --> 01:12:52.820
Und das ist ein bisschen das Problem, wenn ich per Autokorrelation

01:12:54.020 --> 01:12:57.420
nach der Grundfrequenz suche.

01:12:58.420 --> 01:13:02.000
Dann gibt es noch ein zweites Feature, das eigentlich traditionell

01:13:02.000 --> 01:13:04.880
auch recht beliebt ist, ist die sogenannte Nulldurchgangsrate.

01:13:04.880 --> 01:13:10.720
Bei der Nulldurchgangsrate messe ich, wie oft pro Zeit ändert sich das

01:13:10.720 --> 01:13:11.980
Vorzeichen des Signals.

01:13:12.660 --> 01:13:16.420
Und das ist deshalb interessant, weil man sich anschauen kann, dass

01:13:19.040 --> 01:13:24.560
Stille eine deutlich niedrigere Nulldurchgangsrate hat als Sprache,

01:13:24.760 --> 01:13:25.720
als leise Sprache.

01:13:25.840 --> 01:13:29.120
Leise Sprache hat eine Nulldurchgangsrate, die in der Regel deutlich

01:13:29.120 --> 01:13:33.060
schneller ist als Stille, mit irgendwie so ein bisschen Rauschen,

01:13:33.060 --> 01:13:34.780
Blätterrauschen im Hintergrund.

01:13:38.760 --> 01:13:43.360
Dadurch, dass aber die Kempfstrahl-Koeffizienten energienormalisiert

01:13:43.360 --> 01:13:48.160
sind, macht das eigentlich meistens keinen Unterschied mehr, außer ich

01:13:48.160 --> 01:13:51.580
würde explizit wirklich klassifizieren wollen, ist das jetzt Stille

01:13:51.580 --> 01:13:57.760
oder ist das Sprache, ohne dass ich komplette Spracherkennung

01:13:57.760 --> 01:13:58.460
betreiben würde.

01:14:02.020 --> 01:14:04.680
Gut, angenommen, ich habe jetzt 13 Kempfstrahl-Koeffizienten, ich habe

01:14:04.680 --> 01:14:08.060
Delta, Delta, Delta berechnet, habe ich 39 dimensionalen

01:14:08.060 --> 01:14:10.360
Eingabevektor, dann wird noch so ein bisschen Klumbatsch hinten

01:14:10.360 --> 01:14:14.460
drangehängt, habe ich 40, 41, 42 dimensionalen Eingangsvektor, einen

01:14:14.460 --> 01:14:16.200
Merkmalsvektor, den ich extrahiert habe.

01:14:17.060 --> 01:14:20.340
Das ist ja immerhin schon mal deutlich weniger als die 256 Werte, die

01:14:20.340 --> 01:14:20.900
ich vorher hatte.

01:14:21.780 --> 01:14:23.920
Aber mir ist das immer noch zu viel.

01:14:24.340 --> 01:14:29.720
Ich hätte gerne was Kleineres, weil ich zum Beispiel manchmal solche

01:14:29.720 --> 01:14:30.280
Sachen mache.

01:14:30.760 --> 01:14:33.460
Ich kann Delta und Delta, Delta berechnen, um die Dynamik

01:14:33.460 --> 01:14:34.120
rauszubekommen.

01:14:34.540 --> 01:14:35.860
Ich kann aber auch was anderes machen.

01:14:36.720 --> 01:14:40.100
Ich könnte auch sagen, die Informationen darüber, wie sich die Dynamik

01:14:41.180 --> 01:14:43.600
berechnet, dafür brauche ich nicht Plus und Minus zu rechnen.

01:14:43.660 --> 01:14:46.660
Die Information darüber liegt eigentlich in den benachbarten Werten.

01:14:47.240 --> 01:14:50.980
Das heißt, anstatt Minus Differenz zu berechnen und zu stacken, kann

01:14:50.980 --> 01:14:53.460
ich einfach auch die beiden ursprünglichen Vektoren stacken.

01:14:54.520 --> 01:14:57.640
Dass diese Dynamik hinterher wichtig ist, das soll der Klassifikator

01:14:57.640 --> 01:14:58.980
hinterher aus dem Merkmal rausholen.

01:14:59.340 --> 01:15:00.100
Das ist mir hier ja.

01:15:01.100 --> 01:15:02.680
Und dann kann ich es auf die Spitze schreiben.

01:15:02.780 --> 01:15:04.700
Dann kann ich zum Beispiel nicht nur zwei benachbarte Werte

01:15:04.700 --> 01:15:09.000
miteinander stacken, sondern dann kann ich eine ganze Nachbarschaft

01:15:09.000 --> 01:15:09.380
stacken.

01:15:09.880 --> 01:15:12.520
Sieben Vektoren nach links, sieben Vektoren nach rechts.

01:15:13.200 --> 01:15:18.200
Dann hätte ich 14 plus den, dann würde ich 15 stacken.

01:15:18.320 --> 01:15:21.800
Dann hätte ich 15 mal 13 dimensionalen Vektor, hätte ich einen ganz

01:15:21.800 --> 01:15:27.020
großen Vektor wieder, der eine viel zu hohe Dimensionalität hat.

01:15:27.640 --> 01:15:31.280
Und dann gibt es jetzt weitere Werkzeuge, wie ich dann die

01:15:31.280 --> 01:15:35.920
Dimensionalität so eines Merkmalsvektors noch mal weiter reduzieren

01:15:35.920 --> 01:15:36.180
kann.

01:15:37.600 --> 01:15:40.160
Das, was vielleicht jeder schon mal gehört hat, ist die

01:15:40.160 --> 01:15:44.260
Hauptkomponentenanalyse, die Principal Component Analysis, PCA.

01:15:45.000 --> 01:15:47.400
Wer hat das schon mal gehört oder irgendwo gesehen?

01:15:48.820 --> 01:15:50.420
Super, dann muss ich nicht alleine vortun.

01:15:50.880 --> 01:15:53.260
Dann können mir Leute sagen, was die Idee dahinter ist.

01:15:55.360 --> 01:15:58.780
Nehmen wir mal Daten her.

01:15:59.060 --> 01:16:03.800
Wir haben Daten für ein Klassifikationsproblem.

01:16:06.540 --> 01:16:12.900
Die Daten seien Kreuze und Kreise.

01:16:13.600 --> 01:16:15.620
Und das Ganze sei jetzt einfach zweidimensional.

01:16:19.220 --> 01:16:20.480
X1, X2.

01:16:22.060 --> 01:16:24.340
Und ich habe jetzt Kreuze und Kreise.

01:16:26.260 --> 01:16:28.000
Mal gucken, dass ich das schön mache.

01:16:29.840 --> 01:16:31.360
Ach, so ist das zu blöd, zu einfach.

01:16:32.680 --> 01:16:34.340
Wobei, ist egal, kann man auch so machen.

01:16:35.980 --> 01:16:37.660
Also, ich habe Kreuze und Kreise.

01:16:38.500 --> 01:16:40.820
Was macht mir jetzt die Hauptkomponentenanalyse damit?

01:16:49.690 --> 01:16:51.510
Genau, und warum macht es das?

01:16:51.730 --> 01:16:54.950
Warum würde es sowas auf das X1-Merkmal projizieren?

01:16:56.350 --> 01:16:57.570
Ich hoffe, ich habe es noch halbwegs.

01:16:57.690 --> 01:16:59.010
Ich mache noch mal ein paar Kreuze dazu.

01:16:59.770 --> 01:17:00.410
Und ein paar Kreise.

01:17:08.660 --> 01:17:11.580
Jetzt ist es ganz offensichtlich, warum es das für dieses Beispiel so

01:17:11.580 --> 01:17:12.020
machen würde.

01:17:12.340 --> 01:17:14.820
Anhand welches Kriteriums entscheidet es denn, dass ich jetzt auf

01:17:14.820 --> 01:17:16.180
dieses X1 projizieren möchte?

01:17:20.880 --> 01:17:24.400
Das macht die Hauptkomponentenanalyse nicht.

01:17:24.400 --> 01:17:25.640
Ganz, ganz, ganz wichtig.

01:17:25.740 --> 01:17:31.100
Die Principal Component Analysis optimiert die Projektion nicht so,

01:17:31.600 --> 01:17:33.140
dass ich besser unterscheiden kann.

01:17:34.200 --> 01:17:36.640
Das macht die nicht, sondern nach welchem Kriterium geht die?

01:17:40.180 --> 01:17:41.540
Genau, das macht nämlich die.

01:17:41.660 --> 01:17:43.880
Die Hauptkomponentenanalyse ist dumm.

01:17:44.160 --> 01:17:44.640
Strunzdumm.

01:17:45.080 --> 01:17:46.160
Blöder geht es nicht mehr.

01:17:46.480 --> 01:17:49.920
Die Hauptkomponentenanalyse guckt sich nicht an, sind da Kreuze oder

01:17:49.920 --> 01:17:50.360
Kreise.

01:17:51.140 --> 01:17:55.100
Die Information, ob ein Datenpunkt ein Kreuz oder ein Kreis ist, wirft

01:17:55.100 --> 01:17:56.560
die Hauptkomponentenanalyse weg.

01:17:56.980 --> 01:18:00.140
Die Hauptkomponentenanalyse guckt sich alle Daten an, unabhängig

01:18:00.140 --> 01:18:04.140
davon, ob es Kreuz oder Kreis ist, und guckt dann, in welche Richtung

01:18:04.140 --> 01:18:06.440
habe ich die meiste Varianz.

01:18:07.080 --> 01:18:14.760
Und hier sieht man, in dem Bereich variiert das Ganze mit X2 und in

01:18:14.760 --> 01:18:17.600
dem Bereich variiert das Ganze entlang X1.

01:18:18.060 --> 01:18:24.020
Das heißt, entlang dieser Richtung ist die höchste Varianz.

01:18:26.300 --> 01:18:31.880
Und dann projiziert und sagt jetzt Folgendes, entlang dieser Richtung,

01:18:32.040 --> 01:18:37.060
wenn ich da viel Varianz habe, dann scheint das wichtig zu sein für

01:18:37.060 --> 01:18:37.980
die Klassifikation.

01:18:38.660 --> 01:18:41.840
Das ist die Idee dahinter, warum man dann der Hauptkomponentenanalyse

01:18:41.840 --> 01:18:45.220
überhaupt zulässt, dass sie eine Dimensionsreduktion macht, weil man

01:18:45.220 --> 01:18:49.620
sagt, naja, im Großen und Ganzen, da wo die meiste Varianz über alle

01:18:49.620 --> 01:18:53.240
globalen Daten, über alle globalen kleine Klassen hinweg ist, entlang

01:18:53.240 --> 01:18:58.540
der Richtung muss wohl die meiste Varianz, die meiste Information für

01:18:58.540 --> 01:18:59.540
Klassifikation sein.

01:19:00.220 --> 01:19:01.660
Das muss aber nicht so sein.

01:19:02.140 --> 01:19:03.520
Das hängt davon ab, wie die Daten sind.

01:19:03.880 --> 01:19:05.580
Man sagt es einfach mal so.

01:19:05.760 --> 01:19:06.220
Passt schon so.

01:19:06.700 --> 01:19:09.700
Und wenn das dann so ist, dann sagt man, okay, diese Dimension ist

01:19:09.700 --> 01:19:13.160
wichtig für Klassifikation, die ist unwichtig, projiziere alles hier

01:19:13.160 --> 01:19:17.080
drauf und habe dann hinterher nur noch, die werden alle darauf

01:19:17.080 --> 01:19:20.540
projiziert, ich bekomme dann nur noch Werte für jeden Datenpunkt, was

01:19:20.540 --> 01:19:24.240
ist sein X1-Wert und muss dann anhand dieses X1-Wertes hinterher

01:19:24.240 --> 01:19:26.120
klassifizieren, ist es ein Kreuz oder ein Kreis.

01:19:26.500 --> 01:19:28.240
Und in dem Fall funktioniert das wunderbar.

01:19:33.190 --> 01:19:36.090
Das ist das, was die Hauptkomponentenanalyse macht.

01:19:46.260 --> 01:19:47.100
Kann man machen.

01:19:47.620 --> 01:19:51.840
Die Varianz muss auch nicht entlang dieser Achsen.

01:19:51.880 --> 01:19:54.640
Hier ist es jetzt gerade zufällig so, dass ich halt die Hauptvarianz

01:19:54.640 --> 01:19:55.620
entlang dieser Achsen habe.

01:19:56.000 --> 01:20:00.580
Es kann genauso gut sein, jetzt muss ich gucken, ich bin halt nicht so

01:20:00.580 --> 01:20:05.600
ein talentierter Zeichner, dass das Ganze so aussieht.

01:20:16.200 --> 01:20:17.740
Dass meine Daten so werden.

01:20:18.160 --> 01:20:22.220
Jetzt wäre meine Hauptvarianz entlang dieser Richtung.

01:20:23.300 --> 01:20:27.300
Und was die Hauptkomponentenanalyse erstmal macht, ist, sie dreht

01:20:27.300 --> 01:20:29.080
einfach nur, ist eine Hauptachsentransformation.

01:20:29.300 --> 01:20:33.800
Die Achsen werden jetzt so transformiert, dass, also das ist die

01:20:33.800 --> 01:20:36.940
Hauptvarianz, das ist die zweite Varianz, das wird jetzt so

01:20:36.940 --> 01:20:41.300
transformiert, dass die Richtung der größten Varianz parallel zu einer

01:20:41.300 --> 01:20:42.000
der Achsen wird.

01:20:42.400 --> 01:20:43.960
Das Ding wird erstmal so gedreht.

01:20:44.800 --> 01:20:46.360
Das ist erstmal, was die PCA macht.

01:20:46.600 --> 01:20:48.540
Da ist noch keine Dimensionsreduktion dabei.

01:20:49.500 --> 01:20:54.040
Gleichzeitig macht die PCA das aber auch so, dass diese Hauptachsen

01:20:55.980 --> 01:20:59.220
durchnummeriert werden, angeordnet werden entlang der Größe der

01:20:59.220 --> 01:20:59.740
Varianz.

01:21:00.120 --> 01:21:05.080
Also erste Dimension mit der höchsten ist das mit der höchsten Varianz

01:21:05.080 --> 01:21:07.740
in der Richtung, zweite Dimension das mit der zweithöchsten Varianz,

01:21:07.840 --> 01:21:09.780
dritte mit der... und so weiter und so fort.

01:21:10.260 --> 01:21:12.440
Und dann geht man einfach hin und schneidet ab.

01:21:13.540 --> 01:21:17.080
Dann schneidet man bei der Transformation einfach irgendwann ab und

01:21:17.080 --> 01:21:21.220
sagt nach, ich komme aus einem 128-dimensionalen Raum, nach 13

01:21:21.220 --> 01:21:27.460
Dimensionen reichen mir, dann werden die 13 Höchsten genommen und der

01:21:27.460 --> 01:21:29.940
Rest, alles darunter, wird abgeschnitten.

01:21:30.440 --> 01:21:34.060
Und das ist dann diese Projektion, dieses Feld auf die Achse runter.

01:21:34.160 --> 01:21:36.340
Das heißt nichts anderes als die andere Dimension wird weggeschnitten.

01:21:37.840 --> 01:21:39.660
Das ist eine sehr einfache Dimension.

01:21:39.880 --> 01:21:43.360
Ich drehe erst, mache eine Hauptachsen-Transformation und dann

01:21:43.360 --> 01:21:45.240
schneide ich die unwichtigen Dimensionen weg.

01:21:45.700 --> 01:21:47.660
Und da kann ich von jeder Dimension in jede gehen.

01:21:47.780 --> 01:21:52.440
Also ich kann von 128 auf 15 gehen oder von 128 auf 2, wie ich das

01:21:52.440 --> 01:21:52.640
will.

01:21:52.800 --> 01:21:53.920
Es wird einfach weggeschnitten.

01:22:00.640 --> 01:22:02.080
Macht man mithilfe der Eigenwerte.

01:22:03.420 --> 01:22:07.020
Man rechnet halt die Varianz aus, die Co-Varianzen.

01:22:13.040 --> 01:22:17.680
Man rechnet die Varianz aus, die Co-Varianz-Matrix im

01:22:17.680 --> 01:22:20.160
Mehrdimensionalen, wird die Co-Varianz-Matrix ausgelegt.

01:22:20.680 --> 01:22:22.940
Dann wird das in die Eigenwerte zählt, macht man eine Eigenwert

01:22:22.940 --> 01:22:27.740
-Zähllegung und bekommt dann hinterher eine Orthonormal-Basis raus,

01:22:27.880 --> 01:22:32.000
basierend auf diesen Eigenwerten der Co-Varianz-Matrix.

01:22:32.820 --> 01:22:34.860
Und das sorgt eben dafür, für diese Drehung.

01:22:34.980 --> 01:22:37.260
Wenn man das hinterher, das ist ja nichts anderes als eine Abbildung

01:22:37.880 --> 01:22:42.000
und die dreht mir nichts anderes als die Achsen und die ist dann die

01:22:42.000 --> 01:22:44.520
Art und Weise, die dafür sorgt, dass ich hinterher das rausbekomme,

01:22:44.780 --> 01:22:47.900
dass die Varianzen sozusagen parallel zu den Hauptachsen liegen.

01:22:49.920 --> 01:22:51.840
Co-Varianz-Matrix ausrechnet Eigenwerte bestimmt.

01:22:52.500 --> 01:22:53.500
Das ist so der Grund.

01:22:53.640 --> 01:22:55.240
Und der Orthonormal-Basis aufstellt.

01:22:55.680 --> 01:22:58.760
Wobei die Eigenwerte sind ja eine Orthonormal-Basis und dann die Größe

01:22:58.760 --> 01:23:01.340
des Eigenwertes gibt mir dann auch an, wie groß die Varianz ist.

01:23:01.340 --> 01:23:04.880
Die größten Eigenwerte behalte ich, die Eigenvektoren, die dazu

01:23:04.880 --> 01:23:07.600
gehören und die kleinsten Eigenwerte liegen weg.

01:23:09.040 --> 01:23:10.840
Und die lasse ich dann entsprechend weg.

01:23:11.300 --> 01:23:15.920
So, und jetzt kann man schön ein einfaches Beispiel malen.

01:23:17.040 --> 01:23:18.060
Das sieht so aus.

01:23:20.600 --> 01:23:23.680
Ich lasse das jetzt mal mit den Kreuzen und Kreisen weg, weil Kreuze

01:23:23.680 --> 01:23:27.920
und Kreise interessiert dir sowieso nicht mehr, sondern ich nehme

01:23:30.980 --> 01:23:32.180
drei Klassen her.

01:23:32.220 --> 01:23:33.960
Und jetzt muss ich aufpassen, dass ich das richtig male.

01:23:39.930 --> 01:23:41.150
So müsste es ungefähr passen.

01:23:42.030 --> 01:23:43.310
Ich habe so drei Klassen.

01:23:44.330 --> 01:23:47.250
Wir haben eine sehr lange Varianz in der Richtung und eine sehr

01:23:47.250 --> 01:23:48.750
niedrige Varianz in der Richtung.

01:23:49.810 --> 01:23:54.290
Und der Algorithmus sagt jetzt, das ist die höchste Varianz.

01:23:54.910 --> 01:23:58.510
Drehen wir parallel zur Achse und projizieren dann auf die Achse.

01:23:59.650 --> 01:24:02.290
Und dann kann ich die drei Dingerklassen nicht mehr voneinander

01:24:02.290 --> 01:24:02.610
trennen.

01:24:03.150 --> 01:24:07.830
Die drei Klassen müsste ich hier gerade eben so trennen, dass die

01:24:07.830 --> 01:24:11.810
Richtung mit der niedrigsten Varianz, diese Richtung, parallel hier zu

01:24:11.810 --> 01:24:17.230
liegt und drauf gefällt wird, damit ich dann hinterher die drei Dinger

01:24:17.230 --> 01:24:18.190
da so stehen habe.

01:24:19.370 --> 01:24:22.050
Und dann kann ich entlang dieser Dimension die drei Klassen

01:24:22.050 --> 01:24:22.870
voneinander trennen.

01:24:23.510 --> 01:24:26.530
Wenn ich also zum Beispiel so strukturierte Daten habe und ich das mit

01:24:26.530 --> 01:24:29.930
dieser PCA mache und die niedrigste wegwerfen, dann versagt das

01:24:29.930 --> 01:24:30.490
vollständig.

01:24:31.790 --> 01:24:34.790
Dieses Problem nennt man dann sinnigerweise auch das Adidas Problem.

01:24:34.970 --> 01:24:36.650
Das ist halt das Problem mit den drei Streifen.

01:24:37.510 --> 01:24:40.990
Und es ist ein typisches Problem dafür, warum die PCA da in der

01:24:40.990 --> 01:24:41.910
Beziehung nicht gut ist.

01:24:42.390 --> 01:24:44.690
Und jetzt kommt nämlich gerade das rein, was du gesagt hattest.

01:24:45.170 --> 01:24:48.610
Du hattest gesagt, na ja, die weiß darüber, die will halt möglichst

01:24:48.610 --> 01:24:49.790
gut klassifizieren können.

01:24:50.130 --> 01:24:54.270
Das kann eben die PCA nicht, aber es gibt eine Analyse, die das kann

01:24:54.270 --> 01:24:57.390
und die heißt eben die lineare Diskriminanzanalyse.

01:24:57.870 --> 01:25:01.310
Und da steckt dann extra das Wort Diskriminanz, also Trennung von

01:25:01.310 --> 01:25:03.970
Klassen, in dem Namen drin.

01:25:04.390 --> 01:25:06.870
Und was die macht und wie die das macht und warum die besser ist,

01:25:07.310 --> 01:25:08.710
machen wir dann entsprechend nächste Woche.

