DE3017517A1 - Sprachsyntheseanordnung - Google Patents

Sprachsyntheseanordnung

Info

Publication number
DE3017517A1
DE3017517A1 DE19803017517 DE3017517A DE3017517A1 DE 3017517 A1 DE3017517 A1 DE 3017517A1 DE 19803017517 DE19803017517 DE 19803017517 DE 3017517 A DE3017517 A DE 3017517A DE 3017517 A1 DE3017517 A1 DE 3017517A1
Authority
DE
Germany
Prior art keywords
signal
arrangement according
speech
parameter
circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19803017517
Other languages
English (en)
Other versions
DE3017517C2 (de
Inventor
Leon Wesson Cox
Ajay K Puri
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of DE3017517A1 publication Critical patent/DE3017517A1/de
Application granted granted Critical
Publication of DE3017517C2 publication Critical patent/DE3017517C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • G10L13/04Details of speech synthesis systems, e.g. synthesiser structure or memory management
    • G10L13/047Architecture of speech synthesisers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Analogue/Digital Conversion (AREA)

Description

Sprachsyntheseanordnung
Die Erfindung bezieht sich auf eine Sprachsyntheseanordnung und insbesondere auf eine solche Anordnung, die mit Hilfe kostengünstiger integrierter Schaltungen aufgebaut werden kann.
Sprachsyntheseanordnungen sind bekannt. Beispiele dafür sind in den US-Patentschriften 3 803 358 und 4 092 495 sowie in der Patentanmeldung P 29 17 161.7 beschreiben.
Es wird eine Sprachsyntheseanordnung beschrieben, bei deren Aufbau mehrere integrierbe Schaltungen benutzt werden. Die integrierten Schaltungen enthalten einen Sprachsyntheseprozessor und zwei Fesbspeicher; sie werden anschließend genauer erläutert.
Die Sprachsyntheseanordnung wird im Zusammenhang mit einem Heimcomputer beschrieben; für den Fachmann ist jedoch zu erkennen, daß die zu beschreibende Sprachsyntheseanordnung
0046/0904
in jedem Anwendungsfall eingesetzt werden kann, wo eine in Worten ausgedrückte Informations- oder Befehlsantwort gewünscht wird.
Die Sprachsyntheseanordnung wird unter Verwendu· der in großem Maßstab ausgeführten Peldeffekttransistor-Integrationstechnologie, beispielsweise der P-Kanal-MOS-Technologie, verwirklicht. Vorzugsweise ist die Sprachsyntheseanordnung mit Steuerschaltungen kompatibel, die in verschiedenen elektronischen Geräten vorhanden sind.
Mit Hilfe der Erfindung soll also eine Sprachsyntheseanordnung geschaffen werden, die unter Verwendung kostengünstiger LSI-Schaltungsvorrichtungen aufgebaut ist. Die Sprachsyntheseanordnung soll elektrisch mit vorhandenen TLL-Pegeln kompatibel sein. Die Sprachsyntheseanordnung soll so ausgebildet sein, daß sie von codierten Sprachparametern Gebrauch macht, die in einem Festkörperspeicher gespeichert sind. Außerdem soll die Sprachsyntheseanordnung die Fähigkeit haben, von codierten Sprachparametern Gebrauch zu machen, die über ein Steuergerät eingegeben werden.
Wie dies alles erreicht wird, wird nun beschrieben. Die Sprachsyntheseanordnung wird von einem entsprechend programmierten Mikroprozessor gesteuert, vorzugsweise von der Zentraleinheit eines kommerziellen Computers oder eines Heimcomputers. Die Sprachsyntheseanordnung macht von Datencodier- und Datenkompressionsverfahren Gebrauch, damit die erforderlichen Datenfolgefrequenzen auf ein Minimum herabgesetzt werden. Die codierten Sprachparameter werden zur Steuerung der Reflexionskennlinien eines Digitalfilters in der Sprachsyntheseanordnung verwendet. Das Ausgangssignal des Sprachfilters wird einem Digital-Analog-Umsetzer zugeführt, der es in ein Tonsignal
030046/0904
umsetzt. Das gebildete Tonsignal kann dann als Eingangssignal eines herkömmlichen Verstärker·- und Lautsprechersystems benutzt werden.
Die Erfindung wird nun anhand der Zeichnung beispielshalber erläutert. Es zeigen:
Fig. 1a Ansichten eines Sprachmoduls allein bzw. verbunden un mit einem Heimcomputer,
Fig. 2 ein Blockschaltbild der Hauptbauteile, die vorzugsweise den Sprachmodul bilden,
Fig. 3 ein Logikdiagramm der Eingabe/Ausgabe-Schaltung des Sprachmoduls,
Fig. 4a zusammen ein Blockschaltbild des Sprachsynthese-
und 4 b
Prozessors,
Fig. 5 ein Zeitdiagramm verschiedener Zeitsteuersignale, die vorzugsweise in der Syntheseanordnung verwendet werden,
Fig. 6 ein Diagramm zur Verdeutlichung des Datenkompressionsschemas, das vorzugsweise zur Reduzierung der für die Syntheseschaltung erforderlichen Datenrate angewendet wird,
Fig. 7a zusammen ein Logikdiagramm der Zeitsteuerschaltungen der Syntheseanordnung,
Fig. 8a Logikdiagramme der ROM/CPU-Schnittstellenlogik der 1S Syntheseanordnung,
030046/0904
Fig. 9a zusammen ein Logikdiagramm der Interpolationsund 9b , , ,
schaltung,
Fig. 10a zusammen ein Logikdiagramm des Matrixmultipli-
und 10b ...
zierers.
Fig. 11a zusammen ein Logikdiagramm des Digitalfilters und des Anregungsgenerators der Sprachsyntheseanordnung,
Fig. 12a schematische Schaltbilder des Parameter-Schreib/- und 12b Lese-Speichers, . ' . -
Fig. 13a schematische Schaltbilder des Parameter-Festspei- und 13b chers und ·
Fig. 14a zusammen ein Schaltbild des Chirp-Festspeichers. und 14b
Allgemeine Beschreibung
In Fig. T ist in einer perspektivischen Ansicht ein Sprachmodul dargestellt, das die, erfindungsgemäße Sprachsyntheseanordnung enthalten kann. Der Sprachmodul weist ein Gehäuse 1 auf, das elektronische Schaltungen enthält, die vorzugsweise als (in dieser Figur nicht dargestellte) integrierte Schaltungen ausgeführt sind. Es ist auch ein Zugangsschlitz 2 dargestellt, in den zur Ergänzung der eingebauten,Speicherschaltungen zusätzliche Speichereinheiten eingefügt werden können. Diese Schaltungen werden mittels eines Stiftverbinders 3 an einen kommerziellen Computer oder einen Heimcomputer, ein elektronisches Kinderspielzeug oder irgendein anderes Produkt angeschlossen, bei dem wörtlich wiedergegebene Befehls- oder Informationsantworten erwünscht sind. Für den Tachmann ist
030046/0904
erkennbar, daß natürlich auch andere Verbindungsvorrichtungen benutzt werden können, falls dies erwünscht ist. In Fig. 1b ist eine Ausführungsform dargestellt, bei der der Sprachmodul mittels des Stiftverbinders 3 an einen Heimcomputer 4 angeschlossen ist, der einen Lautsprecher 5 enthält. Fig. 2 zeigt die Hauptblöcke der Syntheseanordnung einschließlich einiger Blöcke innerhalb des Computers, nämlich der Zentraleinheit 19, des NF-Verstärkers 20 und des Lautsprechersystems 5, die für den Betrieb des Sprachmoduls erforderlich sind.
Nachdem nun die äußere Gestalt des Sprachmoduls beschrieben worden ist, werden zunächst Betriebsarten erläutert, in denen der Sprachmodul· arbeiten kann, woran sich eine Beschreibung der Blockschaltbilder und der genauen Logikdiagramme, der verschiedenen, zur Verwirklichung des Sprachmoduls von Fig. 1a benutzten elektronischen Schaltungen anschließt.
Betriebsarten
Der Sprachmodul weist zwei Betriebsarten auf, die anschließend beschrieben werden. Für den Fachmann ist erkennbar, daß diese Betriebsarten ohne weiteres auch modifiziert, in ihrer Anzahl verringert oder in ihren Fähigkeiten erweitert werden können. Entsprechend der gewählten Ausführung weist der hier vorliegende Sprachmodul folgende Betriebsarten auf:
Sprechmodus: In der ersten Betriebsart, dem Sprechmodus, werden codierte Sprachparameter benutzt, die in einem Satz-Fest speicher (ROM) innerhalb des Sprachmoduls enthalten sind. Die codierten Parameter werden in den Sprachsyntheseprozessor-Chip (SSP-Chip) eingegeben, wo sie decodiert und zum Aufbau eines zeitlich veränderlichen Modells des bei der Stimmbildung benutzten Rachen- und Mundraums benutzt werden. Dieses Modell wird zur Erzeugung einer synthetischen Sprachschwingung verwendet.
030046/0904
Externsprechmodus: In der zweiten Betriebsart, dem Externsprechmodus, werden codierte Sprachparameter von einer externen Quelle, vorzugsweise der Zentraleinheit (CPU) eines kommerziellen Computers oder eines Heimcomputers, geliefert. Die codierten Sprachparameter werden über einen Eingabepuffer in den Sprachsyntheseprozessor-Chip eingegeben, wo sie decodiert und zur Erzeugung synthetischer Sprache benutzt werden.
Blockschaltbild des Sprachmoduls
In Fig. 2 ist ein Blockschaltbild der Hauptbauteile dargestellt, aus denen die zu beschreibende Ausführungsform der Sprachsyntheseanordnung zusammengesetzt ist. Die Elektronik des Sprachmoduls kann in drei Hauptfunktionsgruppen unterteilt werden, nämlich in den Sprachsyntheseprozessor 10, eine Steuer-Eingabe/ Ausgabe-Einheit 11 und Festspeicher 12a, 12b. In der zu beschreibenden Ausführungsform sind diese drei Hauptfunktionsgruppen jeweils auf einem eigenen integrierten Schaltungs-Chip integriert; die Ausnahme bildet dabei die Festspeicher-Funktionsgruppe 12, die aus zwei integrierten Schaltungs-Chips besteht. Die codierten Sprachparameter für die gewünschten Sprachausgangssignale sind in der Festspeicher-Funktionsgruppe (ROM-Funktionsgruppe) gespeichert. Weitere codierte Sprachparameter können zusätzlich in eigenen "Wörterbuchmodulen" gespeichert sein, die mit dem Sprachmodul so verbunden werden können, wie in der US-Patentanmeldung SN 003 449 vom 15. Januar 1979 beschrieben ist. Diese zusätzlichen Festspeicher sind mit gestrichelten Linien dargestellt, da sie von der Bedienungsperson in den Sprachmodul eingesteckt werden und normalerweise nicht im System enthalten sind.
Der Sprachsyntheseprozessor 10 ist mit der Festspeicher-Funktionsgruppe über einen Datenweg 15 verbunden, und er steht über einen Datenweg 16 und die Steuer-Eingabe/Ausgabe-
030046/0904
Einheit 11 mit dem Eingabe/Ausgabe-Bus 18 in Verbindung. In einer bevorzugten Ausführung werden Adressen codierter Sprachparameter von einer Zentraleinheit (CPU) eines kommerziellen Computers oder eines Heimcomputers zu den Festspeichern 12A 12B vom Sprachsyntheseprozessor 10 übertragen, da dieser Sprachsyntheseprozessor 10 vorzugsweise mit Puffern ausgestattet ist, die mehrere Festspeicher adressieren können, wie noch zu erkennen ist. Eine Zentraleinheit mit entsprechend .dimensionierten Puffern könnte natürlich Adressen zu mehreren Festspeichern übertragen, so daß es in gewissen Ausführungsformen wünschenswert ist, die Eingangssignale einer Zentraleinheit direkt an die Festspeicher anzulegen.
Der Sprachsyntheseprozessor 10 erzeugt entsprechend Datenrahmen, die in den Festspeichern 12A, 12B oder 13A, 13B gespeichert sind, mittels Synthese menschliche Sprache oder andere Töne. Der Syntheseprozessor macht von einem Parameterinterpolator Gebrauch, wie er in der Patentanmeldung P 29 17 161.7 beschrieben ist. Der Sprachsyntheseprozessor 10· macht von einem Digitalfilter Gebrauch, das in der Patentanmeldung P 28 26 570.5 beschrieben ist. Bei der nachfolgenden Erläuterung der Sprachsyntheseschaltung wird angenommen, daß der Leser die Arbeitsweise des Parameterinterpolators und des Digitalfilters gemäß den zuvor erwähnten Patentanmeldungen grundsätzlich versteht. Der Leser wird daher angeregt, vor dem Einstieg in die nachfolgende genaue Erläuterung der Sprachsyntheseschaltung die erwähnten Patentanmeldungen zu lesen. Der Sprachsyntheseprozessor 10 enthält auch einen Digital-Analog-Umsetzer zum Umsetzen der digitalen Ausgangssignale des Digitalfilters in Analogsignale zur Ansteuerung eines NF-Verstärker- und Lautsprechersystems. Der Sprachsyntheseprozessor 10 enthält außerdem Takt-, Steuer-, Datenspeicher- und Datenkompressionsanordnungen, die nachfolgend näher beschrieben werden.
030046/0904
Steuer-Eingabe/Ausgab.e-Logikeinheit
In Fig. 3 ist die Steuer-Eingabe/Ausgabe-Logikeinheit darge- stellt. Diese Logikeinheit besteht aus drei, jeweils drei Eingänge aufweisenden NAND-Gliedern 31, 32 und 33 mit offenen Kollektoren. Diese NAND-Glieder können der integrierten Schaltung SN 74 LS 10 der Firma Texas Instruments Incorporated, Dallas, Texas, entsprechen. Zwei Eingänge des NAND-Glieds 31 sind an die Versorgungsspannung V33 gelegt. Der dritte Eingang empfängt das Adressenbit 15 (ADD 15) aus der Zentraleinheit. Da zwei Eingangssignale des NAND-Glieds 31 stets einen hohen Signalwert haben, wirkt das NAND-Glied 31 als Negator, so daß es das Ausgangssignal ADD 15 abgibt. Das NAND-Glied empfängt als Eingangssignal das Signal ADD 15 vom Ausgang des NAND-Glieds 31, das Sprachblock-Freigabesignal SBE und das Adressenbit 5 (ADD 5). Das Ausgangssignal des NAND-Glieds hängt daher von SBE, ADD 5 und ADD 15 ab. Dieses Ausgangssignal ist als Schreibwählsignal· (WS) bezeichnet; es wird dem Sprach— Syntheseprozessor 10 zugeführt. Ein Schreibwählbefehl aus der Zentraleinheit ermöglicht dem Sprachmodul, über den in zwei Ubertragungsrichtungen wirksamen Datenbus, 17 acht Datenbits anzunehmen. Das NAND-Glied 33 empfängt als Eingangssignale das Signal ADD 15 vom Ausgang, des NAND-Glieds 31, das Sprachblock-Freigabesignal· (SBE) und das Signal· ADD 5 vom Ausgang des NAND-Giieds 32. Das Ausgangssignal· des NAND-Giieds 33 hängt daher von SBE, ADD 5 und ADD 15 ab. Dieses Ausgangssignal· ist ais Lesewäh^signal· (RS) bezeichnet; es wird dem Sprachsyntheseprozessor 10 zugeführt. Ein Lesewähibefehl· aus der Zentral·einheit ermögiicht dem Sprachmodul, über den Datenbus 17 acht Dateneinheiten abzugeben, oder er veranlaßt den Sprachmodul, gewisse Statussignaie an vorbestimmten Punkten iängs des Datenbus 17 zu erzeug'en.
Außerdem kann der Sprachsyntheseprozessor ein Unterbrechungssignai (INT) erzeugen, das der Zentraieinheit eine Änderung
0 30046/0904
ORIGINAL INSPECTED " -
im Status des Sprachsyntheseprozessors anzeigt, die die Aufmerksamkeit der Zentraleinheit erfordern kann. Die speziellen Stabusänderungen, die die Erzeugung eines Unterbrechungssignals (INT) hervorrufen, werden noch genau erläutert. Der Negator 34 invertiert das seinem Eingang zugeführte Signal READY, so daß er der Zentraleinheit das Signal READY zuführt. Wenn das Signal READY einen hohen Wert hat, ist die Zentraleinheit starr mit dem Sprachsyntheseprozessor 10 verbunden.
Blockschaltbild des Sprachsyntheseprozessors
Die Figuren 4a und 4b bilden zusammen das Blockschaltbild des Sprachsyntheseprozessors 10. Der Sprachsyntheseprozessor enthält sechs Hauptfunktionsblöcke, die bis auf einen in den Figuren 4a und 4b genauer dargestellt sind. Die sechs Hauptfunktionsblöcke sind eine Zeitsteuerlogik 20, eine ROM/CPU-Schnittstellenlogik 21, eine Parameterlade-, Parameterspeicher- und Parameterdecodierlogik 22, ein Parameterinterpolator 23, ein Filter- und Anregungsgenerator 24 und ein Digital-Analog-Umsetzer- und Ausgabeabschnitt 25. Die Hauptfunktionsblöcke werden nun unter Bezugnahme auf die Figuren 5 bis 14 beschrieben.
ROM/CPU-Schnittstellenlogik
Nach den Figuren 4a und 4b koppelt die Schnittstellenlogik 21 den Sprachsyntheseprozessor 10 mit den Festspeichern 12A und 12B und mit der (nicht dargestellten) Zentraleinheit. Der in zwei Ubertragungsrichtungen wirksame 8-Bit-Datenbus 17 (DO bis D7) ist in der folgenden Ausführungsform mit der Zentraleinheit und mit den Eingängen eines fifo"Puffers 2215 verbunden, während die Adressenstifte T bis 8 (ADD1 bis ADD8) und die Befehlsstifte 0 bis 1 (IO bis 11) mit den Festspeichern 12A
030046/0904
und 12B (und,falls benutzt, mit den Festspeichern 13A und 13B) verbunden sind. Die ROM/CPU-Schnittstellenlogik 21 sendet Adresseninformationen von der Zentraleinheit zu den Festspeichern 12A und 12B über ein Adressenregister 213 an die Adressenstifte 1 bis 8. Ein Befehlsregister 210 speichert einen aus drei Bits bestehenden Befehl aus der Zentraleinheit, der vom Befehlsdecodierer 211 decodiert wird. Der Befehlsdecodierer 211 reagiert auf sechs Befehle: Einen Sprechbefehl (SPK), der den Syntheseprozessor veranlaßt, Daten aus dem Festspeicher anzunehmen und in Abhängigkeit von diesen Daten zu sprechen, einen Rückstellbefehl (RST) zum Rückstellen des Syntheseprozessors auf Null, einen Adressenladebefehl· (LA), bei dem vier Bits von der Zentraleinheit an den Stiften D4 bis D7 empfangen und über das Adressenregister 213 und die Stifte ADD1 bis ADD8 als Adressenziffern zu den Festspeichern übertragen werden, einen Lese- und Verzweigungsbefehl· (RB), der den Festspeicher veraniaßt, den Inhalt der vorliegenden und der nachfolgenden Adresse zu erfassen und als Verzweigungsadresse zu benutzen, einen Byte-Lesebefehl (RDBY), der der Zentraleinheit erlaubt, im Festspeicher gespeicherte Daten über den Adressenstift 8 (ADD8) und das Datenregister zu erfassen, und einen Externsprechbefehl (SPKEXT), die Externsprechlogik 253 veranlaßt, ein Decodierersperrsignal· (DDIS) zu erzeugen, das den Befeh^sdecodierer 211 unwirksam macht und der Zentraieinheit ermögiicht, acht Datenbits über die Eingänge DO bis D7 in den FIFO-Puffer 2215 einzugeben. Sobaid der Sprachsyntheseprozessor 10 begonnen hat, al·s Antwort auf einen Sprechbefehl· SPK zu sprechen, spricht er soiange weiter, bis die ROM/CPU-Schnittstel·l·enl·ogik 21 auf einen Rückstell·- befehl· trifft oder das Verknüpfungsglied 207 (siehe Fig. 8a bis 81) eine Codegruppe "Energiewert = 15" feststeht und abhängig davon das Sprechhaiteg^ed 216 zurücksteht. Sobal·d der Sprachsyntheseprozessor 10 begonnen hat, ais Reaktion auf
030046/09 04
einen Externsprechbefehl SPKEXT zu sprechen, setzt er das Sprechen fort, bis das Verknüpfungsglied 207 eine Codegruppe "Energie = 15" feststellt oder von der FIFO-Statuslogik 2230 (siehe Fig. 8a bis 81) ein Pufferleerbefehl (BE) erzeugt wird, was zum Rückstellen des Sprechhalteglieds 216 führt. Wie noch zu erkennen sein wird, wird eine Codegruppe "Energie = 15" als der letzte Datenrahmen in mehreren zur Erzeugung von Wörtern, Ausdrücken oder Sätzen verwendeten Datenrahmen benutzt. Die Befehle LA, RB und RDBY werden vom Befehlsdecodierer 211 decodiert, und sie werden über die ROM-Steuerlogik 217 erneut codiert und über die Befehlsstifte (IO bis 11) zu den Festspeichern übertragen.
Das Sprechhalteglied 216 wird in Abhängigkeit von der Decodierung eines Sprechbefehls SPK oder eines Externsprechbefehls SPKEXT gesetzt; seine Rücksetzung erfolgt (1) während eines Einschaltlöschvorgangs (PUC), der automatisch jedesmal dann auftritt, wenn der Sprachsyntheseprozessor eingeschaltet wird, (2) durch die Decodierung eines Rückstellbefehls RST, (3) durch eine Codegruppe "Energie = 15" in einem Sprachdatenrahmen oder (4) durch einen Pufferleerbefehl BE aus der FIFO-Statuslogik 2230. Das Ausgangssignal TALKD ist ein verzögertes Ausgangssignal, damit alle Sprachparameter vor dem Versuch zu sprechen, in den Sprachsyntheseprozessor eingegeben werden können.
Parameterlade-, Parameterspeicher- und Parameterdecodierlogik
Die Parameterlade-, Parameterspeicher- und Parameterdecodierlogik 2 2 enthält ein Parametereingaberegister 205 mit der Kapazität von sieben Bits, das in Abhängigkeit von einem Lesebefehl RD, der über die Befehlsstifte vom ausgewählten Festspeicher abgegeben wird, über die Sprachladelogik 2250
030046/0904
aus dem Verknüpfungsglied 2251, das als Eingangssignal die Daten vom Stift ADD8 empfängt, serielle Daten aus den Festspeichern empfängt. Ein Schreib/Lese-Speicher 203 (RAM) für codierte Parameter sowie Bedingungsdecodierer und Halteglieder 208 sind so angeschlossen, daß sie die in das Parametereingaberegister 205 eingegebenen Daten empfangen. Wie zu erkennen ist, wird jeder Rahmen aus Sprechdaten in Abschnitten aus drei-bis sechs Bits über das Parametereingaberegister in einem codierten Format in den Schreib/Lese-Speicher 203 eingegeben, in dem der Rahmen zwischengespeichert wird. Jeder der im Schreib/Lese-Speicher 203 gespeicherte codierte Parameter wird vom Parameterfestspeicher 202 in einen Parameter aus zehn Bits umgesetzt und dann im Parameterausgaberegister zwischengespeichert.
Wie unter Bezugnahme auf Fig. 6 noch näher erläutert wird, können die Datenrahmen entweder ganz oder teilweise in das Parametereingaberegister 205 eingegeben werden, was von der Länge des bestimmten einzugebenden Rahmens abhängt. Die Bedingungsdecodierer und Halteglieder 208 reagieren auf bestimmte Abschnitte des Datenrahmens in der Weise, daß Halteglieder für "Wiederholung", "Tonhöhe = 0", "Energie = 0", "alte Tonhöhe" und "alte Energie" gesetzt werden. Die Aufgabe dieser Halteglieder wird anschließend unter Bezugnahme auf die Figuren 8a bis 81 noch erläutert. Die Bedingungsdecodierer und Halteglieder 208 werden zusammen mit verschiedenen Zeitsteuersignalen dazu benutzt, verschiedene. Interpolations-Steuerverknüpfungsglieder 209 zu steuern. Die Verknüpfungsglieder 209 erzeugen ein Sperrsignal, wenn die Interpolation verhindert werden soll, ein Nullparametersignal·, wenn der Parameter auf den Wert "Null" eingestellt werden soll, und ein Parameter-La.defreigabesignal, das unter anderem das Laden der Daten im Paramtereingaberegister 205 in den Schreib/Lese-Speicher 203 ermöglicht.
030046/0 90 4
Parameterinterpolator
Die Parameter im Parameterausgaberegister 201 werden an den Parameter-interpolator 23 angelegt. Die eingegebenen Sprachparameter K1 bis K10 sind einschließlich der Sprachenergie in einem K-Stapel 302 und einer ElO-Schleife 304 gespeichert, während der Tonhöhenparameter in einem Tonhöhenregister 30 5 gespeichert ist. Die Sprachparameter und die Sprachenergie werden über eineUmcodierungslogik 301 dem Matrixmultiplizierer 401 im Filter- und Anregungsgenerator 24 zugeführt. Wenn ein neuer Parameter in das Eingabeparameterregister 201 geladen wird, wird dieser Parameter jedoch nicht sofort in den K-Stapel 302, die E10-Schleife oder das Register 305 eingegeben, sondern der entsprechende Wert im K-Stapel 302, in der E10-Schleife 304 oder im Register 305 durchläuft acht Interpolationszyklen, in denen ein Teil der Differenz zwischen dem derzeitigen Wert im K-Stapel 302, in der E10-Schleife 304 oder im Register 305 und dem Zielwert dieses Parameters im Parameterausgaberegister 301 zum derzeitigen Wert im K-Stapel 302, in der E10-Schleife 304 oder im Register 305 addiert wird.
Im wesentlichen werden die gleichen Schaltungen zur Durchführung der Interpolation der Tonhöhe, der Sprachenergie und der K1 bis K10-Sprachparameter angewendet. Der Zielwert aus dem Parameterausgaberegister 201 wird zusammen mit dem derzeit vorhandenen Wert des entsprechenden Parameters an eine Subtraktionsschaltung 308 angelegt. Eine Wählschaltung 307 wählt entsprechend dem derzeit im Parameterausgaberegister 201 enthaltenen Parameter entweder die gerade vorliegende Tonhöhe aus der Tonhöhenlogik 306 oder den gerade vorliegenden Energieparameter oder K-Koeffizientendatenwert aus dem KE10-Ubertragungsregister 303 aus und legt den entsprechenden Wert an die Subtraktionsschaltung 308 und an eine Verzögerungsschaltung 309 an. Wie zu erkennen ist, kann die Verzögerungsschaltung 309 irgendeinen Verzögerungswort zwischen einer
030046/0904
Verzögerung um ein Bit und einer Verzögerung um drei Bit erzeugen. Das Ausgangssignal der Verzögerungsschaltung 309 und das Ausgangssignal der Subtraktionsschaltung 308 werden der Addierschaltung 310 zugeführt, deren Ausgangssignal an eine Verzögerungsschaltung 311 angelegt wird. Wenn-die Ver- zögerung der Verzögerungsschaltung 309 den Wert Null hat, wird der Zielwert des bestimmten Parameters im Parameterausgaberegister 201 in den K-Stapel 302, die ElO-Schleife oder das Tonhöhenregister 305 eingegeben. Die Verzögerung der Verzögerungsschaltung 311 beträgt drei bis null Bits, wobei eine Verzögerung um drei Bits vorliegt, wenn die Verzögerungsschaltung 309 eine Verzögerung um null Bit hervorruft, so daß die Gesamtverzögerung durch die Wählerschaltung 307, die Verzögerungsschaltung 309, die Verzögerungsschaltung 311, die Addierschaltung 310 und die Subtrahierschaltung 308 konstant bleibt. Durch Steuern der Verzögerung der Verzögerungsschaltungen 309 und 311 wird entweder die gesamte, aus der Subtrahierschaltung 308 ausgegebene Differenz (also die Differenz zwischen dem Zielwert und dem derzeit vorhandenen Wert) oder die Hälfte, ein Viertel oder ein Achtel dieser Differenz wieder zum derzeit vorhandenen Wert des Parameters addiert. Durch Steuern der Verzögerungswerte in der in der Tabelle I angegebenen Weise wird eine relativ glatte,-achtstufige Parameterinterpolation erzielt.
In der Patentanmeldung P 28 26 570.5 ist unter Bezugnahme auf deren Fig. 7 ein Sprachsynthesefilter beschrieben, bei dem im K-Stapel kontinuierlich Sprachkoeffizienten K1 bis K9 bis zu ihrer Aktualisierung gespeichert sind, während der Koeffizient K10 und die Sprachenergie (die in der genannten Patentanmeldung mit dem Buchstaben A gekennzeichnet ist) periodisch ausgetauscht werden. Im Parameterinterpolator 23 sind die Sprachkoeffizienten K1 bis K9 ebenfalls im K-Stapel 302 gespeichert, bis sie aktualisiert werden, während der
030046/0904
Sprachenergieparameter und der Koeffizient K10 im K-Stapel während eines zwanzig Zeitperioden dauernden Betriebsablaufzyklus im Filter- und Anregungsgenerator 24 ihre Plätze tauschen. Zur Erzielung dieser Funktion speichert die E1Ö-Schleife 304 sowohl den Sprachenergieparameter als auch den Koeffizienten K10, und sie gibt diese Werte abwechselnd in den entsprechenden Speicherplatz im K-Stapel 302 ein. Das KE1O-übertragungsregister 303 wird entweder mit dem Koeffizienten K10 oder mit dem Sprachenergieparameter aus der E10-Schleife 30 4 oder dem entsprechenden Sprachkoeffizienten K1 bis K9 aus dem K-Stapel 302 zur Interpolation durch die Schaltungseinheiten 307 bis 311 geladen.
Die Umcodierungslogik 301 führt vorzugsweise mit den Daten aus dem K-Stapel einen Booth-Algorithmus durch, bevor diese Daten an den Matrixmultiplizierer 401 ausgelegt werden. Die Umcodierungslogik 301 ermöglicht daher eine Verkleinerung des Matrixmultiplizierers 401 im Vergleich zu dem in der Patentanmeldung P 28 26 570.5 beschriebenen Matrixmultiplizierer.
Filter- und Anregungsgenerator
Der Filter- und Anregungsgenerator 24 enthält den Matrixmultiplizierer 401, dessen Ausgang mit einem Summiermultiplexer 4 02 verbunden ist. Der Ausgang des Summiermultiplexers 402 ist mit dem Eingang der Summierschaltung 404 verbunden, deren Ausgang wiederum an einen Verzögerungsstapel 406 und einen Multipliziermultiplexer 415 angeschlossen ist. Der Ausgang des Verzögerungsstapels ist mit dem Eingang des Summiermultiplexers 402 und mit einem Y-Halteglied 403 verbunden. Der Ausgang des Y-Halteglieds 403 ist mit einem Eingang des Multipliziermultiplexers 415 verbunden, der auch mit der Beschneidungslogik 425 verbunden ist. Der Ausgang des Multipliziermultiplexers 415 ist mit dem Eingang des Matrixmultipl.izierers 401 verbunden. Der Filter- und Anregungsgenerator
030046/0904
macht von einem Digitalfilter Gebrauch, wie es in der Patentanmeldung P 28 26 570.5 beschrieben ist. In Fig. 4b sind aus Gründen der Klarheit verschiedene weniger bedeutende Verbindungen nicht dargestellt; diese Verbindungen werden jedoch im Zusammenhang mit den Figuren 10a, 10b, 11a, 11b noch beschrieben. Die Anordnung der oben geschilderten Baueinheiten stimmt allgemein mit der Anordnung in Fig. 7 der erwähnten Patentanmeldung P 28 26 570.5 überein; der Matrixmultiplizierer 401 entspricht also dem Element 30', der Summiermultiplexer 402 entspricht den Elementen 37b"1", 37c1 und 37d', die Verknüpfungsglieder 414 (Figuren 11a, 11b) entsprechen dem Element 33', der Verzögerungsstapel 406 entspricht den Elementen 34' und 35', das Y-Halteglied 403 entspricht dem Element 36' und der Multipliziermultiplexer 415 entspricht den Elementen 38a, 38b, 38c und 38d.
Die Stimmhaft-Anregungsdaten werden von einem Stimmlos/ Stimmhaft-Verknüpfungsglied 408 geliefert. Wie noch genauer beschrieben wird, werden die in das Parametereingaberegister 205 eingegebenen Parameter in einem komprimierten Datenformat geliefert. Bei dem angewendeten Datenkompressionsschema wird der codierte Tonhöhenparameter dann, wenn er im Eingaberegister 205.den Wert Null hat, von'den Bedingungsdecodierern und Haltegliedern 208 als eine "Stimmlos"-Bedingung interpretiert. Das Verknüpfungsglied 408 reagiert darauf in der Weise, "daß es Zufallsdaten aus dem Stimmlos-Generator als Anregungseingangssignal liefert. Wenn der codierte Tonhöhenparameter jedoch einen anderen Wert hat, wird er vom Parameterfestspeicher 202 decodiert, in das Parameterausgaberegister 201 geladen und schließlich entweder direkt oder mittels des oben geschilderten Interpolationsschemas in das Tonhöhenregister 305 eingegeben. Auf der Grundlage der von der Zahl im Tonhöhenregister 305 angegebenen Periode wird ein stimmhaftes Anregungssignal aus dem chirp—Festspeicher
030046/090
hergeleitet. Wie in der Patentanmeldung P 28 26 570.5 erläutert ist, kann das stimmhafte Anregungssignal aus einer Impulsfunktion oder einer anderen sich wiederholenden Funktion, beispielsweise einer sich wiederholenden Chirp-Funktion bestehen. In der vorliegenden Ausführungsform ist eine Chirp-Funktion ausgewählt worden, da diese Funktion die "Verschwommenheit" der erzeugten Sprache herabsetzt, da sie offensichtlich die Wirkung der Stimmbänder besser als eine Impulsfunktion nachbildet. Diese Chirp-Funktion wird vom Chirp-Festspeicher wiederholt erzeugt. Der Chirp-Festspeicher 409 wird vom Zählerhalteglied 410 adressiert, wobei die darin enthaltene Adresse in einer 1-Additionschaltung 411 fortgeschaltet wird. Die Adresse im Zählerhalteglied 410 wird weiterhin in der 1-Additionsschaltung 411 fortgeschaltet und über die Rücksetzlogik 412 übertragen, bis ein Größenkomparator 413, der die Größe der Adresse aus der 1-Additionsschaltung 411 mit dem Inhalt des Tonhöhenregisters 305 vergleicht, anzeigt, daß der Wert im Zählerhalteglied 410 gleich oder größer als der Wert im Tonhöhenregister 305 ist, wobei an diesem Zeitpunkt die Rücksetzlogik 412 die Adresse im Zählerhalteglied 410 auf den Wert Null stellt. Beginnend mit dem Adressenwert Null erstreckt sich die Chirp-Funktion im Chirp-Festspeicher 409 über etwa fünfzig Adressen. Das Zählerhalteglied 410 und der Chirp-Festspeicher 409 sind so eingestellt, daß die Adressen mit einem Wert über fünfzig keine Ausgabe eines Abschnitts der Chirp-Funktion aus dem Chirp-Festspeicher 40 9 zum Stimmlos/Stimmhaf^Verknüpfungsglied 408 -bewirkt. Auf diese Weise wird die Chirp-Funktion während eines stimmhaften Sprechens wiederholt mit einer auf die Tonhöhe bezogenen Periode erzeugt.
Systemzeitsteuerung
In Fig. 5 sind die zeitlichen Beziehungen zwischen dem Auftreten verschiedener Zeitsteuersignale dargestellt, die auf dem Chip des Sprachsyntheseprozessors 10 erzeugt werden.
030046/0904
Außerdem ist folgendes dargestellt: Die zeitlichen Beziehungen bezüglich des Zeitpunkts, an dem neue Datenrahmen in den Sprachsyntheseprozessor 10 eingegeben werden ,die zeitliche Beziehung im Zusammenhang mit den an den eingegebenen Parametern durchgeführten Interpolationen, die zeitlichen Beziehungen zu den Zeitperioden des Digitalfilters und die Beziehung der zuvor genannten Größen in bezug auf die Grundtaktsignale.
Der Sprachsyntheseprozessor ist vorzugsweise unter Verwendung digitaler Schaltungsglieder aufgebaut, die mit Vorladung und bedingter Entladung arbeiten; Fig. 5 zeigt daher Taktsignale 01 bis 04, die bei solchen digitalen Verknüpfungsschaltungen mit Vorladung und bedingter Entladung angewendet werden können. Es gibt zwei Haupttaktphasen (01 und 02) und zwei Vorladungs-Taktphasen (03 und 04). Die Taktphase 03 nimmt während der ersten Hälfte der Taktphase 02 einen niedrigen Wert an; sie dient daher als Vorladungs-Taktphase für die Taktphase 02. Zum Takten eines Datenbits ist eine Gruppe von Taktphasen 0/~l bis 0/4 erforderlich und entspricht einer Zeitperiode.
Die Zeitperioden sind mit T1 bis T20 bezeichnet; jede Zeitperiode hat vorzugsweise eine Zeitdauer in der Größenordnung von 5 us. Die Auswahl einer Zeitperiode mit einer Dauer in der Größenordnung von 5 με ermöglicht die Ausgabe von Daten aus dem digitalen Filter mit einer übertragungsgeschwindigkeit von 10 kHz (d.h. mit einer Periode von 100 μΞ), was im Digital-Analog-Ausgabeabschnitt 25 (Fig. 4b) einen Frequenzbereich von 5 kHz ergibt. Abhängig von dem gewünschten Frequenzbereich, von der Anzahl der angewendeten Sprachkoeffizienten und dem verwendeten Typ der digitalen Schaltungsglieder können die Perioden und Frequenzen der Taktsignale und Taktphasen, die in Fig. 5 dargestellt sind, auch beträchtlich geändert werden, falls dies erwünscht ist.
030046/09(K
Wie in der Patentanmeldung P 28 26 570.5 erläutert ist, umfaßt eine Zykluszeit des Digitalfilters im Filter- und Anregungsgenerator 24 vorzugsweise zwanzig Zeitperioden T1 bis T20. Aus Gründen, die hier nicht von Bedeutung sind, weicht die Numerierung dieser Zeitperioden von der Numerierung in der genannten Patentanmeldung ab. Damit für den Leser die Unterschiede in der Numerierung der Zeitperioden verständlicher werden, sind an der Zeitachse 500 der Zeitperioden in Fig. 5 beide Arten der Numerierung angegeben. An der Zeitachse 500 geben die Zeitperioden T1 bis T20, die nicht in Klammern gesetzt sind, die Zeitperioden gemäß der Vereinbarung an, die in der vorliegenden Anmeldung angewendet ist. Die in Klammern gesetzten Zeitperioden bezeichnen dagegen die Zeitperioden entsprechend der Numerierung in der genannten Patentanmeldung P 28 26 570.5. Die Zeitperiode T17 entspricht daher der Zeitperiode (T9).
Bei 501 sind die Parameterzahlsignale (PC) dargestellt. Im vorliegenden Ausführungsbeispiel sind dreizehn Parameterzahlsignale PC, nämlich die Signale PC=O bis PC=12 vorhanden. Die ersten zwölf Signale PC=O bis PC=11 entsprechen den Zeitpunkten, an denen der Sprachenergieparameter, der Tonhöhenparameter und die K1 bis K10-Paramter im Parameterausgaberegister 201 verfügbar sind. Jedes der ersten zwölf Parameterzahlsignale besteht aus zwei Zyklen, nämlich einem Zyklus A und einem Zyklus B. Jeder dieser Zyklen beginnt mit der Zeitperiode T17, und er dauert bis zur nächsten Zeitperiode T17 an. Während jedes Parameterzahlsignals wird der Zielwert aus dem Parameterausgaberegister 201 mit dem vorhandenen Wert im K-Stapel 302 im Parameterinterpolator 320 interpoliert. Während des Zyklus A wird der interpolierte Parameter dem K-Stapel 302, der E10-Schleife 304 und dem Tonhöhenregister während einer entsprechenden Zeitperiode entnommen. Während des Zyklus B wird der neu interpolierte Wert wieder in den
Ü30CH6/09(H
K-Stapel, die ElO-Schleife oder das Tonhöhenregister eingegeben. Das dreizehnte Parameterzahlsignal PC=12 ist zu Zeitsteuerzwecken vorgesehen, so daß alle zwölf Parameter einmal während jeder Interpo'lationsperiode mit der Dauer von 2,5 us interpoliert werden.
Wie im Zusammenhang mit dem Parameterinterpolator 23" von Fig. 4b und der Tabelle I erläutert wurde, werden für jede Eingabe eines neuen Datenrahmens aus den Festspeichern 1 2A und 12B in den Sprachsyntheseprozessor 10 acht Interpolationen durchgeführt. Dies ist in Fig. 5 bei dem Bezugszeichen zu erkennen, wo die Signale DIV1, DIV2, DIV4 und DIV8 dargestellt sind. Diese Zeitsteuersignale treten während spezieller Interpolationszahlen (IC) auf, wie aus der Darstellung zu erkennen ist. Es gibt acht derartige Interpolationszahlen ICO bis IC7. Die Eingabe neuer Daten aus den Festspeichern 12A, 12B in den Sprachsyntheseprozessor erfolgt im Verlauf der Interpolationszahl ICO. Diese neuen Parameterzielwerte werden dann während der nächsten acht Interpolationszahlen IC1 bis ICO benutzt; die vorhandenen Parameter im Tonhöhenregister 305, im K-Stapel 302 und irT der ElO-Schleife 304 werden einmal im Verlauf jeder Interpolationszahl interpoliert. Bei der letzten Interpolationszahl ICO erreicht der derzeitige Wert der Parameter im Tonhöhenregister 305, im K-Stapel 302 und in.der ElO-Schleife 304 schließlich den zuvor bei der letzten Interpolationszahl ICO eingegebenen Zielwert, so daß dann neue Zielwerte als neuer Datenrahmen eingegeben werden können. Da jede Interpolationszahr eine Periodendauer von 2,5 ms hat, beträgt die Periode der Eingabe neuer Datenrahmen in den Sprachsyntheseprozessor 20 ms, was einer Eingabefrequenz von 50 Hz äquivalent ist. Das Signal DIV8 entspricht den Interpolationszahlen, in deren Verlauf ein Achtel der von der Subtrahierschaltung 308 erzeugten Differenz in der Addierschaltung 310 zu den derzeit
030046/0904
vorhandenen Werten addiert wird, während im Verlauf des Signals DIV4 ein Viertel der Differenz addiert wird, usw. Im Verlauf des Signals DIV2 wird demnach die Hälfte der Differenz aus der Subtraktionsschaltung 308 zum derzeitigen Wert des Parameters in der Addierschaltung 310 addiert, während schließlich im Verlauf des Signals DIV1 die gesamte Differenz in der Addierschaltung 310 hinzuaddiert wird. Wie bereits erwähnt wurde, ist die Wirkung dieses Interpolationsschemas in der Tabelle I zu erkennen.
Parameterdatenkompression
Wie bereits erwähnt wurde, werden neue Parameter mit einer Frequenz von 50 Hz in den Sprachsyntheseprozessor eingegeben. Im Parameterinterpolator und im Anregungsgenerator 24 (Fig. 4b) werden die Tonhöhendaten, die Energiedaten und die Parameter K1 bis K10 gespeichert und als digitale 10-Bit-Binärzahlen benutzt. Wenn jeder dieser zwölf Parameter bei einer Folgefrequenz von 50 Hz aus einer externen Quelle, beispielsweise aus den Festspeichern 12A und 12B, mit einer 1O-Bit-Binärzahl aktualisiert würde, wäre eine Bitfolgefrequenz von 12x10x50 oder 6000 Kz erforderlich. Bei Anwendung der noch zu erläuternden Datenkompression wird die für den Sprachsyntheseprozessor 10 erforderliche Bitfolgefrequenz auf einen Wert in der Größenordnung von 1000 bis 1200 Bits pro Sekunde herabgesetzt. Noch wichtiger ist dabei jedoch, daß sich gezeigt hat, daß diese angewendeten Sprachkompressionsverfahren im Vergleich zur Anwendung der Daten in unkomprimierter Form keine merkliche Verschlechterung der dadurch erzeugten Sprache zur Folge haben.
Das angewendete Datenkompressionsverfahren ist in Fig. 6 in einer Übersicht dargestellt. In dieser Figur ist zu erkennen, daß vier verschiedene Längen der Datenrahmen dargestellt sind.
Q30046/090A
Ein mit "stimmhafter Rahmen" bezeichneter Datenrahmen hat eine Länge von 56 Bits, während ein anderer, mit "stimmloser Rahmen" bezeich .eter Datenrahmen eine Länge von 33 Bits hat. Ein weiterer, mit "Wiederholungsrahmen" bezeichneter Datenrahmen hat eine Länge von elf Bits, während ein weiterer Rahmen abwechselnd als "Nullenergie-Rahmen" oder "Energie = 15-Rahmeii" bezeichnet wird; die Länge des zuletzt genannten beträgt nur vier Bits. Der "stimmhafte Rahmen" ergibt vier Datenbits für einen codierten Energieparameter und codierte vier Bits für den Parameter K7. Sechs Datenbits sind für jeden von drei codierten Parametern, nämlich für die Tonhöhe, den Parameter K1 und den Parameter K2, reserviert. Außerdem sind fünf Datenbits für die Parameter K3 bis K6 reserviert. Weitere drei Datenbits sind für jeden von drei codierten Sprachparametern K8 bis K10 vorgesehen, und ein weiteres Bit ist schließlich für ein Wiederholungsbit reserviert.
Anstelle der Eingabe von zehn Binärdatenbits für jeden Parameter wird ein codierter Parameter eingegeben, der in einen 10-Bit-Parameter umgesetzt wird, in dem der Parameter Festspeicher 202 mit dem codierten Parameter adressiert wird. Der Koeffizient K1 kann also beispielsweise entsprechend der aus sechs Bits bestehenden Codegruppe für K1 irgendeinen von sechsunddreißig verschiedenen Werten haben; jeder der sechsunddreißig verschiedenen Werte ist dabei ein aus zehn Bits bestehender numerischer Koeffizient, der im Festspeicher gespeichert ist. Die Koeffizienten K1 und K2 können daher irgendeinen von sechsunddreißig verschiedenen Werten haben, während die Koeffizienten K3 bis K6 einen von zwanzig verschiedenen Werten haben können. Der Koeffizient K7 kann einen von sechzehn verschiedenen Werten haben, und die Koeffizienten K8 bis K10 können einen von acht verschiedenen Werten haben. Der codierte Tonhöhenparameter besteht aus sechs Bits, so daß er bis zu vierundsechzig verschiedene Werte haben kann.
030046/0904
Nur dreiundsechzig dieser Werte geben jedoch tatsächlich Tonhöhenwerte wieder; eine Tonhöhen-Codegruppe 000000 wird dazu benutzt, einen stimmlosen Datenrahmen zu kennzeichnen. Die codierten Energieparameter bestehen aus vier Bits, so daß daher im Normalfall sechszehn 10-Bit-Werte verfügbar werden; ein codierter Energieparameter mit dem Wert 0000 zeigt jedoch einen stillen Rahmen an, wie er als Pause in und zwischen Wörtern, Sätzen und dergleichen auftritt. Ein codierter Energieparameter mit dem Wert 1111 (Energie = 15) wird andererseits dazu verwendet, das Ende eines Abschnitts der gesprochenen Sprache zu kennzeichnen, wodurch angezeigt wird, daß der Sprachsyntheseprozessor mit dem Sprechen aufhören soll. Von den sechzehn verfügbaren Codegruppen für den codierten Energieparameter werden also nur vierzehn zur Kennzeichnung verschiedener Sprachenergiewerte mit jeweils zehn Bits benutzt.
Die codierten Koeffizienten K1 und K2 bestehen aus mehr Bits als die codierten Koeffizienten K3 bis K6, die ihrerseits mehr Bits als die codierten Koeffizienten K7 bis K10 enthalten, da der Koeffizient K1 einen größeren Einfluß auf die Sprache als der Koeffizient K2 hat, der wiederum einen größeren Einfluß auf die Sprache als der Koeffizient K3 hat, was sich durch die Koeffizienten mit niedrigerer Wertigkeit fortsetzt. Aufgrund der größeren Bedeutung der Koeffizienten K1 und K2 im Vergleich zu den Koeffizienten K8 bis K10 werden im codierten Format zur Bildung der Koeffizienten K1 und K2 mehr Bits als zur Bildung der Koeffizienten K3 bis K6 oder K7 bis K10 verwendet.
Es hat sich auch gezeigt, daß zur richtigen Nachbildung der Sprache die Daten für die stimmhafte Sprache mehr Koeffizienten als die Daten für die stimmlose Sprache benötigen; wenn
030046/0904
also stimmlose Rahmen auftreten, werden die Koeffizienten K5 bis K10 nicht aktualisiert, sondern lediglich auf den Wert Null gestellt. Der Sprachsyntheseprozessor bemerkt die Aus·- gabe eines stimmlosen Rahmens, weil der codierte Tonhöhenparameter den Wert 000000 hat. .
Ferner hat sich gezeigt, daß während des Sprechens häufig Augenblicke auftreten, in denen sich die Parameter im Verlauf einer Periode von 20 ms nicht merklich ändern... Insbesondere bleiben die Koeffizienten K1 bis KlO häufig nahezu unverändert. Daher wird ein Wiederholungsrahmen benutzt, bei dem neue Energie- und Tonhöhenparameter in den Sprachsyntheseprozessor eingegeben werden, während jedoch die zuvor eingegebenen Koeffizienten K1 bis K10 unverändert bleiben. Der Sprachsyntheseprozessor erkennt den aus zehn Bits bestehenden Wiederholungsrahmen, da das tiiederholungsb± zwischen dem Energiekoeffizienten und dem Tonhöhenkoeffizienten dann in Erscheinung tritt, während es normalerweise abgeschaltet 1st. Wie bereits erwähnt wurde, treten zwischen dem Sprechen oder am Ende des Sprechens Pausen auf, die dem Sprachsyntheseprozessor vorzugsweise angezeigt werden; solche Pausen werden von einem codierten.Energierahmen angezeigt, der den Wert Null hat, wobei der Sprachsyntheseprozessor an diesem Zeitpunkt erkennt, daß nur vier Bits für diesen Rahmen abgetastet werden müssen. Ebenso werden nur vier Bits abgetastet,- wenn der Rahmen "Energie = 15" auftritt. Die Verwendung codierter· Werte' für. die Sprache anstelle tatsächlicher 'Werte hat, eine- Reduzierung der Datenfolgefrequenz auf 55x50 oder 2750 Bits pro Sekunde zur Folge. Durch die zusätzliche Anwendung variabler Rahmenlängen gemäß Fig. 6 kann die Datenfolgefrequenz weiter auf einen Wert in der Größenordnung von 1000 bis 1200 Bits pro Sekunde reduziert werden, was vom Lautsprecher und vom gesprochenen Material abhängt.
030046/0904
Logikschaltbild des Sprachsyntheseprozessors
Die verschiedenen Abschnitte des Sprachsyntheseprozessors von Fig. 4a und Fig. 4b werden nun unter Bezugnahme auf die Figuren 7a bis 14b beschrieben, die die Einzelheiten der digitalen Schaltungen zeigen, die zur Bildung des Sprachsyntheseprozessors 10 auf einem Halbleiter-Chip verwirklicht sind. In der folgenden Erörterung der erwähnten Figuren wird auf digitale Signale Bezug genommen, die an vielen Punkten der Schaltung zur Verfügung stehen. Es sei daran erinnert, daß in P-Kanal-MOS-Bauelementen der Binärwert "0" einer negativen Spannung, d.h. der Spannung Vdd, entspricht, während der Binärwert "1" der Spannung 0 V, d.h. Vss, entspricht. Ferner sei daran erinnert, daß die in den erwähnten Figuren dargestellten P-Kanal-MOS-Transistoren leiten, wenn an ihren Gate-Elektroden der Binärwert "0", d.h. eine negative Spannung, angelegt ist. Wenn auf ein Signal Bezug genommen wird, über dem kein Strich angebracht ist, dann ist dieses Signal als "wahres" Signal zu interpretieren; dies bedeutet, daß der Binärwert "1" die Anwesenheit des Signals (Vss) angibt, während der Binärwert "0" das Fehlen des Signals (Vdd) angibt. Signalnamen , über denen ein Strich angebracht ist, sind daher als "falsch" zu interpretieren, was bedeutet, daß der Binärwert "0" (Vdd) die Anwesenheit des Signals anzeigt, während der Binärwert " 111 (Vss) das Fehlen des Signals anzeigt. Ferner sei bemerkt, daß die Zahl Drei in getakteten Verknüpfungsgliedern anzeigt, daß die Taktphase.03 als Vorladetakt benutzt wird, während die Zahl Vier in einem getakteten Verknüpfungsglied anzeigt, daß die Taktphase 04 als Vorladetakt benutzt wird. Der Buchstabe S im Verknüpfungsglied zeigt an, daß es statisch betrieben wird.
030046/0904
Zeitsteuerschaltung
Die Figuren 7a und 7b bilden zusammen das genaue Logikschaltbild der Zeitsteuerschaltung für den Sprachsyntheseprozessor TO Der Zähler 510 ist ein Pseudozufalls-Schiebezähler mit einem Schieberegister 510a und einer Rückkopplungslogik 510b. Der
Zähler 510 führt eine Pseudozufallszählurig durch, und die
nicht negierten und die negierten Ausgangssignale des Schieberegisters 510a werden in den Eingangsabschnitt 511 eines
programmierbaren Zeitsteuerfeldes (PLA) eingegeben. Die von
dem programmierbaren Zeitsteuerfeld decodierten verschiedenen T-Zeitperioden sind an den jeweiligen Ausgangsleitungen angegeben. Der Abschnitt 511c des programmierbaren Zeitsteuerfeldes ist mit einer programmierbaren Ausgabe-Zeitsteuerlogik 512
verbunden, die verschiedenen Kombinationen und Folgen von
Zeitperiodensignalen, beispielsweise T ungerade, T10 bis T18, usw., erzeugt. Die Abschnitte 511a und 511b des programmier-baren Zeitsteuerfeldes 511 werden anschließend noch beschrieben .
Die Parameterzahl, mit der der Sprachsyntheseprozessor arbeitet, wird von einem Parameterzähler 513 festgehalten. Der Parameterzähler 513 enthält eine 1-Additionsschaltung und Schaltungseinheiten, die auf das Signal SLOW und in einer anderen
Ausführungsform das Signal SLOW D ansprechen. Beim Signal SLOW wiederholt der Parameterzähler den Zyklus A der Parameterzahl zweimal (für insgesamt drei A-_Zyklen) , bevor er in den Zyklus B eintritt. Dies bedeutet, daß die Periodendauer der Parameterzahl verdoppelt wird, so daß die an das Digitalfilter angelegten Parameter mit der Hälfte der normalen Geschwindigkeit
aktualisiert und interpoliert werden.. Damit gewährleistet wird, daß die eingegebenen Parameter im Verlauf von Langsamsprechvorgängen nur einmal während jeder Parameterzahl interpoliert werden, enthält jede Parameterzahl· drei A-Zyklen, auf die ein
0300A6/0904
B-Zyklus folgt. Es sei daran erinnert, daß während des Α-Zyklus die Interpolation begonnen wird, während im B-Zyklus die interpolierten Ergebnisse wieder in den K-Stapel 302, die E10-Schleife 304 oder das Tonhöhenregister 305 eingegeben werden. Die reine Wiederholung des Α-Zyklus hat daher nur die Wirkung, daß der gleiche Wert des Sprachparameters nocheinmal berechnet wird; da er jedoch nur einmal wieder in den K-Stapel 302, die E10-Schleife 304 oder das Tonhöhenregister 30 5 eingegeben wird, werden nur die Ergebnisse der Interpolation unmittelbar vor Beginn des B-Zyklus festgehalten.
In einer Alternativausführung kann dem Sprachmodul befohlen werden, langsamer als normal zu sprechen. In der vorliegenden Ausführung ist diese Fähigkeit jedoch unerwünscht; die Eingänge SLOW und SLOWD sind daher an Vss gelegt.
Da der Parameterzähler 513 eine 1-Additionsschaltung enthält, repräsentieren die von ihm ausgegebenen Ergebnisse PC1 bis PC4 in binärer Form die bestimmte Parameterzahl, in der der Sprachsyntheseprozessor arbeitet. Das Ausgangssignal PCO zeigt an, in welchem Zyklus, A oder B, die Parameterzahl sich befindet. Der Parameterdezimalwert der Parameterzahl wird vom Zeitsteuerfeld 514 decodiert, die mit der Bezeichnung PC=O, PC=I, PC=7 usw. neben dem Zeitsteuerfeld 514 angegeben ist. Die Beziehung zwischen den verschiedenen Parametern und den Werten der Parameterzahl PC ist in Fig. 6 angegeben. Die Ausgangsabschnitte 511a und 511b des programmierbaren Zeitsteuerfeldes 511 sind auch mit den Aus- ' " gangen des programmierbaren Zeitsteuerfeldes 514 verbunden, so daß die K-Übertragungssignale (TK) während der Zeitperiode T9 bei PC=2, während T8 bei PC=3, während T7bei PC=4 usw. bis während T1 bei PC=10 einen hohen Wert annehmen. In der gleichen Weise nimmt auch ein Parameterlade-Zeitsteuersignal (LDP) während der Zeitperiode T5 bei PC=O, während T1 bei PC=1, während T3 bei PC=2 usw. bis während T7 bei PC=11 einen hohen Wert an. Wie zu erkennen ist, wird das Signal TK dazu benutzt, die Datenübertragung aus dem Parameterausgaberegister 201 in die Subtraktionsschaltung 308 zu steuern, wobei
030046/0904
diese übertragung in verschiedenen T-Zeitperioden entsprechend der bestimmten Parameterzahl im Parameterzähler 513 stattfindet, damit sichergestellt wird, daß der passende Parameter aus dem KEIO-Übertragungsregister 303 ausgegeben wird. Das Parameterladesignal LDP wird im Zusammenhang mit dem Parametereingaberegister dazu benutzt, die.Anzahl der Bits zu steuern, die in dieses Register eingegeben werden, was entsprechend der dem Parameter zugeordneten Anzahl von Bits ausgeführt wird, der dann in Übereinstimmung mit der Anzahl von Bits in jedem codierten Parameter gemäß Fig. 6 geladen wird.
Der Interpolationszähler 515 enthält ein Schieberegister und eine 1-Additionsschaltung zum binären Zählen des bestimmten Interpolationszyklus, in dem der Sprachsyntheseprozessor arbeitet. Die Beziehung zwischen dem bestimmten Interpolationszyklus, in dem der Syntheseprozessor arbeitet, und den Zeitsteuersignalen DIV1, DIV2, DIV4 und DIV8, die aus dem Prozessor hergeleitet werden, wird im Zusammenhang mit Fig. 6 noch näher erläutert; eine genaue Beschreibung ist an dieser Stelle daher überflüssig. Es sei jedoch bemerkt, daß der Interpolationszähler 515 ein 3-Bit-Halteglied 516 enthält, das während der Zeitperiode T1 geladen wird. Das Ausgangssignal des 3-Bit-Halteglieds 516 wird von den Verknüpfungsgliedern 517 decodiert, damit die zuvor erwähnten Zeitsteuer— signale DIV-1 bis DIV8 erzeugt werden. Der i-nterpolation.szähler 515 arbeitet abhängig von einem Signal RESETF aus dem Parameterzähler 513 in der Weise, daß er nur nach dem Auftreten von PC=I2 fortgeschaltet werden- kann. .
ROM/CPU-Schnittstellenlogik
Die Figuren 8a bis 81, die ein Gesamtschaltbild darstellen, zeigen ein genaues Logikdiagramm■der ROM/CPU-Schnittstellenlogik 21. Das Parämetereingaberegiöter 205 ist ein 7 -Bit-Schieberegister,, wobei die meisten Stufen dieses Schieberegisters
030046/0904
eine Länge von zwei Bits haben. Die Stufen haben in der vorliegenden Ausführungsform die Länge von 2 Bits, da die Festspeicher 12A und 12B Daten mit der halben Frequenz ausgeben, mit der sie normalerweise in den Sprachsyntheseprozessor 10 getaktet werden.
Die codierten Daten im Parametereingaberegister 205 werden über die Leitungen INO bis IN5 in den Schreib/Lese-Speicher 20 für codierte Parameter eingegeben, der von den Signalen PC1 bis PC4 adressiert wird, damit angezeigt wird, welcher codierte Parameter dann abgespeichert wird. Der Inhalt des Schieberegisters 205 wird von dem auf die Signalwerte "1" ansprechenden Verknüpfungsglied 207, von dem auf die Signalwerte "0" ansprechenden Verknüpfungsglied 206 und vom Wiederholungshalteglied 208a getestet. Wie zu erkennen ist, prüft das Verknüpfungsglied 206, ob alle vier niedrigstwertigen Bits des Registers 205 den Wert "0" haben, während das Verknüpfungsglied 207 prüft, ob alle diese Bits den Wert "1" haben. Das Verknüpfungsglied 207 arbeitet auch abhängig von den Signalen PCO, DIV1, T16 und PC=O, so daß der "0"-Zustand nur während der Zeitperiode geprüft wird, in der der codierte Energieparameter in das Parametereingaberegister 205 geladen wird. Das Wiederholungsbit tritt bei dieser Ausführungsform unmittelbar vor dem codierten Tonhöhenparameter auf; es wird daher während des Α-Zyklus von PC=1 getestet. Das Tonhöhenhalteglied 208b wird in Abhängigkeit davon gesetzt, daß alle Bits des codierten Tonhöhenparameters den Wert "0" haben, so daß es also nicht nur abhängig vom Verknüpfungsglied 206, sondern auch abhängig vom höchstwertigen Bit der Tonhöhen^Daten an der Leitung 222 und abhängig vom Signal PC=1 arbeitet. Das Tonhöhenhalteglied 208b wird immer dann gesetzt, wenn der codierte Tonhöhenparameter den Wert "000000" hat, der anzeigt, daß die Sprache stimmlos sein soll.
030046/0904
Das Halteglied 208 für den Ehergiewert "0" arbeitet abhängig vom Ausgangssignal des Verknüpfungsglieds 206 und vom Signal PC=O, und es prüft, ob als codierter Energieparameter alle eingegebenen Bits den Wert 11O" haben, worauf es abhängig davon gesetzt wird. Das Tonhöhenhalteglied 208d\ für die vorherige Tonhöhe speichert das Ausgangssignal des Tonhöhenhaiteglieds 208b für "Tonhöhe = 0" aus dem vorhergehenden Rahmen der Sprachdaten, während das Energiehalteglied 208e für die alte Sprachenergie das Ausgangssignal des Halteglieds 208c aus den vorhergehenden Rahmen der Sprachdaten speichert. Die Inhalte der Tonhöhenhalteglieder 208d und 208b werden in Vergleichsschaltungen 209c miteinander verglichen, damit ein Sperr signal INHIBIT erzeugt wird.. Das Sperrsignal INHIBIT sperrt die Interpolationsvorgänge, was während eines Wechsels von stimmhafter zu stimmloser Sprache oder von stimmloser zu stimmhafter Sprache erwünscht ist, damit die neuen Sprachparameter automatisch in den K-Stapel 302, die ElO-Schleife 304 und das Tonhöhenregister-305 eingegeben werden, was im Gegensatz zu einer langsameren Interpolation bei der Eingabe in diese Speicherelemente steht. Auch die Inhalte des Halteglieds 208e und des Halteglieds 208c werden von einem NAND-Glied 209d zur Interpolationssperrung bei einem übergang von einem nichtsprechenden Datenrahmen zu einem sprechenden Datenrahmen geprüft. Die Ausgangssignale des NAND-Glieds 209d und der Vergleichsglieder 209c werden an ein NAND-Glied 209e angelegt, dessen Aüsganggsignal mit Hilfe eines Negators 236 zum Signal INHIBTT negiert wird/ Die Halteglieder 208a bis 208c werden von-einem Verknüpfungsglied 225 rückgesetzt, und die Halteglieder 208d und 20Se werden von einem Verknüpfungsglied 226 rückgesetzt. Wenn das Anregungssignal stimmlos ist, sind die Koeffizienten K5 bis.-.'"-" K10 auf den Wert "0" gesetzt, wie bereits erwähnt wurde. Dies wird zum Teil durch die Wirkung des Verknüpfungsglieds 209b
030046/0904
erreicht, das ein Signal ZPAR erzeugt, wenn die Tonhöhe den Wert "0" hat und wenn der Stand des Parameterzählers größer als 5 ist, was durch das Signal PC5 aus dem Zeitsteuerfeld 514 angezeigt wird.
In den Figuren 8a bis 81 ist auch ein Befehlsregister 210 dargestellt, das aus drei Haltegliedern 210a, 210b und 210c besteht, die die Daten an den Punkten D1, D2 und D3 in Abhängigkeit von einem Befehlslade-Freigabesignal LDCE festhalten. Der Inhalt des Befehlsregisters 210 wird vom Befehlsdecodierer 211.decodiert. Wenn der Befehlsdecodierer 211 einen Befehl LA decodiert, werden die vier Bits an den Stiften D7, D6, D5 und D4 des Datenbus 17 in das Adressenregister 213 eingespeichert. Die Adresse im Adressenregister wird dann über Puffer 214 zu den Stiften ADD1 bis ADD8 und die Festspeicher 12A und 12B angelegt. Außerdem wird der Befehl LA an die RB/LA-Logik 250 angelegt, wo er dazu benutzt wird, das Befehlssignal am Stift 11 zur Steuerung der Festspeicher 12A und 12B zu erzeugen. Die RB/LA-Logik250 erzeugt auch das LAFIN-Signal, das das Ende eines Befehls LA anzeigt.
Wenn der Befehlsdecodierer 211 einen Byte-Lesebefehl (RDBY) decodiert, sind die in den Festspeichern 12A und 12B gespeicherten Daten für eine externe Zentraleinheit zugänglich. Der Byte-Lesebefehl hat zur Folge, daß die nächsten acht Datenbits aus den FesLspeichern 12Aund 12B in das Datenregister 212 gelesen werden. Der RDBY-Befehl wird in ein Verknüpfungsglied 291 einer Datenregister-Steuerschaltung eingegeben. Das Ausgangssignal des Verknüpfungsglieds 291 wird dazu benutzt, die Puffer 212a zu steuern und die im Datenregister 212 enthaltenen Daten an den Stiften DO bis D7 zum Datenbus 17 abzugeben. Wenn dem Befehl RDBY unmittelbar
030046/0 904
ein Befehl LA an den Verknüpfungsgliedern 271 un<^ 272 des Zustandsgeräts 270 vorangeht, erzeugt das über das Verknüpfungsglied 274 übertragene resultierende Signal am Verknüpfungsglied 273 ein Befehlssignal 103. Dieses Befehlssignal 103 wird dazu benutzt, den Zähler in den Festspeichern 212A und 2T2B zu initialisieren. Der Befehl RDBY wird dann von einem Verzögerungszeitgeber 276a, 276b und 276c verzögert, nachdem er die Verknüpfungsglieder 275a und 275b durchlaufen hat. Der Verzögerungszeitgeber wird am Zeitpunkt T2 gesetzt und am Zeitpunkt T17 rückgesetzt. Diese Verzögerung stellt dem Zähler in den Festspeichern 12A und 12B genügend Zeit zur Initialisierung zur Verfügung. Der Befehl RDBY wird auch an ein Verknüpfungsglied 278 des Zustandsgeräts 270 angelegt. Das Ausgangssignal des Verknüpfungsglieds 278 wird an Verknüpfungsglieder 277 angelegt und dazu benutzt, am Ausgang des Verknüpfungsglieds 2 79 das Bytelese-Freigabesignal RDBYEN zu erzeugen. Das Freigabesignal RDBYEN wird dem Verknüpfungsglied 292 in der Datenregister-Steuerlogik 290 zusammen mit den ungeraden T-Zeitsteuersignalen zugeführt und dazu benutzt, die Befehlssignale IÖ2 zu erzeugen, die Daten aus den Festspeichern 12A und 12B und in das Datenregister 212 takten. Wenn dem Befehl RDBY nicht unmittelbar ein Befehl LA vorangeht (was der Fall ist, wenn der Zähler in den Festspeichern 12A und 12B bereits initialisiert ist), wird der Befehl RDBY in das Verknüpfungsglied 281 des Zustandsgeräts 270 eingegeben, und das Befehlssignal 103 sowie die entsprechende, vom Verzögerungszeitgeber 2 76 erzeugte Verzögerung werden nicht angewendet.
Wenn der Befehlsdecodierer 211 einen Lese- und Verzweigungsbefehl (RB) decodiert, kann der Sprachsyntheseprozessor 10 indirekt Bereiche in den Festspeichern 1-2A und 12B adressieren. Dies wird dadurch erreicht, daß der Befehl RB an die
030046/0904
RB/LA-Logik angelegt wird, die die Befehlssignale 11 und 104 erzeugt, die zu den Festspeichern 12A und 12B übertragen worden. Außerdem wird der Befehl RB an den RB-Zeitgeber 252 angelegt, der eine Verzögerung um 240 με ergibt und dann ein Lese- und Verzweigungsbeendigungssignal(RBFIN) erzeugt. Das Signal RBFIN zeigt an, daß der Lese- und Verzweigungsbefehl von den Festspeichern 12A und 12B durchgeführt worden ist. Der Befehl RB wird auch dem Zustandgerät 270 an den Verknüpfungsgliedern 272 und 282 zugeführt. Da die Festspeicher 12A und 12B jedoch während des Lese- und Verzweigungsvorgangs ein internes Befehlssigna L IO erzeugen, hat das Verknüpfungsglied 282 über das Verknüpfungsglied 2 74 die Wirkung, das normalerweise von dem Zustandsgerät 270 erzeugte Befehlssignal 10 unwirksam zu machen.
Wenn der Befehlsdecodierer 211 einen Rückstellbefehl (RST) decodiert, wird dieser Befehl RST in großem Umfang entweder allein oder zusammen mit dem Einschaltlöschsignal· (PUC) dazu benutzt, verschiedene Funktionen im gesamten Sprachsyntheseprozessor 10 zu initialisieren oder zurückzustellen.
Wenn der Befehlsdecodierer 211 einen Sprechbefehl (SPK) decodiert, erzeugt der Sprachsyntheseprozessor 10 synthetische Sprache unter Verwendung codierter Sprachparameter, die in den Festspeichern 12A und 12B gespeichert sind. Dies wird durch die Sprechfreigabelogik 251 erzielt, die ein Sprechfreigabesignal (SPEN) erzeugt, das zum Setzen der Sprechhalteglieder 216a, 216b und 216c benutzt wird. Das Sprechhalteglied. 216a erzeugt ein Sprechstatussignal (TALKST), das im gesamten Sprachsyntheseprozessor 10 dazu benutzt wird, anzuzeigen, daß Sprache erzeugt wird. Die Sprechhalteglieder 216a, 216b und 216c bleiben gesetzt, wenn sie nicht von den Haltegliederr 232a und 232b rückgesetzt werden, was eintritt, wenn (1) ein
030046/0904 BAD ORIGINS.
Einschaltlöschsignal (PUC) und/oder ein Rücksetzsignal (RST) vorliegt, (2) vom Verknüpfungsglied 207 ein Signal "Energie = 15" festgestellt wird oder (3) während des Externsprechmodus (der anschließend noch erläutert wird) ein Signal erzeugt wird, das anzeigt, daß der Puffer leer ist und daß der Sprechdecodierer 211 unwirksam gemacht ist. Der Sprechbefehl SPK wird auch dem Verknüpfungsglied 281 des Zustandsgeräts 270 zugeführt, wo er dazu benutzt wird, ein Sprechbeendigungssignal (SPKFIN) zu erzeugen.
Wenn der Befehlsdecodierer 211 einen Externsprechbefehl (SPKEXT) decodiert, schaltet der Sprachsyntheseprozessor auf den Externsprechmodus um. Im Externsprechmodus werden codierte Sprachparameter aus einer externen Quelle, vorzugsweise der Zentraleinheit eines kommerziellen Computers oder eines Heimcomputers, an den Stiften DO bis D7 des Datenbus eingegeben. Die codierten Sprachparameter an den Stiften DO bis D7 werden in einen FIFO-Pufferspeicher 2215 eingegeben, der als 16x8-Speicher mit Paralleleingabe und Serienausgabe (PISO) organisiert ist. Die codierten Sprachparameter werden über eine FIFO-Steuereinheit 2210 in den FIFO-Speicher 2215 eingegeben. Die FIFO-Steuereinheit 2210 gibt jeweils immer dann ein Datenbyte ein, wenn von der Eingabe/Ausgabe-Logik 260 ein Byte-Schreibsignal (WBYT) erzeugt wird. Die Sprachdaten im FIFO-Speicher 2215 werden seriell in das Parametereingaberegister 205 eingegeben, während der Externsprechmodus vorliegt und die Sprachsynthese stattfindet. Der Externsprechmodus wird folgendermaßen erzielt: Die Externsprechlogik 253, an deren Eingang das Befehlssignal· SPKEXT liegt, erzeugt ein Decodierungssperrsignal (DDIS), das den Befehlsdecodierer 211 unwirksam macht und dadurch sicherstellt, daß die Daten an den Stiften DO bis D7■als Sprachdaten und nicht als Befehlsdaten behandelt werden. Die
046/0904
Externsprechlogik 253 erzeugt auch ein Externsprech-Randsignal (SPKEE), das den FIFO-Speicher 2215 löscht, indem es den FIFO-Zähler 2220 veranlaßt, eine Initialisierung vorzunehmen und ein Löschsignal (CLR) für die FIFO-Steuereinheit 2210 zu erzeugen. Dem FIFO-Speicher 2215 ist auch eine FIFO-Statuslogik 2230 zugeordnet, die zwei Signale erzeugt. Das Signal "Puffer niedrig" (BL) wird erzeugt, wenn der FIFO-Speicher 2215 halb gefüllt ist. Dieses Signal wird dazu benutzt, der Zentraleinheit anzuzeigen, daß der Sprachsyntheseprozessor eine Bedienung erfordern kann. Außerdem erzeugt die FIFO-Statuslogik 2230 ein Signal "Puffer leer" (BE), das anzeigt, daß der FIFO-Speicher 2215 leer ist. Das Signal BE wird dazu benutzt, das Sprechhalteglied 216 über das Verknüpfungsglied 232b zurückzusetzen. Das Signal DDIS wird von der I0-Logik 2240 auch dazu benutzt, ein Serienschiebefreigabesignal (SSE) zu erzeugen, das der FIFO-Steuereinheit 2210 erlaubt, Sprachdaten seriell aus dem FIFO-Speicher 2215 zu schieben und über die Sprachladelogik 225O in das Parametereingaberegister 205 einzugeben. Der ROM/CPU-Schnittstellenlogik 21 ist auch eine Eingabe/Ausgabe-Logik und eine Unterbrechungslogik 2260 zugeordnet. Die Eingabe/ Ausgabe-Logik 260 erzeugt das Befehlslade-Freigabesignal (LDCE), das dem Befehlsregister 210 erlaubt, Befehle zu speichern. Dies wird vom Halteglied 261 erzielt, das vom Einschaltlöschsignal (PUC) oder von den Endsignalen verschiedener Befehle gesetzt wird; ferner wird dies durch das Halteglied 262 erzielt, das vom Ausgangssignal des Halteglieds 261 und vom Decodiersperrsignal (DDIS) , vom Schreibwählsignal (WS) und vom Signal READY gesetzt wird. Das Befehlslade-Freigabesignal wird am Ausgang des Halteglieds 263 erzeugt, wenn (1) gerade kein Befehl ausgeführt wird; (2) der Befehlsdecodierer 211 nicht gesperrt ist; (3) ein Schreibwählsignal vorhanden ist; (4) der Sprachsyntheseprozessor 10 gerade das Schreibwählsignal festgestellt hat (wobei das Signal READY einen hohen Wert hat). Die Eingabe/ Ausgabe-Logik 260 erzeugt auch das Byto-Schreibsignal (WBYT),
030046/0904
das der FIFO-Steuereinheit 2210 ermöglicht, ein aus acht: Bits bestehendes Byte der codierten Sprachparameter in das oberste Niveau des FIFO-Speichers 2215 zu laden. Dies wird unter Verwendung des Halteglieds 264 erreicht, das von einem Schreibwählsignal· (WS) gesetzt wird, wenn folgende Bedingungen vorliegen: (1) der Befehlsdecodierer 211 von einen Decodiersperrsignal (DDIS) gesperrt ist, was anzeigt, daß ein Externsprechbefehl ausgeführt worden ist; (2) das C0-Niveau des FIFO-Speichers 2215 leer ist; (3) der Sprachsyntheseprozessor 10 nicht immer noch einen vorhergehenden Befehl ausführt (wobei das Signal EEADY einen hohen Wert hat). Das Byte-Schreibsignal (WBYT) wird am Ausgang des Verknüpfungsglieds 265 erzeugt. Die Eingabe/Ausgabe-Logik 260 erzeugt das Signal READY am Ausgang des Verknüpfungsglieds 267 als Antwort auf ein Lesewähl- oder Schreibwählsignal "aus der Zentraleinheit. Wenn das Signal READY einen hohen Wert hat, ist die Zentraieinheit mit dem Sprachmodul· verbunden, bis das Signal· READY vom Verknüpfungsglied 266 rückgesetzt wird. Das Verknüpf ungsg^ied 266 bewirkt das Rücksetzen des Signais READY auf den Wert "0", wenn fotgende Signaie auftreten: (1) ein Signal· WBYT am Ausgang des Verknüpfungsglieds 265, das anzeigt, daß das Datenbyte am Datenbus 17 in den FIFO-Speicher 2215 gelesen worden ist; (2) das SR2-Signal, das von den Puffern 212f und 212g des Datenregisters 212 durch die Datenregistersteuereinheit 219 erzeugt wird und anzeigt, daß die durch einen Lesewähibefehl· erzeugten Statussignaie erzeugt worden sind; (3) das RS I-Signal·, das von den Puffern 2T2a bis 212h des Datenregisters 212 durch die Datenregister-Steuereinheit 290 erzeugt wird und anzeigt, daß das 8-Bit— Byte erzeugt worden ist, das durch ein Lescwählsignal aufgerufen worden ist, dem ein Byte-Lesesignal· vorangeht; (4) der Befehl· LDCE, der vom Verknüpfungsgiied 263 erzeugt wird und in das Verknüpfungsgiied 266 eingegeben wird, wobei er
030046/0904
anzeigt, daß ein Befehl in das Befehlsregister 210 eingespeichert worden ist. Die Unterbrechungslogik 2260 erzeugt das Unterbrechungssignal (INT), damit der Zentraleinheit ein Statuswechsel des Sprachsyntheseprozessors 10 angezeigt wird. Die drei von der Zentraleinheit überwachten Statussignale sind: "Puffer leer" (BE) , "Puffer niedrig" (BL.) und "Sprechstatus" (TALKST). Die Signale BE und BL werden von der FIFO-Statusschaltung 2230 erzeugt und über Puffer 212f bzw. 212g ausgegeben. Das Signal TALKST wird von der Sprechhalteschaltung 2 16a erzeugt und über den Puffer 212h ausgegeben. Ein Statuswechsel des Sprachsyntheseprozessors 10, der zu einem Wechsel der Statussignale BE, BL oder TALKST führt, wird von den Verknüpfungsgliedern 2261, 2262 und 2263 der Unterbrechungslogik 2260 festgestellt und führt zu einem Unterbrechungssignal (INT), das durch die Verknüpfungsglieder 2264 und 2265 erzeugt wird. Das Verknüpfungsglied 2265 wird dazu benutzt, das Unterbrechungssignal INT nach dem Knipfanq eines SR2-S.ignals zurückzusetzen, das anzeigt, daß der in den Puffern 212f bis 212h enthaltene Status von der Zentraleinheit gelesen worden ist oder daß ein Rücksetzsignal empEangen worden ist.
Parameterinterpolationslogik
Die Figuren 9a und 9b zeigen zusammen ein Schaltbild der Parameterinterpolationslogik 23. Der K-Stapel 302 enthält zehn Register, die jeweils zehn Informationsbits speichern. Jedes kleine Quadrat repräsentiert dabei ein Speicherbit, das gemäß dor Vereinbarung bei 330 dargestellt ist. Der Inhalt jedes Schieberegisters läuft über Umlauf-Verknüpfungsglieder J I 4 unter der Steuerung durch ein Umiauf-SLeuerglied 3I5 um Der K-Stapel 302 speichert Sprachkoeffizienten K1 bis K9,
030046/0904
BAD ORtGlHAL
und er bewirkt die Zwischenspeicherung des Koeffizienten K10 oder Energieparameters entsprechend der in Fig. 7 der Patentanmeldung P 28 26 570.5 beschriebenen Sprachsyntheseanordnung. Die an verschiedenen Zeitperioden aus dem K-Stapel 302 zur Umcodierungslogik 301 ausgegebenen Daten sind in der Tabelle II dargestellt. In der Tabelle III der Patentanmeldung P 28 26 570.5 sind die vom K-Stapel von Fig. 7 dieser Patentanmeldung ausgegebenen Daten dargestellt. Die Tabelle II der vorliegenden Anmeldung unterscheidet sich von der Tabelle III der erwähnten Patentanmeldung, (1) weil die Umcodierungslogik 301 die gleichen Koeffizienten an den Leitungen 32-1 bis 32-4, an den Leitungen 32-5 und 32-6, an den Leitungen 32-7 und 32-8 und an den Leitungen 32-9 und 32-10 empfängt, da sie auf zwei Information sbits für jedes Bit anspricht, auf das der Matrixmultiplizierer der zuvor genannten Patentanmeldung angesprochen hat, (2) weil der zuvor im Zusammenhang mit Fig. 5 erläuterte Unterschied in der Bezeichnung der Zeitperioden vorliegt und (3) weil der Umcodierungslogik 301 eine Zeitverzögerung zugeordnet ist.
Die Umcodierungslogik 301 koppelt den K-Stapel 302 mit dem Matrixmultiplizierer 4OT (Fig. 10a und 10b). Die Umcodierungslogik 301 enthält vier übereinstimmende Umcodierungsabschnitte 312a bis 313d, von denen nur einer, nämlich der Abschnitt 312a, genau dargestellt ist. Die erste Stufe der Umcodierungslogik, nämlich die Stufe 313 unterscheidet sich grundsätzlich von den Stufen 312a bis 312d, da in dieser erslen Stufe natürlich kein Übertrag vorhanden ist, wie er beispielsweise am Eingang A der Stufen 312a bis 312d aus einer Stufe niedrigerer Ordnung auftritt. Die Umcodierungslogik gibt an jede Stufe eines fünfstufigen Matrixmultiplizierers 401 Ausgangssignale +2, -2, +1 und -1 ab; eine Ausnahme bildet dabei die Stufe Null, die nur die Ausgangssignale -2, +1 und -1 empfängt. Die Umcodierungslogik 301 ermöglicht dem Matrixmultiplizierer, in jeder
030046/0904
Vr ".
Stute anstelle eines Informationsbits zwei Informationsbits unter Verwendung eines Booth -Algorithmus zu verarbeiten. Der Booth -Algorithmus ist in dem Buch "Theory and Application of Digital Signal Processing", Prentice-Hall 1975, Seiten 517 bis 518 erläutert.
Der K10-Koeffizient und der Energieparameter sind in der E10-Schleife 304 gespeichert. Die ElO-Schleife besteht vorzugsweise aus einem 20-stufigen seriellen Schieberegister. Zehn Stufen 304a der E10-Schleife 304 sind vorzugsweise in Serie geschaltet, während weitere zehn Stufen 304b, die ebenfalls in Serie geschaltet sind, auch Parallelausgänge und Paralleleingänge zum K-Stapel 302 aufweisen. Der entsprechende Parameter, entweder der Energieparameter oder der K10-Koeffizient, wird übor Schaltglieder 315, die abhängig von einem NOR-Glied 316 arbeiten, aus der ElO-Schleife 304 zum K-Stapel 302 übertragen, wodurch der Energieparameter aus der E10-Schleife 304 in der Zeitperiode T10 zum K-Stapel 302 übertragen wird, während der K10-Koeffizient in der Zeitperiode T20 aus der E10-Schleife 304 in den K-Stapel übertragen wird. Das NOR-Glied 316 steuert auch das Umlauf-Steuerglied 315 in der Weise, daß der Umlauf im K-Stapel gesperrt wird, wenn Daten übertragen werden.
Das KE1O-Übertragungsregister 303 erleichtert die Übertragung des Energieparameters oder der Sprachkoeffizienten K1 bis K10, die in der E10-Schleife 304 oder im K-Stapel 302 gespeichert sind, über die Wählschaltung 307 zur Additionsschaltung und zur Verzögerungsschaltung 309. Das Register 303 weist neun Stufen auf, die von paarweise zusammengefaßten Nega-Loren gebildet sind; eine zehnte Stufe wird von der Wählschaltung 307 und einem Verknüpfungsglied 317 gebildet, damit
0 3 0 0 4 6/0904 BAD ORIGINAL
die Übertragung der zehn Informationsbits von der E10-Schleife 304 oder vom K-Stapel 302 erleichtert wird. Daten aus dem K-Stapel 302 werden über Verknüpfungsglieder 318 in das Register 303 übertragen, die vom K-übertragungssignal TK gesteuert werden, das der Decodierabschnitt 511b des programmierbaren Zeitsteuerfeldes 511 (Figuren 7a und 7b) erzeugt.. Da der zu interpolierende und in das Register 303 zu schiebende Parameter von der bestimmten Parameterzahl abhängt, in der der Sprachsyntheseprozessor arbeitet, und da der für die Ausgabe aus dem K-Stapel 302 zur Verfügung stehende bestimmte Parameter von der bestimmten ,Zeitperiode abhängt, in der der Sprachsyntheseprozessor arbeitet, erscheint das Signal TK für den Tonhöhenparameter in der Zeitperiode T9, für den Parameter K1 in der Zeitperiode T8, für den Parameter K2 in der Zeitperiode T7 usw., wie die Figuren 7a und 7b zeigen. Der Energieparameter oder der K10-Koeffizient werden abhängig von einem Signal TE10, das das Zeitsteuerfeld 511 erzeugt, über die Verknüpfungsglieder 319 aus der E10—Schleife 304 in das Register 303 getaktet. Nach jedem Interpolationsvorgang, d.h. während des B-Zyklus, werden die Daten über die Verknüpfungsglieder 318 unter der Steuerung durch das Signal TK aus dem Register 303 (1) in den K-Stapel 302 übertragen, wobei an diesem Zeitpunkt die Umlauf-Schaltglieder 314 von den Schaltgliedern 315 gesperrt sind, oder (2) über die Verknüpfungs— glieder 319 zur E10-Schleife 304 übertragen. .
Im Tonhöhenregister 305 ist ein aus zehn Bits bestehender Tonhöhenparameter gespeichert; dieses Tpnhöhenregister 305 enthält ein neunstufiges Schieberegister und Umlaufelemente 305a, die ein weiteres Speicherbit bilden. Der Tonhöhenparameter läuft normalerweise über das Verknüpfungsglied 305a im Register 305 um, ausgenommen dann, wenn an der Leitung 320 unter der Steuerung durch eine Tonhöhen-Interpolationslogik 306 ein gerade interpolierter Tonhöhenparameter geliefert
03004670904
wird. Das Ausgangssignal PTO des Tonhöhenregisters 305 oder das Ausgangssignal des Registers 303 wird von der Wählschaltung 307 an das Verknüpfungsglied 317 angelegt. Die Wählschaltung 307 wird von der Interpolationssteuerlogik 306 auch so gesteuert, daß im Normalfall das Ausgangssignal des Registers 303 dem Verknüpfungsglied 317 zugeführt wird, ausgenommen dann, wenn die Tonhöhe interpoliert werden soll. Die Interpolationssteuerlogik 306 steuert auch die Ausgabe des Tonhöhensignals an die Addierschaltung 308 und die Verzögerungsschaltung 309 während des Α-Zyklus des Parameterzahlsignal PC=1, und sie führt den interpolierten Tonhöhenwert an der Leitung 320 im B-Zyklus des Signals PC=1 wieder in das Register 305 zurück. Das Verknüpfungsglied 317 bewirkt in Abhängigkeit von einem Halteglied 321 die Ausgabe der Tonhöhen-, Energie- oder Koeffizienteninformation an die Addierschaltung 308 und an die Verzögerungsschaltung 309 während der Interpolation. Da die Daten seriell getaktet werden, kann das Takten der Information während eines Α-Abschnitts begonnen werden, und das Signal PCO kann an irgendeinem Zeitpunkt während der übertragung der Information aus dem Register 30 3 oder dem Register 305 in die Addierschaltung 308 oder in die Verzögerungsschaltung 309 auf den Wert "1" umgeschaltet werden; das Verknüpfungsglied 317 wird daher von einem A-Zyklus-Halteglied 321 gesteuert, das mit dem Signal PCO an dem Zeitpunkt gesetzt wird, an dem vom programmierbaren Steuerfeld 511 ein Koeffizientenübertragungssignal TK, ein E1O-Ubertragungssignal TE10 und ein Tonhöhenübertragungssignal TP erzeugt wird.
Das Ausgangssignal des Verknüpfungsglieds 317 wird an die Addierschaltung 308 und an die Verzögerungsschaltung 309 angelegt. Die Verzögerungszeit der Verzögerungsschaltung 309 hängt vom Zustand der vom Interpolationszähler 515 (Fig. 7a, 7b) erzeugten Signale DIV1 bis DIV8 ab. Da am Ausgang des
030046/0904
Verknüpfungsglieds 317 das niedrigstwertige Bit der Daten zuerst auftritt, wird durch Verzögern der Daten in der Verzögerungsschaltung 309 um einen ausgewählten Betrag und durch Anlegen des Ausgangssignals der Addierschaltung 310 zusammen mit dem Ausgangssignal der Subtrahierschaltung 308 erreicht, daß die effektive Größe der Differenz aus der Subtrahierschaltung 308, die anschließend dann von der Addierschaltung 310 wieder zurückaddiert wird, umso kleiner ist, je größer die Verzögerung durch die Verzögerungsschaltung ist. Die Verzögerungsschaltung 311 koppelt das Ausgangssignal der Addierschaltung 310 wieder in die Register 303 und 305 zurück. Die beiden Verzögerungsschaltungen 303 und 309 können bis zu drei Verzögerungsbits einfügen, und wenn die Verzögerungsschaltung 309 ihre maximale Verzögerung hat, hat die Verzögerungsschaltung 311 ihre minimale Verzögerung und umgekehrt. Ein NAND-Glied 322 verbindet den Ausgang der Subtrahierschaltung 308 mit dem Eingang der Addierschaltung 310. Das NAND-Glied 322 arbeitet abhängig vom Ausgangssignal eines ODER-Glieds 323, das seinerseits abhängig vom Signal INHIBIT aus dem Negator 336 (Fig. 8a bis 81) arbeitet. Das NAND-Glied und das ODER-Glied 323 bewirken eine Nullstellung des Ausgangssignals der Subtrahierschaltung 308, wenn das Signal INHIBIT auftritt, außer der Interpolationszähler befindet sich im Stand ICO, wobei in diesem Fall die derzeitigen Werte im K-Stapel 302, in der ElO-Schleife 304 und im P-Register 305 vollständig auf ihre neuen Zielwerte in einer in einem Schritt ausgeführten Interpolation interpoliert werden. Wenn ein stimmloser Datenrahmen (Fig. 6) an den Sprachsyntheseprozessor angelegt wird, werden die Koeffizienten K5 bis K10 durch die Wirkung des Verknüpfungsglieds 324 auf Null gestellt, was die Verzögerungsschaltung 311 mit dem Schieberegister 325 verbindet, dessen Ausgangssignal an die Verknüpfungsglieder 305a und 303' angelegt wird. Das Verknüpfungsglied 324 arbeitet abhängig von dem vom Verknüpfungsglied 209b (Fig. 8a bis 81) erzeugten Nullparametersignal ZPAR.
030046/0904
Das Verknüpfungsglied 326 verhindert einen Schiebevorgang in den Abschnitt 304b der ElO-Schleife 304, wenn ein neu interpolierter Energiewert oder K1O-Parameterwert aus dem Register 303 in den Abschnitt 304b eingegeben wird. Das Verknüpfungsglied 327 steuert die die Stufen des Registers 30 3 verbindenden übertragungsglieder, wobei die Stufen daran gehindert sind, seriell Daten zu verschieben, wenn das Signal .TK oder das Signal TE10 während des Α-Zyklus einen hohen Wert annimmt, d.h. wenn das Register 303 Daten entweder vom K-Stapel 302 oder von der ElO-Schleife 304 empfangen soll, was von den Übertragungsgliedern 318 bzw. 319 gesteuert wird. Der Ausgang des Verknüpfungsglieds 327 ist auch mit verschiedenen Stufen des Schieberegisters 325 und einem Verknüpfungsglied verbunden, das das Verknüpfungsglied 303" mit dem Register 303 verbindet, wodurch bis zu drei Bits, die die zehn höchstwertigen Bits nach der Interpolationsoperation prüfen können, auf Null gestellt werden können.
Matrixmultiplizierschaltung
Die Figuren 10a und 10b bilden zusammen das Schaltbild des Matrixmultiplizierers 401. Matrixmultiplizierer werden manchmal auch als Pipeline-Multiplizierer bezeichnet. Als Beispiel sei auf "Pipeline Multiplier" von Granville E. Ott, veröffentlicht von der Universität von Missouri, verwiesen.
Der Matrixmultiplizierer 401 weist fünf Stufen auf, nämlich die Stufen 0 bis 4 und eine Verzögerungsstufe. Eingangssignale des Matrixmultiplizierers 401 sind die Signale MRO bis MR13 aus dem Multipliziermultiplexer 415. Das Signal MR13 ist das höchstwertige Bit, während das Signal MRO das niedrigstwertige Bit ist. Weitere Eingangssignale des Matrixmultiplizierers sind die oben erwähnten Ausgangssignale +2, -2, + 1 und -1 aus der ümcodierungslogik 301 (Figuren 8a bis 8c) ·
030046/0904
Die Ausgangssignale des Matrixmultiplizierers 401, nämlich die Signale P13 bis PO, werden an den Summiermultiplexer 402 angelegt. Das niedrigstwertige Bit, das Bit PO, hat im vorliegenden Ausführungsbeispiel stets den Binärwert " 1" , da dadurch der Mittelwert des Abbruchfehlers auf Null anstelle auf +_ 1/2 des niedrigstwertigen Bits reduziert wird, wobei sich der zuletzt genannte Wert bei einem einfachen Abbrechen einer Zahl im Zweierkomplement ergeben würde.
Der Matrixmultiplizierer 401 ist in Form mehrerer Blöcke A-1, A-2, B-1, B-2, B-3 oder B-C dargestellt. Die speziellen Schaltungselemente, die diese Blöcke bilden, sind auf der rechten Seite des Gesamtschaltbildes der Figuren 10a und 10b dargestellt; diese Elemente sind nicht wiederholt dargestellt, und es ist nicht das gesamte Logikdiagramm für den Matrixmultiplizierer 401 angegeben. Die Blöcke A-1 und A-2 bilden die Stufe Null des Matrixmultiplizierers; sie arbeiten abhängig von den Signalen -2, +1 und -1 aus dem Decodierer 313 sowie abhängig von den Signalen MR2 bis MR13. Beim Multiplizieren im Matrixmultiplizierer 401 wird das höchstwertige Bit stets in den Schaltungselementen in der am weitesten, links liegenden, Spalte festgehalten, während die Teilsummen kontinuierlich nach rechts verschoben werden. Da jede Stufe des Matrixmultiplizierers mit zwei binären Bits arbeitet, werden die Teilsummen um zwei Stellen nach rechts verschoben. Für dieDateneingangssignale MRO und MR1 in der ersten Stufe sind daher keine Α-Blöcke vorgesehen. Da jeder Schaltungsblock im Matrixmultiplizierer 401 abhängig von zwei Informationsbits aus dem K-Stapel 30.2 arbeitet, die er über die Umcodierungslogik 301 empfängt, arbeitet jeder Schaltungsblock auch abhängig von zwei Bits aus dem Multiplizicrinultiplexer 415, wobei diese Bits von Negatoren 430 negiert werden und in wahrer Logik auch in die B-Blöcke eingegeben werden.
300 4 6/0 9 0-4
Filter- und Anregungsgeneratorschaltung
Die Figuren 11a und 11b bilden zusammen das genaue Schaltbild des Filter- und Anregungsgenerators 24 (nicht, des Matrixmultiplizierers 401) sowie des Ausgabeabschnitts 25. Im Filter- und Anregungsgenerator 24 ist eine Summierschaltung 404 enthalten, die so angeschlossen ist, daß sie an einem Eingang das wahre oder das negierte Ausgangssignal des Matrixmultiplizierers 401 (siehe Fig. 10a und 10b) an den Leitungen PO bis P13 über den Summiermultiplexer 402 empfängt. Der andere Eingang der Summierschaltung 404 ist direkt über den Summiermultiplexer 402 so angeschlossen, daß er entweder das Ausgangssignal der Summierschaltung 404 (in den Zeitperioden T10 bis T18), das Ausgangssignal des Verzögerungsstapels 406 an den Leitungen 440 bis 453 (in den Zeitperioden T20 bis T7 und T9), das Ausgangssignal des Y-Halteglieds 403 (in der Zeitperiode T8) oder ein Signal mit dem Wert "0" aus dem Vorladeglied 420 (in der Zeitperiode T19, wenn an diesen Eingang kein bedingtes Ladesignal anliegt) empfängt. Die Gründe dafür, daß diese Signale in diesen Zeitperioden angelegt werden, gehen aus E'ig. 8 der oben erwähnten Patentanmeldung P 28 26 570.5 hervor; es sei jedoch daran erinnert, daß die Bezeichnungen der einzelnen Zeitperioden unterschiedlich sind, wie im Zusammenhang mit Fig. 5 erläutert wurde.
Das Ausgangssignal der Summierschaltung 404 wird dem Verzögerungsstapel 406, dem Multiplexer 415, 1-Perioden-Verzögerungsgliudern 414 und dem Multiplexer 402 zugeführt. Der Multiplexer 415 enthält 1-Periodenverzögerungsglieder 414, die dem 1-Perioden-Verzögerungsglied 34' in Fig. 7 der Patentanmeldung P 28 26 570.5 äquivalent sind.Das γ-nalteglied 403 empfängt das Ausgangssignal des Verzögerungsstapels 406. Der Multiplexer 415 legt das Ausgangssignal des Y-Halteglieds 403,
030046/0904
das Ausgangssignal der 1-Perioden-Verzögerungsglieder oder das Anregungssignal am Bus 4151 an die Eingänge MRO bis MR13 des Mahrixmultiplizierers 401 an. Die Eingangssignale DO bis D13 des Verzögerungsstapels 406 werden von den Ausgängen der Summierschaltung 404 abgenommen. Die digitalen Schaltungselemente für den Summiermultiplexer 402, die Summierschaltung 404, das Y-Halteglied 403, den Multiplexer 415 und die 1-Perioden-Verzögerungsschaltung 414 sind für das niedrigstwertige Bit in einem von einer gestrichelten Linie umgebenen Kästchen A angegeben. Die dreizehn höchstwertigen Bits im Filter sind durch ebensolche digitale Schaltungsglieder gebildet, wie sie mit der gestrichelten Linie A umgeben sind, wobei als Darstellung längliche, gestrichelt angegebene Kästchen gewählt sind, die die Buchstaben A tragen. Zur Erzielung einer klaren Darstellung sind die digitalen Schaltungselemente für jedes vom Filter verarbeitete parallele Bit nicht im einzelnen dargestellt. Die Abschnitte des Filters, die höherwertige Bits als das niedrigstwertige Bit behandeln, unterscheiden sich von der für die Elemente 402, 403, 404, 405 und 414 angegebenen Schaltung nur bezüglich der Verbindung mit der Abtrennlogik 501 und dem Bus 415', der zum ÜV-Verknüpfungsglied 408 und zum Chirp-Festspeicher 409 führt. Das Ausgangssignal des üV-Verknüpfungsglieds 408 und des Chirp-Festspeichers 409 wird nur den Eingängen 113 bis 16 zugeführt; der mit I bezeichnete Eingang innerhalb der gestrichelten Linie A wird für die sechs niedrigstwertigen Bits im Filter nicht benötigt. Das Ausgangssignal des Y-Halteglieds 403 wird auch nur an die zehn höchstwertigen Bits YL13 bis Yl4 angelegt; die mit YLx bezeichnete Verbindung innerhalb der Bezugslinie wird daher für die vier niedrigstwertigen Bits im Filter nicht benötigt.
030046,/09CU-
Der Verzögerungsstapel 406 enthält vierzehn Schieberegister mit einer Länge von jeweils neun Bits, wobei jede Stufe Negatoren enthält, die mit den Taktsignalen 04 und 03 getaktet werden. Wie in der Patentanmeldung P 28 26 570.5 erläutert ist, erfolgt ein Schiebevorgang im Verzögerungsstapel 4 06, der allgemein dem Schieberegister 35*von Fig. der genannten Patentanmeldung entspricht, nur bei gewissen Zeitperioden. Dies wird mit Hilfe der digitalen Schaltungselemente 416 erreicht, die aus den Zeitperiodensignalen T10 bis T18 aus dem programmierbaren Zeitsteuerfeld 512 (Fig. 7a und 7b) Taktsignale 01B bis 04B erzeugen. Die Taktpuffer der digitalen Schaltungselemente 416 sind in den Figuren 11a und 11b ebenfalls genau dargestellt.
Der Verzögerungsstapel 406 hat eine Länge von neun Bits, während das Schieberegister 35' in Fig. 7 der Patentanmeldung P 28 26 570.5 eine Länge von acht Bits hat; dieser Unterschied ist deshalb vorhanden, weil der Eingang des Verzögerungsstapels 406 mit dem Ausgang der Summierschaltung 404 und nicht mit dem Ausgang der 1-Perioden-Verzögerungsschaltung 414 verbunden ist. Der Eingang des Verzögerungsstapels 406 könnte auch mit den Ausgängen der 1-Perioden-Verzögerungsschaltung 414 verbunden sein, wobei die zugehörige Zeitsteuerung entsprechend der in der Patentanmeldung P 28 26 570.5 dargestellten Zeitsteuerung modifiziert wäre.
Die im Verzögerungsstapel 406, im Matrixmultiplizierer 401, in der Summierschaltung 404, im Summiermultiplexer 402, im Y-Halteglied 40 3 und im Multipliziermultiplexer 415 verarbeiteten Daten werden vorzugsweise in der Zweierkomplementdarstellung behandelt.
030 (H 6/09(K
Der Stimmlos-Signalgenerator 407 ist ein Zufallsrauschgenerator mit einem Schieberegister 418 mit einem von einer Rückkopplungslogik 419 gespeisten Rückkopplungszweig zur Erzeugung pseudozufälliger Ausdrücke im Schieberegister 418. Von diesem Schieberegister wird ein Ausgangssignal abgenommen und dem UV-Verknüpfungsglied 408 (Stimmlos-Verknüpfungsglied) zugeführt, das auch auf das Signal OLDP aus dem Halteglied 208d (Figuren 8a bis 81) anspricht. Das für das alte Tonhöhensignal zuständige Halteglied 408d steuert das Verknüpfungsglied 408, da das für das Tonhöhensignal mit dem Wert "0" zuständige Halteglied 208b seinen Zustand unmittelbar dann ändert, wenn neue Sprachparameter "in das Register 205 eingegeben werden. Da dies während des Interpolationszyklus ICO auftritt, und da während eines Stimmlos-Zustandes die neuen Werte nicht interpoliert und in den K-Stapel 302, die ElO-Schleife 304 und das Tonhöhenregister 305 bis zum folgenden Interpolationszyklus ICO eingegeben werden, kann sich der Sprachanregungswert nicht von einer periodischen Anregung aus dem Chirp-Festspeicher 409 in eine Zufallsanregung aus dem Stimmlos-Signalgenerator 406 ändern, bis acht Interpolationszyklen aufgetreten sind. Das Verknüpfungsglied 420 bewirkt eine NOR-Verknüpfung des Ausgangssignals des Verknüpfuhgsglieds '408 und die Eingabe in das höchstwertige Bit Ii3 des Anregungssignals, wodurch veranlaßt wird, das Vorzeichenbit während einer stimmlosen Sprache auf Zufällsbasis zu ändern. Das Verknüpfungs- > glied 421 setzt das höchstwertige Bit 112 des Anregungssignals zwangsläufig während Stimmlos-Sprachzuständen auf den Signalwert "1". Die Verknüpfungsglieder 408, 420 und 421 haben also insgesamt die Wirkung, ein sich auf Zufällsbasis änderndes Vorzeichen einem stetigen dezimalen Äquivalentwert von 0,5 zuzuordnen, der dem Filter im Filter- und Anregungsgenerator zugeführt wird.
3 00 4 6/0 904
Während einer stimmhaften Sprache liefert der Chirp-Festspeicher 409 an den Leitungen 16 bis 113 ein aus acht Bits bestehendes Ausgangssignal an das Filter. Dieses Ausgangssignal umfaßt 41 sich nacheinander ändernde Werte, die in der graphischen Darstellung eine Chirp-Funktion repräsentieren. Der Inhalt des Festspeichers 409 ist in der Tabelle III angegeben; der Festspeicher 409 ist so aufgebaut, daß seine Ausgangssignale negiert werden; die Daten sind in ihm daher im komplementierten Format abgespeichert. Der Wert der Chirpfunktion und der im Chirp-Festspeicher gespeicherte komplementierte Wert sind in hexadezimaler Zweierkomplementdarstellung ausgedrückt. Der Festspeicher 409 wird mittels eines 8-Bit-Registers 410 adressiert, dessen Inhalt normalerweise während jedes Zyklus durch das Filter mittels einer 1-Additionsschaltung 411 aktualisiert wird. Das Ausgangssignal des Registers 410 wird mit dem Inhalt des Tonhöhenregisters 305 in einem Größenkomparator 40 3 verglichen, damit der Inhalt des Registers 410 auf Null gestellt wird, wenn sein Inhalt gleich oder größer als der Inhalt des Registers 305 wird. Der in den Figuren 14a und 14b genauer dargestellte Chirp-Festspeicher 409 ist so ausgebildet, daß Adressen, die größer als 110010 sind, die Wirkung haben, daß an den Leitungen bis 16 an den Multipliziermultiplexer 415 Signale ausgegeben werden, die alle den Wert "0" haben. Auch an den Adressenplätzen 41 bis 51 sind Signale mit dem Wert "0" gespeichert. Die Chirp-Funktion kann also so erweitert werden, daß sie Adressenplätze bis zum Adressenplatz 50 besetzt, falls es erwünscht ist.
Schreib/Lese-Speicher
Ln den Figuren 12a und 12b ist das Schaltbild des Schreib/ Lese-Speichers 203 dargestellt. Der Schreib/Lese-Speicher wird mittels einer Adresse an den Leitern PC1 bis PC4 adressiert; die jeweilige Adresse wird in einer programmierbaren
030046/0904
- 58 - 301?517
Decodiermatrix 203a decodiert, und sie legt fest, welcher codierte Parameter in den Schreib/Lese-Speicher 203 eingegeben werden soll. Der Schreib/Lese-Speicher 203 speichert die zwölf decodierten Parameter, deren Länge zwischen drei Bits und sechs Bits entsprechend dem im Zusammenhang mit Fig. 6 beschriebenen Decodierschema liegt. Der Aufbau jeder Zelle B des Schreib/Lese-Speichers 203 ist in Fig. 12b genauer dargestellt. Eine Schreib/Lese-Schaltung 203b ermöglicht in Abhängigkeit von den Signalen TI, DIV1, PCO und einem Parameter-Ladefreigabesignal das Schreiben in den Schreib/Lese-Speicher 203 während des Α-Zyklus jeder Parameterzahl während des Interpolationszyklus Null, wenn die Freigabe durch das Parameter-Ladefreigabesignal aus der Schaltung 209a (Fig. 8a bis 8c) erfolgt ist. Die Dateneingabe in den Schreib/Lese-Speicher 203 erfolgt an den Leitungen INO bis IN5 aus dem Register 205, wie in den Figuren 8a und 8b dargestellt ist, und die Datenausgabe erfolgt an den Leitungen CRO bis CH5 in den Festspeicher 202, wie ebenfalls in den zuvor genannten Figuren dargestellt ist.
Parameter-Festspeicher
In den Figuren 13a und 13b ist das Schaltbild des Festspeichers 202 dargestellt. Der Festspeicher 202 ist vorzugsweise ein Festspeicher mit virtueller Masse, wie er in der US-PS 3 934 233 beschrieben ist. Adresseninformationen aus dem Festspeicher 202 und aus dem Parameterzähler 513 werden Adressenpuffern 202b zugeführt, die bei A genauer dargestellt sind. Die NOR-Glieder 202a, die in den Adressenpuffern 202b verwendet werden, sind bei B genauer dargestellt. Die Ausgangssignale der Adressenpuffer 202b werden an einen X-Decodierer 202c oder an einen Y-Decodierer 202d angelegt. Der Festspeicher ist in zehn Abschnitte C unterteilt, von denen einer genauer dargestellt ist. Die Ausgangsleitung
030046/0904
jedes Abschnitts ist über Negatoren mit dem Register 201 verbunden, wie in den Figuren 8a und 8b dargestellt ist. Der X-Decodierer wählt eine von 68 X-Decodierleitungen aus, während der Y-Decodierer 202d die Anwesenheit oder das Fehlen einer Transistorzelle zwischen zwei benachbarten, von Diffusionszonen gebildeten Leitungen prüft, wie in der zuvor erwähnten US-PS 3 934 233 genauer erläutert ist. Die vorzugsweise im Festspeicher 202 dieser Ausführung gespeicherten Daten sind in der Liste der Tabelle IV zusammengestellt.
Chirp-Festspeicher
Die Figuren 14a und 14b zeigen zusammen das Schaltbild des Chirp-Festspeichers 409. Die Adressierung des Festspeichers erfolgt über Adressenleitungen AO bis A8 aus dem Register 410 (Fig. 11a, 11b), mittels Ausgangsinformationen an Leitungen bis 111 zum Multiplexer 415 und mittels Informationen an Leitungen 11 und 12 zu den Verknüpfungsgliedern 421 und 420, was alles in den Figuren 11a und 11b dargestellt ist. Wie zuvor im Zusammenhang mit den Figuren 11a und 11b erläutert wurde, gibt der Chirp-Festspeicher nur Signale mit dem Wert "0" ab, nachdem im Register 410 ein vorbestimmter Stand erreicht worden ist, der in diesem Fall der der Dezimalzahl 51 entsprechende Stand ist. Der Festspeicher 409 enthält einen Y-Decodierer 409a, der abhängig von den Adressen an den Leitungen AO und A1 (und ÄO, A1) arbeitet; ferner enthält er einen X-Decodierer 409b, der abhängig von der Adresse an den Leitungen A2 bis A5 (und A2 bis A5) arbeitet.
Außerdem enthält der Chirp-Festspeicher 409 ein Halteglied 409c, das gesetzt wird, wenn die Dezimalzahl 51 an den Leitungen AO bis A5 gemäß der Leitung 409c aus dem Decodierer 409e festgestellt wird. Der Decodierer 409e decodiert auch den Signalwert "0" an den Leitungen Ά0 bis A8 zum Rücksetzen des Halteglieds 409c. Im Chirp-Festspeicher 409 ist eine Zcitstcuerschaltung 409f
030046/0904
vorgesehen, mit deren Hilfe Daten über Schaltglieder 409g in der Zeitperiode T12 getaktet werden können. An diesem Zeitpunkt stellt der Decodierer 409e fest, ob an den Adressenleitungen Ao bis A8 die Dezimalzahl 0 oder die Dezimalzahl 51 vorhanden ist. Wenn eine dieser Bedingungen eintritt, wird das als statisches Halteglied ausgebildete Halteglied 409c in seinen anderen Zustand versetzt.
In der Zeitperiode T13 wird ein Adressenhalteglied 409 gesetzt, daß in der Zeitperiode TM rüekgesetzt wird. Das Halteglied 409h ermöglicht dem Halteglied 409c, an den Leitungen AO bis A5 zwangsweise den Dezimalwert 51 zu erzeugen, wenn das Halteglied 409c gesetzt ist. Wenn im Adressenregister 410 Adressen vorhanden sind, die größer als 51 sind, dann wird die Adresse in der Zeitperiode T12 zunächst abgetastet, damit festgestellt wird, ob sie von der Rücksetzlogik 412 (Fig. 12a, 12b) auf den Wert "0" zum Rücksetzen des Halteglieds 409c rüekgesetzt worden ist, und, falls die Adresse nicht auf den Wert "0" rüekgesetzt worden ist, um festzustellen, welche Adresse an den Leitungen AO bis A8 eingegeben und von der Logik 409j in der Zeitperiode T13 überschrieben worden ist. Am Speicherplatz 51 sind im Chirp-Festspeicher 409 natürlich nur Signale mit dem Wert "0" zur Ausgabe an die Leitungen 16 bis 111, IM1 und IM2 gespeichert.,.. Mittels der digitalen Schaltungen 409c/ 409h und 409j werden Adressen mit einem vorgewählten Wert, in diesem Fall dem Dezimalwert 51, lediglich geprüft, um festzustellen, ob ein Rücksetzen stattgefunden hat; sie können jedoch die Matrix der Festspeicherzellen über die Decodierer 409a und 409b nicht adressieren. Adressen zwischen dem Dezimalwert ο und dem Dezimalwert 50 adressieren den Festspeicher normalerweise über die Decodierer 409a und 409b. Die Festspeichermatrix ist vorzugsweise eine Matrix des Typs mit virtueller Masse, wie sie in der US-PS 3 934 233 beschrieben ist. Wie
030046/0904
zuvor erwähnt wurde, ist der Inhalt des Festspeichers 409 in der in der Tabelle III angegebenen Liste zusammengestellt. Die Chirp-Funktion befindet sich an den Adressen 00 bis 40, während an den Adressen 41 bis 51 nur Nullen gespeichert sind.
Abtrermlogik und Digital-Analog-Umsetzer
Es wird nun erneut auf die Figuren 11a und 11b Bezug genommen, in denen die Abtrennlogik 4 25 und der Digital-Analog-Umsetzer 426 dargestellt sind. Die Abtrennlogik 425 enthält eine Schaltung zum Umwandeln der an den Leitungen YL13 bis YL4 in Zweierkomplementdarstellung vorhandenen Daten in versetzte Binärdaten. Die digitalen Schaltungen 425a und 425b prüfen das höchstwertige Bit aus dem Y-Halteglied 403 an der Leitung YL13, was den Zweck hat, das Vorzeichenbit zu bestimmen und die Abtrennsignale CLIPO und CLIP1 zu erzeugen. Die digitale Schaltung 425a erzeugt das Signal CLIPO, und sie setzt alle Eingangssignale des Digital-Analog-Umsetzers 426 auf den Wert "0", wenn das Signal YL13 den Wert "1" hat und wenn entweder das Signal YL12 oder das Signal YL11 den Wert "0" hat. Die digitale Schaltung 425b erzeugt das Signal CLIP1 und setzt alle Eingangssignale des Digital-Analog-Umsetzers 426 auf den Wert "1", wenn das Signal YL13 den Wert "0" hat und entweder das Signal YL12 oder das Signal YL11 den Wert "1" hat. Die digitale Schaltung 425c prüft die Signale YL13 bis YL11 auf Zustände, die den eben angegebenen Zuständen entgegengesetzt sind, und sie erzeugt das Signal NORM, wenn keine Abtrennung erfolgen soll. Diese Betragabtrennfunktion bewirkt das Abtrennen der höherwertigen Bits der Signale YL11 und YL12. Es ist zu erkennen, daß dies eine ungewöhnliche Abtrennung darstellt, da normalerweise in den meisten anderen Abtrennschaltungen die niedrigerwertigen Bits abgetrennt werden. In der hier vorliegenden Schaltung werden jedoch große positive oder negative Werte wirksam begrenzt. Es hat sich gezeigt, daß aufgrund dieses Abtrennschemas
0300A6/0904
die wichtigere digitale Sprachinformation, die einen kleineren Betrag hat, tatsächlich um den Faktor 4 verstärkt wird. Die digitale Schaltung 425d wandelt die in Zweierkomplernentdarstellung vorhandenen Daten aus den Y-HaItegliedern 403 an den Leitungen YL10 bis YL4 in einfache Betragsinformationen an den Leitungen D/A6 bis D/AO um. Die Leitung D/A7 ist mit der Leitung YL12 verbunden, da die Signale an den Leitungen YL12 und YL11 identisch sind, wenn Bedingungen vorliegen, bei denen kein Abtrennen erfolgt.
Die Auswirkungen des angewendeten Abtrennschemas sind in der Tabelle V dargestellt. Wenn die Ausgangssignale YL13 bis YL4 zu einer Dezimalzahl führen, die größer als +127 ist, werden alle Eingänge des Digital-Analog-Umsetzers auf den Wert "1" gesetzt, und der Ausgangsstrom hat den Wert "0". Wenn die Signale YL13 bis YL4 zu einer Dezimalzahl führen, die kleiner als -128 ist, werden alle Eingänge des Digital-Analog-Umsetzers auf den Wert "0" gesetzt, und der Ausgangsstrom beträgt 1500 μΑ. Der mittlere Punkt liegt vor, wenn die Signale YL13 bis YL4 in Dezimaldarstellung dem Wert"-1" entsprechen, wobei der Ausgangsstrom des Digital-Analog-Umsetzers 250 μΑ beträgt. Der Digital-Analog-Umsetzer 426 erzeugt somit ein Analoges Ausgangssignal, das sich um einen statischen Wert (in der vorliegenden Ausführungsforra 750 μΑ) ändert. Wenn der Sprachmodul aufgehört hat zu sprechen, wird das Signal TALKST auch dazu benutzt, den Ausgangsstrom auf Null zu stellen, damit der Energieverbrauch eingeschränkt wird.
Die Ausgänge D/A7 bis D/A0 sind am Digital-Analog-Umsetzer angeschlossen. Die Ausgänge D/A7 bis D/A0 sind vorzugsweise mit den Gate-Elektroden von acht MOS-Schaltvorrichtungon 429a verbunden. Außerdem sind die Ausgänge D/A7 bis D/AO auch über Negatoren 429b mit den Gate-Elektroden . von acht MOS-Schaltvorrichtungen 429c verbunden. Die Source-Anschlüsse der Schaltvorrichtungen 429a sind an die Versorgungsspannung Vss gelegt,
030046/0904
und die Source-Anschlüsse der Schaltvorrichtungen 429c sind an die Spannung Vref gelegt. Die Spannung Vref ist eine vorbestimmte Spannung, die so berechnet ist, daß die Stromquellen 429d in den Sättigungsbetriebszustand vorgespannt werden. Die Drain-Anschlüsse der Schaltvorrichtungen 429a und 429c sind an einen gemeinsamen Punkt in jedem Zweig des Digital-Analog-Umsetzers 426 angeschlossen, und sie sind mit den Gate-Anschlüssen der Stromquellen 429d verbunden. Die stromführenden Elektroden der Stromquellen 429d sind parallel mit den Source-Anschlüssen jeder Stromquelle an die Spannung Vss gelegt. Die Drain-Elektroden der Stromquellen 429d sind über einen 1,8 K Ohm-Widerstand an einen Ausgangsanschlußstift und an eine in einem kommerziellen Computer oder einem Heimcomputer enthaltene NF-Verstärker- und Lautsprecherschaltung angeschlossen.
Für den Fachmann ist zu erkennen, daß der Digital-Analog-Umsetzer 426 die in den Signalen YL13 bis YL4 enthaltenen Vorzeichen- und Betragsdaten in ein Analogsignal umsetzt, das als Wechselstromsignal mit einer Festkomponente gekennzeichnet werden kann. Außerdem sei bemerkt, daß solche Digital-Analog-Umsetzer, wie sie hier beschrieben worden sind, auch in anderen Ausführungen außer in Sprachsyntheseschaltungen angewendet werden können.
Festspeicher
Die Festspeicher 12A und 12B sind vorzugsweise Festspeicher des Typs, die in der Patentanmeldung P 29 17 161.7 beschrieben sind.
0300A6/0904
Al ternativau s führungen
Die Erfindung ist hier zwar im Zusammenhang mit einem speziellen Ausführungsbeispiel beschrieben worden, doch soll
dies keine Einschränkung darstellen. Die beschriebene Ausführungsform kann im Rahmen der Erfindung ohne weiteres abgewandelt und geändert werden.
030046/0304
Tabelle I
Der Sprachsyntheseprozessor 10 enthält eine Interpolationslogik zur Erzielung einer nahezu linearen Interpolation aller zwölf Sprachparameter an acht Punkten innerhalb jedes Datenrahmens, d„h. einmal pro 2,5 ms. Es wird ein Parameter nach dem anderen entsprechend der Auswahl durch den Parameterzähler interpoliert. Die Interpolationslogik berechnet aus dem derzeitigen Wert (d„h„ dem derzeit im K-Stapel, im Tonhöhenregister oder in der ElO-Schleife gespeicherten Wert) und aus dem in codierter Form im Schreib/Lese-Speicher 203 gespeicherten und vom Festspeicher 202 decodierten Zielwert einen neuen Parameterwert„ Der bei jedem InterpolationsVorgang berechnete Wert ist anschließend angegeben,,
Dabei sind: P. der derzeitige Parameterwert, P. + 1 der neue Parameterwert,
Pt der Zielwert,
N. eine vom Interpolationszähler bestimmte ganze Zahl ·
Die Werte N. für bestimmte Interpolationszahlen und die Werte (P. - P )/(P. - P) f (P = Anfangswert des Parameters), haben folgende Größe:
Interpolationszahl N.
1 8 0.125
2 8 0.234
3 8 O.,33O
4 4 0.498
5 4 ' 0.623
6 2 0.717
7 2 0.859 0 1 1.000
030046/0904
Tabelle II
Aus dem K-Stapel 302 zum Umcodierer 301 übertragene Daten
Ausgänge des K-Stapels Zeitperioden
Bit Leitg.T8 'i'9 TlQ TIl T12 T13 T14 T15 T16 T17 T1Ü T19 T20 T21 T22 T23 T24 T25 T26 T27
LSB 32-1 32-2 32-3 32-4 32-5 32-6 32-7 32-8 32-9
MSB32-1Ü
K2
Κ·> K1 A K2 K1 Λ K2 K1 A K3 K2 K1
K3 K2 K1
Κ4 Κ3 Κ2
K5 K4
K9 Kj
Kq Κι
K9 K
K-, K-
Kt K
K Q K
K4 K-
K1 K1n K
Κ4 Κ3
K#j Kc K
K7 Kb K5 K
K2 K1
Ko Κι
K2 K
10
K10 K9
K10 K9
10
K-
Ko K-
K5
K6 K5
K4 K3
K4 K3 K4 K3
KI/ A ^i
Κ7 Κ6 Κ5 K4 Κ3 Κ2 K 1 Κ10 κ Q Κ8 K7 Κ6 Κ5 Κ4 O
Κ7 Κ6 Κ5 K4 Κ3 K 1 Κ10 κ Κ8 Κ7 Κ6 Κ5 Κ4 CJl
Κ8 Κ7 Κ6 Κ5 K4 Κ3 K 2 Κ1 K 10 K9 Κ8 Κ7 Κ6 Κ5
K8 K7 Κ6 Κ5 K4 Κ3 K 2 Κ1 K 10 K9 Κ8 Κ7 Κ6 K5
K9 K8 Κ7 Κ6 Κ5 K4 K 3 K2 K 1 Κ10 K9 Κ8 K7 Κ6
K9 Ka Κ7 Κ6 Κ5 K4 K 3 K2 K 1 Κ10 K9 K8 Κ7 Κ6
Tabelle III
Inhalt des Chirp-Festspeichers
gespeicherter Wert Adresse Wert der Chirp-Funktion (Komplement)
00 00 FF
01 2A D5
02 D4 2B
03 32 CD
04 B2 4D
05 12 ED
06 25 DA
07 14 EB
08 02 FD
09 E1 IE
10 C5 3A
11 02 FD
12 5F AO
13 5A A5
14 05 FA
15 OF FO
16 26 D9
17 FC 03
18 A5 5A
19 A5 5A
20 D6 29
21 DD 22
22 DC 23
23 FC 03
24 25 DA
25 2B D4
26 22 DD
27 21 DE
28 OF FO
29 FF 00
30 F8 07
31 EE 11
32 ED 12
33 EF 10
34 F7 08
35 F6 09
36 FA 05
37 OO FF
38 O3 FC
39 02 FD
40 01 FE
030046/0904
Tabelle IV
Decodierte Parameter
CODE
Kl
K2
K3
K4
K5
K7
K8
OO 000 000 205 2DA 23F IEF 28B 32B 2OA 33D 386
01 001 0OE 207 2FG 250 2F2 2A5 350 2F8 38B 3C9
02 002 0OF 209 315 265 324 2C2 377 318 3EO 0OF
03 003 010 203 336 27F 35C 2E4 3AO 33A 036 053
04 004 ' 011 2OF 359 29E 39F 309 3CA 35F 089 095
05 006 012 213 37E 263 3D8 332 3F5 386 005 0D2
06 008 013 218 3 A4 2EF 019 3SE 021 3AE 117 108
07 0OB 014 21F 3CC 321 059 38D 04B 3D7 14F 137
08 010 015 227 3F4 359 096 3BF 075 001
09 017 016 231 OIC 395 OCF. 3Fl 090 02B
OA 021 017 23E 044 305 103 024 OC3 054
OB 02F 018 24E 06C 016 130 056 0E7 07D
OC 03F 019 262 091 057 157 087 108 0A3
OD 055 ΟΙΑ 27A 0B6 ■ 094 178 0B5 126 OC 8
OE 072 OIB 296 008 • OCE 193 OEO 142 OEA
OF 000 OIC 2B8 0F8 102 1A9 107 15B 1OA
10 01D 2EO 116 202 202 202 202
11 01E 3OE 131 2OA 2OA 2OA 2OA
12 OIF 341 14A 139 139 139 139
13 020 379 160 13E 13E 13E 13E
14 022 3B5 174
15 024 3F3 186
16 026 031 196
17 028 06E 1A4
18 029 0A8 IBO
19 02b ODD IBB
IA 02D IOD 1C5
IB 030 137 ICO
IC 031 15C 1D4
ID 033 17B IDA
IE 036 194 IDF
IF 037 IAA 1E6
Tabelle IV (Fortsetzung)
:ODE E F Kl K2 K3 K4 K5 K6 K7 K8 Κ9
20 039 202 202
21 03C 2OA 20Α
22 03Ε 139 139
23 040 13Ε 13Ε
24 044
25 048
26 04Α
27 04C
28 051
29 055
057
05Α
2C 060
2D 063
067
2F 06Β
30 070
31 075
3 2 07Α
33 07F
34 085
08Β
36 091
37 097
38 09D
39 0Α4
OAB
0Β2
3C OBA
3D 0C2
OCA
3F 0D3
(Τι «Γ
CaJ O
cn --α
Tabelle V
Ausgangssignal des Y-Halteglieds
*L13 *L12 VLIl YLl0 Y
O 1 0 X
>+127 O 1 0 X
O 0 1 X
127 .0 0 0 1111111
126 0 0 0 1111110
Eingangssignal des D/A-Umsetzers
11111111 11111111 11111111 11111111 11111110
Analogausgangssignal (μΑ)
0 0 0 0 5.86
+10 0 0 0000001 0 0 0 0 0000000
* -1
10000001 10000000
1 1111111
01111111
738 744
750
*) kein Ausgangssignal, Ruhewert
Tabelle V (Fortsetzung)
Ausgangssignal des Y-Halteglieds Eingangssignal
des D/A-Umsetzers
Analogausgangssignal (μΑ)
-2
1 1111110
01111110
755.8
O CO O
-128 1 1 1 0000000 00000000
<-128 1 1 0 X 00000000
1 0 1 X 00000000
1 0 0 X 00000000
1500. 1500 1500 1500
-η-
Leerseite

Claims (1)

  1. Patentansprüche
    a) eine Empfangsvorrichtung zum Empfangen eines Eingabesignals aus einem externen Steuergerät,
    b) eine erste Speichervorrichtung zum dauerhaften Speichern einer ersten Menge codierter Daten,
    c) eine zweite Speichervorrichtung zum vorübergehenden Speichern einer zweiten Menge codierter Daten, die von dem externen Steuergerät geliefert werden,
    d) einen Syntheseprozessor zum Umsetzen codierter Daten in digitale Sprachsignale,
    e) eine Wählvorrichtung zum selektiven Anlegen einer der beiden Mengen codierter Daten an den Syntheseprozessor in Abhängigkeit von einem von dem externen Steuergerät gelieferten Steuersignal und
    f) eine Vorrichtung zum Umsetzen des digitalen Sprachsignals in ein analoges Sprachsignal.
    030046/0904
    Schw/Gl -. ■
    2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß die erste Speichervorrichtung ein Festspeicher ist.
    3. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß die zweite Speichervorrichtung ein Schieberegister ist.
    4. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß der Syntheseprozessor ein steuerbares Digitalfilter enthält.
    5. Anordnung nach'Anspruch 4, dadurch gekennzeichnet, daß die codierten Daten Reflexionskoeffizienten sind, die zur Steuerung des Digitalfilters benutzt werden.
    6. Sprachsyntheseanordnung, gekennzeichnet durch
    a) eine Empfangsvorrichtung zum Empfangen eines Eingabesignals aus einem, externen Steuergerät,
    b) eine erste Speichervorrichtung zum dauerhaften Speichern einer ersten Menge codierter Daten,
    c) eine zweite Speichervorrichtung zum vorübergehenden Speichern einer zweiten Menge codierter Daten, die von dem externen Steuergerät geliefert werden,
    d) eine dritte Speichervorrichtung zum Speichern einer dritten Menge codierter Daten, wobei die dritte Speichervorrichtung in einem Modul mit mehreren elektrischen Kontakten angebracht ist,
    e) eine Aufnahmebuchse zum vorübergehenden Verbinden der elektrischen Kontakte an den Modul mit der Sprachsyntheseanordnung ,
    f) einen Syntheseprozessor zum Umsetzen codierter Daten in digitale Sprachsignale, . ,
    030046/0904
    g) eine Wählvorrichtung zum selektiven Anlegen einer der beiden Mengen codierter Daten an den Syntheseprozessor in Abhängigkeit von einem von dem externen Steuergerät gelieferten Steuersignal und
    h) eine Vorrichtung zum Umsetzen des digitalen Sprachsignals in ein analoges Sprachsignal.
    7. Anordnung nach Anspruch 6, dadurch gekennzeichnet, daß die erste Speichervorrichtung ein Festspeicher ist.
    8. Anordnung nach Anspruch 6, dadurch gekennzeichnet, daß die zweite Speichervorrichtung ein Schieberegister ist.
    9. Anordnung nach Anspruch 6, dadurch gekennzeichnet, daß die dritte Speichervorrichtung ein Festspeicher ist.
    10. Anordnung nach Anspruch 6, dadurch gekennzeichnet, daß der Syntheseprozessor ein steuerbares Digitalfilter enthält.
    11. Anordnung nach Anspruch 10, dadurch gekennzeichnet, daß die codierten Daten Reflexionskoeffizienten sind, die zur Steuerung des Digital filters verwendet werden.
    12. Computeranordnung zur Erzeugung synthetischer menschlicher Sprache, gekennzeichnet durch
    a) ein Computer-Eingabegerät,
    b) eine Zentraleinheit,
    c) ein NF-Verstärker- und Lautsprechersystem und
    d) eine Sprachsyntheseanordnung, die abhängig von Steuersignalen aus der Zentraleinheit arbeitet und folgende Baueinheiten enthält:
    030046/0904
    301751
    (I) eine erste Speichervorrichtung zum dauerhaften Speichern einer ersten Menge codierter Daten,
    (II) eine zweite Speichervorrichtung zum vorübergehenden Speichern einer zweiten Menge codierter Daten, die von der Zentraleinheit geliefert werden,
    (III) einen Syntheseprozessor zum Umsetzen codierter Daten in digitale Sprachdaten,
    (IV) eine Wählvorrichtung zum selektiven Anlegen einer der beiden Mengen codierter Daten an den Syntheseprozessor in Abhängigkeit von einem Steuersignal aus der Zentraleinheit,
    (V) eine Umsetzervorrichtung zum Umsetzen des digitalen Sprachsignals in ein analoges Sprachsignal· und
    (VI) eine Vorrichtung zum Verbinden der Umsetzervorrichtung mit dem NP-Verstärker- und Lautsprechersystem.
    13. Anordnung nach Anspruch 12, dadurch gekennzeichnet, daß die Sprachsyntheseanordnung in einem Modul mit mehreren elektrischen Kontakten untergebracht ist, der vorübergehend mittels der elektrischen Kontakte an das Computer-Eingabegerät angeschlossen werden kann.
    14. Anordnung nach Anspruch 12, dadurch gekennzeichnet, daß die erste Speichervorrichtung ein Festspeicher ist.
    15. Anordnung nach Anspruch 12, dadurch gekennzeichnet, daß die zweite Speichervorrichtung ein Schieberegister ist.
    16. Anordnung nach Anspruch 12, dadurch gekennzeichnet, daß der Syntheseprozessor ein steuerbares Digitalfilter enthält.
    030046/0904
    17. Anordnung nach Anspruch 16, dadurch gekennzeichnet, daß die codierten Daten Reflexionskeffizienten sind, die zur Steuerung des Di g:i talf ilters verwendet werden.
    18. Schriittstellenschaltungsanordnung zum Koppeln eines Steuergeräts, das Befehle mit variabler Länge liefert, mit einem wesentlich langsameren Speichergerät, das die Befehle auslöst und durchführt, gekennzeichnet durch
    a) eine erste, an die Speichervorrichtung angeschlossene Schaltungsvorrichtung zum Feststellen des Endes der Durchführung eines Befehls und zur davon abhängigen Abgabe eines Steuersignals,
    b) eine an die erste Schaltungsvorrichtung angeschlossene zweite Schaltungsvorrichtung, die das Auslösen eines nächsten Befehls in Abhängigkeit von dem Steuersignal ermöglicht,
    c) eine an die zweite Schaltungsvorrichtung angeschlossene dritte Schaltungsvorrichtung, die das Auslösen des nächsten Befehls feststellt und abhängig davon ein zweites Steuersignal abgibt, und
    d) eine Durchschaltvorrichtung, die die Steuervorrichtung in selektiver Weise elektrisch mit der Speichervorrichtung verbindet, damit dieser die unterschiedlich langen Beföhle zugeführt werden, und die die Steuervorrichtung von der Speichervorrichtung in Abhängigkeit von dem zweiten Steuersignal abtrennt.
    19. Anordnung nach Anspruch 18, dadurch gekennzeichnet, daß die Steuervorrichtung die Zentraleinheit eines Computers ist.
    030 0.4,6/0904
    20. Anordnung nach Anspruch 18, dadurch gekennzeichnet, daß die Speichervorrichtung in einer Sprachsyntheseanordnung enthalten ist.
    21. Anordnung nach Anspruch 18, dadurch gekennzeichnet, daß die Steuervorrichtung auch Befehle mit fester Länge liefert und daß die Speichervorrichtung auch diese Befehle durchführt.
    22. Anordnung nach Anspruch 18, dadurch gekennzeichnet, daß die erste Schaltungsvorrichtung eine Zeitgebervorrichtung enthält, die das Ende der Durchführung der unterschiedlich langen Befehle feststellt und abhängig davon das Steuersignal liefert.
    23. Computeranordnung zur Erzeugung synthetischer Sprache, gekennzeichnet durch
    a) eine Zentraleinheit zur Abgabe von Sprachbefehlen mit unterschiedlicher Länge,
    b) eine Sprachsyntheseanordnung zur Durchführung der unterschiedlich langen Sprachbefehle und zur Abgabe eines analogen Sprachsignals in Abhängigkeit von diesen Befehlen,
    c) eine NF-Verstärker- und Lautsprechervorrichtung zum Umsetzen des analogen Sprachsignals in einen hörbaren Ton und
    d) eine zwischen die Zentraleinheit und die Sprachsyntheseanordnung eingefügte Steuerschaltung, die folgende Baueinheiten enthält:
    030046/09CU BAD OBtQiHAL
    (I) eine erste Schaltungsvorrichtung, die mit der Sprachsyntheseanordnung verbunden ist und das Ende der Durchführung eines der Sprachbefehle mit unterschiedlicher Länge feststellt und abhängig davon
    ein Steuersignal abgibt,
    (II) eine zweite Schaltungsvorrichtung, die mit der ersten Schaltungsvorrichtung verbunden ist und die Auslösung des nächsten Befehls in Abhängigkeit von dem Steuersignal ermöglicht,
    (III) eine an die zweite Schaltungsvorrichtung angeschlossene dritte Schaltungsvorrichtung, die die Auslösung des nächsten Befehls feststellt und abhängig davon ein zweites Steuersignal abgibt,
    (IV) eine Durchschaltvorrichtung, die die Zentraleinheit in selektiver Weise elektrisch mit der Sprachsyntheseanordnung verbindet, damit dieser Sprachbefehle mit unterschiedlicher Länge zugeführt werden, und die die Zentraleinheit in Abhängigkeit von dem zweiten Steuersignal von der Sprachsyntheseanordnung abtrennt.
    24. Anordnung nach Anspruch 23, dadurch gekennzeichnet, daß die Zentraleinheit auch Sprachbefehle mit fester Länge liefert und daß die Sprachsyntheseanordnung auch diese Befehle durchführt.
    5. Anordnung nach Anspruch 24, dadurch gekennzeichnet, daß die erste Schaltungsvorrichtung auch eine Zeitgebervorrichtung enthält, die das Ende der Durchführung der Sprachbefehle mit fester Länge feststellt und abhängig davon das Steuersignal
    liefert.
    030046/0904
    26. Anordnung nach Anspruch 23, gekennzeichnet durch eine Benutzereingabevorrichtung, mit deren Hilfe ein Bediener die Zentraleinheit in ausgewählter Weise steuern kann.
    27. Anordnung nach Anspruch 26, dadurch gekennzeichnet, daß die Benutzereingabevorrichtung eine Tastatur ist.
    030046/0904
DE19803017517 1979-05-07 1980-05-07 Sprachsyntheseanordnung Granted DE3017517A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US3693179A 1979-05-07 1979-05-07
US3692879A 1979-05-07 1979-05-07

Publications (2)

Publication Number Publication Date
DE3017517A1 true DE3017517A1 (de) 1980-11-13
DE3017517C2 DE3017517C2 (de) 1991-04-11

Family

ID=26713636

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19803017517 Granted DE3017517A1 (de) 1979-05-07 1980-05-07 Sprachsyntheseanordnung

Country Status (3)

Country Link
JP (1) JPH0675239B2 (de)
DE (1) DE3017517A1 (de)
FR (1) FR2484682B1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1982000381A1 (en) * 1980-07-24 1982-02-04 Z Albes Speech synthesis aid for the vocally handicapped

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111681639B (zh) * 2020-05-28 2023-05-30 上海墨百意信息科技有限公司 一种多说话人语音合成方法、装置及计算设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3803358A (en) * 1972-11-24 1974-04-09 Eikonix Corp Voice synthesizer with digitally stored data which has a non-linear relationship to the original input data
DE2525025A1 (de) * 1975-06-05 1976-12-23 Telefonbau & Normalzeit Gmbh Schaltungsanordnung zur ausgabe akustischer auskuenfte
US4092495A (en) * 1975-12-19 1978-05-30 International Computers Limited Speech synthesizing apparatus
DE2335818B2 (de) * 1972-07-14 1978-12-21 Hitachi, Ltd., Tokio Elektrische Anordnung zur automatischen Erzeugung von gesprochenen Sätzen
DE2917161A1 (de) * 1978-04-28 1979-11-29 Texas Instruments Inc Elektronisches lernhilfegeraet

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4121051A (en) * 1977-06-29 1978-10-17 International Telephone & Telegraph Corporation Speech synthesizer

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2335818B2 (de) * 1972-07-14 1978-12-21 Hitachi, Ltd., Tokio Elektrische Anordnung zur automatischen Erzeugung von gesprochenen Sätzen
US3803358A (en) * 1972-11-24 1974-04-09 Eikonix Corp Voice synthesizer with digitally stored data which has a non-linear relationship to the original input data
DE2525025A1 (de) * 1975-06-05 1976-12-23 Telefonbau & Normalzeit Gmbh Schaltungsanordnung zur ausgabe akustischer auskuenfte
US4092495A (en) * 1975-12-19 1978-05-30 International Computers Limited Speech synthesizing apparatus
DE2917161A1 (de) * 1978-04-28 1979-11-29 Texas Instruments Inc Elektronisches lernhilfegeraet

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SOSKUTY, Dr. Otto V., Ein Sprachgenerator nach dem Prinzip der Phonem-Synthese, In: DE-Z.: Elektronik, 1977,H. 9, S. 44-48 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1982000381A1 (en) * 1980-07-24 1982-02-04 Z Albes Speech synthesis aid for the vocally handicapped

Also Published As

Publication number Publication date
DE3017517C2 (de) 1991-04-11
JPH05281997A (ja) 1993-10-29
FR2484682A1 (fr) 1981-12-18
JPH0675239B2 (ja) 1994-09-21
FR2484682B1 (fr) 1986-10-17

Similar Documents

Publication Publication Date Title
DE4397100C2 (de) Verfahren zum Erkennen von Sprachsignalen und Spracherkennungssystem mit rekursiver Grammatik mit endlicher Zustandsanzahl
DE19882486B4 (de) Synchroner, nicht-flüchtiger Seitenmodus-Speicher
DE2752607A1 (de) Verfahren zur erkennung von sprache
DE3232600A1 (de) Zeitmultiplexschaltmatrix
DE1965480A1 (de) Geraet fuer kuenstliche Erzeugung von Worten durch Umwandlung eines in Buchstaben gedruckten Textes in Aussprache
DE2920298A1 (de) Binaere interpolatorschaltung fuer ein elektronisches musikinstrument
DE3228756A1 (de) Verfahren und vorrichtung zur zeitabhaengigen komprimierung und synthese von stimmlosen hoerbaren signalen
DE2954413C2 (de)
DE2452498A1 (de) Verfahren und vorrichtung zur erzeugung von zeichenmustern
DE3018508A1 (de) Sprachanalysiervorrichtung
DE2644506A1 (de) Rechner zur berechnung der diskreten fourier-transformierten
DE2105449A1 (de) Musikinstrument
DE3024009C2 (de) Digitales Filter
AT403969B (de) Verfahren zur kompression eines analogen signals
DE3017517A1 (de) Sprachsyntheseanordnung
DE3226538A1 (de) Stimm-synthesizer
DE2535786B2 (de) Einrichtung zur erzeugung eines digitalen kodewortes zur kennzeichnung eines schalters in einer schalteranordnung
CH657487A5 (de) Funktionsgenerator zur erzeugung einer anzahl von sich wiederholenden digitalen wellenformen.
CH637510A5 (de) Verfahren und anordnung zur uebertragung von sprachsignalen sowie anwendung des verfahrens.
DE2826570C2 (de)
DE3843372A1 (de) Verfahren und schaltungsanordnung zur taktanpassung in der digitalen nachrichtentechnik
DE2854601C2 (de) Verfahren zur Tonaufbereitung und Ton-Synthesator zu seiner Durchführung
DE2900587A1 (de) Decodierschaltung
DE3049393A1 (de) Sprachsynthesizer
DE3037276A1 (de) Tonsynthesizer

Legal Events

Date Code Title Description
8128 New person/name/address of the agent

Representative=s name: PRINZ, E., DIPL.-ING. LEISER, G., DIPL.-ING., PAT.

8110 Request for examination paragraph 44
8172 Supplementary division/partition in:

Ref country code: DE

Ref document number: 3051113

Format of ref document f/p: P

Q171 Divided out to:

Ref country code: DE

Ref document number: 3051113

D2 Grant after examination
8364 No opposition during term of opposition