Sprachinformationen, die über ein IP-Netzwerk übertragen werden sollen, liegen ursprünglich in analoger Form vor und müssen daher dementsprechend digital abgebildet werden. Diese Transformation setzt sich aus folgenden Schritten zusammen [3]:
Glättung durch Tiefpassfilterung des analogen Sprachsignals (Anti-Aliasing-Filter)
Abtastung des geglätteten Signals
Quantisierung
Repräsentation der einzelnen, quantisierten Werte durch binäre Codewörter
Unter Quantisierung versteht man in diesem Zusammenhang das Auf- oder Abrunden eines analogen Spannungswertes auf einen diskreten Wert. Diese Maßnahme ist notwendig, da ein (analoger) Spannungsbereich unendlich viele Werte annehmen kann, die digitale Darstellung jedoch auf einen endlichen Zahlenraum beschränkt ist.
Die so erzeugten Codewörter bilden in Summe den Sprachbitstrom, der anschließend paketiert und versendet werden kann.
Der Empfänger muss nun aus den erhaltenen Paketen die Sprachinformationen herausfiltern und sie in ein analoges Signal umwandeln, welches in verstärkter Form einem Lautsprecher zugeführt werden kann. Die konkreten Schritte dabei sind:
Extraktion der Sprachinformation aus dem IP-Paket
Umwandlung des jeweiligen Codewortes in einen analogen Spannungswert
Glättung der dabei entstandenen „Treppenkurve“ mithilfe eines Rekonstruktionstiefpasses
Zusammenfassend verdeutlicht Abb. 2 noch einmal den kompletten Ablauf, von der Codierung über den Versand bis hin zur abschließenden Decodierung eines Sprachsignals.
Grundsätzlich kann die Sprachcodierung auf zwei Arten erfolgen: Entweder man wendet ein Abtastwert-orientiertes (Sample-based) oder ein Segment-orientiertes (Frame-based) Verfahren an.
Bei der ersten Variante wird das Sprachsignal (üblicherweise) 8000-mal pro Sekunde abgetastet und die entsprechenden Werte codiert. Die Wahl dieses Wertes ergibt sich aus der Tatsache, dass bei einer Sprachübertragung der Frequenzbereich von 300 bis 3400 Hz übertragen wird. Das entspricht einem Frequenzband von 3,1 kHz. Nach dem Shannon’schen Abtasttheorem muss die Abtasthäufigkeit mindestens doppelt so hoch sein wie die im analogen Signal enthaltene höchste Frequenz, in diesem Fall also mindestens 6,8 kHz. International einigte man sich letztendlich auf eine Abtasthäufigkeit von 8 kHz [3]. Jeder Abtastwert wird - im Falle des Pulse Code Modulation-Verfahrens (PCM) - mit 8 Bits codiert, dass letztendlich zu einer Datenrate von 64 kbit/s führt.
Abb. 2: Prinzip der digitalen Sprachübermittlung [3]
Ein anderes Verfahren, welches auch auf Sample-Based-Codierung basiert, ist das Differential PCM (DPCM). Die Theorie dahinter ist, dass aufeinander folgende Sprachsignale bestimmte statistische Abhängigkeiten aufweisen. Dank dieser Eigenschaft können zukünftige Amplitudenwerte mit einer bestimmten Wahrscheinlichkeit vorausgesagt werden. Codiert und übertragen werden in weiterer Folge nicht mehr die absoluten, diskreten Spannungswerte, sondern die Differenz zwischen dem prädiktierten und dem tatsächlichen Wert. Da diese beiden Werte in der Regel nahe beieinanderliegen, sind kürzere Codewörter und somit eine geringere Bitrate bei gleichbleibender Qualität möglich [3].
Bei DPCM werden die Prädiktions-Parameter zu Beginn bestimmt und bis zum Ende der Sprachcodierung verwendet. Tatsache ist jedoch, dass sich die statistischen Eigenschaften eines Sprachsignals im Laufe der Zeit verändern und infolgedessen eine kontinuierliche Anpassung dieser Parameter wünschenswert wäre. Diesem Wunsch geht die Adaptive DPCM (ADPCM) nach, welche das Sprachsignal in kleine Zeitsegmente zerlegt (üblicherweise 10 bis 20 ms) und für jedes dieser Segmente die entsprechenden Parameter festlegt. Mittels ADPCM sind je nach Länge des Codewortes Datenratenreduktionen auf 16 kbit/s bis 40 kbit/s möglich.
Bei allen drei oben genannten Verfahren (PCM, DPCM und ADPCM) erfolgt die Quantisierung nichtlinear. Der Unterschied zwischen linearer und nichtlinearer Quantisierung liegt im Quantisierungsintervall, also dem Abstand zwischen zwei benachbarten Quantisierungsstufen.
Bei einer linearen Quantisierung ist dieser Abstand stets gleich groß. Bei Anwendung dieses Verfahrens ergibt sich jedoch der Nachteil der Quantisierungsgeräusche, die beim Auf- oder Abrunden eines kontinuierlichen Signalwerts zu einem diskreten Wert entstehen. Diese sind umso deutlicher hörbar, je höher das Quantisierungsintervall ist.
Man könnte zwar die Quantisierungsintervalle verkürzen, was aber insofern nicht zielführend ist, da eine damit verbundene Erhöhung der Quantisierungsstufen auch zu einer Vergrößerung der Codewörter und schlussendlich zu einer höheren Bitrate führt. Eine bessere Alternative stellt die nichtlineare Quantisierung dar. Dabei werden unterschiedlichen Amplitudenwertbereichen verschiedene Quantisierungsintervalle zugewiesen. So erhalten „leisere“ Geräusche geringere Intervalle, da diese bei der Sprachkommunikation statistisch gesehen häufiger auftreten. Ein weiteres Kriterium, die Quantisierungsintervalle in diesem Bereich zu verkürzen, ist die Tatsache, dass die Empfindlichkeit des menschlichen Gehörs proportional zum Logarithmus der Lautstärke ist [3].
Demzufolge werden die Quantisierungsintervalle logarithmisch aufgeteilt. Kleine Amplitudenwerte werden also gröber quantisiert als große. Ein Kompander, dessen Funktionsweise durch eine sogenannte Kompandierungskennlinie beschrieben ist, führt diese logarithmische Verstärkung durch. Die Kompandierungskennlinie wird dabei in eine Anzahl von Segmenten unterteilt, wobei die Kennlinie in jedem Segment linear dargestellt wird.
Wie eingangs erwähnt, wird jeder Abtastwert mit acht Bits codiert. Diese Bits ao ... a7 haben bei der nichtlinearen Quantisierung nun folgende Bedeutung: Das erste Bit a0 repräsentiert, ob der Amplitudenwert positiv oder negativ ist. Die nächsten drei Bits ai bis a3 kennzeichnen die Nummer des Segments der Kompandierungskennlinie und die letzten vier Bits a4 bis a7 stellen die Quantisierungsstufe innerhalb des Segments dar [3]. Endresultat sind insgesamt 256 Quantisierungsstufen, welche innerhalb des Segments linear und global betrachtet logarithmisch sind.
Grundsätzlich verwendet man zwei unterschiedliche Kennlinien, die untereinander nicht kompatibel sind. Die vorwiegend in Europa verwendete A-Kennlinie (A-Law), welche mit 13 Segmenten beschrieben wird und die in Amerika und Japan gebräuchliche μ-Kennlinie (μ- Law), welche eine Unterteilung in 15 Segmente vornimmt.
Die andere Möglichkeit, Sprache zu codieren, ist das Frame-Based- bzw. das Segmentorientierte Verfahren. Dieses Verfahren macht sich die Möglichkeit zunutze, dass der Vokaltrakt des Menschen, der die Sprache erzeugt, künstlich nachgebildet werden kann. Die statistische Eigenschaft der Sprache bleibt in entsprechend kleinen Zeitintervallen bis etwa 30 ms nahezu unverändert (stationär) und kann mittels weniger Parameter beschrieben werden [3]:
Stimmhafter/stimmloser Laut als Parameter V/UV
Pitch-Periode T (die Periode der Stimmbandvibration; dieser Wert entspricht dem Kehrwert der Sprachgrundfrequenz)
Lautstärke G (Gain)
Mehrere Parameter a1, ..., aK, welche die Artikulation mithilfe eines linearen Filters beschreibt
Den Begriff „Sprachgrundfrequenz“ beschreibt ein Zitat aus [6] folgendermaßen:
Sprache wird durch Veränderung des von der Lunge kommenden Luftstroms erzeugt. Zunächst passiert der Luftstrom am Eingang der Luftröhre den Kehlkopf (medizinisch Larynx) mit den Stimmbändern. Stehen die Stimmbänder dicht beieinander, dann werden sie durch den Luftstrom zu periodischen Schwingungen angeregt. Es entsteht ein stimmhafter Laut. Die Frequenz der Schwingungen (Sprachgrundfrequenz, fundamental frequency) liegt im Mittel bei Männern um 100 Hz und bei Frauen um 180 Hz. Die Variation der Sprachgrundfrequenz ist zusammen mit Lautstärkeänderungen wesentlich für die Sprachmelodie einer Äußerung. Ist der Abstand zwischen den Stimmbändern groß, so kommt es zu keinen Schwingungen sondern nur zu Turbulenzen. Dann spricht man von stimmlosen Lauten.
Mithilfe der Nachbildung der Sprachgrundfrequenz und den Formant-Frequenzen lässt sich Sprache auch künstlich erzeugen. Dieser Ansatz ist für Text-to-Speech-Systeme interessant. Unter Formanten versteht man jene Frequenzbereiche, die - je nach Anatomie des Rachenraums, Zungenstellung, Lippenrundung und ähnliche Parameter - bei einer Artikulierung eines Lauts verstärkt wiedergegeben werden. Diese Frequenzen liegen abhängig vom Laut in unterschiedlichen Bereichen.
Bei der Codierung wird nun ein Segment in der Größe von z. B. 20 ms herangezogen, die 160 Abtastwerte (bei einer Abtastfrequenz von 8 kHz) in einen Buffer abgelegt und anschließend analysiert. Das Endergebnis der Analyse ist ein Vektor, der...