DE69623487T2 - Mit sehr niedriger bit-rate arbeitendes sprachnachrichtensystem mit variabler raten-rückwärtssuchinterpolationsverarbeitung - Google Patents
Mit sehr niedriger bit-rate arbeitendes sprachnachrichtensystem mit variabler raten-rückwärtssuchinterpolationsverarbeitungInfo
- Publication number
- DE69623487T2 DE69623487T2 DE69623487T DE69623487T DE69623487T2 DE 69623487 T2 DE69623487 T2 DE 69623487T2 DE 69623487 T DE69623487 T DE 69623487T DE 69623487 T DE69623487 T DE 69623487T DE 69623487 T2 DE69623487 T2 DE 69623487T2
- Authority
- DE
- Germany
- Prior art keywords
- speech
- parameter
- template
- spectral parameter
- subsequent
- 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.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 title claims description 30
- 230000003595 spectral effect Effects 0.000 claims description 112
- 239000013598 vector Substances 0.000 claims description 103
- 238000004891 communication Methods 0.000 claims description 46
- 230000005540 biological transmission Effects 0.000 claims description 30
- 238000007906 compression Methods 0.000 claims description 29
- 230000015654 memory Effects 0.000 claims description 23
- 230000006835 compression Effects 0.000 claims description 15
- 238000000034 method Methods 0.000 description 51
- 230000008569 process Effects 0.000 description 39
- 230000006870 function Effects 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 12
- 238000012360 testing method Methods 0.000 description 12
- 238000013139 quantization Methods 0.000 description 9
- 239000011159 matrix material Substances 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000011664 signaling Effects 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 230000005284 excitation Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000003750 conditioning effect Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000012905 input function Methods 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/06—Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L2019/0001—Codebooks
- G10L2019/0013—Codebook search algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
- Diese Erfindung bezieht sich allgemein auf Kommunikationssysteme und insbesondere auf ein digitales Kommunikationssystem zur komprimierten Sprachübertragung mit sehr niedrigen Datentransmissionsraten und unter Verwendung einer Rückwärtssuch-Interpolationsverarbeitung bei variablen Raten.
- Kommunikationssysteme, wie etwa Paging-Systeme, mussten in der Vergangenheit, um als System profitabel zu arbeiten, Kompromisse bezüglich der Länge der Nachrichten, der Anzahl der Benutzer und der Bequemlichkeit für den Benutzer eingehen. Die Anzahl der Benutzer und die Länge der Nachrichten waren limitiert, um eine Überlastung des Kanals und lange, zeitliche Übertragungsverzögerungen zu vermeiden. Die Bequemlichkeit für den Benutzer ist unmit telbar betroffen von der Kanalkapazität, der Anzahl der Benutzer auf dem Kanal, Systemmerkmalen und dem Nachrichtentyp. Bei Paging-Systemen boten rein akustische Pager, die den Benutzer schlicht dahingehend alarmieren, eine vorbestimmte Telefonnummer anzurufen, die höchste Kanalkapazität, waren für die Benutzer aber etwas unbequem. Herkömmliche, analoge Sprach-Pager erlaubten dem Benutzer, detailliertere Nachrichten zu empfangen, schränkten aber die Anzahl der Benutzer auf einem gegebenen Kanal drastisch ein. Analoge Sprach-Pager, die Echtzeitgeräte darstellen, wiesen außerdem den Nachteil auf, dem Benutzer keine Möglichkeit zur Verfügung zu stellen, empfangene Nachrichten zu speichern und zu wiederholen.
- Die Einführung digitaler Pager mit numerischen und alphanumerischen Anzeigen und Speichern überwand viele der mit den alten Pagern verbundenen Probleme. Diese digitalen Pager verbesserten die Kapazität des Paging-Kanals, Nachrichten zu handhaben und boten dem Benutzer eine Möglichkeit, Nachrichten für eine spätere, erneute Betrachtung zu speichern.
- Obwohl die digitalen Pager mit numerischen und alphanumerischen Anzeigen viele Vorteile boten, bevorzugten viele Benutzer weiter Pager mit Sprachansagen. Bei dem Versuch, diesen Service über einen digitalen Kanal mit begrenzter Kapazität anzubieten, wurden verschiedene digitale Sprachkompressions- und Synthesetechniken ausprobiert, jede mit ihrem eigenen Erfolgs- und Limitierungsgrad. Standardmethoden zur digitalen Sprachkompression, die etwa bei Zweiwege-Funkempfängern Anwendung fanden, konnten nicht den für die Verwendung auf einem Paging-Kanal erforderlichen Kompressionsgrad erreichen. Andere Techniken, die ein hohes Kompressionsverhältnis bieten, neigen dazu, Sprache, insbesondere während Phasen, in de nen sich die Sprache schnell ändert, zu verzerren. Sprachnachrichten, die nach dem aktuellen Stand der Technik digital codiert sind, würden entweder einen so großen Teil der Kanalkapazität monopolisieren oder die Sprache in inakzeptabler Weise verzerren, so dass sie das System kommerziell erfolglos machen dürften.
- Der Artikel "Variable Frame Rate Speech Coding using optimal Interpolation", Chii-Jen Chung und Sin-Horng Chen, IEEE Transactions on Communications 42 (1994) Juni, Nr. 6, New York, USA offenbart einen VFR-LPC-Vocoder, der Interpolation einsetzt. In dem Encoder werden einige repräsentative Blöcke zur Übertragung ausgewählt. In dem Decoder werden die LPC-Parameter aller nicht übertragenen Blöcke wieder hergestellt.
- Was entsprechend zur optimalen Ausnutzung eines Kanals in einem Kommunikationssystem, wie etwa eines Paging- Kanals in einem Paging-System, notwendig ist, ist eine Vorrichtung, die Sprachnachrichten digital derart codiert, dass die resultierenden Daten sehr hoch komprimiert sind, eine akzeptable Sprachqualität bewahren und auf einfache Weise mit den normalen Daten, die über den Kommunikationskanal versendet werden, gemischt werden können. Zusätzlich wird ein Kommunikationssystem benötigt, das Sprachnachrichten digital in einer Weise komprimiert, die die Verarbeitung in dem empfangenden Kommunikationsgerät, wie etwa einem Pager, minimiert.
- Kurz gesagt wird, gemäß einem ersten Aspekt der Erfindung ein Sprachkompressionsprozessor zur Verarbeitung einer Sprachnachricht bereitgestellt, der eine Sprach übertragung mit niedriger Bitrate liefert, umfassend: einen Speicher zur Speicherung von Sprachparametervorlagen und Indizes, die die Sprachpärametervorlagen kennzeichnen, einen Eingangs-Sprachprozessor zur Verarbeitung der Sprachnachricht zur Erzeugung von Sprach-Spektralparametervektoren, die in einer Folge in besagtem Speicher gespeichert werden, einen Signalprozessor, der so programmiert ist, dass er einen Sprach-Spektralparametervektor aus der in besagtem Speicher gespeicherten Folge von Sprach-Spektralparametervektoren auswählt, einen Index bestimmt, der eine einem ausgewählten Sprach-Spektralparametervektor entsprechende Sprachparametervorlage kennzeichnet, einen Folge-Sprach-Spektralparametervektor aus der in besagtem Speicher gespeicherten Folge von Sprach-Spektralparametervektoren auswählt, wobei der Folge-Sprach-Spektralparametervektor in Beziehung zu dem ausgewählten Sprach-Spektralparametervektor einen oder mehrere Zwischen-Sprach-Spektralparametervektor festlegt, einen Folgeindex bestimmt, der eine dem Folge-Sprach-Spektralparametervektor entsprechende Folge-Sprachparametervorlage kennzeichnet, zwischen der Sprachparametervorlage und der Folge-Sprachparametervorlage interpoliert, um einen oder mehrere Zwischen-Sprachparametervorlagen zu gewinnen, den einen oder die mehreren Zwischen-Sprach-Spektralparametervektoren, die dem einen oder den mehreren interpolierten Zwischen-Sprachparametervorlagen entsprechenden, vergleicht, um einen oder mehrere Abstände zu bestimmen und den Folgeindex zur Übertragung auswählt, wenn einer oder mehrere gewonnenen Abstände kleiner oder gleich einem vorbestimmten Abstand sind sowie einen auf besagten Signalprozessor ansprechenden Sender zur Übertragung des Indexes und zur nachfolgenden Übertragung des zur Übertragung ausgewählten Folgeindexes.
- Gemäß einem zweiten Aspekt der vorliegenden Erfindung wird ein Kommunikationssystem zur Verfügung gestellt, umfassend einen Sprachkompressionsprozessor gemäß einem der vorangehenden Ansprüche und eine Kommunikationsvorrichtung zum Empfang einer Sprachübertragung bei niedriger Bitrate, um eine Sprachnachricht zu liefern, wobei besagte Kommunikationsvorrichtung umfasst: einen Speicher zur Speicherung eines Satzes von Sprachparametervorlagen, einen Empfänger zum Empfang eines Indexes, eines Folgeindexes und einer Zahl, die die Anzahl von durch Interpolation zu gewinnenden, Zwischen-Sprach-Spektralparametervektoren festlegt, einen Signalprozessor, der so programmiert ist, dass er eine dem Index entsprechende Sprachparametervorlage und eine dem Folgeindex entsprechende Folge-Sprachparametervorlage aus dem Satz vorbestimmter Sprachparametervorlagen auswählt und zwischen der Sprachparametervorlage und der Folge-Sprachparametervorlage interpoliert, um die Anzahl an Zwischen-Sprachparametervorlagen abzuleiten, die der durch die Zahl festgelegten Anzahl an Zwischen-Sprach- Spektralparametervektoren entsprechenden, einen Synthesizer zur Erzeugung von Sprachdaten aus der Sprachparametervorlage, der Folge-Sprachparametervorlage und der Anzahl durch Interpolation gewonnener Zwischen-Sprachparametervorlagen sowie einen Wandler zur Erzeugung einer Sprachnachricht aus den erzeugten Sprachdaten.
- Fig. 1 ist ein Blockdiagramm eines Kommunikationssystems, das variable Raten-Rückwärtssuch-Interpolationsverarbeitung entsprechend der vorliegenden Erfindung benutzt.
- Fig. 2 ist ein elektrisches Schaltungsdiagramm eines Paging-Terminals und eines zugehörigen Paging-Senders, die eine erfindungsgemäße variable Raten-Rückwärtssuch-Interpolationsverarbeitung benutzen.
- Fig. 3 ist ein Flussdiagramm, das die Arbeitsweise des in Fig. 2 gezeigten Paging-Terminals darstellt.
- Fig. 4 ist ein Flussdiagramm, das die Arbeitsweise des digitalen Signalprozessors, der in dem in Fig. 2 gezeigten Paging-Terminal benutzt wird, darstellt.
- Fig. 5 ist ein Flussdiagramm, das die in dem in Fig. 4 gezeigten Signalprozessor benutzte, variable Raten- Rückwärtssuch-Interpolationsverarbeitung illustriert.
- Fig. 6 ist ein Diagramm, das einen Teil des in dem in Fig. 4 gezeigten digitalen Signalprozessor benutzten Sprachkompressionsprozesses illustriert.
- Fig. 7 ist ein elektrisches Schaltbild des digitalen Signalprozessors, der in dem in Fig. 2 gezeigten Paging-Terminal benutzt wird.
- Fig. 8 ist ein elektrisches Schaltbild eines Empfängers, der den erfindungsgemäßen, digitalen Sprachkompressionsprozess benutzt.
- Fig. 9 ist ein Flussdiagramm, das die Arbeitsweise des in Fig. 8 gezeigten Empfängers darstellt.
- Fig. 10 ist ein Flussdiagramm, das den in dem Empfänger in Fig. 8 benutzten, Interpolationsprozess bei variablen Raten darstellt.
- Fig. 11 ist ein elektrisches Schaltbild des in dem Paging-Empfänger in Fig. 8 benutzten digitalen Signalprozessors.
- Fig. 1 stellt ein Blockdiagramm eines Kommunikationssystems, wie etwa eines Paging-Systems dar, das unter Anwendung der erfindungsgemäßen Rückwärtssuch- Interpolationsverarbeitung bei variablen Raten eine Sprachübertragung bei sehr niedriger Bitrate benutzt. Wie weiter unten detailliert beschrieben wird, analysiert das Paging-Terminal 106 Sprachdaten und erzeugt Anregungsparameter und Spektralparameter, die die Sprachdaten repräsentieren. Codebuchindizes, die Vorlagen des Linearvorhersagecodes (Linear Predictive Code: LPC) entsprechen, welche die spektrale Information der Segmente der Original- Sprachnachricht repräsentieren, werden von dem Paging-Terminal erzeugt. Das Paging-Terminal 106 reduziert dann die Datenmenge, die zur Kommunikation der Spektralinformation übertragen werden muss, indem es lediglich einen Index einer Sprachparametervorlage und eine Zahl überträgt, die die Anzahl der durch Interpolation zu erzeugenden Sprachparametervorlagen, angibt. Die vorliegende Erfindung benutzt einen Interpolationsprozess mit variabler Bitrate, der die durch Interpolation zu erzeugende Anzahl der Sprachparametervorlagen ständig anpasst. Die kontinuierliche Anpassung der durch Interpolation zu erzeugenden Anzahl der Sprachparametervorlagen ermöglicht es, die Anzahl der während Phasen sich schnell ändernder Sprache zu interpolierenden Sprachparametervorlagen zu reduzieren und die Anzahl der während Phasen sich langsam ändernder Sprache zu interpolierenden Sprachparametervorlagen zu erhöhen, während eine Sprachübertragung mit geringer Verzerrung bei sehr niedriger Bitrate beibehalten wird, wie dies weiter unten beschrieben wird.
- Der digitale Sprachkompressionsprozess ist an die Nicht-Echtzeitnatur des Paging- und anderer Nicht-Echtzeitkommunikationssysteme angepasst, die die Zeit zur Verfügung stellen, die benötigt wird, um höchst rechenintensive Prozesse auf sehr lange Sprachsegmente anzuwenden. Bei Nicht-Echtzeitkommunikation steht ausreichend Zeit zur Verfügung, um die gesamte Sprachnachricht zu empfangen und dann die Nachricht zu verarbeiten. Verzögerungen von bis zu zwei Minuten können bei Paging-Systemen ohne weiteres toleriert werden, während Verzögerungen von zwei Sekunden in Echtzeitkommunikationssystemen nicht hinnehmbar sind. Die asymmetrische Natur des hier beschriebenen, digitalen Sprachkompressionsprozesses minimiert die Verarbeitungsleistung, die in einer tragbaren Kommunikationsvorrichtung 114, wie etwa einem Pager, durchgeführt werden muss, was den Prozess für Paging-Systeme und andere Nicht-Echtzeitsprachkommunikationen ideal macht. Der höchst rechenintensive Teil des Sprachkompressionsprozesses wird in einem feststehenden Systembereich durchgeführt und als Ergebnis muss nur eine geringe Berechnung in dem tragbaren Systembereich durchgeführt werden, wie dies weiter unten beschrieben wird.
- Exemplarisch wird ein Paging-System benutzt, um die vorliegende Erfindung zu beschreiben, obwohl erkennbar ist, dass jedes Nicht-Echtzeitkommunikationssystem von der vorliegenden Erfindung ebenso profitiert. Ein Paging- System ist konzipiert, um einer Vielzahl von Benutzern zu dienen, die jeweils unterschiedlicher Dienste bedürfen. Manche der Benutzer brauchen numerische Benachrichtigungsdienste, andere alphanumerische Benachrichtigungsdienste, wieder andere Benutzer brauchen Sprachbenachrichtigungsdienste. In einem Paging-System erzeugt ein Anrufer einen Funkruf, indem er mit dem Paging-Terminal 106 via Tele fon 102 über ein öffentlich geschaltetes Telefonnetzwerk (Public Switched Telephone Network: PSTN) 104 kommuniziert. Das Paging-Terminal 106 fordert vom Anrufer die Identifikation des Empfängers und eine zu versendende Nachricht an. Bei Erhalt der erforderlichen Informationen gibt das Paging-Terminal 106 einen Hinweis aus, dass die Nachricht von dem Paging-Terminal 106 empfangen wurde. Das Paging-Terminal 106 codiert die Nachricht und setzt die codierte Nachricht in eine Übertragungs-Warteschlange. Zu angemessener Zeit wird die Nachricht unter Verwendung eines Senders 108 und einer Sendeantenne 110 übertragen. Es ist erkennbar, dass bei einem Simulcast-Übertragungssystem ebenso eine Mehrzahl von Sendern benutzt werden kann, die unterschiedliche geographische Gebiete abdecken.
- Das von der Sendeantenne 110 übertragene Signal wird von einer Empfangsantenne 112 aufgefangen und von einer Kommunikationsvorrichtung, die in Fig. 1 als Paging- Empfänger dargestellt ist, verarbeitet. Die angerufene Person wird alarmiert und die Nachricht angezeigt oder entsprechend dem eingesetzten Nachrichtentyp angekündigt.
- Ein elektrisches Schaltbild des Paging-Terminals 106 und des Senders 108, die den erfindungsgemäßen Sprachkompressionsprozess nutzen, ist in Fig. 2 dargestellt. Das Paging-Terminal 106 ist von der Art, wie sie benutzt wird, um einer großen Anzahl an gleichzeitiger Benutzer zu dienen, wie etwa bei einem kommerziellen RCC-System (Radio Common Carrier). Das Paging-Terminal 106 nutzt eine Anzahl Eingabe-, Signalverarbeitungs- und Ausgabevorrichtungen; die von der Steuereinheit 216 angesteuert werden. Die Kommunikation zwischen der Steuereinheit 216 und den verschiedenen Vorrichtungen, aus denen sich das Paging-Terminal 106 zusammensetzt, wird von dem digitalen Steuerbus 210 abgewickelt. Die Kommunikation von digitalisierter Sprache und Daten wird von einer im Zeitmultiplex- Verfahren betriebenen Eingabe-Datenbahn 212 und von einer im Zeitmultiplex-Verfahren betriebenen Ausgabe- Datenbahn 218 abgewickelt. Man wird erkennen, dass der digitale Steuerbus 210, die im Zeitmultiplex-Verfahren betriebene Eingabe-Datenbahn 212 und die im Zeitmultiplex- Verfahren betriebene Ausgabe-Datenbahn 218 erweiterbar sind, um eine Erweiterung des Paging-Terminals 106 zu ermöglichen.
- Ein Eingangs-Sprachprozessor 205 stellt ein Interface zwischen dem PSTN 104 und dem Paging-Terminal 106 bereit. Die PSTN-Verbindungen köhnen entweder eine Mehrzahl von gemultiplexten Digitalverbindungen mit mehreren Anrufen pro Leitung, wie in Fig. 2 als digitale PSTN- Verbindung 202 dargestellt, sein oder eine Mehrzahl analoger PSTN-Verbindungen 208 mit jeweils einem Anruf pro Leitung.
- Jede digitale PSTN-Verbindung 202 wird von einem Digitaltelefon-Interface 204 bedient. Das Digitaltelefon- Interface 204 stellt notwendige Signalaufbereitung, Synchronisation, De-Multiplexing, Signalgabe, Überwachung und Regelung der Schutzerfordernisse für den Ablauf des erfindungsgemäßen, digitalen Sprachkompressionsprozesses bereit. Das Digitaltelefon-Interface 204 kann auch eine zeitweise Speicherung digitalisierter Sprachblöcke vornehmen, um so den Austausch von Zeitschlitzen beziehungsweise Zeitkanälen und die zur Ermöglichung eines Zugangs zu der im Zeitmultiplex-Verfahren betriebenen Eingabe- Datenbahn 212 erforderliche Ausrichtung von Zeitkanälen zu erleichtern. Wie weiter unten beschrieben werden soll, werden Bedienungsanforderungen und Steuermeldungen von der Steuereinheit 216 gesteuert. Die Kommunikation zwischen dem Digitaltelefon-Interface 204 und der Steuereinheit 216 läuft über den digitalen Steuerbus 210.
- Jede analoge PSTN-Verbindung 208 wird von einem Analogtelefon-Interface 206 bedient. Das Analogtelefon- Interface 206 stellt die notwendige Signalaufbereitung, Synchronisation, Analog/Digital- und Digital/Analog- Wandlung, Signalgabe, Überwachung und Regelung der Schutzerfordernisse für den Ablauf des erfindungsgemäßen, digitalen Sprachkompressionsprozesses bereit. Die Blöcke digitalisierter Sprachnachrichten aus dem Analog/Digital- Wandler 207 werden in dem Analogtelefon-Interface 206 zeitweilig gespeichert, um so den Austausch von Zeitkanälen und die zur Ermöglichung eines Zugangs zu der im Zeitmultiplex-Verfahren betriebenen Eingabe-Datenbahn 212 erforderliche Ausrichtung von Zeitkanälen zu erleichtern. Wie weiter unten beschrieben werden soll, werden Bedienungsanforderungen und Steuermeldungen von der Steuereinheit 216 gesteuert. Die Kommunikation zwischen dem Analogtelefon-Interface 206 und der Steuereinheit 216 läuft über den digitalen Steuerbus 210.
- Wenn ein eingehender Anruf detektiert wird, wird eine Bedienungsanforderung von dem Analogtelefon-Interface 206. oder dem Digitaltelefon-Interface 204 an die Steuereinheit 216 versendet. Die Steuereinheit 216 wählt einen digitalen Signalprozessor 214 aus einer Mehrzahl digitaler Signalprozessoren aus. Die Steuereinheit 216 verbindet das Analogtelefon-Interface 206 oder das Digitaltelefon-Interface 204, das die Bedienungsanforderung gestellt hat, über die im Zeitmultiplex-Verfahren betriebenen Eingabe-Datenbahn 212 mit dem ausgewählten Signalprozessor 214.
- Der digitale Signalprozessor 214 kann so programmiert werden, dass er alle Signalverarbeitungsfunktionen, die zur Vervollständigung des Paging-Prozesses erforderlich sind, durchführt. Typische Signalverarbeitungsfunktionen, die der digitale Signalprozessor 214 durchführt, schließen die erfindungsgemäße, digitale Sprachkompression, die Mehrfrequenzwahl-Decodierung und -Erzeugung (Dual Tone Multi Frequency: DMTF), Modemton-Erzeugung und - Decodierung und die Erzeugung zuvor aufgenommener Spracheingabeäufforderungen ein. Der digitale Signalprozessor kann auf die Durchführung einer oder mehrerer der vorgenannten Aufgaben programmiert werden. In dem Fall, dass ein digitaler Signalprozessor 214 darauf programmiert ist, mehr als eine Aufgabe durchzuführen, weist die Steuereinheit 216 zu dem Zeitpunkt, da der digitale Signalprozessor 214 ausgewählt wird, eine besondere Aufgabe, die abgearbeitet werden soll, zu oder, im Fall eines digitalen Signalprozessors 214, der darauf programmiert ist, nur eine Aufgabe durchzuführen, wählt die Steuereinheit 216 einen digitalen Signalprozessor 214 aus, der darauf programmiert ist, die besondere Funktion abzuarbeiten, die erforderlich ist, um den nächsten Schritt in dem Paging-Prozess durchzuführen. Der Betrieb des digitalen Signalprozessors 214 zur Durchführung der Mehrfrequenzwahl-Decodierung und -Erzeugung (Dual Tone Multi Frequency: DMTF), Modemton-Erzeugung und'-Decodierung und der Erzeugung zuvor aufgenommener Spracheingabeaufforderungen ist dem Fachmann wohl bekannt. Der Betrieb des digitalen Signalprozessors 214 zur Durchführung der Funktion einer erfindungsgemäßen, variablen Raten-Rückwärtssuch- Interpolationsverarbeitung bei sehr niedriger Bitrate soll weiter unten im Detail beschrieben werden.
- Die Verarbeitung einer Paging-Anforderung vollzieht sich im Fall einer Sprachnachricht in der folgenden Weise. Der digitale Signalprozessor 214, der mit einem Analogtelefon-Interface 206 oder einem Digitaltelefon- Interface 204 verbunden ist, liefert dem Anrufer eine Eingabeaufforderung für eine Sprachnachricht. Der digitale Signalprozessor 214 komprimiert die empfangene Sprachnachricht gemäß dem weiter unten beschriebenen Prozess. Die komprimierte, digitale Sprachnachricht, die durch den Kompressionsprozess erzeugt wurde, wird unter Steuerung der Steuereinheit 216 über die im Zeitmultiplex-Verfahren betriebene Ausgabe-Datenbahn 218 mit einem Paging- Protokollencoder 228 verbunden. Der Paging- Protokollencoder 228 codiert die Daten gemäß einem geeigneten Paging-Protokoll. Ein solches Protokoll, das weiter unten im Detail beschrieben werden soll, ist das sog. POC- SAG-Protokoll (Post Office Committee Standard Advisory Group). Es ist erkennbar, dass auch andere Signalgabe- Protokolle benutzt werden können. Die Steuereinheit 216 weist den Paging-Protokollencoder 228 an, die codierten Daten über die im Zeitmultiplex-Verfahren betriebene Ausgabe-Datenbahn 218 in einer Datenspeichervorrichtung 226 zu speichern. Zu einem geeigneten Zeitpunkt werden die codierten Daten unter Steuerung der Steuereinheit 216 über die im Zeitmultiplex-Verfahren betriebene Ausgabe- Datenbahn 218 in die Übertragungssteuereinheit 220 geladen und unter Verwendung des Senders 108 und der Sendeantenne 110 übertragen.
- Im Fall einer numerischen Nachricht vollzieht sich die Verarbeitung einer Paging-Anforderung in einer Weise ähnlich wie bei der Sprachnachricht mit Ausnahme des Prozesses, der von dem digitalen Signalprozessor 214 ausgeführt wird. Der digitale Signalprozessor 214 liefert dem Anrufer eine Eingabeaufforderung für eine DTMF-Nachricht. Der digitale Signalprozessor 214 decodiert die empfangene DTMF-Nachricht und erzeugt eine digitale Nachricht. Die digitale Nachricht, die von dem digitalen Signalprozes sor 214 erzeugt wurde, wird in derselben Weise gehandhabt, wie die digitale Sprachnachricht, die im Fall einer Sprachnachricht von dem digitalen Signalprozessor 214 erzeugt wurde.
- Im Fall einer alphanumerischen Nachricht vollzieht sich die Verarbeitung einer Paging-Anforderung in einer Weise ähnlich wie bei der Sprachnachricht mit Ausnahme des Prozesses, der von dem digitalen Signalprozessor 214 ausgeführt wird. Der digitale Signalprozessor 214 ist auf die Decodierung und Erzeugung von Modemtönen programmiert. Der digitale Signalprozessor 214 arbeitet mit dem Anrufer gemäß einem der standardmäßigen Benutzerinterface-Protokolle, wie etwa das sog. PET -Protokoll (Page Entry Terminal-Protokoll) zusammen. Es ist erkennbar, dass auch andere Kommunikationsprotokolle verwendet werden können. Die digitale Nachricht, die von dem digitalen Signalprozessor 214 erzeugt wurde, wird in derselben Weise gehandhabt, wie die digitale Sprachnachricht, die im Fall einer Sprachnachricht von dem digitalen Signalprozessor 214 erzeugt wurde.
- Fig. 3 ist ein Flussdiagramm, das die Arbeitsweise des in Fig. 2 gezeigten Paging-Terminals 106 bei der Verarbeitung einer Sprachnachricht darstellt. Es sind zwei Zugangspunkte zu dem Flussdiagramm 300 dargestellt. Der erste Zugangspunkt ist für einen der digitalen PSTN- Verbindung 202 zugeordneten Prozess und der zweite Zugangspunkt ist für einen der analogen PSTN-Verbindung 208 zugeordneten Prozess. Im Fall der digitalen PSTN- Verbindung 202 startet der Prozess mit Schritt 302, indem er über eine digitale PSTN-Leitung eine Anforderung empfängt. Bedienungsanforderungen der digitalen PSTN- Verbindung 202 sind durch ein Bitmuster in dem eingehenden Datenstrom gekennzeichnet. Das Digitaltelefon-Interface empfängt die Bedienungsanforderung und kommuniziert die Anforderung an die Steuereinheit 216.
- In Schritt 304 werden Informationen mit Bedienungsanforderungen aus dem Digitalkanal durch digitales Block- Demultiplexen von dem eingehenden Datenstrom getrennt. Das von der digitalen PSTN-Verbindung 202 empfangene, digitale Signal umfasst typischerweise eine Mehrzahl von digitalen Kanälen, die in den eingehenden Datenstrom gemultiplext sind. Die digitalen Kanäle, die Bedienungsanforderungen stellen, werden demultiplext und die digitalisierten Sprachdaten werden dann zeitweilig gespeichert, um die Ausrichtung der Zeitkanäle und das Multiplexen der Daten auf die im Zeitmultiplex-Verfahren betriebenen Eingabe-Datenbahn 212 zu vereinfachen. Ein Zeitkanal für die digitalisierten Sprachdaten auf der im Zeitmultiplex-Verfahren betriebenen Eingabe-Datenbahn 212 wird von der Steuereinheit 216 bestimmt. Umgekehrt werden digitalisierte Sprachdaten, die von dem digitalen Signalprozessor 214 zur Übertragung an die digitale PSTN-Verbindung 202 erzeugt wurden, angemessen formatiert und zur Übertragung in den ausgehenden Datenstrom gemultiplext.
- Ähnlich startet der Prozess bei der analogen PSTN- Verbindung 208 mit Schritt 306, wenn von der analogen PSTN-Leitung eine Anforderung empfangen wird. Auf der analogen PSTN-Verbindung werden eingehende Anrufe entweder durch niederfrequente Wechselstrom-Signale oder durch Gleichstrommeldung gemeldet. Das Analogtelefon- Interface 206 empfängt die Anforderung und kommuniziert die Anforderung an die Steuereinheit 216.
- In Schritt 308 wird die analoge Sprachnachricht von dem Analog/Digital-Wandler 207, der als Abtaster zut Erzeugung von Sprachnachrichten-Samples und als Digitalisierer zur Digitalisierung der Sprachnachrichten-Samples ar beitet, in einen digitalen Datenstrom gewandelt. Das empfangene, analoge Signal in seiner ganzen zeitlichen Länge wird als analoge Sprachnachricht bezeichnet. Das analoge Signal wird von dem Analog/Digital-Wandler 207 abgetastet, Sprach-Samples werden erzeugt und dann digitalisiert, wodurch digitale Sprach-Samples erzeugt werden. Die digitalen Sprachdaten werden in einem von der Steuereinheit 216 zugeordneten Zeitkanal auf die im Zeitmultiplex-Verfahren betriebenen Eingabe-Datenbahn 212 gemultiplext. Umgekehrt unterlaufen sämtliche Sprachdaten auf der im Zeitmultiplex-Verfahren betriebenen Eingabe-Datenbahn 212, die von dem digitalen Signalprozessor 214 stammen, vor der Übertragung an die analoge PSTN-Verbindung 208 eine Digital/Analog-Wandlung.
- Wie in Fig. 3 dargestellt, laufen die Verarbeitungswege für die analoge PSTN-Verbindung 208 und die digitale PSTN-Verbindung 202 in Schritt 310 zusammen, wenn ein digitaler Signalprozessor für die Handhabung des eingehenden Anrufs bestimmt wird. Die Steuereinheit 216 wählt einen digitalen Signalprozessor 214 aus, der auf die Durchführung des digitalen Sprachkompressions-Prozesses programmiert ist. Der festgelegte digitale Signalprozessor 214 liest die Daten auf der im Zeitmultiplex-Verfahren betriebenen Eingabe-Datenbahn 212 in dem zuvor bestimmten Zeitkanal.
- Die von dem digitalen Signalprozessor 214 eingelesenen Daten werden in Schritt 312 als unkomprimierte Sprachdaten gespeichert. Die gespeicherten, unkomprimierten Sprachdaten werden in Schritt 314 verarbeitet, der weiter unten im Detail beschrieben werden soll. Die komprimierten Sprachdaten, die sich aus dem Verarbeitungsschritt 314 ergeben, werden in Schritt 316 in für die Übertragung über einen Paging-Kanal geeigneter Weise codiert. Ein solches Codierungsverfahren ist der POCSAG-Code (Post Office Committee Standard Advisory Group). Es ist erkennbar, dass es viele andere ebenfalls geeignete Codierungs-Verfahren gibt. In Schritt 318 werden die codierten Daten zur späteren Übertragung in einer Paging-Warteschlange gespeichert. Zu angemessener Zeit werden die in der Warteschlange gespeicherten Daten in Schritt 320 an den Sender 108 verschickt und in Schritt 322 gesendet.
- Fig. 4 ist ein Flussdiagramm, das den in Schritt 314 in Fig. 3 gezeigten, erfindungsgemäßen Sprachkompressionsprozess im Detail beschreibt. Die in Fig. 4 gezeigten Schritte werden von dem digitalen Signalprozessor 214, der als Sprachkompressions-Prozessor arbeitet, durchgeführt. Der digitale Sprachkompressionsprozess analysiert Segmente der Sprachdaten, um aus jeder Korrelation, die etwa zwischen Sprachperioden existieren, Vorteile zu ziehen. Diese Erfindung nutzt den Speichervermittlungs- (store-and-forward-) Charakter einer Nicht-Echtzeitanwendung und benutzt eine Rückwärtssuch-Interpolation, um variable Interpolationsraten zu erreichen. Das Rückwärtssuch-Interpolationsschema zieht Vorteile aus jeder Korrelation zwischen Perioden und überträgt nur Daten, für solche Perioden, in denen sich die Sprache schnell ändert, wohingegen während sich langsam ändernder Perioden oder während solcher Perioden, in denen sich die Sprache linear ändert, Interpolation benutzt wird. Die digitalisierten Sprachdaten 402, die zuvor von dem digitalen Signalprozessor 214 als unkomprimierte Sprachdaten gespeichert worden waren, werden in Schritt 404 analysiert und der Verstärkungsfaktor normalisiert. Die Amplitude der digitalen Sprachnachricht wird so eingestellt, dass der Dynamikbereich des Systems voll ausgenutzt und das scheinbare Signal/Rausch-Verhalten verbessert wird.
- Die normalisierten, unkomprimierten Sprachdaten werden in Schritt 406 in eine vorgegebene Anzahl von digitalisierten Sprach-Samples gruppiert, die typischerweise 25 ms der Sprachdaten repräsentieren. Das Gruppieren von Sprach-Samples, die Sprachabschnitte kurzer Dauer repräsentieren, wird hier als Erzeugung von Sprach-Blöcken bezeichnet. In Schritt 408 wird an den kurzen Sprachsegmenten eine Sprachanalyse durchgeführt, um Sprachparameter zu erzeugen. Es gibt viele verschiedene, wohl bekannte Sprachanalyseverfahren. Der Fachmann wird erkennen, welches Sprachanalyseverfahren am Besten mit den Erfordernissen des zu entwerfenden Systems übereinstimmt. Der Sprachanalyseprozess analysiert die Sprachsamples von kurzer Länge und berechnet eine Anzahl von Parametern in einer im Stand der Technik wohl bekannten Weise. Der hier beschriebene Sprachkompressionsprozess berechnet vorzugsweise 13 Parameter. Die ersten drei Parameter quantisieren die Gesamtenergie des Sprach-Samples, einen charakteristischen Tonhöhenwert und Stimminformationen. Die verbleibenden zehn Parameter werden als Spektralparameter bezeichnet und repräsentieren im Wesentlichen die Koeffizienten eines digitalen Filters. Der Sprachanalyseprozess, der zur Erzeugung der zehn Spektralparameter benutzt wird, ist typischerweise ein linearer Vorhersagecode- (LPC-: Linear-Predictive-Code-) Prozess. Die LPC-Parameter, die den spektralen Gehalt der Sprachsegmente von kurzer Länge repräsentieren, werden als LPC-Sprach-Spektralparametervektoren und Sprach-Spektralparametervektoren bezeichnet. Der digitale Signalprozessor 214 arbeitet als Blockbilder zur Gruppierung der digitalisierten Sprach-Samples.
- Bei Schritt 410 werden die zehn Sprach- Spektralparameter, die in Schritt 408 berechnet worden waren, in einer Sprach-Spektralparametermatrix oder einem Parameterstapel, die beziehungsweise der eine Folge von Sprachparametervektoren umfasst, in chronologischer Reihenfolge angeordnet. Die zehn Sprach-Spektralparameter nehmen eine Reihe der Sprach-Spektralparametermatrix ein und werden hier als Sprach-Spektralparametervektoren bezeichnet. Der digitale Signalprozessor 214 arbeitet zur Erzeugung der Sprach-Spektralparametervektoren und während der Speicherung der Sprach-Spektralparametervektoren in chronologischer Reihenfolge als Eingangs-Sprachprozessor. In Schritt 412 wird an der Sprach-Spektralparametermatrix eine Vektorquantisierung und Rückwärtssuch-Interpolation durchgeführt, wobei Daten erzeugt werden, die erfindungsgemäß Indizes und Interpolationsgrößen 420 enthalten. Die Vektorquantisierung und Rückwärtssuch-Interpolation soll weiter unten unter Bezugnahme auf Fig. 5 beschrieben werden.
- Fig. 5 ist ein Flussdiagramm, das die in Schritt 410 in Fig. 4 gezeigte Vektorquantisierung und Rückwärtssuch- Interpolationsverarbeitung, die gemäß dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung von dem digitalen Signalprozessor 214 durchgeführt wird, im Detail wiedergibt. Im Rahmen der folgenden Beschreibung repräsentiert das Symbol Xj einen in Schritt 408 berechneten und in der j-Position der Sprach-Spektralparametermatrix gespeicherten Sprach-Spektralparametervektor. Das Symbol Yj repräsentiert eine Sprachparametervorlage mit dem Index ij aus einem Codebuch, die dem entsprechenden Sprach-Spektralparametervektor Xj am Besten entspricht. Wie weiter unten detailliert beschrieben werden soll, reduziert das Paging-Terminal 106 die Datenmenge, die übertragen werden muss, indem es nur einen Index einer Sprach-Spektralparametervorlage und eine Zahl n übermittelt, die die Anzahl von Sprachparametervorlagen angibt, die durch Interpola tion erzeugt werden sollen. Die Zahl n gibt an, dass n - 1 Sprachparametervorlagen durch Interpolation erzeugt werden sollen. Ist beispielsweise n = 8, dann wird der Folge- Sprach-Spektralparametervektor Xj+n quantisiert, wobei n = 8. Der Index des Sprach-Spektralparametervektors Xj+n mit n = 0 wurde bereits als Endpunkt der vorhergehenden Interpolationsgruppe übertragen. Die sieben dazwischen liegenden Sprachparametervorlagen, die Xj+n entsprechen mit n = 1 bis 7, werden interpoliert zwischen der Sprachparametervorlage Yj+n mit n = 0 und der ausgewählten Folge-Sprachparametervorlage Yj+n, die dem Folgeindex, bei dem n = 8, entspricht. Ein Test wird durchgeführt, um zu ermitteln, ob die interpolierten, dazwischen liegenden Sprachparametervorlagen die ursprünglichen Sprach-Spektralparametervektoren genau wiedergeben. Wenn die interpolierten Sprachparametervorlagen die ursprünglichen Sprach-Spektralparametervektoren genau wiedergeben, wird der Index von Yj+n und n zur Übertragung zwischengespeichert. Wenn die interpolierten Sprachparametervorlagen die ursprünglichen Sprach-Spektralparametervektoren nicht genau wiedergeben, wird der Wert von n um eins verringert und die Interpolation und der Test werden wiederholt, bis ein akzeptabler Wert von n gefunden oder der Wert von n bis auf n = 2 verringert ist. An diesem Punkt wird der Interpolationsprozess gestoppt und die tatsächlichen Indexwerte werden zur Übertragung zwischengespeichert.
- Lediglich der Index des Endpunktes des Interpolationsprozesses und die Anzahl der Sprachparametervorlagen, die durch Interpolation erzeugt werden sollen, werden übertragen. Die Anzahl der Sprachparametervorlagen, die durch Interpolation erzeugt werden sollen, wird kontinuierlich angepasst und zwar derart, dass während Perioden sich schnell ändernder Sprache weniger Sprachparametervor lagen durch Interpolation erzeugt werden müssen und während normaler Sprachperioden mehr Sprachparametervorlagen durch Interpolation erzeugt werden müssen. Damit wird die Datenmenge, die übertragen werden muss, reduziert. Die Kommunikationsvorrichtung 114 weist einen zweiten Satz von Sprachparametervorlagen auf und erzeugt interpolierte Sprachparametervorlagen, die die in dem Paging- Terminal 106 erzeugten, interpolierten Sprachparametervorlagen dupliziert. Da die Sprachparametervorlagen, die von der Kommunikationsvorrichtung 114 durch Interpolation erzeugt werden müssen, zuvor bereits von dem Paging- Terminal 106 erzeugt, getestet und als die ursprünglichen Sprach-Spektralparametervektoren genau repräsentierend befunden worden waren, wird auch die Kommunikationsvorrichtung 114 in der Lage sein, die ursprüngliche Sprachnachricht genau zu reproduzieren. Insbesondere Nicht- Echtzeitkommunikationssysteme lassen genügend Zeit, um eine rechenintensive Rückwärtssuchinterpolationsverarbeitung vor der Übertragung durchzuführen, obwohl erkennbar ist, dass mit sich steigernder Verarbeitungsgeschwindigkeit auch Verarbeitungen in Beinahe-Echtzeit durchgeführt werden können.
- Der Prozess startet bei Schritt 502, in dem die Variablen n und j mit 0 beziehungsweise 1 initialisiert werden. Die Variable n wird benutzt, um die Anzahl der Sprachparametervorlagen anzuzeigen, die durch Interpolation erzeugt werden sollen und die Variable j wird benutzt, um die Position des Sprach-Spektralparametervektors in der in Schritt 410 erzeugten Sprach-Spektralparametermatrix, anzuzeigen, die ausgewählt wird. In Schritt 504 wird der ausgewählte Sprach-Spektralparametervektor guantisiert. Die Quantisierung wird durch Vergleich des Sprach- Spektralparametervektors mit einem Satz vorgegebener Sprachparametervorlagen durchgeführt. Die Quantisierung wird auch als Auswahl derjenigen Sprachparametervorlage bezeichnet, die den kürzesten Abstand zu dem Sprach- Spektralparametervektor aufweist. Ein Satz vorgegebener Sprachparametervorlagen wird in dem digitalen Signalprozessor 214 gespeichert und hier als ein Codebuch bezeichnet. Es wird weiter unten im Rahmen eines anderen Ausführungsbeispiels der vorliegenden Erfindung gezeigt werden, dass zwei oder mehr Codebücher, die unterschiedliche Sprachen oder Dialekte repräsentieren, bereit gestellt werden können. Ein Codebuch für eine Paging-Anwendung mit einem Satz Sprachparametervorlagen hat beispielsweise 2048 Vorlagen. Es ist jedoch erkennbar, dass auch eine andere Anzahl an Vorlagen benutzt werden kann. Jede vorgegebene Vorlage in einem Codebuch wird durch einen Index identifiziert. Die Vektor-Quantisierungsfunktion vergleicht den Sprach-Spektralparametervektor mit jeder Sprachparametervorlage in dem Codebuch und berechnet einen gewichteten Abstand zwischen dem Sprach-Spektralparametervektor und jeder Sprachparametervorlage. Die Ergebnisse werden in einem Indexfeld gespeichert, das den Index und den gewichteten Abstand enthält. Der gewichtete Abstand wird hier auch als Abstandswerte bezeichnet. Das Indexfeld wird durchsucht und der Index i der Sprachparametervorlage Y, die den kürzesten Abstand zu dem Sprach- Spektralparametervektor X aufweist, wird ausgewählt, um den quantisierten Wert des Sprach-Spektralparametervektors X zu repräsentieren. Der digitale Signalprozessor 214 arbeitet als ein Signalprozessor, wenn er die Aufgabe eines Sprachanalysierers und eines Quantisierers zur Quantisierung der Sprach-Spektralparametervektoren ausführt.
- Der Abstand zwischen einem Sprach- Spektralparametervektor und einer Sprachparametervorlage wird typischerweise im Rahmen eines gewichteten Quadratsummenverfahrens berechnet. Dieser Abstand wird berechnet durch Subtraktion des Wertes eines der in der Sprachparametervorlage gegebenen Parameters von dem Wert eines korrespondierenden Parameters des Sprach- Spektralparametervektors, durch Quadrierung des Ergebnisses und durch Multiplikation des quadrierten Ergebnisses mit einem entsprechenden Wichtungswert in einem vorgegebenen Wichtungsfeld. Diese Berechnung wird für jeden Parameter in dem Sprach-Spektralparametervektor und jeden entsprechenden Parameter in der Sprachparametervorlage durchgeführt. Die Summe der Ergebnisse dieser Berechnung ist der Abstand zwischen der Sprachparametervorlage und dem Sprach-Spektralparametervektor. Die Werte der Parameter des vorgegebenen Wichtungsfeldes werden empirisch durch Hörtests bestimmt.
- Die oben dargestellte Abstandsberechnung kann mit der folgenden Formel beschrieben werden:
- wobei:
- di der Abstand zwischen dem Sprach- Spektralparametervektor und der Sprachparametervorlage i des Codebuches b ist,
- Wh der Wichtungswert des Parameters h des vorgegebenen Wichtungsfeldes ist,
- ah der Wert des Parameters h des Sprach- Spektralparametervektors ist,
- b(i)h der Parameters h in der Sprachparametervorlage i des Codebuchs b ist und
- h ein Index ist, der einen Parameter in dem Sprach- Spektralparametervektor oder, der entsprechenden Sprachparametervorlage ist.
- In Schritt 506 werden die Werte des Indexes i und der Variablen n zur späteren Übertragung in einem Zwischenspeicher gespeichert. Erfindungsgemäß wird der erste Sprach-Spektralparametervektor (j = 1, X&sub1;) immer quantisiert. Die Variable n wird auf Null gesetzt und n und i werden zur Übertragung zwischengespeichert. In Schritt 508 wird ein Test durchgeführt, um zu ermitteln, ob der zwischengespeicherte Sprach-Spektralparametervektor der letzte Sprach-Spektralparametervektor der Sprachnachricht ist. Ist der zwischengespeicherte Sprach- Spektralparametervektor der letzte Sprach- Spektralparametervektor der Sprachnachricht, endet der Prozess bei Schritt 510. Verbleiben weitere Sprach- Spektralparametervektoren, schreitet der Prozess weiter voran zu Schritt 512.
- Bei Schritt 512 wird die Variable n beispielsweise auf acht gesetzt, womit die maximale Anzahl an Zwischen- Sprachparametervorlagen, die durch Interpolation erzeugt werden sollen, festgelegt und ein Folge-Sprach-Spektralparametervektor gewählt wird. Gemäß dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung ist die maximale Anzahl der durch Interpolation zu erzeugenden Sprachparametervorlagen sieben, was durch den Anfangswert von n festgelegt wird. Es ist jedoch erkennbar, dass die maximale Anzahl auch auf andere Werte gesetzt werden kann (beispielsweise vier oder 16). Bei Schritt 514 wird die Quantisierung des Eingangs-Sprach-Spektralparametervektors Xj+n unter Anwendung des oben beschriebenen Prozesses für Schritt 504 durchgeführt, wobei eine Folge- Sprachparametervörlage Yj+n mit einem Folge-Index ij+n bestimmt wird. Die Vorlage Yj+n und die zuvor bestimmte Vorlage Yj werden als Endpunkte des folgenden Interpolationsprozesses verwendet. Bei Schritt 516 wird die Variable m auf 1 gesetzt. Die Variable m wird benutzt, um anzuzeigen, dass die Sprachparametervorlage durch Interpolation erzeugt wird.
- Die interpolierten Sprachparametervorlagen werden in Schritt 518 berechnet. Die Interpolation ist vorzugsweise ein Parameter für Parameter durchzuführender, linearer Interpolationsprozess. Es ist jedoch erkennbar, dass auch andere Interpolationsprozesse (beispielsweise ein quadratischer Interpolationsprozess) benutzt werden können. die interpolierten Parameter der interpolierten Sprachparametervorlagen werden berechnet, indem der Abstand zwischen den entsprechenden Parametern der Sprachparametervorlage Yj und der Sprachparametervorlage Yj+n genommen wird; dieser Abstand mit dem Verhältnis m/n multipliziert und das Ergebnis zu Yj addiert wird.
- Die oben dargestellte Interpolationsberechnung kann anhand der folgenden Formel beschrieben werden:
- Y'(j+m)h = Y(j)h + m/n(Y(j+n)h - Y(j)h),
- wobei:
- Y'(j+m)h der interpolierte Wert des Parameters h der in- terpolierten Sprachparametervorlage Yj' ist,
- Y'(j+n)h der Parameters h der Sprachparametervorlage Yj+n ist und
- YY'(j)h der Parameters h der Sprachparametervorlage Yj ist.
- Bei Schritt 520 wird die interpolierte Sprachparametervorlage Y'(j+m) mit dem Sprach-Spektralparametervektor X(j+m) verglichen, um festzustellen, ob die interpolierte Sprachparametervorlage Y'(j+m) den Sprach- Spektralparametervektor X(j+m) genau wiedergibt. Die Bestimmung der Genauigkeit basiert auf der Berechnung der Verzerrung. Die Verzerrung wird typischerweise unter Verwendung eines gewichteten Quadratsummenverfahrens berechnet. Verzerrung wird hier auch als Abstand bezeichnet. Die Verzerrung wird berechnet durch Subtraktion des Wertes eines Parameters des Sprach-Spektralparametervektors X(j+m) von dem Wert eines entsprechenden Parameters des interpolierten Sprachparametervorlage Y'(j+m). Quadrierung des Ergebnis ses und Multiplikation des quadrierten Ergebnisses mit einem entsprechenden Wichtungswert in einem vorgegebenen Wichtungsfeld. Diese Berechnung wird für jeden Parameter in dem Sprach-Spektralparametervektor und jeden entsprechenden Parameter in der interpolierten Sprachparametervorlage wiederholt. Die Summe der Ergebnisse dieser jedem Parameter entsprechenden Berechnungen ist die Verzerrung. Vorzugsweise wird für die Berechnung der Verzerrung dasselbe Wichtungsfeld verwendet wie bei der Vektor- Quantisierung. Es ist jedoch erkennbar, dass zur Berechnung der Verzerrung auch ein anderes Wichtungsfeld empirisch durch Hörtests festgelegt werden kann.
- Die oben dargestellte Berechnung der Verzerrung kann mit folgender Formel beschrieben werden:
- wobei
- D gleich der Verzerrung zwischen dem Sprach- Spektralparametervektor Xj(j+m) und der interpolierten Sprachparametervorlage Y'(j+m) ist und
- wh gleich dem Wichtungswert des Parameters h des vorgegebenen Wichtungsfeldes ist.
- Die Verzerrung D wird mit einer vorgegebenen Grenzverzerrung t verglichen. Die vorgegebene Grenzverzerrung t wird hier auch als vorgegebener Abstand bezeichnet. Wenn sie gleich oder kleiner der vorgegebenen Grenzverzerrung t ist, wird ein Test durchgeführt, um zu ermitteln, ob der Wert von m gleich n - 1 ist. Ist der Wert von m gleich n - 1, wurden die Verzerrungen für alle interpolierten Sprachparametervorlagen berechnet und für die ursprünglichen Sprach-Spektralparametervektoren genau wiedergebend befunden. In Schritt 532 wird dann der Wert von j gleich j + n gesetzt, entsprechend dem Index der bei dem Interpolationsprozess benutzten Sprachparametervorlage Yj+n. Dann werden in Schritt 506 der Wert des Indexes i, der der Sprachparametervorlage Yj+n entspricht, und die Variable n zur späteren Übertragung in einem Zwischenspeicher gespeichert. So wird der erste Sprach-Spektralparametervektor durch den Folge-Sprach-Spektralparametervektor ersetzt. Der Prozess wird weiter fortgesetzt bis in Schritt 508 das Ende der Nachricht detektiert wird. Wenn bei Schritt 522 der Wert von m nicht gleich n - 1 ist, wurden nicht alle interpolierten Sprachparametervorlagen berechnet und getestet. Dann wird in Schritt 526 der Wert von m um eins erhöht und der nächste interpolierte Parameter wird in Schritt 518 berechnet.
- Wenn in Schritt 520 die Verzerrung größer ist als die vorgegebene Grenzverzerrung t, ist die Änderungsrate der Sprach-Spektralparametervektoren größer als die Rate, die mit dem aktuellen, durch den Wert von n bestimmten Interpolationsbereich genau reproduziert werden kann. In Schritt 524 wird dann ein Test durchgeführt, um zu bestimmen, ob der Wert von n gleich 2 ist. Ist der Wert von n nicht gleich 2, wird in Schritt 522 der Interpolationsbereich reduziert, indem der Wert von n um eins verringert wird. Ist in Schritt 524 der Wert von n gleich 2, ist eine weitere Verringerung des Wertes von n nicht sinnvoll. Dann wird in Schritt 530 der Wert von j um eins erhöht und es wird keine Interpolation durchgeführt. Im nächsten Schritt 504 wird der Sprach-Spektralparametervektor Xj quantisiert und in Schritt 506 zur Übertragung zwischengespeichert.
- Fig. 6 ist eine graphische Darstellung des Interpolations- und Verzerrungstests, der in Fig. 5 in den Schritten 512 bis 520 beschrieben ist. Die Sprach-Spektralparametermatrix 602 ist ein Feld von Sprach-Spektralparametervektoren einschließlich des Sprach-Spektralparametervektors 604, Xj, und des Folge-Sprach-Spektralparametervektor 608, Xj+n. Die Klammer umschließt die Zwischen- Sprach-Spektralparametervektoren 606, nämlich die n - 1 Sprachparametervorlagen, die durch Interpolation erzeugt werden. Diese Illustration stellt einen Zeitpunkt dar, an dem n gleich 8 ist und daher werden sieben Sprachparametervorlagen durch Interpolation erzeugt. Der Sprach-Spektralparametervektor 604, Xj, ist ein in Schritt 514 quantisierter Vektor, der einen Index erzeugt, welcher einer Sprachparametervorlage 614, Yj, entspricht, die den Sprach- Spektralparametervektor 604, Xj, am Besten wiedergibt. Ähnlich ist der Folge-Sprach-Spektralparametervektor 608, Xj+n, ein in Schritt 514 quantisierter Vektor, der einen Index erzeugt, welcher einer Folge-Sprachparametervorlage 618, Yj+n, entspricht, die den Folge-Sprach-Spektralparametervektor 608, Xj+n, am Besten wiedergibt. Die Werte der Parameter der interpolierten Sprachparametervorlagen 620, Y'j+m, werden in Schritt 518 durch lineare Interpolation erzeugt. Während jede interpolierte Sprachparametervorlage 620, Y'j+m, berechnet wird, werden sie mit den ursprünglichen Sprach-Spektralparametervektoren Xj+m in der Sprach-Spektralparametermatrix 602 verglichen. Wenn sich durch den Vergleich ergibt, dass die durch Verzerrungsberechnung in Schritt 520 berechnete Verzerrung die vorgegebene Grenzverzerrung überschreitet, wird der Wert von n, wie oben beschrieben, verringert und der Prozess wiederholt. Die vorgegebene Grenzverzerrung wird hier auch als vorgegebener Grenzabstand bezeichnet.
- Bei einem anderen Ausführungsbeispiel der vorliegenden Erfindung können mehr als ein Satz von Sprachparametervorlagen oder mehrere Codebücher bereitgestellt werden, um verschiedene Sprecher besser zu repräsentieren. Beispielsweise kann ein Codebuch benutzt werden, um die Stimme eines weiblichen Sprecher darzustellen und ein zweiter Codebuch kann dazu benutzt werden, die Stimme eines männlichen Sprechers darzustellen. Es ist erkennbar, dass auch zusätzliche Codebücher, die Sprachdifferenzierungen, wie etwa Spanisch, Japanisch etc. widerspiegeln, bereit gestellt werden können. Wenn mehrere Codebücher benutzt werden, können verschiedene PSTN-Telefon-Zugangsnummern benutzt werden, um zwischen den verschiedenen Sprachen zu unterscheiden. Jede einzigartige PSTN-Zugangsnummer ist einer Gruppe von PSTN-Verbindungen zugeordnet und jede Gruppe von PSTN-Verbindungen entspricht einer bestimmten Sprache und einem bestimmten Codebuch. Werden keine ein zigartigen PSTN-Zugangsnummern benutzt, kann der Benutzer vor Eingabe einer Sprachnachricht zur Informationseingabe, etwa eine DTMF-Ziffer, aufgefordert werden, wobei jede DTMF-Ziffer einer bestimmten Sprache und einem bestimmten Codebuch entspricht. Ist einmal die Sprache des Anrufers über die benutzte PSTN-Leitung oder über die empfangene DTMF-Ziffer identifiziert, wählt der digitale Signalprozessor 214 aus einem Satz vorbestimmter, im Speicher des digitalen Signalprozessors 214 gespeicherter Codebücher den Satz von Sprachparametervorlagen aus, die einem der bestimmten Sprache entsprechendes Codebuch darstellen. Alle Sprach-Eingabeaufforderungen können dann in der ermittelten Sprache gegeben werden. Der Eingangs-Sprachprozessor 205 empfängt Informationen, die die Sprache kennzeichnen und übermittelt die Information an den digitalen Signalprozessor 214. Alternativ kann der digitale Sprachprozessor 214 die digitalen Sprachdaten analysieren, um die Sprache oder den Dialekt zu ermitteln und wählt dann das passende Codebuch aus.
- Codebuchkennzeichen werden benutzt, um das Codebuch zu kennzeichnen, das benutzt wurde, um die Sprachnachricht zu komprimieren. Die Codebuchkennzeichen werden gemeinsam mit der Serie von Indizes codiert und an die Kommunikationsvorrichtung 114 versendet. Ein anderes Verfahren zur Übermittlung der Codebuch-Identität besteht darin, einen Header, der das Codebuch kennzeichnet, an die die Nachricht enthaltenden Indexdaten anzufügen.
- Fig. 7 zeigt ein elektrisches Blockschaltbild des digitalen Signalprozessors 214, der in dem in Fig. 2 dargestellten Paging-Terminal 106 Verwendung findet. Es wird ein Prozessor 704 benutzt, wie etwa einer von mehreren käuflich erhältlichen Standard-Digitalsignalprozessor-ICs, die besonders für die Berechnungen ausgelegt sind, die mit digitaler Signalverarbeitung verbunden sind. Digitalsignalprozessor-ICs sind von verschiedenen Herstellern erhältlich, wie etwa ein D5P56100 von Motorola Inc., Schaumburg, IL. Der Prozessor 704 ist über den Adress- und Datenbus 708 des Prozessors verbunden mit einem ROM 706, einem RAM 710, einem Digitaleingang 712, einem Digitalausgang 714 und einem Steuerbus-Anschluss 716. Der ROM 706 speichert die Anweisungen, die von dem Prozessor 704 benutzt werden, um die für den benutzten Nachrichtentyp erforderliche Signalverarbeitungsfunktion durchzuführen und um das Interface mit der Steuereinheit 216 anzusteuern. Der ROM 706 enthält außerdem die Anweisungen, die Anweisungen, die mit den Funktionen zur Übertragung komprimierter Sprachnachrichten in Verbindung stehen. Der RAM 710 stellt einen temporären Speicher für Daten und Programmvariablen bereit, einen Eingangs-Sprachdatenpuffer und einen Ausgangs-Sprachdatenpuffer. Der Digitaleingang 712 stellt eine Schnittstelle dar zwischen dem Prozessor 704 und der im Zeitmultiplex-Verfahren betriebenen Eingabe-Datenbahn 212 unter Steuerung einer Daten-Eingabefunktion und einer Daten-Ausgabefunktion. Der Digitalausgang stellt eine Schnittstelle dar zwischen dem Prozessor 704 und der im Zeitmultiplex-Verfahren betriebenen Ausgabe-Datenbahn 212 unter Steuerung der Daten-Ausgabefunktion. Der Steuerbus- Anschluss 716 stellt eine Schnittstelle dar zwischen dem Prozessor 704 und dem digitalen Steuerbus 210. Ein Takt 702 erzeugt ein Zeitsteuersignal für den Prozessor 704.
- Der ROM 706 enthält beispielsweise folgendes: eine Steuerinterface-Routine, eine Dateneingabe-Routine, eine Verstärkungsfaktor-Normalisierungs-Routine, eine Blockerzeugungs-Routine, eine Sprachanalyse-Routine, Vektor- Quantisierungs-Routine, eine Rückwärtssuchinterpolations- Routine, eine Datenausgabe-Routine, ein oder mehrere Code bücher und ein Matrix-Wichtungsfeld wie oben beschrieben. Der RAM 710 stellt einen temporären Speicher für Programmvariablen bereit, einen Sprachdaten-Eingangspuffer und einen Sprachdaten-Ausgangspuffer. Es ist erkennbar, dass die Elemente des ROM 706, wie etwa das Codebuch, auch auf einem separaten Massenspeichermedium, wie etwa einer Festplatte oder einer ähnlichen Speichervorrichtung gespeichert werden können.
- Fig. 8 ist ein elektrisches Blockschaltbild einer Kommunikationsvorrichtung 114, wie etwa ein Paging- Empfänger. Das Signal der Sendeantenne 110 wird von der Empfangsantenne 112 aufgefangen. Die Empfangsantenne 112 ist mit dem Empfänger 804 verbunden. Der Empfänger 804 verarbeitet das von der Empfangsantenne 112 empfangene Signal und erzeugt ein Empfänger-Ausgangssignal 816, das eine Kopie der Übertragenen, codierten Daten ist. Die codierten Daten sind gemäß einem vorbestimmten Signalgabe- Protokoll, wie etwa einem POCSAG-Protokoll codiert. Ein digitaler Signalprozessor 808 verarbeitet das Empfängerausgangssignal 816 und erzeugt dekomprimierte, digitale Sprachdaten 818, wie dies weiter unten beschrieben werden soll. Ein Digital/Analog-Wandler wandelt die dekomprimierten, digitalen Sprachdaten 818 in ein analoges Signal um, das von dem Audio-Verstärker 812 verstärkt und an den Lautsprecher 814 weitergeleitet wird.
- Der digitale Signalprozessor 808 liefert auch eine Grundsteuerung der verschiedenen Funktionen der Kommunikationsvorrichtung 114. Der digitale Signalprozessor 808 ist über den Steuerbus 820 verbunden mit einem Batteriesparschalter 806, einem Code-Speicher 822, einer Benutzer- Schnittstelle 824 und einem Nachrichtenspeicher 826. Der Code-Speicher 822 speichert eindeutige Identifikations- oder Adressinformationen, die notwendig sind, damit die Steuereinheit die Selektivruf-Eigenschaft verwirklichen kann. Die Benutzer-Schnittstelle 824 liefert dem Benützer ein hörbares, visuelles oder mechanisches Signal, das den Empfang einer Nachricht anzeigt und kann außerdem auch eine Anzeige und Druckknöpfe für den Benutzer zur Eingabe von Befehlen zur Steuerung des Empfängers umfassen. Der Nachrichtenspeicher 826 stellt einen Platz zur Speicherung von Nachrichten für eine erneute Ansicht zur Verfügung oder um dem Benutzer zu gestatten, die Nachricht zu wiederholen. Der Batteriesparschalter 806 liefert ein Mittel zur selektiven Abschaltung der Spannungsversorgung des Empfängers während einer Phase, in der das System mit anderen Pagern kommuniziert oder nicht sendet, wobei der Energieverbrauch reduziert und damit die Lebensdauer der Batterien in einer dem Fachmann wohl bekannten Weise gesteigert wird.
- Fig. 9 ist ein Flussdiagramm, das die Arbeitsweise der Kommunikationsvorrichtung 114 beschreibt. In Schritt 902 versendet der digitale Signalprozessor 808 einen Befehl an den Batteriesparschalter 806, den Empfänger 804 mit Energie zu versorgen. Der digitale Signalprozessor 808 überwacht das Empfängerausgangssignal 816 im Hinblick auf ein Bitmuster, das anzeigt, dass das Paging- Terminal ein Signal sendet, das mit einem POCSAG-Header versehen ist.
- In Schritt 904 wird über die Präsens eines POCSAG- Headers entschieden. Wird kein Header detektiert, sendet der digitale Signalprozessor 808 einen Befehl an den Batteriesparschalter 806, die Energieversorgung des Empfängers für eine vorbestimmte Zeitspanne zu unterbrechen. Nach Ablauf der vorbestimmten Zeitspanne, in Schritt 902, wird die Überwachung im Hinblick auf einen Header in einer im Stand der Technik wohl bekannten Weise wiederholt. In Schritt 906 synchronisiert sich der digitale Signalprozessor 808 mit dem Empfängerausgangssignal 816, sofern ein POCSAG-Header detektiert wird.
- Wenn die Synchronisation erreicht ist, kann der digitale Signalprozessor 808 einen Befehl an den Batteriesparschalter 806 ausgeben, die Energieversorgung des Empfängers solange abzuschalten, bis der der Kommunikationsvorrichtung 114 zugeordnete POCSAG-Block erwartet wird. Kommt der zugeordnete POCSAG-Block, sendet der digitale Signalprozessor 808 einen Befehl an den Batteriesparschalter 806, den Empfänger 804 mit Energie zu versorgen. In Schritt 908 überwacht der digitale Signalprozessor 808 das Empfängerausgangssignal 816 im Hinblick auf eine Adresse, die mit der der Kommunikationsvorrichtung 114 zugeordneten Adresse übereinstimmt. Wird keine Übereinstimmung festgestellt, sendet der digitale Signalprozessor 808 einen Befehl an den Batteriesparschalter 806, die Energieversorgung des Empfängers bis zur Übertragung des nächsten Synchronisations-Codewortes oder bis zum nächsten zugeordneten POCSAG-Block zu unterbinden, wonach Schritt 902 wiederholt wird. Wird in Schritt 910 eine Adress- Übereinstimmung gefunden, wird die Energieversorgung des Verstärkers beibehalten und die Daten werden empfangen.
- In Schritt 912 können Fehlerkorrekturen an den in Schritt 910 empfangenen Daten durchgeführt werden, um die Qualität der reproduzierten Stimme zu verbessern. Der POC- SAG-codierte Block enthält neun Paritäts-Bits, die bei der Fehlerkorrektur verwendet werden. POCSAG- Fehlerkorrekturtechniken sind dem Fachmann wohl bekannt. In Schritt 914 werden die korrigierten Daten gespeichert. In Schritt 916 werden die gespeicherten Daten verarbeitet. Bei der Verarbeitung digitaler Sprachdaten, werden die spektralen Informationen dequantisiert und interpoliert, mit der Anregungsinformation kombiniert und die Sprachdaten synthetisiert.
- In Schritt 918, speichert der digitale Signalprozessor 808 die empfangenen Sprachdaten im Nachrichtenspeicher 826 und sendet einen Befehl an die Benutzerschnittstelle, den Benutzer zu alarmieren. In Schritt 920 gibt der Benutzer einen Befehl ein, die Nachricht abzuspielen. In Schritt 922 reagiert der digitale Signalprozessor 808, indem er die dekomprimierten Sprachdaten, die in dem Nachrichtenspeicher gespeichert sind, an den Digital/Analog- Wandler 810 schickt. Der Digital/Analog-Wandler 810 wandelt die digitalen Sprachdaten 818 in ein analoges Signal, das von dem Audioverstärker 812 verstärkt und an den Lautsprecher 814 weitergeleitet wird.
- Fig. 10 ist ein Flussdiagramm, das den Interpolationsprozess bei variabler Rate darstellt, den der digitale Signalprozessor 808 in Schritt 916 ausführt. Der Prozess startet bei Schritt 1002, der direkt zu Schritt 1006 führt. Bei Schritt 1006 wird der erste Index i und der Interpolationsbereich n aus dem Speicher abgerufen. Bei Schritt 1008 wird der Index i benutzt, um die Sprachparametervorlage Yi aus dem ausgewählten, in dem digitalen Signalprozessor 808 gespeicherten Codebuch abzurufen. Im nächsten Schritt 1010 wird ein Test durchgeführt, ob der Wert von n kleiner oder gleich zwei ist. Ist der Wert. von n kleiner oder gleich zwei, wird keine Interpolation durchgeführt und die Sprachparametervorlage wird in Schritt 1004 gespeichert. Es sollte beachtet werden, dass bei dem ersten übertragenen Index n von dem Paging-Terminal 106 in Schritt 502 stets auf Null gesetzt wird. In Schritt 1004 wird die Sprachparametervorlage Yi zeitweilig in einem Register Y&sub0; gespeichert. Die im Register Y&sub0; gespeicherte Sprachparametervorlage wird im Folgenden als Sprachparametervorlage Y&sub0; bezeichnet. In Schritt 1004 wird die Sprachparametervorlage Yi außerdem in einem Sprach-Ausgangszwischenspeicher des digitalen Signalprozessors 808 gespeichert. Als nächstes werden in Schritt 1006 der nächste Index i und der nächste Interpolationsbereich n aus dem Speicher abgerufen. Als nächstes wird in Schritt 1008 der Index i benutzt, um die Sprachparametervorlage Yi aus dem Codebuch abzurufen. Dann wird in Schritt 1010 ein Test durchgeführt, um zu bestimmen, ob der Wert von n kleiner oder gleich zwei ist. Ist der Wert von n größer als zwei, wird der Wert der Variablen j in Schritt 1012 auf eins gesetzt. Als nächstes wird in Schritt 1014 die Sprachparametervorlage Yj' interpoliert und an der nächsten Position des Sprach-Ausgangszwischenspeichers gespeichert.
- Der Interpolationsprozess ist im Wesentlichen derselbe, der auch vom Paging-Terminal 106 vor der Übertragung in Schritt 518 durchgeführt wird. Der Prozess interpoliert die Parameter der Sprachparametervorlagen Yj' linear zwischen der Sprachparametervorlage Y&sub0; und der Sprachparametervorlage Yi. Die interpolierten Parameter der interpolierten Sprachparametervorlagen werden berechnet, indem die Differenz gebildet wird zwischen den entsprechenden Parametern der Sprachparametervorlage Y&sub0; und der Sprachparametervorlage Yi, die Differenz mit dem Verhältnis j/n multipliziert und das Ergebnis zu Yj addiert wird.
- Die oben beschriebene Interpolationsberechnung kann in der folgenden Formel dargestellt werden:
- Y'(j)h = Y(0)h + j/n(Y(i)h - Y(0)h)
- wobei
- Y'(j)h der der interpolierte Wert des Parameters h der interpolierten Sprachparametervorlage Yj' ist,
- Y'(i)h der Parameters h der Sprachparametervorlage Yi ist und
- Y(0)h der Parameters h der Sprächparametervorlage Y&sub0; ist.
- Als nächstes wird in Schritt 1016 der Wert von j um eins erhöht, was die nächsten zu interpolierende Sprachparametervorlage kennzeichnet. Als nächstes wird in Schritt 1020 ein Test durchgeführt, um festzustellen, ob j kleiner als n ist. Ist j kleiner als n, müssen weitere Sprachpärametervorlagen innerhalb dieser Interpolationsgruppe interpoliert werden und der Prozess wird bei Schritt 1004 fortgesetzt. Ist dagegen j gleich n, sind alle Sprachparametervorlagen innerhalb dieser Interpolationsgruppe berechnet worden und als nächstes wird Schritt 1020 durchgeführt.
- Bei Schritt 1020 wird ein Test durchgeführt, um festzustellen, ob das Ende der Nachricht erreicht ist. Ist das Ende der Datei noch nicht erreicht; wird der Prozess bei Schritt 1004 fortgesetzt. Ist das Ende der Datei dagegen erreicht, wird in Schritt 1022 die zuletzt decodierte Sprachparametervorlage Yi in dem Sprach-Ausgangszwischenspeicher gespeichert. Als nächstes werden in Schritt 1024 die spektralen Informationen mit den Anregungsinformationen kombiniert und die digitalen Sprachdaten 818 werden synthetisiert.
- Fig. 11 zeigt ein elektrisches Blockschaltbild des in der Kommunikationsvorrichtung 114 verwendeten, digitalen Signalprozessors 808. Der Prozessor 1104 ist ähnlich dem Prozessor 704 in Fig. 7. Da allerdings der Berechnungsumfang, der im Rahmen des Dekompressionsprozesses durchzu führen ist, erheblich geringer ist als der Berechnungsumfang, der im Rahmen des Kompressionsprozesses durchzuführen ist und da der Energieverbrauch in der Kommunikationsvorrichtung 114 eine kritische Größe ist, kann der Prozessor 1104 eine langsamere und weniger Energie verbrauchende Version sein. Der Prozessor 1104 ist über den Prozessor- Adress- und Datenbus 1110 verbunden mit einem ROM 1106, einem RAM 1108, einem Digitaleingang 1112, einem Digitalausgang 1114 und einem Steuerbus-Anschluss 1116. Der ROM 1106 speichert Anweisungen, die von dem Prozessor 1104 zur Durchführung der für die Dekompression der Nachricht und zur Kommunikation mit dem Steuerbus-Anschluss 1116 benötigten Funktionen verwendet werden. Der ROM 1106 enthält außerdem die Anweisungen zur Durchführung der mit der komprimierten Sprachnachricht in Zusammenhang stehenden Funktionen. Der RAM 1108 stellt einen temporären Speicher für Daten und Programmvariablen bereit. Der Digitaleingang 1112 stellt unter Steuerung der Dateneingangsfunktion die Schnittstelle zwischen dem Prozessor 1104 und dem Empfänger 804 bereit. Der Digitalausgang 1114 stellt unter Steuerung der Ausgangssteuerfunktion die Schnittstelle zwischen dem Prozessor 1104 und dem Digital/Analog-Wandler bereit. Der Steuerbus-Anschluss 1116 stellt eine Schnittstelle zwischen dem Prozessor 1104 und dem Steuerbus 820 bereit. Eine Uhr 1102 erzeugt ein Zeitgebersignal für den Prozessor 1104.
- Der ROM 1106 enthält beispielsweise folgendes: eine Empfängersteuerungsroutine, eine Benutzerschnittstellenroutine, eine Dateneingangsroutine, eine POCSAG- Decodierungsroutine, eine Codespeicher- Schnittstellenroutine, eine Adressvergleichsroutine, eine Dequantisierüngsroutine, eine zweidimensionale Inverstransformationsroutine, eine Nachrichtenspeicher- Schnittstellenroutine, eine Sprachsynthetisierungsroutine, eine Ausgangssteuerroutine und eine oder mehrere Codebücher, wie oben beschrieben. Ein oder mehrere Codebücher, die einer oder mehreren Sprachen entsprechen, können in dem ROM 1116 gespeichert sein. Das angemessene Codebuch wird von dem digitalen Signalprozessor 808 auf Basis des zusammen mit den empfangenen Daten in dem Empfängerausgangssignal 816 codierten Kennzeichens gewählt.
- Zusammenfassend benötigt bei 8 KHz Samplingrate abgetastete und unter Verwendung herkömmlicher Telefontechniken codierte Sprache eine Datenrate von 64 KBit pro Sekunde. Sprache, die jedoch gemäß der Vorliegenden Erfindung codiert wurde, benötigt eine wesentlich geringere Übertragungsrate. Beispielsweise kann Sprache, die mit einer Samplingrate von 8 KHz abgetastet und erfindungsgemäß in Blöcken, die je 25 ms Sprache repräsentieren, gruppiert wurde, mit einer durchschnittlichen Datenrate von 400 Bit pro Sekunde übertragen werden. Wie bereits erwähnt, codiert die vorliegende Erfindung die Sprachnachrichten derart, dass die resultierenden Daten sehr stark komprimiert sind und leicht mit normalen Daten, die über den Paging- Kanal übertragen werden, gemischt werden können. Die Sprachnachrichten werden außerdem in einer Weise codiert, dass die Verarbeitung in dem Pager oder einer ähnlichen Vorrichtung minimiert werden. Obwohl besondere Ausführungsbeispiele der Erfindung gezeigt und beschrieben wurden, ist erkennbar, dass dem Fachmann weitere Modifikationen und Verbesserungen auffallen werden und dass der Erfindungsbereich nur durch die beiliegenden Ansprüche beschränkt sein soll.
Claims (10)
1. Sprachkompressionsprozessor (214) zur Verarbeitung
einer Sprachnachricht, der eine Sprachübertragung mit
niedriger Bitrate liefert, umfassend:
einen Speicher (706) zur Speicherung von
Sprachparametervorlagen und Indizes, die die Sprachparametervorlagen
kennzeichnen,
einen Eingangs-Sprachprozessor (704) zur Verarbeitung
der Sprachnachricht zur Erzeugung von Sprach-
Spektralparametervektoren, die in einer Folge in besagtem
Speicher (706) gespeichert werden,
einen Signalprozessor (704), der so programmiert ist,
dass er
einen Sprach-Spektralparametervektor aus der in
besagtem Speicher (706) gespeicherten Folge von Sprach-
Spektralparametervektoren auswählt (502),
einen Index bestimmt (506), der eine einem
ausgewählten Sprach-Spektralparametervektor entsprechende
Sprachparametervorlage kennzeichnet,
einen Folge-Sprach-Spektralparametervektor aus der in
besagtem Speicher gespeicherten Folge von Sprach-
Spektralparametervektoren auswählt (512), wobei der Folge-
Sprach-Spektralparametervektor in Beziehung zu dem
ausgewählten Sprach-Spektralparametervektor einen oder mehrere
Zwischen-Sprach-Spektralparametervektoren festlegt,
einen Folgeindex bestimmt (514), der eine dem Folge-
Sprach-Spektralparametervektor entsprechende
Folge-Sprachparametervorlage kennzeichnet,
zwischen der Sprachparametervorlage und der Folge-
Sprachparametervorlage interpoliert (518), um einen oder
mehrere Zwischen-Sprachparametervorlagen zu gewinnen,
den einen oder die mehreren Zwischen-Sprach-
Spektralparametervektoren, die dem einen oder den mehreren
interpolierten Zwischen-Sprachparametervorlagen
entsprechenden, vergleicht (520), um einen oder mehrere Abstände
zu bestimmen und
den Folgeindex zur Übertragung auswählt (522, 532,
506), wenn einer oder mehrere gewonnenen Abstände kleiner
oder gleich einem vorbestimmten Abstand sind sowie
einen auf besagten Signalprozessor (704)
ansprechenden Sender (714) zur Übertragung des Indexes und zur
nachfolgenden Übertragung des zur Übertragung ausgewählten
Folgeindexes.
2. Sprachkompressionsprozessor gemäß Anspruch 1,
wobei besagter Sender (714) weiter die Anzahl der Zwischen-
Sprach-Spektralparametervektoren; die einem oder mehreren
gewonnenen Zwischen-Sprach-Spektralparametervektoren
entsprechen, überträgt.
3. Sprachkompressionsprozessor gemäß Anspruch 1,
wobei besagter Signalprozessor so programmiert ist, dass er
den ausgewählten Sprach-Spektralparametervektor durch
den Folge-Sprach-Spektralparametervektor ersetzt,
einen weiteren Folge-Sprach-Spektralparametervektor
auswählt, der den Folge-Sprach-Spektralparametervektor
ersetzt und
weiter auswählt, bestimmt, interpoliert und
vergleicht.
4. Sprachkompressionsprozessor gemäß Anspruch 1,
wobei besagter Signalprozessor so programmiert ist, dass er
aus dem einen oder den mehreren Zwischen-Sprach-
Spektralparametervektoren einen
Folge-Sprach-Spektralparametervektor auswählt, um in Beziehung zu dem
ausgewählten Sprach-Spektralparametervektor einen oder mehrere
Zwischen- Sprach-Spektralparametervektoren festzulegen,
wenn irgend einer der ein oder mehreren gewonnenen
Abstände größer als der vorbestimmte Abstand ist und
weiter bestimmt, interpoliert und vergleicht.
5. Sprachkompressionsprozessor gemäß Anspruch 1,
wobei die Sprachparametervorlage und die Folge-
Sprachparametervorlage aus einem Satz von
Sprachparametervorlagen ausgewählt sind, die in besagtem Speicher (706)
gespeichert sind.
6. Sprachkompressionsprozessor gemäß Anspruch 1,
wobei der Satz von Sprachparametervorlagen ein Codebuch
darstellt, das einer vorbestimmten Sprache entspricht.
7. Kommunikationssystem, umfassend den
Sprachkompressionsprozessor (214) gemäß einem der vorangehenden
Ansprüche und eine Kommunikationsvorrichtung (114) zum Empfang
einer Sprachübertragung bei niedrigen Bitrate, um eine
Sprachnachricht zu liefern, wobei besagte
Kommunikationsvorrichtung (114) umfasst:
einen Speicher (1106) zur Speicherung eines Satzes
von Sprachparametervorlagen,
einen Empfänger (804) zum Empfang eines Indexes,
eines Folgeindexes und einer Zahl, die die Anzahl von durch
Interpolation zu gewinnenden, Zwischen-Sprach-
Spektralparametervektoren festlegt,
einen Signalprozessor (1104), der so programmiert
ist, dass er
eine dem Index entsprechende Sprachparametervorlage
und eine dem Folgeindex entsprechende
Folge-Sprachparametervorlage aus dem Satz vorbestimmter
Sprachparametervorlagen auswählt (1006) und
zwischen der Sprachparametervorlage und der Folge-
Sprachparametervorlage interpoliert (1014), um die Anzahl
von Zwischen-Sprachparametervorlagen abzuleiten, die der
durch die Zahl festgelegten Anzahl von Zwischen-Sprach-
Spektralparametervektoren entsprechend,
einen Synthesizer (1104, 1106) zur Erzeugung von
Sprachdaten aus der Sprachparametervorlage, der Folge-
Sprachparametervorlage und der Anzahl durch Interpolation
gewonnener Zwischen-Sprachparametervorlagen, und
einen Wandler (1104, 1106) zur, Erzeugung einer
Sprachnachricht aus den erzeugten Sprachdaten.
8. Kommunikationssystem gemäß Anspruch 7, wobei
besagter Speicher (1106) der Kommunikationsvorrichtung
weiter den Index, den Folgeindex und die Zahl speichert, die
die Anzahl der durch Interpolation zu gewinnenden
Zwischen-Sprach-Spektralparametervektoren definiert.
9. Kommunikationssystem gemäß Anspruch 7, wobei
besagter Satz von Sprachparametervorlagen, der in besagtem
Speicher (1106) der Kommunikationsvorrichtung gespeichert
ist, ein Codebuch darstellt, das einer vorbestimmten
Sprache entspricht.
10. Kommunikationssystem gemäß Anspruch 7, wobei
besagter Empfänger (804) einen weiteren Folgeindex und eine
Zahl empfängt, die die Anzahl der Zwischen-Sprach-
Spektralparametervektoren zwischen dem weiteren Folgeindex
und dem Folgeindex definiert und wobei besagter
Signalprozessor (1104) der Kommunikationsvorrichtung so
programmiert ist, dass er
die ausgewählte Sprachparametervorlage durch die
weitere Sprachparametervorlage ersetzt,
die Folge-Sprachparametervorlage durch die weitere
Folge-Sprachparametervorlage ersetzt und
weiter auswählt und interpoliert und wobei der
Synthesizer und der Wandler weiter zur Ausgabe der
Sprachnachricht einsetzbar sind.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/528,033 US5682462A (en) | 1995-09-14 | 1995-09-14 | Very low bit rate voice messaging system using variable rate backward search interpolation processing |
PCT/US1996/011341 WO1997010585A1 (en) | 1995-09-14 | 1996-07-08 | Very low bit rate voice messaging system using variable rate backward search interpolation processing |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69623487D1 DE69623487D1 (de) | 2002-10-10 |
DE69623487T2 true DE69623487T2 (de) | 2003-05-22 |
Family
ID=24103987
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69623487T Expired - Fee Related DE69623487T2 (de) | 1995-09-14 | 1996-07-08 | Mit sehr niedriger bit-rate arbeitendes sprachnachrichtensystem mit variabler raten-rückwärtssuchinterpolationsverarbeitung |
Country Status (5)
Country | Link |
---|---|
US (1) | US5682462A (de) |
EP (1) | EP0850471B1 (de) |
CN (1) | CN1139057C (de) |
DE (1) | DE69623487T2 (de) |
WO (1) | WO1997010585A1 (de) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5877768A (en) | 1996-06-19 | 1999-03-02 | Object Technology Licensing Corp. | Method and system using a sorting table to order 2D shapes and 2D projections of 3D shapes for rendering a composite drawing |
FR2780218B1 (fr) * | 1998-06-22 | 2000-09-22 | Canon Kk | Decodage d'un signal numerique quantifie |
US6185525B1 (en) | 1998-10-13 | 2001-02-06 | Motorola | Method and apparatus for digital signal compression without decoding |
US6418405B1 (en) | 1999-09-30 | 2002-07-09 | Motorola, Inc. | Method and apparatus for dynamic segmentation of a low bit rate digital voice message |
US6772126B1 (en) | 1999-09-30 | 2004-08-03 | Motorola, Inc. | Method and apparatus for transferring low bit rate digital voice messages using incremental messages |
JP2010245657A (ja) * | 2009-04-02 | 2010-10-28 | Sony Corp | 信号処理装置及び方法、並びにプログラム |
KR101263663B1 (ko) * | 2011-02-09 | 2013-05-22 | 에스케이하이닉스 주식회사 | 반도체 장치 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4479124A (en) * | 1979-09-20 | 1984-10-23 | Texas Instruments Incorporated | Synthesized voice radio paging system |
US4701943A (en) * | 1985-12-31 | 1987-10-20 | Motorola, Inc. | Paging system using LPC speech encoding with an adaptive bit rate |
US4802221A (en) * | 1986-07-21 | 1989-01-31 | Ncr Corporation | Digital system and method for compressing speech signals for storage and transmission |
US4815134A (en) * | 1987-09-08 | 1989-03-21 | Texas Instruments Incorporated | Very low rate speech encoder and decoder |
FR2690551B1 (fr) * | 1991-10-15 | 1994-06-03 | Thomson Csf | Procede de quantification d'un filtre predicteur pour vocodeur a tres faible debit. |
US5388146A (en) * | 1991-11-12 | 1995-02-07 | Microlog Corporation | Automated telephone system using multiple languages |
US5357546A (en) * | 1992-07-31 | 1994-10-18 | International Business Machines Corporation | Multimode and multiple character string run length encoding method and apparatus |
CA2105269C (en) * | 1992-10-09 | 1998-08-25 | Yair Shoham | Time-frequency interpolation with application to low rate speech coding |
US5544277A (en) * | 1993-07-28 | 1996-08-06 | International Business Machines Corporation | Speech coding apparatus and method for generating acoustic feature vector component values by combining values of the same features for multiple time intervals |
-
1995
- 1995-09-14 US US08/528,033 patent/US5682462A/en not_active Expired - Fee Related
-
1996
- 1996-07-08 CN CNB961969555A patent/CN1139057C/zh not_active Expired - Fee Related
- 1996-07-08 EP EP96922667A patent/EP0850471B1/de not_active Expired - Lifetime
- 1996-07-08 DE DE69623487T patent/DE69623487T2/de not_active Expired - Fee Related
- 1996-07-08 WO PCT/US1996/011341 patent/WO1997010585A1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
EP0850471B1 (de) | 2002-09-04 |
CN1200173A (zh) | 1998-11-25 |
US5682462A (en) | 1997-10-28 |
EP0850471A1 (de) | 1998-07-01 |
WO1997010585A1 (en) | 1997-03-20 |
CN1139057C (zh) | 2004-02-18 |
EP0850471A4 (de) | 1998-12-30 |
DE69623487D1 (de) | 2002-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69735097T2 (de) | Verfahren und vorrichtung zur verbesserung der sprachqualität in tandem-sprachkodierern | |
DE69910239T2 (de) | Verfahren und vorrichtung zur adaptiven bandbreitenabhängigen grundfrequenzsuche für die kodierung breitbandiger signale | |
AT405346B (de) | Verfahren zum herleiten der nachwirkperiode in einem sprachdecodierer bei diskontinuierlicher übertragung, sowie sprachcodierer und sender-empfänger | |
DE60024123T2 (de) | Lpc-harmonischer sprachkodierer mit überrahmenformat | |
DE69331079T2 (de) | CELP-Vocoder | |
DE69621613T2 (de) | Anordnung und verfahren zur sprachübertragung und eine derartige anordnung enthaltende fernsprechanlage | |
DE60120734T2 (de) | Vorrichtung zur erweiterung der bandbreite eines audiosignals | |
DE69814517T2 (de) | Sprachkodierung | |
DE602004004219T2 (de) | Multiratenkodierung | |
DE69024033T2 (de) | Kodierungssystem mit variabler Bitrate. | |
DE69839312T2 (de) | Kodierverfahren für vibrationswellen | |
DE69530665T2 (de) | Verfahren und gerät zur sprachübertragung in einem mobilen kommunikationssystem | |
DE69622985T2 (de) | Asymmetrische sprachkompression verwendendes und mit sehr niedriger bitrate arbeitendes sprachnachrichtensystem | |
DE3689658T2 (de) | Rufempfänger mit sprachsynthese durch lineare kodierungsvoraussage. | |
DE60037286T2 (de) | Verfahren und Vorrichtung zur Unterabtastung der im Phasenspektrum erhaltenen Information | |
DE69029658T2 (de) | Verfahren und Einrichtung zur Kompression eines Kommunikationssignals | |
DE69623487T2 (de) | Mit sehr niedriger bit-rate arbeitendes sprachnachrichtensystem mit variabler raten-rückwärtssuchinterpolationsverarbeitung | |
DE68927927T2 (de) | Kodierung von Audiosignalen unter Berücksichtigung der Wahrnehmbarkeit | |
US5666350A (en) | Apparatus and method for coding excitation parameters in a very low bit rate voice messaging system | |
DE69612431T2 (de) | Vorrichtung zur Sprachdekodierung | |
DE69903886T2 (de) | Verfahren und Vorrichtung zur Datenübertagung über einen Sprachkanal | |
DE69422381T2 (de) | Umkodierer und rückumkodierer und verfahren zur einstellung dessen ausgangsignals | |
DE69922582T2 (de) | Sende- und Empfangsvorrichtung zur Auswahl eines Quellenkodierers und Verfahren dazu | |
DE60100173T2 (de) | Verfahren und Vorrichtung zur drahtloser Übertragung unter Verwendung einer Kodierung mit vielfacher Quellendarstellung | |
DE60027140T2 (de) | Sprachsynthetisierer auf der basis von sprachkodierung mit veränderlicher bit-rate |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |