DE3348195C2 - - Google Patents

Info

Publication number
DE3348195C2
DE3348195C2 DE3348195A DE3348195A DE3348195C2 DE 3348195 C2 DE3348195 C2 DE 3348195C2 DE 3348195 A DE3348195 A DE 3348195A DE 3348195 A DE3348195 A DE 3348195A DE 3348195 C2 DE3348195 C2 DE 3348195C2
Authority
DE
Germany
Prior art keywords
text
procedure
key
voice
state
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
Application number
DE3348195A
Other languages
English (en)
Inventor
Gary N. Londonderry N.H. Us Stapleford
Deane C. Brookline N.H. Us Osborne
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.)
WANG LABORATORIES, INC., BILLERICA, MASS., US
Original Assignee
Wang Laboratories 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 Wang Laboratories Inc filed Critical Wang Laboratories Inc
Application granted granted Critical
Publication of DE3348195C2 publication Critical patent/DE3348195C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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

Description

Die Erfindung betrifft eine Verarbeitungsanlage für gespeicherte Dokumente nach dem Oberbegriff des Patentanspruchs 1.
Durch die Druckschrift WELCH, P. D.: System for integrating and collating audio and text, and for text creation and editing; IBM Technical Disclosure Bulletin; 1973, Vol. 16, No. 2, Seiten 500 bis 503, sind zwei Konzepte bekannt geworden, die sich ausschließlich mit der Editierung beziehungsweise mit der Kommentierung eines schriftlichen Textes befassen. Das erste dieser Konzepte bewirkt die Zuordnung von gesprochenen Kommentaren zu speziell angegebenen Stellen eines schriftlich niedergelegten Textes. Auf dem Bildschirm wird dieser Text sichtbar gemacht, wobei hell getastete Schriftzeichen den Textteil angeben, zu dem ein gesprochener Kommentar vorliegt. Ein späterer Benutzer kann dann einen Cursor auf die hell getasteten Schriftzeichen richten und über einen Lautsprecher den dazu gehörenden Kommentar abhören. Im Gegensatz zur vorliegenden Erfindung wird jedoch der gesprochene Bestandteil der Dokumente nicht editiert.
Das zweite Konzept betrifft ein interaktives on-line- Schreibsystem, das dem Verfasser eines Schriftstücks routinemäßige Schreibarbeit erspart. Der Verfasser wählt dabei eine Stelle auf dem Bildschirm an und diktiert über das Mikrofon in das System. Die Sprachaufzeichnung wird zu einer Schreibstelle übertragen, bei der eine Schreibkraft die Aufzeichnungen abhört und den Text in das System eintippt. Das System ändert dann die Bildschirmanzeige, und der Text erscheint an der vom Verfasser gewählten Stelle. Die vorliegende Erfindung betrifft jedoch kein derartiges Schreibsystem.
In der GB 20 82 820 A ist eine Vorrichtung und ein Verfahren zur Umwandlung von Sprache in Schrift beschrieben. Dem Verfasser eines Diktats wird die Möglichkeit geboten, gesprochene Worte oder Begriffe, die ein automatischer Umwandler nicht in Schrift umzuwandeln vermag, entweder mündlich zu buchstabieren oder über ein Tastenfeld einzugeben. Die vorliegende Erfindung befaßt sich jedoch nicht mit dem Problem der Umwandlung von Sprache in Schrift.
In der US 43 75 083 ist eine Vorrichtung und ein Verfahren zur Editierung von Sprachaufzeichnungen offenbart. Die Länge einer Sprachaufzeichnung wird symbolisch durch die Länge einer Zeitlinie (Linie in X-Richtung) dargestellt. Der Benutzer kann mittels des Cursors längs der Zeitlinie bestimmen, welche Sprachaufzeichnung zu editieren ist. Im Gegensatz zur vorliegenden Erfindung umfassen die gespeicherten Dokumente ausschließlich gesprochene Bestandteile.
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, einem Schriftsteller, nachfolgend Autor genannt, die Möglichkeit zu geben, sein Diktat eines Textes zu editieren, wobei er zur Eingabe des Diktats sowohl ein Mikrofon zur Spracheingabe als auch eine Tastatur zur schriftlichen Eingabe verwenden kann.
Gelöst wird diese Aufgabe durch die im kennzeichnenden Teil des Patentanspruchs 1 angegebenen Merkmale.
Zweckmäßige Ausgestaltungen und Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.
Die erfindungsgemäße Vorrichtung kann zusätzlich folgende Schritte durchführen:
Reagieren auf vorgegebene diskrete Signale, die gleichzeitig mit der erfaßten Sprachinformation erfaßt sind, und Kennzeichnen des Ortes in der Aufzeichnungssequenz, wo jedes dieser vorgegebenen diskreten Signale erfaßt wurde;
Anzeigen eines unterscheidbaren Kennzeichens in der Sichtanzeige, wann jedes der gleichzeitig erfaßten diskreten Signale bezüglich der anderen Elemente der Sprachdaten erfaßt wurde;
Einschreiben einer Hinweismarke in den Speicher, die eine Schreibmarkenposition in der Datensequenz angibt, und Anzeigen einer Sichtmarke, die der Hinweismarkenposition im Speicher entspricht, in der Sichtanzeige;
Verschieben der definierten Hinweismarkenstelle in der Datensequenz im Speicher und entsprechend in der Sichtanzeige abhängig von erfaßten Eingangssignalen;
Erzeugung abhängig von erfaßten Eingangssignalen eines kontinuierlich veränderlichen akustischen Signals entsprechend den im Speicher gespeicherten diskreten Sprachdaten, wobei dieses Tonsignal an einer Stelle in der Sprachdatensequenz, die der definierten, verschobenen Hinweismarkenstelle entspricht, begonnen wird und der in der Aufzeichnungssequenz angegebenen Ordnung folgt; und
Vorsetzen der Hinweismarke in den Sprachinformationsdaten entsprechend dem Weiterschreiten der Erzeugung des Hörsignals.
Die erfindungsgemäße Einrichtung kann auch eine Schaltung aufweisen, die die Sprachdatenerfassungstätigkeit erkennt und in deren Abwesenheit das Einspeichern der Sprachinformation in den Speicher unterdrückt.
Die Erfindung wird im folgenden anhand der einzigen Figur näher beschrieben. Diese zeigt ein Blockschaltbild der erfindungsgemäßen Verarbeitungsanlage.
Die in der Figur dargestellte Verarbeitungsanlage 10 enthält: Verbindungsleitungen 12, die von einem Mikrofon 50 oder einer Telefonleitung 52 über eine Schnittstellenschaltung 54 gelieferte kontinuierlich veränderliche elektrische Signale entsprechend der Sprachinformation leiten. Das gelieferte Signal kann einen Lautsprecher 56 betreiben oder in anderer Weise verwendet werden. Die Verbindungsleitungen 12 sind mit einem Analog-Digital-Wandler 14 verbunden, der in einer Richtung als Analog-Digital-Wandler und in der anderen Richtung als Digital/Analogwandler wirkt. Der Wandler 14 ist mit einem Serien-Parallel-Wandler 30 verbunden, der in beiden Richtungen arbeitet. Ein Tonfühler 28 ist mit den Verbindungsleitungen 12 verbunden und erzeugt ein Steuersignal, das angibt, ob der Sprachdatenerfassungskanal aktiv ist oder nicht. Die Einrichtung 10 enthält ebenfalls eine Sichtanzeigeeinheit 31, die vorteilhafterweise einen Kathodenstrahlröhrenschirm aufweist und eine Tasteneinheit 16 mit einem Abschnitt 18 zur Eingabe von alphanumerischen Zeichen und einem Abschnitt 20 zur Eingabe von Aufbereitungs- und Steuersignalen.
Ein in der Einrichtung 10 enthaltener Prozessor 26, der ein Z-80 sein kann, steuert die Abläufe in der Einrichtung 10. Ein Speicher 22, der bitweise Daten speichert, hat einen Abschnitt 24, der ein Arbeitsprogramm speichert. Sämtliche oben angeführten Bauelemente des Systems sind mit einem Datenbus 58, einem Adreßbus 60 und Steuerleitungen 62 verbunden, wie die Figur zeigt. Sämtliche in der Einrichtung 10 enthaltenen Bauelemente sind handelsüblich.
Das im Speicher 22 im Abschnitt 24 gespeicherte Sprachaufbereitungsarbeitsprogramm steuert über den Prozessor 26 den Betrieb der Einrichtung 10 und führt sämtliche Sprachaufbereitungsfunktionen aus.
Wenn ein Autor, der das System verwendet, in ein Mikrofon spricht, wird die als analoges Signal vorliegende Sprachinformation erfaßt, digitalisiert und in diskreter Form in den Speicher 22 eingespeichert. Gleichzeitig wird eine Darstellung der Sprachinformation unter Verwendung einer Reihe von Sprachmerkmalskennzeichen, die jeweils die Sprachinformation in einer Sekunde darstellen, erzeugt und an der Kathodenstrahlröhre angezeigt. Während Sprachpausen wird die Eingabe der Daten unterdrückt, um eine übermäßig große Speicherkapazität zu vermeiden. Der Autor kann gleichzeitig mit dem Diktat Trennsignale an der Tastatur 16 eingeben, die im Speicher 22 Hinweissignale erzeugen, die angeben, wann die Eingabe in die Sprachdatenaufzeichnung erfolgte und folgende Sprachmerkmalskennzeichen mit der folgenden Anzeigelinie beginnen lassen, was eine Absatztrennung simuliert. Gleichzeitig wird eine Grenznummer erzeugt, mit der die Trennung leicht identifiziert werden kann. Der Autor kann mittels eines an der Tastatur 16 eingegebenen Signals sein Diktat unterbrechen und alphanumerischen Text von der Tastatur aus eingeben. Dieser Text wird in den Speicher 22 eingespeichert und an der Anzeige 31 angezeigt.
Mittels der erfindungsgemäßen Vorrichtung wird eine gleichartige Darstellung einer Folge von Sprachdaten, Textdaten und Trennungszeichen enthaltenden Aufzeichnung erstellt. Die von der Einrichtung 10 erfaßten Daten werden in zeitlicher Folge dargestellt. Mittels der Vorrichtung wird ebenfalls eine Speicherhinweismarke erzeugt, die in der Datenfolge eine Hinweismarkenposition angibt. An der gleichen Stelle wird in der angezeigten Datenfolge eine Schreibmarke erzeugt. An der Tastatur 16 kann der Autor die Speicherhinweismarke und die damit verkettete Schreibmarke so handhaben, daß diese jede einzelne Stelle der Datenfolge angibt. Mittels der Schreibmarke und der an der Tastatur eingegebenen Aufbereitungssignale, die "Einfügungs-", "Lösch-", "Ersetz-", "Schiebe-" und "Kopier"-Anweisungen aufweisen, kann der Autor diese Aufbereitungstätigkeiten unabhängig davon, ob die Daten Sprachdaten, Textdaten oder Kennzeichen sind, durchführen. Die Sichtdarstellung gibt alle Editionsänderungen, so wie sie erfolgt sind, wieder. Mittels der Schreibmarke und von der Tastatur eingegebene Signale kann der Autor ebenfalls die Wiedergabe der Sprachinformation durch eine angeschlossene Toneinrichtung bewirken.
Es folgt eine genauere Erläuterung der Funktion des erfindungsgemäßen Sprachdatenaufbereitungssystems.
Das im Speicher 22 gespeicherte Sprachdatenaufbereitungsprogramm steuert in Verbindung mit dem Prozessor 26 die Verarbeitung des Systems und führt alle zur Sprachaufbereitung nötigen Funktionen aus. Das Sprachaufbereitungsprogramm verwendet eine Ablaufprogrammschlange, und die vom Sprachaufbereiter aufgerufenen Unterprogramme werden dann ausgeführt, wenn der Prozessor 26 sie im Ablauf der Schlange erreicht. Innerhalb der Schlange ruft ein Interrupt-Verarbeitungsprogramm ein dem jeweiligen Interrupt entsprechendes Unterprogramm auf, gibt darauf erneut die Interrupts frei und kehrt zurück. Die Unterprogramme werden in die Schlange eingefügt und vom Prozessor 26, wenn er dazu kommt, abgearbeitet. Ein Ablaufschlangenprogrammodul enthält Unterprogramme, die die Sprachaufbereitungsablaufschlange handhaben. Diese sind:
RTN$QUE$INIT:
Startet die Ablaufschlange.
RTN$QUE$PUSH: Gibt eine Prozeduradresse und einen Adreßparameter der Ablaufschlange ein.
RTN$QUE$RUN: Prüft, ob ein aus Prozeduradresse und Parameter bestehendes Datenpaar in der Schlange eingespeichert ist und ruft, wenn dies der Fall ist, die Prozedur auf, in dem der einzige Adreßparameter durchlaufen wird.
Wegen dieser Sprachaufbereitungsablaufschlange ist das die Hauptlinie bildende Sprachaufbereitungsprogramm sehr einfach. In der Sprachaufbereitungshauptlinie werden zwei Tätigkeiten ausgeführt:
  • 1. Die Startroutine, voice$editor$init, wird aufgerufen und startet sämtliche Datenkomponenten und die vom Sprachaufbereiter verwendeten Eingabe/Ausgabe-Einrichtungen.
  • 2. Sie durchläuft dann eine unendliche Schleife und ruft TRN$QUE$RUN auf, um sämtliche Unterprogramme in der Ablaufschlange auszuführen. Falls der Benutzer angibt, daß er den Sprachaufbereiter verlassen will, wird beispielsweise in die Ablaufschlange die Prozedur EXIT$EDITOR eingegeben. Sobald der Prozessor dazukommt, ruft er dieses Programm auf, worauf der Sprachaufbereiter in den Wartezustand versetzt wird.
Die obigen Ausführungen zeigen, daß der Sprachaufbereiter nach seiner Eingabe und dem Start der Variablen und der Hardware in einer Schleife umläuft und auf ein Ereignis in der Ablaufschlange wartet. Zur Eingabe in die Schlange werden Interrupt-Prozeduren verwendet. Diese laufen ab, wenn ein Hardware-Interrupt auftritt. Auf dieses Ereignis hin sperrt der Prozessor 26 die Interrupts, kellert die laufende Programmadresse ein und springt eine Prozedur an, die den Interrupt bearbeitet.
Der Sprachaufbereiter läuft im Z80-Interrupt-Modus 2 und empfängt Interrupt-Signale von folgenden Einrichtungen, die in der Ordnung der Interrupt-Priorität aufgelistet sind:
1. CTC Kanal 0
Blockzählwert - dieser Kanal erzeugt ein Interrupt-Signal, wenn die Ton-Hardwareeinrichtung die Aufzeichnung oder Wiedergabe eines Pufferinhalts digitalisierter Audiosignale beendet hat.
2. CTC Kanal 1 Telefonläuten - dieser Kanal erzeugt ein Interrupt-Signal immer, wenn das Telefon läutet.
3. CTC Kanal 2 Tastendruck - dieser Kanal erzeugt ein Interrupt-Signal immer, wenn ein Tastendruck empfangen wird.
4. CTC Kanal 3 Zeitglied - über diesen Kanal wird alle 10 ms ein Interrupt-Signal erzeugt.
Die Adressen der Interrupt-Bearbeitungsprogramme für die obengenannten Einrichtungen befinden sich in einer Interrupt-Vektortabelle im Speicher 22. Sobald eine der obigen Einrichtungen ein Interrupt-Signal erzeugt, wird die entsprechende Adresse der Interrupt-Vektortabelle aufgerufen.
Die Interrupt-Bearbeitungsprogramme befinden sich in zwei Programmmoduln, dem Interrupt-Modul und dem I/O-Bearbeitungsmodul.
Der Interrupt-Modul besteht aus einem Programmbündel auf Bausteinebene, wobei jedes Programm einer Interrupt-Einrichtung zugeordnet ist. Alle Programme retten die Registerinhalte in den Kellerspeicher, rufen eine PLM-Prozedur auf, speichern dann die Registerinhalte zurück, geben die Interrupts wieder frei und kehren zurück. Die Interrupt-Bearbeitungsprogramme sind:
Audio:
CTC Kanal 0 - Bearbeitungsprogramm ruft PLM-Prozedur AUDIO$INTERUPT auf.
Ring: CTC Kanal 1 - Bearbeitungsprogramm ruft die PLM-Prozedur RING$INTERUPT auf.
KEYHNDLR: CTC Kanal 2 - Bearbeitungsprogramm, führt ein IN (00) aus, ermittelt den eingegebenen Tastendruck, rettet diesen in eine veränderliche RAWKEY und ruft PLM-Prozedur GOT$KEY.
Timer: CTC Kanal 3 - Bearbeitungsprogramm ruft PLM-Prozedur TEN$MS$TIMER auf.
Der Modul mit den I/O-Bearbeitungsprogrammen enthält PLM-Prozeduren, die die meisten der Interrupt-Routinen ausführen. Der Programmodul enthält außerdem einige andere vielseitige Routinen. Die Interrupt-Routinen werden im folgenden genau beschrieben:
RING$INTERUPT:
Gibt der Ablaufschlange eine Prozedur ein, die die Nachricht "Ihr Telefon läutet, bitte TAB drücken" anzeigt.
GOT$KEY: Gibt der Ablaufschlange die Prozedur KEY$DISPATCH ein. Die Prozedur KEY$DISPATCH bearbeitet in Wirklichkeit den Tastendruck.
TEN$MS$TIMER: Ruft weitere PLM-Prozeduren auf, die eine periodische Prüfung bestimmter Bedingungen bewirken.
Fast alle Funktionen der Sprachaufbereitung werden beim Drücken einer Taste gestartet. Dazu verwendet der Sprachaufbereiter eine Entscheidungstabelle, die die entsprechend dem Tastendruck anzeigende Prozedur entscheidet.
Die Tasten des Arbeitsplatzes sind in 16 verschiedene Klassen geteilt. Jede Klasse ist mit einer Zahl von 0-15 gekennzeichnet. Keine Taste kann in mehr als einer Klasse auftreten. Die Klassennummern und Tasten in jeder Klasse sind nachstehend aufgelistet:
Eine Umsetztabelle setzt die Hardware-Tastencodes in entsprechende Klassennummern (0-15) um. Diese Tabelle befindet sich im 0-Abschnitt der Datei "VOICE.CLASSTBL". Der Abschnitt 1 dieser Datei enthält die Standardtastendruck-Übersetzungstabelle pre-WISCII. Dabei ist es wichtig, daß die Klassentabelle schiebeunabhängig ist. Sowohl CANCEL als auch SHIFT CANCEL sind beispielsweise in der Löschklasse (13). Dies berührt jedoch obere und untere Textzeichen nicht, weil beide der Textklasse 7 angehören.
Der Sprachaufbereiter ist in verschiedene Bearbeitungszustände eingeteilt. Abhängig vom Wert des laufenden Zustands können die Tasten verschiedene Bedeutung besitzen, weshalb für jeden Zustand eine Prozedurtabelle definiert ist. Diese Prozedurtabellen werden Zustandstabellen genannt. Die Zustandstabellen sind im Zustandstabellenmodul definiert.
Die Sprachaufbereitungs-Zustandstabellen enthalten Indizes in eine große Prozedurtabelle. Diese Tabelle befindet sich im Routinetabellenmodul, der 36 Eingänge aufweist.
Wenn der Sprachaufbereiter zuerst angesprungen wird, ist der Hauptzustand der laufende Betriebszustand. Sowie neue Betriebszustände auftreten, werden die alten Zustände zusammen mit einem Index des laufenden Führungstextes auf dem Bildschirm in einen Zustandskellerspeicher gespeichert.
Beispielsweise drückt der Benutzer die DELETE-Taste während des Hauptzustands. Dann wird der Hauptzustand in den Zustandskellerspeicher eingekellert, und der Abschnitts-Definitionszustand wird zum laufenden Zustand. Auf dem Bildschirm erscheint der Führungstext "WAS WIRD GELÖSCHT?".
Nun nehmen wir an, daß der Benutzer die GO TO PAGE-Taste betätigt. Dann wird der Abschnittsdefinitionszustand und ebenfalls der Führungstext in den Zustandskellerspeicher eingekellert. Der neue Status ist der Sprungzustand. Auf dem Schirm erscheint der Führungstext "Wohin verzweigen?". Dann gibt der Benutzer eine Nummer ein und drückt die EXECUTE-Taste. Darauf wird eine Prozedur, die zu dieser Nummer verzweigt, aufgerufen.
Zu dieser Zeit wird der Abschnittsdefinitionsstatus und der Führungstext aus dem Kellerspeicher ausgelesen. Der Führungstext "Was wird gelöscht?" wird am Bildschirm erneut angezeigt. Der Benutzer drückt die EXECUTE-Taste, woraufhin eine Prozedur aufgerufen wird, die den hellgeschriebenen Teil der Sprachdatei löscht. Dann wird der Hauptstatus wieder aus dem Kellerspeicher ausgelesen und der ursprüngliche Betriebszustand eingenommen. Zusätzlich zu den Statustabellen selbst enthält der Statustabellenmodul Prozeduren, die das Einkellern des Zustands handhaben. Diese Prozeduren sind:
INIT$STATE:
Start des Einkellerns des Zustands.
NEW$STATE: Kellert den alten Status ein und macht den spezifizierten Status zum laufenden Status.
POP$STATE: Holt einen Status aus dem Kellerspeicher und macht diesen zum laufenden Status.
Der Statustabellenmodul enthält auch eine Routine, damit bei einer gegebenen Klassennummer die Adresse der Prozedur, die der Klasse des laufenden Status entspricht, zurückgegeben wird:
ROUTINE$ADDR:
Bei einer gegebenen Klassennummer sucht diese Prozedur in der laufenden Zustandstabelle die Adresse derjenigen Prozedur, die dieser Klasse entspricht.
Die Entscheidung, eine bestimmte Prozedur aufzurufen, läßt sich wie folgt zusammenfassen:
  • 1. Tastendruck-Interrupt.
  • 2. KEYHNDLR rettet die Register, speichert den Hardwareschlüsselcode in die variable RAWKEY und ruft GOT$KEY auf.
  • 3. GOT$KEY führt die folgenden Tätigkeiten aus:
    • a) Springt heraus, falls ein schwerwiegender Fehler passiert.
    • b) Führt einen Speicherabzug durch, falls SHIFT$PAGE geschrieben wurde.
    • c) Falls der vorige Tastendruck noch nicht verarbeitet wurde, wird dieser abgelegt.
    • d) Übergibt die Adresse der Prozedur KEY$DISPATCH zusammen mit dem Parameter RAW$KEY der Ablaufschlange.
  • 4. Aus der Ablaufschlange wird die Prozedur KEY$DISPATCH angesprungen und ausgeführt, wobei sie das folgende bewirkt:
    • a) Der Tastendruck wird unter Verwendung der Übersetzungstabelle übersetzt.
    • b) Die Klassennummer für diese Taste wird aus der Klassentabelle geholt.
    • c) Falls das höchstwertige Bit der Klassennummer 0 ist, wird dieser Tastendruck eingeklinkt,
    • d) irgendeine Fehlernachricht wird zurückgesetzt.
    • e) Mit der Ausnahme der RETURN- und Wiedergabe/Stopklasse wird die Tonwiedergabe gestoppt.
    • f) Die Prozedur ROUTINE$ADDR wird aufgerufen und diese der Klasse übergeben, um die Adresse der zugeteilten Prozedur zu bekommen.
    • g) Diese Prozeduradresse und der übersetzte Tastendruck wird der Ablaufschlange übergeben.
  • 5. Aus der Ablaufschlange wird die geeignete Routine mit dem übersetzten Tastendruck angesprungen und abgearbeitet.
Die weiteren Prozeduren können grob in zwei Teile eingeteilt werden. Das sind zum einen die auf einer niedrigen Programmebene ablaufenden Module für einen jeweiligen Datenaufbau, die diesen bearbeiten. Solche auf niedriger Ebene angesiedelte Module sind typisch der Dateiindex-(Audioindex, Kennzeichentabelle, Merkzeichentabelle), Tonfunktions- und Bildschirm-Programm-Module.
Den zweiten Teil stellen die auf hoher Ebene ablaufenden Routinen dar. Typischerweise werden diese Prozeduren durch den Tastendruck-Zuteilvorgang aufgerufen (deren Adressen stehen in der Routinentabelle), und diese wiederum rufen die Programmroutinen auf unterer Ebene auf, die hauptsächlich die Bearbeitung durchführen. Somit kann man sich die Routinen in der oberen Ebene als Schnittstelle zwischen den Tastendruck-Bearbeitungsroutinen und den unteren Arbeitsprozeduren vorstellen.
Der Benutzer-Schnittstellenmodul (V: voice .rrr.plm.ve.userint) enthält auf hoher Ebene Audio-, Abschnittsmarkierungs- und Neunumerierungsprozeduren:
PLAY$STOP:
Wird aufgerufen, sobald eine Taste der Wiedergabe/Stop-Klasse eingegeben wird. Falls die Tonwiedergabe gerade angehalten ist, schiebt die Prozedur die Schreibmarke zum Beginn des nächsten Tonabschnitts und beginnt mit der Wiedergabe. Falls gerade Tonwiedergabe oder Aufzeichnung stattfindet, hält sie diese an.
INSERT$MARK: Wird aufgerufen, wenn eine Taste aus der Markierungsklasse eingegeben wird. Falls eine Abschnittsmarkierung eingegeben wird, gibt diese Prozedur deren genaue Stelle auf dem Schirm an und ruft die zugehörige Fenstermodulroutine auf, um die genaue Position einzugeben. Falls die Anmerkungstaste gedrückt wurde, prüft diese Prozedur, ob die Schreibmarke gegenwärtig auf eine Anmerkung deutet. Falls das nicht der Fall ist, wird eine Anmerkung erzeugt. In jedem Fall wird im Textmodus eingegeben.
RENUMBER: Wird aufgerufen, wenn ein Tastendruck der Neunumerierungsklasse eingegeben wird. Der Editor wird in den Neunumerierungszustand versetzt und der Führungstext "Neunumerierungsmarkierung?" angezeigt.
REN$EXECUTE: Wird aufgerufen, wenn die Taste EXECUTE im Neunumerierungszustand gedrückt wird. Ruft eine Markierungstabellenprozedur auf, um die Markierung neu zu numerieren, zeigt diese wiederum auf dem Bildschirm an und holt den vorigen Zustand aus dem Kellerspeicher.
REN$CANCEL: Wird aufgerufen, wenn die Taste CANCEL während des Neunumerierungszustands gedrückt wird. Holt den vorigen Zustand aus dem Kellerspeicher.
Mit Rücksetzprogramm-Modul wird das Rücksetzen durchgeführt. Bei einmaligem Druck der Rücksetztaste wird die Schreibmarke 5 Sekunden zurückgesetzt und 5 Sekunden lang wiedergegeben. Ein N-maliger Tastendruck der Rücksetztaste bewirkt, daß die Schreibmarke um N×5 Sekunden zurückgesetzt wird und die Wiedergabe für dieselbe Zeitdauer erfolgt. Während der Wiedergabe hält jeder Tastendruck außer dem Drücken der Rücksetztaste die Wiedergabe an und löscht die Rücksetzfunktion vollständig. Wenn die Rücksetztaste gedrückt wurde, dauert es 350 ms, bis die Wiedergabe beginnt. Dadurch hat der Benutzer genügend Zeit, die Rücksetztaste vor dem Beginn der Wiedergabe wiederholt zu drücken. Der Rücksetzprogrammodul verwendet drei Variable, um diese Funktionen zu erfüllen:
bs$mode
Ist WAHR, wenn rückgesetzt wird und andernfalls FALSCH.
bs$time Die Schreibmarkenzeit, wenn der Benutzer zuerst die Rücksetztaste gedrückt hat. Die Wiedergabe erfolgt unabhängig davon; wie oft die Taste gedrückt wurde bis zur eingegebenen Zeit, jedoch nicht darüber hinaus.
bs$play$cnt Ein Zähler wird durch den ten$ms$timer dekrementiert. Dessen Zählwert erzeugt die 350 ms Wartezeit.
Für die Rücksetzfunktion werden folgende Prozeduren ausgeführt.
BS:
Wird aufgerufen, wenn die Rücksetztaste gedrückt ist. Wenn diese zum ersten Mal gedrückt wurde, wird die variable bs$mode auf WAHR gesetzt und die Variable bs$time erneuert. Das Zeitglied bs$wait$time wird auf den Anfangswert 350 ms gesetzt.
BS$WAIT$COUNTER: Aufruf erfolgt alle 10 ms durch die Prozedur TEN$MS$TIMER. Diese Prozedur dekrementiert bs$wait$time, und nachdem 350 ms abgelaufen sind, übergibt sie der Ablaufschlange eine Prozedur, die von der gegenwärtigen Schreibmarkenposition bis zur Zeit bs$time wiedergibt.
BS$KEY$CHECK: Der Aufruf erfolgt von der Prozedur KEY$DISPATCH und löscht den Rücksetzmodus, in dem eine andere Taste als die Rücksetztaste eingegeben wird.
Der Schreibmarkenmodul weist alle auf hoher Ebene liegende Schreibmarkenfunktionen auf. Wiederum stellen diese Prozeduren Schnittstellen zwischen der Tastenzuteilung und den Bildschirmroutinen, die in Wirklichkeit die Schreibmarke auf dem Schirm herumschieben, dar.
CURSOR$RTN:
Aufruf erfolgt bei der Mehrzahl aller Zustände, wenn eine Taste der Schreibmarkenklasse betätigt wird. Diese Prozedur ruft eine von vier Bildschirmroutinen auf, abhängig davon, welche Schreibmarkentaste betätigt wurde.
GO$TO$RTN: Wird aufgerufen, wenn die GO TO PAGE-Taste gedrückt wird. Diese Routine speichert den alten Zustand in den Kellerspeicher und bewirkt, daß der laufende Zustand der "Verschiebe"-Zustand" wird. Der "Wohin verschieben?"-Führungstext wird angezeigt und die Schreibmarke gerade hinter den Führungstext gesetzt. Bei Nachrichtendateiübersetzungszeit sollte dieser Führungstext rechtsbündig sein.
GO$TO$EXIT: Der Aufruf erfolgt im GO$TO$STATE, wenn die CANCEL-Taste betätigt wird. Diese Prozedur setzt die Schreibmarke in den Audio/Markierungs-Teil des Bildschirms zurück und holt den vorigen Zustand aus dem Kellerspeicher.
GO$TO$CURSOR: Wird aufgerufen, wenn eine der Schreibmarkentasten während des "Verschiebe"-Zustands gedrückt wird. Eine von vier Bildschirmroutinen wird aufgerufen, je nachdem, welche Schreibmarkentaste eingegeben wurde. Danach wird die Prozedur GO$TO$EXIT aufgerufen, um in den vorigen Zustand zurückzukehren.
GO$TO$ACCEPT$NUM: Wird aufgerufen, wenn eine Taste aus der Zahlenklasse während des "Verschiebe"-Zustands betätigt wird. Die eingetastete Zahl wird direkt hinter dem Führungstext auf dem Bildschirm angezeigt und die Schreibmarkenposition fortgeschrieben.
GO$TO$EXECUTE: Der Aufruf erfolgt während der GO$TO$STATE-Prozedur, wenn die Taste EXECUTE betätigt wird. Falls eine Zahl am Bildschirm steht, wird diese vom ASCII in den Binärcode umgesetzt und eine Bildschirmroutine, die die Schreibmarkenposition unterhalb der jeweiligen Markierung setzt, aufgerufen. Dann wird die Prozedur GO$TO$EXIT aufgerufen, um zum vorigen Status zurückzukehren.
Der Texteingabe-Modul enthält Routinen, um während des Textmodus Textanmerkungen einzugeben. Dazu werden folgende Variablen verwendet:
text$butter (60)
Ein Puffer, der die Textanmerkungen während deren Eingabe hält.
tindex Laufende Position (0-59) im Textpuffer.
tcursor Laufende Bildschirmposition der Schreibmarke.
note$index Ein Index innerhalb der Anmerkungstabelle der Textanmerkung, die gegenwärtig bearbeitet wird.
first Ein Flaggenbit, das WAHR ist, wenn die eingegebene Anmerkung gerade erzeugt wurde. Wenn das Flaggenbit WAHR war, wird die Anmerkung gelöscht, wenn die CANCEL-Taste betätigt wird. Wenn es eine alte zu ändernde Anmerkung ist, wird durch den Tastendruck CANCEL die Anmerkung in ihrer ursprünglichen Form eingespeichert.
Dazu werden die folgenden Routinen ausgeführt:
TEXT$SET$FIRST:
Aufruf erfolgt von der Prozedur INSERT$MARK. Sie teilt dem Texteingabemodul mit, daß diese Anmerkung gerade eingegeben wurde.
TEXT$MODE$ENTER: Wird von der Prozedur INSERT$MARK durch die Betätigung der NOTE-Taste aufgerufen. Stapelt den alten Zustand und erzeugt einen neuen "Text"-Zustand. Zeigt den Führungstext "Gib Text ein" an. Holt eine Anmerkung aus der Anmerkungstabelle und gibt sie dem Textpuffer ein.
TXT$CANCEL: Wird während dem "Text"-Status beim Drücken der CANCEL-Taste aufgerufen. Falls eine neue Anmerkung eingegeben wurde, wird diese Anmerkung gelöscht. Andernfalls wird der Textpuffer abgelegt und die alte Anmerkung unverändert wieder am Bildschirm angezeigt. Der vorige Status wird zurückgespeichert.
TEXT$EXECUTE: Der Aufruf erfolgt während des "Text"-Zustands, wenn die EXECUTE-Taste betätigt wird. Ersetzt die alte Anmerkung durch den Inhalt des Textpuffers. Der vorige Zustand wird zurückgespeichert.
TEXT$CURSOR: Wird während des "Text"-Zustands bei der Betätigung einer Schreibmarkentaste aufgerufen. Verschiebt die Schreibmarke vorwärts oder rückwärts. Zeigt eine Fehlernachricht an, falls die Schreibmarken-Nord-Taste oder die Schreibmarken-Süd-Taste betätigt wird.
TXT$BACK$SPACE: Wird aufgerufen, wenn im "Text"-Zustand die Rücksetztaste gedrückt wird. Verschiebt die Schreibmarke um eine Stelle zurück und löscht das Zeichen, unter dem sich die Schreibmarke befindet.
TXT$ENTRY: Wird bei der Betätigung einer Taste der Text-Nummern- oder Wiedergabe/Stop-Klasse gedrückt. Gibt das Zeichen dem Textpuffer ein, zeigt es am Schirm an und setzt die Schreibmarke um eine Stelle vor.
TEXT: Wird aufgerufen, wenn eine Text-Taste im "Haupt"-Zustand betätigt wird. Falls die Schreibmarke auf einer Anmerkung steht, gibt diese Prozedur den Text-Modus und die gedrückte Taste in den Textpuffer ein und am Bildschirm aus. Wenn die Schreibmarke nicht über einer Anmerkung steht, wird die Nachricht "Schreibmarke verschieben" angezeigt.
Der Aufbereitungsmodul bildet eine Schnittstelle zwischen dem Tastenzuteilmechanismus und den Bildschirmteil-Indexroutinen auf unterer Ebene, die in Wirklichkeit die Datei handhaben. Der Aufbereitungsmodul ist verantwortlich dafür, welche Teile der Datei aufbereitet werden. Um bestimmte Stellen der Datei zu adressieren, wird eine Punktstruktur verwendet. Diese Struktur besteht aus:
Punktstruktur (Zeit/Index, Adresse/Byte)
wobei die Zeit die in der Datei abgelaufene Zeit und Index der laufende Markierungsindex oder, falls an dieser Stelle keine Markierung vorhanden ist, der darauffolgende Markierungsindex in der Datei ist.
Folgende Punktstrukturen werden zum Ansteuern von Positionen in der Datei während der Aufbereitung benützt:
begpoint
Der Anfang eines Abschnitts, der zu Löschen/Schieben/Kopieren ist.
endpoint Das Ende eines Abschnitts, der zu Löschen/Schieben/Kopieren ist.
destpoint Der Zielpunkt für einen Schiebe/Kopiervorgang.
Um einen Teil der Datei zu löschen wird der Abschnitt zwischen begpoint und endpoint (einschließlich) aus der Datei herausgenommen:
Um einen Teil der Datei zu schieben oder zu kopieren, wird der Abschnitt zwischen begpoint und endpoint (einschließlich) zum destpoint geschoben oder in diesen kopiert:
Beim Einfügen in die Datei wird der Zielpunkt (destpoint) zum Einfügungspunkt. Das laufende Ende der Dabei in begpoint; die Aufzeichnung wird am Ende der Datei begonnen:
Wenn der Benutzer die STOP-Taste drückt, führt das Programm ein Schieben gemäß der obigen Beschreibung aus und schiebt den von (begpoint, endpoint) begrenzten Abschnitt zum Zielpunkt (destpoint).
Um einen Abschnitt der Datei zu ersetzen, werden drei zusätzliche Punktstrukturen verwendet:
rbegpoint
Enthält den Anfang des zu löschenden Abschnitts.
rendpoint Enthält das Ende des zu löschenden Abschnitts.
rdestpoint Enthält den Anfang des zu einfügenden Abschnitts.
Die Ersetzprozedur arbeitet wie folgt: Anfangs wird der zu ersetzende Abschnitt zwischen begpoint und endpoint definiert. Nach dessen Definition wird begpoint zum rdestpoint und endpoint zum Punkt rendpoint kopiert und der Punkt rbegpoint an das Ende der Datei gesetzt. Wenn dies dann durch die Standardeinfügungsprozedur geht, wird am Ende der Datei aufgezeichnet. Beim Einfügen wird beim Drücken der Stoptaste das neue Material, Abschnitt (begpoint, endpoint) zum Einfügungspunkt, destpoint transferiert, was den Einfügungsvorgang abschließt. Während des Ersetzens kann der Benutzer einfügen, wiedergeben mit den Schreibmarkentasten, schieben und Abschnittsmarkierungen und Textanmerkungen eingeben. Alle Einfügungen werden in der normalen Weise, in dem begpoint, endpoint und destpoint verwendet werden, durchgeführt. Selbstverständlich sind alle Einfügungen durch rbegpoint begrenzt.
Falls der Benutzer die CANCEL-Taste betätigt, wird der ersetzte Teil gelöscht, indem das Ende der Sprachdatei Zeit wieder nach rbegpoint gesetzt und die Datei in ihrer ursprünglichen Form neu eingespeichert wird.
Falls der Benutzer die EXECUTE-Taste betätigt, wird das Ersetzen ausgeführt, indem zuerst das zu ersetzende Segment (rdestpoint, rendpoint) gelöscht, darauf rdestpoint dem Punkt destpoint und das Ende der Datei dem Punkt endpoint zugeordnet und dann die Einfügung unter Verwendung eines gewöhnlichen Schiebevorganges des Abschnitts zwischen (begpoint, endpoint) nach destpoint durchgeführt wird.
Der Audiofunktionsmodul enthält Routinen, um aus Sprachdateien wiederzugeben oder in Sprachdateien aufzuzeichen. Dazu wird ein begleitender Modul, der I/O-Modul verwendet, der Datenstrukturen und Prozeduren aufweist, mit denen die Puffer und die Ablaufschlangenanforderungen an das Hauptprogramm bearbeitet werden.
Bei der Aufzeichnung oder Wiedergabe müssen die Audiodaten so gepuffert werden, daß die Wiedergabe oder die Aufzeichnung vom Warten auf das vollständige Einschreiben oder Auslesen eines Puffers nicht unterbrochen wird. Dazu verwenden die Audioarbeitsprogramme mindestens zwei Puffer, jedoch können auch, wenn genügend Platz vorhanden ist, mehr als zwei verwendet werden. Gegenwärtig verwenden die Audioarbeitsprogramme sechs Audiopuffer.
Der Sprachaufbereiter verwendet Puffer, deren Länge 1 bis 16 Abschnitte beträgt. Diese Puffer stehen seitenweise im Speicher. Jeder Puffer entspricht einem Audioblock in der Sprachdatei. Der I/O-Modul enthält Programmstrukturen, die Info-Strukturen genannt sind, die die Audio-Puffer verwalten. Der I/O-Modul enthält eine I/O-Anforderungsschlange, die zum Aufreihen der RCBs verwendet werden. Das 10-ms-Zeitglied prüft diese Schlange alle 10 ms. Falls diese Ablaufschlange eine Anforderung aufweist, überträgt die Zeitgliedprozedur selbst die Anforderung zum Hauptprogramm.
Die I/O-Anforderungsschlange verwendet folgende Datenstrukturen:
queue
Ein Adreßfeld, dieses bildet die I/O-Anforderungsschlange.
top Kopfindex der Schlange.
bottom Endindex der Schlange.
count Die Anzahl der Elemente in der Schlange.
Folgende Routinen verwalten die Schlange:
IO$PUSH:
Übergibt die Adresse einer RCB der I/O-Anforderungsschlange.
POP$AND$SEND: Diese Routine nimmt, falls die I/O-Anforderungsschlange etwas enthält und das SCA bereit ist, die RCB-Adresse aus der Schlange dem SCA. Diese Prozedur wird immer dann aufgerufen, wenn der I/O-Anforderungsschlange zum ersten Mal etwas übergeben wird (es wird versucht, dieses sofort wieder herauszunehmen). Diese Prozedur wird auch alle 10 ms durch die TEN$MS$TIMER-Prozedur aufgerufen.
Weil der Sprachaufbereiter lediglich aufgezeichnete Daten einfügt, kann er nicht überschlagen. Die Aufzeichnung beginnt immer am Ende der Datei. Einzufügende Daten, die am Ende der Datei aufgezeichnet sind, werden dann zum Einfügungspunkt geschoben.
Für die Aufzeichnung werden folgende Schritte ausgeführt:
  • 1. Start mit der sechsten Info-Struktur.
    • a) Einschreiben der ersten Pufferadresse,
    • b) Einschreiben der Pufferlänge,
    • c) und falls im letzten Block der Datei aufgezeichnet wird, wird das Stop-Kennzeichen Bit gesetzt.
  • 2. Der Hardware wird die Adresse des ersten Puffers übergeben;
  • 3. der Hardware wird der Beginn der Aufzeichnung mitgeteilt;
  • 4. Folgende Prozedur wird ausgeführt:
    • a) Der Hardware wird die Größe des Puffers, in dem gegenwärtig aufgezeichnet wird, mitgeteilt.
    • b) Der Schlange wird eine Schreibanforderung für den vorangehenden Puffer übergeben, falls dies nicht der erste Puffer ist.
    • c) Anhalten, falls für diesen Puffer das Stopkennzeichen Bit gesetzt ist.
    • d) Prüfen, ob eine frühere Schreibanforderung für diesen Puffer vollständig ausgeführt ist und, falls dies nicht so ist, die Tonquelle anhalten, bis die Anforderung beendet ist.
    • e) Für diesen Puffer wird das RCB eingespeichert.
    • f) Die Variablen werden inkrementiert, so daß der folgende Puffer bearbeitet werden kann.
Nachdem die Aufzeichnung in den ersten Pufferspeicher beendet ist, wird ein Blockzahl-Interrupt erzeugt (CTC Kanal 0). Daraufhin wird die Prozedur AUDIO$INTERUPT aufgerufen. Diese Prozedur prüft, ob wiedergegeben oder aufgezeichnet wird, und ruft eine Wiedergabe- oder Aufzeichnungs-Interruptprozedur auf.
Der obige 4. Schritt ist die Aufzeichnungs-Interruptprozedur, RECORD$INTERUPT. Beim Fortschreiten der Aufzeichnung wird diese Interrupt-Prozedur immer aufgerufen, wenn ein Puffer vollständig eingeschrieben ist.
Die Wiedergabe verläuft genauso wie die Aufzeichnung. Nach einigen Anfangsschritten wird der Hardware der Start der Wiedergabe mitgeteilt. Daraufhin wird die PLAY$INTERUPT-Routine aufgerufen. Diese Interrupt-Routine wird immer, wenn ein Puffer abgespielt wurde, aufgerufen, um den nächsten Puffer für die Wiedergabe vorzubereiten und um der Schlange eine Anforderung zu übergen, den folgenden Puffer von der Platte zu lesen.
Bei der Aufzeichnung wird die Abtastfrequenz immer fest auf das Literal SMP$RATE gesetzt, das die Abtastfrequenz definiert. Während der Wiedergabe kann die Abtastrate jedoch geändert werden. Durch die Prozedur TEN$MS$TIMER wird alle 10 ms die Prozedur SET$RATE aufgerufen. Letztere ruft eine Routine auf, die die gerade eingestellte Abtastgeschwindigkeit so ändert, daß ein gewünschter Wert eingenommen wird. Der Hardware wird dann diese Abtastfrequenz übergeben.
Der Sprachaufbereitungsbildschirm ist in zwei Abschnitte eingeteilt, den Statusteil und den Audio/Markierungsteil. Der Statusteil besteht aus den ersten zwei Zeilen und den letzten zwei Zeilen des Bildschirms. Dieser Bereich wird zur Anzeige von Führungstexten, Schreibmarkenzeit, Länge usw. verwendet. Der Audio/Markierungsteil, der aus den Zeilen 3-21 besteht, wird zur Anzeige des Inhalts der Sprachdatei, d. h. der Audioblöcke, der Textanmerkungen und der Abschnittsmarkierungen, verwendet.
Der Anzeigemodul steuert den Statusteil des Bildschirms. Zusätzlich befinden sich alle MENUPACK-Prozeduren in diesem Modul. Er enthält Prozeduren, um MENUPACK, den Bildschirm, die Schreibmarkenzeit, den Audiomodus, Erinnerungshilfen, Anrufmodus, Titel, Führungstext, Länge und Fehlernachrichten in Betrieb zu setzen.
Der Fenstermodul enthält Routinen, die die Anzeige am Audio/Markierungsteil des Bildschirms steuern und fortschreiben. Dieser Modul erhält von folgenden Modulen Beistand:
convert (V: voice.rrr.plm.ve.convert)
Position und Strukturumformroutinen
time (V:voice.rrr.plm.ve.time) Zeit-Positionsumformroutinen
line (V:voice.rrr.plm.ve.line) Zeilenstrukturrealisierung
region (V:voice.rrr.plm.ve.region) Aufbereitungsindex-Suchprogramm
scroll (V:voice.rrr.plm.ve.scroll) Fensterbearbeitung auf unterer Ebene
Die Sprachdatei besteht aus einem Kopf, der Markierungstabelle, Anmerkungstabelle, Abschnittsverzeichnis und Blockverzeichnis. Die folgenden Programmodule enthalten Routinen, die zur Sprachdatei zugreifen:
fileindx (V:voice.rrr.plm.ve.fileindx)
Dateiindexrealisierung
editindx (V:voice.rrr.plm.ve.editindx) Dateiindexaufbereitungsoperationen
mark (V:voice.rrr.plm.ve.mark) Markierungstabellenrealisierung
note (V:voice.rrr.plm.ve.note) Anmerkungstabellenrealisierung
voicegrm (V:voice.rrr.plm.ve.voicegrm) Sprachtabellenerzeugung, Start und Bereinigungsroutinen
extend (V: voice.rrr.plm.ve.extend) Sprachdateiausdehnungs- und Beschränkungsroutinen
fatal Tiefgreifender Fehler, ABEND Handhaber.
Der Fehlermodul enthält Prozeduren für ABENDs, tiefgreifende Fehler und keine schwerwiegenden Fehler. Ein Kennzeichen-Bit, DUMPFLAG, das in der Kette (Ablaufschlange) gesetzt wird, bestimmt, ob ein Fehler einen Speicherabzug erfordert oder nicht. Wenn das Kennzeichen-Bit DUMPFLAG OFFh ist, werden die Speicherabzüge aktiviert. Wenn das Kennzeichen-Bit DUMPFLAG O ist, werden die Speicherabzüge gesperrt.
Die ausgeführten Prozeduren sind:
NON$FATAL$ERROR:
Speicherabzug, wenn das Kennzeichen-Bit gesetzt ist, Anzeige VE-Fehler: XXX, wobei XXX eine eingeschleifte Fehlernummer bedeutet. Diese Fehlernummern sind in (V:voice.rrr.lit.ve.ERR) definiert. Außerdem werden 16 Byte Daten angezeigt (typischerweise ein RCB), falls diese als Parameter eingeschleift wurden.
INFORM$ERROR: Anzeige Nicht-VE-Fehlernachricht, nachdem irgendeine Taste betätigt wurde. Rückkehr zur Rufanmeldung. Nicht-VE-Fehlernachrichten sind die Standardfehler, wie z. B. "Schreibmarken verschieben", die am unteren Teil des Bildschirms angezeigt werden. Diese Standardfehler sind in (V.voice.rrr.lit.ve.MERROR) definiert.
FATAL$ERROR: Diese Routine ist mit NON$FATAL$ERROR identisch mit der Ausnahme, daß diese Fehleranzeige nicht rücksetzbar ist. Wenn der Benutzer irgendeine Taste betätigt, kehrt der Aufbereiter in den Anrufzustand zurück.
Der Sprachaufbereiter-Fehlerbehandlungsmechanismus behandelt Fehler der Arbeitsprogramme oder versehentlich erzeugte IPLs während der Aufzeichnung. Dazu verwendet der Sprachaufbereiter einige gemeinsame Datenstrukturen, und drei Programmodule enthalten deren Implementierung und Routinen, um diese Strukturen zu bearbeiten.
Die Ablaufschlange verwendet diese Prozeduren:
QUE$INIT:
Diese Prozedur definiert eine Schlange. Der Benutzer kennzeichnet die Adresse, die Länge der Schlange und die Länge jedes Elements der Schlange sowie eine Hinweismarke zu einer Struktur, die alle hervorragenden Merkmale der Schlange hält. Diese Struktur identifiziert die Schlange. Sie muß als Parameter den oben beschriebenen Einspeicher- und Ausleseroutinen übergeben werden.
QUE$PUSH: Diese Prozedur übergibt ein Element einer gekennzeichneten Schlange.
QUE$POP: Diese Prozedur nimmt ein Element aus dem Kopf einer gekennzeichneten Schlange her aus.
Das Kellerspeichermodul (V:voice.rrr.plm.ve.stack) ist die Realisierung eines Kellerspeichers mit Einschreib- und Ausleseroutinen. Der Zustandstabellenmodul-Kellerspeicher verwendet Prozeduren aus dem Kellerspeichermodul, um den Zustandskellerspeicher zu realisieren. Anders als beim Ablaufschlangenmodul können die Kellerspeichermodulroutinen lediglich einen einzigen Kellerspeicher bearbeiten, der im Modul wie folgt definiert ist:
stack (12)
Byte. Die für den Kellerspeicher reservierte Speicherkapazität.
sp Kellerspeicherzeiger.
Der Kellerspeicher wird mit zwei Routinen bearbeitet:
PUSH:
Speichert ein Element in den Kellerspeicher ein.
POP: Holt ein Element aus dem Kellerspeicher heraus.
Der Bit Verzeichnismodul (V.voice.rrr.plm.ve.bit) kann clr und Test Bits des vom Benutzer gekennzeichneten Bit-Verzeichnis setzen. Das Verzeichnis kann nicht größer als 256 Byte sein. Die Markierungstabelle verwendet ein Bit-Verzeichnis, um die Nummer der folgenden Abschnittsmarkierung zu erzeugen. Der Dateiindex-Aufbereitungsmodul verwendet ein Bit-Verzeichnis, um alle freien Blöcke im Index so zu ordnen, daß Dateierweiterungen optimal ausgeführt werden. Der Bit-Verzeichnismodul enthält folgende Prozeduren:
BIT$SET:
Setzt ein Bit in einem Bit-Verzeichnis.
BIT$CLR: Löscht ein Bit in einem Bit-Verzeichnis.
BIT$TEST: Prüft ein Bit darauf, ob es gesetzt oder gelöscht ist.
Sämtliche PLM INPUT- und OUTPUT-Anweisungen für den Sprachaufbereiter sind im Audio/Hardwaremodul (V: voice.rrr.plm.ve.audioctl) enthalten. Dieser Modul enthält kleine Prozeduren, die als Schnittstelle zwischen Hardware und dem Großteil des Sprachaufbereiter PLM-Codes wirken.
Der Setz-Interrupt-Modus-Modul (V.voice.rrr.z80.ve.setimode) enthält zwei Prozeduren, deren eine das Arbeitsprogramm für den Interrupt-Modus 2 bildet und deren andere das Rücksetzen in den Interrupt-Modus 0 durchführt. Die PLM-Routinen INIT$WORKSTATION und RESET$WORKSTATION, die sich im Audio/Hardware-Steuermodul befinden, rufen die zwei Routinen im Setz-Interrupt-Modus-Modul auf. Die allerersten Bit dieses Moduls enthalten die Interrupt-Vektortabellen für den CTC und PIO. Diese Tabellen müssen im Speicher innerhalb Grenzen liegen, die durch den Faktor 8 bestimmt sind, so daß im Kettenverzeichnis Vorsorge getroffen sein muß, daß diese Grenzen eingehalten werden.

Claims (7)

1. Verarbeitungsanlage für gespeicherte Dokumente, die sowohl Textbestandteile als auch gesprochene Bestandteile aufweisen, dadurch gekennzeichnet,
daß die Text- und die gesprochenen Bestandteile mit jeweils eigenen Zeichen voneinander unabhängig und voneinander getrennt auf einem Anzeigemittel (31) dargestellt sind und
daß sowohl an den Text- als auch an den gesprochenen Bestandteilen unabhängig voneinander Operationen durchgeführt werden können.
2. Verarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet, daß Befehlseingabemittel (16) und Befehlsausführungsmittel (26) für die Eingabe bzw. die Durchführung von Änderungsoperationen vorgesehen sind.
3. Verarbeitungsanlage nach Anspruch 2, dadurch gekennzeichnet, daß Mittel zur Eingabe von Textinformationen (16) und von gesprochenen Informationen (50, 52) vorgesehen sind und daß die Änderungsoperation eine Einfügungsoperation ist, womit die Befehlsausführungsmittel (26) eine Information an einer markierten Stelle des Dokuments einfügen.
4. Verarbeitungsanlage nach Anspruch 2, dadurch gekennzeichnet, daß die Änderungsoperation eine Ersetzungsoperation ist, worin die Befehlsausführungsmittel (26) eine Information an der markierten Stelle des Dokuments ersetzen.
5. Verarbeitungsanlage nach Anspruch 2, dadurch gekennzeichnet, daß die Änderungsoperation eine Löschoperation ist, worin die Befehlsausführungsmittel (26) die Information an der markierten Stelle löschen.
6. Verarbeitungsanlage nach Anspruch 2, dadurch gekennzeichnet, daß die Änderungsoperation eine Versetzungsoperation ist, worin die Befehlsausführungsmittel (26) eine Information an der markierten Stelle des Dokuments ersetzen.
7. Verarbeitungsanlage nach Anspruch 2, dadurch gekennzeichnet, daß die Änderungsoperation eine Kopieroperation ist, worin die Befehlsausführungsmittel (26) eine Information von einem Teil des Dokuments in einen anderen Teil des Dokuments kopieren.
DE3348195A 1982-11-03 1983-11-03 Expired - Fee Related DE3348195C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/439,210 US4627001A (en) 1982-11-03 1982-11-03 Editing voice data

