[0001] Die Erfindung betrifft ein nach der Methode der linearen Prädiktion arbeitendes Verfahren
und eine entsprechende Vorrichtung zur redundanzvermindernden digitalen Sprachverarbeitung
gemäss dem Oberbegriff von Patentanspruch 1 bzw. Patentanspruch 13.
[0002] Derartige Sprachverarbeitungssysteme, sogenannte LPC-Vocoder, erlauben eine erhebliche
Redundanzreduktion bei der digitalen Uebertragung von Sprachsignalen. Sie gewinnen
heute immer mehr an Bedeutung und sind Gegenstand zahlreicher Veröffentlichungen und
Patente, von denen hier nur einige repräsentative rein beispielsweise angeführt sind:
B.S. Atal und S.L. Hanauer, Journal Acoust. Soc. Am., 50, S. 637-655, 1971
R.W. Schafer und L.R. Rabiner, Proc. IEEE Vol 63 No.4, S. 662-667, 1975
L.R. Rabiner et al., Trans. Acoustics, Speech and Signal Proc., Vol 24 No. 5, S. 399-418,
1976
B. Gold, Proc. IEEE Vol. 65 No. 12, S. 1636-1658, 1977
A. Kurematsu et al, Proc. IEEE, ICASSP, Washington 1979, S. 69-72
S. Horvath, "LPC-Vocoder, Entwicklungsstand und Perspektiven", Sammelband Kolloquiumsvorträge
"Krieg im Aether" XVII. Folge, Bern 1978 US-PS 3 624 302
US-PS 3 361 520
US-PS 3 909 533
US-PS 4 230 906
[0003] Die heute bekannten und erhältlichen LPC-Vocoder arbeiten noch nicht voll zufriedenstellend.Zwar
ist die nach der Analyse wieder synthetisierte Sprache meistens noch relativ verständlich,
jedoch ist sie verzerrt und tönt künstlich. Eine der Ursachen dafür liegt u.a. in
der Schwierigkeit, den Entscheid, ob ein stimmhafter oder ein stimmloser Sprachabschnitt
vorliegt, mit ausreichender Sicherheit zu treffen. Weitere Ursachen sind mangelhafte
Bestimmung der Pitchperiode und ungenaue Bestimmung der Klangbildungsfilterparameter.
[0004] Neben diesen grundsätzlichen Schwierigkeiten ergibt sich eine weitere wesentliche
Schwierigkeit daraus, dass die Datenrate in vielen Fällen auf einen relativ niedrigen
Wert begrenzt sein muss. Sie beträgt z.B. bei Telefonnetzenvorzugsweise nur 2,4 kbit/sec.
Bei einem LPC-Vocoder ist die Datenrate durch die Anzahl der in jedem Sprachabschnitt
analysierten Sprachparameter, durch die Anzahl der für diese Parameter benötigten
Bits und durch die sog. Frame-Rate, d.h. die Anzahl Sprachabschnitte pro Sekunde gegeben.
Bei den heute gebräuchlichen Systemen werden, damit überhaupt eine einigermassen brauchbare
Sprachwiedergabe möglich ist, pro Sprachabschnitt minimal etwas über 50 Bit benötigt.
Damit ist die maximale Frame-Rate automatisch festgelegt, bei einem 2,4 kbit/sec-System
z.B. auf rund 45/sec. Die Sprachqualität bei diesen relativ geringen Frame-Raten ist
auch entsprechend schlecht. Eine Erhöhung der Frame-Rate, die sich zur Verbesserung
der Sprachqualität an sich anböte, ist nicht möglich, da dadurch die festgelegte Datenrate
überschritten würde. Für die Erniedrigung der Anzahl der pro Frame benötigten Bits
wäre anderseits eine Verminderung der Anzahl der verwendeten Parameter bzw. eine Vergröberung
von deren Quantisierung nötig, was jedoch automatisch wieder auf eine Verschlechterung
der Sprachwiedergabequalität hinauslaufen würde.
[0005] Die vorliegende Erfindung befasst sich nun vornehmlich mit diesen durch vorgegebene
Datenraten bedingten Schwierigkeiten und hat insbesondere zum Ziel, ein Verfahren
bzw. eine Vorrichtung der eingangs definierten Art hinsichtlich der Sprachwiedergabequalität
zu verbessern, ohne dabei die Datenraten zu.erhöhen.
[0006] Das erfindungsgemässe Verfahren und die erfindungsgemässe Vorrichtung sind in den
Patentansprüchen 1 und 13 beschrieben. Bevorzugte Ausführungsformen ergeben sich aus
den abhängigen Ansprüchen.
[0007] Der Grundgedanke der Erfindung besteht also darin, durch eine verbesserte Codierung
der Sprachparameter Bits einzusparen, sodass die Frame-Rate erhöht werden kann. Anderseits
besteht aber auch insofern eine Wechselbeziehung zwischen der Codierung der Parameter
und der Frame-Rate, als eine weniger bit-intensive, redundanzvermindernde Codierung
erst bei höheren Frame-Raten möglich bzw. sinnvoll ist.
[0008] Dies rührt u.a. daher, dass die erfindungsgemässe Codierung der Parameter auf der
Ausnützung der Korrelation zwischen benachbarten stimmhaften Sprachabschnitten (Interframe-Korrelation)
basiert, welche mit zunehmender Frame-Rate natürlich immer stärker wird.
[0009] Im folgenden wird die Erfindung anhand der Zeichnungen näher erläutert. Es zeigen:
Fig. 1 ein stark vereinfachtes Blockschaltbild eines LPC-Vocoders,
Fig. 2 ein Blockschaltbild eines entsprechenden Multi-Prozessor-Systems und
Fig. 3 und 4 ein Flussschema für ein Programm zur Durchführung einer Variante der
erfindungsgemässen Codierung.
[0010] Der allgemeine Aufbau und die Funktionsweise der erfindungsgemässen Sprachverarbeitungsvorrichtung
gehen aus Fig. 1 hervor. Das von irgendeiner Quelle, z.B. einem Mikrophon 1 stammende
analoge Sprachsignal wird in einem Filter 2 bandbegrenzt und dann in einem A/D-Wandler
3 abgetastet und digitalisiert. Die Abtastrate beträgt dabei etwa 6 bis 16 kHz, vorzugsweise
etwa 8 kHz.
[0011] Die Auflösung ist etwa8 bis 12 bit. Der Durchlassbereich des Filters 2 erstreckt
sich bei sog. Breitbandsprache gewöhnlich von ca. 80 Hz bis etwa 3,1-3,4 kHz, bei
Telefonsprache von etwa 300 Hz bis 3,1-3,4 kHz.
[0012] Für die nun folgende digitale Verarbeitung des Sprachsignals wird dieses in aufeinanderfolgende,
vorzugsweise überlappende Sprachabschnitte, sog. Frames, eingeteilt. Die Sprachabschnittslänge
beträgt etwa 10 bis 30 msec, vorzugsweise etwa 20 msec. Die Frame-Rate, d.h. die Anzahl
von Frames pro Sekunde, beträgt etwa 30-100, vorzugsweise etwa 50 bis 70. Im Interesse
hoher Auflösung und damit Sprachqualität bei der Synthetisierung sind möglichst kurze
Abschnitte und entsprechend hohe Frame-Raten erstrebenswert, jedoch stehen dem einerseits
bei Echtzeit-Verarbeitung das begrenzte Leistungsvermögen des eingesetzten Computers
und anderseits die Forderung möglichst niedriger Bitraten bei der Uebertragung entgegen.
[0013] Für jeden dieser Sprachabschnitte erfolgt nun eine Analyse des Sprachsignals nach
den Prinzipien der linearen Prädiktion, wie sie z.B. in den eingangs erwähnten Publikationen
beschrieben sind. Grundlage der linearen Prädiktion ist ein parametrisches Modell
der Spracherzeugung. Ein zeitdiskretes Allpol-Digitalfilter modelliert die Klangformung
durch Hals- und Mundtrakt (Vokaltrakt). Bei stimmhaften Lauten ist die Anregung dieses
Filters eine periodische Pulsfolge, deren Frequenz, die sog. Pitchfrequenz, die periodische
Anregung durch die Stimmbänder idealisiert. Bei stimmlosen Lauten ist die Anregung
weisses Rauschen, idealisierend für die Luftturbulenz im Hals bei nicht angeregten
Stimmbändern. Ein Verstärkungsfaktor schliesslich kontrolliert die Lautstärke. Auf
der Grundlage dieses Modells ist somit das Sprachsignal durch die folgenden Parameter
vollständig bestimmt:
1. Die Information, ob der zu synthetisierende Laut stimmhaft oder stimmlos ist,
2. die Pitch-Periode (bzw. die Pitch Frequenz) bei stimmhaften Lauten (bei stimmlosen
ist die Pitchperiode.per def. gleich 0)
3. die Koeffizienten des zugrundegelegten Allpol-Digitalfilters (Vokaltraktmodells)
und
4. der Verstärkungsfaktor.
[0014] Die Analyse gliedert sich demnach im wesentlichen in zwei Hauptproceduren, und zwar
zum einen in die Berechnung des Verstärkungsfaktors bzw. Lautstärkeparameters sowie
der Koeffizienten bzw. Filterparameter des zugrundeliegenden Vokaltrakt-Modellfilters
und zum anderen in den Stimmhaft-Stimmlos-Entscheid und in die Ermittlung der Pitch-Periode
im stimmhaften Falle.
[0015] Die Filterkoeffizienten werden in einem Parameterrechner 4 durch Lösung des Gleichungssystems
gewonnen, welches erhalten wird, wenn die Energie des Prädiktionsfehlers, d.h. die
Energie der Differenz zwischen den tatsächlichen Abtastwerten und den aufgrund der
Modellannahme geschätzten Abtastwerten im betrachteten Intervall (Sprachabschnitt)
in Funktion der Koeffizienten minimiert wird. Die Auflösung des Gleichungssystems
erfolgt vorzugsweise nach der Autokorrelationsmethode mittels eines Algorithmus' nach
Durbin (vgl.
z.B. L.B. Rabiner and R.W. Schafer, "Digital Processing of Speech Signals", Prentice-Hall
Inc., Englewood Cliffs, N.J., 1978, Seiten 411-413). Dabei ergeben sich neben den
Filterkoeffizienten bzw. -parametern (a.) gleichzeitig auch die sogenannten Reflexionskoeffizienten
(k.), welche auf Quantisierung weniger empfindliche Transformierte der Filterkoeffizienten
(a.) sind. Die Reflexionskoeffizienten sind bei stabilen Filtern dem Betrag nach stets
kleiner als 1 und ausserdem nimmt ihr Betrag mit zunehmender Ordnungszahl ab. Wegen
dieser Vorteile werden bevorzugt diese Reflexionskoeffizienten (k.) statt der Filterkoeffizienten
(a
j) übertragen. Der Lautstärkeparameter G ergibt sich aus dem Algorithmus als Nebenprodukt.
[0016] Zur Auffindung der Pitch-Periode p (Periode der Stimmbandgrundfrequenz) wird das
digitale Sprachsignal s in einem Buffer 5 zunächst solange zwischengespeichert, bis
die Filterparamet
er (a
j) berechnet sind.
[0017] Dann passiert das Signal ein mit den Parametern (a
j) eingestelltes Inversfilter 6, welches eine zur Uebertragungsfunkti
on des Vokaltrakt- modellfilters inverse Uebertragungsfunktion besitzt. Das Ergebnis
dieser
[0018] Invers-Filterung ist ein Prädiktionsfehlersignal e , welches dem mit dem Verstärkungsfaktor
G multiplizierten Anregungssignal x
n ähnlich ist. Dieses Prädiktionsfehlersignal e n wird nun im Falle von Telefonsprache
direkt oder im Falle von Breitbandsprache über ein Tiefpassfilter 7 einer Autokorrelationsstufe
8 zugeführt, welches daraus die auf das Autokorrelationsmaximum nullter Ordnung normierte
Autokorrelationsfunktion AKF bildet, anhand welcher in einer Pitchextraktionsstufe
9 die Pitchperiode p ermittelt wird, und zwar in bekannter Weise als Abstand des zweiten
Autokorrelationsmaximums RXX vom ersten Maximum (nullter Ordnung), wobei vorzugsweise
ein adaptives Suchverfahren angewandt wird.
[0019] Die Klassifikation des betrachteten Sprachabschnitts als stimmhaft bzw. stimmlos
erfolgt in einer Entscheidungsstufe 11 nach bestimmten Kriterien, welche u.a. auch
die Energie des Sprachsignals und die Anzahl der Nulldurchgänge desselben im betrachteten
Abschnitt beinhalten. Diese beiden Werte werden in einer Energiebestimmungsstufe 12
und einer Nulldurchgangsbestimmungsstufe 13 ermittelt.
[0020] Der vorstehend beschriebene Parameterrechner ermittelt pro Sprachabschnitt (Frame)
je einen Satz Filterparameter. Selbstverständlich könnten die Filterparameter auch
anders bestimmt werden, beispielsweise laufend mittels einer adaptiven inversen Filtrierung
oder eines anderen bekannten Verfahrens, wobei die Filterparameter zwar mit jedem
Abtasttakt laufend nachgeregelt, aber nur jeweils zu den durch die Frame-Rate festgelegten
Zeitpunkten für die weitere Verarbeitung bzw. Uebertragung bereitgestellt werden.
Die Erfindung ist diesbezüglich in keiner Weise eingeschränkt. Wesentlich ist lediglich,
dass für jeden Sprachabschnitt ein Satz Filterparameter vorliegt.
[0021] Die nach der eben geschilderten Methode gewonnenen Parameter (kj) , G und p werden
dann einer Codierungsstufe 14 zugeführt, wo sie in noch näher zu beschreibender Weise
in eine für die Uebertragung geeignete, besonders bit-rationelle Form gebracht (formatiert)
und bereitgestellt werden.
[0022] Die Rückgewinnung bzw. Synthese des Sprachsignals aus den Parametern erfolgt in bekannter
Weise dadurch, dass die zunächst in einem Decoder 15 decodierten Parameter einem Puls-Rausch-Generator
16, einem Verstärker 17 und einem Vokaltraktmodellfilter 18 zugeführt werden und das
Ausgangssignal des Modellfilters 18 mittels eines D/A Wandlers 19 in analoge Form
gebracht und dann nach der üblichen Filterung 20 durch ein Wiedergabegerät, z.B. einen
Lautsprecher 21 hörbar gemacht wird. Der Puls-Rauschgenerator 16 erzeugt die durch
den Verstärker 17 verstärkte Anregung x
n des Vokaltraktmodellfilters 18, und zwar im stimmlosen Falle (p = 0) weisses Rauschen
und im stimmhaften Falle (p x 0) eine periodische Pulsfolge der durch die Pitchperiode
p festgelegten Frequenz. Der Lautstärkeparameter G kontrolliert den Verstärkungsfaktor
des Verstärkers 17, die Filterparameter (k
.) definieren die Uebertragungsfunktion des Klangbildungs- bzw. Vokaltrakt- modellfilters
18.
[0023] Vorstehend wurde der allgemeine Aufbau und die Funktion der erfindungsgemässen Sprachverarbeitungsvorrichtung
der einfacheren Verständlichkeit halber anhand diskreter Funktionsstufen erläutert.
[0024] Es ist für den Fachmann jedoch selbstverständlich, dass sämtliche Funktionen bzw.
Funktionsstufen zwischen dem analyseseitigen A/D-Wandler 3 und dem syntheseseitigen
D/A-Wandler 19, in denen also digitale Signale verarbeitet werden, in der Praxis vorzugsweise
durch einen entsprechend programmierten Computer oder einen Mikroprozessor oder dergleichen
implementiert sind. Die softwarenmässige Realisierung der einzelnen Funktionssufen,
wie z.B. der Parameterrechner, die diversen Digitalfilter, Autokorrelation etc. ist
für den mit der Datenverarbeitungstechnik vertrauten Fachmann Routine und in der Fachliteratur
beschrieben (siehe z.B. IEEE Digital Signal Processing Comittee: "Programs for Digital
Signal Processing", IEEE Press Book 1980).
[0025] Für Echtzeit-Anwendungen sind insbesondere bei hohen Abtastraten und kurzen Sprachabschnitten
wegen der dann grossen Anzahl von in kürzester Zeit zu bewältigenden Operationen extrem
leistungsfähige Rechner erforderlich. Für solche Zwecke werden dann am besten Multi-Prozessor-Systeme
mit einer geeigneten Aufgabenteilung eingesetzt. Ein Beispiel für ein solches System
ist in Fig. 2 als Blockschema dargestellt.
[0026] Das dargestellte Multi-Prozessor-System umfasst im wesentlichen vier Funktionsblöcke,
und zwar einen Hauptprozessor 50, zwei Nebenprozessoren 60 und 70 und eine Eingabe/Ausgabe-Einheit
80. Es implementiert sowohl Analyse als auch Synthese.
[0027] Die Eingabe/Ausgabe-Einheit 80 enthält die mit 81 bezeichneten Stufen zur analogen
Signalverarbeitung, wie Verstärker, Filter und automatische Verstärkungsregelung,
sowie den A/D-Wandler und den D/A-Wandler.
[0028] Der Hauptprozessor 50 führt die eigentliche Sprachanalyse bzw. -synthese durch, wozu
die Bestimmung der Filterparameter und der Lautstärkeparameter (Parameterrechner 4),
die Bestimmung von Energie und Nulldurchgängen des Sprachsignals (Stufen 13 und 12),
die Stimmhaft-Stimmlos-Entscheidung (Stufe 11) und die Bestimmung der Pitchperiode
(Stufe 9) bzw. syntheseseitig die Erzeugung des Ausgangssignals (Stufe 16), dessen
Lautstärkevariation (Stufe 17) und dessen Filtrierung im Sprachmodellfilter (Filter
18) gehören.
[0029] Der Hauptprozessor 50 wird dabei vom Nebenprozessor 60 unterstützt, welcher die Zwischenspeicherung
(Buffer 5), Inversfiltrierung (Stufe 6), gegebenenfalls die Tiefpassfiltrierung (Stufe
7) und die Autokorrelation (Stufe 8) durchführt.
[0030] Der Nebenprozessor 70 schliesslich befasst sich ausschliesslich mit der Codierung
bzw. Decodierung der Sprachparameter sowie mit dem Datenverkehr mit z.B. einem Modem
90 oder dgl. via eine mit 71 bezeichnete Schnittstelle.
[0031] Im folgenden wird auf die Codierung der Sprachparameter eingegangen.
[0032] Die Datenrate in einem LPC-Vocoder-System wird bekanntlich bestimmt durch die sog.
Frame-Rate, i.e. die Anzahl Sprachabschnitte pro Sekunde, die Anzahl der verwendeten
Sprachparameter und die Anzahl Bit, die zur Codierung der Sprachparameter benötigt
werden.
[0033] Bei den bisher bekannten Systemen werden gewöhnlich insgesamt etwa 10-14 Parameter
verwendet, für deren Codierung pro Frame (Sprachabschnitt) in der Regel etwas über
50 bit benötigt werden. Bei einer auf 2,4 kbit/sec begrenzten Datenrate, wie sie bei
Telefonnetzen üblich ist, führt dies zu einer maximalen Frame-Rate von rund 45. Wie
die Praxis gezeigt hat, ist jedoch die Qualität der unter diesen Bedingungen verarbeiteten
Sprache unbefriedigend.
[0034] Dieses durch die Begrenzung der Datenrate auf 2,4 kbit/sec bedingte Dilemma wird
nun durch die vorliegende Erfindung durch eine bessere Ausnützung der Redundanzeigenschaften
der menschlichen Sprache gelöst.
[0035] Das grundlegende Prinzip der Erfindung besteht in der Ueberlegung, dass, wenn das
Sprachsignal öfter analysiert wird, also die Frame-Rate erhöht wird, eine bessere
Verfolgung der Instationäritäten des Sprachsignals möglich ist. Damit wird bei stationären
Sprachabschnitte-
" eine grössere Korrelation zwischen den Parametern der aufeinanderfolgenden Sprachabschnitte
erreicht, welche wiederum zu einer effizienteren, d.h. bitsparenden Codierung ausgenützt
werden kann, sodass die Gesamtdatenrate trotz erhöhter Frame-Rate nicht erhöht, die
Sprachqualität hingegen erheblich verbessert wird. Diese spezielle, erfindungsgemässe
Codierung der Sprachparameter ist nachstehend näher erläutert.
[0036] Der Grundgedanke der erfindungsgemässen Parameter-Codierung ist das sog. Blockcodierungsprinzip,
d.h., die Sprachparameter werden nicht für jeden einzelnen Sprachabschnitt unabhängig
voneinander codiert, sondern jeweils zwei oder drei Sprachabschnitte werden zu einem
Block zusammengefasst und innerhalb dieses Blocks erfolgt die Codierung der Parameter
aller zwei oder drei Sprachabschnitte nach einheitlichen Regeln und zwar derart, dass
jeweils nur die Parameter des ersten Abschnitts in vollständiger Form codiert werden,
während die Parameter des bzw. der übrigen Sprachabschnitte in differentieller Form
codiert oder eventuell gänzlich weggelassen bzw. substituiert werden. Die Codierung
innerhalb jedes Blocks wird ferner in Berücksichtigung der typischen Eigenschaften
der menschlichen Sprache unterschiedlich vorgenommen je nach dem, ob es sich um einen
stimmhaften oder einen stimmlosen Block handelt, wobei für den Stimmhaftigkeitscharakter
des Blocks jeweils der erste Sprachabschnitt darin bestimmend ist.
[0037] Unter Codierung in vollständiger Form wird die übliche Codierung der Parameter verstanden,
bei der z.B. für den Pitch-Parameter 6 bit, für den Lautstärkeparameter 5 bit und
(bei einem z.B. zehnpoligen Filter) für die ersten vier Filterkoeffizienten je 5 bit,
für die nächsten vier je 4 bit und für die beiden letzten 3 bzw. 2 bit reserviert
werden. (Die abnehmende Bitanzahl für die höheren Filterkoeffizienten erklärt sich
daraus, dass die gewöhnlich verwendeten Reflexionskoeffizienten im Betrag mit steigender
Ordnungszahl abnehmen und im wesentlichen nur die Feinstruktur des Kurzzeitsprachspektrums
mitbestimmen.)
[0038] Die erfindungsgemässe Codierung ist für die einzelnen Parameter-Typen (Filterkoeffizienten,
Lautstärke, Pitch) unterschiedlich. Sie wird im folgenden am Beispiel von aus jeweils
drei Sprachabschnitten bestehenden Blöcken erläutert.
[0039] Filterparameter (-koeffizienten):
Wenn der Block, d.h. der erste Sprachabschnitt darin stimmhaft (p X 0) ist, werden
die Filterparameter des ersten Abschnitts in vollständiger Form codiert, die Filterparameter
des zweiten und des dritten Abschnitts hingegen in differentieller From, d.h., nur
in Form ihrer Differenz gegenüber den entsprechenden Parametern des ersten bzw. gegebenenfalls
auch des zweiten Abschnitts. Für die jeweilige Differenz wird z.B. um ein Bit weniger
veranschlagt als für die vollständige Ebrm, die Differenz eines 5-bit-Parameters wird
also z.B. durch ein 4-bit-Wort dargestellt, u.s.f. Im Prinzip könnte so auch der letzte,
nur 2 bit umfassende Parameter codiert werden, allerdings wäre dies bei nur 2 bit
wenig sinnvoll. Der letzte Filterparameter des zweiten und des dritten Abschnitts
wird daher entweder durch den des ersten Abschnitts ersetzt oder gleich Null gesetzt,
was in beiden Fällen die Uebertragung erspart.
[0040] Gemäss einer ebenfalls bewährten Variante können die Filterkoeffizienten des zweiten
Sprachabschnitts auch gleich mit denen des ersten Abschnitts angenommen werden und
brauchen demzufolge überhaupt nicht codiert bzw. übertragen zu werden. Die dabei freiwerdenden
Bits können dazu verwendet werden, die Differenz der Filterparameter des dritten Abschnitts
zu denen des ersten Abschnitts mit grösserer Auflösung zu codieren.
[0041] Im stimmlosen Fall, d.h. also wenn der erste Sprachabschnitt des Blocks stimmlos
ist (p = 0), erfolgt die Codierung in anderer Weise. Zwar werden die Filterparameter
des ersten Abschnitts wieder voll, d.h. in vollständiger Form bzw. voller Bitlänge
codiert, die Filterparameter der beiden übrigen Abschnitte werden jedoch nicht differentiell,
sondern ebenso in vollständiger Form codiert. Damit dennoch eine Bitreduktion möglich
ist, wird von der Tatsache Gebrauch gemacht, dass im stimmlosen Fall die höheren Filterkoeffizienten
wenig zum Klangbild beitragen, und dementsprechend werden die höheren Filterkoeffizienten,
z.B. ab dem siebenten, überhaupt nicht codiert bzw. übertragen. Syntheseseitig werden
sie dann als Null interpretiert.
[0042] Lautstärkeparameter (Verstärkungsfaktor):
Bei diesem Parameter erfolgt die Codierung im stimmhaften und im stimmlosen Falle
weitestgehend oder in einer Variante sogar vollständig gleich. Der Parameter des ersten
und des dritten Abschnitts wird jeweils voll codiert, der des mittleren Abschnitts
in Form seiner Differenz zu dem des ersten Abschnitts. Im stimmhaften Falle kann der
Lautstärkeparameter des mittleren Sprachabschnitts auch gleich wie der des ersten
Abschnitts angenommen werden und braucht demzufolge überhaupt nicht codiert bzw. übertragen
zu werden. Der syntheseseitige Decoder erzeugt dann diesen Parameter selbsttätig aus
dem Parameter des ersten Sprachabschnitts.
[0043] Pitch-Parameter:
Die Codierung des Pitch-parameters erfolgt für stimmhafte und für stimmlose Blöcke
gleich, und zwar so wie die der Filterkoeffizienten im stimmhaften Falle, d.h. für
den ersten Sprachabschnitt (z.B. 7 bit) voll und für die beiden übrigen Abschnitte
differentiell. Die Differenzen werden dabei vorzugsweise mit 3 bit dargestellt.
[0044] Eine Schwierigkeit ergibt sich jedoch, wenn innerhalb eines Blocks nicht alle Sprachabschnitte
stimmlos oder stimmhaft sind, der Stimmhaftigkeitscharakter also wechselt. Zur Behebung
dieser Schwierigkeit wird gemäss einem weiteren Gedanken der Erfindung ein solcher
Wechsel durch ein spezielles Codewort angezeigt, indem die anstatt der dann den darstellbaren
Differenzbereich in der Regel ohnehin übersteigende Differenz zum Pitch-Parameter
des ersten Sprachabschnitts durch dieses Codewort ersetzt wird. Das Codewort hat dabei
natürlich dasselbe Format wie die Pitch-Parameter-Differenzen.
[0045] Im Falle eines Wechsels von stimmhaft zu stimmlos, also p ≠ 0 zu p = 0, ist klar,
wie das Codewort syntheseseitig decodiert werden muss - es braucht dann lediglich
der betreffende Pitch-Parameter gleich Null gesetzt zu werden. Im umgekehrten Falle
weiss man jedoch lediglich, dass ein Wechsel stattgefunden hat, aber nicht, wie gross
der betreffende Pitch-Parameter ist. Aus diesem Grunde wird syntheseseitig in diesem
Falle als betreffender Pitch-Parameter ein laufender Mittelwert aus den Pitch-Parametern
einer Anzahl, z.B. 2 bis 7 vorangegangener Sprachabschnitte verwendet.
[0046] Als weitere Sicherung gegen Fehlcodierungen und Fehlübertragungen und auch gegen
Fehlberechnungen der Pitch-Parameter wird syntheseseitig vorzugsweise der decodierte
Pitch-Parameter mit einem laufenden Mittelwert aus den Pitch-Parametern einer Anzahl,
z.B. 2 bis 7 vorangegangener Sprachabschnitte verglichen und beim Ueberschreiten einer
vorgegebenen Maximalabweichung, beispielsweise etwa ± 30% bis
± 60%, durch den laufenden Mittelwert ersetzt.
[0047] Der "Ausreisser" geht dann natürlich auch nicht in die weitere Mittelwertbildung
ein.
[0048] Bei Blöcken mit nur zwei Sprachabschnitten erfolgt die Codierung im Prinzip gleich
wie bei den Blöcken mit drei Abschnitten. Sämtliche Parameter des ersten Abschnitts
werden in vollständiger Form codiert. Die Filterparameter des zweiten Sprachabschnitts
werden bei stimmhaften Blöcken entweder in differentieller Form codiert oder als gleich
wie beim ersten Abschnitt angenommen und dementsprechend überhaupt nicht codiert.
Bei stimmlosen Blöcken werden wiederum auch die Filterkoeffizienten des zweiten Sprachabschnits
in vollständiger Form codiert, dafür werden aber die höheren Koeffizienten weggelassen.
[0049] Der Pitch-Parameter des zweiten Sprachabschnitts wird im stimmhaften und im stimmlosen
Fall wieder gleich codiert, und zwar in Form seiner Differenz zum Pitch-Parameter
des ersten Abschnitts. Für den Fall eines Stimmhaft-Stimmlos-Wechsels innerhalb eines
Blocks wird wiederum ein Code-Wort verwendet.
[0050] Der Lautstärkeparameter des zweiten Sprachabschnitts wird gleich codiert wie im Falle
von Blöcken mit drei Abschnitten, also in differentieller Form oder gar nicht.
[0051] Vorstehend wurde bis auf einige Ausnahmen lediglich von der Codierung der Sprachparameter
auf der Analyseseite des kompletten Sprachverarbeitungssystems gesprochen. Es versteht
sich jedoch von selbst, dass auf der Syntheseseite eine entsprechende Decodierung
der Parameter erfolgen muss, welche Decodierung auch die Erzeugung (vorvereinbarter
Werte) der nicht codierten Parameter mit einschliesst.
[0052] Ferner versteht es sich, dass die Codierung und die Decodierung vorzugsweise per
Software mittels des für die übrige Sprachverarbeitung ohnehin vorhandene Computersystems
durchgeführt wird. Die Erstellung eines geeigneten Programms liegt im Bereich des
Könnens des durchschnittlichen Fachmanns. Ein Beispiel für ein Flussschema eines solchen
Programms, und zwar für den Fall von Blöcken mit je drei Sprachabschnitten, ist in
den Fig. 3 und 4 dargestellt. Die Fluss- _ schemen sind aus sich heraus verständlich,
es sei lediglich erwähnt, dass der Index i laufend die einzelnen Sprachabschnitte
numeriert und zählt, während der Index N = i mod 3 die Nummer der Abschnitte innerhalb
jedes einzelnen Blocks angibt. Die in Fig. 3 enthaltenen Codierungsvorschriften A
1, A
2 und A
3 sowie B
1, B
2 und B
3 sind in Fi
g. 4 detaillierter dargestellt und geben jeweils das Format (Bitzuteilungen) der zu
codierenden Parameter an.
[0053] Die Programme für die Decodierung sind natürlich analog.
1. Redundanzverminderndes Sprachverarbeitungsverfahren nach der Methode der linearen
Prädiktion, wobei analyseseitig das durch Abtastung des gegebenenfalls bandbegrenzten
Analogsprachsignals gewonnene digitale Sprachsignal in Abschnitte eingeteilt wird
und für jeden Sprachabschnitt die Parameter eines Sprachmodellfilters, ein Lautstärkeparameter
und der Pitchparameter (Periode der Stimmbandgrundfrequenz) bestimmt und in codierter
Form zur Uebertragung bereit gestellt bzw. übertragen werden, und wobei syntheseseitig
die Filterparameter, der Lautstärkeparameter und der Pitchparameter decodiert werden
und mit diesen Parametern eine im wesentlichen aus einem Anregungsgenerator und einem
Sprachmodellfilter bestehende Synthesestufe zur Wiedergewinnung des Sprachsignäls
gesteuert wird, dadurch gekennzeichnet, dass die Codierung der Parameter blockweise
über jeweils zwei oder drei aufeinanderfolgende Sprachabschnitte erfolgt, wobei die
Parameter des ersten Sprachabschnitts jeweils in vollständiger Form und wenigstens
ein Teil der-Parameter der übrigen Abschnitte in differentieller Form codiert oder
weggelassen werden.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Codierung der Parameter
in unterschiedlicher Weise vorgenommen wird in Abhängigkeit davon, ob der erste Sprachabschnitt
eines Sprachabschnittblocks stimmhaft oder stimmlos ist.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass im Falle von je drei Sprachabschnitte
umfassenden Blöcken bei stimmhaftem ersten Sprachabschnitt die Filter- und der Pitchparameter
des ersten Abschnitts in vollständiger Form und die Filter- und der Pitchparameter
der beiden übrigen Abschnitte in Form ihrer Differenzen zu den entsprechenden Parametern
des ersten Abschnitts bzw. zweiten Abschnitts codiert werden, und dass bei stimmlosem
ersten Sprachabschnitt Filterparameter höherer Ordnungen weggelassen und die verbleibenden
Filterparameter aller drei Sprachabschnitte in vollständiger Form und die Pitchparameter
gleich wie im stimmhaften Fall codiert werden.
4. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass im Falle von je drei Sprachabschnitte
umfassenden Blöcken bei stimmhaftem ersten Sprachabschnitt die Filter- und die Pitchparameter
des ersten Abschnitts in vollständiger Form, die Filterparameter des mittleren Sprachabschnitts
überhaupt nicht und der Pitchparameter dieses Abschnitts in Form seiner Differenz
zum Pitchparameter des ersten Abschnitts, und die Filter- und der Pitchparameter des
letzten Abschnitts in Form ihrer Differenzen zu den entsprechenden Parametern des
ersten Abschnitts codiert werden, und dass bei stimmlosem ersten Sprachabschnitt Filterparameter
höherer Ordnungen weggelassen und die verbleibenden Filterparameter aller drei Sprachabschnitte
in vollständiger Form und die Pitchparameter gleich wie im stimmhaften Fall codiert
werden.
5. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass im Falle von je zwei Sprachabschnitte
umfassenden Blöcken bei stimmhaftem ersten Sprachabschnitt die Filter- und der Pitchparameter
des ersten Sprachabschnitts in vollständiger Form und die Filterparameter des zweiten
Abschnitts überhaupt nicht oder in Form ihrer Differenzen zu den jeweiligen Parametern
des ersten Abschnitts und der Pitchparameter des zweiten Abschnitts in Form seiner
Differenz zum Pitchparameter des ersten Abschnitts codiert werden, und dass bei stimmlosem
ersten Sprachabschnitt Filterparameter höherer Ordnungen weggelassen und die verbleibenden
Filterparameter beider Sprachabschnitte in vollständiger Form und die Pitchparameter
gleich wie im stimmhaften Fall codiert werden.
6. Verfahren nach Anspruch 3 oder 4, dadurch gekennzeichnet, dass bei stimmhaftem
ersten Sprachabschnitt die Lautstärkeparameter des ersten und des letzten Sprachabschnitts
in vollständiger Form und der des mittleren Abschnitts überhaupt nicht oder in Form
seiner Differenz zum Lautstärkeparameter des ersten Abschnitts codiert werden, und
dass bei stimmlosem ersten Sprachabschnitt die Lautstärkeparameter des ersten und
des letzten Sprachabschnitts in vollständiger Form und der des mittleren Abschnitts
in Form seiner Differenz zum Lautstärkeparameter des ersten Abschnitts codiert werden.
7. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass bei stimmhaftem ersten
Sprachabschnitt der Lautstärkeparameter des ersten Sprachabschnitts in vollständiger
Form und der des zweiten Sprachabschnitts überhaupt nicht oder in Form seiner Differenz
zum Lautstärkeparameter des ersten Sprachabschnitts codiert werden, und dass bei stimmlosem
ersten Sprachabschnitt der Lautstärkeparameter des ersten Abschnitts in vollständiger
Form und der des zweiten Abschnitts in Form seiner Differenz zum Lautstärkeparameter
des ersten Sprachabschnitts codiert werden.
8. Verfahren nach einem der Ansprüche 3 bis 7, dadurch gekennzeichnet, dass bei einem
Wechsel von stimmhaft zu stimmlos oder umgekehrt innerhalb eines Sprachabschnittblocks
der Pitchparameter des betreffenden Abschnitts durch ein spezielles Codewort ersetzt
wird.
9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, dass syntheseseitig bei Auftreten
des Codeworts und wenn der vorhergehende Sprachabschnitt stimmlos war, als entsprechender
Pitchparameter ein laufender Mittelwert aus den Pitchparametern einer Anzahl vorangegangener
Sprachabschnitte verwendet wird.
10. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass
syntheseseitig der decodierte Pitchparameter mit einem laufenden Mittelwert aus den
Pitchparametern einer Anzahl vorangegangener Sprachabschnitte verglichen und bei Ueberschreiten
einer vorgegebenen Maximalabweichung durch den laufenden Mittelwert ersetzt wird.
11. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass
die Länge der einzelnen Sprachabschnitte, für welche jeweils die Sprachparameter ermittelt
werden, höchstens etwa 30 msec, vorzugsweise etwa 20 msec beträgt.
12. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass
die Anzahl Sprachabschnitte pro Sekunde mindestens etwa 55, vorzugsweise mindestens
60 beträgt.
13. Vorrichtung zur Durchführung des Verfahrens gemäss einem der vorangehenden Ansprüche,
mit einem Signalaufbereitungsteil, der das analoge Sprachsignal taktweise abtastet
und die dabei erhaltenen Abtastwerte digitalisiert, mit einem Analyseteil, welcher
das digitalisierte Sprachsignal abschnittsweise analysiert und einen Parameterrechner,
eine Pitchentscheidungsstufe und eine Pitchberechnungsstufe enthält, und mit einer
Codierstufe, welche die vom Analyseteil ermittelten Sprachparameter codiert, dadurch
gekennzeichnet, dass der Analyseteil und die Codierstufe durch einen Rechner oder
ein Rechnersystem gebildet sind, welches zur Durchführung der in einem oder mehreren
der vorangehenden Ansprüche beschriebenen Verfahrensschritte programmiert ist.
14. Vorrichtung nach Anspruch 13, dadurch gekennzeichnet, dass der Analyseteil ein
Multiprozessorsystem mit einem Hauptprozessor (50) und zwei Nebenprozessoren (60,
70) ist, wobei ein Nebenprozessor (60) das Sprachsignal zwischenspeichert, aus dem
zwischengespeicherten Sprachsignal durch eine Inversfiltrierung das Prädikationsfehlersignal
erzeugt und aus diesem, gegebenenfalls nach einer Tiefpassfiltrierung, die normierte
Autokorrelationsfunktion bildet, wobei der Hauptprozessor (50) die eigentliche Analyse
des Sprachsignals durchführt, und wobei der andere Nebenprozessor (70) für die Codierung
der vom Hauptprozessor in Verbindung mit dem ersten Nebenprozessor ermittelten Sprachparameter
verantwortlich ist.