-
Die
vorliegende Erfindung bezieht sich auf ein Verfahren zum Betrieb
eines Unterbrechungsdialogsystems zur parallelen Nutzung durch eine
Vielzahl von Benutzern, d. h. zur Nutzung im so genanntem „Multiuser-Betrieb". Darüber hinaus
bezieht sich die Erfindung auf ein entsprechendes Unterbrechungsdialogsystem.
Als Unterbrechungsdialogsysteme sind Sprachdialogsysteme zu verstehen,
die es einem Benutzer möglich
machen, eine laufende Systemausgabe zu unterbrechen.
-
Sprachdialogsysteme,
die mit einem Benutzer kommunizieren und dabei Spracherkennungs- bzw.
Sprachausgabevorrichtungen nutzen, sind seit langer Zeit bekannt.
Ein Beispiel hierfür
sind automatische Anrufbeantworter und Auskunftssysteme, wie sie
zwischenzeitlich insbesondere von mehreren größeren Firmen und Büros verwendet
werden, um einem Anrufer die gewünschten
Informationen auf möglichst
schnelle und bequeme Weise zu liefern oder ihn mit einer Stelle
zu verbinden, die für
die speziellen Wünsche
des Anrufers zuständig
ist. Weitere Beispiele hierfür
sind automatische Verzeichnisauskunftssysteme, automatische Fahrplanauskunftssysteme,
Informationsdienste mit allgemeinen Informationen zu Ereignissen
für eine
bestimmte Region, zum Beispiel Kino- oder Theaterprogrammen, oder
auch Kombinationen der verschiedenen Auskunftssysteme. Derartige
sprachgesteuerte automatische Dialogsysteme werden oft als Sprachportale
oder Sprachanwendungen bezeichnet.
-
Um
für verschiedene
Benutzer gleichzeitig zu Diensten zu sein, muss das Dialogsystem
entsprechend eine Vielzahl von Zugriffskanälen für die Benutzer umfassen. Hierbei
kann es sich um Zugriffskanäle
zur Verbindung mit einem geeigneten Endgerät des Benutzers handeln, das
eine akustische Benutzeroberfläche
mit einem Mikrofon für
den Benutzer zur Eingabe von Sprachbefehlen an das Dialogsystem
und mit einem Lautsprecher, Kopfhörer oder dergleichen zur Ausgabe
von akustischen Systemausgaben an den Benutzer umfasst. Bei dem Endgerät kann es
sich zum Beispiel um ein Telefon, eine Mobilfunkvorrichtung oder
einen PC des Benutzers handeln und die Zugriffskanäle können entsprechende
Telefon- und/oder Internetverbindungen sein. Bei einem stationären Dialogsystem,
zum Beispiel einem Endgerät
an einem öffentlichen
Ort wie einem Bahnhof, einem Flughafen, einem Museum usw., können die
Zugriffskanäle
zum Beispiel Headsets oder dergleichen sein, über die die Benutzer mit dem Endgerät kommunizieren
können.
Außerdem
umfasst das Sprachdialogsystem üblicherweise
für jeden
Zugriffskanal eine Dialogsteuerung in Form eines Softwaremoduls.
Diese Dialogsteuerung steuert den Betrieb eines Dialogs mit einem
Benutzer über den
betreffenden Zugriffskanal und veranlasst, zum Beispiel an bestimmten
Positionen im Dialogbetrieb, eine Systemausgabe für den Benutzer über den
betreffenden Zugriffskanal.
-
Die
Systemausgabe – im
Allgemeinen auch als Bereitmeldung oder Prompt bezeichnet – kann zum
Beispiel eine Eingabeaufforderung an den Benutzer oder die vom Benutzer
angeforderte Information sein. Um eine derartige akustische Bereitmeldung
zu erzeugen, muss das Sprachdialogsystem über eine geeignete Sprachausgabevorrichtung
verfügen,
zum Beispiel einen Text-Sprache-Umsetzer, der Textinformationen
des Dialogsystems in Sprache für
den Benutzer umsetzt und diese über
den Zugriffskanal ausgibt. Die Sprachausgabevorrichtung kann jedoch
auch vorgefertigte gespeicherte Tondateien enthalten, die dem Benutzer
zum geeigneten Zeitpunkt vorgespielt werden. In der Regel hat das Sprachdialogsystem
für jeden
Zugriffskanal eine eigene Sprachausgabevorrichtung. Es ist jedoch
möglich,
dass sich mehrere Zugriffskanäle
eine gemeinsame Sprachausgabevorrichtung teilen.
-
Um
das Eintreffen eines Sprachsignals auf einem Zugriffskanal zu erkennen,
d. h. eine beliebige Sprachäußerung des
Benutzers, z.B. ein Wort, eine Wortkombination oder einen Satz,
und um in der Lage zu sein, angemessen darauf zu reagieren, wird eine
Spracherkennungseinheit – üblicherweise
ein Softwaremodul – verwendet.
Die Audiodaten des Sprachsignals werden zu diesem Zweck an die Spracherkennungseinheit übermittelt
und die Spracherkennungseinheit leitet das Ergebnis der Erkennung zum
Beispiel an die Dialogsteuerung weiter.
-
Da
die Spracherkennung einen relativ großen Computer erfordert, sind
Dialogsysteme, die eine Vielzahl von Benutzern handhaben, oft physikalisch
aus einer Vielzahl von Computereinheiten aufgebaut. Das System umfasst
dann eine oder mehrere so genannte Frontend-Computereinheiten mit
einer Vielzahl von Zugriffskanälen
(Ports). Eine Frontend-Computereinheit ist üblicherweise die Computereinheit
des Systems, die direkt über
die Zugriffskanäle
mit den Benutzern kommuniziert. Die den Zugriffskanälen fest
zugeordneten Dialogsteuerungen befinden sich üblicherweise auf der betreffenden Frontend-Computereinheit.
Auch die Sprachausgabevorrichtungen können sich auf der Frontend- Computereinheit befinden.
Die Spracherkennungseinheit oder Spracherkennungseinheiten befinden
sich andererseits auf einer separaten Computereinheit, die im Folgenden
als Server bezeichnet wird und die erforderliche Rechenleistung
für die
Spracherkennung bereitstellt. Bei größeren Systemen ist es in der
Praxis üblich,
mehrere Server in dem System einzusetzen, wobei in jedem Server
ein oder mehrere Spracherkennungseinheiten implementiert sind.
-
Die
für den
betreffenden Zugriffskanal zuständige
Dialogsteuerung kann dann zum richtigen Zeitpunkt eine freie Spracherkennungseinheit
wählen,
zum Beispiel am Ende einer Bereitmeldung, und sie dem betreffenden
Zugriffskanal zuweisen, so dass ein eintreffendes Sprachsignal des
Benutzers sofort verarbeitet und erkannt werden kann. Es ist wünschenswert,
dass die Auswahl von einer der verfügbaren Spracherkennungseinheiten
auf eine derartige Weise erfolgt, dass die Server, in denen die
Spracherkennungseinheiten untergebracht sind, gleichmäßig beansprucht
werden. Dies hat zur Folge, dass eine optimale Nutzung der Systemkapazität und damit
eine maximale Verarbeitungsgeschwindigkeit erreicht werden kann.
-
Weiqi
Zhang et al. beschreibt in „The
study on Distributed Speech Recognition System", 2000 IEEE International Conference
on Acoustics, Speech and Signal Processing, Proceedings, 5.6.00–9.6.00, Seite
1431–1434,
Band 3, ein dezentrales Spracherkennungssystem. Das System umfasst
einen Moderator, der gemäß einem
Belastungsplanungsschema entscheidet, welcher Engine-Server zur
Verfügung steht.
Das System wird durch die Steuerung der Serverbelastung optimiert.
-
Eine
derartige Prozedur ist natürlich
nur möglich,
wenn das Dialogsystem bzw. die Dialogsteuerung im Vorhinein weiß, wann
eine Spracherkennungseinheit für
den betreffenden Zugriffskanal erforderlich ist. Dies ergibt keine
Probleme bei Dialogsystemen, die Benutzereingaben nur zu bestimmten
Zeitpunkten erlauben, d. h. nach Beendigung einer Bereitmeldung.
Derartige Systeme sind jedoch hinsichtlich ihres Verhaltens gegenüber dem
Benutzer relativ unnatürlich.
Wie bekannt, neigen Benutzer oft dazu, bereits zu antworten, bevor
das Dialogsystem eine Eingabeaufforderung beendet hat. Dies ist insbesondere
der Fall, wenn der Benutzer bereits genau weiß oder vermutet, welche Eingabe
das System von ihm fordert und welche Möglichkeiten ihm bei diesem
Teil des Dialogs zur Verfügung
stehen. Eine derartige Unterbrechung der Systemausgabe tritt außerdem ebenso
häufig
auf, wenn Informationen ausgegeben werden, die der Benutzer unterbrechen möchte. Unterbrechungsdialogsysteme,
die die benutzerseitige Unterbrechung einer laufenden Sys temausgabe
möglich
machen, gelten andererseits als natürlicher in ihrem Verhalten.
Darüber
hinaus sind sie für
den Benutzer komfortabler, weil der Benutzer immer eine Möglichkeit
zum Eingreifen hat und nicht auf das Ende einer Bereitmeldung warten
muss und in der Regel auch eher die Position in der Dialogroutine
erreicht, an der die gewünschten
Informationen ausgegeben werden.
-
Es
gibt verschiedene Möglichkeiten,
um zu gewährleisten,
dass ein Sprachsignal des Benutzers stets erkannt wird, was bei
einem Unterbrechungsdialogsystem erforderlich ist:
Eine Möglichkeit
besteht in der Tatsache, dass jedem Zugriffskanal permanent eine
eigene Sprachverarbeitungseinheit zugewiesen ist. Bei einer großen Anzahl
von Zugriffskanälen
führt dies
zu einer entsprechend großen
Anzahl von Spracherkennungseinheiten. Da das System nicht beeinflusst,
auf welchem dieser Zugriffskanäle
die zugehörigen
Spracherkennungseinheiten gleichzeitig benötigt werden, kann dies zu bestimmten
Zeiten zu einer außerordentlichen
Belastung der Server führen.
Um zu gewährleisten,
dass das Dialogsystem in derartigen Situationen immer noch angemessen
schnell arbeiten kann, muss eine ausreichend große Rechenleistung der einzelnen
Server vorgesehen werden, so dass alle Spracherkennungseinheiten
auf dem Server ohne Probleme gleichzeitig arbeiten können.
-
Eine
weitere Möglichkeit
der Schaffung eines Unterbrechungsdialogsystems für eine Vielzahl
von Benutzern besteht in der Nutzung von Sprachaktivitätsdetektoren
(SADs), wobei jedem Zugriffskanal genau ein derartiger Sprachaktivitätsdetektor
zugewiesen ist. Eine Detektion der Sprachaktivität ist bei Unterbrechungsdialogsystemen
auf jeden Fall geeignet, damit das System eine laufende Systemausgabe sofort
unterbrechen kann, wenn der Benutzer ein Eingabesprachsignal gibt.
Andernfalls würden
der Benutzer und das Dialogsystem gleichzeitig „sprechen", was zu einer Irritation seitens des
Benutzers führen kann
und auf der anderen Seite – aufgrund
des Echos von der Systemausgabe im Eingangssignal – die Erkennung
des benutzerseitigen Sprachsignals durch die Spracherkennungseinheit
kompliziert machen kann.
-
Diese
Sprachaktivitätsdetektoren
könnten durch
eine einfache Energiedetektion des Zugriffskanals implementiert
werden, was nur relativ wenig Rechenleistung erfordert. Anschließend kann – ohne irgendein
Problem bei einer 1:1-Zuweisung – ein SAD für jeden Zugriffskanal zur Verfügung gestellt
werden, wobei der SAD zusammen mit dem zugehörigen Zugriffskanal auf der
betreffenden Frontend-Computereinheit implementiert ist. Analog
zu dem oben erwähnten
Dialogsystem, das nicht unterbrochen werden kann, ermöglicht eine
derartige Systemarchitektur die Zuweisung einer Spracherkennungseinheit
zu einem Zugriffskanal immer, wenn eine Spracherkennungseinheit
auf dem betreffenden Zugriffskanal benötigt wird. Dementsprechend
ist es bei einem derartigen System problemlos möglich, auf eine möglichst gleichmäßige Serverbelastung
zu achten, wenn die Spracherkennungseinheiten den Zugriffskanälen zugewiesen
werden. Besonders bei größeren Systemen
mit sehr vielen Kanälen
und sehr vielen Spracherkennungseinheiten ist es aufgrund der statistisch geringen
Wahrscheinlichkeit, dass eine Spracherkennungseinheit auf allen
Zugriffskanälen
gleichzeitig benötigt
wird, weiterhin möglich,
dass die Anzahl der verfügbaren
Spracherkennungseinheiten geringer ist als die Anzahl der Zugriffskanäle.
-
Ein
großer
Nachteil eines derartigen Systems besteht allerdings in der Tatsache,
dass zwischen der Detektion der Sprache durch den SAD und der eigentlichen
physikalischen Zuweisung des Zugriffskanals zu einer Spracherkennungseinheit
eine Zeitspanne liegt, in der der Benutzer weiter redet. Daher muss
das benutzerseitige Sprachsignal, d. h. eine große Anzahl von Audiodaten, zunächst zwischengespeichert
und dann an die Spracherkennungseinheit weitergeschaltet werden,
sobald diese betriebsbereit ist. Eine derartige Zwischenspeicherung
der Audiodaten ist allerdings aufwändig und daher kostenintensiv.
Außerdem
reduziert sie die Effizienz des Systems.
-
Die
vorliegende Erfindung hat zur Aufgabe, wie in den Ansprüchen 1 und
5 beansprucht, ein Verfahren für
den Multiuser-Betrieb eines Unterbrechungsdialogsystems zu schaffen
oder ein entsprechendes Unterbrechungsdialogsystem zu schaffen, das
immer schnell in der Lage ist, ein eintreffendes Sprachsignal des
Benutzer auf eine einfache Weise zu verarbeiten, während die
von dem System benötigte
Gesamtrechenleistung minimiert wird.
-
Diese
Aufgabe wird gelöst,
indem in einem Dialogsystem, das eine oder mehrere Frontend-Computereinheiten
mit einer Vielzahl von Zugriffskanälen für die Benutzer und eine Vielzahl
von Servern mit einer entsprechenden Anzahl von Sprachverarbeitungseinheiten
umfasst, die jeweils einen Sprachaktivitätsdetektor und eine Spracherkennungseinheit
enthalten, zu verschiedenen bestimmten Zeitpunkten während eines
Dialogs mit einem Benutzer wiederholt eine neue Sprachverarbeitungseinheit
auf einem der Server dem Zugriffskanal der Frontend-Computereinheit
zugewiesen wird, die von dem Benutzer genutzt wird, so dass die
Server so gleichmäßig wie
möglich
belastet werden und der Sprachaktivitätsdetektor ein auf dem gerade
zugewiesenen Zugriffskanal eintreffendes Sprachsignal detektiert
und die Spracherkennungseinheit aktiviert. Je nach Vorrichtung wird
die Aufgabe durch ein Unterbrechungsdialogsystem mit einer entsprechenden Anzahl
von Sprachverarbeitungseinheiten gelöst, die auf mehreren Servern
angeordnet sind, welche jeweils eine Spracherkennungseinheit und
einen Sprachaktivitätsdetektor
zum Detektieren eines eintreffenden Sprachsignals und zum Aktivieren
der Spracherkennungseinheit umfassen, und eine Zugriffskoordinierungseinheit
umfassen, die während eines
Dialogs mit einem Benutzer zu verschiedenen bestimmten Zeitpunkten
dem von dem Benutzer genutzten Frontend-Computereinheit-Zugriffskanal eine
neue Sprachverarbeitungseinheit auf einem der Server zuweist, so
dass die Server möglichst
gleichmäßig belastet
werden. Die abhängigen
Ansprüche enthalten
jeweils außerordentlich
vorteilhafte Ausführungsformen
und weitere Aspekte der Erfindung.
-
Erfindungsgemäß gibt es
Sprachverarbeitungseinheiten auf den Servern, wobei die Einheiten auf
der einen Seite einen Sprachaktivitätsdetektor umfassen und auf
der anderen Seite eine Spracherkennungseinheit, das heißt, der
Sprachaktivitätsdetektor,
der ein eintreffendes Sprachsignal detektiert und die Spracherkennungseinheit
aktiviert, bildet in Kombination mit der Spracherkennungseinheit
ein Sprachverarbeitungssystem. Der Sprachaktivitätsdetektor und die Spracherkennungseinheit
können
tatsächlich
separate Einheiten sein, die zu einer Sprachverarbeitungseinheit
kombiniert, d.h. gruppiert werden. Alternativ ist es jedoch möglich, dass der
Sprachaktivitätsdetektor
und die Spracherkennungseinheit in eine Sprachverarbeitungseinheit
integriert werden, so dass sie als separate Betriebsarten der Sprachverarbeitungseinheit
betrachtet werden können
und zum Beispiel gemeinsame Softwareroutinen oder Speicherbereiche
usw. nutzen.
-
Das
Unterbrechungsdialogsystem wird erfindungsgemäß so betrieben, dass dem betreffenden von
dem Benutzer der Frontend-Computereinheit benutzten Zugriffskanal
während
eines Dialogs mit dem Benutzer wiederholt zu verschiedenen bestimmten Zeitpunkten
eine neue Sprachverarbeitungseinheit auf einem der Server zugewiesen
wird. Diese neue Zuweisung wird vorgenommen, damit die Server so gleichmäßig wie
möglich
belastet werden. Das bedeutet, dass eine permanente Neuzuweisung
von Sprachverarbeitungseinheiten zu den aktiven Zugriffskanälen stattfindet,
während
die Zeitpunkte für die
Neuzuweisung einer Sprachverarbeitungseinheit zu einem bestimmten
Zugriffskanal des Systems auf eine solche Weise bestimmt werden,
dass eine geringe Chance besteht, dass eine Sprachverarbeitungseinheit
speziell während
der Neuzuweisung zu dem betreffenden Zugriffskanal benötigt wird.
-
Ein
erfindungsgemäßes Unterbrechungsdialogsystem
benötigt
daher eine geeignete Zugriffskoordinierungseinheit (Ressourcen-Manager), die
die Sprachverarbeitungseinheiten der verschiedenen Server wiederholt
zu den gewünschten
Zeitpunkten den betreffenden Zugriffskanälen zuweist, so dass eine gleichmäßige Belastung
der Server gewährleistet
wird.
-
Die
Gruppierung der Sprachaktivitätsdetektoren
und der Spracherkennungseinheiten auf den Servern zu den genannten
Sprachverarbeitungseinheiten ist auf der einen Seite vorteilhaft,
weil die Frontend-Computereinheiten nicht durch Sprachaktivitätsdetektoren
belastet werden. Audiodatenströme, die
bei einem bestimmten Sprachaktivitätsdetektor eintreffen, können direkt
von der zugehörigen
Spracherkennungseinheit verarbeitet werden und brauchen nicht noch
einmal physikalisch zwischen verschiedenen Computern umgeleitet
zu werden, was zusätzliche
Zeit und auch eine Zwischenspeicherung der Audiodaten erforderlich
machen würde,
was um jeden Preis vermieden werden sollte.
-
Basierend
auf der permanenten tatsächlichen
Neuzuweisung der Sprachverarbeitungseinheiten zu den Zugriffskanälen und
der hiermit verbundenen gleichmäßigen Belastung
der Server ist es möglich,
dass eine größere Anzahl
von Sprachverarbeitungseinheiten logisch auf einem Server angeordnet wird,
während
die physikalische Rechenleistung der Server nicht so bemessen sein
muss, dass alle Sprachverarbeitungseinheiten auf dem Server gleichzeitig
mit voller Leistung arbeiten können.
Es ist daher problemlos möglich,
trotz einer geringeren Rechenleistung auf den Servern so viele Sprachverarbeitungseinheiten
wie es Zugriffskanäle
gibt logisch anzuordnen; die Verarbeitungseinheiten umfassen jeweils
einen Sprachaktivitätsdetektor
und eine Spracherkennungseinheit.
-
Vorzugsweise
kann selbst eine gleiche Anzahl von Sprachverarbeitungseinheiten
wie Zugriffskanäle
verfügbar
gemacht werden, um somit im Fall einer Neuzuweisung einer Sprachverarbeitungseinheit
zu einem Zugriffskanal eine höhere
Flexibilität
zu erreichen. Die Vorteil einer derartigen „Überkapazität" von Sprachverarbeitungseinheiten zeigt
sich vor allem, wenn sehr viele Benutzer zu einem bestimmten Zeitpunkt
gleichzeitig das Dialogsystem nutzen und im Wesentlichen alle Zugriffskanäle so in
Anspruch nehmen, dass als Ergebnis ein großer Teil der Sprachverarbeitungseinheiten
bereits einem Zugriffskanal zugewiesen worden ist. In der Regel
ist jedoch nur bei einem Teil der Sprachverarbeitungseinheiten die
Spracherkennungseinheit zu diesem bestimmten Zeitpunkt aktiv, wobei
die Spracherkennungseinheit mehr Rechenleistung von dem jeweiligen
Server nutzt. Auf der anderen Seite ist in einem großen Teil
der Sprachverarbeitungseinheiten nur der Sprachaktivitätsdetektor
aktiv, was nur wenig Rechenleistung erfordert. Die hohe Anzahl von
Aufrufen kann jedoch zu einer Situation führen, in der in bestimmten
Servern keine Sprachverarbeitungseinheit mehr zur Verfügung steht,
obwohl diese Server nur geringfügig
belastet sind, was ihre Rechenleistung betrifft, und eine Zuweisung
eines Zugriffskanals zu einer Sprachverarbeitungseinheit auf einem
der betreffenden Server an sich für eine gleichmäßige Belastung
der Server optimal wäre.
Im Extremfall einer 1:1-Zuweisung von Zugriffskanälen zu Sprachverarbeitungseinheiten
und bei voller Ausnutzung aller Zugriffskanäle durch ebenso viele Benutzer
wäre ohnehin
keine Neuzuweisung möglich.
Wenn jedoch mehr Sprachverarbeitungseinheiten als es Zugriffskanäle gibt
logisch auf den Servern angeordnet sind, ist immer mindestens eine
Neuzuweisung möglich,
obwohl es bei einer zunehmenden Anzahl von Reserve-Sprachverarbeitungseinheiten
wahrscheinlicher ist, dass jederzeit auf jedem der Server immer
noch mindestens eine nicht in Anspruch genommene Sprachverarbeitungseinheit
zur Verfügung
steht, um jederzeit eine Zuweisung auszuführen, die hinsichtlich der
Serverbelastung optimal ist.
-
Das
Dialogsystem wird vorzugsweise so betrieben oder die Zuweisung so
vorgenommen, dass jedem aktiven Zugriffskanal, über den ein Dialog zwischen
dem System und dem Benutzer stattfindet, im Wesentlichen permanent
eine der Sprachverarbeitungseinheiten zugewiesen ist. Das bedeutet,
dass jedem der Zugriffskanäle
während
des Dialogs – d.
h. mit Ausnahme der kurzen Augenblicke, in denen eine Neuzuweisung
der Sprachverarbeitungseinheit zu dem betreffenden Zugriffskanal
erfolgt – eine
der Sprachverarbeitungseinheiten nahezu ständig zur Verfügung steht,
während
sie normalerweise ständig die
Sprachverarbeitungseinheiten wechseln. Soweit es bestimmte absichtlich
vorgesehene Zeiten in einer Dialogroutine gibt, während der
zum Beispiel eine Unterbrechung einer Systemausgabe unerwünscht ist,
braucht während
dieser Zeiten dem betreffenden Zugriffskanal offensichtlich keine
Sprachverarbeitungseinheit zugewiesen zu werden.
-
In
einem äußerst vorteilhaften
Ausführungsbeispiel
umfasst das System Mittel, um der Zugriffskoordinierungseinheit
zu signalisieren, wann eine Erkennung eines Sprachsignals der Spracherkennungseinheit,
das zuvor einen Zugriffskanal betreten hat, beendet ist und/oder
wann eine neue Systemausgabe an den Benutzer über diesen Zugriffskanal beginnen
kann. Dies kann auch zum Beispiel durch ein Signal der Sprachverarbeitungseinheit selbst
erfolgen, welches ankündigt,
dass die Erkennung beendet wurde. Alternativ kann auch ein betreffendes
Signal von der Dialogsteuerung kommen, welche die erforderlichen
Informationen von der Spracherkennungseinheit empfangen hat und
jetzt eine Dialog entsprechend dem empfangenen Sprachsignal des
Benutzers fortsetzt und die Aus gabe einer Systemausgabe an den Benutzer
veranlasst. Die Neuzuweisung der Sprachverarbeitungseinheit zu dem
betreffenden Zugriffskanal kann dann vorzugsweise unmittelbar nach
der Erkennung des Sprachsignals oder innerhalb einer vordefinierten kurzen
Zeitspanne zu Beginn der nächsten
Systemausgabe an den Benutzer erfolgen. Dies ist eine sehr geeignete
Zeitspanne für
die Neuzuweisung, weil eine Systemausgabe typischerweise während der ersten
paar Millisekunden nicht durch den Benutzer unterbrochen wird, und
somit zu diesem Zeitpunkt wahrscheinlich kein Spracherkenner auf
dem Zugriffskanal erforderlich ist. Auf diese Weise wird garantiert,
dass im Wesentlichen immer, wenn ein Spracherkenner benutzt werden
könnte,
dieser Erkenner sofort zur Verfügung
steht. Die Wahrscheinlichkeit, dass Audiodaten manchmal zwischengespeichert werden
müssen,
kann daher vernachlässigt
werden.
-
Da
erfindungsgemäß die Sprachaktivitätsdetektoren
nicht in der Frontend-Computereinheit
benutzt werden, braucht die Sprachdetektion die Audiodatenströme nicht
durch den Prozessor der Fontend-Computereinheit zu leiten. Dies
hat zur Folge, dass die Audiodaten vorzugsweise durch den Zugriffskanal
zu der gerade zugewiesenen Sprachverarbeitungseinheit befördert werden,
ohne dass die Daten durch den Prozessor geleitet werden. Dies ist möglich, indem
eine reine Hardwareschaltung, zum Beispiel eine so genannte Schaltmatrix,
verwendet wird, um die Audiodatenströme von dem Zugriffskanal an
die Server zu übermitteln.
Da der Prozessor, der einen Engpass für die Audiodatenströme verursachen
würde,
auf diese Weise vollständig
umgangen wird, können
mit einer derartigen Hardwarelösung
wesentlich mehr Kanäle
in der betreffenden Frontend-Computereinheit erreicht werden. Auf
diese Weise ist es mit einer derartigen Hardwarelösung problemlos
möglich,
zum Beispiel 500 bis 1000 oder mehr Zugriffskanäle in einem System bereitzustellen, in
dem über
eine Softwarelösung
etwa 120 Zugriffskanäle
implementiert werden könnten.
-
Für das Auswahlverfahren,
mit dem eine Sprachverarbeitungseinheit für einen Zugriffskanal gewählt wird,
um eine gleichmäßige Belastung
der Server im Fall einer Neuzuweisung zu erreichen, kann auf die
bekannten Auswahlverfahren der Nichtunterbrechungssysteme zurückgegriffen
werden.
-
Es
kann zum Beispiel das als Round-Robin bekannte Verfahren verwendet
werden, bei dem zyklisch ein Wechsel von einem Server zum nächsten vorgenommen
wird. Dieses Verfahren ist zu extrem geringen Kosten möglich. Eine
gleichmäßige Belastung
wird jedoch nur auf der Basis einer statistisch angenommenen Gleichmäßigkeit
erreicht, so dass es in Einzelfällen
zeitweilig zu einer relativ ungleichmäßigen Belastung kommen kann.
-
Ein ähnliches
Verfahren ist das so genannte Least-Use-Verfahren, bei dem immer
der Computer gewählt
wird, der nicht zuletzt benutzt wurde.
-
Ein
etwas aufwändigeres,
aber zuverlässiges
Verfahren in Bezug auf die gleichmäßige Belastung ist das so genannte
Load-Balancing-Verfahren, bei dem immer der Server gewählt wird,
der gerade am wenigsten belastet ist. Dieses Verfahren ist das bevorzugte
Verfahren, weil auch in Extremfällen
eine gleichmäßige Belastung
erreicht werden kann. Zu diesem Zweck umfasst das System vorzugsweise Mittel
zum Bestimmen der Belastungswerte für die einzelnen Sprachverarbeitungseinheiten
bzw. Server, und um diese Belastungswerte an die Zugriffskoordinierungseinheit
zu leiten, die dann basierend auf den Belastungswerten der einzelnen
Einheiten oder Server eine Entscheidung bezüglich der Neuzuweisung einer
Sprachverarbeitungseinheit zu einem Zugriffskanal trifft.
-
Die
Erfindung wird weiterhin im Folgenden unter Bezugnahme auf die beigefügte Figur
unter Zuhilfenahme eines Ausführungsbeispiels
beschrieben. Die einzige Figur hier zeigt ein grobes, schematisches
Blockschaltbild eines Unterbrechungsdialogsystems 1 gemäß der Erfindung,
wobei nur die Anordnung der für
die Erfindung wichtigen Komponenten dargestellt ist.
-
Dieses
Unterbrechungsdialogsystem 1 umfasst im Wesentlichen eine
Frontend-Computereinheit 2 und eine Vielzahl von Servern 18, 19, 20, 21. Die
Frontend-Computereinheit 2 hat
Zugriffskanäle 6 für die Benutzer.
In dem vorliegenden Ausführungsbeispiel
sind die Zugriffskanäle 6 Telefonzugriffskanäle, zum
Beispiel ISDN-Kanäle.
Auf den Servern 18, 19, 20, 21 befindet
sich eine entsprechende Vielzahl von Sprachverarbeitungseinheiten 22.
Jede der Sprachverarbeitungseinheiten 22 enthält einen Sprachaktivitätsdetektor 23 und
eine Spracherkennungseinheit 24.
-
Das
gezeigte Ausführungsbeispiel
hat mehr Sprachverarbeitungseinheiten 22 als es Zugriffskanäle 6 auf
der Frontend-Computereinheit 2 gibt. Im vorliegenden Fall
hat das Dialogsystem 1 der Übersichtlichkeit halber nur
acht Zugriffskanäle 6.
Im Gegensatz hierzu hat das Dialogsystem 1 hier vier Server 18, 19, 20, 21,
auf denen drei entsprechende Sprachverarbeitungseinheiten 22 logisch
angeordnet sind. Das bedeutet, dass für die acht Zugriffskanäle 6 zwölf Sprachverarbeitungseinheiten 22 zur
Verfügung
stehen. Das Dialogsystem 1 kann jedoch auch weniger Server
oder eine wesentlich größere Anzahl von
Servern haben, während
auch die Anzahl der Sprachverarbeitungseinheiten 22 pro
Server 18, 19, 20, 21 zufällig ist
und nur durch die Rechenleistung und die Speicherkapazität der betreffenden
Server 18, 19, 20, 21 begrenzt
wird. Die Server 18 bis 21 können auch unterschiedliche
Rechenleistungen und eine unterschiedliche Anzahl von Sprachverarbeitungseinheiten 22 haben.
-
In
Wirklichkeit hat eine Frontend-Computereinheit 22 üblicherweise
eine wesentlich größere Anzahl
von Zugriffskanälen 6,
zum Beispiel 120, 500 oder sogar 1000 und mehr Zugriffskanäle. In einem echten
Dialogsystem mit einer Frontend-Computereinheit
mit 120 Zugriffskanälen
zum Beispiel können dann
zwölf Sprachverarbeitungseinheiten
entsprechend auf zehn Servern angeordnet sein, so dass insgesamt
mindestens wieder eine Sprachverarbeitungseinheit für jeden
Zugriffskanal zur Verfügung steht.
-
Die
Frontend-Computereinheit 2 ist über geeignete Audiodatenleitungen 25 mit
den Servern 18, 19, 20, 21 verbunden.
In der Figur ist nur ein Audiodatenkanal 25 pro Server 18, 19, 20, 21 dargestellt. Es
ist jedoch auch möglich,
mehr Audiodatenkanäle 25 pro
Server 18, 19, 20, 21 zu haben,
zum Beispiel einen Audiodatenkanal 25 pro Sprachverarbeitungseinheit 22,
um in der Lage zu sein, für
eine schnelle Übertragung
von Audiodaten für
jede Sprachverarbeitungseinheit 22 über ihren eigenen Kanal 25 zu sorgen.
-
In
der Frontend-Computereinheit 2 gibt es eine Dialogsteuerung
für jeden
der Zugriffskanäle 6, wobei
die Dialogsteuerung einen Dialog mit dem Benutzer steuert, der über den
betreffenden Zugriffskanal sowie eine geeignete Sprachausgabeeinheit
für Systemausgaben
an den Benutzer stattfindet. Diese Einheiten sind der Übersichtlichkeit
halber nicht dargestellt.
-
Da
es sich um ein Dialogsystem handelt, das unterbrechungsfähig ist,
steht während
des Dialogs mit dem Benutzer immer eine Sprachverarbeitungseinheit 22 für den betreffenden
Zugriffskanal 6 zur Verfügung, um die Information von
dem Sprachsignal sofort nach Erhalt eines Sprachsignals verarbeiten, d.h.
erkennen zu können.
Aus diesem Grund wird jedem der Zugriffskanäle 6 eine Sprachverarbeitungseinheit 22 auf
einem der Server 18, 19, 20, 21 zugewiesen,
sobald ein Dialog mit einem Benutzer über diesen Zugriffskanal beginnt.
Die über
den Zugriffskanal 6 eintreffenden Audiodaten werden von
der Frontend-Computereinheit 2 direkt über die Audiodatenkanäle 25 an
die gerade zugewiesene Sprachverarbeitungseinheit 22 oder
an die betreffenden Server 18, 19, 20, 21 geleitet,
auf denen sich die Sprachverarbeitungseinheit 22 befindet.
-
Die
Audiodaten erreichen zuerst einen Sprachaktivitätsdetektor 23 in der
Sprachverarbeitungseinheit 22, die während der gesamten Zeit aktiv ist
und quasi „darauf horcht", ob ein Sprachsignal
des Benutzers auf dem Zugriffskanal 6 eintrefft, der gerade
der Sprachverarbeitungseinheit 22 zugewiesen ist. Dieses „Horchen" der Sprachverarbeitungseinheit 22 bzw.
des Sprachaktivitätsdetektors 23 kostet
nur wenig Rechenleistung. Sobald der Sprachaktivitätsdetektor 23 einmal
ein Sprachsignal detektiert hat, wird die Spracherkennungseinheit 24 aktiviert,
so dass sie sofort mit der Erkennung des Sprachsignals beginnen
kann. Es ist dann nicht erforderlich, den Audiodatenstrom noch einmal
von einer Computereinheit zu einer anderen umzuleiten, vor allem
die Notwendigkeit zum Zwischenspeichern von Audiodaten entfällt dann.
Da eine Spracherkennungseinheit 24 erst aktiviert wird,
wenn der Sprachaktivitätsdetektor 23 ein
Sprachsignal erkannt hat, ist während
eines großen
Teils des Dialogs die erforderliche Rechenleistung einer Sprachverarbeitungseinheit 22 relativ gering.
-
Erfindungsgemäß wird dem
betreffenden Zugriffskanal 6 während eines Dialogs mit einem
Benutzer nicht permanent ein und dieselbe Sprachverarbeitungseinheit 22 zugewiesen,
sondern im Verlauf des stattfindenden Dialogs wird dem betreffenden Zugriffskanal 6 zu
bestimmten Zeitpunkten wiederholt eine dann verfügbare, d. h. nicht von einem
anderen Zugriffskanal 6 genutzte neue Sprachverarbeitungseinheit 22 zugewiesen.
-
Diese
Zuweisung kann immer erfolgen, wenn eine Erkennung einer Sprachsignaleingabe durch
den Benutzer beendet ist oder in einem sehr kurzen Zeitfenster nach
einer neuen Bereitmeldung an den betreffenden Benutzer. Zu diesem
Zeitpunkt braucht nicht erwartet zu werden, dass der Benutzer das
Dialogsystem unterbricht, um einen neuen Sprachbefehl einzugeben.
Normalerweise findet eine Unterbrechung durch den Benutzer frühestens
erst ein paar Millisekunden nach Beginn einer Bereitmeldung statt.
Auf diese Weise wird dafür
gesorgt, dass eine Neuzuweisung der einzelnen Sprachverarbeitungseinheiten 22 zu
den dann aktiven Zugriffskanälen 6 permanent
erfolgt, ohne dass dies für
die Benutzer zum Beispiel an längeren
Reaktionszeiten des Dialogsystems zu erkennen ist.
-
Um
zu vermeiden, dass eine Systemausgabe weiterläuft, obwohl der Benutzer dem
Dialogsystem bereits geantwortet hat und selbst ein Sprachsignal
eingegeben hat, sendet der Sprachaktivitätsdetektor 23 weiterhin
zum Beispiel über
eine lokale Netzwerkverbindung 5 oder einen ähnlichen
Datenkanal, über
den die Server 18 bis 21 mit der Frontend-Computereinheit 2 verbunden
sind, ein betreffendes Signal an die Dialogsteuerung, die den Zugriffskanal 6 bedient.
Diese Dialogsteuerung unterbricht dann die aktuelle Systemausgabe.
-
Die
Zuweisung der Sprachverarbeitungseinheiten 22 auf den verschiedenen Servern 18 bis 21 zu
dem betreffenden aktiven Zugriffskanal 6 erfolgt mit Hilfe
einer Zugriffskoordinierungseinheit (Ressourcen-Manager) 3,
die sich auf der Frontend-Computereinheit 2 befindet. Diese
Zugriffskoordinierungseinheit 3 umfasst eine so genannte
Schaltmatrix 4, die rein als Hardware die Zugriffskanäle 6 mit
den Audiodatenkanälen 25 zu
den gewünschten
Sprachverarbeitungseinheiten 22 schaltet. Diese Hardware-Implementierung
des Schalters hat den Vorteil, dass der Prozessor der Frontend-Computereinheit
nicht mit den Audiodaten belastet wird.
-
Da
sich auch die Sprachaktivitätsdetektoren 23 direkt
auf den Servern 18, 19, 20 und 21 in
den Spracherkennungseinheiten 22 befinden und nicht in der
Frontend-Computereinheit 2,
brauchen in der beschriebenen Ausführungsform der Erfindung die über einen
Zugriffskanal 6 eintreffenden Audiodaten nicht durch einen
Prozessor der Frontend-Computereinheit 2 geleitet
zu werden, die einen Engpass für
den Audiodatenstrom darstellen und dadurch Effizienz des gesamten
Systems reduzieren würde.
-
Wenn
einem aktiven Zugriffskanal 6 eine neue Sprachverarbeitungseinheit 22 zugewiesen wird,
sorgt die Zugriffskoordinierungseinheit 3 dafür, dass
die einzelnen Server 18, 19, 20, 21 hinsichtlich der
erforderlichen Rechenleistung und der aktuellen Speicheranforderungen
so gleichmäßig wie
möglich belastet
werden. Zu diesem Zweck werden standardisierte Werte der Kapazitätsauslastung
von den einzelnen Servern 18, 19, 20, 21 zum
Beispiel über
die lokale Netzwerkverbindung 5 an die Zugriffskoordinierungseinheit 3 in
der Frontend-Computereinheit 2 übertragen, und anhand dieser
Kapazitätsauslastungswerte
kann die Zugriffskoordinierungseinheit 3 die Belastung
der einzelnen Server 18, 19, 20, 21 erkennen.
Die Neuzuweisung erfolgt dann ausgehend von diesen Belastungswerten,
indem die Werte justiert werden können. Diese Vorgehensweise
wird im Folgenden unter Zuhilfenahme einer „Zufallsangabe" während des
Betriebs des Unterbrechungsdialogsystems 1 noch einmal
erläutert.
-
Zu
diesem Zweck wird angenommen, dass ein Benutzer zu einem bestimmten
Zeitpunkt über alle
acht Zugriffskanäle 6 bedient
wird, d. h. alle Zugriffskanäle 6 sind
aktiv. Die Dialogläufe
auf den Zugriffskanälen 6 sind
dann vollständig
unabhängig voneinander.
Das bedeutet, dass zu einem bestimmten Zeitpunkt Systemausgaben
auf mehreren der Zugriffskanäle 6 erfolgen,
während
der Benutzer ein Sprachsignal auf anderen Zugriffskanälen 6 äußert, d.
h. es trifft ein Sprachsignal ein. Je nachdem, ob ein Sprachsignal
verarbeitet werden muss oder nicht, wird eine andere Rechenleistung
von der Sprachverarbeitungseinheit 22 benötigt, die
dann dem betreffenden aktiven Zugriffskanal zuge wiesen ist, wodurch
die betreffenden Server 18, 19, 20, 21 unterschiedlich
belastet werden.
-
Es
wird weiterhin angenommen, dass die aktuelle Zuweisung der Sprachverarbeitungseinheiten 22 zu
den Zugriffskanälen 6 zu
einem bestimmten Zeitpunkt so erfolgt, dass zwei der Sprachverarbeitungseinheiten 22 von
jedem der vier Server 18, 19, 20, 21 einen
Zugriffskanal 6 zugewiesen werden, während die Dritte Sprachverarbeitungseinheit 22 noch
nicht in Anspruch genommen wird. Es wird weiterhin davon ausgegangen,
dass zu einem bestimmten Zeitpunkt in einem der Zugriffskanäle 6 eine
Erkennung einer Sprachsignaleingabe durch den Benutzer erfolgt ist
und eine Bereitmeldung an den Benutzer ausgegeben wird. Gleichzeitig
ermittelt die Zugriffskoordinierungseinheit 3 mit der Hilfe
der Belastungswerte, dass der Server 18, auf dem sich die Sprachverarbeitungseinheit 22 befindet,
die gerade diesem Zugriffskanal 6 zugewiesen ist, eine
relativ hohe Belastung hat, weil der Benutzer gerade auf dem anderen
Zugriffskanal 6, der der zweiten Sprachverarbeitungseinheit 22 des
gleichen Servers 18 zugewiesen ist, das Sprachsignal eingibt,
das durch die Spracherkennungseinheit 24 dieser Sprachverarbeitungseinheit 22 verarbeitet
wird. Andererseits hat ein anderer Server 19 der vier Server 18, 19, 20, 21 eine
relativ geringe Belastung, weil Systemausgaben hier auf den beiden
zugehörigen, derzeit
zugewiesenen Zugriffskanälen 6 erfolgen
und der Benutzer dann keine weiteren Sprachsignale mehr eingibt.
Die beiden verbleibenden Server 20, 21 haben andererseits
einen durchschnittlichen Belastungsgrad, weil auch hier eine der
Sprachverarbeitungseinheiten 22 mit dem Erkennen eines
Sprachsignals beschäftigt
ist. Die Zugriffskoordinierungseinheit 3 auf der Frontend-Computereinheit 2 wird
dann die Gelegenheit nutzen, dem Zugriffskanal 6, auf dem
gerade die Bereitmeldung ausgegeben wird, eine neue Sprachverarbeitungseinheit 22 zuzuweisen,
um den Server 18 zu entlasten, auf dem sich die Sprachverarbeitungseinheit 22 befindet,
die dem betreffenden Zugriffskanal 6 gerade zugewiesen
ist. Basierend auf dem Belastungswert wird die dritte, freie Sprachverarbeitungseinheit 22 auf
dem Server ausgewählt,
der zu dem Zeitpunkt am wenigsten belastet ist.
-
Da
während
eines Dialogs die Spracheingaben des Benutzers permanent erkannt
werden und anschließend
Bereitmeldungen ausgegeben werden, gibt es zahlreiche Möglichkeiten
während
eines Dialogs, dem Zugriffskanal 6, auf dem der Dialog
stattfindet, eine neue Sprachverarbeitungseinheit 22 zuzuweisen.
Infolge der häufigen
Neuzuweisung von Sprachverarbeitungseinheiten 22 zu den
Zugriffskanälen 6 ist
es möglich,
eine sehr gleichmäßige Belastung
aller Server einzuhalten, so dass die Gesamtrechenleistung der Server
trotz einer großen
Anzahl von Sprachverarbeitungseinheiten, die logisch auf den Servern
angeordnet sind, reduziert werden kann. Basierend auf der geeigneten
Auswahl von Zeitpunkten der Neuzuweisung braucht nicht befürchtet zu werden,
dass zu einem Zeitpunkt, an dem ein Zugriffskanal eine Sprachverarbeitungseinheit
benötigt, diese
Einheit gerade nicht zur Verfügung
steht. Alles in allem macht die Erfindung also eine effiziente Verteilung
von Sprachaktivitätsdetektoren
und Spracherkennungseinheiten auf eine große Anzahl von Servern in einem
Netzwerk möglich,
wobei eine effiziente Verteilung dieser Ressourcen selbst bei Dialoganwendungen
gegeben ist, die unterbrechungsfähig sind.
Außerdem
kann die Komplexität
des Systems in der Frontend-Computereinheit sehr gering gehalten werden,
so dass eine effiziente Verteilung von Audiodaten auf die einzelnen
Spracherkennungseinheiten selbst rein durch Hardware möglich wird.
Es wird jedoch darauf hingewiesen, dass die Erfindung auch in denjenigen
Fällen
von Bedeutung ist, in denen die Frontend-Computereinheiten die Audiodaten
mittels geeigneter Software verteilen und alle zum Beispiel ihren
Hauptprozessor nutzen. Da der Hauptprozessor in einem derartigen
Fall durch die Verteilungen relativ stark belastet ist, macht sich
der Vorteil sehr bemerkbar, dass die Sprachaktivitätsdetektoren
auf den Servern angeordnet sind und keine zusätzliche Belastung für den Hauptprozessor
bilden.
-
Es
wird noch einmal ausdrücklich
darauf hingewiesen, dass das gezeigte Ausführungsbeispiel nur eine Möglichkeit
zur Implementierung des Systems darstellt. Insbesondere ist es auch
möglich, dass
ein derartiges Dialogsystem eine Vielzahl von Frontend-Computereinheiten 2 hat,
die dann ihrerseits zum Beispiel eine Vielzahl von Zugriffskanälen enthalten.
Auf ähnliche
Weise kann für
jeden Zugriffskanal eine eigene Frontend-Computereinheit benutzt werden. Ein
Beispiel hierfür
ist ein Dialogsystem, bei dem der betreffende PC eines Benutzers selbst
die Frontend-Computereinheit bildet, während sich zum Beispiel die
Dialogsteuerung für
die betreffende Anwendung auf diesem PC befindet und der Zugriff
auf die Server mit den Sprachverarbeitungseinheiten über eine
Internet-Verbindung
erfolgt. Diese Frontend-Computereinheiten könnten dann zum Beispiel mit
einer zentralen Computereinheit verbunden werden, die im Wesentlichen
nur als Schaltzentrum funktioniert und zum Beispiel den Ressourcen-Manager
und eine entsprechende Schaltmatrix hat.