Publications (1)

Publication Number Publication Date
DE3348195C2 true DE3348195C2 (de) 1993-04-01

Family

ID=23743752

Family Applications (2)

Application Number Title Priority Date Filing Date
DE19833339794 Ceased DE3339794A1 (de) 1982-11-03 1983-11-03 Sprachdatenaufbereitungssystem
DE3348195A Expired - Fee Related DE3348195C2 (de) 1982-11-03 1983-11-03

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE19833339794 Ceased DE3339794A1 (de) 1982-11-03 1983-11-03 Sprachdatenaufbereitungssystem

Country Status (12)

Country Link
US (1) US4627001A (de)
JP (1) JPS59135542A (de)
AU (3) AU565465B2 (de)
BE (2) BE898147A (de)
CA (1) CA1197319A (de)
CH (2) CH663485A5 (de)
DE (2) DE3339794A1 (de)
FR (1) FR2535490A1 (de)
GB (1) GB2129591B (de)
IT (1) IT1162986B (de)
NL (1) NL8303789A (de)
SE (3) SE8305885L (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19728470A1 (de) * 1997-07-03 1999-01-07 Siemens Ag Navigationssystem mit regulierbarer Sprachausgabe

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4914704A (en) * 1984-10-30 1990-04-03 International Business Machines Corporation Text editor for speech input
US4908866A (en) * 1985-02-04 1990-03-13 Eric Goldwasser Speech transcribing system
US4776016A (en) * 1985-11-21 1988-10-04 Position Orientation Systems, Inc. Voice control system
US4891835A (en) * 1986-04-30 1990-01-02 Dictaphone Corporation Method and device for recording and replaying audio communications
JPS62297930A (ja) * 1986-06-13 1987-12-25 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション ワ−ド・プロセシング・システム
US4858213A (en) * 1986-08-08 1989-08-15 Dictaphone Corporation Display for modular dictation/transcription system
US4924332A (en) * 1986-08-08 1990-05-08 Dictaphone Corporation Display for modular dictation/transcription system
JPH065451B2 (ja) * 1986-12-22 1994-01-19 株式会社河合楽器製作所 発音訓練装置
US5179627A (en) * 1987-02-10 1993-01-12 Dictaphone Corporation Digital dictation system
GB2201862B (en) * 1987-02-10 1990-11-21 Dictaphone Corp Digital dictation system with voice mail capability
US5231670A (en) * 1987-06-01 1993-07-27 Kurzweil Applied Intelligence, Inc. Voice controlled system and method for generating text from a voice controlled input
US5008835A (en) * 1987-12-28 1991-04-16 Jachmann Emil F Method and apparatus for storing and forwarding voice signals and generating replies
DE3807851A1 (de) * 1988-03-10 1989-09-21 Grundig Emv Rechner, insbesondere personalcomputer, mit einem sprachein- und einem sprachausgabesystem
DE3927234A1 (de) * 1988-03-10 1991-02-21 Grundig Emv Rechner mit einem sprachein-/ausgabesystem und einer einrichtung zur akustischen und/oder optischen bedienerfuehrung
JPH02110658A (ja) * 1988-10-19 1990-04-23 Hitachi Ltd 文書編集装置
AT390685B (de) * 1988-10-25 1990-06-11 Philips Nv System zur textverarbeitung
US5151998A (en) * 1988-12-30 1992-09-29 Macromedia, Inc. sound editing system using control line for altering specified characteristic of adjacent segment of the stored waveform
US5204969A (en) * 1988-12-30 1993-04-20 Macromedia, Inc. Sound editing system using visually displayed control line for altering specified characteristic of adjacent segment of stored waveform
US5146439A (en) * 1989-01-04 1992-09-08 Pitney Bowes Inc. Records management system having dictation/transcription capability
US5010495A (en) * 1989-02-02 1991-04-23 American Language Academy Interactive language learning system
US4979216A (en) * 1989-02-17 1990-12-18 Malsheen Bathsheba J Text to speech synthesis system and method using context dependent vowel allophones
US5003574A (en) * 1989-03-30 1991-03-26 At&T Bell Laboratories Voice capture system
US5119474A (en) * 1989-06-16 1992-06-02 International Business Machines Corp. Computer-based, audio/visual creation and presentation system and method
JPH03163623A (ja) * 1989-06-23 1991-07-15 Articulate Syst Inc 音声制御コンピュータ・インターフェース
DE3921795C2 (de) * 1989-07-03 1995-03-16 Grundig Emv Textverarbeitungssystem mit gemeinsamer Steuereinheit für Schreib- und Diktiersystem
US5265014A (en) * 1990-04-10 1993-11-23 Hewlett-Packard Company Multi-modal user interface
US5684927A (en) * 1990-06-11 1997-11-04 Intervoice Limited Partnership Automatically updating an edited section of a voice string
US5265075A (en) * 1991-09-11 1993-11-23 Dictaphone Corporation Voice processing system with editable voice files
AU2868092A (en) * 1991-09-30 1993-05-03 Riverrun Technology Method and apparatus for managing information
AU3221493A (en) * 1991-12-10 1993-07-19 Khyber Technologies Corporation Portable messaging and scheduling device with homebase station
JP3026472B2 (ja) * 1991-12-31 2000-03-27 インターナショナル・ビジネス・マシーンズ・コーポレイション オーディオ出力を提供する方法及び装置
IT1256823B (it) * 1992-05-14 1995-12-21 Olivetti & Co Spa Calcolatore portatile con annotazioni verbali.
US5675709A (en) * 1993-01-21 1997-10-07 Fuji Xerox Co., Ltd. System for efficiently processing digital sound data in accordance with index data of feature quantities of the sound data
US5519808A (en) * 1993-03-10 1996-05-21 Lanier Worldwide, Inc. Transcription interface for a word processing station
US5675778A (en) * 1993-10-04 1997-10-07 Fostex Corporation Of America Method and apparatus for audio editing incorporating visual comparison
KR960012847B1 (ko) * 1994-05-06 1996-09-24 삼성전자 주식회사 멀티미디어 컴퓨터의 오디오데이타 입력장치
AU4160896A (en) * 1994-11-14 1996-06-06 Norris Communications Corp. Method for editing in hand held recorder
US6073103A (en) * 1996-04-25 2000-06-06 International Business Machines Corporation Display accessory for a record playback system
US5970455A (en) * 1997-03-20 1999-10-19 Xerox Corporation System for capturing and retrieving audio data and corresponding hand-written notes
JP3417355B2 (ja) * 1999-08-23 2003-06-16 日本電気株式会社 音声エディット装置及びプログラムを記録した機械読み取り可能な記録媒体
US6614729B2 (en) * 2000-09-26 2003-09-02 David D. Griner System and method of creating digital recordings of live performances
US7366979B2 (en) * 2001-03-09 2008-04-29 Copernicus Investments, Llc Method and apparatus for annotating a document
WO2004097791A2 (en) * 2003-04-29 2004-11-11 Custom Speech Usa, Inc. Methods and systems for creating a second generation session file
US7369649B2 (en) * 2003-08-15 2008-05-06 Avaya Technology Corp. System and method for caller initiated voicemail annotation and its transmission over IP/SIP for flexible and efficient voice mail retrieval
US20050192820A1 (en) * 2004-02-27 2005-09-01 Simon Steven G. Method and apparatus for creating and distributing recordings of events
US9620107B2 (en) * 2012-12-31 2017-04-11 General Electric Company Voice inspection guidance

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2082820A (en) * 1980-08-20 1982-03-10 Neff Gregor Nicholas Devices, Systems and Methods for Converting Speech into Corresponding Written Form
US4375083A (en) * 1980-01-31 1983-02-22 Bell Telephone Laboratories, Incorporated Signal sequence editing method and apparatus with automatic time fitting of edited segments

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3141069A (en) * 1959-04-07 1964-07-14 Edward L Withey Method of and apparatus for recording and reproducing information
US4144582A (en) * 1970-12-28 1979-03-13 Hyatt Gilbert P Voice signal processing system
BE759887A (fr) * 1969-12-05 1971-06-04 Dassault Electronique Installation a langage digital et a langage phonique
US3648249A (en) * 1970-12-08 1972-03-07 Ibm Audio-responsive visual display system incorporating audio and digital information segmentation and coordination
US3704345A (en) * 1971-03-19 1972-11-28 Bell Telephone Labor Inc Conversion of printed text into synthetic speech
US4057849A (en) * 1974-09-23 1977-11-08 Atex, Incorporated Text editing and display system
JPS5821729B2 (ja) * 1977-08-11 1983-05-02 株式会社リコー ワ−ド・プロセッサ
JPS5587199A (en) * 1978-12-26 1980-07-01 Tokyo Shibaura Electric Co Chineseecharacter input device through voice
US4305131A (en) * 1979-02-05 1981-12-08 Best Robert M Dialog between TV movies and human viewers
JPS56124947A (en) * 1980-03-05 1981-09-30 Yokogawa Hokushin Electric Corp Word processor
JPS5760466A (en) * 1980-09-30 1982-04-12 Toshiba Corp Japanese language word processor
AU546625B2 (en) * 1980-10-09 1985-09-12 Sony Corporation V.t.r. editing control
JPS5775349A (en) * 1980-10-28 1982-05-11 Nippon Telegr & Teleph Corp <Ntt> Japanese input device of voice recognition type
US4388495A (en) * 1981-05-01 1983-06-14 Interstate Electronics Corporation Speech recognition microcomputer

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4375083A (en) * 1980-01-31 1983-02-22 Bell Telephone Laboratories, Incorporated Signal sequence editing method and apparatus with automatic time fitting of edited segments
GB2082820A (en) * 1980-08-20 1982-03-10 Neff Gregor Nicholas Devices, Systems and Methods for Converting Speech into Corresponding Written Form

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WELCH, P.D. System for integrating and collating audio and text, and for text Creation and editing In: IBM Technical Disclosure Bulletin, 1973, Vol. 16, No. 2, S. 500-503 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19728470A1 (de) * 1997-07-03 1999-01-07 Siemens Ag Navigationssystem mit regulierbarer Sprachausgabe

Also Published As

Publication number Publication date
JPS6330645B2 (de) 1988-06-20
CH663485A5 (de) 1987-12-15
GB8329136D0 (en) 1983-12-07
IT1162986B (it) 1987-04-01
SE8305885D0 (sv) 1983-10-26
CH666973A5 (de) 1988-08-31
NL8303789A (nl) 1984-06-01
AU593373B2 (en) 1990-02-08
AU6957587A (en) 1987-06-11
IT8368147A0 (it) 1983-11-03
SE8305885L (sv) 1984-05-04
BE906093A (fr) 1987-04-16
US4627001A (en) 1986-12-02
SE8604731L (sv) 1986-11-05
SE8704774D0 (sv) 1987-11-30
AU565465B2 (en) 1987-09-17
GB2129591A (en) 1984-05-16
SE8704774L (sv) 1987-11-30
CA1197319A (en) 1985-11-26
DE3339794A1 (de) 1984-05-03
JPS59135542A (ja) 1984-08-03
AU2091283A (en) 1984-05-10
AU7603387A (en) 1987-10-22
BE898147A (fr) 1984-03-01
FR2535490A1 (fr) 1984-05-04
GB2129591B (en) 1986-04-03
SE8604731D0 (sv) 1986-11-05
SE455650B (sv) 1988-07-25

Similar Documents

Publication Publication Date Title
DE3348195C2 (de)
DE4436175B4 (de) Vorrichtung zum Fernzugreifen auf einen Computer ausgehend von einem Telefonhandapparat
DE69722652T2 (de) System und verfahren zum ferngruppieren des inhalts eines historischen kellerspeichers
DE3431255A1 (de) Elektronische notizeinrichtung
DE3139748A1 (de) Wortprozessorsystem
DE3616751A1 (de) Uebersetzungssystem
DE2711413A1 (de) Formatsteuerung fuer textautomaten
DE19706512A1 (de) Echtzeit-Ereignisanordnung in einem elektronischen Ablaufdiagramm
DE3718218A1 (de) Bilddaten-verarbeitungsgeraet mit aufbereitungsfunktion
DE3149462A1 (de) Wortprozessor
DE69908446T2 (de) Programmfehlerbeseitigung
DE2906883A1 (de) Verfahren und anordnung zum feststellen von tabulatoreinstellungen und indexparametern fuer eine wiedergabe in einem textverarbeitungssystem
DE3447824C2 (de) Einrichtung mit einem ersten Speicher für Informationen
DE602005006029T2 (de) Datenverarbeitungseinheit und Datenverarbeitungsprogramm gespeichert in einem computerlesbaren Aufzeichnungsmedium
DE3602069A1 (de) Wortprozessor
DE3530237A1 (de) Numerische steuervorrichtung
EP0406744B1 (de) Schaltungsanordnung zur Überarbeitung eines in einem Magnetband- und/oder Halbleiterspeicher abgespeicherten gesprochenen Textes
DE4108116A1 (de) Verfahren und geraet zur vorbereitung von musterdaten fuer eine werkzeugmaschine
DE2356632A1 (de) Verfahren fuer den betrieb eines systems mit einer numerischen werkzeugmaschine oder dergl
DE3242631A1 (de) Programmierbare steuereinrichtung
DE2121691A1 (de) Verfahren zum Rückschalten einer Linienfolgevorrichtung mit einem digitalen Umsetzer und Umsetzer zur Durchführung des Verfahrens
DE2717244A1 (de) Programmierbarer elektronischer computer
DE102017103533A1 (de) Verfahren und Vorrichtung zur textbezogenen Vorschau von Inhalten von Audiodateien
DE3927234A1 (de) Rechner mit einem sprachein-/ausgabesystem und einer einrichtung zur akustischen und/oder optischen bedienerfuehrung
EP0416072B1 (de) Verfahren und Vorrichtung zum Bearbeiten einer Zahlenkolonne

Legal Events

Date Code Title Description
Q172 Divided out of (supplement):

Ref country code: DE

Ref document number: 3339794

8110 Request for examination paragraph 44
AC Divided out of

Ref country code: DE

Ref document number: 3339794

Format of ref document f/p: P

D2 Grant after examination
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: WANG LABORATORIES, INC., BILLERICA, MASS., US

8339 Ceased/non-payment of the annual fee