-
Diese
Erfindung betrifft ein Verfahren zum Ausgeben von Sprache, einen
Datenträger,
der Sprachdaten umfasst, und eine Anwendungsvorrichtung gemäß dem Oberbegriff
der unabhängigen
Ansprüche.
-
Beim
Kommunizieren mit einem Benutzer verwenden verschiedene Anwendungen
häufiger Sprachausgabe.
Sprachausgabe wird insbesondere verwendet, wenn die Aufmerksamkeit
eines Benutzers, insbesondere die visuelle Aufmerksamkeit, nicht
durch ein optisches Interface gestört werden soll. Ein typisches
Beispiel für
dieses ist ein Navigationssystem für Automobile, welches den Fahrer
zu einem vorbestimmten Ziel lenkt. Beim Fahren sollte der Fahrer
aufmerksam die Verkehrssituation um ihn herum betrachten, und somit
ist ein visuelles Interface eines Navigationssystems für Automobile
für den
Benutzer des Systems, der gleichzeitig der Fahrer des Automobils
ist, unvorteilhaft. Somit ist Sprachausgabe als eine akustische
Schnittstelle erwünscht.
-
Ein
herkömmliches
Verfahren, Sprachausgabe als eine Schnittstelle zwischen einer Anwendung und
einem Benutzer bereitzustellen, kann mit Bezug auf 7 erklärt werden.
Eine Anwendung führt
ihre Hauptaufgabe aus und kommt an einen Punkt, an dem eine gewisse
Ausgabe an einen Benutzer erwünscht
ist. Beispielsweise kann ein Navigationssystem für Automobile während einer
Inbetriebnahme zu dem Ergebnis kommen, dass die benötigte Daten-CD
fehlt, und somit möchte
es eine Nachricht ausgeben, dass die Daten-CD, die die Navigationsdaten
umfasst, eingelegt werden sollte. Bei modernen Systemen für Sprachausgabe
wird eine Liste von Sprachsegmenten bereitgestellt (welche man sich als
Klangdateien vorstellen kann), welche flexibel zusammengesetzt werden
können,
um verschiedene Nachrichten zu bilden. Diese Sprachsegmente können größer oder
kleiner sein, abhängig
von den Bedürfnissen,
die durch Kriterien wie beispielsweise Datenmenge, Software-Komplexität, Sprachtreiberkomplexität oder ähnliche
bestimmt werden. 7 zeigt eine Tabelle mit einigen
Sprachsegmenten in der rechten Spalte. Das Navigationssystem würde eine
Folge von Segmentbezeichnern gemäß einem vorbestimmten
Wissen ausgeben, und von der Tabelle in 7 würden die
entsprechenden Sprachsegmente genommen werden und zu der erwünschten Sprachausgabe
zusammengesetzt werden. Bei dem oben beschriebenen Beispiel könnte das
Navigationssystem oder dessen Sprachtreiber die Bezeichnerfolge
INST NAVCD zusammensetzen, dieses führt zu den zwei Sprachsegmenten „Please
insert" und „navigation
CD", und ergibt
somit zusammengesetzt den Satz „Please insert navigation
CD". In einer anderen
Situation könnte
das Navigationssystem zu der Schlussfolgerung gelangen, dass der
Fahrer an der nächsten
Seitenstraße
links abbiegen muss, um sein Ziel zu erreichen. Das System oder
dessen Sprachtreiber könnte
beispielsweise die Designatorfolge „PLSE TURN LFT AT NEXT SIDS" ausgeben und dieses
zusammen mit den Sprachsegmenten hinter den entsprechenden Segmentbezeichnern würde zu dem
Satz „Please
turn left at the next side street" führen.
Die in der Tabelle in 7 symbolisierten Daten werden
gewöhnlich
zusammen mit dem Anwendungsprogramm und/oder zusammen mit den Navigationsdaten
bereitgestellt.
-
Das
Dokument
US 5,799,264 zeigt
ein Verfahren zum Ausgeben von Sprache an einen Benutzer eines Navigationssystems
für Automobile.
Zu diesem Zweck umfasst die Navigationsvorrichtung abnehmbare Stimmeninformationsspeichermittel
zum Speichern mehrerer Stimmnachrichtenmusterkennzahlen, die jeweils
mehreren Stimmnachrichtenbegriffen entsprechen, die einem Benutzer
einer Anwendung mitgeteilt werden sollen, und zum Speichern von
Sprachwellenformdaten, die jeweils den mehreren Sprachnachrichtenmusterkennzahlen
entsprechen.
-
Es
gibt einen zunehmenden Bedarf, Sprachdaten, wie in der Tabelle in 7 symbolisiert,
getrennt von der Hauptanwendung bereitzustellen, insbesondere von
der ausführbaren
Software oder anderen (möglicherweise
teuren) Daten. Der Bedarf für diese
getrennte Bereitstellung kann entweder technischer Natur sein (beispielsweise
Verbesserung der Klangqualität),
oder es können
nicht-technische Gründe
hinter diesem Bedarf stehen. Beispielsweise könnte ein Benutzer seine Sprachausgabe
mit der Stimme eines bestimmten berühmten Schauspielers erhalten
wollen, und er würde
einiges Geld bezahlen, um die Sprachdaten, die durch die Stimme
erzeugt wurden, zu erhalten, aber er möchte nicht die gesamte Anwendung
noch ein Mal kaufen. Somit könnten Sprachdaten
getrennt vertrieben werden. Wenn allerdings Sprachdaten getrennt
von Hauptanwendungsdaten, insbesondere getrennt von dem ausführbaren Programm
der Hauptanwendung, bereitgestellt werden, könnten Probleme entstehen in
Bezug auf die Kompatibilität
in Situationen, wenn sich die Hauptanwendungssoftware derart ändert, dass
sie mehr oder verschiedene Sprachdaten benötigt.
-
Es
ist die Aufgabe der Erfindung, ein Verfahren zum Ausgeben von Sprache,
einen Datenträger mit
Sprachdaten und eine Anwendungsvorrichtung bereitzustellen, die
fähig ist,
zuverlässig
die Verwendung von geeigneten Sprachdaten für eine Anwendung zu steuern.
-
Diese
Aufgabe wird gemäß den Merkmalen der
unabhängigen
Ansprüche
gelöst.
Abhängige
Ansprüche
sind auf bevorzugte Ausführungsformen
der Erfindung gerichtet.
-
Bei
einem Verfahren zum Ausgeben von Sprache an einen Benutzer einer
Anwendung erzeugt die Anwendung, unter Bezugnahme auf Sprachdaten,
Sprachausgabe betreffende Daten gemäß den Anforderungen der Anwendung.
Insbesondere erzeugt sie einen Satz von einem oder mehreren Segmentbezeichnern,
wobei die Segmentbezeichner Sprachsegmente bezeichnen, und sie ordnet
dem Satz einen benötigte-Sprachdaten-Identifikator
(RSDI) zu. Sprachdaten werden bereitgestellt, welche Sprachsegmente,
die entsprechenden Segmentbezeichnern zugeordnet sind, und einen
tatsächliche-Sprachdaten-Identifikator
(ASDI) aufweisen. Die beiden Identifikatoren (RSDI und ASDI) werden
miteinander verglichen, und gemäß dem Ergebnis
des Vergleichs wird Sprache zusammengesetzt.
-
Der
Begriff „Sprachdaten" im Sinne dieser Beschreibung
bedeutet eine Vielzahl von Sprachsegmenten, die entsprechenden Segmentbezeichnern zugeordnet
sind, und diese Anordnung von zugeordneten Sprachsegmenten kommt
mit einem tatsächliche-Sprachdaten-Identifikator
(ASDI) zusammen, welcher – grob
gesagt – die
Version der Sprachdaten identifiziert. Die Anzahl von Sprachsegmenten
in den Sprachdaten genügt,
um die gesamten Sprachausgabe-Bedürfnisse der Anwendung abzudecken,
die die Sprachausgabe erzeugt. Somit kann man sich Sprachdaten im
Sinne dieser Anwendung als einen Bausatz von Sprachsegmenten vorstellen,
wobei der Bausatz voll genug ist, um alle benötigten Sprachausgaben aus diesem
herstellen zu können,
indem seine individuellen Segmente geeignet zusammengefügt werden.
-
Ein
Sprachsegment im Sinne dieser Anwendung kann ein Teil von Sprache
sein, welches als eine nicht-teilbare Einheit behandelt wird, wenn Sprache
zusammengesetzt wird.
-
Insbesondere
können
verschiedene Sprachdaten bereitgestellt werden, nämlich Standardsprachdaten
(beispielsweise eine männliche
Stimme, eine weibliche Stimme), und optionale Sprachdaten (beispielsweise
die Sprache, die von der Stimme eines berühmten Schauspielers bereitgestellt
wird). Wenn der Vergleich der Identifikatoren ein vorbestimmtes
Ergebnis ergibt, werden die optionalen Sprachdaten verwendet, und
ansonsten werden die Standardsprachdaten verwendet.
-
Vorzugsweise
kommen die Standardsprachdaten zusammen mit der Anwendungssoftware
und den Anwendungsdaten, und somit sollten sie 100 %ig zu den Bedürfnissen
der Anwendung passen. Im Gegensatz dazu können die optionalen Sprachdaten getrennt
von dem ausführbaren
Programm der Hauptanwendung kommen, und somit kann es sein, dass
es Versionsdiskrepanzen gibt. Durch Bezug auf den aktuellen Sprachdatenidentifikator
ist es möglich zu
bestimmen, ob die optionalen Sprachdaten zu den Bedürfnissen
der Anwendung passen. Wenn ja, können
die optionalen Sprachdaten verwendet werden, und wenn nein, werden
die Standardsprachdaten verwendet.
-
Somit
umfassen die optionalen Sprachdaten den tatsächliche-Sprachdaten-Identifikator ASDI, wohingegen
die Standardsprachdaten nicht unbedingt solch einen Identifikator
benötigen,
solange es sichergestellt ist, dass sie ohnehin zu den Bedürfnissen
der Anwendung passen.
-
Die
oben genannte Zuordnung des benötigte-Sprachdaten-Identifikators zu
einer Folge von einem oder mehreren Segmentbezeichnern kann im Allgemeinen
derart erfolgen, dass durch eine Art von Bestimmung sichergestellt
wird, dass Informationen über
die benötigten
Sprachdaten für
eine Folge von Segmentbezeichnern bereitgestellt werden. Dies kann
er reicht werden, indem bestimmte Nummern oder Zeichen oder Daten
zu der Folge von Segmentbezeichnern fest hinzugefügt werden,
aber es kann auch sehr viel loser erfolgen, beispielsweise durch die
priori – Kenntnis
der Software oder des Sprachentreibers über die Softwareversion, von
welcher die Folge von Segmentbezeichnern erzeugt wurde. In diesem
Fall ist es nicht notwendig, den Identifikator an die Folge von
Segmentbezeichnern „physikalisch anzuhängen".
-
Da
die Softwareentwicklung zu wiederholten neuen Versionen von Software
führen
kann besteht ein Verlangen nach Kompatibilität zwischen Versionen. Dies
bedeutet, dass mindestens für
eine bestimmte Zeit Sprachdaten derart entwickelt werden, dass weiterentwickelte
Sprachdaten sich von früheren
Sprachdaten darin unterscheiden, dass Sprachsegmente zu den späteren Sprachdaten
hinzugefügt wurden,
aber keine Löschungen
stattgefunden haben. Dies führt
zu einer Abwärtskompatibilität von Sprachdaten
in dem Sinn, dass später
zusammengestellte Sprachdaten mit früher vertriebenen Sprachdaten
(und der dazu passenden Software) kompatibel sind. Allerdings, mit
fortschreitender Softwareentwicklung, kann das Bedürfnis entstehen,
Sprachausgabe komplett zu restrukturieren. Dies kann beispielsweise
der Fall sein, wenn die Datenmenge für eine wachsende Zahl von großen Sprachsegmenten größer und
größer wird.
Eine Abhilfe dafür
kann es sein, eine größere Anzahl
von kleinen Sprachsegmenten zu verwenden, wobei dies die allgemeine Folge
hat, dass eine geringere Datenmenge benötigt wird, aber auch die Folge,
dass bei einem solchen Wechsel die somit zusammengestellten Sprachdaten nicht
länger
mit früheren
Sprachdaten kompatibel sind. Somit kann der ASDI und die Struktur
um ihn herum derart beschaffen sein, dass er Aufschluss über sowohl
Kompatibilität
als auch Nichtkompatibili tät
von Sprachdaten zu verschiedenen Entwicklungsreihen von Sprachdaten
und Software gibt.
-
Ein
Datenträger,
der Sprachdaten umfasst, weist einen ersten Speicherbereich, auf
dem eine Vielzahl von Sprachsegmenten gespeichert ist, denen Segmentbezeichner
entsprechend zugeordnet sind, und einen zweiten Speicherbereich
auf, auf dem ein tatsächliche-Sprachdaten-Identifikator
gespeichert ist, der Informationen über die Beziehung der Sprachdaten
zu früheren
und/oder späteren und/oder
möglichen
anderen Sprachdaten und zu Software, die die Sprachdaten verwendet,
gibt.
-
Eine
Anwendungsvorrichtung, welche Sprachausgabe an einen Benutzer (insbesondere
als eine Schnittstelle zu dem Benutzer) benötigt, umfasst eine Anwendung,
welche Sprachausgabe betreffende Daten erzeugt, unter Bezugnahme
auf Sprachdaten, gemäß den Anforderungen
der Anwendung. Sie erzeugt eine Folge von einem oder mehreren Sprachsegmentbezeichnern,
wobei die Folge einem benötigte-Sprachdaten-Identifikator
zugeordnet ist. Des Weiteren weist die Vorrichtung Mittel zum Vergleichen
des benötigte-Sprachdaten-Identifikators mit
einem tatsächliche-Sprachdaten-Identifikator,
der von Sprachdaten erhalten wurde, auf. Und Mittel werden bereitgestellt,
zum Zusammensetzen von Sprache unter Bezugnahme auf die Folge von
Segmentbezeichnern und die Sprachdaten gemäß dem Ergebnis des Vergleichs.
-
Insbesondere
wenn die Mittel zum Vergleichen ein vorbestimmtes Ergebnis ergeben,
dann werden die optionalen Sprachdaten, die den tatsächliche-Sprachdaten-Identifikator
aufweisen, zum Zusammensetzen von Sprache verwendet, und andernfalls
werden Standardsprachdaten verwendet.
-
Die
Anwendung, die auf der Anwendungsvorrichtung ausgeführt wird,
kann vorzugsweise Navigationssoftware für Automobile sein, bei welcher Nachrichten
von dem System an einen Benutzer, insbesondere den Fahrer des Automobils,
akustisch mittels synthetisierter Sprache gemäß den Anforderungen und Ergebnissen
des Navigationsanwendungssystems für Automobile ausgegeben wird.
Die synthetisierten Nachrichten können Eingabeaufforderungen
oder Informationsausgaben sein. Parallel zur Sprachausgabe kann
eine visuelle Ausgabe bereitgestellt werden, beispielsweise durch
lesbare Textnachrichten, Kartenanzeigen oder ähnliches.
-
Im
folgenden werden bevorzugte Ausführungsformen
der Erfindung mit Bezug auf die Figuren beschrieben, in welchen
-
1 die
Ausgestaltung zeigt, in welcher die Erfindung anwendbar ist,
-
2 eine
bevorzugte Struktur von erfindungsgemäßen Sprachdaten zeigt,
-
3 ein
Ausgabeformat einer Anwendung zeigt, wie erfindungsgemäß in Betracht
kommend,
-
4 die
Entwicklung von Sprachdaten mit der Zeit zeigt,
-
5 die
Struktur einer Anwendungsvorrichtung zeigt,
-
6 ein
Flussdiagram eines erfindungsgemäßen Verfahrens
zeigt, und
-
7 Sprachdaten
nach dem Stand der Technik zeigt.
-
1 zeigt
die Struktur, in welcher die vorliegende Erfindung verwendet werden
kann. Bezugszeichen 1 deutet ein Paket an, welches als
eine Einheit, beispielsweise eine Sammlung von Dateien auf einem
Datenträger,
kommen kann. Es kann einen Softwarebereich 3 (ausführbare Programme)
umfassen, welcher wiederum eine Hauptanwendung 4 zum Durchführen der
Hauptauf gaben der Anwendung (beispielsweise Finden von Positionen,
Finden von Routen und ähnliche),
und einen Sprachentreiber 5 zum Erzeugen von Sprachausgabe
umfassen kann. Neben der Software (ausführbar) können Daten 6-8 in
einem Anwendungssystem für
Automobile bereitgestellt werden, beispielsweise Kartendaten 8 und andere
Daten 7. Des Weiteren können
Standardsprachdaten 6 bereitgestellt werden. Diese Standardsprachdaten
sind vollständig
an die Bedürfnisse der
Hauptanwendung angepasst, und somit ist das Paket 1 an
sich bereit, verwendet zu werden. Ohne weitere Maßnahmen
würde der
Sprachtreiber 5 die Standardsprachdaten 6 zum
Erzeugen von Sprachausgabe verwenden.
-
In
heutigen Navigationsanwendungen für Automobile weisen Sprachdaten
ein vergleichsweise kleines Datenvolumen (gewöhnlich weniger als 1 MB) auf,
welches wesentlich geringer ist als das Volumen von Kartendaten 8.
Angesichts der Datenmenge von Sprachdaten 6 kann es auch
mehr als ein Satz von Standardsprachdaten geben. Somit können „parallele" Sätze von
Standardsprachdaten bereitgestellt werden, die durch den Benutzer
ausgewählt werden
können.
Beispielsweise können
Sprachdaten, die Sprachsegmente von einer weiblichen Stimme aufweisen,
parallel zu Sprachdaten, die Sprachsegmente von einer männlichen
Stimme aufweisen, bereitgestellt werden. Der Fahrer kann eine der Sprachdaten
auswählen.
Man beachte in diesem Zusammenhang, dass der Sprachinhalt in beiden Sprachdaten
der gleiche ist. Allerdings kann die Stimme verschieden sein, oder
Umgebungsklänge
können
bereitgestellt oder unterdrückt
werden oder ähnliches.
-
Optionale
Sprachdaten 2 können
getrennt von Standardsprachdaten 6 bereitgestellt werden. Beispielsweise
können
sie eine Datendatei sein, die durch das Internet oder kabellos herun tergeladen wurde,
oder die auf einer separaten Diskette oder CD gekauft wurde. Dies
hat die Folge, dass ihre Struktur und ihr Inhalt nicht unbedingt
vollständig
mit den Bedürfnissen
der Hauptanwendung übereinstimmen, unter
Berücksichtigung
dass die Hauptanwendung weiterentwickelt wird, wobei neue Versionen
mit neuen Softwareoptionen und demgemäß neuen Sprachausgabeanforderungen
regelmäßig herauskommen.
-
Um
eine Überprüfung zu
ermöglichen,
ob die optionalen Sprachdaten 2 zu den Bedürfnissen
der Hauptanwendung 4 passen, sind die optionalen Sprachdaten 2 mit
einem tatsächliche-Sprachdaten-Identifikator
versehen. Unter Bezugnahme auf diesen Identifikator wird es möglich werden,
zu überprüfen, ob
Menge und/oder Qualität
der optionalen Sprachdaten 2 zu den Bedürfnissen der Hauptanwendung 4 passen.
Wenn sie passen, werden sie verwendet, und wenn sie nicht passen,
werden die Standardsprachdaten 6 verwendet.
-
2 zeigt
eine mögliche
Struktur von erfindungsgemäßen Sprachdaten.
Es wird eine Art von Tabelle 10 gezeigt, welche die Datenstruktur
der optionalen Sprachdaten 2 symbolisiert. Die Tabelle weist
einen Identifikatorabschnitt 14 und Spracheinträge 15 auf.
Bei einer bevorzugten Ausführungsform können sie
auch Zusammensetzungslisteneinträge 16 (werden
später
erklärt)
umfassen. Jeder Spracheintrag 15 umfasst mindestens ein
bestimmtes Sprachsegment 18-1, 18-2, ..., 18-n,
siehe Spalte 18. In 2 sind diese
Segmente durch geschriebene Worte symbolisiert. In Wirklichkeit
können
diese Einträge
Klangdateien oder Zeiger (Adresszeiger) auf betreffende Klangdateien
sein, welche zum Zusammensetzen von Sprache verwendet werden können. Beispielsweise
kann in einer Tabelle, die gemäß 2 strukturiert
ist, statt dem Eintrag „highway" ein Zeiger auf eine
Klangdatei gefunden werden, wobei die Klangdatei das ausgesprochene
Wort „highway" reproduziert, wenn
sie durch ein geeignetes Programm abgespielt wird.
-
Die
Sprachsegmente 18-1, 18-2, ..., 18-n werden
jeweils Segmentbezeichnern 17-n zugeordnet. Diese sind
in Spalte 17 gezeigt. Die Segmentidentifikatoren sind diese,
die der Hauptanwendung oder ihrem Sprachentreiber bekannt sind,
und dort zum Zusammensetzen von Sprache verwendet werden. Sie werden
dann verwendet, um auf die betreffenden Sprachsegmente zuzugreifen,
und somit die betreffenden Klangdateien letztlich zu finden, um Sprache,
die zum Ausgeben bereit ist, zusammenzusetzen. Die Segmentbezeichner 17-1, 17-2,
..., 17-n können
einer Art von „mnemotechnischen" Code ähneln, und
sie können
explizit in jedem Spracheintrag 15 gefunden werden. Stattdessen
können
allerdings auch Zahlen verwendet werden, oder die Zuordnung kann
derart erfolgen, dass der entsprechende Segmentbezeichner einfach
eine Adresse oder eine Adressverschiebung von einer Basisadresse
ist, so dass der Speicherort des entsprechenden Sprachsegments 18-n (Zeiger
auf eine Klangdatei, Klangdatei selbst) gefunden werden kann.
-
Das
normale Vorgehen zum Synthetisieren von Sprache ist es somit, eine
Folge von Segmentbezeichnern durch die Hauptanwendung 4 oder
ihren Sprachtreiber 5 auszugeben, auf die Sprachdaten 6, 2 wie
in 2 schematisch gezeigt mit den Segmentbezeichnern
zuzugreifen, letztlich die entsprechenden Klangdateien abzurufen
und sie in einer geeigneten Folge und in einem geeigneten Zeitablauf
an einen geeigneten Abspieler zu liefern. Somit wird Sprache letztlich
ausgegeben.
-
Die
Funktion und Struktur des Identifikatorabschnitts 14 in 2 wird
nun mit Bezug auf eine mögliche
Weiterentwicklung von Sprachdaten erklärt, wie es mittels eines Beispiels
in 4 gezeigt wird. 4 zeigt
vier ähnliche
Klangdaten, nämlich 40-43.
Es wird angenommen, dass sie in der Reihenfolge ihrer Nummerierung
zusammengesetzt wurden, mit angenommen jeweils einem halben Jahr
dazwischen. In diesem Zusammenhang sollte man beachten, dass neue
Sprachdaten gewöhnlich
nur von einer neuen Anwendungssoftware voll verwendet werden können. Um
Sprachdaten in ihrem vollen Umfang verwenden zu können, ist
es notwendig, dass die Anwendungssoftware à priori – Wissen über die Sprachdaten hat, insbesondere
die verfügbaren Elemente,
die der Anwendung durch ihre Segmentbezeichner bekannt sind. Nur
wenn dieses Wissen vorhanden ist können Klangdaten in ihrem vollen Umfang
verwendet werden.
-
Klangdaten 40 zeigen
als Beispiel einige Einträge
der Sprachdaten, wobei die entsprechenden Sprachsegmente zum Zusammensetzen
von Nachrichten benötigt
werden. Man beachte, dass nur einige wenige Einträge gezeigt
sind. In Wirklichkeit wird man viel mehr Einträge finden. Nach den Klangdaten 40 wurden
Klangdaten 41 herausgegeben. Es wird angenommen, dass eine
neue Funktionalität
zu der Hauptanwendungssoftware hinzugefügt wurde, nämlich Auffinden eines Verkehrstaus,
Neuberechnung der Reiseroute und Ausgeben einer entsprechenden Nachricht
an den Fahrer (beispielsweise „Because
of traffic jam your traveling route was recalculated and changed"). Um diese Nachricht
auszugeben wird das Wort „traffic
jam" benötigt und
demgemäß stellt
es einen neuen Eintrag in den Sprachdaten dar. Man beachte allerdings,
dass bei dem Übergang
von den Klangdaten 40 zu den Klangdaten 41 nur
Einträge hinzugefügt wurden.
Bestehende Einträge
blieben unverändert.
Dies hat die Folge, dass ältere
Software (beispielsweise Software, die Sprachdaten 40 verwendet)
auch fähig
sein wird, Sprachdaten 41 zu verwenden. Alle Einträge, die
von der Anwendungssoft ware hinter den Sprachdaten 40 verwendet
werden, können
nämlich
auch in Sprachdaten 41 gefunden werden. Dies bedeutet,
dass bei dem gezeigten Beispiel die Sprachdaten abwärts kompatibel
sind.
-
Noch
ein Mal, neue Sprachdaten 41 würden nur herausgegeben werden,
wenn neue Software verfügbar
ist. Neue Sprachdaten 41 können allerdings optionale Sprachdaten
in einem Sinne sein, dass sie nicht zusammen mit der passenden Software
geliefert werden. Aus der Sicht eines Benutzers würden somit
optionale Sprachdaten 41 einem Navigationssystem, beispielsweise
dem mit einer älteren Anwendungssoftware
(für welche
Sprachdaten 40 gefertigt wurden), präsentiert werden.
-
Dennoch
wird diese ältere
Software fähig sein,
Sprachdaten 41 vollständig
zu verwenden, weil alle Einträge
in Sprachdaten 40 auch in Sprachdaten 41 gefunden
werden können.
Allerdings kann die Situation auch umgekehrt sein: eine neue Software
(die hinter Sprachdaten 41) wurde herausgegeben, und der
Benutzer versucht, ältere
optionalen Sprachdaten 40 der Anwendungssoftware anzubieten.
Hier können
Probleme bestehen, weil die neuere Software das Wort „traffic
jam" ausgeben wollen
könnte, welches
in den älteren
optionalen Sprachdaten 40 nicht bekannt ist. Dann können die
optionalen Sprachdaten 40 nicht verwendet werden, und stattdessen
müssen
die Standardsprachdaten, die mit der neueren Software herausgegeben
wurden, verwendet werden.
-
An
diesem Punkt wird der Identifikatorabschnitt wichtig. Bei einer
bestimmten Ausführungsform
kann der Identifikatorabschnitt 14 einen Versionsidentifikator 44, 45 enthalten.
Wie in 4 gesehen werden kann erhöht sich der Versionsidentifikator
von Sprachdaten 40 zu Sprachdaten 41 von 1 auf 2.
Eine Softwareanwendung würde
dann den Versionsidentifikator 44, 45 in dem Identifikatorabschnitt 14 von
Sprachdaten 40, 41 überprüfen, und wenn der Versionsidentifikator
der Sprachdaten eine Version identifiziert, die jünger ist
als die von der betreffenden Software benötigte, können die optionalen Sprachdaten
verwendet werden. Anderenfalls würden
die Standardsprachdaten verwendet werden. Zum Beispiel würde die
Software, die zusammen mit den Sprachdaten 40 herausgegeben
wurde, auf eine Versionsidentifikatornummer von 1 oder höher prüfen, und
würde die
optionalen Sprachdaten nehmen, die einen solchen Versionsidentifikator
aufweisen. Genauso würde
die Software, die zusammen mit Sprachdaten 41 herausgegeben
wurde, auf Versionsidentifikatornummern von 2 oder höher prüfen, und
würde die
passenden optionalen Sprachdaten 2 nehmen, und würde anderenfalls
die Standardsprachdaten 6 nehmen. Verwenden des Versionsidentifikators
wie oben beschrieben impliziert die Voraussetzung, dass die Sprachdaten,
auf die zugegriffen wurde, kompatibel sein könnten.
-
Ein
anderer Änderungsmechanismus
in den Sprachdaten wird in dem Übergang
von Sprachdaten 40 (oder 41) zu Sprachdaten 42 gezeigt.
Hier wurden komplette strukturelle Änderungen ausgeführt, die insbesondere
die Folge haben, dass nicht alle Einträge der älteren Sprachdaten in den neuen
Sprachdaten gefunden werden können.
Man nehme beispielsweise an, dass in dem Übergang von der früheren Software
auf die neuere Software die Option eines Empfangens der Kartendaten
von einer DVD statt von einer CD hinzugefügt wurde. Sprachausgabe könnte dann
verfeinert werden, indem die frühere Aufforderungsnachricht „insert
CD" in den Sprachdaten 40 in
das Wort „insert" und die beiden Akronyme „CD" und „DVD" aufgeteilt wird,
wobei jedes von diesen durch individuelle Segmentbezeichner getrennt adressierbar
ist. Das System würde
dann die geeignete Nachricht zusammensetzen, abhängig davon, ob das System mit
einem CD-Laufwerk oder einem DVD-Laufwerk ausgestattet ist. Der Übergang
von Sprachdaten 40 zu 42 hat den Vorteil, dass
die Gesamtdatenmenge reduziert wird. Allerdings weist er den Nachteil
auf, dass die neuen Sprachdaten 42 nicht länger zu
den früheren
Sprachdaten 40 oder 41 kompatibel sind. Um dies
festzustellen, kann ein Stammidentifikator 46 in dem Identifikatorabschnitt der
Sprachdaten vorgesehen werden. In dem Übergang von Sprachdaten 40 oder 41 zu 42 wird
dieser Stammidentifikator von 2 zu 3 geändert (unter der Annahme, dass
ein früherer,
nicht gezeigter Stamm existiert). Wenn eine Anwendungssoftware auf Sprachdaten
zugreift, kann sie die Identität
des Stammidentifikators überprüfen. Nur
die Sprachdaten von einem identischen Stamm können verwendet werden. Andere
optionalen Sprachdaten können nicht
verwendet werden. Die Software, die zu Sprachdaten 40 passt,
würde den
Eintrag „INCD" in Sprachdaten 42 nicht
finden, und die Software, die zu Sprachdaten 42 passt,
würde den
Eintrag „DVD" in Sprachdaten 40 nicht
finden. Somit passen die Sprachdaten gegenseitig nicht, und eine
entsprechende Überprüfung des
Root-Identifikators
muss auf Identität
erfolgen. Die Software, die zu Sprachdaten 42 passt, überprüft den Stammidentifikator
auf Identität
mit der Nummer 2, und nimmt entsprechende optionale Sprachdaten
wenn sie einen solchen Stammidentifikator aufweisen. Ansonsten werden
die Standardsprachdaten verwendet.
-
Es
ist möglich,
Stammidentifikator 11, 12, 46, 47 und
Versionsidentifikator 13, 44, 45 zusammen
zu verwenden. Somit kann der Identifikatorabschnitt zwei Einträge aufweisen,
nämlich
einen Stammidentifikator und einen Versionsidentifikator. Der Versionsidentifikator
von optionalen Sprachdaten wird überprüft, ob er
identisch mit der benötigten
oder größer als
die benötigte
Version ist, und der Stammidentifikator wird über prüft, ob er derselbe ist wie
der benötigte.
Wenn beide Bedingungen erfüllt
werden, werden die optionalen Sprachdaten verwendet. Anderenfalls
werden die Standardsprachdaten verwendet. In einem allgemeineren
Sinn kann der tatsächliche-Sprachdaten-Identifikator 14 eine
Komponente umfassen, die es ermöglicht,
die Kompatibilität
von Sprachdaten in einer abwärts
kompatiblen Reihe von Sprachdaten zu ermitteln, und eine Komponente,
die nicht-kompatible Reihen von Sprachdaten ermittelt bzw. auffindet.
-
Sprachdaten 43 in 4 zeigen
eine Option, die auch in dem unteren Bereich von 2 gezeigt ist,
nämlich
die Verwendung von Zusammensetzungslisten. Es kann wünschenswert
sein, neuere Sprachdaten derart zu fertigen, dass sie auch mit Software
von älteren
Stämmen
verwendet werden können.
Beispielsweise kann es wünschenswert sein,
in Sprachdaten 43 die Fähigkeit
zu erhalten, die Nachricht hinter dem Segmentbezeichner INCD in Sprachdaten 40 (vgl. 31)
zu sagen. Sprachdaten 43 zeigen, wie dies erreicht werden
könnte.
Die Sprachdaten weisen auch einen Segmentbezeichner INCD auf, vgl.
Bezugszeichen 33. Allerdings weist er kein Sprachsegment
(eine möglicherweise
voluminöse Klangdatei)
dahinter auf. Vielmehr weist er eine Zusammensetzungsliste auf,
die aus anderen Segmentbezeichnern der Sprachdaten besteht. Sie
weist beispielsweise die Segmentbezeichner INS und CD auf, und diese
Segmentbezeichner weisen alle Einträge 32 und 34 in
den Sprachdaten 43 auf. Diese Zusammensetzungslisten benötigen nur
ein geringes Datenvolumen, und somit wird die Aufgabe, Datenmengen
gering zu halten, erfüllt.
Die Segmentbezeichner von Zusammensetzungslisten können alphabetisch
in die Sprachdaten eingeordnet werden, wie in 4 gezeigt,
oder sie können
getrennt bereitgestellt werden, wie als Einträge 16 in 2 gezeigt. Spalte 19 in 2 und
die rechten Spalten in Sprachdaten 42 und 43 von 4 zeigen
einen Unterscheider zwischen Sprachsegmenteinträgen („S") und Zusammensetzungslisteneinträgen („C"). Dieser kann bereitgestellt
werden, wenn es andernfalls nicht möglich ist, Zusammensetzungslisten 16 und
Spracheinträge 15 richtig
zu unterscheiden.
-
Der
Sprachtreiber 5 der Anwendungssoftware 3 muss
fähig sein,
Zusammensetzungslisten zu handhaben. Für Sprachsegmenteinträge würde der Sprachtreiber
beispielsweise die Adresse einer bestimmten Klangdatei erhalten,
wohingegen er von einer Zusammensetzungsliste zwei oder mehr andere Segmentbezeichner
erhalten würde,
welche wiederum verwendet werden müssten, um auf Sprachdaten zuzugreifen,
um die betreffenden Sprachsegmente von diesen abzurufen. Durch Verwenden
von Zusammensetzungslisten wird Kompatibilität zwischen Sprachdaten von
verschiedenen Stämmen
wiederhergestellt, und demgemäß kann der
Stammeintrag in dem Identifikatorabschnitt 14 die Einträge aller
dieser Stämme
aufweisen, zu welchen Kompatibilität gegeben ist. Kompatibilität ist gegeben,
wenn alle Einträge
der früheren
Sprachdaten 40 in den neueren Sprachdaten eines anderen
Stamms gefunden werden, entweder durch Identität von Einträgen, oder durch „Zuordnen" dieser mit Zusammensetzungslisten.
-
3 zeigt
das mögliche
Ausgabeformat eines Sprachtreibers, wenn eine Folge von Segmentbezeichnern
erzeugt wurde. Das Beispiel von 3 bezieht
sich auf die Tabelle in 2. Die in 3a gezeigte
Folge weist eine Folge von Segmentbezeichnern auf, die zu der Ausgabe „Please
turn left at next side street” führt. Es
wird weiterhin angenommen, dass diese Folge von einem Sprachtreiber
erzeugt wurde, der Sprachdaten von Stamm 3 benötigt, und dort mindestens Version
1. Somit ist diese Folge von Segmentbezeichnern ein benötigte- Sprachdaten-Identifikator „3, 1" zugeordnet, welcher
sagt, dass Sprachdaten von Stamm 3 und mindestens Version 1 benötigt werden.
Mit diesem benötigte-Sprachdaten-Identifikator
würde auf
die Tabelle in 2 zugegriffen, und es würde sich
zeigen, dass der Stammidentifikator in dem tatsächliche-Sprachdaten-Identifikator identisch
und der Versionsidentifikator höher ist,
so dass insgesamt die Tabelle von 2 verwendet
werden kann.
-
3B zeigt die Ausgabefolge einer angenommenen
früheren
Version. Sie ist größtenteils identisch
zu der ersteren Version. Allerdings wird angenommen, dass in vorherigen
Sprachdaten von Stamm 2 ein direkter Spracheintrag für „SDS" (nämlich „side street") vorhanden war,
welcher in der Version von 2 (Stamm
3) nicht länger
vorhanden ist. Allerdings weist die Tabelle von 2 eine
Zusammensetzungsliste für
den vorherigen direkten Spracheintrag SDS auf, und demgemäß ist die
Tabelle von 2 auch mit Stamm 2 – Ausgaben
kompatibel. Demgemäß weist
sie zwei Einträge „3, 2" in dem Stammidentifikator
des tatsächliche-Sprachdaten-Identifikators
auf. Wenn dann eine Folge wie in 3B gezeigt
verarbeitet werden soll wird die Stammnummer 2 des benötigte-Sprachdaten-Identifikators (von
einer älteren
Software kommend) mit allen Einträgen in dem Identifikatorabschnitt 14 verglichen,
und da der Stammidentifikator dort auch Stamm 2 erwähnt, kann
die Tabelle verwendet werden. Der Bezeichner SDS würde durch
Verwenden der Zusammensetzungsliste aus den Elementen SIDE und STRT
zusammengesetzt, wobei die zwei Bezeichner als Segmentbezeichner
in der Tabelle vorhanden sind.
-
5 zeigt
eine Anwendungsvorrichtung, in welche die Erfindung implementiert
werden kann. Die Gesamtvorrichtung 50 umfasst als eine
Option eine Anzeige 51, beispielsweise ein LCD-Bildschirm
oder ein Kathodenstrahl-Bildschirm. Darüber hinaus umfasst sie einen
Mikrocomputer 52 einer mehr oder weniger fortschrittlichen
Bauweise. Tasten und andere Eingabeelemente 55 können bereitgestellt
werden, wie auch ein Ausgabelautsprecher 53. Des Weiteren
kann ein Radioeingang (analog und möglicherweise auch für digitale
Daten) 56 bereitgestellt werden. 54 symbolisiert
einen Einschub für
einen Datenträger
wie beispielsweise eine CD oder eine DVD. Somit kann 5 eine
Automobil-Navigationsvorrichtung für ein Fahrzeug symbolisieren.
Die optische Ausgabe 51 kann zu einem gewissen Grad parallel zu
einem Lautsprecher 53 betrieben werden.
-
Mikrocomputer 52 umfasst
einen Speicher, darunter möglicherweise
auch einen permanenten Speicher, wie beispielsweise eine Festplatte,
auf welche externe Daten kopiert werden können, beispielsweise optionale
Sprachdaten 2. Die in 1 gezeigten
Elemente können
durch einen Einschub 54 oder (für geringere Datenmengen) durch
Antenne 56 eingegeben werden, und können auf einem permanenten
Speicher gespeichert werden. Der Mikrocomputer kann die benötigte Software
entweder von der CD/DVD oder von der Festplatte laden und Operationen
gemäß der Hauptanwendung,
und für
Sprachausgabe wie in dieser Anmeldung beschrieben ausführen.
-
6 zeigt
ein Flussdiagram eines Verfahrens zum Ausgeben von Sprache an einen
Benutzer einer Anwendung. Zuerst erzeugt die Anwendung eine Folge
von Sprachsegmentbezeichnern, die die erwünschte Sprachausgabe definiert,
beispielsweise wie in 3 gezeigt. Diese Folge ist einem
benötigte-Sprachdaten-Identifikator (RSDI)
zugeordnet. Diese Zuordnung kann mehr oder weniger explizit durch Anhängen von
entsprechenden Nummern oder Zeichen an die Kette von Bezeichnern
erfolgen. Die Zuordnung kann allerdings auch vergleichsweise lose erfolgen, indem
irgendwo in dem System Informationen über die benötigten Sprachdaten gespeichert sind,
und es bekannt ist, wo diese Informationen gefunden werden können (Schritt 61).
-
In
Schritt 62 wird auf verfügbare optionale Sprachdaten
zugegriffen, und ihr tatsächliche-Sprachdaten-Identifikator
(AS-DI) wird abgerufen
und mit dem RSDI verglichen. Wenn der Vergleich in Schritt 63 ein
vorbestimmtes Ergebnis ergibt, können
die optionalen Sprachdaten verwendet werden (Schritt 64)
und andernfalls können
die Standardsprachdaten verwendet werden (Schritt 65).
Das vorbestimmte Ergebnis für
ein Verwenden der optionalen Sprachdaten 2 kann sein, dass
- – der
Stammidentifikator in dem RSDI der Gleiche ist wie einer der Stammidentifikatoren
in dem ASDI, und/oder
- – der
Versionsidentifikator in dem ASDI gleich oder höher ist als der Versionsidentifikator
in dem RSDI.
-
Mindestens
die Verwendung der optionalen Sprachdaten 2 (Schritt 64)
kann die Verwendung von Zusammensetzungslisten beinhalten, wie oben
genannt. Dies kann auch auf Schritt 65 zutreffen. Standardsprachdaten
können,
aber müssen
nicht, einen RSDI aufweisen.
-
Der
oben genannte Bezug auf einen Vergleich von RSDI mit RSDI kann jedes
Mal gemacht werden, wenn Sprache synthetisiert werden soll. Allerdings
kann es auch ein für
allemal während
einer Art von Installationsvorgang von optionalen Sprachdaten 2 gemacht
werden. Dann würde
die Überprüfung von
RSDI und RSDI beispielsweise gemacht werden, wenn bestimmte optionale
Sprachdaten 2 auf eine Liste von verfügbaren Sprachdaten übernommen
werden. Wenn der Vergleich von RSDI und RSDI ein vorbestimmtes Ergebnis
ergibt, werden angebotene Sprachdaten für ein Liste von verfügbaren Sprachdaten 6 (männlich (Standard),
weiblich (Standard), John Wayne (optional), Rudolf Scharping (optional))
erlaubt, und andernfalls werden sie zurückgewiesen. Somit muss nach
der Überprüfung und
einem möglichen
positiven Ergebnis (das besagt, dass die angebotenen optionalen
Sprachdaten zusammen mit der verfügbaren Software verwendet werden
können)
nicht notwendigerweise ein unmittelbarer Schritt eines Synthetisierens
von Sprache erfolgen. Vielmehr können
die optionalen Sprachdaten in eine Liste von verfügbaren Sprachdaten übernommen
werden, und sie können
vielleicht an eine geeignete Speicherstelle kopiert werden. Umgekehrt
muss der RSDI nicht in Zusammenhang mit einer Folge von Segmentbezeichnern
geliefert werden, sondern kann unabhängig von diesen angegeben werden.
-
Die
Sprachdaten an sich und ein Datenträger, der diese Sprachdaten
trägt,
werden auch als ein Teil dieser Erfindung betrachtet. Die Sprachdaten
bestehen aus Sprachsegmenten, die entsprechenden Segmentbezeichnern
zugeordnet sind. Die Segmentbezeichner können explizit durch Ketten
von Zeichen bereitgestellt werden, oder sie können implizit in Form von Speicherstellen
bereitgestellt werden, welche der Software bekannt sind, die auf
die Sprachdaten zugreift. Die Elemente, die als Sprachsegmente gezeigt
sind, können
direkte Klangdateien an den entsprechenden Speicherstellen sein,
oder sie können
Zeiger zu bestimmten Klangdateien sein, wobei die Klangdateien anderswo
gespeichert sind. Somit können
Klangdaten, wie in dieser Erfindung beschrieben, eine Datenstruktur
sein, die aus mehreren Dateien besteht. Sie können sogar kleine ausführbare Programme
zum richtigen Installieren und Speichern der benötigten Komponenten umfassen.
Zusätzlich
umfassen die Sprachdaten einen tatsächliche-Sprachdaten- Identifikator, der
wie oben beschrieben strukturiert ist. Der Datenträger weist
eine Speicherstelle auf, die den Identifikator speichert.