DE10029904A1 - Verfahren und Sprachansagemodul zur Ausgabe einer Sprachansage sowie Programm-Modul dafür - Google Patents

Verfahren und Sprachansagemodul zur Ausgabe einer Sprachansage sowie Programm-Modul dafür

Info

Publication number
DE10029904A1
DE10029904A1 DE10029904A DE10029904A DE10029904A1 DE 10029904 A1 DE10029904 A1 DE 10029904A1 DE 10029904 A DE10029904 A DE 10029904A DE 10029904 A DE10029904 A DE 10029904A DE 10029904 A1 DE10029904 A1 DE 10029904A1
Authority
DE
Germany
Prior art keywords
program
announcement
segment
voice announcement
voice
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.)
Withdrawn
Application number
DE10029904A
Other languages
English (en)
Inventor
Benoit Labrique
Richard Moss
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.)
Alcatel Lucent SAS
Original Assignee
Alcatel SA
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 Alcatel SA filed Critical Alcatel SA
Priority to DE10029904A priority Critical patent/DE10029904A1/de
Priority to EP01440138A priority patent/EP1164575A3/de
Priority to US09/880,753 priority patent/US20020026317A1/en
Publication of DE10029904A1 publication Critical patent/DE10029904A1/de
Withdrawn 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
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • G10L13/027Concept to speech synthesisers; Generation of natural phrases from machine-based concepts

Abstract

Die Erfindung betrifft ein Verfahren zur Ausgabe einer Sprachansage, deren Inhalt vom Daten-Inhalt mindestens eines Datenstzes abhängt, bei dem mittels eines ersten Programmsegments aufgrund des Daten-Inhalts ein Ansagetyp ausgewählt wird, bei dem ein zweites Programmsegment zur programmgesteuerten Ausgabe bereitgestellt wird, das für den ausgewählten Ansagetyp geeignet ist, bei dem die für das bereitgestellte zweite Programmsegment erforderlichen Parameter ermittelt werden und bei dem die dem ausgewählten Ansagetyp unter Berücksichtigung der ermittelten Parameter entsprechende Sprachansage ausgegeben wird. Die Erfindung betrifft weiter ein Sprachansagemodul und ein Programm-Modul dafür.

Description

Die Erfindung betrifft ein Verfahren zur Ausgabe einer Sprachansage nach dem Oberbegriff des Anspruchs 1, ein Sprach­ ansagemodul nach dem Oberbegriff des Anspruchs 2 und ein Pro­ gramm-Modul nach dem Oberbegriff des Anspruchs 3.
Bekannte Sprachansagemodule sind konzipiert, um Ansagen mit einer einfachen Struktur auszugeben. Diese bestehen vorwiegend aus einem, möglicherweise geteilten, festen Teil und einem va­ riablen Teil. Beispiele hierfür sind Zeitansagen ("Es ist jetzt", "fünf", "Uhr", "zweiunddreißig".), auch als Teil einer Fahrplanauskunft, die Ansage einer geänderten Rufnummer oder die Nennung der Kosten eines soeben beendeten Ferngesprächs.
Bei den bekannten Sprachansagemodulen sind Ansagen mit kom­ plizierterer Struktur, etwa mit Alternativen, nicht automati­ sierbar möglich.
Der Erfindung liegt die Aufgabe zugrunde, auch Ansagen mit komplizierterer Struktur, etwa mit Alternativen, automatisier­ bar zu ermöglichen.
Diese Aufgabe wird erfindungsgemäß gelöst durch ein Verfahren nach der Lehre des Anspruchs 1, ein Sprachansagemodul nach der Lehre des Anspruchs 2 und ein Programm-Modul nach der Lehre des Anspruchs 3.
Der Erfindung liegt letztlich der Gedanke zugrunde, eine Pro­ grammiersprache zur Programmierung von Ansagen zu schaffen und diese dann zur Steuerung der Sprachansage zu verwenden.
Weitere Ausgestaltungen der Erfindung sind den Unteransprü­ chen und der nachfolgenden Beschreibung zu entnehmen.
Die vorgestellte Erfindung hat auch noch den Vorteil, daß die Programmsegmente nicht nur für die Steuerung von Ansagen ver­ wendet werden können, sondern daß damit darüber hinaus auch die Dokumentation eines Sprachansagemoduls direkt möglich ist.
Im folgenden wird die Erfindung unter Zuhilfenahme der bei­ liegenden Zeichnungen weiter erläutert:
Fig. 1 zeigt eine Reihe von Beispielen von Ansagetypen, aus denen durch das erfindungsgemäße Verfahren in einem erfindungsgemäßen Sprachansagemodul ausgewählt und die entsprechend den aktuellen Parametern variiert und ausgegeben werden,
Fig. 2 zeigt eine weitere Reihe von Beispielen wie in Fig. 1,
Fig. 3 zeigt mehr symbolisch ein Ausführungsbeispiel eines PCs mit einem erfindungsgemäßen Sprachansagemodul.
Anhand von Beispiel 1 der Fig. 1 wird zunächst kurz aufge­ zeigt, wie sich die Erfindung äußern kann.
Vorab soll aber zunächst ein Wort zur Sprache gesagt werden. (Dies ist gleichzeitig ein Hinweis an diejenigen Übersetzer, die später von der englischen Version ausgehend in weitere Sprachen übersetzen müssen.) Einerseits betrifft die Erfindung eine Sprachansage und beschäftigt sich schon deshalb mit Spra­ che und andererseits äußert sich die Erfindung in der Form ei­ ner Programmiersprache. Hier tritt die Sprache also nicht nur als Mittel zur Beschreibung der Erfindung, sondern auch als In­ halt und Ausdrucksform der Erfindung in Erscheinung.
Hier, im Beispiel 1 der Fig. 1, wie auch in den meisten an­ deren Beispielen, wird unterstellt, daß die Sprachausgabe in englischer Sprache erfolgen soll. Die auszugebenden Sprachele­ mente, z. B. "Good morning, Good afternoon, Good evening" sind deshalb, als Ausdrucksform der Erfindung, in englisch wiederge­ geben, obwohl die Beschreibung der Erfindung hier in deutscher Sprache erfolgt. Das Gleiche gilt erst recht für den Programm­ code als solchen, beispielsweise die Variablennamen, wie "<Area Code<", oder Anweisungen, wie "loop infinite". Es gilt aber auch für Anmerkungen, wie "where ThreeToneSuite is defined like" im Beispiel 8 in Fig. 2, weil erfindungsgemäß auch nichtausführbare "Anweisungen" als Kommentare zulässig sind und diese dann in der Regel eben in englisch geschrieben werden.
Eine Ausnahme ist anhand der Beispiele 9 und 10 in Fig. 2 dargestellt und wird im Zusammenhang mit der Beschreibung die­ ser Beispiele besprochen.
Was also in der ursprünglichen deutschsprachigen Version in deutscher Sprache zum Ausdruck gebracht wird, ist Beschreibung der Erfindung, während das, was in englischer Sprache zum Aus­ druck gebracht wird, Inhalt oder Ausdrucksform der Erfindung ist. (In den weiteren Übersetzungen kann dies dann wieder eben­ so unterschieden werden.) Aber auch in der englischsprachigen Version wird zumindest das, was in der Zeichnung in den Bei­ spielen genannt und in der Beschreibung aus den Beispielen der Zeichnung zitiert wird, als Inhalt oder Ausdrucksform der Er­ findung klar zu erkennen sein.
Selbstverständlich sind damit, wie bei Erfindungen in anderen Bereichen der Technik, länderspezifische Anpassungen nicht aus­ geschlossen. Hier jedoch würden sich solche länderspezifischen Anpassungen in erster Linie durch das Ersetzen der Syntaxele­ mente durch solche äußern, die auf der jeweiligen Landessprache basieren.
Doch nun zurück zu Beispiel 1 der Fig. 1:
Zunächst wird mit "[Good morning, Good afternoon, Good even­ ing]" eine Anrede entsprechend der Tageszeit ausgewählt und ausgegeben, wobei die Auswahl automatisch erfolgt. Anschließend wird eine neue Rufnummer einschließlich der erforderlichen Vor­ wahl angesagt, indem zwei feste Satzbestandteile, "the number you have dialled has changed. Please dial the area code" und "followed by the new number", mit zwei Variablen, "<Area Code<" und "<B-party number<", abwechseln. In einer Endlosschleife, "{loop infinite|<halfsecond pause< I repeat, please dial the area code <Area Code< followed by the new number <B-party num­ ber< }", wird daraufhin solange die Ausgabe unter Hinzufügung einer Pause, "<halfsecond pause<", und des Hinweises auf die Wiederholung, "I repeat", wiederholt, bis der Adressat der Aus­ gabe diese abbricht. Die Pause wird hier der Einfachheit halber als eine Variable mit vorgebbarer Länge, jedoch ohne Sprachin­ halt ausgegeben.
In diesem Beispiel werden die Syntaxelemente "Anrede", "feste Satzbestandteile", "Variablen" und "Schleifen" benutzt und bei­ spielhaft vorgestellt. Bevor auf weitere Beispiele eingegangen wird, wird kurz die Syntax dieser Programmiersprache zusammen­ fassend, jedoch nicht unbedingt vollständig, dargestellt; eine Ergänzung, Abwandlung oder auch eine Reduzierung soll nicht ausgeschlossen sein.
Beim Vergleich mit einer üblichen Programmiersprache wie C, C++ oder Pascal zeigt sich, daß die Programmiersprache, in der sich das erfindungsgemäße Verfahren äußert, ohne ausdrückliche Befehle ("explicit commands") auskommt. Sie besteht vielmehr aus Verweisen ("references") und Trennungen ("separators"). Die Verweise stellen dabei die Verbindungen (links) dorthin dar, wo sich die erforderliche Information befindet, während die Tren­ nungen den Kontext definieren, in den die Verweise gestellt sind. Die Verweise, etwa eine Textfolge, sind nur im Zusammen­ hang mit einem Kontext von Bedeutung. Durch Verwendung einer bestimmten Trennung, etwa "<" oder "<", kann der Kontext und damit die Bedeutung des Verweises geändert werden.
In der Praxis wird ein automatischer Übersetzer die in natür­ licher Sprache vorliegenden Verweise unter Zuhilfenahme einer besonderen Tabelle je nach vorliegendem Kontext in ein anwen­ dungsspezifisches Format übertragen, das dann vom erfindungsge­ mäßen Sprachansagemodul gelesen werden kann. Um die Eingabe flexibler und lesbarer zu gestalten, unterstützt diese Program­ miersprache auch Zeichensetzungssymbole ("punctuation sym­ bols"). Dies sind unveränderliche Zeichen, die bei der Überset­ zung keine Bedeutung haben. Sie können vom Benutzer hinzugefügt oder entfernt werden, um das Aussehen und die Lesbarkeit zu verbessern, haben aber keine technische Auswirkung.
Auf diese Weise kann sehr einfach und auch nach nur kurzer Einarbeitung ein Sprachansagemodul programmiert werden, wobei das Ergebnis, also das Programm, sowohl unmittelbar für die Do­ kumentation geeignet ist als auch nach automatischer Überset­ zung in eine niedrigere anwendungsspezifische Sprache übersetzt werden kann.
Eine Ansage ist eine Sammlung von festen Elementen ("ele­ ments"), wie "kein Anschluß unter dieser Nummer" und komplexen Segmenten ("Complex_Segments"), für die bei der konkreten An­ wendung noch laufzeitspezifische Angaben, wie Parameter, erfor­ derlich sind. Beispielsweise steht bei der Ansage "Der Anruf kostet <x< DM" das "<x<" für einen Parameter, der erst bekannt ist, wenn die Ansage wirklich erfolgt. Dabei ist "Laufzeit", (engl.: runtime) ein Ausdruck für denjenigen Augenblick, zu dem die Zusammenstellung zu einer aktuell auszugebenden Sprachansa­ ge tatsächlich erfolgt.
Im folgenden bedeutet (. . .) eine zusätzliche Möglichkeit ("option"), [. . .v. . .v. . .] eine Auswahl ("choice") und {. . .} ei­ ne Erweiterung ("extension").
Damit weist eine Ansage den folgenden Aufbau auf:
Ansage = (Prefix), Segment_List, (Suffix),
wobei:
Prefix, Suffix = [Element_List]
Segment_List = Segment {, Segment}
Element_List = Element {, "; ", Element}
Parameter_List = Parameter {, "; ", Parameter}, wobei ein Pa­ rameter ein Element, ein Segment, eine Zahl oder eine Variable, beispielsweise eine Lauf­ zeitvariable, sein kann.
Element = [Textbeschreibung v "beliebiger Text"]
Segment = [Element_List v Complex Element v
Parameter_Fixed v Block Segment] (, Punctuation sign) (, Flush sign "\")
Complex_Element = "<", Complex Reference, "<"
Block_Segment = "{", Block_Reference, "|", Segment_List ({, "|", Segment_List}), "}
IfThenElse_Segment = "{", Block_Reference oder Expression, "|", Segment_List_If (, "|", Segment_List_Else), "}"
Branch_Segment = "{", Block_Reference oder Expression, "|", Number_List, ":", Segment_List ({, "|",
Number_List, ":", Segment_List}), (, "|",
"ELSE:", Segment_List), "}". Zur Laufzeit wird "Block_Reference" oder "Expression" er­ mittelt und ein Sprung zu demjenigen Zweig durchgeführt, der die in der "Number_List" de­ finierte Nummer trägt. Andernfalls erfolgt ein Sprung in den unter ELSE definierten Zweig, sofern ein solcher vorhanden ist.
Parameter_Fixed = "(", ("_", Element_Singular (, ["/" v "\"], Element_Plural1 (["/" v "\"]
Element Plural2)), ("_"), ")". Das "_"-Zeichen steht für die Unterdrückung des vorausgehenden und/oder nachfolgenden Parameters, während das "/"-Zeichen für eine Übereinstimmung mit dem vorausgehenden oder nachfolgenden Parameter steht. Bei slavischen Sprachen muß ein zweiter Plural, Plural2, definiert werden.
Macro = "<<", Macro Reference ({, "|",
Parameter_List}), "<<"
Macro_Parameter = "[", Parameter Number, "]". Steht für jede Einzelheit der Macro-Definition selbst.
Ein Ausdruck, "Expression", ist ein algebraischer Ausdruck, der zur Laufzeit ausgewertet wird und bekannte Operatoren auf­ weist, wie beispielsweise +, -, /, *, % (modulo), ! (not), and, or, xor, = , <<, <= , <= , <, < oder irgendwelche anderen system­ spezifischen Operatoren. Beispielsweise ist "(Month = 2) and (day<15)" ein gültiger Ausdruck.
Eine "Block_Reference" ist ein Verweis auf eine Einzelheit wie
  • 1. eine Schleifenanweisung wie "loop 5 times" oder "loop in­ finite" (nur bei Ausgabe von Wörtern): ({loop|. . .}),
  • 2. eine Anweisung für eine Dauer wie "10 seconds" (nur bei Ausgabe von Wörtern): <{duration|. . .}),
  • 3. eine Anweisung zur Wiederholung wie "loop as long the pa­ rameter buffer is not empty": ({repetitive|. . .}) oder
  • 4. ein Ausdruck, der zur Laufzeit auszuwerten ist, wie "Eu­ ro = 0 and Cent<<0", der zusammen mit dem IfThenElse_Segment ({Euro = 0 and Cent<<0|(then)/(else)}) oder dem Branch_Segment ({Key pressed|1,2: . . .|5: . . .|ELSE: . . .}) be­ nutzt wird.
Eine Complex_Reference ist ein Verweis auf eine komplexe Ein­ zelheit wie
  • 1. ein Parameterwert und die dazugehörige Regel, nach der er erzeugt wird,
  • 2. eine (große) "Element_List" oder
  • 3. jede komplexe Einzelheit, die als Merkmal vorliegt.
Eine "Macro_Reference" ist ein Verweis auf ein Makro, welches wiederum eine Sammlung von Elementen und Segmenten ist, sowie jede Ansage, bei der ein Element oder ein Teil davon symbolisch durch einen Parameter ersetzt werden kann. Ein Makro wird bei der Kompilation aufgelöst, wobei jeder Macro_Parameter durch seinen aus der Parameterliste "Parameter_List" entnommenen Wert ersetzt wird. Ein Makro arbeitet hier genauso wie in jeder be­ kannten höheren Programmiersprache, beispielsweise C++.
Eine "Parameter_Number" ist eine natürliche Zahl, die den n-ten Parameter der "Parameter_List" repräsentiert.
Ein "Punctuation sign" ist jedes Zeichen, das nicht dem Zei­ chensatz "/; <<{}()|" angehört. Es kann separat gespeichert werden und muß nicht Teil eines Elements sein (ein Element kann Bestandteil verschiedener Ansagen sein). Dieses Zeichen ist für die gesprochene Ansage ohne Bedeutung.
Das "Flush sign" soll wie ein Zeichen für Wagenrücklauf oder für eine neue Zeile behandelt werden. Es ist nur von Bedeutung,
wenn, beispielsweise zusätzlich zur Sprachausgabe, eine Text­ ausgabe erfolgt. Beispielsweise kann als "Flush sign" der soge­ nannte "Backslash", "\", verwendet werden, ein Zeichen, das für andere Zwecke nicht gebraucht wird.
Bevor auf die technische Implementierung eingegangen wird, soll noch kurz auf die in den Fig. 1 und 2 gezeigten weite­ ren Beispiele eingegangen werden:
Beispiel 2 nach Fig. 1 zeigt die Programmierung für die An­ sage eines Preises, wobei unterstellt wird, daß der Anruf nicht völlig umsonst ist oder war. Dabei wird die Syntax des "Parameter_Fixed" verwendet. Zunächst erfolgt ein fester Ansa­ gebestandteil, "Your call costs", gefolgt von einer Angabe in Dollar und Cent. Die aktuellen Werte hierfür, <Dollar< und <Cent<, werden dann eingesetzt, wenn diese Ansage abgerufen wird. Die zugehörigen Einheiten, Dollar, Dollars, Cent oder Cents, werden jeweils anschließend hinzugefügt, wobei noch je nach Wert die Singularform, Dollar oder Cent, oder die Plural­ form, Dollars oder Cents, der Einheit ausgegeben wird. Ist ei­ ner der beiden Werte Null, so wird dieser nicht ausgegeben und auch die zugehörige Einheit unterdrückt. Das verbindende "and" wird sowohl unterdrückt, wenn der vorausgehende Wert, <Dollar<, Null ist als auch, wenn der nachfolgende Wert, <Cent<, Null ist.
Beispiel 3 in Fig. 1 zeigt eine Ansage ähnlich der im Bei­ spiel 2, jedoch nur auf ganze Dollar auf- oder abgerundet. Hier ist ein einfaches Unterdrücken von Angaben nicht mehr ausrei­ chend. Deshalb werden hier durch das Branch Segment DollarUnequalZero die Fälle unterschieden, daß etwas zu zahlen ist, "costs <Dollar< (Dollar/Dollars)", und daß insgesamt nichts zu zahlen ist, "is free". Die Unterdrückung der Einheit ist hier nicht erforderlich, weil dieser Zweig ohnehin nur an­ gesprungen wird, wenn der Wert ungleich Null ist.
Für den Fall, daß einerseits genau abgerechnet werden soll, andererseits aber auch kostenlose Gespräche möglich sind, kann selbstverständlich eine Kombination beider Beispiele erfolgen, wobei dann aber das Branch_Segment DollarunequalZero anders de­ finiert oder durch ein anderes Branch_Segment, etwa PriceUnequalZero ersetzt werden muß. Die Anweisungen DollarUnequalZero und PriceUnequalZero müssen dabei, wie bei Programmiersprachen üblich, an anderer Stelle, etwa als Funkti­ on oder Unterprogramm definiert werden. Anstelle des Branch Segments DollarUnequalZero könnte hier auch direkt die dahinter stehende Gleichung (Dollar.Zero) eingegeben werden. In solch einfachen Fällen mag es sich nicht lohnen, eine sepa­ rate Funktion bereitzustellen und diese jeweils aufzurufen. In­ wieweit dies auch für ein abgewandeltes Branch_Segment, etwa PriceUnequalZero gelten würde, hinge von dem hier nicht näher definierten inneren Aufbau ab.
Die folgenden drei Beispiele, Beispiel 4 und Beispiel 5 aus Fig. 1 und Beispiel 6 aus Fig. 2, zeigen Beispiele für mögli­ che Bestätigungen auf vom Benutzer vorgenommene Änderungen sei­ nes Benutzerprofils. Diese drei Beispiele zeigen jeweils einen ersten Ansageteil, in dem die Art der vorgenommenen Änderung bestätigt wird, "Your calls will be forwarded" oder "You en­ tered a filter for the following directory numbers", und einen zweiten Teil, der den Inhalt der vorgenommenen Änderung bestä­ tigt, nämlich im Falle der Rufum- oder -weiterleitung das je­ weilige Ziel, "to your mobile telephone!" oder "to your answer machine." und im Falle der Eingabe einer Reihe von Rufnummern für ein Rufnummernfilter werden durch die Block_Reference {Re­ petitive|<DN<} alle eingegebenen Rufnummern zur Kontrolle aus­ gegeben.
Anhand des Beispiels 7 in Fig. 2 soll eine komplexer aufge­ baute Ansage dargestellt werden. Gezeigt wird eine Aussage für einen Wartenden in einer Warteschlange. Zunächst erfolgt eine Begrüßung: "Hello, welcome by XYZ. All lines are busy. Your call is being queued.", auf die hin wiederholt durch eine Block Reference, {loop infinite|. . .}, auf die Tatsache hinge­ wiesen wird, daß man sich gerade in einer Warteschlage befin­ det: "You are the <xth< iri the queue". Dabei wird noch, als Va­ riable "<xth<" angegeben, der wievielte man in dieser Warte­ schlange ist. Aus der Geschwindigkeit, mit der hier zurückge­ zählt wird, kann man abschätzen, wie lange man noch etwa warten muß. Um das Herannahen des Endes der Warteschlange deutlicher zu machen, ist durch eine weitere Block_Reference, {pool|1: <music1<|2: <music2<|ELSE: <wait tone<}, für eine Abwand­ lung der Aussage gegen Schluß gesorgt. Bei jedem Durchlauf der unendlichen Schleife "loop infinite" wird noch ein akustisches Zeichen ausgegeben, das aus einem Pool, "pool", ausgewählt wird und das im Normalfall, "ELSE", ein Wartezeichen, "<wait tone<", ist und das gegen Ende der Warteschlange durch zwei verschiede­ ne Musikfolgen, erst "<music2<", dann "<music1<" ersetzt wird. Das Wartezeichen könnte dabei, wie im nachfolgenden Beispiel, aus einer vorab definierten Tonfolge bestehen.
Das Beispiel 8 in Fig. 2 zeigt eine einfache Ausgabe für den Fall, daß unter der gewählten Rufnummer kein Anschluß besteht. Die Ausgabe wird zunächst durch die Ausführung eines Makrobe­ fehls "<<ThreeToneSuite<<" angeführt und dann durch eine einfa­ che Ausgabe "No abonnee on this number" abgeschlossen. In die­ sem Beispiel ist noch eine Möglichkeit angedeutet, Kommentare zu verwenden. Wie in jeder Programmiersprache kann auch hier vorgesehen werden, daß Kommentare eingefügt werden. Eine in vielen Programmiersprachen vorgesehene Möglichkeit, besteht darin, daß alles unbeachtet bleibt, was nach einem Anführungs­ zeichen, "'", folgt; hier wird auf diese Weise der Kommentar 'where ThreeToneSuite is defined like "<Tone800Hz<; <Tone1000Hz<; <Tone1200Hz<; <Pause500ms<"' angefügt, um kurz den Inhalt dieses Makros zu erklären. Das Makro selbst muß selbstverständlich an anderer Stelle definiert werden.
Die letzten beiden Beispiele, Beispiel 9 und Beispiel 10 aus Fig. 2, zeigen im Ergebnis dieselbe Ausgabe, nämlich die Anga­ be eines Kostenbetrags in einer slawischen Sprache, nämlich in Russisch. Slawische Sprachen haben zwei verschiedene Pluralbil­ dungen, die bei der Ausgabe berücksichtigt werden müssen. (Ge­ naugenommen wird hier der Genitiv Singular als zweite Plural­ bildung verwendet.).
Um dies hier in einem nicht in einer slawischen Sprache vor­ liegenden Text zu zeigen, werden die Währungsangaben, "Roubel/Roublei/Roublia", um die es hier geht, in russischer Sprache, aber ins Englische transliteriert, wiedergegeben. Der Rest, sowohl die Ansagen selbst, "Your call costs", wie auch Kommentare, ((Russian announcement)), und andere Programmele­ mente, <Costs<, werden in englischer Sprache dargestellt. Hier wird die Verwendung doppelter runder Klammern als weitere Art betrachtet, einen Kommentar einzufügen. Ein solcher Kommentar soll einfach überlesen werden, während bei einem Anführungszei­ chen "'" als Zeichen für einen Kommentar alles folgende nicht mehr beachtet werden soll.
Im Beispiel 10 in Fig. 2 sind beide Arten von Kommentaren zu sehen. Im Beispiel 9 wird hier unterstellt, daß mit dem Aufruf der Variablen <Costs< automatisch das Makro für die Auswahl der richtigen Währungseinheit mit aufgerufen wird, während dies im Beispiel 10 explizit durch den Makroaufruf <<SlavicParFixed|<Costs<; Roubel; Roublei; Roublia<< erfolgt. In diesem Bei­ spiel 10 sind auch ausführlichere Kommentare hinzugefügt, bei­ spielsweise ist die Definition des Makros als Kommentar beige­ fügt.
Nur wenn der Wert der Variablen <Costs< gleich "1" ist, wird als Währungseinheit die Singularform "Roubel" ausgegeben. En­ det, bei einem Wert ungleich "1", der Wert der Variablen <Costs< auf 1, 2, 3 oder 4, nicht jedoch auf 11, 12, 13 oder 14, so wird die Form "Roublia" verwendet, während in allen an­ deren Fällen die Form "Roublei" verwendet wird.
Die verschiedenen Ansagen werden natürlich nicht so abgespei­ chert, wie in den Fig. 1 und 2 dargestellt. Insbesondere dient die hier verwendete graphische Darstellung, unter anderem auch mit verschiedenen Schriften, zwar dem besseren Verständ­ nis, kann aber so nicht abgespeichert werden. Eine Sichtbarma­ chung in genau dieser Form ist aber mit einem entsprechend aus­ gebildeten Editor möglich. Die tatsächliche Speicherung erfolgt aber in Form von Tabellen.
So ist beispielsweise eine erste Tabelle für das Abspeichern von Ansagen als solchen vorgesehen. Diese Tabelle weist eine erste Spalte mit eindeutigen Kennungen, eine zweite Spalte mit den Bezeichnungen der jeweiligen Ansagen, eine dritte Spalte mit der jeweils verwendeten Sprache, letztlich ein Kommentar, und eine vierte Spalte mit den Definitionen der Ansagen auf. Weiter kann eine Spalte mit Kommentaren vorgesehen sein. Statt­ dessen kann aber auch eine weitere Tabelle vorgesehen sein, die nur Kommentare enthält und über die eindeutigen Kennungen mit Zeilen dieser Tabelle oder auch mit Zeilen anderer Tabellen verknüpft ist.
Eine zweite Tabelle enthält die "Block Segments", die Spalten für eindeutige Kennungen, für die Bezeichnungen, die "Block_References", und für die Definitionen dieser "Block_Segments" aufweist. Weitere Definitionen sind in weite­ ren Tabellen abgespeichert.
Abschließend soll noch kurz auf die mehr äußere Form der Rea­ lisierung eingegangen werden. Fig. 3 zeigt hierzu einen an sich bekannten PC, der durch geeignete Ausstattung als erfindungsge­ mäßes Sprachansagemodul mit einem erfindungsgemäßen Programm- Modul ausgestattet ist. Der in diesem Beispiel gezeigte Bild­ schirm als Ausgabemittel und die hier gezeigte Tastatur als Eingabemittel sind in der Grundausstattung nicht zwingend er­ forderlich. Das Sprachansagemodul ist dann Bestandteil eines sogenannten Servers, also eines Rechners, der nur im Verbund mit anderen Rechnern arbeitet und für diese bestimmte Aufgaben übernimmt.
Beispielsweise kann es ein Gebührenrechner des Betreibers ei­ nes Telekommunikationsnetzes sein, an den laufend Gebührenin­ formationen gesendet werden und der nicht nur für die monatli­ chen Gebührenabrechnungen verwendet werden soll, sondern nach Beendigung eines Gesprächs jeweils die angefallenen Kosten als Sprache ausgibt. Diese Kosten können aus dem Daten-Inhalt eines die Verbindungsdaten dieses Gesprächs enthaltenden Datensatzes ermittelt werden. Möglicherweise wird dann noch aus einem zwei­ ten Datensatz, der spezifische Angaben über den Anschluß ent­ hält, der diese Kosten verursacht hat, abgeleitet, in welcher Sprache die Ausgabe erfolgen soll. Beispiele hierfür sind die Beispiele 2, 3, 9 und 10 aus den Fig. 1 und 2.
Dieser "Server" kann aber auch ein Vermittlungsrechner sein, der in einem sogenannten Call Center die ankommenden Anrufe auf die einzelnen Bedienplätze verteilt. Dabei muß ein Zugriff von Seiten des Sprachansagemoduls auf die Datensätze der in der Warteschleife wartenden Anrufe möglich sein, um für jeden ein­ zelnen davon die aktuelle Position ermitteln und, wie im Bei­ spiel 7 in Fig. 2 gezeigt, als Sprache ausgeben zu können.
In beiden Fällen, wie auch in jedem anderen Fall, sind außer den angedeuteten Datenzugriffsmitteln noch Sprachausgabemittel erforderlich, mit denen die durch das Sprachansagemodul gebil­ deten Sprachansagen auch wirklich ausgegeben werden können. In irgendeiner an sich bekannten Art und Weise muß die Umsetzung der im Einzelfall zusammengestellten Sprachansage in gesproche­ ne Sprache und deren Ausgabe über einen geeigneten (analogen oder digitalen) Anschluß an ein Telekommunikationsnetz erfol­ gen.
Der Datensatz, der die oben bereits erwähnten spezifischen Angaben über einen Anschluß enthält, wird oft auch als "Benut­ zerprofil" bezeichnet. Es kann nun zugelassen sein, daß ein Be­ nutzer zumindest Teile dieses Datensatzes durch irgendeine Art der Ferneingabe selbst beeinflußt, und daß das Ergebnis dieser Ferneingabe anschließend als Sprache zur Kontrolle und Bestäti­ gung wieder ausgegeben wird. Beispiele hierzu sind die Beispie­ le 4, 5 und 6 der Fig. 1 und 2.
Die Beispiele 1 und 8 der Fig. 1 und 2 zeigen zwei mögli­ che Ansagen eines Vermittlungsrechners, für den Fall, daß unter der gewählten Rufnummer kein Teilnehmer über diesen Vermitt­ lungsrechner erreicht werden kann. Hier wird dann entweder, so­ fern bekannt, eine neue Teilnehmerrufnummer (Beispiel 1) ausge­ geben oder es wird angesagt, daß unter dieser Teilnehmerrufnum­ mer kein Eintrag vorliegt (Beispiel 8). Die Anfrage in der Teilnehmerdatenbank dieses Vermittlungsrechners enthält dann entweder einen Datensatz, der unter der bisherigen, jetzt ge­ wählten Rufnummer einen Verweis auf die neue Rufnummer enthält oder es kommt als Antwort auf den Datenzugriff des Daten­ zugriffsmittels als Sonderform eines Datensatzes eine Fehler­ meldung zurück, die besagt, daß kein Eintrag vorliegt.
Häufig werden solche Rechner, die mit erfindungsgemäßen Sprachansagemodulen ausgerüstet sein können, aber auch gleich­ zeitig zur Pflege zumindest eines Teils der Daten verwendet, die Grundlage für die Sprachansagen sind. In all diesen Fällen, beispielsweise in Hotels oder Krankenhäusern, ändern sich die Daten laufend, wozu zwingend auch Ein- und Ausgabemittel, wie in Fig. 3 auch dargestellt, erforderlich sind. Hier ändern sich auch häufig die organisatorischen Abläufe, was dann wie­ derum eine Anpassung der Sprachansagen erfordert. Gerade bei der vorliegenden Erfindung ist aber die Programmierung neuer oder die Abänderung bestehender Ansagen verhältnismäßig einfach und auch von wenig geschultem Personal durchführbar. Deshalb ist es für solche Fälle vorteilhaft, wenn das Sprachansagemodul auch mit geeigneten Editiermitteln ausgestattet ist. Hierfür können meist die in beinahe allen Rechnern ohnehin vorhandenen Editoren oder auch ein Schreibprogramm verwendet werden. In diesem Fall sollte der verwendete Rechner zusätzlich über Ein- und Ausgabemöglichkeiten (Mikrofon, Lautsprecher) für gespro­ chene Sprache verfügen, um Texte aufzusprechen und programmier­ te Ansagen zu testen.
Der Aufbau des erfindungsgemäßen Programm-Moduls zur Verwen­ dung in einem erfindungsgemäßen Sprachansagemodul zur Durchfüh­ rung des erfindungsgemäßen Verfahrens zur Ausgabe einer Sprach­ ansage ist an sich üblich. Es liegt im Rahmen üblicher Program­ miertätigkeit, ein Programm in Segmente (Subroutines, Proce­ dures) aufzuteilen, wobei einzelne Segmente mehr für die Steue­ rung des Ablaufs und andere für die Durchführung einzelner Tä­ tigkeiten bestimmt sind, dieses Programm mit Treibern zum Da­ tenzugriff und zur Sprachausgabe zu verbinden und mit den oben dargestellten erfinderischen Inhalten zu füllen.

Claims (4)

1. Verfahren zur Ausgabe einer Sprachansage, deren Inhalt vom Daten-Inhalt mindestens eines Datensatzes abhängt, da­ durch gekennzeichnet, daß mittels eines ersten Programm­ segments aufgrund des Daten-Inhalts ein Ansagetyp ausge­ wählt wird, daß ein zweites Programmsegment zur programm­ gesteuerten Ausgabe bereitgestellt wird, das für den aus­ gewählten Ansagetyp geeignet ist, daß die für das bereit­ gestellte zweite Programmsegment erforderlichen Parameter ermittelt werden, und daß die dem ausgewählten Ansagetyp unter Berücksichtigung der ermittelten Parameter entspre­ chende Sprachansage ausgegeben wird.
2. Sprachansagemodul zur Ausgabe einer Sprachansage, deren Inhalt vom Daten-Inhalt mindestens eines Datensatzes ab­ hängt, dadurch gekennzeichnet, daß das Sprachansagemodul eine Programmsteuerung aufweist, daß ein erstes Programm­ segment vorhanden ist, mittels dessen aufgrund des Daten- Inhalts ein Ansagetyp auswählbar ist, daß jedem Ansagetyp ein zweites Programmsegment aus einer Vielzahl zweiter Programmsegmente zugeordnet ist, daß Datenzugriffsmittel vorhanden sind, um die für ein ausgewähltes zweites Pro­ grammsegment erforderlichen Parameter aus dem mindestens einen Datensatz zu ermitteln, und daß Sprachausgabemittel vorhanden sind, um die dem ausgewählten Ansagetyp unter Berücksichtigung der ermittelten Parameter entsprechende Sprachansage auszugeben.
3. Programm-Modul zur Verwendung in einem Sprachansagemodul zur Ausgabe einer Sprachansage, deren Inhalt vom Daten- Inhalt mindestens eines Datensatzes abhängt, dadurch ge­ kennzeichnet, daß das Programm-Modul ein Programmsteue­ rungssegment, ein erstes Programmsegment und eine Vielzahl zweiter Programmsegmente aufweist, daß das Programmsteue­ rungssegment zur Steuerung des Zugriffs auf Datenzugriffs­ mittel und Sprachausgabemittel sowie zur Steuerung des Aufrufs des ersten Programmsegments und eines Programmseg­ ments aus der Vielzahl der zweiten Programmsegmente aus­ gestaltet ist, daß das erste Programmsegment derart aus­ gestaltet ist, daß damit ein Ansagetyp und ein diesem An­ sagetyp zugeordnetes zweites Programmsegment aus der Viel­ zahl zweiter Programmsegmente auswählbar ist, und daß je­ des der zweiten Programmsegmente aus der Vielzahl zweiter Programmsegmente derart ausgestaltet ist, daß es unter Zu­ hilfenahme der erforderlichen Parameter, die mittels des Programmsteuerungssegments und der Datenzugriffsmittel aus dem mindestens einen Datensatz ermittelt werden, eine ak­ tuelle Sprachansage formt, und daß es mittels des Pro­ grammsteuerungssegments und der Sprachausgabemittel diese Sprachansage zur Ausgabe bringt.
4. Sprachansagemodul nach Anspruch 2, dadurch gekennzeich­ net, daß Editiermittel vorhanden sind, mittels derer be­ stehende Ansagetypen mit zugehörigen zweiten Programmseg­ menten verändert oder gelöscht oder neue Ansagetypen mit zugehörigen zweiten Programmsegmenten erzeugt werden kön­ nen, und daß Ein- und Ausgabemittel vorhanden sind, über die mit den Editiermitteln kommuniziert werden kann.
DE10029904A 2000-06-17 2000-06-17 Verfahren und Sprachansagemodul zur Ausgabe einer Sprachansage sowie Programm-Modul dafür Withdrawn DE10029904A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE10029904A DE10029904A1 (de) 2000-06-17 2000-06-17 Verfahren und Sprachansagemodul zur Ausgabe einer Sprachansage sowie Programm-Modul dafür
EP01440138A EP1164575A3 (de) 2000-06-17 2001-05-18 Ausgabe einer Sprachansage
US09/880,753 US20020026317A1 (en) 2000-06-17 2001-06-15 Process and spoken announcement module for outputting a spoken announcement and a program module therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10029904A DE10029904A1 (de) 2000-06-17 2000-06-17 Verfahren und Sprachansagemodul zur Ausgabe einer Sprachansage sowie Programm-Modul dafür

Publications (1)

Publication Number Publication Date
DE10029904A1 true DE10029904A1 (de) 2001-12-20

Family

ID=7646104

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10029904A Withdrawn DE10029904A1 (de) 2000-06-17 2000-06-17 Verfahren und Sprachansagemodul zur Ausgabe einer Sprachansage sowie Programm-Modul dafür

Country Status (3)

Country Link
US (1) US20020026317A1 (de)
EP (1) EP1164575A3 (de)
DE (1) DE10029904A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2836260B1 (fr) * 2002-02-21 2005-04-08 Sanef Sa Procede de diffusion de messages annoncant au moins un evenement
US20040215461A1 (en) * 2003-04-24 2004-10-28 Visteon Global Technologies, Inc. Text-to-speech system for generating information announcements
DE102004013855A1 (de) * 2004-03-16 2005-10-13 Deutsche Telekom Ag Verfahren und Vorrichtung zur kostengünstigen Umleitung von Anrufen
US7742833B1 (en) 2006-09-28 2010-06-22 Rockwell Automation Technologies, Inc. Auto discovery of embedded historians in network
US8181157B2 (en) * 2006-09-29 2012-05-15 Rockwell Automation Technologies, Inc. Custom language support for project documentation and editing
US7930261B2 (en) * 2007-09-26 2011-04-19 Rockwell Automation Technologies, Inc. Historians embedded in industrial units
US20090089671A1 (en) * 2007-09-28 2009-04-02 Rockwell Automation Technologies, Inc. Programmable controller programming with embedded macro capability

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69327446T2 (de) * 1992-11-18 2000-05-11 Canon Information Syst Inc Verfahren und Gerät zur Gewinnung von Text aus einer strukturierten Datei und zu dessen Umsetzung in Sprache
DE69417279T2 (de) * 1993-02-10 1999-10-14 Ibm Verfahren und Anordnung zum automatischen Aktualisieren von Telephonbeantwortervorrichtungen
US5572625A (en) * 1993-10-22 1996-11-05 Cornell Research Foundation, Inc. Method for generating audio renderings of digitized works having highly technical content
US5493606A (en) * 1994-05-31 1996-02-20 Unisys Corporation Multi-lingual prompt management system for a network applications platform
GB9424887D0 (en) * 1994-12-09 1995-02-08 Univ Oxford Brookes Computer apparatus with dialogue-based input system
US5721827A (en) * 1996-10-02 1998-02-24 James Logan System for electrically distributing personalized information
AU2655399A (en) * 1998-02-02 1999-09-06 Pulsepoint Communications Dynamically loadable phrase book libraries for spoken language grammars in an interactive system
AU2789499A (en) * 1998-02-25 1999-09-15 Scansoft, Inc. Generic run-time engine for interfacing between applications and speech engines
US6144938A (en) * 1998-05-01 2000-11-07 Sun Microsystems, Inc. Voice user interface with personality

Also Published As

Publication number Publication date
EP1164575A3 (de) 2004-02-11
US20020026317A1 (en) 2002-02-28
EP1164575A2 (de) 2001-12-19

Similar Documents

Publication Publication Date Title
DE3317325A1 (de) Durch stimm-eingabe gesteuerter computer
DE10220521B4 (de) Verfahren und System zur Verarbeitung von Sprachdaten und Klassifizierung von Gesprächen
DE69532883T2 (de) Mehrsprachige betriebs- und wartungsschnittstelle für eine fernmeldevermittlung
DE102004036976A1 (de) Verfahren zur Generierung von Internetseiten, zugehöriges Computerprogramm und Computersystem
EP1035707A2 (de) Verfahren, Erzeugungsmodul, Server, Steuermodul und Speichermittel zum Erstellen von Validierungsregeln
DE10029904A1 (de) Verfahren und Sprachansagemodul zur Ausgabe einer Sprachansage sowie Programm-Modul dafür
EP1005215B1 (de) Verfahren und Vorrichtung zum Editieren von Konfigurationsdaten für Telekommunikationssysteme
DE10220522B4 (de) Verfahren und System zur Verarbeitung von Sprachdaten mittels Spracherkennung und Frequenzanalyse
WO1996013782A1 (de) Computergestützte umwandlung von tabellen
WO2012017056A1 (de) Verfahren und vorrichtung zur automatischen verarbeitung von daten in einem zellen-format
DE60126948T2 (de) Interaktive dialoge
WO2009012802A1 (de) System und verfahren zur steuerung der generierung und verteilung von publikationen
EP1505399A2 (de) Verfahren zum Erzeugen von Testdaten zum Austesten der Funktionsfähigkeit einer datenverarbeitenden Schaltung
DE10127852A1 (de) Verfahren zur Erkennung von Sprachinformationen
DE102004059045B4 (de) Verfahren zur Kommunikation zwischen einem Management Information System und einem ausführenden System und Kommunikationsmodul
EP1240775A2 (de) Kommunikationssystem und verfahren zum bereitstellen eines internet-zugangs über ein telefon
DE60014718T2 (de) Verfahren zum senden einer selektion auf einer webseite und dieser webseite zu einem anderen benutzer durch einen server
DE10220518B4 (de) Verfahren und System zur Verarbeitung und Speicherung von Sprachinformation
EP0740257B1 (de) Verfahren zum Konvertieren von betriebstechnischen Informationen in einer programmgesteuerten Kommunikationseinrichtung
DE10220519A1 (de) Verfahren und System zur Verarbeitung von Sprachinformation
DE19946580A1 (de) Automatisches Informations- und Bestellsystem
DE19949736A1 (de) Verfahren zum Auffinden eines Datensatzes
DE19714345A1 (de) Simulation von Maus- und/oder Tastenoperation bei einem Computersystem
WO2003039122A1 (de) Verfahren und system zum dynamischen generieren von ansageinhalten
EP1326174A2 (de) Verfahren und System zum Erzeugen einer produktbezogenen Darstellung

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee