You are on page 1of 106

UNIVERSITA T ERLANGEN-NU RNBERG

LEHRSTUHL FU R NACHRICHTENTECHNIK


Prof. Dr.-Ing. B. Girod

Fehlerverschleierungsverfahren fur
Sprachubertragung mit Paketverlust

Diplomarbeit
von

Henning Sanneck
Betreuung: Dipl.-Inf. K. Ben Younes / Dipl.-Ing. R. Reng / Dipl.-Ing. A. Stenger

Erlangen, Juni 1995

Erklarung
Ich versichere, da ich die Arbeit ohne fremde Hilfe und ohne Benutzung anderer als
der angegebenen Quellen angefertigt habe und da die Arbeit in gleicher oder ahnlicher
Form noch keiner anderen Prufungsbehorde vorgelegen hat und von dieser als Teil einer
Prufungsleistung angenommen wurde. Alle Ausfuhrungen, die wortlich oder sinngema
ubernommen wurden, sind als solche gekennzeichnet.

Erlangen, den 16. Juni 1995

Henning Sanneck
Eichenwaldstr. 19
90513 Zirndorf

Inhaltsverzeichnis
Inhaltsverzeichnis : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : i
Zusammenfassung : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : iii
Abkurzungen und verwendete Formelzeichen : : : : : : : : : : : : : : : : : : : : iv

1 Einleitung

2 Grundlagen

2.1 Eigenschaften des Sprachsignals : : : : : : : : : : : : : : : : : : : : : : : :


2.2 Sprachubertragung in paketvermittelten
Netzen : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

3 Methoden der Fehlerverschleierung

3.1 Wahl der Paketlange : : : : : : : : : : : : : : : : : :


3.2 Manahmen im Empfanger : : : : : : : : : : : : : : :
3.2.1 Silence Substitution : : : : : : : : : : : : : : :
3.2.2 Waveform Substitution : : : : : : : : : : : : :
3.3 Manahmen im Sender und Empfanger : : : : : : : :
3.3.1 Interleaving / Interpolation : : : : : : : : : :
3.3.2 Hierarchische Codierung : : : : : : : : : : : :
3.3.3 Klassenorientierte Codierung / Verschleierung

4 Algorithmen zur Fehlerverschleierung

4.1 Pattern Matching : : : : : : : : : : : : : : : : :


4.1.1 Beschreibung des Algorithmus : : : : : :
4.1.2 Packet Merging : : : : : : : : : : : : : :
4.1.3 Amplitudenanpassung : : : : : : : : : :
4.1.4 Zweiseitiges Mustererkennungsverfahren
i

:
:
:
:
:

:
:
:
:
:

:
:
:
:
:

:
:
:
:
:
:
:
:
:
:
:
:
:

:
:
:
:
:
:
:
:
:
:
:
:
:

:
:
:
:
:
:
:
:
:
:
:
:
:

:
:
:
:
:
:
:
:
:
:
:
:
:

:
:
:
:
:
:
:
:
:
:
:
:
:

:
:
:
:
:
:
:
:
:
:
:
:
:

:
:
:
:
:
:
:
:
:
:
:
:
:

:
:
:
:
:
:
:
:
:
:
:
:
:

:
:
:
:
:
:
:
:
:
:
:
:
:

:
:
:
:
:
:
:
:
:
:
:
:
:

:
:
:
:
:
:
:
:
:
:
:
:
:

:
:
:
:
:
:
:
:
:
:
:
:
:

6
7
7
8
10
10
11
12

13

13
13
16
18
20

ii
4.2 Modi ed Waveform Similarity Overlap Add
(MWSOLA) : : : : : : : : : : : : : : : : : : : : : :
4.2.1 Einfuhrung : : : : : : : : : : : : : : : : : :
4.2.2 Beschreibung des MWSOLA-Verfahrens : :
4.2.3 Anpassung des MWSOLA-Verfahrens an die
Problemstellung : : : : : : : : : : : : : : : :
4.3 Periodische Fortsetzung des Sprachsignals : : : : :
4.3.1 Einfuhrung : : : : : : : : : : : : : : : : : :
4.3.2 Beschreibung des Algorithmus : : : : : : : :
4.3.3 Anwendung des "Packet Merging\ : : : : : :

: : : : : : : : : : : : : 20
: : : : : : : : : : : : : 20
: : : : : : : : : : : : : 22
:
:
:
:
:

:
:
:
:
:

:
:
:
:
:

:
:
:
:
:

:
:
:
:
:

5 Vergleich der Algorithmen

5.1 Objektiver Vergleich : : : : : : : : : : : : : : : : : : : : : :


5.1.1 Theoretische Erfolgswahrscheinlichkeit einer
Fehlerverschleierung : : : : : : : : : : : : : : : : : :
5.1.2 Rechenaufwand : : : : : : : : : : : : : : : : : : : : :
5.1.3 Objektive Qualitatsmae : : : : : : : : : : : : : : : :
5.2 Subjektiver Vergleich : : : : : : : : : : : : : : : : : : : : : :
5.2.1 Verfahren der subjektiven Sprachqualitatsbewertung
5.2.2 Durchfuhrung eines Sprachqualitatstests : : : : : : :
5.3 Zusammenfassung : : : : : : : : : : : : : : : : : : : : : : : :

6 Anwendung der Fehlerverschleierung

6.1 Das "Network Voice Terminal\ (NeVoT)


6.1.1 Einfuhrung : : : : : : : : : : : :
6.1.2 RTP/RTCP : : : : : : : : : : : :
6.1.3 Programmstruktur : : : : : : : :
6.2 Die modi zierte NeVoT-Version : : : : :
6.2.1 Simulation von Paketverlusten : :
6.2.2 Zusatzliche Statistikfunktionen :
6.2.3 Fehlerverschleierung : : : : : : :

:
:
:
:
:
:
:
:

:
:
:
:
:
:
:
:

:
:
:
:
:
:
:
:

:
:
:
:
:
:
:
:

:
:
:
:
:
:
:
:

:
:
:
:
:
:
:
:

:
:
:
:
:
:
:
:

:
:
:
:
:
:
:
:

:
:
:
:
:
:
:
:

:
:
:
:
:
:
:
:

:
:
:
:
:
:
:
:

:
:
:
:
:

:
:
:
:
:

:
:
:
:
:

:
:
:
:
:

:
:
:
:
:

:
:
:
:
:

:
:
:
:
:

:
:
:
:
:

25
32
32
33
34

37

: : : : : : : : 37
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:

:
:
:
:
:
:
:
:
:
:
:
:
:
:
:

:
:
:
:
:
:
:
:
:
:
:
:
:
:
:

:
:
:
:
:
:
:
:
:
:
:
:
:
:
:

:
:
:
:
:
:
:
:
:
:
:
:
:
:
:

:
:
:
:
:
:
:
:
:
:
:
:
:
:
:

:
:
:
:
:
:
:
:
:
:
:
:
:
:
:

:
:
:
:
:
:
:
:
:
:
:
:
:
:
:

37
40
41
45
46
51
61

64

64
65
68
70
75
75
78
83

7 Ausblick

89

Anhang

96

iii

Zusammenfassung
Die vorliegende Arbeit behandelt Verfahren zur Verschleierung von Paketverlusten in paketvermittelten Netzen. Das bedeutet, das versucht werden soll, die durch bei der U bertragung verlorenen Pakete enstandenen Lucken im Sprachsignal mit geeigneten Daten
aufzufullen.
Hierfur wurden drei Algorithmen der "Waveform Substitution\-Gruppe (Ersetzung des
fehlendes Signalstucks durch ein dem Sprachsignal entnommenes Signalsegment) untersucht. Es handelt sich um das Mustererkennungsverfahren ("Pattern Matching\) nach
Goodman ([GLWW86], [GWDP88]), sowie eine Methode der periodischen Fortsetzung
des Sprachsignals ("Pitch Waveform Replication\). Hinzu kommt ein Verfahren zur hochqualitativen Zeitdehnung und -stauchung von Sprache ("Modi ed Waveform Similarity
OverLap Add\, MWSOLA, [VR93], [Gru94]), das in dieser Arbeit an die Anwendung als
Fehlerverschleierungsalgorithmus angepat wurde.
Die Verfahren wurden implementiert und auf ihre Leistungsfahigkeit hin untersucht. Zu
einer abschlieenden Beurteilung der Algorithmen wurde ein geeignetes subjektives Testverfahren ausgewahlt. Dieses Verfahren kam bei einem Sprachqualitatstest mit einer Reihe
von Personen zur Anwendung. Dabei konnte mit allen drei Methoden eine deutliche Verbesserung der Sprachqualitat durch Fehlerverschleierung festgestellt werden. Die beste
subjektive Qualitat ist mit dem MWSOLA-Algorithmus erzielt worden.
Dieser Algorithmus wurde dann in das Audiokonferenzprogramm "Network Voice Terminal\ (NeVoT, [Sch92], [Sch94a]) eingebunden. Damit ist es moglich, beim Auftreten
von Paketverlusten, Audiokonferenzen mit verbesserter Qualitat der ubertragenen Sprache durchzufuhren.
Zur Simulation von Paketverlusten wurde auerdem ein einfaches Netzwerkmodell in NeVoT integriert. Hinzu kamen noch zusatzliche Statistikfunktionen (z.B. Detektion von
Paketverlusten), die einerseits zur Ansteuerung der Fehlerverschleierung dienen und andererseits eine Messung der Verbindungsqualitat ermoglichen. Zum Test der erstellten
Programme, sowie um real auftretende Paketverluste zu messen, stand eine Verbindung
zu einem Host in Frankreich zur Verfugung, bei der auf beide Teilnehmer der Zugri
moglich war.

iv

Verwendete Formelzeichen und Abkurzungen


1. Allgemeingultige Bezeichnungen
t
n
x( n )
xL;P1P2 (n)
y (n)
fA
T
f
L
s
nL
nv
lin
lout
lfit
p
'a1 a2 (p)
pmax
wH (n)
wL;H (n)
wR;H (n)
pt;s(s)
pL;s(s)
p~L;s(s)
IN

 1 (n)

kontinuierlicher Zeitindex
diskreter Zeitindex
Originalsignal / Eingangssignal eines Algorithmus
durch deterministische Paketverluste gestortes Signal
(nach P1 Paketen werden P2 Pakete unterdruckt)
fehlerverschleiertes Signal / Ausgangssignal eines Algorithmus
Abtastfrequenz
Sprachgrundperiode, "Pitch Period\ (in Abtastwerten)
Sprachgrundfrequenz
Paketlange (in Abtastwerten)
Lange einer Sequenz von aufeinanderfolgenden verlorenen Paketen
maximale Lange einer verschleierbaren Sequenz
Anzahl der fur eine Verschleierung notwendigen Pakete
Anzahl der einem Algorithmus ubergebenen Abtastwerte
Anzahl der vom Algorithmus zuruckgegebenen Abtastwerte
Anzahl der zum "Packet Merging\ ("Fitting\) verwendeten Abtastwerte
Position im Korrelationsberechnungsbereich (Verschiebung)
Kreuzkorrelationsfunktion zweier Signalabschnitte a1 und a2
Position maximaler Korrelation
Hann-Fenster
linksseitiges Hann-Fenster
rechtsseitiges Hann-Fenster
Wahrscheinlichkeit, da in einer Sequenz von s Paketen
keine Sprachbereichsubergange aufgetreten sind
Wahrscheinlichkeit, da genau s Pakete hintereinander verloren gehen
Wahrscheinlichkeit, da mindestens s Pakete hintereinander verloren gehen
Menge der naturlichen Zahlen
Sprungfunktion


VERWENDETE FORMELZEICHEN UND ABKURZUNGEN

2. Bezeichnungen fur das Mustererkennungsverfahren, Kap. 4.1


m(n)
M
F (n)
S
A
D (n)
E (n)

Musterfolge
Lange der Musterfolge
Ersatzsprachsegment
Lange des Suchbereichs
E ektivwert der Amplitude (eines Paketes)
Folge von Abtastwerten zur Amplitudenanpassung
Signalenergie im "Packet Merging\-U bergangsbereich

3. Bezeichnungen fur das MWSOLA-Verfahren, Kap. 4.2


F
SA
SS



a
a0
N
"

Abschnittslange ("framelength\)
Abstand der Abschnitte im Eingangssignal x(n)
Abstand der Abschnitte im Ausgangssignal y(n)
Zeitskalierungsfaktor mit = SA=SS
Dehnungsfaktor mit  = lin=lout
Verschiebung eines Abschnittes
dem Eingangssignal entnommener, im Ausgangssignal angeordneter Abschnitt
zur Korrelationsberechnung verwendeter Abschnitt im Eingangssignal
Anzahl der Abschnitte
Di erenz zwischen gewunschter und realer Ausgangslange

4. Bezeichnungen fur den Vergleich der Algorithmen, Kap. 5


P
nt
pv (s)
SNR
N
SNRSS
ref
test
xWC (n)
M

Erfolgswahrscheinlichkeit einer Fehlerverschleierung


Anzahl der Sprachbereichsubergange pro Paket
Wahrscheinlichkeit, da mindestens nv Pakete hintereinander ankommen
Signal-to-Noise-Ratio (Signal-Rausch-Verhaltnis)
Rauschleistung
Signal-Rausch-Verhaltnis fur "Silence Substitution\
Anzahl der Referenzsignale
Anzahl der Testsignale
extrem gestortes Testsignal ("Worst Case\)
Mittelwert der Beurteilungen eines Testabschnitts


VERWENDETE FORMELZEICHEN UND ABKURZUNGEN

M
K

Standardabweichung des Mittelwertes


Mittelwert fur alle Testabschnitte
Anteil der Testpersonen, die die Komponente gewahlt haben, K 2 [0; 1]

5. Bezeichnungen fur die Anwendung der Fehlerverschleierung, Kap. 6


i
j
Di
vi;j
tsi;j
ti;j
pi;j
di;j
p (  )
a

Nummer des Sprachsegmentes ("talkspurt\)


Nummer des Paketes im "talkspurt\ i
(konstante) Verzogerung eines "talkspurts\
Verzogerungsabweichung
Zeitstempel ("timestamp\) eines Paketes
Ankunftszeitpunkt
Ausgabezeitpunkt ("playout point\)
Verzogerung eines Paketes im Netzwerk
U bergangswahrscheinlichkeiten zwischen Netzwerkzustanden
Listenlange fur die Sequenznummeranalyse

6. Verwendete Abkurzungen
PATMAT Pattern Matching (Mustererkennungsverfahren)
MWSOLA Modi ed Waveform Similarity OverLap{Add
PWR
Pitch Waveform Replication (periodische Fortsetzung des Sprachsignals)
MUL
Anzahl der benotigten Multiplikationen
ADD
Anzahl der benotigten Additionen
mh
Testsignal (Sprecher mannlich, hohe Stimmlage)
mt
Testsignal (Sprecher mannlich, tiefe Stimmlage)
wh
Testsignal (Sprecherin weiblich, hohe Stimmlage)
wt
Testsignal (Sprecherin weiblich, tiefe Stimmlage)
NeVoT
Network Voice Terminal
RTP
Real-Time Transport Protocol
RTCP
Real-Time Transport Control Protocol
UDP
User Datagram Protocol
IP
Internet Protocol

vi

Kapitel 1
Einleitung
In heutigen paketvermittelten Netzen, wie dem Internet, ist es moglich, da bei Echtzeitanwendungen Datenpakete uberhaupt nicht oder verspatet am Empfanger eintre en. Bei
Videoubertragung kann das nur relativ geringe Storungen im Bildsignal zur Folge haben.
Wird ein Sprach-, bzw. Audiosignal ubertragen, fallt dieses fur eine gewisse Zeit jedoch
ganz aus, was fur den Horer sehr unangenehm ist.
Es besteht die Moglichkeit, durch Hinzufugen von Redundanz im Sender, enstandene Paketfehler zu rekonstruieren. Da es sich allerdings nicht um einzelne Bitfehler, sondern den
Ausfall einer Folge von moglicherweise mehreren Hundert Bit handelt, sind Fehlerrekonstruktionsverfahren (insbesondere bei gehauft auftretenden Paketverlusten) nur bedingt
geeignet.
Die vorliegende Arbeit behandelt nun Verfahren, um Paketverluste zu verschleiern, d.h.
fur den Horer angenehmer, bzw. weniger wahrnehmbar zu machen. Dazu werden in Kapitel 2 zunachst die wichtigsten Grundlagen in Bezug auf das Sprachsignal und seine
U bertragung behandelt. Dann wird ein kurzer U berblick uber die gebrauchlichen Methoden der Fehlerverschleierung gegeben (Kapitel 3).
Drei Algorithmen, die auf der Entnahme geeigneter Abschnitte aus den einwandfrei empfangenen Daten basieren ("Waveform Substitution\, Kap. 3.2.2), wurden ausgewahlt. Es
sind dies das "Pattern Matching\-Verfahren (Mustererkennung, Kap. 4.1), sowie ein Verfahren der periodischen Fortsetzung des Sprachsignals ("Pitch Waveform Replication\,
Kap. 4.3)([GLWW86], [GWDP88]).
1

KAPITEL 1. EINLEITUNG

Ein neuer Ansatz in diesem Zusammenhang ist das Verschleiern eines Paketverlustes mit
Hilfe eines Verfahrens zur Zeitdehnung von Sprache. Dieses 1993 entwickelte Verfahren
heit MWSOLA ("Modi ed Waveform Similarity OverLap Add\, [VR93], [Gru94]) und
erlaubt bei relativ niedrigem Rechenaufwand eine hochqualitative Zeitstauchung, bzw.
-dehnung eines Sprachsignals, ohne den Klangcharakter der Sprache zu andern. Dieses
Verfahren wurde in dieser Arbeit so verandert, da es moglich ist, kurze Sprachsignalabschnitte in der Zeit zu dehnen, um durch Paketverlust im Sprachsignal entstandene
Lucken zu schlieen (Kap. 4.2.3).
Alle drei Methoden wurden zunachst unter matlab implementiert und getestet. Neben
einem objektiven Vergleich (Kap. 5.1) wurde ein Sprachqualitatstest durchgefuhrt, bei
dem eine Reihe von Personen die Leistungsfahigkeit der drei Verfahren beurteilten (Kap.
5.2). Der angepate MWSOLA-Algorithmus erwies sich dabei als das Verfahren mit der
subjektiv besten Qualitat des verschleierten Signals.
Um eine mogliche Anwendung der Fehlerverschleierung zu demonstrieren und zu veri zieren, wurde der MWSOLA-Algorithmus in das Programm "Network Voice Terminal\
(NeVoT) eingebunden (Kapitel 6). NeVoT ist ein System zur Durchfuhrung von Audiokonferenzen, insbesondere im Internet. Es verwendet das gerade in der Entwicklung
be ndliche RTP ("real-time transport protocol\, Kap. 6.1.2), das Echtzeitanwendungen
unter Standard-Betriebssystemen wie UNIX unterstutzt.
Zum Test der fehlerverschleiernden Verfahren wurde ein einfaches Netzwerkmodell implementiert (Kap. 6.2.1). Auerdem ist NeVoT um weitere Statistikfunktionen erweitert
worden (Kap. 6.2.2). Mit Hilfe dieser Funktionen konnte die Qualitat einer Verbindung
zwischen dem lokalen Netzwerk des Lehrstuhls fur Nachrichtentechnik und einem Host
in Frankreich gemessen werden. Diese Verbindung diente auch zum Test der erstellten
Software unter realen Bedingungen.
Schlielich wurde, aufbauend auf die zusatzlichen Statistikfunktionen, der MWSOLAFehlerverschleierungsalgorithmus in NeVoT integriert (Kap. 6.2.3).
Kapitel 7 enthalt einen Ausblick auf zukunftige Anwendungen der Fehlerverschleierung.

Kapitel 2
Grundlagen
2.1 Eigenschaften des Sprachsignals
Der kleinste Bestandteil der Sprache der bedeutungsunterscheidende Funktion hat, ist das
Phonem ([EH93]). Ein Phonem hat eine minimale Lange von ca. 40 ms.
In Abb. 2.1 ist das Zeitsignal des Sprachlautes "P\, welcher aus den Phonemen /p/ und
/e/ besteht, abgebildet. Besonders Vokale, aber auch stimmhafte Mitlaute, zeichnen sich
x(t)

0.5

0.4
0.3
0.2
0.1
0
0.1
0.2
0.3
0.4
0.5
0

50

100

150

/p/

200

250

300

t/ms

/e/

Abbildung 2.1: Zeitsignal des Sprachlautes "P\


durch einen periodischen Signalverlauf mit der Grundperiode T , bzw. der Grundfrequenz
f = T1 , aus. Hinzu kommt die gegenuber den meisten Konsonanten deutliche hohere Energie. Ein weiteres Merkmal ist, da bestimmte Frequenzbereiche bei Aussprechen eines Vo3

KAPITEL 2. GRUNDLAGEN

kales durch die Resonanzeigenschaften des Vokaltraktes unterdruckt werden. Hierdurch


treten bei den sogenannten Formantfrequenzen im Spektrum, bzw. Spektrogramm (Abb.
A.1, S.96) ausgepragte Spitzen der Amplitude auf.
Konsonanten, die in Halbvokale (/w,r,l,j/), Explosivlaute (/b,d,g/), Nasale (/m,n/) sowie
Frikative (Reibelaute, z.B. /s,f/) eingeteilt werden, sind vielfaltiger in ihren Eigenschaften und ihrer Entstehung. Die verschiedenen Gruppen werden daruber hinaus noch nach
stimmhaften und stimmlosen Mitlauten unterschieden ([EH93], [RS78]).
Ein Begri , der bereits die Aufteilung eines Sprachsignals in Bereiche einheitlicher Lange
zur U bertragung in Paketen betri t, ist der "talkspurt\ ([SB80]). Ein "talkspurt\ ist ein
zusammenhangendes Sprachsegment, das auch beim Empfanger einer Sprachubertragung
zusammenhangend wiedergegeben werden mu. Der Beginn ist durch einen langeres Signalstuck ( 15 ms) mit hoher Sprachenergie gekennzeichnet. Ein "talkspurt\ grenzt sich
vom folgenden Segment durch mindestens etwa 100 ms abklingender Sprache geringer
Energie, bzw. Stille ab ("hangover\ ). Dieser "hangover\ sollte bei einer U bertragung mit
ubermittelt werden, um das Abschneiden von z.B. Reibelauten geringer Energie (/s/), die
am Schlu eines Wortes stehen, zu verhindern ([Sch94a], vgl. Kap. 6.1.3, S. 72).

2.2 Sprachubertragung in paketvermittelten


Netzen
Paketvermittelte Netzwerke ("Packet Switched Networks\) konnen bei Echtzeitanwendungen, bei denen die U bertragung mit Datagrammen statt ndet (! Kap. 6.1.1, S. 67),
nicht garantieren,
a) ob das Datenpaket rechtzeitig eintri t (bzw. ob es uberhaupt eintri t)
b) ob das Datenpaket fehlerfrei eintri t
Problem b) wird in dieser Arbeit nicht behandelt, da einerseits die Bitfehlerrate in paketvermittelten Netzen sehr gering ist [Jay93] und es andererseits ausgereifte Verfahren zur
Bitfehlerrekonstruktion gibt.

KAPITEL 2. GRUNDLAGEN

Wenn ein Datenpaket spater als sein geplanter Ausgabezeitpunkt eintri t (a), kann dies
dazu fuhren, da das Paket nicht mehr verwendet werden kann und als verloren angesehen
werden mu (s. S. 72). Die Verzogerung, die ein Paket nach dem Abschicken erfahrt setzt
sich zusammen aus ([CM88], vgl. Abb. 6.5):

 (feste) U bertragungsverzogerung ("Propagation Delay\, bedingt durch die endliche


Ausbreitungsgeschwindigkeit elektromagnetischer Wellen)

 (variable) Verzogerung durch Verarbeitung und Pu erung im Empfanger und in auf


dem U bertragungsweg liegenden Gateways und Routern ("Processing and Queueing
Delay\)

Das zentrale Problem ist jedoch, das Datenpakete uberhaupt nicht eintre en. Bei U berlastung eines Pu erspeichers ("Congestion\) an Gateways oder Routern im Netzwerk werden Datenpakete unterdruckt ("discarding\ / "dropping\). Die Echtzeitanforderungen

der Sprachubertragung erlauben keine erneute Anforderung von Paketen. Die


unterdruckten Pakete sind verloren ("packet loss\). Die Qualitat der empfangenen Sprache wird dadurch stark beeintrachtigt.

In Abb. 2.2 ist ein U berblick uber die bestimmenden Parameter einer Sprachubertragung
uber ein paketvermitteltes Netz gegeben. In dieser Arbeit soll, wie in der Abbildung hervorgehoben, versucht werden mittels Signalverarbeitung im Empfanger, die Auswirkungen
von Paketverlusten auf die Sprachqualitat zu begrenzen.
Sender
Wahl der Codierung
Wahl der Protokolle
(Overhead)

..
Empfanger

Netzwerk
aktuelle
Netzbelastung
..
benotigte
..
Ubertragungsrate
(bit/s)

Paketverluste
..
Verzogerung

..
Sprachqualitat

Signalverarbeitung
(Rechenaufwand)

Abbildung 2.2: Parameter der Sprachubertragung in paketvermittelten Netzen


Zunachst jedoch wird im folgenden Kapitel wird ein U berblick uber gangige Verfahren
gegeben, um das Problem des Paketverlustes zu behandeln.

Kapitel 3
Methoden der Fehlerverschleierung
(Error Concealment)
3.1 Wahl der Paketlange
Eine vorbeugende Manahme im Sender stellt die geeignete Wahl der Sprachsegmentdauer
pro Datenpaket dar.
Sprachsegmentdauer Storung bei Paketverlust Overhead Anzahl der Pakete/Zeit
< 2 ms
Gerauschimpulse
hoch
hoch
> 32 ms
Verlust ganzer Phoneme niedrig
niedrig

Tabelle 3.1: Wahl der Sprachsegmentdauer pro Paket


Die Segmentdauer sollte moglichst kurz gewahlt werden, damit das Sprachsignal fur eine
Segmentdauer als stationar betrachtet werden kann (das ist auerdem eine Voraussetzung fur die Anwendbarkeit von einigen Fehlerverschleierungsmethoden ! Kap 3.2.2).
Werden allerdings sehr kleine Sprachsignalabschnitte gewahlt, kommt es zu storenden
Gerauschimpulsen. Daruber hinaus ist der Overhead eine Paketes (Verhaltnis von Headerzu Nutzinformation) sehr hoch. Das Netz wird moglicherweise durch die groe Anzahl von
Paketen pro Zeit "uber utet\ ( "Congestion\ ).
Bei zu gro gewahlter Segmentdauer kann die Sprachverstandlichkeit bei Paketverlust
6

KAPITEL 3. METHODEN DER FEHLERVERSCHLEIERUNG

durch das Fehlen ganzer Phoneme nachhaltig gestort werden (vgl. Kap. 2.1). Fur diese
Arbeit wurde in allen Betrachtungen eine Sprachsegmentdauer von 20 ms gewahlt. Das
entspricht bei einem PCM-codierten Sprachsignal, das mit 8 kHz abgetastet wurde, einer
Paketlange (ohne Header) von 160 Abtastwerten.

3.2 Manahmen im Empfanger


Sehr vorteilhaft bei dieser Gruppe von Fehlerverschleierungsmethoden ist, da Implementierungsaufwand nur im Empfanger auftritt. Das bedeutet, da auch nachtraglich in ein
existierendes System fehlerverschleiernde Algorithmen integriert werden konnen und dabei die Kompatibilitat gewahrleistet bleibt. Im Sender wird also zu den Audiodaten weder
zusatzliche Information (vgl. insbesondere Kap. 3.3.3), noch Redundanz (! Kap. 3.3)
hinzugefugt. Damit bleibt der Overhead niedrig.
Weiterhin ist es somit moglich, das jeder Empfanger unabhangig vom Sender Fehler verschleiern kann (verschiedene Verfahren, verschiedene Qualitatsabstufungen). Das macht
dieses Methoden insbesondere fur "multicasting\ 1 interessant, da hier ein Sender mit
dem gleichen Paket mehrere Empfanger, die evtl. auf verschiedene Art Fehler verschleiern, anspricht.

3.2.1 Silence Substitution


Die einfachste Moglichkeit der Fehlerbehandlung besteht darin, das fehlende Sprachsegment durch Stille zu ersetzen ("silence substitution\ oder "zero stung\ ). Hierzu werden lediglich Abtastwerte mit Wert Null ausgegeben. Allerdings zeigt es sich, da schon
fur niedrige Paketverlustwahrscheinlichkeiten pL die Sprachqualitat sehr schlecht wird
1




"unicast\: Der sendende Host verschickt an jeden Empfanger ein Paket gleichen Inhalts
"multicast\: es wird ein Paket an eine Multicast-Gruppenadresse abgeschickt, das im Netzwerk
zirkuliert. Jeder Host, der zur angesprochenen Multicast-Gruppe gehort, empfangt das Paket und
schickt es weiter. Die Paketlaufzeit ist durch das TTL-(time to live)-Feld im Header, das die
maximale Anzahl der passierten Netzwerkknoten ("hops\) angibt, begrenzt.

KAPITEL 3. METHODEN DER FEHLERVERSCHLEIERUNG

(pL > 1% fur typische Paketlangen). Allgemein kann man sagen, da Sprungstellen und
Folgen von Nullen im Sprachsignal sich sehr negativ auf die Sprachqualitat auswirken.

3.2.2 Waveform Substitution


Die Fehlerverschleierungsmethode, die auch den Schwerpunkt dieser Arbeit bildet, ist die
Ersetzung eines fehlendes Signalstucks durch ein dem Sprachsignal entnommenes Signalsegment ("waveform substitution\). Das Verfahren lat sich allgemein in folgende Schritte
einteilen [GWDP88]:

 Klassi zierung von U bertragungslucken als fehlendes Paket oder Stille aufgrund von
Sequenznummern ("sequence numbers\) und Zeitstempeln ("timestamps\).

 Zwischenspeicherung eines Abschnitts einwandfrei empfangener Sprache


 Signalverarbeitung, um fehlendes Sprachsegment zu ersetzen

Eine sinnvolle Ersetzung von evtl. mehr als 100 verlorengegangenen aufeinanderfolgenden
Abtastwerten, durch eine dem empfangenen Sprachsignal entnommene Folge von Abtastwerten, ist nur moglich, wenn das Sprachsignal im Bereich der Fehlstelle stationar ist.
Daraus ergeben sich Probleme bei Paketverlust in den U bergangsbereichen von Phonemen verschiedenen Typs (stimmhaft, stimmlos) ( ! Kap.2.1 ).

3.2.2.1 Wiederholung des letzten Paketes


Die Wiederholung des zuletzt empfangenen Datenpaketes ("Packet Repetition\) ist die
einfachste Moglichkeit, das fehlende Sprachsegment in der Wellenform anzunahern. Es ist
nur notig das letzte Paket zwischenzuspeichern und bei Bedarf abzurufen. In Abb. 3.1
sind das Originalsignal x(n) mit der Paketfolge 1 2 3 und das durch "Packet Repetition\ beim Verlust des Paketes 2 entstandene Signal y(n) (Paketfolge 1 1 3) gegenubergestellt. Allerdings entstehen, dadurch das die Paketlange in keinem Zusammenhang mit der
Sprachgrundperiode steht, an beiden Randern des Ersatzpaketes storende Sprungstellen
(! Abb. 3.1). Wegen der somit schlechten erzielten Sprachqualitat, wurde dieses einfache
Verfahren nicht weiter berucksichtigt.

KAPITEL 3. METHODEN DER FEHLERVERSCHLEIERUNG

x(n)
0.25

0.2

0.15

0.1

0.05

0.05

0.1

0.15
0

50

100

150

Paket 1

Paket 2 Paket 3 n

200

250

300

350

400

450

500

y(n)
0.25

0.2

0.15

0.1

0.05

0.05

0.1

0.15
0

Paket 1 Paket 1 Paket 3 n


50

100

150

200

250

300

350

400

450

500

Abbildung 3.1: Packet Repetition

3.2.2.2 Mustererkennung
Mustererkennung ("Pattern Matching\, PATMAT) ist der Versuch mit Hilfe einer der
Lucke unmittelbar vorangehenden, bzw. nachfolgenden Folge von Abtastwerten ein moglichst gut passendes Signalsegment zur Au ullung der Lucke zu nden.
Fur diese Arbeit wurde ein Algorithmus ahnlich einem in [GLWW86] und [GWDP88]
beschriebenen Verfahren implementiert und getestet (! Kap. 4.1).

3.2.2.3 Periodische Fortsetzung des Sprachsignals


Die Sprachgrundperiode ("Pitch Period\ ! Kap. 2.1) wird gemessen. Dann wird die Folge von Abtastwerten entsprechender Lange , die sich unmittelbar vor der Lucke be ndet,
periodisch fortgesetzt, solange bis das fehlende Paket uberbruckt ist. ("Pitch Waveform
Replication\,PWR). Hierzu wird in Kapitel 4.3 ein eigener Ansatz dieser Kategorie vorgestellt.

KAPITEL 3. METHODEN DER FEHLERVERSCHLEIERUNG

10

In [VA89] wird eine Weiterentwicklung dieser Methode vorgestellt ("Phase Matching\ ).


Hierbei wird die Periodenlange zwischen der letzten Periode vor der Lucke und der
ersten Periode nach der Lucke linear interpoliert. Das periodisch fortgesetzte ErsatzSprachsignal wird entsprechend komprimiert oder expandiert, um phasengerecht an das
folgende Sprachsegment anzuschlieen. Es konnen somit leichte Sprachgrundfrequenzanderungen berucksichtigt werden. Auerdem erfolgt eine lineare Amplitudenanpassung gema
dem Unterschied der Amplituden der betrachteten Perioden.

3.2.2.4 Zeitdehnung
Die U berbruckung fehlender Pakete mit Hilfe eines Verfahrens zur Zeitskalierung ("TimeScale Modi cation\) von Sprache wird in dieser Arbeit neu vorgestellt (! Kap. 4.2). Es
beruht darauf, ein vorhandenes Sprachsignal bestimmter Lange in der Zeit zu dehnen und
so die entstandene Lucke zu fullen.

3.3 Manahmen im Sender und Empfanger


Diese Gruppe von Methoden ist durch die Einbeziehung des Senders zwar nicht so exibel,
bietet aber mehr Moglichkeiten der Beein ussung und der Berucksichtigung von anderen
als "Waveform\-Codierverfahren. Es ist moglich, zumindest (An-)Teile des Signals originalgetreu zuruckzugewinnen. Damit sind diese Manahmen zwischen den im Kap. 3.2
vorgestellten Verfahren und Fehlerrekonstruktionsverfahren ("Forward Error Correction\,
[BCG95] Kap. 4), die dem Paket Redundanz hinzufugen, einzuordnen.

3.3.1 Interleaving / Interpolation


Das Sprachsignal wird im Sender in Folgen x(n) (n = 1(1)2L, L: Paketlange) aufgeteilt.
Die Abtastwerte mit gerader Indizierung x(2m) (m = 1(1)L) werden in ein Paket gepackt.
In ein anderes Paket kommen die Abtastwerte mit ungerader Indizierung x(2m 1) (!
Abb.3.2, Abb. 3.3). Wenn ein Paket verloren geht, konnen die fehlenden Abtastwerte aus
dem zweiten Paket, das ja die Nachbarwerte enthalt, interpoliert werden. Gehen beide
Pakete verloren, wird Stille ausgegeben.

KAPITEL 3. METHODEN DER FEHLERVERSCHLEIERUNG

11

Dadurch ist es moglich zumindest die wichtigen niederfrequenten Anteile des Signals originalgetreu zuruckzugewinnen. Das Problem der Schatzung eines Abtastwertes ist besser zu
losen, als die Schatzung eines kompletten Paketinhaltes. Der Aufwand ist relativ gering.
Es ist nur notig ein ankommendes Paket zwischenzuspeichern, bis entweder das zugehorige
zweite Paket angekommen ist, oder die Interpolation durchgefuhrt wird ([JC81], [Jay93]).
Byte Nr.

Header 1 3 5
H

Byte Nr.
...

(2L-1)

"ungerades" Paket

Header 2 4 6
H

...

2L

"gerades" Paket

Abbildung 3.2: Odd-Even Sample Interpolation

3.3.2 Hierarchische Codierung


Wie in Abb. 3.3 dargestellt, ist es moglich das Signal nicht nur horizontal (also in einzelne
Abtastwerte) aufzuteilen und getrennt in Pakete zu packen, sondern auch vertikal aufzuteilen. Das bedeutet, da Teile von Abtastwerten (einzelne Bits) in ein Paket gepackt werden.
Da die verschiedenen Informationsbits (z.B. bei PCM-Codierung) von unterschiedlicher
Wichtigkeit fur den Empfanger sind (LSB: "least signi cant bit\; MSB: "most signi cant
bit\) nennt man dieses Verfahren "hierarchische Codierung\ oder "Embedded Coding\
([Jay93], [ST89]). Auch Transformations- und Teilbandcodierungen haben eine Hierarchie
(die Koezienten der tie requenten Anteile sind wichtiger als die der hochfrequenten
Komponenten).
Nun kann man die verschiedenen Hierarchiegruppen in getrennten Paketen ubertragen.
Die Gateways, bzw. Router im Netzwerk und der Empfanger konnen bei drohender "U ber utung\ ("Congestion\) des Netzwerkes selektiv nach der Hierarchiestufe Pakete unterdrucken ("selective discarding\ ). Die Sprachausgabe wird somit im Empfanger nicht vollig
unterbrochen, sondern nur gestort. Um eine selektive Unterdruckung von Paketen durchzufuhren, mute die Software in Gateways und Routern entsprechend modi ziert wer-

KAPITEL 3. METHODEN DER FEHLERVERSCHLEIERUNG

12

den. Mit der Einfuhrung des Internet-Protokolles der nachsten Generation (IPng/IPv6,
[Hin94]) gibt es jedoch die Moglichkeit, normalen Datenverkehr in acht und Audio- und Videoubertragung in sieben Klassen einzuteilen. Damit ist es den Netzwerkknoten ("nodes\)
moglich, Pakete selektiv nach ihrer Klassenwertigkeit zu unterdrucken, bzw. bevorzugt zu
behandeln.
Allerdings nimmt naturlich die Verzogerung (bei gleicher Paketlange) mit zunehmender
Anzahl von Hierarchieebenen zu. In Abb. 3.3 ist eine Folge von 4 aufeinanderfolgenden
Bytes fur "Interleaving / Interpolation\, bzw. "Embedded Coding\ gegenubergestellt. Die
schattierten Bits (die sich in demselben Paket be nden) werden evtl. unterdruckt.
MSB
LSB
Byte

11
12
13
14

21
22
23
24

31
32
33
34

41
42
43
44

11
12
13
14

21
22
23
24

31
32
33
34

41
42
43
44

Interleaving
(horizontal)

Embedded Coding
(vertikal)

Abbildung 3.3: Prinzip Interleaving, hierarchische Codierung

3.3.3 Klassenorientierte Codierung / Verschleierung


Dieses Verfahren ist kein Fehlerverschleierungsalgorithmus, sondern eine Konzeption, die
versucht Codierungs- und Verschleierungsverfahren an das Sprachsignal zu adaptieren.
Dazu wird zunachst im Sender eine Klassi kation des Sprachpaketinhalts z.B. in "stimmhaft\, "stimmlos\ und "Hintergrundrauschen\ durchgefuhrt. Jede Paketklasse kann nun
gema ihrer Eigenschaften codiert werden. "Hintergrundrauschen\ kann z.B. grober quantisiert werden als die beiden anderen Klassen ([DPF89]).
Auch bei der Decodierung ist die Klasseneinteilung nutzlich: fur jede Klasse kann ein
eigenes Fehlerbehandlungsverfahren eingesetzt werden ("Class Oriented Replacement\).
Es ware auerdem moglich (wie beim "Embedded Coding\ ! Kap.3.3.2), sobald Pakete
unterdruckt werden mussen, sie selektiv nach ihrer Klassenwertigkeit zu unterdrucken.
Interessant an dieser Methode ist die Moglichkeit der Adaption an das zu ubertragende
Signal. Nachteilig ist der hohe Aufwand in Sender und Empfanger.

Kapitel 4
Algorithmen zur
Fehlerverschleierung
4.1 Pattern Matching
Bei der Fehlerverschleierung mit Hilfe des Mustererkennungsverfahrens ("Pattern Matching\) wird dem Signal unmittelbar vor dem fehlenden Signalstuck eine Musterfolge
entnommen. Dann wird im bereits empfangenen Signal eine Folge von Abtastwerten
mp;max(n) gesucht, die der Musterfolge maximal ahnlich ist. Als Ersatz fur das verlorene
Paket wird nun dem Signal ein Sprachsegment entnommen, das der gefundenen Folge
mp;max(n) unmittelbar nachfolgt.

4.1.1 Beschreibung des Algorithmus


In Abb. 4.1 ist die Vorgehensweise veranschaulicht. Dem Algorithmus werden die letzten
lin = S + L Abtastwerte ubergeben. S ist hierbei die Lange des Suchbereiches, der L
Abtastwerte1 vor der Lucke endet. Dem Eingangssignal x(n) wird nun das Muster m(n) =
x(lin M + n); 0  n < M entnommen. Jetzt wird die Korrelation der Musterfolge mit
jeder der S M moglichen Folgen mp(n) der Lange M im Suchbereich berechnet:
1

L: Abtastwerte pro Datenpaket

13

KAPITEL 4. ALGORITHMEN ZUR FEHLERVERSCHLEIERUNG

14

lin
x(n)

0.25

Paket 1

Paket 2

Paket 3

Paket 4

Paket 5

0.2

0.15

0.1

0.05

0.05

0.1

0.15
0

m(n)

100

200

max

300

400

500

600

700

800

600

700

800

0.25

0.25

0.2
0.2

0.15
0.15

0.1

m(n)

0.1

0.05
0.05

0.05

0.25

0.05

0.1

0.2

0.1

0.15
90
100

0.15
0

0.15
0

10

20

30

40

50

60

70

80

10

20

30

40

50

60

70

80

90

100

0.1

F(n)

0.05

0.05

0.1

0.15
0

20

40

60

80

100

120

140

160

y(n)
0.25

0.2

0.15

0.1

0.05

0.05

0.1

100

200

300

400

500

(A)

(B)

Abbildung 4.1: Ersetzung eines fehlenden Sprachsignalsegmentes mit "Pattern Matching\

'm mp (p) =

}|
{ z m}|p(n) {
x(lin M + n x(p + n); 0  p < S M

MX1 z
n=0

m(n)

(4.1)

Ist die Folge mp;max, die der Musterfolge maximal ahnlich ist, gefunden (an der Position
p = pmax ), so wird dem Eingangssignal x(n) die der Folge mp;max unmittelbar nachfolgende
Folge F (n) = x(pmax + M + n); 0  n < L 1 , die vermutlich dem fehlenden Paketinhalt
am meisten ahnelt, entnommen und anstelle des fehlenden Pakets in das Signal integriert.

KAPITEL 4. ALGORITHMEN ZUR FEHLERVERSCHLEIERUNG

15

Normiert man die Korrelationsfunktion auf die Energie von mp(n) erhoht sich der Rechenaufwand deutlich und es kann sein das die Position maximaler Korrelation bei einem
Signalabschnitt gefunden wird, der von der Form sehr ahnlich ist, aber eine sehr unterschiedliche Amplitude aufweist. Andererseits bevorzugt eine Korrelationsberechnung ohne
Normierung Bereiche hoher Amplitude. Da die Lange des betrachteten Signalabschnitts
lin relativ klein ist, sich also die Energie des Sprachsignals von Paket zu Paket mit hoher
Wahrscheinlichkeit nur wenig andert, wurde (auch bei den in Kap. 4.2 und 4.3 vorgestellten Algorithmen) auf eine Normierung2 verzichtet.
Fur die Musterlange M gilt:

M  ffA

min

(4.2)

fA : Abtastfrequenz
fmin : minimaleSprachgrundfrequenz
Das bedeutet das die Musterfolge m(n) mindestens ungefahr eine Periode des Sprachsignals enthalten sollte. In den untersuchten Beispielen (Kap. 5) wurde fur die minimale
Sprachgrundfrequenz fmin = 80 Hz angenommen. Die Abtastfrequenz war fA = 8000 Hz.
Damit wurde M mit 100 Abtastwerten festgelegt.
Zwei U berlegungen sind fur die Wahl der Suchbereichslange S wichtig:
a) wird S zu klein gewahlt, kann das optimale Ersatzsegment nicht gefunden werden
b) ist S zu gro, kann von dem fehlenden Sprachsegment weit entfernte und damit
unpassende Sprache ins Signal gebracht werden
Untersuchungen in [GLWW86] haben gezeigt, da das Eintreten von Bedingung a) eine
deutliche Qualitatsverschlechterung mit sich bringt. Dagegen ist Fall b) relativ unproblematisch. Fur ein, bzw. zwei hintereinander fehlende Pakete wurde der Suchbereich zu zwei
Paketen gewahlt. Das heit, da eine Zwischenspeicherung von drei, bzw. vier Paketen
notig ist (! Tab. 4.1).
2

Denkbar ware auerdem eine auf den Signalwert mp (n) bezogene Gewichtung der Normierung

KAPITEL 4. ALGORITHMEN ZUR FEHLERVERSCHLEIERUNG

16

s nv max(p) = S M
1 3
220
2 4
220
Tabelle 4.1: Aufwand fur das Mustererkennungsverfahren
s: Anzahl hintereinander verlorener Pakete
nv Anzahl der zur Verschleierung verwendeten Pakete
max(p): Anzahl der moglichen Positionen im Suchbereich

4.1.2 Packet Merging


Durch die Unstetigkeit des Signals an den Randstellen der Sprachsignallucke (A) und
(B) (! Abb. 4.1) kommt es zu deutlich wahrnehmbaren Storungen im fehlerverschleierten Sprachsignal. In [GLWW86], S.1441 wird zu Behebung dieses Problems das "Packet
Merging\-Verfahren vorgeschlagen. Das bedeutet, da aus den zur Verfugung stehenden
Daten eine etwas langere Folge (L0 = L + 2lfit ) extrahiert wird und die ersten, bzw. letzten lfit Abtastwerte dieser Folge dem die Lucke einschlieenden Sprachsignal uberlagert
werden (! Abb. 4.2).
Fur die Folge F (n) gilt nun:

F (n) = x(pmax + M + n);

lfit  n < L + lfit

Bei eigenen Horproben wurde eine deutliche Verbesserung der Sprachqualitat durch "Packet
Merging\ festgestellt. Der Aufwand hierfur ist als sehr niedrig zu bezeichnen, da nur die
zusatzliche Speicherung des der Lucke folgenden Paketes, sowie die Gewichtung und U berlagerung von 2lfit Abtastwerten notwendig sind. "Packet Merging\ wurde sowohl beim
Mustererkennungsverfahren, wie auch bei zu glattenden Sprungstellen bei den beiden anderen vorgestellten Verfahren (! Kap. 4.2, 4.3) verwendet.
U berraschenderweise wird in [GWDP88], S.347 berichtet, da das "Packet Merging\Verfahren praktisch keinen Ein u auf das Ergebnis subjektiver Sprachqualitatstests hatte. Moglicherweise ist das auf die gewahlte sehr niedrige U berlappungslange von lfit = 8
Abtastwerten zuruckzufuhren ([GLWW86], S.1441). Um die Lange des U berlappungsbereiches lfit angemessen zu wahlen, wurden Horproben mit Werten im Bereich [ 16L ; L2 ] durch-

KAPITEL 4. ALGORITHMEN ZUR FEHLERVERSCHLEIERUNG

17

lout
lin
S
x(n) , y(n)

L+lfit

Paket 1

Paket 2

L+l fit

0.25

Paket 3

Paket 4

Paket 5

pmax

0.2

m(n)

0.15

(A)

0.1

(B)

0.05

0.05

0.1

0.15
0

10

20

30

40

50

60

70

80

90

100

L+2lfit

Abbildung 4.2: Schematische Darstellung des "Packet Merging\ (U berlagerung an den
Randstellen)
gefuhrt. Bei lfit = 16L = 10 Abtastwerten konnten hierbei, insbesondere bei Testsignalen
mit Sprechern tieferer Stimmlage, Qualitatseinbuen im Vergleich mit groeren U berlappungslangen festgestellt werden. Schlielich wurde fur lfit 20 Abtastwerte festgelegt.
Dieser Wert stellt einerseits eine Beseitigung von storenden Sprungstellen im Sprachsignal
sicher, lat aber andererseits den Inhalt des nachfolgenden Datenpaketes weitgehend unverandert. Als U berlappungsfenster wurden halbseitige Hann-Fenster verwendet (! Abb.
4.3).
Da das Verhaltnis lfit
L relativ klein ist, wurde die Eingangslange lin beibehalten, wodurch
sich ein etwas kleinerer Suchbereich ergab (! max(p) = S 0 M = 200 Abtastwerte, vgl.
Tab. 4.1)

KAPITEL 4. ALGORITHMEN ZUR FEHLERVERSCHLEIERUNG

18

4.1.3 Amplitudenanpassung
Zur weiteren Qualitatsverbesserung wurde in [GLWW86] die Amplitudenanpassung ("Amplitude Adjustment\) des fehlenden Paketes an das vorhergehende Paket eingefuhrt. Der
Faktor der Amplitudenanpassung wird aus den Energien der zu untersuchenden Sprachsignalsegmente gewonnen: (! Abb. 4.1)

v
u
u
tLX1 x2 (S + n)

A = v n=0
AF u
LX1
u
u
2
u
tn=0 x| (p +{zM + n})

(4.3)

F 2 (n)

Damit gilt fur das Ersatzsprachsegment:

x(S + L + n) = AA F (n)
F

(4.4)

Um eine gleichzeitige Anwendung des `Packet Merging\ zu ermoglichen, wurde in dieser


Arbeit das Verfahren der Amplitudenanpassung modi ziert. Es ist in Abb. 4.4 verdeutlicht. Mit D(n) wird die Folge von Abtastwerten x(S 0 lfit + n); 0  n < L + 2lfit
bezeichnet. Diese Folge wird mit dem Ersatzsprachsegment F (n) im Bereich (overlap)
uberlagert, wobei fur das (in der Amplitude nicht angepate) Ausgangssignal gilt:

wR;H (n)D(L + lfit + n) + wL;H (n)F (n) = y(S 0 + L + n); 0  n < lfit
1
0.9

wR,H (n)

0.8
0.7
0.6
0.5
0.4
0.3
0.2

wL,H (n)

0.1
0
0

10

12

14

16

18

20

14

16

18

20

1
0.9
0.8

wR,H(n) wL,H (n)

8 1 1 (n+1)
<
wR;H (n) = : 2 2 cos( lfit+1 ) : 0  n < lfit 1
0 : sonst
8
<
wL;H (n) = : 1 wR;H (n) : 0  n < lfit 1
0 : sonst

0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0

10

12

Abbildung 4.3: Fensterfunktionen zur U berlagerung

KAPITEL 4. ALGORITHMEN ZUR FEHLERVERSCHLEIERUNG


L+2l fit

19

L+2l fit
(overlap)

D(n)

Paket 2

F(n)

(A)

Paket 3

Paket 4

(B)

(1) (2) (3)

Abbildung 4.4: Amplitudenanpassung in Verbindung mit "Packet Merging\


Fur die Energie in diesem Bereich gilt somit:

y 2 (S 0 + L + n) =

(4.5)

2 (n)D 2 (L + l + n) + w (n)w (n)D (L + l + n)F (n) +


(wR;H
fit
R;H
L;H
fit

{z

EDF (n)

2
2
|wL;H (n)F (n) + wR;H (n)w{zL;H (n)D(L + lfit + n)F (n})
EFD (n)

Damit berechnet sich der Amplitudenanpassungsfaktor wie folgt:

v
u
L+lfit 1
lfit 1
u
u
t X x2 (S 0 lfit + n) + X EDF (n)

n=0
A0 = v n=0
0
u
AF ulfitX1
L+lfit 1
u
t EFD (n) + X x2 (S 0 + L + lfit + n)
n=0

(4.6)

n=0

Bei Nichtberucksichtigung des U bergangsbereiches ware es moglich, da Peaks im Ersatzsegment unmittelbar vor der Lucke (Bereich (1), Abb. 4.4) extrem verstarkt werden, da
der Faktor AAF als zu hoch errechnet wurde. Andererseits kann es sein, das Signalspitzen
im U berlappungsbereich der Folge D(n) [Bereich (3)] nicht berucksichtigt werden und eine

KAPITEL 4. ALGORITHMEN ZUR FEHLERVERSCHLEIERUNG

20

starke A nderung der Amplitude beim U bergang von Segment D(n) nach F (n) auftritt.
So jedoch werden die Signale entsprechend gewichtet. Peaks in der Mitte des U berlappungsbereiches [(2)] gehen in Zahler und Nenner von AA0F0 ein, so da keine U ber- oder
Unteranpassung der Amplitude auftritt (! Abb. 4.3, Fensterfunktion wR;H (n)wL;H (n))

4.1.4 Zweiseitiges Mustererkennungsverfahren


Es besteht die Moglichkeit die "Pattern Matching\-Methode nicht nur auf das der Lucke
vorausgehende Sprachsignal anzuwenden, sondern in analoger Weise ein geeignetes Ersatzsegment in der der Lucke nachfolgenden Sprache zu nden. Die beiden gefundenen
Sprachsegmente werden dem vorangehenden, bzw. nachfolgenden Paket in der Amplitude angepat, gewichtet, uberlagert und mittels "Packet Merging\ in die Signallucke
eingepat. In [GWDP88] wurde das zweiseitige mit dem einseitigen Mustererkennungsverfahren verglichen. Hierbei zeigte sich, da der Mehraufwand an Signalverarbeitung
und notwendiger Zwischenspeicherung, bzw. daraus folgender zusatzlicher Verzogerung,
nur unwesentliche Qualitatsverbesserungen mit sich bringt. In dieser Arbeit wurde deshalb
das zweiseitige "Pattern Matching\ nicht behandelt.

4.2 Modi ed Waveform Similarity Overlap Add


(MWSOLA)
4.2.1 Einfuhrung
Es existieren eine Reihe von Algorithmen zur Zeitskalierung von Sprache. Anwendungen
sind z.B. digitale Diktiergerate, bei denen die Wiedergabegeschwindigkeit nachtraglich
verandert werden soll, oder die Synchronisierung von Bildmaterial bestimmter Dauer mit
gesprochenen Text. Wichtig ist, da durch die Zeitskalierung nur die Sprechgeschwindigkeit, nicht aber der Spracheindruck (sprechertypische Eigenschaften, Naturlichkeit,
Verstandlichkeit) verandert wird. Das bedeutet, das die Kurzzeit-Spektraleigenschaften
der Sprache (Sprachgrundfrequenz, Formanten; ! Kap. 2.1) erhalten bleiben mussen.

Das Ausgangssignal y(n) soll also maximale lokale Ahnlichkeit
mit dem Eingangssignal

KAPITEL 4. ALGORITHMEN ZUR FEHLERVERSCHLEIERUNG

21

x(n) bewahren. Dabei darf sich die Form der Einhullenden des Sprachsignals nicht andern
(! Abb. 4.5).
x(n)
0.25

0.2

0.15

0.1

0.05

0.05

Perioden 1 2 3 4 5

0.1

500

T
1000

1500

y(n)
0.25

0.2

0.15

0.1

0.05

0.05

0.1

Perioden 1 2 3 4 5

T
0

500

1000

1500

2000

Abbildung 4.5: Zeitdehnung eines Sprachsignals mit dem MWSOLA-Algorithmus


Als robuster, ezienter Algorithmus hat sich hierfur das WSOLA-Verfahren ("Waveform
Similarity OverLap Add\, [VR93]) erwiesen, das in [Gru94] noch bezuglich der benotigten
Rechenzeit modi ziert wurde (MWSOLA).

KAPITEL 4. ALGORITHMEN ZUR FEHLERVERSCHLEIERUNG

22

4.2.2 Beschreibung des MWSOLA-Verfahrens


Das Grundprinzip des MWSOLA-Algorithmus ist, da aus dem Eingangssignal in bestimmten Abstanden Abschnitte entnommen werden, die einem andereren Abschnitt im
Eingangssignal maximal ahnlich sind. Die entnommenen Abschnitte werden in konstanten
Abstanden neu angeordnet und bilden so das Ausgangssignal des Algorithmus.
Die (konstante) Lange der Abschnitte wird mit F ("framelength\ , F ungerade) bezeichnet.
Der Abstand in dem im Abschnitte entnommen werden, ist die Analyseschrittweite SA. Die
Syntheseschrittweite zur Anordnung der Abschnitte im Ausgangssignal ist SS = (F +1)=2.
Gilt SA > SS (Zeitskalierungsfaktor = SA=SS > 1) handelt es sich um Zeitstauchung.
Fur < 1 wird das Sprachsignal zeitgedehnt.
In den Abbildungen 4.6 und 4.7 ist die Vorgehensweise beim MWSOLA-Verfahren fur ein
Sinus-Signal dargestellt und wird im folgenden erlautert. Zunachst wird der Abschnitt
(0) vom Eingangssignal ins Ausgangssignal ubernommen. Nun soll im Eingangssignal im
Abstand SA + 1 3 ein Abschnitt (1) gefunden werden, der im Ausgangssignal dem Abschnitt (0) im Abstand SS uberlagert werden kann. Das Kriterium hierfur ist maximale

Ahnlichkeit
mit Abschnitt (1'), der sich ja im Abstand SS zu (0) im Eingangssignal be ndet.
Nun wird in gleicher Weise ein Abschnitt (2) gesucht, der im Abstand SA + 2 zu Abschnitt (1) entnommen werden kann und dem Abschnitt (20) im Eingangssignal maximal
ahnlich ist. Mit den weiteren Abschnitten wird dann analog verfahren, bis die gewunschte
Ausgangslange erreicht ist.
In Abb. 4.7 ist der Ablauf des Algorithmus, fur das in Abb. 4.6 dargestellte Sinussignal,
mit N = 5 Abschnitten dargestellt. Fur jede Phase des Ablaufs, ist zunachst der dem
Eingangssignal entnommene Abschnitt (a) (a = 0(1)N 1) abgebildet, dessen Signalinhalt mit xa (n) bezeichnet ist. Dieses Signalstuck wird dann gewichtet [wa (n)xa (n)] und
dem Ausgangssignal y(n) uberlagert.
3

min < a < max , a = 1(1)N 1; N : Anzahl der Abschnitte)

KAPITEL 4. ALGORITHMEN ZUR FEHLERVERSCHLEIERUNG

23

(2)
(2)
(1)
(1)

SS
SA
x(n) 1

(0)
0.5
0
0.5
1
0

100

y(n) 1

(0)

200

(1)

300

(2)

400

(3)

500

600

600

(4)

0.5
0
0.5
1
0

100

200

300

400

500

SS

Abbildung 4.6: Prinzip des MWSOLA-Algorithmus


Als A hnlichkeitsma wird die Kreuzkorrelationsfunktion der Abschnitte (a) und (a0 ) verwendet:

'aa0 () =

X1 1
2

n=0

!
w(n) x(aSA + i + n + ) w(n) x (a 1)SA + SS + i + n
i=1{z
|
}
{z i=1
}
|
aX1

xa(n;)

aX1

xa0 (n)

(4.7)
In der Berechnung der Korrelation liegt auch der Unterschied zwischen WSOLA und dem

KAPITEL 4. ALGORITHMEN ZUR FEHLERVERSCHLEIERUNG


x(n)
0

x(n)

1
0

w(n)x(n)
0

100

200

300

400

500

600

1
0

w(n)x(n)
1

y(n)

200

300

400

500

600

1
0

y(n)

x(n)

200

300

400

500

600

x(n)

200

300

400

500

600

100

200

300

400

500

600

100

200

300

400

500

600

100

200

300

400

500

600

100

200

300

400

500

600

100

200

300

400

500

600

100

200

300

400

500

600

x(n)

w(n)x(n)

1
0

600

1
0

y(n)

500

100

w(n)x(n)

1
0

400

1
0

300

100

1
0

200

100

1
0

100

1
0

1
1

24

1
0

y(n)

100

200

300

400

500

600

1
0

4
1

1
0

w(n)x(n)
4

100

200

300

400

500

600

100

200

300

400

500

600

100

200

300

400

500

600

1
0

y(n)

1
0

Abbildung 4.7: Ablauf des MWSOLA-Algorithmus


modi zierten Verfahren. MWSOLA verwendet zur Korrelationsberechnung nur die (im
Bereich der U berlappung liegenden) ersten (F 1)=2 Abtastwerte, wahrend WSOLA alle
F Werte verwendet.
Das (M)WSOLA-Verfahren wird durch folgende Gleichung beschrieben:
NX1

y (n) =

a=0

w(n aSS ) x(n a(SS SA) a )


NX1
w(n aSs)
a=0

Die Fensterfunktion w(n) wird so gewahlt, da gilt:


NX1
a=0

w(n aSS ) =! 1

KAPITEL 4. ALGORITHMEN ZUR FEHLERVERSCHLEIERUNG


8
<
wH (n) = :

wH(n) 1
0.9
0.8
0.7
0.6
0.5

1
2

25

1 cos( 2(n+1) )
2
F +1

: 0n<F 1
0 : sonst

0.4
0.3
0.2
0.1
0
0

20

40

60

80

100

120

140

160

180

200

Abbildung 4.8: Verwendete Fensterfunktion (Beispiel: Hann-Fenster)


Damit lautet die Grundgleichung des (M)WSOLA-Verfahrens:

y (n) =

NX1

w(n {z aSS )} |x (n a(SS {z SA) a )}

a=0 |

wa (n)

(4.8)

xa(n)

In [VR93] sowie [Gru94] wurden eine groere Anzahl Horproben durchgefuhrt, bei denen
die Sprachqualitat fur Zeitdehnung und Zeitstauchung durchweg als "sehr gut\ bezeichnet
wurde. Dabei gab es keine Qualitatsunterschiede zwischen WSOLA und MWSOLA, so da
fur diese Arbeit der MWSOLA-Algorithmus aufgrund des niedrigeren Rechenaufwandes
ausgwahlt wurde.
In den Abb. A.1 - A.3 im Anhang sind Spektrogramme eines mit MWSOLA skalierten
Testsatzes dargestellt. Charakteristisch ist das sich der Spektralinhalt durch Zeitdehnung,
bzw. -stauchung praktisch nicht andert.

4.2.3 Anpassung des MWSOLA-Verfahrens an die


Problemstellung
Mit Hilfe des im vorhergehenden Kapitel eingefuhrten MWSOLA-Verfahrens soll nun
eine Methode entwickelt werden, um durch verlorengegangene Datenpakete entstandene
Lucken im Sprachsignal zu fullen. Dafur soll ein kleiner Teil des bereits empfangenen
Sprachsignals in der Zeit gedehnt werden (! Abb. 4.9).
Da eine Gewichtung des Signals an den Randern [linke Halfte von Abschnitt (0) und

KAPITEL 4. ALGORITHMEN ZUR FEHLERVERSCHLEIERUNG


l in = nv L

26

nL L

6
n

160

320

480
l

22

640

800

out

6
n

160

320

480

640

800

Abbildung 4.9: U berbruckung einer Lucke im Sprachsignal durch Zeitdehnung


rechte Halfte des Abschnittes (N-1)] unerwunscht ist, werden zu deren Gewichtung zwei
halbseitige Hann-Fenster (Abb. 4.10, vgl. Abb. 4.3) verwendet.

8
>
1 : 0  n < F2 1
>
<
w0(n) = > wH (n) : F 2 1  n  F 1
>
:
0 : sonst

w0 (n)1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0

20

40

60

80

100

120

140

160

180

200

8
F 1
>
>
< wH (n) : 0F 1 n < 2
wN 1(n) = >
1 : 2 nF 1
>
:
0 : sonst

wN-1(n)1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0

20

40

60

80

100

120

140

160

180

200

Abbildung 4.10: Zusatzliche Fensterfunktionen


Damit ist die Fensterfunktion wa (n) des angepaten Algorithmus:

8
>
>
< w0(n) : a = 0
wa(n) = > wH (n) : 0 < a < N 1
>
: wN 1 ( n ) : N 1

KAPITEL 4. ALGORITHMEN ZUR FEHLERVERSCHLEIERUNG

27

Fur die Lange des Eingangssignals, das vom MWSOLA-Algorithmus verwendet wird, gilt:

lin = nv L  ~lin

(4.9)

X
()
mit ~lin = (N 1)SA + a + F  (N 1)SA + F
N 1

()

NX1
a=1

a=1

a  (N 1)SA + F

nv : Anzahl der verwendeten Pakete


L: Abtastwerte pro Paket
~lin: Anzahl der vom Algorithmus verwendeten Abtastwerte
(abhangig von der Wahl der a )
Die Ausgangslange ist gegeben durch

lout = (N 1)SS + F  ~lout

(4.10)

mit ~lout = (nv + nL)L

(4.11)

nv + nL : Anzahl der benotigten Pakete


~lout : gewunschte Ausgangslange
Fur ~lin und ~lout mu gefordert werden:
~lin ! lin

(4.12)

~lout ! lout

(4.13)

Sonst wurden storende Folgen von Abtastwerten des Wertes Null in das Signal gebracht.
Als Verhaltnis von Eingangs- zu Ausgangslange wird der Parameter
 = llin
out
de niert.

KAPITEL 4. ALGORITHMEN ZUR FEHLERVERSCHLEIERUNG

28

Wie sind nun die Parameter des MWSOLA-Algorithmus F ,N , , und  zu wahlen ?


Fur die Segmentlange F mu gelten:
F >! Fmin = 2 ffA
(4.14)
min

fA: Abtastfrequenz
fmin : minimal vorkommende Sprachgrundfrequenz
. Als minimal vorkommende
Fur alle vorkommenden Beispiele gilt fA = 8000 Abtastwerte
s
Sprachgrundfrequenz wurde fmin = 80 Hz angenommen. Das ergab eine minimale Segmentlange von Fmin = 200 Abtastwerten. Sollte die Sprachgrundfrequenz unterhalb der
Minimalfrequenz liegen, sucht der Algorithmus nicht mehr die ganze Signalperiode nach
dem Punkt hochster Korrelation ab. Eine deutliche Absenkung der Sprachqualitat ist (bei
einer Reihe von Horproben) jedoch erst fur groere Abweichungen von der Minimalfrequenz festgestellt worden (fur fmin = 80 Hz ab ca. 65 Hz).
Die theoretische obere Grenze ergibt sich wie folgt:

Gl:(4:12) ! max(~lin) = lin


NX1
~
Gl:(4:10) ! max(lin) = (N 1)SA + a + Fmax
a=1

Daraus folgt fur Fmax (mit SA;min = 1, a;min = 0 8a und Nmin = 2)

Fmax = lin 1

(4.15)

Fur die Segmentlange F als Funktion der Segmentanzahl N gilt mit Gl.(4.10) und
SS = F 2+1 bei gegebener Ausgangslange lout :
(N 1) ; F = 2i + 1; i 2 IN
(4.16)
F (N ) = 2lout N +
1
Hier sollte N moglichst gro sein (und damit F (N ) moglichst klein), um den kurzzeitigen
A nderungen im Sprachsignal Rechnung tragen zu konnen. Auerdem gilt nach Gl.(4.13)
!
!
lout  ~lout , wobei " = lout ~lout  0 moglichst klein sein sollte, um den Informationsverlust
moglichst gering zu halten.
Aus Gl.(4.16) ergibt sich auch eine obere Schranke fur N:
+ 1) ; N 2 IN
Nmax (lout ) = 2lout F (Fmin
(4.17)
max
min + 1

KAPITEL 4. ALGORITHMEN ZUR FEHLERVERSCHLEIERUNG

29

Der in Abb.4.11 angegebene Algorithmus wird angewandt, um die Parameter mit einer
Genauigkeit "  "min der Ausgangslange zu bestimmen. Die Analyseschrittweite SA wird
nun gema den Gln.(4.9) und (4.10) geschatzt:
(4.18)
SA = lNin F1 ; SA 2 IN
setze = min
setze N = Nmax
berechne (ganzzahlige) Segmentlange F(N)

berechne L(N)= lout - lout[F(N)]


ist

0 < L (N) <

setze N = N - 1
ja

und

nein

Fmin < F(N) < Fmax ?


ja

ist N > 1 ?

berechne S a
beginne MWSOLAAlgorithmus

nein

setze = + 1

Abbildung 4.11: Algorithmus zur Parameterbestimmung


Der Zeitskalierungsfaktor betragt somit
()
= SSA = (N2(lin1)(FF+) 1)

S
() : F  lin

 = llin = (N 1)linS + F =
out
S
2
l
in
= (N 1) + (N + 1)F
(4.19)

Man erkennt, da fur den uns interessierenden Fall der Zeitdehnung kurzer Sprachsegmente (bei dem nicht F  lin gilt) sich im Vergleich zu  wesentlich kleinere Faktoren
und damit extreme Dehnungen ergeben konnen. In Abb. 4.12 sind hierzu der Zeitskalierungsfaktor (F ) und das korrespondierende Verhaltnis von Eingangs- zu Ausgangslange
 (lout ) =  (F ) aufgetragen. Fur starke Dehnungen  weicht sehr stark von  ab und
wird sehr klein. Das bedeutet, da die Analyseschrittweite SA = SS oft nur noch einige
Abtastwerte betragt. Dann kann praktisch nicht mehr von einer sinnvollen Zeitdehnung

KAPITEL 4. ALGORITHMEN ZUR FEHLERVERSCHLEIERUNG


,

30

10

10

10

N=2
3

N=4

10

N=8

l = 480
in

10

50

100

150

200

250

300

350

400

450

500

Abbildung 4.12: Zeitskalierungsfaktor (F ), Ein-/Ausgangslangenverhaltnis  (F )


gesprochen werden, da der Algorithmus nur eng benachbarte Segmente ubereinander kopiert.
Die Wahl der a wird, im Gegensatz zum Original-Algorithmus ([VR93], [Gru94]), nur
durch die Abstande zum vorhergehenden (a 1), bzw. nachfolgenden Segment (a) begrenzt:
a 2 [ (SA 1); SS SA 1]
!
Nach Gl.(4.12) (~lin  lin) darf die Anzahl der aus dem Eingangssignal zur Verfugung
stehenden Abtastwerte nicht uberschritten werden. Mit Gl.(4.10) gilt fur a :
(a 1)SA

aX1
i=1

i + F + a  lin

Das bedeutet, da eventuell wahrend des Ablaufs des Algorithmus der a -Wertebereich
eingeschrankt werden mu. Dadurch kann es vorkommen, da am Schlu des Eingangssignales kein optimales U berlagerungssegment mehr gefunden wird. Der Algorithmus wird
jedoch das im Suchbereich liegende am besten passende Segment verwenden, so da auer
bei extremer Beschrankung des a -Bereiches keine Qualitatseinbuen auftreten.
Fur die folgenden Versuche mit dem Algorithmus (Verlust von s Paketen hintereinander,
Verschleierung mit nv Paketen) wurden die hervorgehoben Werte fur  verwendet:

KAPITEL 4. ALGORITHMEN ZUR FEHLERVERSCHLEIERUNG


s
1
2
3

nv

31

2
3
4
5
0,66 0,75 0,8 0,83
0,50 0,60 0,66 0,71
0,40 0,50 0,57 0,625

in
Tabelle 4.2: Wahl von  = s+nvnv = llout

Eine U berbruckung von drei aufeinanderfolgenden Paketen (480 Abtastwerte mit 60 ms


Sprachsignal) wurde als nicht sinnvoll angesehen, da der Zwischenspeicherungsaufwand
von funf Paketen mit der zu erzielenden Qualitat nicht zu rechtfertigen ist: bei 60 ms
Signallucke fehlen oft ganze Phoneme, die Verstandlichkeit ist bereits gefahrdet. Hinzu
kommt noch der recht hohe Dehnungsfaktor 1 = 1; 6.
l

in

6
n

160

320

480

(A)

800

(B)

l out + l fit
2

640

6
n

160

320

480

640

800
l fit

Abbildung 4.13: Einseitige U berlappung der von MWSOLA erzeugten Folge


Fur s = 2 wurde die Verschleierung mit nv = 4 Paketen als Kompromi aus Aufwand und
Qualitat gewahlt. Im Falle eines einzelnen fehlenden Paketes ware es vom Dehnungsfaktor
her gesehen durchaus moglich nur mit zwei Paketen zu verschleiern. Die auerordentlich
gute Qualitat einer Fehlerbehandlung mit drei Paketen macht jedoch den Mehraufwand
akzeptabel.
A hnlich dem Mustererkennungsverfahren (! Abb. 4.2) wurde auch fur das MWSOLA-

KAPITEL 4. ALGORITHMEN ZUR FEHLERVERSCHLEIERUNG

32

Verfahren eine U berlagerung mit dem an die Lucke angrenzenden Signalsegment durchgefuhrt (! Abb. 4.13). Im Gegensatz zum "Pattern Matching\-Verfahren mu hier allerdings nur am Punkt (B) uberlagert werden, da ja am Punkt (A) die Phasenkontinuitat
gewahrleistet ist. Hierdurch konnte die erzielte Sprachqualitat deutlich gesteigert werden.
Bei einer Paketlange L = 160 Abtastwerten wurde die Lange des U berlappungsbereiches, nach eingehenden Horproben, wie beim Mustererkennungsverfahren auf lfit = 20
Abtastwerte festgelegt.

4.3 Periodische Fortsetzung des Sprachsignals


Die bisher vorgestellten Algorithmen beruhen beide auf der Korrelationsberechnung zwischen benachbarten Signalsegmenten. Beim MWSOLA-Zeitdehnungsalgorithmus (Kap.
4.2) bedeutet dies eine implizite Schatzung der Sprachgrundperiode. Dort wird versucht
dem Eingangssignal geeignete Segmente (a) zu entnehmen, die spateren Segmenten (a0 )
maximal ahnlich sind. Hierbei gilt, wenn die Sprachgrundperiode T als zeitweilig konstant
angenommen wird:
pa + kT = pa0 ; k > 0

pa: Position des Abschnittes (a) im Eingangssignal4


Beim nun einzufuhrenden Verfahren soll nun explizit die Periode T geschatzt und damit
eine sinnvolle Fortsetzung des Sprachsignals gewahrleistet werden.

4.3.1 Einfuhrung
In der Literatur ([RS78]; [EH93], S.77-81) werden zahlreiche Verfahren zur Schatzung
der Sprachgrundperiode vorgestellt, die sich in die in Tabelle 4.3 aufgefuhrten Gruppen
einteilen lassen.
Die Verfahren der Gruppen c),d) und e) (! Tab. 4.3) sind wesentlich rechenintensiver als
die Verfahren a) und b) und wurden deshalb aufgrund der zu erfullenden Echtzeitanforderungen nicht weiter berucksichtigt. In [GLWW86], S. 1443 wird ein Verfahren gema b)
4

pa = aSA +

aX1
i=1

i ; pa = (a 1)SA + SS +
0

a 1
X
i=1

i ! Gl. 4.7, Abb. 4.6(k = 1)

KAPITEL 4. ALGORITHMEN ZUR FEHLERVERSCHLEIERUNG

a)
b)
c)
d)
e)

33

Bereich
Methode
Zeit
Autokorrelationsfunktion (AKF)
Zeit
Parallelverarbeitung mit Peak-Detektoren
Zeit
Lineare Pradiktion (LP)
Frequenz
Kurzzeit-Fourierspektrum (STFT)
Zeit, Frequenz
Cepstrum

Tabelle 4.3: Methoden der Sprachgrundperiodenschatzung ("Pitch Period Estimation\)


beschrieben und in [GWDP88] im Vergleich mit dem Mustererkennungsverfahren (Kap.
4.1) qualitativ bewertet. Hierbei zeigte es sich, da das Verfahren nach b) (Parallelverarbeitung mit Peak-Detektoren) dem Mustererkennungsverfahren bezuglich der resultierenden Sprachqualitat leicht uberlegen ist. In dieser Arbeit soll nun ein eigener Ansatz, der
der Gruppe a) zuzuordnen ist, vorgestellt und in Kap. 5 mit Mustererkennungsverfahren
und Zeitdehnungsverfahren (Kap. 4.2) verglichen werden.

4.3.2 Beschreibung des Algorithmus


In Abb. 4.14 ist die Vorgehensweise bei der periodischen Fortsetzung des Sprachsignals
gema der Sprachgrundperiode ("Pitch Waveform Replication\, PWR) dargestellt.
Zunachst wird die Autokorrelationsfunktion (AKF) der vor der Lucke be ndlichen Folge
x0 (n) = x(n); 0  n < nv L 5 berechnet:

'x0x0

nvX
L 1
n=0

x(n)x(n + p); Tmin < p < Tmax

(4.20)

Hierbei ist Tmin die minimal mogliche Sprachgrundperiode (in Abtastwerten). Diese untere
Grenze wird festgelegt, um auftretende Zwischenmaxima in der Autokorrelationsfunktion, die nichts mit der Sprachgrundperiode zu tun haben, zu unterdrucken. Gleichzeitig
wird naturlich auch der Rechenaufwand verkleinert. Tmax entspricht der maximal vor1 ).
kommenden Sprachgrundperiode, also der minimalen Sprachgrundfrequenz (fmin = Tmax
Um auch fur Sprachgrundperioden nahe Tmax eine sinnvolle Korrelationsberechnung zu
5

nv : Anzahl der zur Verschleierung verwendeten Pakete

L: Anzahl der Abtastwerte pro Paket

KAPITEL 4. ALGORITHMEN ZUR FEHLERVERSCHLEIERUNG

34

gewahrleisten mu gelten:

lin = nv L  2Tmax

(4.21)

Tmin = 20 Abtastwerte (fmax = 400Hz) und Tmax = 160 (fmin = 50Hz) erschienen als
untere, bzw. obere Grenze fur die Sprachgrundperiode passend.
Tmax = 80 (fmin = 100Hz; nv = 1) ist fur mannliche Sprecher mit tiefer Stimmlage
nicht ausreichend. Das bedeutet, da fur die Horproben und den subjektiven Vergleich
(! Kap. 5) unabhangig von der Zahl der aufeinanderfolgenden verlorenen Pakete (s = 1
oder s = 2) mit nv = 2Tmax
L = 2 Paketen verschleiert wurde (vgl. Tab. 4.1, 4.2).
Ist nun gema Gl. (4.20) der Punkt pmax = T gefunden (erstes lokales Maximum der
AKF), so wird die Folge x0 (n T ); lin  n < lin + T (! Abb. 4.14 b ) solange im
Ausgangssignal aneinandergereiht (! Abb. 4.14 c ), bis die Lucke geschlossen ist. Am
Randpunkt (A) ist somit die Phasenkontinuitat gewahrleistet. Durch leichte Sprachgrundfrequenzanderungen, die im fehlenden Paket aufgetreten sind, kann es jedoch zu einer
Sprungstelle am Punkt (B) kommen (siehe auch [VA89]). Analog zu den bisher vorgestellten Verfahren wird deshalb auch hier eine U berlappung am Punkt (B) vorgenommen.

4.3.3 Anwendung des "Packet Merging\

Zusatzlich zur U berlagerung am Punkt (B) wird auch am Punkt (A) und an den Schnittstellen der Perioden [im Beispiel: (1) - (4)] das "Packet Merging\-Verfahren angewandt,
da es sonst bei Fehlschatzungen der Periode zu extremen Storungen im Sprachsignal kommen wurde. Die Durchfuhrung dieser U berlappungen benotigt nur wenig Rechenaufwand
und beeintrachtigt das Sprachsignal bei richtiger Periodenschatzung uberhaupt nicht. In
Abb. 4.15 ist die Vorgehensweise illustriert.
lfit wurde, wie in Kap, 4.1 erlautert, zu 20 Abtastwerten gewahlt.

KAPITEL 4. ALGORITHMEN ZUR FEHLERVERSCHLEIERUNG

35

l in = nv L
x(n)

0.8
0.6
0.4
0.2

a)

0
0.2
0.4
0.6
0.8
1
0

100

Paket 1
x(n-pmax)

200

300

400

Paket 2

500

Paket 3

600

Paket 4

pmax = T

0.8
0.6
0.4
0.2

b)

0
0.2
0.4
0.6
0.8
1
0

100

Tmin pmax

y(n)

200

300

400

500

600

400

500

600

Tmax

1
0.8
0.6
0.4
0.2

c)

0
0.2
0.4
0.6
0.8
1
0

100

200

300

(1) (2) (3) (4)

(A)

(B)

Abbildung 4.14: Fehlerverschleierung mit "Pitch Waveform Replication\

KAPITEL 4. ALGORITHMEN ZUR FEHLERVERSCHLEIERUNG

36

l out
x(n-pmax)

l in = nv L
1

T + l fit

0.8
0.6
0.4
0.2

b)

0
0.2
0.4
0.6
0.8
1
0

100

Tmin pmax

200

300

400

500

600

300

400

500

600

Tmax

1.5

0.5

0.5
0

100

200

(1) (2) (3) (4)

(A)
y(n)

(B)

0.8
0.6
0.4
0.2

c)

0
0.2
0.4
0.6
0.8
1
0

100

Paket 1

200

300

Paket 2

400

Paket 3

500

600

Paket 4

Abbildung 4.15: PWR-Algorithmus mit "Packet Merging\

Kapitel 5
Vergleich der Algorithmen
5.1 Objektiver Vergleich
5.1.1 Theoretische Erfolgswahrscheinlichkeit einer
Fehlerverschleierung
Sprachsignale bestehen aus Bereichen unterschiedlichen Energiegehalts und unterschiedlicher Periodizitat (! Kap.2.1, Abb. 2.1). Demzufolge wird eine Fehlerverschleierungsmethode der "Waveform Substitution\-Gruppe scheitern, wenn:

 das fehlende Sprachsegment der Lange sL 1 so lang ist, da das Sprachsignal nicht

mehr als stationar angenommen werden kann (fur Paketlangen L = 160 Abtastwerte
(20 ms Sprache bei fA = 8 kHz) ist das fur s > nL = 2 der Fall2 (! S.31 u. Tab.
3.1).

 bereits in einem Segment der Lange sL  nLL ein U bergang zwischen unterschiedlichen Sprachsignalbereichen aufgetreten ist

 der Abstand zwischen zwei zu verschleiernden, fehlenden Segmenten zu klein ist (d.h.

es stehen nicht genug Daten zur Verfugung, um eine Fehlerverschleierung durchzufuhren)

1
2

s: Anzahl der aufeinanderfolgenden fehlenden Pakete


nL : max. Anzahl von aufeinanderfolgenden fehlenden Paketen, die verschleiert werden konnen

37

KAPITEL 5. VERGLEICH DER ALGORITHMEN

38

(1-p )

(1-p )

(1-p )

(1-p )

p
5

(1-p )

Paket

nV= 2 (Pitch Waveform Replication)


n = s + 2 (MWSOLA, Pattern Matching)
V

Abbildung 5.1: Sequenz von s fehlenden Paketen


Die Wahrscheinlichkeit, da in einer Sequenz von s Paketen keine Bereichsubergange
("transitions\) aufgetreten sind lautet ([GLWW86]):

8 s
< p : 0  s  nL
pt;s(s) = : t
0 : s > nL

(5.1)

pt : Wahrscheinlichkeit fur keinen Sprachbereichsubergang innerhalb eines Paketes


Eine auftretende fehlende Sequenz von genau s Paketen (wobei angenommen wird, da
die Paketverlustwahrscheinlichkeit pL fur alle Pakete gleich ist, hierzu s. Kap. 6.2.2, Abb.
6.14, S. 83), wird durch die Wahrscheinlichkeit pL;s(s) beschrieben:

pL;s(s) = psL(1 pL)

(5.2)

Um die auftretende Fehlstelle zu verschleiern, ist eine Sequenz von mindestens nv aufeinanderfolgenden Paketen notwendig. Die Wahrscheinlichkeit fur das Auftreten einer solchen
Sequenz betragt (! Tab. 4.1,4.2 und S. 34):

8
< (1 pL)s+2 : 0  s  nL; fur PATMAT, MWSOLA
pv (s) = (1 pL)nv = :
(1 pL)2 : fur "Pitch Waveform Replication\

(5.3)

Aus den Gln. (5.1) - (5.3) folgt nun die Wahrscheinlichkeit einer erfolgreichen Verschleierung:
1
X
(5.4)
P = pt;s(s)pL;s(s)pv (s) =
s=0

8
0
1
< pt pL(1 pL ) : fur PATMAT, MWSOLA
@mit p = :
A
ptpL : fur "Pitch Waveform Replication\

KAPITEL 5. VERGLEICH DER ALGORITHMEN

39

1
X
3
= (1 pL) (1  1 [s (nL + 1)])ps =
s=0
!
1
1
X
X
s
3
 1 [s (nL + 1)] ps (=)
p
= (1 pL)
s=0
s=0
(nL +1) !
1
p
3
= (1 pL)
=

1 p

1 p

(nL +1)
= (1 pL)3 1 1p p

()

1
X
s=nL+1

ps =

1
X
x=0

p(s+[nL+1]) = p(nL+1)

1
X
x=0

ps

Fur englische Sprache wird in [GLWW86] eine Anzahl von 5; 2 Bereichsubergangen pro
Sekunde, die poissonverteilt sind, angegeben. Daraus ergibt sich die Anzahl der Bereichsubergange pro Paket:
 ange=s
5; 2 Uberg

nt = 8000
Abtastwerte=s 160 Abtastwerte=Paket = 0; 104 Ubergange=Paket
Somit folgt fur pt :

pt = e

nt

 1 nt = 0; 896

(5.5)

In Abb. 5.2 ist fur diesen Wert von pt die Erfolgswahrscheinlichkeit P in Abhangigkeit
der Paketverlustwahrscheinlichkeit pL aufgetragen. Wird auch fur "Silence Substitution\
angenommen, da der jeweiligen Lucke nv = 2 Pakete vorangehen mussen, um eine noch
verstandliche Sprache zu haben, ergibt sich fur Gl. (5.4) mit nL = 0: P = (1 pL )3. Unter
dieser Annahme und unter Vorraussetzung einer sehr guten Qualitat des Ersatzsegmentes
ergibt sich aus Abb. 5.2 eine hohere tolerierbare Paketfehlerwahrscheinlichkeit pL. Geht
man aber bei "Silence Substitution\ als Qualitatsma von der Eintre wahrscheinlichkeit
(1 pL) eines Paketes aus, zeigt sich, da die fehlerverschleiernden Algorithmen durchaus
hau g aufgrund dicht aufeinanderfolgender Paketverluste nicht anwendbar sind (vgl. Tab.
6.3, S. 81)

KAPITEL 5. VERGLEICH DER ALGORITHMEN

40

P
0

10

Silence
Silence

(1-p L)
(1-p L) 3

MWSOLA / PATMAT
PWR

10

10

10

10

Abbildung 5.2: Erfolgswahrscheinlichkeit P einer Fehlerverschleierung

5.1.2 Rechenaufwand
In den Tab. 5.1 und 5.2 ist fur die drei vorgestellten Verfahren (bei Anwendung von
"Packet Merging\) der Rechenaufwand anhand von Anzahl der Korrelationsberechnungen, zusatzliche Multiplikationen und zusatzliche Additionen gegenubergestellt. Hierbei
werden nur Operationen bezuglich der Eingabedaten berucksichtigt. Der Aufwand fur
eine Korrelationsberechnung wird in Tab. 5.3 aufgefuhrt. Er ist fur "Pattern Matching\
(PATMAT), "Pitch Waveform Replication\ (PWR) und WSOLA etwa gleich. Beim vorgestellten MWSOLA-Verfahren reduziert sich der Aufwand um die Halfte. Der Rechenaufwand fur eine Korrelationsberechnung lat sich allgemein unter Ausnutzung einer FFT
sehr verringern. Aus den Tab. 5.1 und 5.2 ergibt sich, da die aufzuwendende Rechenleistung fur die Verfahren "Pattern Matching\ (PATMAT) und "Pitch Waveform Replication\ (PWR)\ in etwa vergleichbar und im Vergleich zu MWSOLA deutlich niedriger
ist. Beim MWSOLA-Algorithmus ist anzumerken, da deutlich mehr Korrelationsberechnungen pro Fehlstelle auszufuhren sind. Problematisch ist auerdem, da die Korrelation
der gewichteten Signalabschnitte berechnet werden mu. Hierzu ist eine hohe Zahl von
zusatzlichen Multiplikationen notig
In Abb. 5.3 ist die notwendige Anzahl der Operationen fur die einzelnen Verfahren fur
das Beispiel der Verschleierung eines fehlenden Paketes gegenubergestellt.

KAPITEL 5. VERGLEICH DER ALGORITHMEN


Verschleierung von
Korrelations- PATMAT
berechnungen PWR
zusatzl. Mul. PATMAT
PWR
zusatzl. Add. PATMAT
PWR

1 Paket
1
1
4lfit AAa : 8lfit + 2L
6lfit  2( TL + 2)lfit  20lfit
2lfit
AA : 6lfit
L
3lfit  ( T + 2)lfit  10lfit

41
2 Paketen
1
1
4lfit
AA : 8lfit + 2L
8lfit  2( TL + 2)lfit  36lfit
2lfit
AA : 6lfit
L
4lfit  ( T + 2)lfit  18lfit

Tabelle 5.1: Notwendige Operationen fur PATMAT und PWR


a Amplitudenanpassung: Kap. 4.1.3

Verschleierung von
1 Paket
2 Paketen
Korrelationsberechnungen 1  N 1  6
1N 17
zusatzl. Multiplikationen (N 1) F 2 1 (SS 2) + F > (N 1) 9900 + 200 3
(WSOLA: > (N 1) 19800 + 200)
Overlap: NF
Fit: 2lfit
zusatzl. Additionen
Add: (N 1)F
Fit: lfit

Tabelle 5.2: Notwendige Operationen fur den MWSOLA-Algorithmus

5.1.3 Objektive Qualitatsmae


Das ubliche Qualitatsma, um z.B. die Leistungsfahigkeit eines Waveform-Coders einzuschatzen, ist das Signal-Rausch-Verhaltnis (Signal-to-Noise Ratio) einer Folge von Abtastwerten der Lange l: ([Del93],[JN84])
l 1
X

SNR = 10 lg X
l 1
n=0

n=0

x2 (n)

[x(n)

y(n)]2

dB

x(n): Eingangssignal des Systems


y(n): Ausgangssignal

(5.6)

KAPITEL 5. VERGLEICH DER ALGORITHMEN

42

max. Anzahl der


Lange des
Positionen max(p)
Korrelationssegmentes
MWSOLA
SS 2  99 (S. 30)
F  100
PATMAT S 0 M = 200 (Tab. 4.1)
M = 100
PWR
Tmax Tmin = 140 (S. 34) Tmax Tmin = 140
Tabelle 5.3: Aufwand fur eine Korrelationsberechnung
Anzahl
Operationen

x 10

8
7
6
5
4

MUL

3
2

ADD
MUL

ADD

MUL

ADD

MWSOLA

PATMAT

PWR

Abbildung 5.3: Notwendige Rechenoperationen zur Verschleierung eines Paketes


(lfit = 20, L = 160; MWSOLA: N = 5,F = 201; PWR: T = 80 [f = 100Hz])
Wird das Signal korrekt ubertragen (y(n) = x(n) 8n) gilt fur die Rauschleistung N =
[x(n) y(n)]2 = N0 = 0. Werden alle ubertragenen Abtastwerte durch Null ersetzt
l 1
X
(y(n) = 0 8n) betragt die Rauschleistung N = NL = x2(n). Die beiden Zustande
n=0
treten mit einer Wahrscheinlichkeit von (1 pL), bzw. pL auf, so da fur die Rauschleistung bei "Silence Substitution\ fur groe Werte von l gilt ([JC81]):

N = pLN + (1 pL)N = pLNL + (1 pL)N0 = pL

l 1
X

n=0

x2 (n) + (1 pL) 0

KAPITEL 5. VERGLEICH DER ALGORITHMEN

43

Daraus folgt fur das Signal-Rausch-Verhaltnis:

SNRSS = 10 lg (pL) 1 dB
Beispielsweise ist fur ein Testsignal mit einer Paketverlustwahrscheinlichkeit pL = 0; 2
SNRSS = 6; 99 dB (gemessen: SNRSS;m = 7; 03 dB ). Fur eine Verschleierung mit
dem "Pattern Matching\-Verfahren (PATMAT), mit dem eine deutliche Verbesserung
der Sprachqualitat erzielt wird, erhalt man SNRPATMAT = 4; 66 dB . Das subjektiv beste Ergebnis fur dieses Testsignal wurde mit dem MWSOLA-Algorithmus erzielt, wobei
SNRMWSOLA allerdings nur 1; 25 dB betrug.
Das macht deutlich, da das SNR ein schlechtes Kriterium zur Sprachqualitatsbewertung
ist. Das ist darauf zuruckzufuhren, da keinerlei subjektive Sprachattribute vom SNR mathematisch erfat werden. Alle Fehler im Zeitsignal werden gleich gewichtet, obwohl sie zu
unterschiedlich starken Storungen des Sprachwiedergabe fuhren. Insbesondere fur einen
Vergleich der drei Fehlerverschleierungsalgorithmen erscheint das SNR nicht geeignet, da
ja der MWSOLA-Algorithmus wesentlich mehr Pakete pro Verschleierung verandert (!
Tab. 5.4), und somit auf jeden Fall eine geringeres SNR bei gleicher Paketverlustwahrscheinlichkeit hat.
veranderte Pakete vor der Fehlstelle an der Fehlstelle nach der Fehlstelle
MWSOLA
s+2
s
1
PATMAT/PWR
1
s
1

Tabelle 5.4: Veranderte Pakete pro Verschleierung einer Sequenz von s Paketen
Ein objektives Qualitatsma, das zumindest berucksichtigt, da das Sprachsignal nichtstationar ist (also sich die Sprachenergie kurzzeitig deutlich andern kann), ist das segmentorientierte Signal-Rausch-Verhaltnis SNRseg , welches auch im Zusammenhang mit der
Fehlerverschleierung als "SNR per missing packet\ bezeichnet wird ([GLWW86],[JC81]).
Hierbei werden SNR-Werte uber kurze Signalabschnitte (z.B. die Paketlange L) berechnet, aus denen dann das arithmetische Mittel gebildet wird. Es wird eine obere und untere
Schranke fur die einzelnen SNR gesetzt, um eine Verzerrung des Meergebnisses durch
Originalpakete, die Stille enthalten, bzw. verschleierte Pakete, welche fast die Informati-

KAPITEL 5. VERGLEICH DER ALGORITHMEN

44

on des Originalpaketes4 enthalten, zu verhindern. Allerdings wird durch die (notwendige)


Wahl der Schranken das Ergebnis stark beein ut. Auerdem wird nach wie vor wenig
auf die Eigenschaften von Sprache eingegangen.
Ein mit subjektiven Tests relativ gut in U bereinstimmung stehendes Meverfahren ist
das frequenzbandgewichtete segmentorientierte SNRfw seg ("frequency-weighted segmental SNR\, [Del93], S.595). Hier werden fur jedes Segment die Signalenergien innerhalb
bestimmter Frequenzbander ermittelt und, entsprechend psychoakustischen Erkenntnissen uber den Auswirkungsgrad von Storungen in den einzelnen Frequenzbandern, gewichtet. Dieses Verfahren erscheint geeigneter als SNR und SNRseg , da beim MWSOLAAlgorithmus versucht wird trotz Zeitdehnung den Spektralinhalt des Sprachsignals (vgl.
Abb. A.1 - A.3, S. 96) nicht zu verandern. Gravierender Nachteil dieses objektiven Qualitatsmaes ist die sehr aufwendige Berechnung.
Weitere objektive Qualitatsmae, die z.B. auf LP-Analyse (lineare Pradiktion) beruhen
sind z.B. in [Del93], [Pap87] und [JN84] erlautert. Ein interessanter Ansatz, der im Rahmen dieser Arbeit nicht verfolgt werden konnte, ist die Verwendung von stochastischen
Prozessen (SIRPs: "spherically invariant random processes\) als Testsignale ([Hal91]).
Diese Prozesse versuchen Eigenschaften naturlicher Sprache nachzubilden, wie z.B. eine
bestimmte Amplitudenverteilungsdichtefunktion, typische Lang- und Kurzzeitspektren,
abwechselnde Abschnitte hoher und niedriger Energie, (variierende) Grundfrequenz und
Formanten. Das erlaubt den Einsatz von auf die Testsignale abgestimmten, aussagekraftigen objektiven Qualitatskriterien.
Aufgrund der Verschiedenartigkeit von MWSOLA und der beiden anderen Verfahren,
bzw. der damit verbundenen Schwachen der objektiven Qualitatskriterien, wird auf eine
Gegenuberstellung von objektiven Meergebnissen verzichtet. Im folgenden Kapitel werden deswegen Verfahren der subjektiven Qualitatsbewertung erlautert und die Ergebnisse
einer Sprachqualitatstestreihe vorgestellt.
4 z.B. Pakete, die nur am Rand gewichtet und uberlagert wurden (! Packet Merging\)

"

KAPITEL 5. VERGLEICH DER ALGORITHMEN

45

5.2 Subjektiver Vergleich


Eine zentrale Bedeutung beim Vergleich der Leistungsfahigkeit von Sprachcodierungsund -ubertragungssystemen kommt den Verfahren der subjektiven Qualitatsbewertung
zu. Solche Sprachtests werden grundsatzlich in zwei Kategorien eingeteilt ([Pap87], S.
186):

 Verstandlichkeitstests ("intelligibility\)

(Erkennung einzelner Worter in Horproben durch verschiedene Testpersonen:


was wird gesprochen ?)

 Qualitatstests ("quality\)

(Bewertung von Horproben durch verschiedene Testpersonen:


wie wird gesprochen ?)

Fur die Untersuchung der in Kap. 4 vorgestellten Algorithmen sind Qualitatstests angebracht, da das Ziel einer Fehlerverschleierung ist, das durch Paketverluste gestorte
Sprachsignal fur den Horer angenehmer zu machen. Allerdings hangen die Begri e Sprachverstandlichkeit und Sprachqualitat durchaus zusammen: Gute Sprachqualitat impliziert
gute Verstandlichkeit. Eine Fehlerverschleierung kann, obwohl sie eben nicht verloren gegangene Daten rekonstruiert, zur Erhohung der Verstandlichkeit des restlichen, fehlerlos
empfangenen Sprachsignals, beitragen.
Sprachqualitat (Sprachgute) ist ein mehrdimensionales Merkmal. Daraus ergeben sich die
folgenden Eigenschaften von subjektiven Sprachqualitatskriterien (insbesondere im Vergleich mit objektiven Qualitatskriterien):
Vorteile:

 Sprachsignale werden letztendlich von Menschen aufgenommen und verarbeitet, also


sollte bei der Bewertung von Sprachqualitat das Urteil von Menschen die grote
Rolle spielen ! ohne subjektive Tests ist keine abschlieende Bewertung

der Leistungsfahigkeit eines sprachverarbeitenden Systems moglich

 unterschiedlichste Verfahren, die auch unterschiedliche Storungen in das Sprachsignal bringen, konnen in Relation gesetzt werden (MWSOLA $ PATMAT/PWR)

KAPITEL 5. VERGLEICH DER ALGORITHMEN

46

Nachteile:

 unter Umstanden hangen die subjektiven Testergebnisse stark von den verwende-

ten Testsignalen ab (gilt in gewissem Ma auch fur die objektiven Qualitatsmae):
Sprecher (Sprachgrundfrequenz), Lange der Testsignale, Worte des Testsatzes, Aufnahmequalitat (U bersteuerung), Plazierung der Fehlstellen im Testsignal

 hoher Zeitaufwand, da die Bewertung durch viele Testpersonen notwendig ist


 unterschiedliche Wahrnehmung der verschiedenen Artefakte im Sprachsignal durch
die Testpersonen

 unterschiedliche Au assung des Sprachqualitatsbegri s zwischen den Testpersonen;


Veranderung der Sprachqualitatsau assung einer Testperson mit der Zeit

 starke Abhangigkeit von den jeweiligen Testbedingungen ! Reproduzierbarkeit der


Ergebnisse fraglich

a) Nebengerausche, Qualitat der Audio-Hardware (A/D-Wandler),


Gute der Kopfhorer/Lautsprecher
b) Reihenfolge der Testsignale
c) Anzahl der hintereinander prasentierten Testsignale
d) Geubtheit / Gewohnung der Testpersonen
e) Moglichkeit ein Testsignal ofters zu horen
Aus den aufgefuhrten Punkten ergibt sich einerseits, da subjektive Tests unverzichtbar
sind, aber andererseits die Testergebnisse sehr kritisch betrachtet werden mussen. Auerdem wird klar, das es nicht sinnvoll ist, Testergebnisse unterschiedlicher Testreihen
miteinander zu vergleichen.

5.2.1 Verfahren der subjektiven Sprachqualitatsbewertung


In [IEE69] wurden erstmals drei grundsatzliche Methoden fur Messungen der subjektiven
Sprachqualitat empfohlen. Diese Verfahren, sowie das relativ neue Verfahren der Komponentenbeurteilung, sollen im folgenden Kapitel kurz vorgestellt und bewertet werden.

KAPITEL 5. VERGLEICH DER ALGORITHMEN

47

5.2.1.1 Praferenzmethoden
Isopraferenzmethode ("isopreference method\)
Das Testsignal (d.h. in unserem Fall, das durch einen Fehlerverschleierungsalgorithmus
bearbeitete gestorte Signal) wird direkt mit Referenzsignalen unterschiedlichen Storgehalts verglichen ([DPF89]). Der Grad der Storung des Referenzsignals wir durch einen
Parameter, typischerweise dem SNR, beschrieben. Der Isopraferenzwert des Testsignals
ist nun der Parameterwert des Referenzsignals, bei dem die Gruppe der Testpersonen sich
zu 50% fur, bzw. gegen das Testsignal entscheidet. Fur eine Anwendung in Bezug auf
Fehlerverschleierung stellt sich die Frage nach einem geeigneten Testparameter, der Vergleiche zwischen der Leistungsfahigkeit der einzelnen Algorithmen zulat. Ein SNR ist
aus den in Kap. 5.1.3 genannten Grunden nicht sinnvoll. Es ware z.B. bei Codierern, bei
dem man einen Quantisierungsparameter variieren kann, angebracht. Auch eine zunehmende Verschlechterung des Originalsignals anhand der Paketverlustwahrscheinlichkeit
pL erscheint nicht sinnvoll, da somit vom Horer vollig unterschiedliche Artefakte in Relation zueinander gesetzt werden mussen (z.B. "blecherner Klang\ beim fehlerverschleierten
Signal und "ungleichmaig/unterbrochenes Signal\ beim unbehandelten, durch Paketverluste gestorten Referenzsignal).
Zieht man auch noch den hohen zu erwartenden Zeitaufwand in Betracht (jedes Testsignal
mu mit einer Reihe von Referenzsignalen verglichen werden), scheidet die Isopraferenzmethode fur die Anwendung in Bezug auf Fehlerverschleierungsverfahren aus.
Methode der relativen Praferenz
("relative preference method\, "paired comparisons\)
Wie bei der Isopraferenzmethode wird das Testsignal direkt mit Referenzsignalen unterschiedlichen Storgehalts verglichen. Dabei tritt fur Fehlerverschleierungsverfahren naturlich
auch das oben beschriebene Problem der Wahl eines geeigneten Testparameters auf. Hier
werden aber auch die Referenzsignale untereinander verglichen. Damit wird eine Skala
erzeugt, die es moglich macht, die Ergebnisse der Vergleiche Testsignal/Referenzsignal
einzuordnen.
Fur eine Beurteilung der Fehlerverschleierungsalgorithmen ware es sinnvoll eine Skala aus
den Vergleichen von Original, einigen unbehandelten, gestorten Signalen, sowie einem alle
Artefakte enthaltenden, eigens erzeugten Extrembeispiel zu bilden. Dann sollten auch die

KAPITEL 5. VERGLEICH DER ALGORITHMEN

48

Testsignale der einzelnen Algorithmen untereinander ([BS85], S.33) und mit den Referenzsignalen verglichen werden , und zwar in den beiden moglichen Reihenfolgen AB und BA.
Sehr positiv an dieser Methode ist, da (im Gegensatz zu den weiter unten besprochenen
Methoden) nur eine Entscheidung zwischen zwei Alternativen (A oder B ) durch die Testperson notwendig ist. Das hat zur Folge, da auch geringe Guteunterschiede zwischen den
Testsignalen unterschieden werden konnen.
Nachteilig ist der hohe Aufwand. Zum Test von a Algorithmen ist die Generierung und
der Test der folgenden Signale notig:

ref = z + 2 Referenzsignale:

{ Original: x(n)
{ z unbehandelte, gestorte Signale mit Paketverlustwahrscheinlichkeiten pL;i:
xL;i (n); i 2 [1; z]
{ extrem schlechtes Signal mit allen Artefakten: xwc(n)
test = a z Testsignale ya;z (n)
(Fur alle a Algorithmen mussen die z gestorten Signale verschleiert werden)
Fur o Originale x(n) ergeben sich o(ref + test)(ref + test 1) notwendige Vergleiche, also
mu jede Testperson b = 2o(ref + test)(ref + test 1) Beispiele anhoren. Fur z = 2,a = 3
und o = 4 verschiedene Originalsignale ergeben sich b = 720 Beispiele.
Bewertet man Referenz- und Testsignale getrennt und verzichtet man auf die Prasentation
von beiden Reihenfolgen AB und BA. so erhalt man:

b = o(ref (ref 1) + test(test 1))


Fur die oben verwendeten Parameter sind das immer noch 168 anzuhorende Beispielsignale. Da das nun vorzustellende Verfahren der Einteilung in Gutekategorien in der Anzahl
der den Testpersonen zu prasentierenden Beispielen noch deutlich unter dem zweiten fur
b genannten Wert liegt, wurde die relative Praferenzmethode nicht angewandt.

KAPITEL 5. VERGLEICH DER ALGORITHMEN

49

5.2.1.2 Methode der direkten Guteschatzung durch Einteilung in Kategorien


"category judgement\
Dieser Test beruht auf einer Bewertung des Gesamteindrucks des Testsignals durch die
Testpersonen, die durch die Einteilung der Sprachqualitat in intuitiv klare Kategorien (!
Tab. 5.5) durchgefuhrt wird.
Kategorie Sprachqualitat speech quality Qualitatsminderung ([Del93], S.578)
1
ungenugend unsatisfactory
sehr storend, nicht akzeptabel
2
schlecht
poor
storend, aber noch akzeptabel
3
zufriedenstellend
fair
wahrnehmbar, etwas storend
4
gut
good
gerade wahrnehmbar, aber nicht storend
5
sehr gut
excellent
nicht wahrnehmbar

Tabelle 5.5: Sprachqualitatskategorien


Der Test lauft in zwei Phasen ab:
1. Vertrautmachen mit der zu erwartenden Qualitatsbandbreite ("Anchoring\)
2. Bewertungsphase
Beim "Anchoring\ soll der Testperson vermittelt werden, in welchem Bereich seines Sprachqualitatsemp ndens er seine Skala (von 1 bis 5) ansiedeln mu. Eine Moglichkeit hierzu
ist die Prasentation des Originals x(n), welches der Kategorie 5 zugeordnet ist, und eines sehr schlechten Beispiels xwc(n) (Kategorie 1), das alle Storungen der verschiedenen,
verschleierten und unverschleierten, zu prufenden Signale enthalt. Ausgewertet wird der
Gutekategorietest ublicherweise als "Mean Opinion Score\ ([IEE69], S. 232). Dabei
wird der prozentuale Anteil der Testpersonen die Kategorie i gewahlt haben (l%;i) mit
der Kategorie i gewichtet, was dem arithmetischen Mittel der abgegebenen Bewertungen
entspricht.
Pli X
MOS = il i = l%;i i
(5.7)
i

li : Anzahl der Testpersonen, die Kategorie i gewahlt haben


l: Gesamtzahl der Testpersonen

KAPITEL 5. VERGLEICH DER ALGORITHMEN

50

Problematisch ist, da manche Testpersonen grundsatzlich schlechter, bzw. besser als andere bewerten (! Einleitung Kap. 5.2), wodurch sich eine hohe Streuung der Resultate
ergeben kann. Es sollte also auch die Standardabweichung eines Testmittelwertes Berucksichtigung nden. Weiterhin ist die subjektive Skala einer Testperson im allgemeinen nicht
aquidistant aufgeteilt, so da sich weitere Verzerrungen im Ergebnis bilden. Insgesamt ist
es also immer kritisch, Urteile verschiedener Personen zusammenzufassen.
Hauptvorteil der Gutekategoriemethode ist der geringe (Zeit-)Aufwand fur die Durchfuhrung (vgl. S.48). Die Anzahl der zu prasentierenden Beispiele ist o(ref + test). Fur die
Parameterwahl von S. 48 ergibt sich eine Belastung der Testperson mit nur b = 40 Horbeispielen. Daraus resultiert ein relativ geringer Zeitaufwand zur Testdurchfuhrung und eine
Ermudung, bzw. Unkonzentriertheit der Testpersonen wird sehr unwahrscheinlich. Besonders hervorzuheben ist bei dieser Methode die im Fall der hier untersuchten Fehlerverschleierungsverfahren ja sehr wichtige Eigenschaft, Verfahren die sehr unterschiedliche
Storungen ins Ausgangssignal y(n) bringen in Beziehung zu setzen.
Der Gutekategorietest mit MOS-Auswertung ist aus diesen Grunden das am meisten verwendete subjektive Sprachqualitatsbewertungsverfahren ([ST89], [Yon92], [Pap87]).

5.2.1.3 Methode der Komponentenbeurteilung


"Diagnostic Acceptability Measure\
Ein Verfahren, das auf die oben erwahnte Mehrdimensionalitat des Sprachqualitatsemp ndens eingeht, ist die Gutebestimmung durch Komponentenbeurteilung.
Jedes zu prufende Testsignal wird von den Testpersonen bezuglich seiner Gesamtqualitat, aber auch bezuglich von Einzelkomponenten der Sprachqualitat (auf einer Skala von
"vernachlassigbar\ bis "extrem\) bewertet. Es wird also moglich Gesamtwertungen (wie
beim "category judgement\, Kap. 5.2.1.2) auf verschiedenartige Artefakte im Sprachsignal
zuruckzufuhren. Auerdem wird das Sprachqualitatsemp nden (Vorlieben, Abneigungen)
der Testpersonen transparenter und kann evtl. bei der Auswertung mit berucksichtigt
werden (fur Tests dieser Gruppe werden vor allem trainierte Testpersonen verwendet, die
standig "geeicht\ werden). Die Einzelresultate werden dann entsprechend ihrer Bedeutung
fur die Sprachqualitat gewichtet und eine Gesamtgutema errechnet.
Der bekannteste Test dieser Gruppe, "Diagnostic Acceptability Measure\ (DAM, ! Tab.

KAPITEL 5. VERGLEICH DER ALGORITHMEN

51

5.6), unterscheidet die Einzelkomponenten in Signal- und Hintergrundqualitat. DAM ist


in den USA sehr erfolgreich und zeigte gute Ergebnisse (geringe Meergebnisstreuungen,
hohe Reproduzierbarkeit).
Signalqualitat
Hintergrundqualitat Gesamteindruck
atternd/schwankend
knackend
verstandlich
dunn
knisternd
angenehm
kratzend
pfeifend
akzeptabel
gedampft
zischend
unterbrochen
summend
nasal
blechern / unnaturlich

Tabelle 5.6: Komponenten der "Diagnostic Acceptablity Measure\

5.2.2 Durchfuhrung eines Sprachqualitatstests


5.2.2.1 Testsignale
Es wurden vier verschiedene Testsatze von Sprechern verschiedenen Geschlechts und unterschiedlicher Stimmlage aus Rundfunksendungen aufgenommen und digitalisiert (PCM16 bit linear, fA = 8 kHz). Die Lange der Testsignale betrug ca. 10 Sekunden, das entspricht 80000 Abtastwerten, bzw. 500 Datenpaketen.
Als Referenzsignale wurden jeweils die folgenden Signale verwendet (ref = 4):

 Original x(n)
 unbehandeltes, gestortes Signal mit pL;1 = 20% : xL;41 (n)

(deterministisches Unterdrucken eines Paketes nach jeweils vier unveranderten Paketen)

 unbehandeltes, gestortes Signal mit pL;1 = 33; 33% : xL;42 (n)

(deterministisches Unterdrucken von zwei Paketes nach jeweils vier unveranderten


Paketen)

KAPITEL 5. VERGLEICH DER ALGORITHMEN

52

 sehr schlechtes Signal mit allen Artefakten: xWC (n)

(deterministisches Unterdrucken von drei Paketen nach zwei unveranderten Paketen; Dehnung der zwei Pakete zwischen den Lucken auf funf Pakete mit Hilfe von
MWSOLA ohne "Packet Merging\; zusatzliches Einfugen von Nullfolgen an den
Dehntrennstellen; durch die extrem starke Dehnung (! Abb. 4.12, S. 30) entstehen neben MWSOLA-eigenen Storkomponenten wie "gedehnt\ auch solche, die fur
PATMAT ("hallend\) und PWR ("blechern\), sowie die unbehandelten Beispiele
("unterbrochen\) typisch sind

Einem deterministischen anstatt einem zufalligen Unterdrucken von Paketen wurde der
Vorzug gegeben, weil:

 die Algorithmen genau dieselben Fehlstellen bearbeiten und so mit einer geringeren
Anzahl von Testbeispielen vergleichbar werden

 in einem Testbeispiel alle Fehlstellen verschleiert werden sollen, um einen Eindruck

von der Leistungsfahigkeit der Algorithmen zu bekommen. Fugt man zufallig Fehlstellen ein, konnen einige Lucken, da sie zu dicht zusammenliegen, nicht bearbeitet
werden und verfalschen so den Gesamteindruck.

Durch das deterministische Unterdrucken werden Paketverluste unter Umstanden sogar


als noch storender empfunden, da sie periodisch auftreten. Horproben, bei denen zufalliger
und deterministischer Paketverlust verglichen wurden, bestatigten das.
Die gewahlte Lange der Testsignale ( 500 Pakete; xL;41 (n): Ausfall von 100 Paketen;
xL;42 (n): Ausfall von 166 Paketen) garantiert, das die Lucken in ausreichender Anzahl in
den verschiedenen Bereichen des Sprachsignals (stimmhaft/stimmlos/Stille) liegen.
Mit den drei Algorithmen werden nun also die beiden Signale xL;41(n) und xL;42 (n) verschleiert, so da von den Testpersonen pro Original x(n) (ref + test) = 4 + 6 Signale zu
beurteilen waren. In Abb. 5.4 sind als Beispiel das Signal x(n) aus Abb. 2.1, S. 3, sowie
das durch Paketverluste gestorte Signal xL;41 (n) und das mit dem "Pattern Matching\
mit Amplitudenanpassung verschleierte Signal dargestellt.

KAPITEL 5. VERGLEICH DER ALGORITHMEN


x(n)

53

0.5

0.5
0

500

1000

1500

2000

2500

500

1000

1500

2000

2500

500

1000

1500

2000

2500

x (n) 0.5
L,41
0

0.5
0

y(n)
PATMAT

0.5

0.5
0

Abbildung 5.4: Fehlerverschleierung mit PATMAT

5.2.2.2 Testablauf und -bedingungen


Unter Berucksichtigung der U berlegungen aus Kap. 5.2.1 wurde ein Testverfahren gema
der Methode der direkten Guteschatzung durch Einordnung in Gutekategorien (! Kap.
5.2.1.2) gewahlt. Allerdings wurde die Verschiedenartigkeit der durch die Algorithmen
ins Signal gebrachten Storungen noch dadurch Rechnung getragen, da zusatzlich eine
einfache Komponentenbeurteilung (! Kap. 5.2.1.3) gefordert wurde. Diese Komponenten
waren:

 blechern/metallisch
 lallend/gedehnt
 ungleichmaig unterbrochen
Die Testpersonen konnten auerdem weitere charakteristische Merkmale notieren. Als
Testpersonen standen 13 Personen (9 mannlich, 4 weiblich) zur Verfugung, die zum uberwiegenden Teil keine der zu beurteilenden Signale schon gehort hatten. Zum Abspielen
der Test- und Referenzsignale wurde eine SPARCstation 20 mit Kopfhorer benutzt, die
sich in einem Raum mit einem geringen Hintergrundgerauschpegel befand. Den Testpersonen wurde zunachst Testablauf und Bewertungsskala genau erklart. Dann wurde, um die

KAPITEL 5. VERGLEICH DER ALGORITHMEN

54

Personen mit der Qualitatsbandbreite vertraut zu machen das Original x(n) (Kategorie
5) und das Extrembeispiel xWC (n) (Kategorie 1) vorgespielt ("Anchoring\). Die Reihenfolge der vier Testabschnitte mit den jeweils verschiedenen Testsatzen, bzw. Sprechern
(mannlich/hohe Stimmlage [mh], mannlich/tief [mt], weiblich/hoch [wh], weiblich/tief
[wt]) wurde dabei zufallig gewahlt. Den Testpersonen wurde es ermoglicht, zu Anfang jedes
Testabschnitts oder auch zwischen den zu beurteilenden Signalen, das Originl und/oder
das Extrembeispiel nochmals zu horen. Nach dem "Anchoring\ wurden in schneller und
zufalliger Reihenfolge, die vier Referenz- und sechs Testsignale prasentiert.

5.2.2.3 Ergebnisse
Fur alle vier Testsatze wurde getrennt der Mittelwert M aus den Beurteilungen errechnet
(! Gl. (5.7), Abb. 5.6 - 5.9), sowie die Standardabweichungen der Mepunkte ermittelt.
Auerdem wurde noch ein Gesamtresultat M durch Mittelung aus den Ergebnissen fur die
einzelnen Testsatze errechnet (Abb. 5.5). Hinzu kommen noch die Komponentenbewertungen fur die einzelnen Testsatze (Abb. 5.10 - 5.135). Die Testpersonen, soweit sie uberhaupt
eine zusatzliche Kategorie nannten, fuhrten sehr oft "hallend\, bzw. "Hall\/"Echo\ an.
Somit wurde diese Komponente zusatzlich in die Auswertung mit einbezogen.
M

Original
4.5

3.5

2.5

Original/WC
Silence Substitution

MWSOLA
PATMAT

1.5

1
0

PWR

Worst Case
0.05

0.1

0.15

0.2

0.25

L,41

0.3

L,42

Abbildung 5.5: Qualitatsmittelwert aller Testsatze M


5

die die Kategorie gewahlt haben


K = Anzahl der Testpersonen,
Gesamtzahl der Testpersonen

pL

KAPITEL 5. VERGLEICH DER ALGORITHMEN

55

s=1 s=2
1,19 1,21
1,13 1,00
1,02 0,67
Tabelle 5.7: Verbesserung M durch Fehlerverschleierung
Algorithmus
MWSOLA
PWR
PATMAT

mh
5

4.5

3.5

2.5

Original/WC
Silence
MWSOLA

PATMAT
PWR

1.5

1
0

0.05

0.1

0.15

0.2

0.25

0.3

0.2

0.25

0.3

pL

mh
1.5

0.5

Original
Worst Case

0
0

0.05

0.1

0.15

pL

Abbildung 5.6: Qualitatsmittelwert M fur Sprecher mannlich/hoch


Aus dem Gesamtergebnis (Abb. 5.5) geht hervor, da alle drei Algorithmen fur durch
Paketverlust gestorte Signale xL;41 (n) mit Paketverlustrate pL = 0; 2 eine Verbesserung
der Sprachqualitat um mindestend einen Skalenteil bewirken konnen (! Tab. 5.7).
Fur zwei aufeinanderfolgende fehlende Pakete [s = 2; xL;42 (n)] fallt auf, das MWSOLA sein Verbesserungsniveau halten kann (paralleler Verlauf mit der "Silence Substitution\-Kurve). PWR verschleiert relativ etwas schlechter und PATMAT ist schon deutlich
schlechter als bei der Verschleierung von einem fehlenden Paket.
Insgesamt ist MWSOLA der leistungsfahigste Algorithmus (fast zufriedenstellende Qualitat [M = 2; 83] bei 33; 33% Paketverlust mit jeweils zwei aufeinanderfolgenden Paketen),

KAPITEL 5. VERGLEICH DER ALGORITHMEN


M

56

mt
5

4.5

3.5

Original/WC
Silence

2.5

MWSOLA
PATMAT

PWR

1.5

1
0

0.05

0.1

0.15

0.2

0.25

0.3

mt
1.5

0.5

Worst Case
Original

0
0

0.05

0.1

0.15

0.2

0.25

0.3

pL

Abbildung 5.7: Qualitatsmittelwert M fur Sprecher mannlich/tief


dicht gefolgt von PWR. In guter U bereinstimmung mit [GWDP88], S. 346, Abb. 5 und
6, ist das PATMAT-Verfahren etwas weniger leistungsfahig als PWR.
Die Einzelergebnisse, der vier Testabschnitte zeigen ahnliche Relationen zwischen den
Algorithmen, aber doch recht unterschiedliche Verlaufe. Das zeigt die Abhangigkeit der
Testergebnisse vom verwendeten Sprachmaterial (Sprecher, Worte des Testsatzes).
Au allend ist hier auch, da fur MWSOLA und PWR in Abb. 5.7 M fur eine hohere Paketverlustrate leicht ansteigt, bzw. fur MWSOLA in Abb. 5.8 praktisch konstant bleibt.
Das hangt mit der relativ hohen Streuung der Bewertungen fur pL = 0; 2 [xL;41 (n)] in den
genannten Punkten zusammen, fur den ein Vergleich der Algorithmen deutlich schwieriger
ist, als fur pL = 0; 33 [xL;42 (n)].
Allgemein bewegten sich die Standardabweichungen  (Abb. 5.6 - 5.9) fur die verschleierten Beispiele im Intervall  2 [0; 52 ; 1; 17], was vergleichsweise niedrig ist ([Yon92]) und
somit die Zahl der Testpersonen als ausreichend erscheinen lat.
Weiterhin au allig sind, fur den Testsatz mit der niedrigsten Sprachgrundfrequenz "mt\

KAPITEL 5. VERGLEICH DER ALGORITHMEN


M

57

wh
5

4.5

3.5

2.5

Original/WC
Silence

MWSOLA
PATMAT

1.5

1
0

PWR

0.05

0.1

0.15

0.2

0.25

0.3

wh
1.5

0.5

Original / Worst Case


0
0

0.05

0.1

0.15

0.2

0.25

0.3

pL

Abbildung 5.8: Qualitatsmittelwert M fur Sprecherin weiblich/hoch


(Abb. 5.7), die hohen Mittelwerte fur das Extrembeispiel, sowie fur das unbehandelte
Signal xL;42 (n) ("Silence Substitution\). Fur sehr tiefe Sprachgrundfrequenzen fallt o ensichtlich eine Vergroerung der Lucke von ein auf zwei Pakete nicht so stark ins Gewicht.
Das Extrembeispiel liegt, wie bei den anderen Beispielen, ca. 0; 4 Skalenteile vom Wert fur
xL;42 (n) entfernt. Das macht deutlich, das Bewertungen nicht nur absolut nach der Skala
vorgenommen werden, sondern auch die Relation, insbesondere der Referenzsignale, eine
Rolle spielt.
Aus allen Abbildungen ergibt sich, wie oft bei subjektiven Tests bemerkt, da das Original
ofters nur mit 4 bewertet wird (Durchschnittswerte der Originalbewertungen M : mh, mt,
wh: 4; 77; wt: 4; 92).
Eine Analyse der Einzelkomponentenbewertungen zeigt deutliche Unterschiede zwischen
den Algorithmen auf (Abb. 5.10-5.13):
Fur das PWR-Verfahren erklart sich das relative Absinken des Gesamtresultats M dadurch, da bis zu 82% der Testpersonen ein Signal xL;42 (n) nach einer Verschleierung
als "blechern/metallisch\ empfunden haben. In allen Mepunkten hat PWR fur die-

KAPITEL 5. VERGLEICH DER ALGORITHMEN


M

58

wt
5

4.5

3.5

3
Original/WC
2.5

Silence
MWSOLA

PATMAT
PWR

1.5

1
0

0.05

0.1

0.15

0.2

0.25

0.3

wt
1.5

0.5

Worst Case
Original

0
0

0.05

0.1

0.15

0.2

0.25

0.3

pL

Abbildung 5.9: Qualitatsmittelwert M fur Sprecherin weiblich/tief


se Komponente den hochsten prozentualen Wert und liegt bis auf einen Wert sogar
uber dem Extrembeispiel6. Ein "blecherner\ Spracheindruck scheint also vor allem durch
das Fortsetzen der Sprachgrundperiode ohne Veranderung zu entstehen (! Abb. 5.14:
E',E',E',E'). Sprache braucht o ensichtlich einen sich standig, wenn auch nicht gravierend, andernden Spektralinhalt, um naturlich zu klingen.
Aus den Graphen der Komponente "ungleichmaig/unterbrochen\ erkennt man noch einmal die deutliche Verbesserung der Qualitat, die alle Algorithmen erreichen. Es zeigt
sich aber erneut, da die Erstellung eines Extrembeispieles ("Worst Case\) auerordentlich schwierig ist, und bei groeren Testreihen evtl. durch mehrere KomponentenExtrembeispiele ersetzt werden sollte.
Der PATMAT-Algorithmus fallt besonders in der Komponente "hallend\ bei der Verschleierung von zwei hintereinander fehlenden Paketen auf. Hiebei ist zu bedenken, da
diese Komponente nicht vorgegeben war und trotzdem bis zu 45% der Testpersonen sie
Hier ist anzumerken, da bei einem Extrembeispiel die vorhandenen einzelnen Artefakte unter
Umstanden nicht so storend empfunden werden, wie beim Auftreten nur einer storenden Komponente.
6

KAPITEL 5. VERGLEICH DER ALGORITHMEN


K

mh BLECHERN

mt BLECHERN
1

0.8

0.8

0.6

0.6

0.4

0.4

0.2

0.2

0
0

0.1

0.2

0.3

0
0

wh BLECHERN

0.2

0.3

0.3

wt BLECHERN

0.8

0.6

0.6

0.4

0.4

0
0

0.1

0.8

0.2

59

0.2
0.1

0.2

0.3

0
0

0.1

0.2

Abbildung 5.10: Komponentenbeurteilung "blechern/metallisch\


K

mh UNTERBROCHEN

mt UNTERBROCHEN
1

0.8

0.8

0.6

0.6

0.4

0.4

0.2

0.2

0
0

0.1

0.2

0.3

0
0

wh UNTERBROCHEN

0.8

0.6

0.6

0.4

0.4

0.2

0.2
0.1

0.2

0.3

0.2

0.3

0.3

0.8

0
0

0.1

wt UNTERBROCHEN

0
0

0.1

0.2

Abbildung 5.11: Komponentenbeurteilung "ungleichmaig/unterbrochen\


notierten. Die Wiederholung (zu) alter Sprachdaten fuhrt zu diesem E ekt (! Abb. 5.14:
B',C').
Die Komponente "lallend/gedehnt\ , die vor allem aufgrund von Horproben mit dem
MWSOLA-Algorithmus (insbesondere bei der Verschleierung von zwei aufeinanderfolgenden fehlenden Paketen) in den Test aufgenommem wurde, ist uberraschender Weise nur
von maximal 22% der Testpersonen gewahlt worden. Daraus und aus den anderen Komponentenbeurteilungen ergibt sich, da das MWSOLA-Zeitdehnungsverfahren in Bezug
auf typische Storkomponenten am unproblematischsten ist.

KAPITEL 5. VERGLEICH DER ALGORITHMEN


mh HALLEND

K0.5

K 0.5

0.4

0.4

0.3

0.3

0.2

0.2

0.1

0.1

0
0

0.1

0.2

0.3

wh HALLEND

K0.5

0
0

K 0.5

0.4

0.4

0.3

0.3

0.2

0.2

0.1

60
mt HALLEND

0.1

0.2

0.3

0.3

wt HALLEND

0.1

0
0

0.1

0.2

0.3

0
0

0.1

0.2

Abbildung 5.12: Komponentenbeurteilung "hallend\


K 0.25

mh GEDEHNT

K0.25

0.2

0.2

0.15

0.15

0.1

0.1

0.05

0.05

0
0

K 0.25

0.1

0.2

0.3

wh GEDEHNT

0
0

K0.25

0.2

0.2

0.15

0.15

0.1

0.1

0.05

0.05

0
0

0.1

0.2

0.3

0
0

mt GEDEHNT

0.1

0.2

0.3

0.3

wt GEDEHNT

0.1

0.2

Abbildung 5.13: Komponentenbeurteilung "lallend/gedehnt\


Aus Abb. 5.14 ist ersichtlich, da die Wiederholung alter Informationssegmente, bzw.
des zuletzt empfangenen Informationssegments bei MWSOLA durch die Veranderung
mehrerer Segmente (im Beispiel7: L',K',I',H',G',F') vermieden wird. Hierin liegt wohl der
entscheidende Vorteil, da nur "alte\ Information verwendet wird, aber keine neue,
unpassende Information ins Sprachsignal integriert wird. Der entstehende Fehler
wird praktisch auf alle zur Verschleierung verwendeten Pakete verteilt und nimmt mit
zunehmender Entfernung von der Lucke immer mehr ab.
7 Aus verschiedenen Gr
unden wird (! Kap. 6.2.3, S. 86) bei der Anwendung des MWSOLA-Verfahrens
das Sprachsignal \ruckwarts\ in die Lucke hinein gedehnt.

KAPITEL 5. VERGLEICH DER ALGORITHMEN


x

x(n)

(n)

L,42

0.5

0.5

0.4

0.4

0.3

0.3

0.2

0.2

0.1

0.1

0.1

0.1

0.2

0.2

0.3

0.3

0.4

200

400

600

800

1000

1200

1400

1600

1800

0.5
0

y(n)

F GH I K L

C D E

200

400

600

800

1000

1200

1400

1600

1800

1200

1400

1600

1800

0.5

C D E B C F

0.4

0.3

0.3

0.2

0.2

0.1

0.1

0.1

0.1

0.2

0.2

0.3

0.5
0

y(n)

0.5

0.4

0.4

0.5
0

0.4

61

C D E E E E F

0.3

PATMAT
200

400

0.4

600

800

1000

1200

1400

1600

1800

PWR

0.5
0

200

400

600

800

1000

y(n)
0.5

F G

0.4

K L

0.3
0.2
0.1
0
0.1
0.2
0.3
0.4

MWSOLA
..
("ruckwartsdehnen")

0.5
0

200

400

600

800

1000

1200

1400

1600

1800

Abbildung 5.14: Veranderung des Sprachsignals durch die drei Algorithmen

5.3 Zusammenfassung
In Tab. 5.8 sind die in den vorhergehenden Kapiteln erlauterten Eigenschaften der fehlerverschleiernden Algorithmen zusammengefat.
Der Implementierungsaufwand fur alle drei Verfahren ist gering, so da nur die erwunschte Qualitat und die zu Verfugung stehend Rechenleistung, bzw. die damit zu erzielende
Durchfuhrungszeit abzuwagen ist.
Der "Pattern Matching\-Algorithmus bietet im Vergleich zu den anderen Verfahren keine
speziellen Vorteile. Er liegt bei gleichem Rechenaufwand von der Qualitat her unterhalb

KAPITEL 5. VERGLEICH DER ALGORITHMEN

62

von PWR und erfordert die Zwischenspeicherung von mehr Paketen, die ja in einer etwas
geringeren Erfolgswahrscheinlichkeit P (Abb. 5.2, S. 40) resultiert.
Aus den folgenden Grunden wurde fur die Einbindung in das "Network Voice Terminal\
(NeVoT, ! Kap. 6) die MWSOLA- der PWR-Methode vorgezogen:

 Netzwerkmessungen ergaben, da zwei aufeinanderfolgende fehlende Pakete doch


hau ger auftreten als angenommen (! Abb. 6.14). Hier hat jedoch das PWRVerfahren durch die Storkomponente "blechern\ eine deutliche Schwache.

 trotz groerem Rechenaufwand ist der Algorithmus noch einsetzbar im Rahmen der
Sprachubertragungsechtzeitanforderungen (! Kap. 6.1.1)
 durch den hoheren Zwischenspeicherungsaufwand, wird die Erfolgswahrscheinlichkeit nur unwesentlich niedriger (! Abb. 5.2; Tab. 6.3).
Problematisch ist allerdings, da MWSOLA deutlich mehr Pakete verandert (! Tab. 5.8,
"zu verandernde Pakete\), sie also noch nicht in die Ausgabewarteschlange schieben kann
(fur PATMAT und PWR ist es nur notwendig Kopien der Pakete fur die Suche nach einem
geeigneten Signalsegment im Speicher zu halten). Dadurch erhoht sich die Gesamtverzogerung, bzw. die vorhandene Zeit zur Verschleierung wird geringer (! Kap. 6.2.3, Abb. 6.16)
Eine interessante Moglichkeit, die Vorteile von PWR und MWSOLA zu verbinden, ware
es, PWR zu Verschleierung eines fehlenden Paketes zu verwenden und nur wenn zwei
Pakete hintereinander fehlen, MWSOLA anzuwenden. Dem steht nur der hohere Implementierungsaufwand gegenuber.
Weiterhin ware es denkbar, wenn genugend Zeit zur Verschleierung zur Verfugung steht,
mit PWR zunachst die Sprachgrundperiode zu messen, und diese dann zu einer optimalen
Einstellunng der Segmentlange F von MWSOLA zu verwenden.

KAPITEL 5. VERGLEICH DER ALGORITHMEN

63

Subjektive Charakteristika

Eignung zu Verschleierung von


Algorithmus 1 Paket
2 Pakete
MWSOLA sehr guta
gut
PWR
sehr gut
zufriedenstellend
PATMAT
sehr gut
ausreichend

typische
Robustheit
Storkomponente
sehr gut b
gut c
"blechern/metallisch\
gut d
"hallend\

Objektive Charakteristika

Rechenaufwand
Algorithmus
MWSOLA
PWR
PATMAT

MUL
400%
100%
100%

ADD
200%
100%
100%

notwendige
zu verandernde EchtzeitZwischenspeicherung
Paketee
fahigkeit
1 Paket 2 Pakete 1 Paket 2 Pakete
3
4
4
5
ja
2
2
2
2
ja
3
4
2
2
ja

Tabelle 5.8: Eigenschaften der Fehlerverschleierungsverfahren


a

sehr gut: M > 3


gut: M > 2; 75
zufriedenstellend: M > 2; 5
ausreichend: M > 2; 25
b OverlapAdd
c Periodenfehlschatzungen moglich, aber durch internes Packet Merging\ nicht nachhaltig storend
d Integration von unpassenden Signalsegmenten moglich,"durch Amplitudenanpassung abgemildert
e vor und nach der Fehlstelle

Kapitel 6
Anwendung der Fehlerverschleierung
im Audiokonferenzprogramm NeVoT
6.1 Das "Network Voice Terminal\ (NeVoT)
Schon in den fruhen 70er Jahren wurden Experimente mit Sprachubertragung uber paketvermittelte Netze durchgefuhrt ([Coh80]). Mit der zunehmend besseren Audio-Hardware
in Workstations nahm das Interesse an Sprach-, bzw. Audioubertragung sehr zu. Das
fuhrte zu der Entwicklung einer Reihe von Audiokonferenzprogrammen (! Tab. 6.1), die
auch in Multimediakonferenzumgebungen integriert wurden.
Auerdem gibt es verteilte Audiosysteme wie AudioFile oder das NCD Network Audio
System ([FR94]), die das X-Windows Client-Server-Modell fur Audioanwendungen realiAudiokonferenzprogramm
Institution
Audio-Protokolle
Etherphone [RVZS91], [RS91]
Xerox PARC
Phoenix
vt (voice tool)
USC/ISI
NVP-II [Coh77]
vat [JM92]
LBL
NVP-II, vat
ivs (INRIA videoconferencing system)
INRIA
RTP
NeVoT (Network Voice Terminal)
GMD Fokus vat, RTP [Sch93a],[SCFJ94]

Tabelle 6.1: Audiokonferenzprogramme


64

KAPITEL 6. ANWENDUNG DER FEHLERVERSCHLEIERUNG

65

sieren. Audiokonferenzprogramme konnen hierbei die Rolle des "Audio-Servers\ ubernehmen.


Das am geeignetsten fur einen Test der Fehlerverschleierungsalgorithmen erscheinende
Programm, ist das von Dr. Henning Schulzrinne, GMD Fokus, entwickelte NeVoT (Network Voice Terminal). Das Programm setzt die Ansatze von vt und vat fort und ist sehr
mit dem Entwurf von RTP ("real-time transport protocol\) verbunden. Insbesondere die
volle Verfugbarkeit und gute Dokumentation des Source-Codes, sowie integrierte Statistikfunktionen machen es fur eine Integration von MWSOLA und Simulation / Messung
von Paketverlusten interessant.
NeVoT ist in C implementiert. Unter anderem fur die graphische Benutzerschnittstelle
wurden Tcl/Tk ([Ous95]), sowie die Erweiterungen TclX, BLT und Tcl-DP verwendet.

6.1.1 Einfuhrung
NeVoT ist ein Programm zur Durchfuhrung von Audiokonferenzen uber LANs1 und
WANs2 , insbesondere konzipiert fur das Internet. NeVoT wird auerdem zu folgenden
Aufgaben eingesetzt ([Sch92], [Sch93b]):

 Audiodatenquelle fur Netzwerkmessungen und -simulationen


 Messung der U bertragungsqualitat ("Quality of Service\ (QoS), [Tow93]), wie der
Anwender sie erfahrt ("end-to-end\ -Verzogerung, Paketverluste)

 Test von Verzogerungsanpassungsverfahren ("delay adaptation\), Synchronisierungsmechanismen ([Mon83]), Echtzeit-Protokollen (RTP/RTCP) und
Fehlerverschleierungs- und -rekonstruktionsmethoden

NeVoT ist als "audio media agent\ in ein Konferenzsystem (Abb. 6.1, [Sch94b]) eingebettet, welches z.B. auch durch Videokonferenzprogramme ("video media agent\) erganzt
werden kann. Die einzelnen Teilsysteme sind durch das Programm pmm ("pattern matching multicast\) verbunden. Dieser sogenannte "message replicator\ bewerkstelligt uber
1

Local Area Networks


Wide Area Networks

KAPITEL 6. ANWENDUNG DER FEHLERVERSCHLEIERUNG

66

(video media agent)


conference controller

icc

pmm

message replicator

NeVoT
(audio media agent)
audio system

buffer

ring buffer

audio system

codec
silence detection

delay adaptation
statistics

transmitter (tx)
Application

receiver (rx)

RTP/RTCP

vat
socket / network port

Transport

UDP

Network

IP

Data Link
Physical

(e.g. Ethernet)

Abbildung 6.1: (Audio-)Konferenzsystem


einen TCP3 -Port die Kommunikation zwischen den Teilsystemen, d.h. er nimmt Meldungen eines Teilsystems entgegen und schickt sie an alle anderen Teilsysteme.
Der "conference controller\ icc (Abb. 6.2) ist ein von NeVoT getrennter Proze, der es
erlaubt sich bei einer oder mehreren Konferenzen "anzumelden\. Im Moment kommuniziert icc nur mit NeVoT. Die Trennung wurde es aber erlauben icc auch fur andere "media
agents\ zu verwenden.
In NeVoT integriert ist das "real-time transport protocol\ (RTP, [Sch93a], [SCFJ94]),
das Echtzeitanwendungen unter Standard-("non real-time\)-Betriebssystemen wie UNIX
ermoglicht. Diese Protokoll wird erganzt durch RTCP ("RTP control protocol\). RTCP
uberwacht die Verteilung der Daten an die einzelnen Konferenzteilnehmer und ubermit3

Transmission Control Protocol [Ste94]

KAPITEL 6. ANWENDUNG DER FEHLERVERSCHLEIERUNG

67

Peakmeter
out in

Abbildung 6.2: Graphische Anwenderschnittstelle von NeVoT und icc


telt allgemeine Informationen uber die Konferenz (! Kap. 6.1.2).
Als Transportprotokoll wird das "User Datagram Protocol\ (UDP, [Ste94], S.143-167;
[LR93], S. 320f.) verwendet. UDP ist (wie das darunterliegende IP4), im UNIX-Kernel implementiert. Datenpakete werden von NeVoT zunachst mit einem RTP-Header (! Kap.
6.1.2) versehen und uber einen "socket\ 5 ([Ste90], S. 258-341), dem eine "port\-Nummer
zugeordnet wurde, weitergegeben.
UDP ist nicht verbindungsorientiert (im Gegensatz zu TCP). Die Daten werden in sogenannten Datagrammen verschickt. UDP ist ein "unzuverlassiges\ Protokoll ("unreliable\),
d.h. es wird nicht garantiert, da ein Datagramm jemals ankommt (es gibt keine "automatic repeat requests\ [ARQ]). Also mu ein Protokoll einer hoheren Schicht die Kontrolle
uber den Daten u ubernehmen.
RTP erfullt diese Anforderung mit seinen Sequenznummern ("sequence numbers\), mit
denen Paketverluste detektiert werden konnen. Bei den zu erfullenden Echtzeitanforde!
rungen (fur Sprache: Verzogerung  200 600 ms; [Fer90]; [GL83]; [Mal88], S. 9f.) macht
es keinen Sinn, wie bei (Nicht-Echtzeit-)Datenverkehr mit TCP (z.B. ftp), Pakete nochmals anzufordern, da sie mit hoher Wahrscheinlichkeit zu spat ankommen wurden.
Folglich greift man auf Fehlerverschleierungs- und -rekonstruktionsmechanismen zuruck,
wie sie in den bisherigen Kapiteln beschrieben wurden.
4
5

Internet Protocol
Schnittstelle zu UDP und anderen Protokollen (API: "application programmers interface\)

KAPITEL 6. ANWENDUNG DER FEHLERVERSCHLEIERUNG

68

6.1.2 RTP/RTCP
Eng verbunden mit NeVoT ist die Entwicklung des "real-time transport protocol\ (RTP),
das die U bermittlung von Echtzeitdaten (Audio, Video) ermoglicht. RTP und RTCP
berucksichtigen auch die U bertragungsqualitat ("Quality of Service\), erlauben aber keine Reservierung von Ressourcen ("resource reservation\) und damit keine garantierten
U bertragungsparameter.
Derzeitige Netzwerktechnologien, wie z.B. "Ethernet\ arbeiten auf einer "best e ort\ Basis, d.h. dem Benutzer wird eine so hohe U bertragungsrate zur Verfugung gestellt,
wie es gerade moglich ist. Die QoS-Parameter wie Durchsatz ("throughput\), Verzogerung und Paketverlust, sind damit von der aktuellen Netzwerkbelastung abhangig. Somit ist es unmoglich, z.B. generell einen storungsfreien Sprachverkehr zu garantieren
([BCG95],[Fer90]). Erst neue Netzwerktechnologien wie ATM6 ([Bra94]) erlauben in Verbindung mit geeigneten Protokollen wie IPng7 ([Hin94]) eine garantierte Verbindungsqualitat.
RTP und RTCP werden von der IETF (Internet Engineering Task Force) Audio Video
Transport Working Group spezi ziert ([Sch93a], [SCFJ94]).
Ein RTP-Paket enthalt (u.a.) die folgenden Informationen (! Abb. 6.3):
Bit 0

T=2 P X

CC

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

PT

sequence number
timestamp
synchronization source (SSRC) identifer
contribution source (CSRC) identifiers

Abbildung 6.3: Header eines RTP-Datenpakets

 16 bit sequence number(Wertebereich: 0-65535): Fur jedes gesendete Paket wird

6
7

die Sequenznummer um eins inkrementiert. Das erlaubt die Erkennung von Paketverlusten, sowie die Wiederherstellung der ursprunglichen Reihenfolge (es ist moglich
das spater abgesendete Pakete fruher als andere ankommen: "reordering\ ).

Asynchronous Transfer Mode


Internet Protocol / Next Generation

KAPITEL 6. ANWENDUNG DER FEHLERVERSCHLEIERUNG

69

 32 bit timestamp: Abtastzeitpunkt des ersten Abtastwertes im Paket. Der Zeitstempel wird bei jedem Abtasten um eins erhoht.

 32 bit SSRC identi er: zufallig gewahlter Wert zur Unterscheidung der Synchronisierungsquellen (SSRC8 ). SSRC entspricht nicht der Internet-Adresse (mehrere SSRC
konnen unter einer Adresse erreichbar sein)

 (max. 15) 32 bit CSRC identi er: Unterscheidung der Quellen, die zum Inhalt der
Pakete beigetragen haben (\Contributing Source\)9

 PT (payload type): Audio-/Video-Codierungstyp des Paketinhaltes


RTCP-Pakete werden in bestimmten Zeitintervallen von allen Konferenzteilnehmern abgeschickt. Drei Arten von RTCP-Paketen werden unterschieden:
1. Sender Report (SR)
Ein "Sender Report\ enthalt zunachst den SSRC-Wert. Neben einem RTP-(Abtast)Zeitstempel ("sample time\), ist noch eine NTP10 -Zeitinformation enthalten (Systemzeit, "wallclock time\). Die NTP-Zeitangabe ermoglicht, da ein Bezug zu von
den Empfangern erhaltenen Zeitangaben [! 2. RR e), f)] moglich ist, die Verzogerung, die die Pakete erfahren ("round-trip delay\) zu messen.
Weiterhin wird die Gesamtzahl der bisher gesendeten Pakete, bzw. Bytes ubermittelt. Die restlichen Informationen sind dieselben, wie beim nun vorzustellenden
"Receiver Report\.
2. Receiver Report (RR)
In einem RTCP-RR-Paket sind dieselben Informationen fur alle n Synchronisierungsquellen (SSRC), von denen Pakete empfangen werden, enthalten. Es sind dies:
a) SSRC-Wert
b) Gesamtzahl der erhaltenen Pakete
synchronization source; z.B. Mikrophone, Mixer
Mehrere CSRC-Audioquellen werden gemischt, um einen SSRC-Audiostrom zu erzeugen.
10 Anzahl der Sekunden seit dem 1.1.1900
8

KAPITEL 6. ANWENDUNG DER FEHLERVERSCHLEIERUNG

70

c) Gesamtzahl der erwarteten Pakete (Berechnung aus der hochsten aktuellen


Sequenznummer, der ersten erhaltenen Sequenznummer und der Anzahl der
Sequenznummer-"wrap-around\s11)
d) "Interarrival Jitter\: Varianz der Paketankunftszeit, gemessen in "sample time\
e) NTP-Zeitangabe des letzten von dieser SSRC erhaltenen RTCP-SR-Paketes
f) vergangene Zeit seit Eintre ens des letzten RTCP-SR-Paketes
3. Source Description (SDES)
RTCP-Quellenbeschreibungspakete dienen dazu, Informationen uber die beteiligten
Konferenzteilnehmer auszutauschen, wie z.B. Anwender- und Netzwerkbereichsname, e-mail-Adresse, usw. .

6.1.3 Programmstruktur
NeVoT ubermittelt Audiodaten von der Audioquelle (Mikrophon und/oder Audiodatei)
an die Netzwerkschnittstelle ("socket\) und umgekehrt von der Netzwerkschnittstelle zur
Audioausgabe (Lautsprecher / Kopfhorer) (! Abb. 6.4). Das geschieht synchronisiert,
d.h. jedesmal wenn der A/D-Konverter einen Block von Abtastwerten liefert, wird eine
entsprechende Anzahl von Abtastwerten vom Ausgabe(ring)pu er zur Ausgabeeinheit
ubertragen. Das heit, da der zeitliche Ablauf unabhangig von der Systemzeit, nur von
der Genauigkeit der Abtastung ("sample clock\) abhangt ([Sch94a], auch beim Abspielen
von Audiodateien wird also der A/D-Wandler benotigt).

Zur Ubertragung
wird ein (20 ms-)Audioblock von der Eingabeeinheit (z.B. /dev/audio bei
SunOS/Solaris) in einen Pu er ("mbuf\ 12) geschrieben. Die Energie des Blocks wird berechnet und entschieden ob Sprache oder Stille vorliegt ("silence detection\). Dadurch wird
das Netzwerk nicht mit der U bertragung von unnotigen Daten (Hintergrundrauschen) belastet. Allerdings spricht der "silence detector\ nur zwischen langeren Sprachsegmenten
("talkspurts\, ! Kap. 2.1) an, um Storungen zu vermeiden. Nach einem "talkspurt\ wird,

sequence number wrap-around: Zurucksetzen der Sequenznummer nach seq = 65535 auf seq = 0
"mbuf\: Datenstruktur verketteter Pu er, die bei Programmstart als "bu er-pool\ initialisiert wird.
Es mu also bei einer Pu erbelegung wahrend des Programmablaufs nicht erst Speicher angefordert
werden. Fur Header (Audiodeskriptor) und Audiodaten wird zusammen Speicher belegt (! geringer
"malloc\-Overhead).
11

12

KAPITEL 6. ANWENDUNG DER FEHLERVERSCHLEIERUNG


A

71
D

/dev/audio
s=0

s=960

audio descriptor

ring_mix.c

mbuf

tx.c

RTP

delay
adaptation

rx.c

silence detection

rtp.c (vat.c)

sync

RTP

udp.c
socket

UDP RTP
IP

UDP RTP

UDP RTP

IP
Ethernet
Header

IP

UDP RTP

UDP RTP
Ethernet
Trailer

Abbildung 6.4: U bertragung von Audiodaten mit NeVoT


wie in Kap. 2.1 erwahnt, noch eine Reihe von Paketen geringer Energie ubertragen ("hangover\).
Die Audiodaten konnen, wenn notig, entsprechend umcodiert werden. Fur Fehlerverschleierung wurde nur PCM-8bit -law (G.711) verwendet. Eine Abtastratenumsetzung
ist noch nicht implementiert. Die Routine rtp.c versieht den Audioblock mit einem RTPHeader (! Kap. 6.1.2) und udp.c ubergibt das so entstandene RTP-Paket dem Netzwerk.
Beim Empfang von Audiodaten liest udp.c zunachst ein Paket ein. In rtp.c werden dann
die Informationen aus dem RTP-Header extrahiert und in die entsprechenden Datenstrukturen von NeVoT geschrieben. Mit Hilfer der Synchronisierungsinformation ("sync\) des
zuvor angekommenen Paketes werden dann duplizierte, zu spat ("late\) oder auer der
Reihenfolge ("reordered\) angekommene Pakete erkannt (vgl, Tab. 6.2, S. 80).

KAPITEL 6. ANWENDUNG DER FEHLERVERSCHLEIERUNG

72

Wenn ein Paket zu spat ankommt, aber die hochste aktuelle Sequenznummer tragt, wird
es als Beginn eines neuen "talkspurts\ aufgefat und die Verzogerung entsprechend angepat ("fall back\ ).
Durch die U bertragung mittels des Netzwerkes konnen die Pakete Verzogerungen verschiedener Dauer erfahren (! Kap. 2.2). Das Programm rx.c hat die Aufgabe eine zeitgerechte
Ausgabe zu ermoglichen. Dazu ist eine Verzogerungsanpassung ("delay adaptation\, Abb.
6.5(nach [Sch94a]), s. auch [Mon83]) integriert.
talkspurt i

talkspurt i+1

20 ms
j

Zeitstempel
1

x=5

tsi,j

(tx.c)

Ankunftszeitpunkt
t i,j

(rx.c)

d i,0 = t i,0 - tsi,0

Ausgabezeitpunkt
p i,j

s i,0 = p i,0 - ti,0


Di

(ring_mix.c)

Paketverlust
..
(zu spat angekommenes
Paket)

20 ms

Di

Di+1

Abbildung 6.5: Ausgabesynchronisation


Zu Anfang des Sprachsegmente ("talkspurt\) i +1 wird die aktuelle Verzogerung basierend
auf der Verzogerung und der Verzogerungsabweichung des letzten "talkspurts\ i (mit x
Paketen) festgelegt (vgl. Kap. 2.2: variable und feste Verzogerung):

Di+1 =  vi;j=x + Dest;i+1

(6.1)

Dabei gilt fur die fur jedes Paket fortlaufend berechnete Abweichung vi;j :

vi;j = (1 )jsi;j si;j j + vi;j


mit
si;j = pi;j ti;j
(pi;j = tsi;j + Di)
si;j = (1 )si;j 1 + si;j 1

si;j : Di erenz zwischen Eintre und Ausgabezeitpunkt ("slack\)

KAPITEL 6. ANWENDUNG DER FEHLERVERSCHLEIERUNG

(Startwerte:

= 0; 9
 = 34
s0;0 = 400 Abtastwerte;

73


v0;0 = d0;0 )

Als Schatzung der Verzogerung im "talkspurt\ (i + 1) wird das Minimum der realen
Verzogerung di;j der Pakete des letzten "talkspurts\ verwendet:

Dest;i+1 = minj (di;j )


mit di;j = ti;j tsi;j
Ziel der Verzogerungsanpassung ist es, auf Veranderungen in der U bertragungszeit zu reagieren, damit moglichst keine Pakete als "verspatet\ unterdruckt werden mussen. Wichtig
ist dabei die Verzogerung nicht unnotig zu verlangern, nicht auf einzelne Pakete mit sehr
kurzer, bzw. langer U bertragungszeit zu reagieren (Faktor ) und standig wechselnde
U bertragungszeiten zu berucksichtigen (Faktor ). Zu beachten ist, da die Verzogerung
wahrend eines "talkspurts\ konstant bleiben mu (Ausgabezeitpunkt: pi;j = tsi;j + Di).
Neben der Berechnung der Position pi;j an der die Daten in den Ausgabepu er geschrieben werden, ist auch die verwendete Datenstruktur fur den Ausgabepu er interessant.
Es wird ein Ringpu er fur alle Teilnehmer ("members\) aller laufenden Konferenzen ("sessions\) verwendet (! Abb. 6.4), in den kontinuierlich geschrieben, bzw. aus dem kontinuierlich gelesen wird. Das hat den Vorteil, da Daten aus Paketen mit unterschiedlichen
Langen in den Pu er geschrieben werden konnen und somit auch die Verzogerung in Abtastintervallen, nicht in Paketlangen, eingestellt werden kann.
Nachteilig ist, da alle Daten in den Pu er gemischt werden mussen, was fur die zu
integrierende Fehlerverschleierung problematisch sein kann, da schon empfangene Daten
spater (bei Auftreten von Paketverlusten) verandert werden mussen (! Kap. 6.2.3, S. 83).
NeVoT bietet schon einige Statistikfunktionen, die Informationen aus den RTCP-Paketen,
bzw. den RTP-Headern verarbeiten. Die Statistikinformation, die fur jeden Konferenzteilnehmer abgerufen werden kann, ist in Abb. 6.613 abgebildet. Das Intervall zwischen den
13

"Marked packets\ sind die Pakete, die als Beginn eines "talkspurts\ angesehen werden.

KAPITEL 6. ANWENDUNG DER FEHLERVERSCHLEIERUNG

74

Statistikberechnungen ist einstellbar. Es werden sowohl die Daten fur das aktuelle Intervall, als auch fur die gesamte Verbindungsdauer angegeben.
Weiterhin anzumerken ist die Moglichkeit wichtige Programmparameter uber die graphische Benutzerober ache einzustellen (neben "silence detection\ und "delay adaptation\
sind dies die "automatic gain control\ und die Ein-/Ausgabe-Peakmeter). Hinzu kommt
noch die Moglichkeit Logdateien mit allen "Ereignissen\ schreiben zu lassen, so da die
jeweiligen Zustande von NeVoT sich gut nachvollziehen lassen.

Abbildung 6.6: NeVoT-Statistikinformation

KAPITEL 6. ANWENDUNG DER FEHLERVERSCHLEIERUNG

75

6.2 Die modi zierte NeVoT-Version


Um einen Test der (in NeVoT integrierten ! Kap. 6.2.3) MWSOLA-Fehlerverschleierung
auch innerhalb eines LANs mit sehr geringer Paketverlustwahrscheinlichkeit zu ermoglichen, bzw. um durch verschiedene Netzwerkbelastungen entstandene Paketverluste zu
simulieren, wurde eine deterministische, bzw. statistische Unterdruckung von Paketen in
NeVoT integriert (discard.c, ! Kap. 6.2.1; Abb. 6.7).
Zur Messung des momentanen Paketverlustes, bzw. von anderen Storungen des Netzwerks (z.B. "reordering\), existiert lost.c. Die Mewerte werden in Dateien ("seqlog\)
festgehalten und z.B. mit matlab oder PERL ausgewertet (! Kap. 6.2.2).
Das Kernprogramm der Fehlerverschleierung ist recover.c. Dieses Programm detektiert
ebenso wie lost.c Paketverluste und schreibt ein Log le ("reclog\), berucksichtigt aber
den aktuellen Zustand von NeVoT (verbleibende Zeit bis zur Ausgabe "slack\, etc. !
Abb. 6.5), bzw. eine erfolgte Fehlerverschleierung.
recover.c ruft launch algo.c auf, welches erforderliche Konvertierungen durchfuhrt. Getrennt davon ist rec mwsola.c implementiert. Dadurch ist eine schnelle Einbindung von
anderen fehlerverschleiernden Algorithmen gewahrleistet (! Kap. 6.2.3).
Nach erfolgter Verschleierung werden die geanderten Audiodaten entsprechend behandelt
und wieder an rx.c ubergeben. Dann erfolgt, wie ublich ein Mischen in den Ringpu er
(ring mix.c).
Alle beteiligten Unterprogramme von NeVot mod schreiben Informationen z.B uber den
aktuellen Status der Fehlerverschleierung in das Standard-NeVoT-Log le (s. S. 74).

6.2.1 Simulation von Paketverlusten


Zwei Arten der Unterdruckung von Paketen sind implementiert:
a) deterministische Unterdruckung
b) statistische Unterdruckung
Bei a) ist es moglich (vgl. Kap. 5.2.2.1) jeweils nach p Paketen s Pakete hintereinander zu
unterdrucken. Somit kann fur p  nv eine vollstandige Verschleierung der Signale durchgefuhrt werden14 .
14

nv : Anzahl der zur Verschleierung notwendigen Pakete

KAPITEL 6. ANWENDUNG DER FEHLERVERSCHLEIERUNG

76

rec_mwsola.c
..
Empfanger

Sender

launch_algo.c
ring_mix.c
1 2 3 4 5

tx.c

recover.c

rx.c
1

rtp.c

rtp.c

Seq

3 4 5

uenz

num

mer

lost.c

udp.c
(Kommunikation mit
Netzwerk-Socket)

udp.c
seqlog

reclog

discard.c
..
(Unterdruckung von
socket

Paketen)

Abbildung 6.7: Schematische Darstellung von NeVoT mod


Auerdem wurde ein einfaches Modell implementiert, da zufallig auftretende Paketverluste, wie sie in einem (uberlasteten) Netzwerk real auftreten, nachbildet [b)]. Allerdings
konnen generell Modellierungen groer inhomogener Netzwerke (Internet: Millionen von
Hosts sind uber Verbindungen unterschiedlichster Qualitat verkoppelt) nur relativ ungenaue Vorhersagen uber die realen Verhaltnisse machen.
In der Literatur wird typischerweise nur der reine Sprachverkehr uber paketvermittelte Netze betrachtet ([DL86], [Li89], Abb. 6.8 a). Wichtig ist aber die Wechselwirkung
zwischen (von der benotigten U bertragungsrate eher kontinuierlichem) Echtzeitverkehr
und "normalem\ Datenverkehr (der kurzzeitig eine hohe U bertragungsrate benotigt15).
In [Sch93b] und [BCG95] (! Abb. 6.8 b) ist diese Problematik analysiert worden.
Beide Ansatze resultieren in Warteschlangenmodellen (s. z.B. [Lan92], Kap. 7; [JM88]),
die durch Markov-Zustanddiagramme beschrieben werden konnen ([Tan89], Anhang A,
S. 634).
A hnlich wie in [CHR94] (Gilbert-Modell) wird in dieser Arbeit eine direkte Modellierung
von Netzwerkzustanden verwendet. Die Markovkette hierfur ist in Abb. 6.9 abgebildet.
Diese Modell stellt eine starke Vereinfachung der realen Gegebenheiten dar. Eine sinnvolle Anwendung ist, aus den Messungen ("seqlog\-Dateien, ! Kap. 6.2.2) Parametersatze
15

"bursty trac\

KAPITEL 6. ANWENDUNG DER FEHLERVERSCHLEIERUNG

77

voice source 1
voice source 2
queue

server

voice source n

a) Modellierung reinen Sprachverkehrs


(Voice Multiplexer) [DL86]

voice source

delay

queue

server

Internet
traffic

b) Modellierung gemischten Sprach-/


Datenverkehrs, [BCG95]

Abbildung 6.8: Modellierung von paketvermittelten Netzen


Netzzustand (0) "up"

..Netzzustand (1) "down"


"Uberflutung" [Congestion] mit
Paketverlustwahrscheinlichkeit
p
>> p

"normaler" Betrieb mit


Paketverlustwahrscheinlichkeit
p
L,up

L,down

L,up

p (1)
0

p (0)

(0)

(1)

p (1)
1

L,up

L,down

p (0)
1

Abbildung 6.9: Einfaches Netzwerkzustandsmodell (Gilbert-Modell)

KAPITEL 6. ANWENDUNG DER FEHLERVERSCHLEIERUNG

78

(U bergangswahrscheinlichkeiten der Zustande p ( )(;  = 0; 1), Paketverlustwahrscheinlichkeiten pL;up und pL;down) zu gewinnen und damit eine Simulation von Paketverlusten
durchzufuhren. Damit ist es moglich, ohne groeren Aufwand die in den folgenden Kapiteln vorzustellenden Zusatzfunktionen, die NeVoT mod bietet, zu testen.

6.2.2 Zusatzliche Statistikfunktionen


Aus den RTCP-SR/RR-Paketen (! Kap. 6.1.2) lat sich mit der Gesamtzahl der erhaltenen, bzw. erwarteten Pakete die Paketverlustrate berechnen. Diese Funktion ist bereits in
NeVoT enthalten (! Abb. 6.6, Abb. 6.1016). Allerdings kann so nur die durchschnittliche
Paketverlustquote pL fur ein Zeitintervall zwischen den Eintre en zweier RTCP-SR/RRPakete berechnet werden.
Hinzu kommt das RTCP-Pakete naturlich gleichermaen von Paketverlust betro en werden und so mitunter langere Zeit keine Informationen uber den Paketverlustrate vorliegen17 .
10

_
p

30

20

10

(%)

lost

500

1000

Delay (sec)

Percentage

40

1500

t/s
Seconds

Abbildung 6.10: Durchschnittliche Paketverlustrate pL fur Messung 20.4.


Um eine Fehlerverschleierung einleiten zu konnen, mu nach Eintre en jedes RTP-Paketes
eventueller Paketverlust uberpruft werden. Dazu wurde das Programm lost.c in NeVoT
integriert.
lost.c speichert die a letzten Sequenznummern fur alle m Teilnehmer ("member\) einer
Konferenz ("session\). Die Sequenznummer seqi; i = 1(1)m eines neu angekommenen
16 Messung nt ! lati. Dargestellt ist der Verlauf f
ur die ersten 2000s der Messung, s. S. 79
17 Abb. 6.10: Im Zeitintervall t 2 [750s; 950s] sind o ensichtlich keine RTCP-Pakete angekommen

KAPITEL 6. ANWENDUNG DER FEHLERVERSCHLEIERUNG

79

Paketes wird in die Sequenznummerliste i einsortiert. Daraus konnen dann Informationen,


die zur Einleitung einer Fehlerverschleierung, bzw. einem Eintrag in die seqlogi- / reclogiDatei fuhren (! Abb. 6.11) gewonnen werden.
(p): wrap-around, 2 Pakete fehlend

(p+1): neues Paket trifft ein

Liste i:

65529

65530

65533

65534

65533

65534

65535

seq i = 65535

Zeitpunkt (p)
Liste i:

65530

Zeitpunkt (p+1)

(p+1): 2 Pakete verloren ("lost")

seqlog

reclog

"long term"

(p+1): 1 Paket fehlend ("missing")

Fehlerverschleierung
(recover.c)

Reihenfolgefehler
"reordering"

seqlog

reclog

"short term"

Abbildung 6.11: Analyse der Sequenznummern


In Tabelle 6.2 sind die Ereignisse, die erkannt werden konnen, aufgefuhrt. Die Lange a der
Listen sollte nicht zu gro gewahlt werden, da das den Speicheraufwand, bzw. die Rechenzeit nur erhoht, aber Pakete auerhalb der Reihenfolge ab einem bestimmten Zeitpunkt18
sowieso in die Kategorie "Paketverlust (Ausgabezeitpunkt voruber)\ fallen. Vor allem aber
darf a nicht zu klein gewahlt werden, da es durchaus hau g vorkommt (! Abb. 6.13),
da ganze Blocke von Paketen sich auer der Reihenfolge be nden, bzw. ein Paket sehr
schnell zum Ziel gelangt ist (bei einer Listenlange von a konnen also "reordering\-Blocke
bis zu einer Lange von a 2 detektiert werden).
Freundlicherweise wurde vom "Laboratoire d'Analyse et de Traitement des Images\ (Prof.
D.Barba), Universitat Nantes / Frankreich, der Zugri auf einen dort be ndlichen Server gestattet, so da NeVoT, bzw. NeVoT mod unter realen Bedingungen getestet werden konnten. Fur diese Verbindung, die sich auch schon bei ersten Messungen mit dem
18

Dieser Zeitpunkt wird durch die aktuelle Verzogerung bestimmt.

KAPITEL 6. ANWENDUNG DER FEHLERVERSCHLEIERUNG


"long term\
Paketverlust
(Paket unterdruckt)
Listenlange
uberschrittena

80

"short term\
fehlende Pakete
Paketverlust (Ausgabezeitpunkt voruber)
Duplikat
Reihenfolgefehler
("reordering\)

Tabelle 6.2: Ereignisse der NeVoT mod-Statistikfunktion


a Wird das neu angekommene Paket an Platz 1 der Liste einsortiert, ist keine Aussage

moglich, da das Paket evtl. schon als "verloren\ deklariert wurde.

SunOS "spray\-Programm19 als relativ anfallig fur Paketverluste erwies, wurden einige
Messungen durchgefuhrt. Die typische Route zwischen der "nt\-Domain des Lehrstuhls
fur Nachrichtentechnik und dem Server "lati\ ist in Abb. A.4, S. 98, aufgelistet.
Eine U bersicht uber die Ergebnisse von vier Messungen ist in Tab. 6.3 angegeben. Bei
allen Messungen traten duplizierte Pakete praktisch nicht auf. Aus der Tabelle ist ersichtlich, da auch (wie in Kap. 2.2 erwahnt) der Paketverlust aufgrund zu spat angekommener
Pakete praktisch vernachlassigbar ist.
Aus den Messungen geht hervor, da typischerweise die Paketverlustwahrscheinlichkeit
fur Zeiten hoher Netzbelastung (Mo - Fr (vor-)mittag, Messung 27.4., 10.5.) fur diese Verbindung 20 30% betragt (vgl. [BCG95], 2.). Die "end-to-end\-Verzogerung ist ca. 2s, so
da eine echte "full duplex\-Audiokonferenz praktisch nicht moglich ist.
Die starke Abhangigkeit des Paketverlustes von der Netzbelastung geht aus dem Resultat fur eine Messung an einem Samstag vormittag (3.6.) hervor. Hier gehen nur ca.
4% der Pakete verloren, was zusammen mit einer Verzogerung von ca. 0; 4 s und einer Fehlerverschleierungserfolgsquote20 von 65% eine Audiokonferenz machbar erscheinen
lat.
"spray\ sendet eine Anzahl von Paketen bestimmter Lange in wahlbaren zeitlichen Abstanden zu einem Host. Der Host zahlt die empfangenen Pakete und gibt dann die Anzahl per RPC ("remote procedure
call\) zuruck.
20 F
ur MWSOLA unter Berucksichtigung der Sprachbereichsubergangswahrscheinlichkeit pt;s (s) (Kap.
5.1.1, Gl. 5.1)
19

KAPITEL 6. ANWENDUNG DER FEHLERVERSCHLEIERUNG

81

Messung
Do 20.4. Do 27.4. Mi 10.5. Sa 3.6.
Dauer
11.45-12.40 8.40-11.40 11.30-12.30 11.20-13.30
Paketverlustrate (%)
41,78
21,62
28,26
4,18
(unterdruckte Pakete)
Paketverlustrate (%) (zu
0,0083
0,0003
0,11
0,003
spat angekommene Pakete)
durchschnittl. Anzahl der
hintereinander verlorenen
4,80
2,33
2,87
1,88
Pakete
Reihenfolgefehler (%)
0,55
2,33
2,87
1,88
Erfolgsquote der Fehlerverschleierung P
ohne pt;s(s) (%) MWSOLA/PATMAT
56
66
66
75
PWR
66
80
79
85
mit pt;s(s) (%) MWSOLA/PATMAT
49
58
58
65
PWR
58
70
69
74

Tabelle 6.3: Ergebnisse der Netzwerkmessungen zwischen nt und lati


Zur hohen Paketverlustrate der Messung vom 20.4. (Abb. 6.12) ist zu bemerken, da hier
z.B. im Bereich der Sequenznummer21 1; 13  105 die Verbindung fur ca. 50 s vollig zusammengebrochen ist (wie auch in Abb. 6.10 dokumentiert wird), so da 2500 Pakete hintereinander fehlen. Die Hauptursache fur die fast 42% verlorenen Pakete ist dann ab Sequenznummer 1; 8  105 ein starker Anstieg der durchschnittlichen Anzahl der hintereinander
verlorenen Pakete. Beide Aspekte resultieren in dem sehr hohen Gesamtdurchschnittswert
von 4; 8 verlorenen Paketen pro "Verlustereignis\. In Abb. 6.13 ist die Anzahl r der nach
der Sequenznummer seq blockweise auerhalb der Reihenfolge angekommenen Pakete dargestellt. Hervorzuheben ist dabei das gehaufte Auftreten von "reordering\-Blocken
zwischen seq = 1; 0  105 und seq = 1; 1  105, das moglicherweise in Zusammenhang mit
dem kurz darauf erfolgten Zusammenbruch der Verbindung steht. Fur einen Vergleich der
gemessenen Erfolgsquote P mit der theoretischen Erfolgswahrscheinlichkeit einer Fehlerverschleierung (Kap. 5.1.1), bei der eine statistische Unabhangigkeit aufeinander folgender
21

Ohne "wrap-around\

KAPITEL 6. ANWENDUNG DER FEHLERVERSCHLEIERUNG


s

82

150

2500

100

50

0
0.6

0.8

1.2

1.4

1.6

1.8

2.2

2.4
5

Abbildung 6.12: Anzahl der aufeinanderfolgenden Paketverluste s


in Abhangigkeit der Sequenznummer seq
r

seq

x 10

messung_20_4log
30

25

20

15

10

0
0.6

0.8

1.2

1.4

1.6

1.8

2.2

2.4
5

seq

x 10

Abbildung 6.13: Lange r eines Blockes von Paketen auerhalb der Reihenfolge

Paketverluste angenommen wurde [d.h. p~L;s = pLs;22 vgl. Gl. (5.2)], sieht man in Abb. 6.14
die gemessenen Werte (20.4.) fur die Wahrscheinlichkeit, da genau s Pakete [pL;s(s)],
1
X
bzw. mindestens s Pakete [~pL;s(s) = pL;x(x)] hintereinander verloren gehen.
x=s
Es zeigt sich, da der gemessene Wert mit zunehmender Sequenzlange s wesentlich hoher
ist, als der theoretisch ermittelte. Das bedeutet also, da es nach einer Sequenz von schon
verlorenen Paketen deutlich wahrscheinlicher ist noch ein Paket zu verlieren, als nach der
Ankunft eines Paketes. Da jedoch in Kap. 5.1.1 nur der fur eine Fehlerverschleierung interessante Fall mit 0  s  nL = 2 betrachtet wurde, zeigen die gemessenen Werte von P
22

Wahrscheinlichkeit, da mindestens s Pakete hintereinander verloren gehen.

KAPITEL 6. ANWENDUNG DER FEHLERVERSCHLEIERUNG

83

(! Tab. 6.3) eine relativ gute U bereinstimmung mit den theoretisch ermittelten Daten
(Abb. 5.2, S. 40).
messung_20_4log

10

~
p (s) (gemessen)
L,s

10

~
s
pL,s(s) = p
L

10

p (s) (gemessen)
L,s
3

10

10

15

20

25

30

35

40

Abbildung 6.14: Wahrscheinlichkeiten fur das Auftreten einer Fehlsequenz der Lange s
Messung 20.4.
Bild 6.15 zeigt die gemessenen Wahrscheinlichkeiten p~L;s(s) fur alle vier angesprochenen
Messungen. Bis auf die schon diskutierte Messung vom 20.4., ist charakteristisch, da
p~L;s(s) im Intervall 0 < s < 5 stark abfallt und dann nur sehr langsam weiter sinkt. Bei
geringer Netzbelastung (3.6.) treten allerdings Fehlsequenzen ab s  30 schon sehr selten
auf.

6.2.3 Fehlerverschleierung
Der MWSOLA-Algorithmus hat in Bezug auf die erzielbare Qualitat den Vorteil, da
die entstandenen Lucken im Sprachsignal unter Veranderung aller zur Verschleierung
verwendeten Daten (! Tab. 5.8, "zu verandernde Pakete\) durch Zeitdehnung gefullt
werden konnen und somit keine unpassenden Daten in das Signal integriert werden (s.
S. 60). Da NeVoT die Moglichkeit bietet mehrere Signale evtl. sogar von verschiedenen

KAPITEL 6. ANWENDUNG DER FEHLERVERSCHLEIERUNG

84

~
p (s) (gemessen)
L,s

10

10

10

20/4
27/4
10/5
3/6

10

10

10

20

30

40

50

60

70

80

90

100

Abbildung 6.15: Wahrscheinlichkeiten fur das Auftreten einer Fehlsequenz von


mindestens s Paketen
Konferenzen zu empfangen und auch noch lokal Audio-Dateien abgespielt werden konnen,
ist es notig, diese Daten in den Ringpu er zu mischen. Das wiederum bedeutet, das schon
in den Pu er geschriebene Daten nicht mehr verandert werden konnen. Verschleiert man
nun in der ublichen Weise ("vorwarts\ ! Abb. 6.16) mit Hilfe vor der Lucke be ndlichen
Daten, so bedeutet dies eine zusatzliche Verzogerung durch die Zwischenspeicherung von
vier Paketen, da man ja jederzeit mit einem Fehlen von zwei aufeinanderfolgenden Paketen
rechnen mu. Nur ein Paket mu zwischengespeichert werden (wegen des Paketes, das zum
" tting\ benutzt wird) und damit tritt eine wesentlich geringere Verzogerung auf, wenn
nachfolgende Sprache "ruckwarts\ gedehnt wird.
In Abbildung 6.17 sind die beiden Moglichkeiten anhand eines Beispiels (Paket Nr. 6 fehlt
in der Sequenz) gegenubergestellt. "Takt\ entspricht dabei einem Aufruf von rx.c, bzw. recover.c, sobald ein Paket eintri t. Daraus ersieht man das beim "Vorwartsdehnen\, neben
der schon erwahnten (im Ausgabepu er auftretenden) Verzogerung, naturlich ein hoherer
Zwischenspeicherungsaufwand vorliegt, der beim "Ruckwartsdehnen\ nur auftritt, wenn
wirklich verschleiert werden mu.
Ein weiterer Vorteil ist, da nach Auftreten einer Fehlstelle die zusatzliche Verzogerung

KAPITEL 6. ANWENDUNG DER FEHLERVERSCHLEIERUNG

85

x(n)
..

Eingangssignal fur den MWSOLA-Algorithmus

..
"vorwartsdehnen"

x(n)
..

Eingangssignal fur den MWSOLA-Algorithmus

10

..
..
"ruckwartsdehnen"

Abbildung 6.16: Schlieen einer Signallucke durch Zeitdehnung


entsteht. Somit konnen auer der Reihenfolge eintre ende Pakete noch mit in das Signal eingebaut werden (bei "Vorwarts\verschleierung wurden sie unterdruckt, da die Verschleierung ja schon stattgefunden hat). Im Bild 6.11 ist das fur das eintre ende Paket
(Sequenznummer 65535) der Fall.
Die Abbildung 6.19, S. 88, zeigt in Fortsetzung des Bildes 6.7 die Struktur der Routine recover.c, die wenn die Voraussetzungen gegeben sind, eine Fehlerverschleierung
(launch algo.c, rec mwsola.c) auslost.
Das Programm launch algo.c konvertiert die Codierung (PCM 8 bit -law ! 16 bit linear) und das Datenformat ("short\ ! "double\) und dreht die Reihenfolge der Daten
um, so da der in Kap. 4.2 beschriebene angepate MWSOLA-Algorithmus praktisch
unverandert als rec mwsola.c implementiert werden kann. Die Ausfuhrungszeit des Algorithmus wird gemessen.
Es wurde Wert darauf gelegt, die Ausfuhrungszeit (die betriebssystemabhangig relativ
stark schwankt) moglichst gering zu halten, um ein schlieliches Unterdrucken von bereits verschleierten Paketen zu verhindern23 . Zum Beispiel wird durch Realisierung der
Der Parameter MIN SLACK legt fest, ab wann Daten nicht mehr zur Durchfuhrung einer Fehlerverschleierung angenommen werden, weil die Di erenz zwischen aktueller Zeit und Ausgabezeitpunkt zu
gering ist.
23

KAPITEL 6. ANWENDUNG DER FEHLERVERSCHLEIERUNG

86

..
"vorwartsdehnen"
"Takt"

eintreffende seq

sortierte Liste

Zwischenspeicher

12345

2345

23457

3457

Ausgabe
1
2

MWSOLA

7 8

3456

7 8 9

7 8 9

10

7 8 9 10

7 8 9 10

11

7 8 9 10 11

8 9 10 11

..
..
"ruckwartsdehnen"
"Takt"

eintreffende seq

sortierte Liste

Zwischenspeicher

Ausgabe

45

57

57

578

578

5789

5789

MWSOLA

10

10

10

56789

11

10 11

11

10

Abbildung 6.17: Ablauf "Vorwarts\-/"Ruckwarts\dehnen


Zwischenspeicherdatenstruktur als geschlossene Pu erkette unnotiges Kopieren von Da-

KAPITEL 6. ANWENDUNG DER FEHLERVERSCHLEIERUNG

87

ten vermieden. Durch Verandern der Zeiger konnen Pu erblocke schnell neu aufgenommen, bzw. entfernt werden (! Abb. 6.18).
Teilnehmer

2 ... 10

..
Anzahl der Speicherblocke
Ausgabepuffer reclog
Zeiger auf ersten Speicherblock

Sequenznummer
Synchronisierungsinformation (t,p,slack)
Audiodeskriptor
Zeiger auf Daten
..
Lange der Daten
Zeiger auf vorhergehenden Block
Zeiger auf nachfolgenden Block

Abbildung 6.18: Datenstruktur des Fehlerverschleierungspu ers


Weiterhin ware es vorstellbar eine Fehlerverschleierung als separaten UNIX-Proze zu
implementieren, mit dem rx.c per IPC ("Inter Process Communication\, s. z.B. [Ste90])
kommuniziert. Das hatte den Vorteil, da auf evtl. wahrend der Durchfuhrung der Fehlerverschleierung eintre ende bisher fehlende Pakte sofort reagiert, bzw. die Synchronisierungsinformation der einzelnen Pakete standig aktualisiert werden konnte. Die derzeitige
Losung einer Fehlerverschleierung wahrend eines "Taktes\ (Aufruf von rx.c) stort jedoch
den zeitlichen Ablauf von NeVoT nicht.
Die Fehlerverschleierung kann uber eine Erweiterung der graphischen Benutzerschnittstelle von NeVoT (! Abb. 6.2) aktiviert und deaktiviert werden.

KAPITEL 6. ANWENDUNG DER FEHLERVERSCHLEIERUNG

88

Sequenznummer
Audiodaten
Teilnehmer-ID

rx.c

ring_mix.c
j

erstes
Paket ?

Initialisierung

n
Duplikat ?

..
Unterdrucken

n
Daten mit
slack < MIN_SLACK
im Zwischenspeicher ?

n
Zwischenspeicher
entleeren (bis auf
1 Paket)

sortiere
Sequenznummern

wrap-around ?

fehlendes Paket
doch noch
angekommen ? j

n
j
neu fehlendes
Paket ?

fehlend = 1

Reihenfolgefehler ?

fehlend = 0

zwischenspeichern

n
genug Pakete
j
zum Verschleiern ?

Fehlerverschleierung

alte fehlende
Pakete ?
n

j
wird gerade
Verschleierung
vorbereitet ?
j
n
s>2
(zuviele fehlende
Pakete ?)

Abbildung 6.19: Programmstruktur von recover.c

Ausgabe:
1 Paket

Kapitel 7
Ausblick
Die vorliegende Arbeit hat gezeigt, da fehlerverschleiernde Algorithmen die Sprachqualitat beim Auftreten von Paketverlusten bei niedrigem Aufwand deutlich verbessern
konnen. Insbesondere erwies sich der neue Ansatz der Verschleierung durch Zeitdehnung
(MWSOLA-Algorithmus) als sehr geeignet und robust. Mit Hilfe des in NeVoT eingebundenen Verfahrens konnen Audiokonferenzen mit verbesserter Qualitat durchgefuhrt
werden.
Weiterentwicklungsmoglichkeiten der Fehlerverschleierungverfahren liegen einerseits in einer Kombination von MWSOLA-Methode und "Pitch Waveform Replication\ (s. Kap.
5.3). Andererseits erscheint ein starkerer Bezug zum Sprachsignal, wie beim "ClassOriented Replacement\ (Kap. 3.3.3), sinnvoll. Es konnten also fur verschiedene Bereiche
des Sprachsignals (stimmhaft, stimmlos, Stille) verschiedene Codierungs- und Fehlerbehandlungsverfahren eingesetzt werden. Noch interessanter wird ein solches Vorgehen mit
der Einfuhrung von geeigneten Protokollen der Netzwerkebene (IPng, [Hin94], [Bra94]),
das auch im Netzwerk die unterschiedliche Behandlung der Datenpakete (die ja Sprachsignalteile unterschiedlicher Wichtigkeit enthalten) moglich macht.
Fur die in Entwicklung, bzw. in der Einfuhrungsphase be ndlichen Netzwerktechnologien
wie ATM ("cell relay\) scheinen zunachst Fehlerverschleierungsmechanismen nicht so interessant zu sein, da das Netzwerk eine garantierte Verbindungsqualitat ermoglicht (Kap.
6.1.2, S. 68). Fehlerverschleierung erlaubt aber die Schonung von Netzwerkressourcen, da
89

KAPITEL 7. AUSBLICK

90

ohne Qualitatsverlust Verbindungen mit hoherer Paketverlustrate gewahlt werden konnen.


Auerdem besteht die Moglichkeit weiterhin billigere Verbindungen, die keine garantierten
"Quality of Service\-Merkmale bieten, unter Einsatz der Fehlerverschleierung zu nutzen.
Die Lange einer ATM-Zelle betragt 48 Bytes, das sind (bei "Voice Quality\, PCM 8 bit law, 8 kHz) 48 Abtastwerte, bzw. 6 ms Sprache. Einzelne verlorene Zellen lassen sich also
leicht verschleiern. Die in der Arbeit erzielten Ergebnisse lassen den Schlu zu, da Folgen
von bis zu vier aufeinanderfolgenden fehlenden Zellen hochqualitativ verschleiert werden
konnten. Da auerdem zu erwarten ist, da die U bergangsphase zwischen alten und neuen
Netzwerktechnologien gerade in Bezug auf Paketverlust problematisch ist (Kopplung von
Hochgeschwindigkeitsnetzen wie ATM mit veralteten WAN-Technologien), bleibt Fehlerverschleierung eine gute Methode, um die Folgen von Paketverlusten zu mildern.

Literaturverzeichnis
[BCG95]

J.-C. Bolot, H. Crepin, and A.V. Garcia. Analysis of audio packet loss in
the internet. In Proceedings of the 5th International Workshop on Network
and Operating System Support for Digital Audio and Video, pages 163{174,
Durham, NH, April 1995.

[Bra94]

C. Brazdziunas. IPng support for ATM services. RFC 1680, IETF Network
Working Group, August 1994. ftp://ds.internic.net/rfc/rfc1680.txt.

[BS85]

J. Blauert and E. Scha ert. Automatische Sprachein- und -ausgabe. Schriftenreihe der Bundesanstalt fur Arbeitsschutz, Dortmund 1985. Forschung-Fb
Nr. 417, S. 30-42.

[CHR94]

D.M. Cohen, D.P. Heyman, and A.M. Reibman. Comparisons among models
of cell losses for video conferences. Technical report, Bellcore, AT & T Bell
Laboratories, 1994.

[CM88]

T.M. Chen and D.G. Messerschmitt. Integrated voice/data switching. IEEE


Communications Magazine, 26(6):16{26, June 1988.

[Coh77]

D. Cohen. Speci cation for the Network Voice Protocol (NVP). NSC Note
68, NWG/RFC 741, November 1977.

[Coh80]

D. Cohen. On packet speech communications. In Proceedings of the Fifth


International Conference on Computer Communications, pages 271{274, Atlanta, GA, October 1980.

[Del93]

J.R. Deller. Discrete-Time Processing of Speech Signals, Ch. 9, pages 568{


595. Prentice Hall, Englewood Cli s 1993.
91

LITERATURVERZEICHNIS

92

[DL86]

J.N. Daigle and J.D. Langford. Models for analysis of packet voice communication systems. IEEE Journal on Selected Areas in Communications,
SAC-4(6):847{855, September 1986.

[DPF89]

L.A. DaSilva, D.W. Petr, and V.S. Frost. A class-oriented replacement technique for lost speech packets. IEEE Transactions on Acoustics, Speech and
Signal Processing, ASSP-37(10):1597{1600, October 1989.

[EH93]

B. Eppinger and E. Herter. Sprachverarbeitung. Carl Hanser Verlag,


Munchen/Wien, 1993.

[Fer90]

D. Ferrari. Client requirements for real-time communication services. IEEE


Communications Magazine, pages 65{72, November 1990.

[FR94]

J. Fulton and G. Renda. The network audio system. Technical report, Network Computing Devices (NCD), 1994. nas-xcon94paper.ps.

[GL83]

J.G. Gruber and N.H. Le. Performance requirements for integrated voice/data networks. IEEE Journal on Selected Areas in Communications, SAC1(6):981{1005, December 1983.

[GLWW86] D.J. Goodman, G.B. Lockhart, O.J. Wasem, and W. Wong. Waveform substitution techniques for recovering missing speech segments in packet voice
communications. IEEE Transactions on Acoustics, Speech and Signal Processing, ASSP-34(6):1449{1464, December 1986.
[Gru94]

R. Grudszus. Untersuchung von Verfahren zur Zeitdehnung und -stauchung


von Sprachsignalen. Diplomarbeit, Lehrstuhl fur Nachrichtentechnik, Erlangen, September 1994.

[GWDP88] D.J. Goodman, O.J. Wasem, C.A. Dvorak, and H.G. Page. The e ect of
waveform substitution on the quality of PCM packet communications. IEEE
Transactions on Acoustics, Speech and Signal Processing, ASSP-36(3):342{
348, March 1988.
[Hal91]

U. Halka. Speech-model processes for objective quality measurements of


speech-coding systems. In EUROSPEECH 91, pages 887{890, September
1991.

LITERATURVERZEICHNIS

93

[Hin94]

R. Hinden. IP next generation overview. Internet draft, IETF, October 1994.


ftp://ds.internic.net/internet-drafts/draft-hinden-overview-00.txt.

[IEE69]

IEEE. IEEE recommended practice for speech quality measurements. IEEE Transactions on Audio and Electroacoustics, AU-17:227{245, September
1969.

[Jay93]

N.S. Jayant. High quality networking of audio-visual information.


IEEE Communications Magazine, pages 84{95, September 1993.

[JC81]

N.S. Jayant and S.W. Christensen. E ects of packet losses in waveform coded
speech and improvements due to an odd-even sample-interpolation procedure. IEEE Transactions on Communications, COM-29(2):101{109, February
1981.

[JM88]

J.F.Kurose and H.T. Mouftah. Computer-aided modeling, analysis and design


of communication networks. IEEE Journal on Selected Areas in Communications, SAC-6(1):130{145, January 1988.

[JM92]

V. Jacobson and S. McCanne. vat. Manual page, SunOS 4.1.x, August 1992.

[JN84]

N.S. Jayant and P. Noll. Digital Coding of Waveforms. Prentice Hall, Englewood Cli s 1984.

[Lan92]

H. Langendorfer. Leistungsanalyse von Rechensystemen: Messen, Modellieren, Simulation. Carl Hanser Verlag, Munchen/Wien 1992.

[Li89]

S. Li. Study of information loss in packet voice systems. IEEE Transactions


on Communications, COM-37(11):1192{1202, November 1989.

[LR93]

D.C. Lynch and M.T. Rose, editors. Internet System Handbook. Addison
Wesley, Reading 1993.

[Mal88]

M. Malek. Integrated voice and data communications overview.


IEEE Communications Magazine, 26(6):5{15, June 1988.

[Mon83]

W.A. Montgomery. Techniques for packet voice synchronization.


IEEE Journal on Selected Areas in Communications, SAC-1(6):1022{1028,
December 1983.

LITERATURVERZEICHNIS

94

[Ous95]

J.K. Ousterhout. Tcl und Tk. Addison Wesley, Bonn 1995.

[Pap87]

P.E. Papamichalis. Practical Approaches To Speech Coding, Ch. 7, pages


186{198. Prentice Hall, Englewood Cli s 1987.

[RS78]

L.R. Rabiner and R.W. Schafer. Digital Processing Of Speech Signals. Prentice Hall, Englewood Cli s 1978.

[RS91]

P.V. Rangan and D.C. Swinehart. Software architectures for integration of


video services in the Etherphone system. IEEE Journal on Selected Areas in
Communications, SAC-9(9):1395{1404, December 1991.

[RVZS91] P.V. Rangan, H.M. Vin, P.T. Zellweger, and D.C. Swinehart. Multimedia
conferencing in the Etherphone environment. IEEE Computer, 24:66{794,
August 1991.
[SB80]

M.A. Sencer and D.M. Baker. A viewpoint on packet-switched voice networks. In Proceedings of the Fifth International Conference on Computer
Communications, pages 287{294, Atlanta, GA, October 1980.

[SCFJ94]

H. Schulzrinne, S. Casner, R. Frederick, and V. Jacobson. A transport protocol for real-time applications. Internet Draft, IETF Audio-Video Transport
Group, November 1994. ftp://ds.internic.net/internet-drafts/draft-ietf-avtrtp-06.*.

[Sch92]

H. Schulzrinne. Voice communication across the internet: A network voice terminal. Technical Report TR 92-50, Dept. of Computer Science, University of Massachusetts, Amherst, MA, July 1992.
ftp://gaia.cs.umass.edu/pub/Schu9207:Voice.ps.Z.

[Sch93a]

H. Schulzrinne. Issues in designing a transport protocol for audio and video


conferences ... Internet draft, IETF Audio-Video Transport Working Group,
1993. ftp://gaia.cs.umass.edu/pub/hgschulz/rtp/internet-drafts/draft-ietfavt-rtp-issues-01.ps.

[Sch93b]

H. Schulzrinne. Reducing and Characterizing Packet Loss for High Speed


Computer Networks with Real-Time Services. PhD thesis, Dept. of Electrical

LITERATURVERZEICHNIS

95

and Computer Engineering, University of Massachusetts, Amherst, MA, May


1993.
[Sch94a]

H. Schulzrinne. Guide to NeVoT 3.18. GMD Fokus, Berlin, December 1994.


ftp://ftp.fokus.gmd.de/pub/minos/nevot/nevot-3.xx.tar.gz (nevot.ps).

[Sch94b]

H. Schulzrinne. Message-based API for NeVoT and other conferencing applications. Technischer Bericht, GMD Fokus, Berlin, Juli 1994.

[ST89]

J. Suzuki and M. Taka. Missing packet recovery techniques for low-bit-rate


coded speech. IEEE Journal on Selected Areas in Communications, SAC7(5):707{717, June 1989.

[Ste90]

W.R. Stevens. UNIX Network Programming. Prentice Hall, Englewood Cli s


1990.

[Ste94]

W.R. Stevens. TCP/IP Illustrated, The Protocols, volume Vol. 1. Addison


Wesley, Reading 1994.

[Tan89]

A.S. Tanenbaum. Computer Networks. Prentice Hall, Englewood Cli s 1989.

[Tow93]

D. Towsley. Providing quality of service in packet switched networks. Technical Report, Dept. of Computer Science, University of Massachusetts, Amherst, MA, July 1993. ftp://gaia.cs.umass.edu/pub/Tows93:QOS.ps.gz.

[VA89]

R.A. Valenzuela and C.N. Animalu. A new voice packet reconstruction technique. In Proceedings ICASSP-89, pages 1334{1336, May 1989.

[VR93]

W. Verhelst and M. Roelands. An overlap-add technique based on waveform


similarity (WSOLA) for high quality time-scale modi cation of speech. In
Proceedings ICASSP-93, pages 554{557, April 1993.

[Yon92]

M. Yong. Study of voice packet reconstruction methods applied to CELP


speech coding. In Proceedings ICASSP-92, pages II/125{128, March 1992.

Anhang
4

3.5

f/kHz

2.5

1.5

0.5

0
0

1000

2000

3000

4000

5000
t/ms

6000

7000

8000

9000

Abbildung A.1: Spektrogramm des Testsatzes "Dazu spiele ich ihnen einen Pegelton
mittlerer Lautstarke vor und Sie stellen sich bitte vor Ihre beiden Lautsprecher und dort genau in die Mitte.\

96

ANHANG

97

3.5

f/kHz

2.5

1.5

0.5

0
0

2000

4000

6000

8000

10000

12000

14000

t/ms

Abbildung A.2: Spektrogramm des Testsatzes zeitgestaucht um den Faktor =3/2

3.5

f/kHz

2.5

1.5

0.5

0
0

1000

2000

3000
t/ms

4000

5000

6000

Abbildung A.3: Spektrogramm des Testsatzes zeitgedehnt um den Faktor =2/3

ANHANG

98

traceroute to lati.ireste.fr (193.52.81.33), 30 hops max, 40 byte packets


1 nt1.e-technik.uni-erlangen.de (131.188.130.1) 11 ms 7 ms 6 ms
2 fire.gate.uni-erlangen.de (131.188.254.5) 7 ms 8 ms 8 ms
3 golden.gate.uni-erlangen.de (131.188.5.1) 9 ms 23 ms 12 ms
4 Duesseldorf3.WiN-IP.DFN.DE (188.1.133.68) 148 ms 157 ms 108 ms
5 ipgate2.win-ip.dfn.de (193.174.74.134) 137 ms 290 ms 202 ms
6 duesseldorf2.empb.net (193.172.4.12) 239 ms 187 ms 168 ms
7 amsterdam7.empb.net (193.172.4.35) 201 ms 269 ms 137 ms
8 Amsterdam1.dante.net (193.172.12.10) 125 ms 139 ms 240 ms
9 Geneva1.dante.net (194.41.0.34) 207 ms 128 ms 183 ms
10 Cern-EBS1.Ebone.net (194.41.0.50) 181 ms 359 ms 158 ms
11 Paris-EBS1.Ebone.NET (192.121.157.10) 156 ms 228 ms 267 ms
12 Renater-RBS1.Ebone.net (192.121.156.73) 298 ms 293 ms 269 ms
13 * stamand3.renater.ft.net (192.93.43.169) 196 ms 212 ms
14 stamand1.renater.ft.net (192.93.43.18) 261 ms 342 ms 259 ms
15 stamand2.renater.ft.net (192.93.43.33) 359 ms 318 ms 353 ms
16 stamand22.renater.ft.net (192.93.43.145) 228 ms 315 ms 284 ms
17 poitiers.renater.ft.net (192.93.43.41) 335 ms 368 ms *
18 nantes1.or-pl.ft.net (192.93.43.201) 347 ms 228 ms 319 ms
19 nantes3.or-pl.ft.net (193.54.136.18) 267 ms 316 ms 291 ms
20 ireste-nantes.or-pl.ft.net (193.54.136.58) 224 ms 246 ms 287 ms
21 193.52.80.2 (193.52.80.2) 226 ms * 356 ms
22 lati.ireste.fr (193.52.81.33) 315 ms 394 ms 378 ms

Abbildung A.4: Route fur die Verbindung nt ! lati

You might also like