-
HINTERGRUND DER ERFINDUNG
-
Die vorliegende Erfindung betrifft allgemein das Gebiet der Spracherkennung und insbesondere ein Verbessern der Transkription von Äußerungen in der Spracherkennung. Spracherkennungsmodelle versuchen seit Langem, Benutzern ein Interagieren mit Datenverarbeitungseinheiten über Äußerungen oder gesprochene Befehle zu ermöglichen. Die Fähigkeit von Sprachassistenten, gesprochene Befehle und Äußerungen zu verarbeiten, hat im Zuge der Verbesserungen bei den Verarbeitungskapazitäten und der Speicherkapazität in den vergangenen zehn Jahren enorm zugenommen. Diese Verbesserungen haben die Entwicklung einer neuen Benutzerschnittstelle ermöglicht, bei der gesprochene Befehle und Äußerungen der Datenverarbeitungseinheit Anweisungen bereitstellen können. Bei einigen Modellen ist Spracherkennung mit einem Empfangen von Schallwellen und Erkennen von Phonemen aus den Schallwellen und einem Zuweisen einer für einen Computer verständlichen Bedeutung zu den Phonemen verbunden.
-
KURZDARSTELLUNG
-
Ausführungsformen der vorliegenden Offenbarung umfassen ein mittels Computer realisiertes Verfahren, ein Computerprogrammprodukt und ein System zum Trainieren eines Modells zum Verbessern der Spracherkennung eines Sprachassistenten. Das Trainieren des Modells zum Verbessern der Spracherkennung kann mit einem Empfangen einer Historie von Äußerungen und entsprechenden Audiomaßzahlen für die Äußerungen und mit einem Erzeugen einer Klingt-ähnlich-Liste für mindestens eine Äußerung auf der Grundlage der Historie von Äußerungen und der Audiomaßzahlen für die Äußerungen verbunden sein.
-
Mit der vorstehenden Kurzdarstellung ist nicht beabsichtigt, jede veranschaulichte Ausführungsform jeder Realisierungsform der vorliegenden Offenbarung zu beschreiben.
-
Figurenliste
-
- 1 ist ein Funktionsblockschema, das eine Korrekturumgebung für Spracherkennungstranskriptionen gemäß einer Ausführungsform der vorliegenden Erfindung allgemein bildlich darstellt.
- 2 ist ein Funktionsblockschema, das eine Transkriptionskorrektur-Steuerungsroutine (transcription correction engine) gemäß einer Ausführungsform der vorliegenden Erfindung bildlich darstellt.
- 3 ist ein Funktionsblockschema, das ein automatisches Spracherkennungsmodul gemäß einer Ausführungsform der vorliegenden Erfindung bildlich darstellt.
- 4 ist ein Flussdiagramm, das ein Verfahren zum Erzeugen einer Klingt-ähnlich-Liste gemäß einer Ausführungsform der vorliegenden Erfindung bildlich darstellt.
- 5 ist ein Flussdiagramm, das ein Verfahren zum Korrigieren einer Spracherkennungstranskription gemäß einer Ausführungsform der vorliegenden Erfindung bildlich darstellt.
- 6 ist ein Funktionsblockschema eines beispielhaften Datenverarbeitungssystems innerhalb der Korrekturumgebung für Spracherkennungstranskriptionen gemäß einer Ausführungsform der vorliegenden Erfindung eines beispielhaften Computersystems.
- 7 ist ein Darstellung, die eine Cloud-Computing-Umgebung gemäß Ausführungsformen der vorliegenden Erfindung bildlich darstellt.
- 8 ist ein Funktionsblockschema, das Abstraktionsmodellschichten gemäß einer Ausführungsform der vorliegenden Erfindung bildlich darstellt.
-
Zwar können an den hierin beschriebenen Ausführungsformen verschiedene Modifikationen vorgenommen werden, und die Ausführungsformen können alternative Formen annehmen, deren Besonderheiten jedoch sind beispielhaft in den Zeichnungen gezeigt und werden ausführlich beschrieben. Es sollte jedoch klar sein, dass die bestimmten beschriebenen Ausführungsformen nicht in einem einschränkenden Sinne zu verstehen sind. Im Gegenteil, die Offenbarung soll alle Modifikationen, Äquivalente und Alternativen einschließen, die in den Grundgedanken und Schutzumfang der Erfindung fallen.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die bildlich dargestellten Ausführungsformen ermöglichen einen Ansatz zum Korrigieren von Spracherkennungstranskriptionen, insbesondere ein Vergleichen der Phoneme einer Transkription mit niedrigem Vertrauen mit erwarteten Ausdrücken mit hoher Häufigkeit und zum Korrigieren der Transkription mit niedrigem Vertrauen auf der Grundlage des Vergleichs.
-
Bei einer Ausführungsform der Erfindung wird ein Protokoll von historischen Aufzeichnungen von Benutzeräußerungen und Audiomaßzahlen an einem bestimmten Knoten eines virtuellen Assistenten (VA) empfangen. Bei einem VA kann es sich um ein Frage-Antwort-Programm (z.B. Watson® von International Business Machines, Inc., Siri® von Apple, Inc., Alexa® von Amazon, LLC usw.) handeln, oder bei einem VA kann es sich um ein Computerprogramm handeln, das mit einem Benutzer in Zusammenhang steht, dem Aufforderungen bereitgestellt werden und der in einer Weise auf Aufforderungen mit Äußerungen oder Befehlen antwortet, als würde der Benutzer eine Kundendienstnummer anrufen. Darüber hinaus kann sich bei einem Knoten um die durch den VA bereitgestellte abgetrennte Aufforderung oder Frage handeln, wobei der VA bestimmte Antworten erwartet. Die Aufzeichnungen werden auf der Grundlage des Ausdrucks erkannt, der durch einen Benutzer geäußert wurde, der durch den VA ermittelt wurde. Die Äußerungen mit der höchsten Häufigkeit werden ebenfalls erkannt. Die Äußerungen mit der höchsten Häufigkeit werden in ihre jeweiligen Phoneme extrahiert. Ein extrahiertes Phonem/extrahierte Phoneme kann/können abgetrennt werden, und eine Liste von ähnlich klingenden Phonemen kann für das Phonem erzeugt werden. Ein Ähnlichkeitsvertrauenspunktwert kann für eine Ähnlichkeit des Phonems in den Listenklängen mit dem extrahierten Phonem erzeugt werden. Die Liste ähnlicher Klänge kann in einem Datendepot (data repository) gespeichert werden, das dem jeweiligen VA-Knoten entspricht.
-
Bei einer weiteren Ausführungsform der Erfindung kann an einem Knoten eine Äußerungsaufzeichnung auf der Grundlage einer Aufforderung von einem VA empfangen werden. Die Aufzeichnung kann durch ein automatisches Spracherkennungsmodul (ASR-Modul) (ASR = Automatic Speech Recognition) transkribiert werden, und ein Vertrauenspunktwert für die Transkription kann auf der Grundlage der erwarteten Antwort auf die Aufforderung des VA-Knotens und/oder der Audiomaßzahlen der Aufzeichnung zugewiesen werden. Wenn der Vertrauenspunktwert unterhalb eines Schwellenwerts liegt, wird die Transkription als „Fehlschlag“ betrachtet. Gute potenzielle Transkriptionen aus einer „Klingt ähnlich“-Liste von Antworten mit Ausdrücken mit hoher Häufigkeit für den Knoten können aus einem Datendepot geladen werden. Die fehlgeschlagene Transkription kann auf der Grundlage der erwarteten Ausdrücke mit hoher Häufigkeit mit guten Transkriptionen abgeglichen werden, wobei Phoneme aus dem „Fehlschlag“ mit Phonemen aus den potenziellen guten Transkriptionen verglichen werden. Die abgeglichenen Transkriptionen werden auf der Grundlage korrekt ausgerichteter Phoneme mit Punkten bewertet. Die „Fehlschlag“-Transkription kann durch die potenzielle gute Transkription mit der höchsten Punktbewertung ersetzt werden, wenn der abgeglichene Punktwert oberhalb des Schwellenwerts liegt.
-
1 ist ein Funktionsblockschema, das allgemein eine Korrekturumgebung 100 für Spracherkennungstranskriptionen bildlich darstellt. Die Korrekturumgebung 100 für Spracherkennungstranskriptionen weist ein automatisches Spracherkennungsmodul (ASR-Modul) 104 und eine auf einem Server 102 betriebsfähige Transkriptionskorrektur-Steuerungsroutine 106, ein auf dem Server 102 gespeichertes Datendepot 108, einen Client-Computer 112 und ein Netzwerk 110 auf, das Datenübertragung zwischen dem Server 102 und dem Client-Computer 112 unterstützt. Es sollte beachtet werden, dass zur Vereinfachung dies nur auf dem Server 102 erfolgt, jedoch mehrere Server und andere Datenverarbeitungseinheiten innerhalb der Umgebung (d.h. 1, 2, n...n+1) enthalten sein können, auf die über das Netzwerk 110 zugegriffen werden kann.
-
Bei dem Server 102 und dem Client-Computer 112 kann es sich um eine eigenständige Datenverarbeitungseinheit, einen Verwaltungsserver, einen Webserver, eine mobile Datenverarbeitungseinheit oder eine beliebige elektronische Einheit oder ein beliebiges elektronisches Datenverarbeitungssystem handeln, die in der Lage sind, Daten zu empfangen, zu senden und zu verarbeiten. Bei anderen Ausführungsformen können der Server 102 und der Client-Computer 112 für ein Server-Datenverarbeitungssystem stehen, das mehrere Computer als Server-System nutzt. Bei einer weiteren Ausführungsform kann es sich bei dem Server 102 und dem Client-Computer 112 um einen Laptop-Computer, einen Tablet-Computer, einen Netbook-Computer, einen Personal Computer, einen Desktop-Computer oder eine beliebige programmierbare elektronische Einheit handeln, die in der Lage ist, Daten mit anderen Datenverarbeitungseinheiten (nicht gezeigt) innerhalb der Korrekturumgebung 100 für Spracherkennungstranskriptionen über das Netzwerk 110 auszutauschen.
-
Bei einer weiteren Ausführungsform stehen der Server 102 und der Client-Computer 112 für ein Datenverarbeitungssystem, das geclusterte (zu Gruppen zusammengefasste) Computer und Komponenten (z.B. Datenbankserver-Computer, Anwendungsserver-Computer usw.) nutzt, die als ein einziger Pool von nahtlosen Ressourcen fungieren, wenn auf diese innerhalb der Korrekturumgebung 100 für Spracherkennungstranskriptionen zugegriffen wird. Der Server 102 und der Client-Computer 112 können interne und externe Hardwarekomponenten umfassen, wie bildlich dargestellt und ausführlicher in Bezug auf 6 beschrieben.
-
Bei dem automatischen Spracherkennungsmodul (ASR-Modul) 104 kann es sich um ein Computermodul handeln, das in der Lage ist, eine Äußerung oder einen Befehl zu empfangen und diese bzw. diesen in ein durch einen Computer lesbares Format zu übersetzen (nachstehend ausführlicher beschrieben). Es sollte beachtet werden, dass in 1 das ASR-Modul 104 zwar als auf dem Server 102 betriebsfähig gezeigt ist, jedoch auf einer beliebigen Datenverarbeitungseinheit, die mit der Transkriptionskorrektur-Steuerungsroutine 106 Daten über das Netzwerk 110 austauscht, oder auf einer beliebigen lokalen Datenverarbeitungseinheit mit der Transkriptionskorrektur-Steuerungsroutine 106 betriebsfähig sein kann.
-
Bei der Transkriptionskorrektur-Steuerungsroutine 106 kann es sich um ein Modul zum Empfangen historischer Datenprotokolle handeln. Zu historischen Datenprotokollen können die Aufzeichnungen von Benutzeräußerungen gehören. Zum Beispiel die Aufzeichnungen von Benutzeräußerungen, die mit einem oder mehreren Knoten innerhalb eines virtuellen Assistenzsystems in Zusammenhang stehen. Zu historischen Datenprotokollen können außerdem die Audiomaßzahlen hören, die den aufgezeichneten Benutzeräußerungen entsprechen. Zu Audiomaßzahlen können Informationen bezüglich der Qualität der Aufzeichnung gehören, unter anderem Signal-Rausch-Verhältnis, Hintergrundgeräusche, Sprechverhältnis, Hochfrequenzverlust, Gleichstrom-Offset, Begrenzungsrate, Sprechpegel und Nicht-Sprechpegel. Audiomaßzahlen können durch Software bereitgestellt werden, unter anderem und ohne auf diesen beschränkt zu sein, durch den Sprache-in-Text-Dienst Watson® von International Business Machines, Inc., der Audiomaßzahlmerkmale extrahiert. Darüber hinaus kann die Transkriptionskorrektur-Steuerungsroutine 106 in der Lage sein, die Ausdrücke mit der höchsten Häufigkeit aus den historischen Datenprotokollen innerhalb eines bestimmten Zeitrahmens (z.B. ein Monat, zwei Wochen oder benutzerdefiniert) zu erkennen. Ferner kann die Transkriptionskorrektur-Steuerungsroutine 106 die Benutzeräußerungen der häufigsten Ausdrücke in die Phoneme der Ausdrücke auftrennen. Eine Liste von Phonemen, die den aufgetrennten Phonemen ähnlich klingen, kann durch die Transkriptionskorrektur-Steuerungsroutine 106 erzeugt werden (nachstehend ausführlicher erläutert).
-
Ferner kann die Transkriptionskorrektur-Steuerungsroutine 106 eine Benutzeräußerung und Audiomaßzahlen für die Äußerung über eine Aufzeichnung oder in Echtzeit für einen bestimmten VA-Knoten empfangen und die Äußerung in eine Transkription übersetzen. Ein Transkriptionsvertrauenspunktwert kann für die Transkription auf der Grundlage der erwarteten Antwort auf die Äußerung und der Audiomaßzahlen erzeugt werden. Ferner kann die Transkriptionskorrektur-Steuerungsroutine 106 die Transkription auf der Grundlage der Klingt-ähnlich-Liste (nachstehend ausführlicher erläutert). Es sollte beachtet werden, dass 1 die Transkriptionskorrektur-Steuerungsroutine 106 zwar als auf einer oder mehreren Datenverarbeitungseinheiten betriebsfähig zeigt, die Transkriptionskorrektur-Steuerungsroutine 106 bei einigen Ausführungsformen jedoch auf einer oder mehreren Datenverarbeitungseinheiten oder innerhalb eines Cloud-Computing-Systems betriebsfähig sein kann. Die Transkriptionskorrektur-Steuerungsroutine 106 kann einige vorstehend beschriebene Aktionen auf derselben Datenverarbeitungseinheit oder in unterschiedlichen Datenverarbeitungseinheiten durchführen.
-
Bei dem Datendepot 108 kann es sich um eine Datenbank handeln, die zum Speichern von Daten in der Lage ist, unter anderem und ohne auf diese beschränkt zu sein, von „Klingt ähnlich“-Listen, Phonemvertrauenspunktwerten, Transkriptionsvertrauenspunktwerten, Äußerungen und entsprechenden Audiomaßzahlen für einen bestimmten VA-Knoten. Es sollte beachtet werden, dass 1 das Datendepot 108 zwar als auf dem Server 102 befindlich zeigt, das Datendepot 108 bei einigen Ausführungsformen sich jedoch auf einer oder mehreren Datenverarbeitungseinheiten oder innerhalb eines Cloud-Computing-Systems befinden kann.
-
Bei dem Netzwerk 110 kann es sich zum Beispiel um ein lokales Netzwerk (local area network, LAN), ein Weitverkehrsnetzwerk (wide area network, WAN) wie z.B. das Internet oder um eine Kombination aus beiden handeln, und es kann kabelgebundene, kabellose und/oder lichtwellenleitergebundene Verbindungen umfassen. Im Allgemeinen kann es sich bei dem Netzwerk 110 um eine beliebige Kombination aus Verbindungen und Protokollen handeln, die Datenübertragung zwischen dem Server 102 und dem Client-Computer 112 unterstützen.
-
2 ist ein Funktionsblockschema 200 einer Transkriptionskorrektur-Engine 106. Ein Ausdruckserkennungsmodul 202 und ein Phonemvergleichsmodul 204 sind als innerhalb der Transkriptionskorrektur-Engine 106 betriebsfähig gezeigt.
-
Bei dem Ausdruckserkennungsmodul 202 handelt es sich um ein Computermodul, das in der Lage ist, auf ihre Phoneme aufgegliederte Äußerungen sowie Audiomaßzahlen von dem Datendepot 108 zu empfangen oder abzurufen. Darüber hinaus kann das Ausdruckserkennungsmodul 202 auch in Phoneme aufgegliederte Echtzeit-Benutzeräußerungen und Audiomaßzahlen von dem ASR-Modul 104 empfangen. Bei einigen Ausführungsformen kann das Ausdruckserkennungsmodul 202 die Äußerungen mit hoher Häufigkeit aus historischen Audioprotokollen und ihre entsprechenden Ausdrücke für einen bestimmten Knoten eines VA erkennen. Ferner kann das Ausdruckserkennungsmodul 202 den Prozentsatz ermitteln, mit dem ein Ausdruck an einem bestimmten Knoten über einen Zeitraum hinweg verwendet wurde. Der Zeitraum kann je nach Konfiguration statisch oder dynamisch sein. Wenn zum Beispiel über einen bestimmten Monat hinweg ein Kundendienst-VA für ein Finanzinstitut Benutzern vier Aufforderungen bereitstellt, aus denen eine Auswahl zu treffen ist: 1) checking (Kontrolle), 2) savings (Rücklagen), 3) retirement (Ausbuchung) oder 4) Ioans (Darlehen). Das Ausdruckserkennungsmodul 202 kann ermitteln, welche der historischen aufgezeichneten Äußerungen jedem Ausdruck entspricht, und den Prozentsatz erzeugen, mit dem jeder Ausdruck durch einen Benutzer ausgewählt wird (z.B. checking 55 %, savings 25 %, retirement 10 % und loans 10 %). Darüber hinaus kann das Ausdruckserkennungsmodul 202 Äußerungen erkennen, die aufgrund schlechter Audiomaßzahlen, von Akzenten oder fehlerhafter Aussprache nicht exakt übereinstimmen (z.B. gibt ein Benutzer „refirement“ anstelle von „retirement“ oder „sabings“ anstelle von „savings“ an). Das Ausdruckserkennungsmodul 202 kann die Ausdrücke mit hoher Häufigkeit und Äußerungen erkennen, die den Ausdrücken entsprechen, und die Ausdrücke an das Phonemvergleichsmodul 204 senden.
-
Bei dem Phonemvergleichsmodul 204 kann es sich um ein Computermodul mit der Fähigkeit zum Analysieren von Phonemen handeln, die aus historischen Äußerungen und Echtzeit-Benutzeräußerungen extrahiert wurden. Bei einer Ausführungsform kann das Phonemvergleichsmodul die Ausdrücke und Phoneme für Äußerungen für einen VA-Knoten des Ausdruckserkennungsmoduls 202 empfangen oder abrufen. Ferner kann das Phonemvergleichsmodul 204 eine Klingt-ähnlich-Liste für die Phoneme der Äußerungen auf der Grundlage der Ausdrücke des VA-Knotens erzeugen. Zum Beispiel gibt es im Englischen 44 Phoneme. Das Phonemvergleichsmodul 204 kann die Phoneme eines Ausdrucks ermitteln und Phoneme finden, die diesem Ausdruck ähnlich sind, um eine „Klingt ähnlich“-Liste von Phonemen zu erzeugen. Bei einigen Ausführungsformen kann jedem Phonem auf der Liste ein Ähnlichkeitspunktwert zugewiesen werden. Der Ähnlichkeitspunktwert kann auf einer durch einen Menschen mit Anmerkungen versehenen Phonemliste oder auf einer Analyse der Ähnlichkeit eines Audiospektrogramms zwischen den beiden Phonemen beruhen. Bei einigen Ausführungsformen kann der Ähnlichkeitspunktwert ein regionales Dialektmerkmal enthalten, das auf einem Erkennen des Akzents des Benutzers beruht, der sich äußert.
-
Bei einigen Ausführungsformen kann das Phonemvergleichsmodul 204 von dem ASR-Modul 104 eine Echtzeit-Transkription einer Benutzeräußerung und die extrahierten Phoneme der Äußerung mit einem Transkriptionsvertrauenspunktwert unterhalb eines Schwellenwerts empfangen. Das Phonemvergleichsmodul 204 kann die Phoneme aus der Äußerung analysieren, um eine potenzielle „gute“ Transkription für die Echtzeit-Benutzeräußerung zu erzeugen. Bei einigen Ausführungsformen wird die Anzahl von Phonemen gegen die Anzahl von erwarteten Phonemen für einen erwarteten Ausdruck für den VA-Knoten geprüft. Ausdrücke mit zwei oder mehr Phonemen werden zurückgewiesen. Wenn zum Beispiel ein Benutzer „au-thor-i-za-tion“ zu sagen beabsichtigt und das ASR-Modul 104 dies als „of-her-i-say-shun“ transkribiert, würde das Phonemvergleichsmodul 204 verstehen, dass fünf Phoneme in der Äußerung vorliegen, und die Ausdrücke mit hoher Häufigkeit aus der Liste entfernen, die vier oder weniger Phoneme und 6 oder mehr Phoneme enthalten. Ferner können die verbliebenen Ausdrücke analysiert werden, um zu ermitteln, welche Phoneme übereinstimmen. Die Phoneme, die nicht übereinstimmen, werden mit den Phonemen aus der „Klingt ähnlich“-Liste für den erwarteten Ausdruck verglichen. Bei dem vorstehenden Beispiel würde es sich bei „i-say-shun“ um eine Übereinstimmung mit der Klingt-ähnlich-Liste handeln. Die verbliebenen beiden Phoneme „of” und „her“ würden mit den Phonemen verglichen werden, die in der Klingt-ähnlich-Liste ähnlich wie „authorization“ klingen. Bei diesem Beispiel steht „of“ in der Klingt-ähnlich-Liste für das Phonem und „au“. Jedoch steht „her“ nicht in der Klingt-ähnlich-Liste für das Phonem, das „thor“ entspricht. Beliebige Ausdrücke, die übereinstimmen, erhalten einen Phonemausrichtungspunktwert, und wenn der Phonemausrichtungspunktwert oberhalb eines Schwellenwerts liegt (vorgegeben oder auf der Grundlage von Audiomaßzahlen dynamisch), können die neu ausgerichteten Phoneme die ursprüngliche Transkription ersetzen. Ein Phonemausrichtungspunktwert kann berechnet werden, indem der Prozentsatz korrekt ausgerichteter Phoneme der ursprünglichen Transkription ermittelt wird und der Prozentsatz um den Klingt-ähnlich-Punktwert mit dem/den falsch ausgerichteten Phonem(en) berücksichtigt wird. Die neue Transkription kann zum Aktualisieren des ASR-Moduls 104 verwendet werden.
-
3 ist ein Funktionsblockschema 300 des ASR-Moduls 104 gemäß einer Ausführungsform der Erfindung. Das ASR-Modul 104 besteht aus einer Sprachübersetzungseinheit 302, einer Sprachtranskriptionseinheit 304, einer Tokenisierungseinheit 306, einer Wortartmarkierungseinheit (POS-Markierungseinheit) (POS = part-of-speech) 308, einer Erkennungseinheit 310 für semantische Beziehungen und einer Erkennungseinheit 312 für syntaktische Beziehungen. Bei einigen Ausführungsformen kann es sich bei dem ASR-Modul 104 um ein neuronales Netz oder ein verborgenes Markowmodell oder einen Hybriden aus einem neuronalen Netz und einem verborgenen Markowmodell handeln, der in der Lage ist, Äußerungen zu empfangen und die Phoneme aus den Äußerungen zu extrahieren und Text aus den extrahierten Phonemen zu transkribieren.
-
Die Sprachübersetzungseinheit 302 kann Äußerungen von einem Benutzer empfangen oder abrufen. Die Äußerungen können in Echtzeit als Schallwellenmodell aufgezeichnet oder empfangen werden. Die Sprachübersetzungseinheit 302 kann zur weiteren Analyse das Wellenmodell in ein Audiospektrogramm umsetzen. Das Audiospektrogramm kann eine optische Darstellung der Dauer, Amplitude und Frequenz der Äußerungen in einer zweidimensionalen Darstellung bereitstellen. Die Sprachübersetzungseinheit 302 kann auf der Grundlage einer Analyse des Audiospektrogramms Phoneme ermitteln. Darüber hinaus kann das Spektrogramm in kleinere Zeitrahmen (z.B. 10 Millisekunden) aufgegliedert werden, um die Ermittlung von Phonemen aus der Äußerung zu verbessern.
-
Bei der Sprachtranskriptionseinheit 304 handelt es sich um ein Computermodul, das in der Lage ist, Text auf der Grundlage einer Analyse von Phonemen zu erzeugen, die von der Sprachübersetzungseinheit 302 empfangen oder abgerufen wurden. Einige Ausführungsformen der Erfindung können Eigenschaften haben, um ein Wort auf der Grundlage eines Vorhersagemodells zu ermitteln, wobei das (die) vorhergehende(n) Phonem(e) in der Vorhersage berücksichtigt wird (werden). Ferner kann die Sprachtranskriptionseinheit bei der Entstehung von Transkribierungstext Eingaben von der Tokenisierungseinheit 306, der POS-Markierungseinheit 308, der Erkennungseinheit 310 für semantische Beziehungen und der Erkennungseinheit 312 für syntaktische Beziehungen übernehmen. Die Sprachtranskriptionseinheit kann außerdem die Fähigkeit bereitstellen, auf der Grundlage der Audiomaßzahlen, die den Äußerungen entsprechen, der Transkription einen Transkriptionsvertrauenspunktwert zuzuweisen. Bei einigen Ausführungsformen kann es sich bei dem Transkriptionsvertrauenspunktwert um eine Bewertung des Signal-Rausch-Verhältnisses, der Hintergrundgeräusche, des Sprechverhältnisses, des Hochfrequenzverlusts, des Gleichstrom-Offsets, der Begrenzungsrate, des Sprechpegels und des Nicht-Sprechpegels handeln. Bei anderen Ausführungsformen kann der Vertrauenspunktwert kontextgesteuert sein, wobei der Punktwert auf der erwarteten Antwort für einen bestimmten VA-Knoten beruht. Ferner kann die erwartete Antwort darin bestehen, wie gut die Transkription mit den erwarteten Antworten übereinstimmt.
-
Bei einigen Ausführungsformen kann es sich bei der Tokenisierungseinheit 306 um ein Computermodul handeln, das eine lexikalische Analyse durchführt. Die Tokenisierungseinheit 306 kann eine Abfolge von Zeichen in eine Abfolge von Token umwandeln. Bei einem Token kann es sich um eine Zeichenkette handeln, die in einer Aufzeichnung enthalten und als aussagekräftiges Symbol kategorisiert ist. Ferner kann die Tokenisierungseinheit 306 bei einigen Ausführungsformen Wortgrenzen in einer Aufzeichnung erkennen und beliebigen Text innerhalb des Korpus in seine jeweiligen Komponententextelemente wie z.B. Wörter, Mehrfachwort-Token, Zahlen und Interpunktionszeichen zerlegen. Bei einigen Ausführungsformen kann die Tokenisierungseinheit 306 eine Zeichenkette empfangen, die Lexeme in der Zeichenkette erkennen und sie in Token kategorisieren.
-
Gemäß verschiedenen Ausführungsformen kann es sich bei der POS-Markierungseinheit 308 um ein Computermodul handeln, das ein Wort in einer Transkription zuweist, sodass es einer bestimmten Wortart entspricht. Die POS-Markierungseinheit 308 kann die Transkription der Äußerung analysieren und jedem Wort oder jedem Token eine Wortart zuweisen. Die POS-Markierungseinheit 308 kann auf der Grundlage der Definition des Wortes und des Kontextes des Wortes die Wortart ermitteln, zu der ein Wort gehört. Der Kontext eines Wortes kann auf seiner Beziehung zu benachbarten und verwandten Wörtern in einem Satzteil, einen Satz oder einem Absatz beruhen. Bei einigen Ausführungsformen kann der Kontext eines Wortes von einem oder mehreren zuvor analysierten Wörtern in dem Korpus abhängig sein. Zu Beispielen von Wortarten, die Wörtern zugewiesen werden können, gehören Substantive, Verben, Adjektive, Adverbien und dergleichen, ohne auf diese beschränkt zu sein. Zu Beispielen von anderen Wortartkategorien, die die POS-Markierungseinheit 308 zuweisen kann, gehören Adverbien des Komparativs und Superlativs, W-Adverbien, Konjunktionen, Bestimmungswörter, Negationspartikeln, Markierungen zur Besitzanzeige, Präpositionen, W-Pronomen und dergleichen, ohne auf diese beschränkt zu sein. Bei einigen Ausführungsformen kann die POS-Markierungseinheit 308 Token eines „ein/eine“-Wortes in einem Korpus mit Wortartkategorien markieren oder anderweitig mit Anmerkungen versehen. Bei einigen Ausführungsformen kann die POS-Markierungseinheit 308 Token oder Wörter eines Korpus markieren, die durch die Sprachtranskriptionseinheit 304 analysiert werden sollen.
-
Bei einigen Ausführungsformen kann es sich bei der Erkennungseinheit 310 für semantischen Beziehungen um ein Computermodul handeln, das so konfiguriert ist, dass es semantische Beziehungen von erkannten Subjekten (z.B. Wörter, Satzteile, Bilder usw.) in einem Korpus erkennt. Bei einigen Ausführungsformen kann die Erkennungseinheit 310 für semantische Beziehungen funktionale Abhängigkeiten zwischen Entitäten und andere semantische Beziehungen innerhalb der Transkription erkennen.
-
Gemäß verschiedenen Ausführungsformen kann es sich bei der Erkennungseinheit 312 für syntaktische Beziehungen um ein Computermodul handeln, das so konfiguriert sein kann, dass es syntaktische Beziehungen in einem aus Token aufgebauten Korpus erkennt. Die Erkennungseinheit 312 für syntaktische Beziehungen kann die grammatische Struktur von Sätzen ermitteln, zum Beispiel, welche Gruppen von Wörtern zu Satzteilen zugehörig sind und welches Wort das Subjekt oder Objekt eines Verbs ist. Die Erkennungseinheit 312 für syntaktische Beziehungen kann formaler Grammatik entsprechen.
-
4 ist ein Flussdiagramm, das ein Verfahren 400 zum Erzeugen einer „Klingt ähnlich“-Liste bildlich darstellt. Bei 402 werden historische Äußerungen und die entsprechenden Audiomaßzahlen bei der Transkriptionskorrektur-Engine 106 empfangen.
-
Bei 404 erkennt die Transkriptionskorrektur-Engine 106 aus den historischen Äußerungen und den Audiomaßzahlen die Ausdrücke mit hoher Häufigkeit. Die Ausdrücke mit hoher Häufigkeit können durch das Ausdruckserkennungsmodul 202 über eine Analyse der Anzahl erkannt werden, wie oft der Ausdruck bei einem VA-Knoten in einem Zeitrahmen ausgewählt wurde. Ferner können bei einigen Ausführungsformen die Audiomaßzahlen Ausdruckserkennung bewertet werden, um zu ermitteln, ob der Ausdruck ausgewählt wurde, und wenn die Audiomaßzahlen für eine bestimmte Äußerung schlecht sind, kann die Äußerung von der endgültigen Analyse abgezogen werden.
-
Bei 406 kann das ASR-Modul 104 die erkannten Ausdrücke mit hoher Häufigkeit in die entsprechenden Phoneme zerlegen. Bei einigen Ausführungsformen bewertet das ASR-Modul 104 das Schallwellenmodell einer Äußerung, die zuvor aufgezeichnet wurde, und die Sprachübersetzungseinheit 302 wandelt das Schallwellenmodell in ein Audiospektrogramm um und isoliert die Phoneme aus dem Audiospektrogramm. Die Sprachtranskriptionseinheit 304 kann die isolierten Phoneme mit Eingaben aus der Tokenisierungseinheit 306, der POS-Markierungseinheit 308, der Erkennungseinheit 310 für semantische Beziehungen und der Erkennungseinheit 312 für syntaktische Beziehungen in Text umwandeln, wodurch sichergestellt wird, dass der transkribierte Text semantisch und syntaktisch korrekt ist.
-
Bei 408 erzeigt das Phonemvergleichsmodul 204 eine „Klingt ähnlich“-Liste für die Phoneme mit hoher Häufigkeit, die durch das ASR-Modul 104 transkribiert wurden. Ferner kann das Phonemvergleichsmodul 204 der Liste ähnlich klingender Phoneme für jedes Phonem aus den Ausdrücken mit hoher Häufigkeit einen Vertrauenspunktwert zuweisen.
-
5 ist ein Flussdiagramm, das ein Verfahren 500 zum Korrigieren einer Transkription unter Verwendung einer Klingt-ähnlich-Liste bildlich darstellt. Bei 502 können durch das ASR-Modul 104 eine Äußerung und Audiomaßzahlen empfangen werden. Die Äußerung kann für einen bestimmten VA-Knoten oder innerhalb einer Offener-Dialog-Umgebung für einen VA erfolgen. Bei einigen Ausführungsformen kann die Äußerung innerhalb eines bestimmten Kontextes von einer automatisierten Kundendienstrufnummer erfolgen. Bei noch einer weiteren Ausführungsform kann die Äußerung aus einer Offener-Dialog-Umgebung stammen, bei der ein Betrieb des VA durch eine bestimmte Äußerung und einen bereits vorhandenen gegebenen Befehl oder durch eine in einem bestimmten Fachgebiet gestellte Frage ausgelöst wird.
-
Bei 504 kann das ASR-Modul 104 die empfangene Äußerung transkribieren. Bei einigen Ausführungsformen kann das ASR-Modul 104 die Äußerung in ihre Phoneme aufgliedern und den Text auf der Grundlage der Phoneme erzeugen. Bei einigen Ausführungsformen kann der Text unter Verwendung eines Vorhersagemodells erzeugt werden, wobei es sich bei dem Modell um ein tiefes neuronales Netz handelt.
-
Bei 506 kann das ASR-Modul 104 der Transkription der Äußerung einen Transkriptionsvertrauenspunktwert zuweisen. Bei einigen Ausführungsformen kann der Transkriptionsvertrauenspunktwert auf einer Bewertung der Audiomaßzahlen oder auf dem Kontext auf der Grundlage der erwarteten Antwort oder auf einer Kombination der beiden beruhen.
-
Bei 508 ermittelt die Transkription-Steuerungsroutine 106, ob der Transkriptionsvertrauenspunktwert oberhalb eines Schwellenwerts liegt. Der Schwellenwert kann statisch oder dynamisch sein. Wenn der Schwellenwert statisch ist, kann er durch einen Benutzer auf der Grundlage der Beurteilung durch den Benutzer oder auf der Grundlage der Bedürfnisse zu dem Zeitpunkt konfiguriert werden. Der Schwellenwert kann auf der Grundlage zahlreicher Faktoren, unter anderem zu dem Zeitpunkt verfügbare Datenverarbeitungsressourcen, Länge der Äußerungen, Nutzung des VA-Knotens zu dem Zeitpunkt des Empfangens der Äußerung usw., dynamisch konfiguriert werden. Wenn der Transkriptionsvertrauenspunktwert unterhalb eines Schwellenwerts liegt, wird die Transkription als „Fehlschlag“ betrachtet und zur weiteren Verarbeitung gesendet. Wenn der Vertrauenspunktwert oberhalb eines Schwellenwerts liegt, endet das Transkriptionsverfahren.
-
Bei 510 vergleicht das Phonemvergleichsmodul 204 die Phoneme in der „Fehlschlag“-Transkription mit Phonemen von Ausdrücken mit hoher Häufigkeit für einen bestimmten Knoten. Bei einigen Ausführungsformen kann das Phonemvergleichsmodul so konfiguriert sein, dass es eine Anzahl von Phonemen in der Transkription analysiert und ermittelt, welche Ausdrücke mit hoher Häufigkeit aus einem/einer dieselbe Anzahl von Phonemen enthalten. Ferner kann das Phonemvergleichsmodul 204 ermitteln, ob beliebige Phoneme in der Transkription mit den Phonemen in den Ausdrücken mit hoher Häufigkeit übereinstimmen. Phoneme aus beliebigen Ausdrücken mit hoher Häufigkeit, die nicht mit den Phonemen in der Transaktion übereinstimmen, können mit Phonemen aus einer „Klingt ähnlich“-Liste verglichen werden, um zu ermitteln, ob die Phoneme abgeglichen werden können. Darüber hinaus kann das Phonemvergleichsmodul 204 die Anzahl von abgeglichenen Phonemen und abgeglichenen „Klingt ähnlich“-Phonemen mit einem Punktwert versehen. Bei diesem Punktwert kann es sich um einen Prozentsatz von abgeglichenen Phonemen und einen Faktor von abgeglichenen „Klingt ähnlich“-Phonemen handeln.
-
Bei 512 wird die „Fehlschlag“-Transkription durch die Transkription ersetzt, die den abgeglichenen vornehmen entspricht, wenn der Punktwert abgeglichener Phoneme oberhalb eines Schwellenwerts (statisch oder dynamisch zugewiesen) liegt. Die neu entstandene Transkription kann zum Aktualisieren des ASR-Moduls 104 verwendet werden.
-
Bei 514 endet das Verfahren.
-
6 stellt ein Computersystem 600, ein beispielhaftes Computersystem, das für den Server 102 steht, und das Datendepot 108 oder eine beliebige andere Datenverarbeitungseinheit innerhalb einer Ausführungsform der vorliegenden Erfindung bildlich dar. Der Computersystem 600 umfasst eine Datenübertragungsstruktur 12, die Datenübertragung zwischen (einem) Computerprozessor(en) 14, einem Speicher 16, einem Permanentspeicher 18, einem Netzwerkadapter 28 und (einer) Eingabe/Ausgabe-Schnittstelle(n) (E/A-Schnittstelle(n)) 26 bereitstellt. Die Datenübertragungsstruktur 12 kann mit einer beliebigen Architektur realisiert sein, die auf das Weiterleiten von Daten und/oder Steuerinformationen zwischen Prozessoren (beispielsweise Mikroprozessoren, Datenübertragungs- und Netzwerkprozessoren usw.) und einem Systemhauptspeicher, Peripherieeinheiten und beliebigen anderen Hardwarekomponenten innerhalb eines Systems ausgelegt ist. Zum Beispiel kann die Datenübertragungsstruktur 12 mit einem oder mehreren Bussen realisiert sein.
-
Das Computersystem 600 umfasst Prozessoren 14, einen Cache 22, einen Speicher 16, einen Netzwerkadapter 28, (eine) Eingabe/Ausgabe-Schnittstelle(n) (E/A-Schnittstelle(n)) 26 und eine Datenübertragungsstruktur 12. Die Datenübertragungsstruktur 12 stellt Datenübertragung zwischen dem Cache 22, dem Speicher 16, dem Permanentspeicher 18, dem Netzwerkadapter 28 und der (den) Eingabe/Ausgabe-Schnittstelle(n) (E/A-Schnittstelle(n)) 26 bereit. Die Datenübertragungsstruktur 12 kann mit einer beliebigen Architektur realisiert sein, die auf das Weiterleiten von Daten und/oder Steuerinformationen zwischen Prozessoren (beispielsweise Mikroprozessoren, Datenübertragungs- und Netzwerkprozessoren usw.) und einem Systemhauptspeicher, Peripherieeinheiten und beliebigen anderen Hardwarekomponenten innerhalb eines Systems ausgelegt ist. Zum Beispiel kann die Datenübertragungsstruktur 12 mit einem oder mehreren Bussen oder mit einem Kreuzschienenschalter realisiert sein.
-
Bei dem Speicher 16 und dem Permanentspeicher 18 handelt es sich um durch einen Computer lesbare Speichermedien. Bei dieser Ausführungsform umfasst der Speicher 16 einen Permanentspeicher 18, einen Direktzugriffsspeicher (RAM) 20, einen Cache 22 und ein Programmodul 24. Im Allgemeinen kann der Hauptspeicher 16 beliebige geeignete flüchtige oder nichtflüchtige, durch einen Computer lesbare Speichermedien umfassen. Bei dem Cache 22 handelt es sich um einen schnellen Speicher, der das Leistungsvermögen der Prozessoren 14 verbessert, indem darin Daten gehalten werden, auf die aus dem Hauptspeicher 16 zugegriffen wurde, sowie Daten in der Nähe von Daten, auf die zugegriffen wurde. Wie ferner bildlich dargestellt und nachfolgend beschrieben ist, kann der Speicher 16 mindestens eines der Programmmodule 24 enthalten, das so konfiguriert ist, dass die Funktionen von Ausführungsformen der Erfindung ausgeführt werden.
-
Das Programm/Dienstprogramm, das mindestens ein Programmmodul 24 enthält, kann als Beispiel und nicht als Einschränkung im Speicher 16 sowie in einem Betriebssystem, in einem oder mehreren Anwendungsprogrammen oder in anderen Programmmodulen und Programmdaten gespeichert sein. Jedes der Betriebssysteme, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten oder eine bestimmte Kombination davon kann bzw. können eine Realisierungsform einer Vernetzungsumgebung umfassen. Das Programmmodul 24 führt allgemein die Funktionen und/oder Methodiken von Ausführungsformen der Erfindung wie hierin beschrieben aus.
-
Programmanweisungen und Daten, die zum praktischen Umsetzen von Ausführungsformen der vorliegenden Erfindung verwendet werden, können im Permanentspeicher 18 und im Hauptspeicher 16 gespeichert sein, um durch einen oder mehrere der jeweiligen Prozessoren 14 über den Cache 22 ausgeführt zu werden. Bei einer Ausführungsform umfasst der Permanentspeicher 18 ein magnetisches Festplattenlaufwerk. Alternativ oder zusätzlich zu einem magnetischen Festplattenlaufwerk kann der Permanentspeicher 18 eine Halbleiterspeicherplatte (solid state hard drive), eine Halbleiterspeichereinheit, einen Nur-Lese-Speicher (read-only memory, ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (erasable programmable read-only memory, EPROM), einen Flash-Speicher oder beliebige andere durch einen Computer lesbare Speichermedien enthalten, die in der Lage sind, Programmanweisungen oder digitale Informationen zu speichern.
-
Die durch den Permanentspeicher 18 verwendeten Medien können außerdem wechselbar sein. Zum Beispiel kann als Permanentspeicher 18 ein wechselbares Festplattenlaufwerk verwendet werden. Zu anderen Beispielen gehören optische und magnetische Platten, USB-Sticks und Smart-Cards, die in ein Laufwerk zur Übertragung auf ein weiteres, durch einen Computer lesbares Speichermedium eingeführt werden, das ebenfalls Bestandteil des Permanentspeichers 18 ist.
-
Der Netzwerkadapter 28 stellt bei diesen Beispielen Datenübertragung mit anderen Datenverarbeitungssystemen oder-einheiten bereit. Bei diesen Beispielen umfasst der Netzwerkadapter 28 eine oder mehrere Netzwerkschnittstellenkarten. Der Netzwerkadapter 28 kann Datenübertragung über die Verwendung von entweder physischen Datenübertragungsverbindungen oder kabellosen Datenübertragungsverbindungen oder beidem bereitstellen. Programmanweisungen und Daten, die zum praktischen Umsetzen von Ausführungsformen der vorliegenden Erfindung verwendet werden, können über den Netzwerkadapter 28 auf den Permanentspeicher 18 heruntergeladen werden.
-
Die E/A-Schnittstelle(n) 26 ermöglicht (ermöglichen) die Eingabe und Ausgabe von Daten mit anderen Einheiten, die mit jedem Computersystem verbunden sein können. Zum Beispiel kann die E/A-Schnittstelle 26 eine Verbindung zu externen Einheiten 30 wie zum Beispiel einer Tastatur, einem Tastenfeld, einem Touchscreen und/oder einer anderen geeigneten Eingabeeinheit bereitstellen. Zu externen Einheiten 30 können außerdem transportable, durch einen Computer lesbare Speichermedien wie z.B. USB-Sticks, transportable optische oder magnetische Platten und Speicherkarten gehören. Software und Daten, die zum praktischen Umsetzen von Ausführungsformen der vorliegenden Erfindung verwendet werden, können auf derartigen transportablen, durch einen Computer lesbaren Speichermedien gespeichert sein und über die E/A-Schnittstelle(n) 26 in den Permanentspeicher 18 geladen werden. Die E/A-Schnittstelle(n) 26 stellt/stellen außerdem eine Verbindung zu der Anzeige 32 her.
-
Die Anzeige 32 stellt einen Mechanismus bereit, um einem Benutzer Daten anzuzeigen, und es kann sich dabei zum Beispiel um einen Computermonitor oder eine virtuelle grafische Benutzeroberfläche handeln.
-
Die hierin beschriebenen Komponenten sind auf der Grundlage der Anwendung bezeichnet, für die sie bei einer bestimmten Ausführungsform der Erfindung realisiert sind. Es sollte jedoch klar sein, dass hierin eine bestimmte Komponentenbenennung lediglich der Vereinfachung dient und die Erfindung daher nicht auf die Verwendung ausschließlich in einer bestimmten Anwendung begrenzt sein soll, die durch eine derartige Benennung bezeichnet oder stillschweigend darin eingeschlossen ist.
-
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) enthalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
-
Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine materielle Einheit handeln, auf der Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen aufbewahrt und gespeichert sein können. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel, ohne auf diese beschränkt zu sein, um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder eine beliebige geeignete Kombination des Vorstehenden handeln. Eine nicht erschöpfende Liste genauerer Beispiele des durch einen Computer lesbaren Speichermediums umfasst Folgendes: eine transportable Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM oder Flash-Speicher), einen statischen Direktzugriffsspeicher (SRAM), einen transportablen Nur-Lese-Speicher in Form einer Compact Disc (CD-ROM), eine Digital Versatile Disc (DVD), einen Speicherstick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhöhte Strukturen in einer Rille mit darauf aufgezeichneten Anweisungen oder beliebige geeignete Kombinationen des Vorstehenden. Ein durch einen Computer lesbares Speichermedium im hierin verwendeten Sinne ist nicht so auszulegen, dass es sich dabei um flüchtige Signale an sich handelt, beispielsweise um Funkwellen oder sich frei ausbreitende elektromagnetische Wellen, um elektromagnetische Wellen, die sich durch einen Hohlleiter oder andere Übertragungsmedien ausbreiten (z.B. ein Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder um elektrische Signale, die über ein Kabel übertragen werden.
-
Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können über ein Netzwerk, zum Beispiel das Internet, ein lokales Netzwerk ein Weitverkehrsnetzwerk und/oder ein kabelloses Netzwerk von einem durch einen Computer lesbaren Speichermedium auf betreffende Datenverarbeitungs-/Verarbeitungseinheiten oder auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, kabellose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder eine Netzwerkschnittstelle in der Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren
-
Speichermedium innerhalb der jeweiligen Datenverarbeitungs-/Verarbeitungseinheit weiter.
-
Durch einen Computer lesbare Programmanweisungen zum Ausführen von Operationen der vorliegenden Erfindung können Assembleranweisungen, ISA-Anweisungen (ISA = Instruction Set Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, Daten zum Setzen von Zuständen oder entweder Quellcode oder Objektcode sein, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, zu denen eine objektorientierte Programmiersprache wie beispielsweise Smalltalk, C++ oder Ähnliches und herkömmliche prozedurale Programmiersprachen wie beispielsweise die Programmiersprache „C“ oder ähnliche Programmiersprachen gehören. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Bei dem letztgenannten Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über eine beliebige Art von Netzwerk verbunden sein, unter anderem über ein lokales Netzwerk (Local Area Network, LAN) oder über ein Weitverkehrsnetzwerk (Wide Area Network, WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (beispielsweise über das Internet unter Nutzung eines Internetdienstanbieters (Internet Service Provider)). Bei einigen Ausführungsformen können elektronische Schaltungen, zu denen beispielsweise programmierbare Logikschaltungen, vor Ort programmierbare Gatteranordnungen (Field-Programmable Gate Arrays, FPGA) oder programmierbare Logik-Arrays (PLA) gehören, die durch einen Computer lesbaren Programmanweisungen ausführen, indem Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen genutzt werden, um die elektronische Schaltung zu personalisieren, sodass Aspekte der vorliegenden Erfindung durchgeführt werden.
-
Im vorliegenden Dokument sind Aspekte der vorliegenden Erfindung unter Bezugnahme auf Ablaufpläne und/oder Blockschemata von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Flussdiagramme und/oder der Blockschemata und Kombinationen von Blöcken in den Flussdiagrammen und/oder Blockschemata mit Hilfe von durch einen Computer lesbaren Programmanweisungen realisiert werden kann bzw. können.
-
Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder anderer programmierbaren Datenverarbeitungsvorrichtungen bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen ausgeführt werden, Mittel schaffen, um die in einem Block bzw. in den Blöcken des Flussdiagramms bzw. der Flussdiagramme und/oder des Blockschemas bzw. der Blockschemata angegebenen Funktionen/Aktionen zu realisieren. Diese durch einen Computer lesbaren Programmanweisungen können ebenfalls in einem durch einen Computer lesbaren Medium gespeichert sein, das einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, sodass das durch einen Computer lesbare Medium mit darauf gespeicherten Anweisungen ein Erzeugnis aufweist, das Anweisungen enthält, die die in einem Block bzw. in den Blöcken der Flussdiagramme und/oder der Blockschemata angegebene Funktion/Aktion realisieren.
-
Die durch einen Computer lesbaren Programmanweisungen können auch in einen Computer, in andere programmierbare Datenverarbeitungsvorrichtungen oder in andere Einheiten geladen werden, um zu bewirken, dass auf dem Computer, auf anderen programmierbaren Vorrichtungen oder anderen Einheiten eine Reihe von Operationen ausgeführt wird, um einen mittels Computer realisierten Prozess zu schaffen, sodass die Anweisungen, die auf dem Computer, auf anderen programmierbaren Vorrichtungen oder Einheiten ausgeführt werden, die in einem Block bzw. in den Blöcken der Flussdiagramme und/oder der Blockschemata angegebenen Funktionen/Aktionen realisieren.
-
Die Flussdiagramme und Blockschemata in den Figuren veranschaulichen die Architektur, Funktionalität und Wirkungsweise möglicher Realisierungsformen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Flussdiagrammen bzw. in den Blockschemata ein Modul, ein Segment oder einen Abschnitt von Anweisungen darstellen, das bzw. der eine oder mehrere ausführbare Anweisungen zum Realisieren der angegebenen Logikfunktion bzw. Logikfunktionen aufweist. Bei einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren angegeben stattfinden. Beispielsweise können zwei hintereinander aufgeführte Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können je nach der mit den Blöcken verbundenen Funktionalität manchmal in umgekehrter Reihenfolge ausgeführt werden. Darüber hinaus ist anzumerken, dass jeder Block der dargestellten Blockschemata und/oder Flussdiagramme sowie Kombinationen von Blöcken in den dargestellten Blockschemata und/oder Flussdiagrammen mit Hilfe zweckgebundener hardwaregestützter Systeme zum Ausführen der angegebenen Funktionen bzw. Aktionen oder mit Hilfe von Kombinationen aus zweckgebundener Hardware und zweckgebundenen Computeranweisungen realisiert werden kann bzw. können.
-
Es versteht sich, dass diese Offenbarung zwar eine ausführliche Beschreibung des Cloud-Computing enthält, die Realisierung der hierin vorgestellten Lehren jedoch nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Vielmehr können Ausführungsformen der vorliegenden Erfindung in Verbindung mit einer beliebigen anderen Art von Datenverarbeitungsumgebung realisiert werden, die gegenwärtig bekannt ist oder in Zukunft entwickelt wird.
-
Bei Cloud-Computing handelt es sich um ein Modell zur Bereitstellung von Diensten, um einen praktischen und bei Bedarf verfügbaren Netzwerkzugriff auf ein gemeinsam genutztes Reservoir konfigurierbarer Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Hauptspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste) zu ermöglichen, die bei minimalem Verwaltungsaufwand oder minimaler Interaktion mit einem Anbieter des Dienstes schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften, mindestens drei Dienstmodelle und mindestens vier Einsatzmodelle umfassen.
-
Bei den Eigenschaften handelt es sich um die folgenden:
-
On-demand Self Service (Selbstzuweisung bei Bedarf): Ein Cloud-Kunde kann sich einseitig Datenverarbeitungsfunktionen wie zum Beispiel Serverzeit und Netzwerkspeicher dem Bedarf entsprechend automatisch bereitstellen ohne dass eine Interaktion von Menschen mit dem Anbieter des Dienstes erforderlich ist.
-
Broad Network Access (umfassender Netzwerkzugriff): Es stehen Funktionen über ein Netzwerk zur Verfügung, auf die der Zugriff über Standardmechanismen erfolgt, die die Verwendung durch heterogene Plattformen Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Notebook-Computer und PDAs) unterstützen.
-
Resource Pooling (Ressourcenbündelung): Die Datenverarbeitungsressourcen des Anbieters werden gebündelt, um mehrere Kunden unter Verwendung eines Mehrfachnutzermodells mit unterschiedlichen physischen und virtuellen Ressourcen zu bedienen, die entsprechend dem Bedarf dynamisch zugewiesen und neu zugewiesen werden. Es besteht eine gefühlte Standortunabhängigkeit in der Weise, dass der Kunde im Allgemeinen keine Kontrolle oder Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber möglicherweise in der Lage ist, den Standort auf einer höheren Abstraktionsebene (z.B. Land, Bundesstaat oder Datenverarbeitungszentrum) anzugeben.
-
Rapid Elasticity (rasche Elastizität): Funktionen können rasch und elastisch bereitgestellt werden, in einigen Fällen automatisch, um den Funktionsumfang schnell nach oben anzupassen, und schnell freigegeben werden, um den Funktionsumfang schnell nach unten anzupassen. Für den Kunden entsteht oftmals der Eindruck, dass die zum Bereitstellen verfügbaren Funktionen unbegrenzt sind und jederzeit in jeder beliebigen Menge gekauft werden können.
-
Measured Service (bemessener Dienst): Cloud-Systeme steuern und optimieren automatisch die Ressourcenverwendung durch Nutzung einer Bemessungsfunktion auf einer bestimmten Abstraktionsebene, die für die Art des Dienstes geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite und aktive Benutzerkonten). Die Ressourcennutzung kann überwacht, gesteuert und gemeldet werden, sodass Transparenz sowohl für den Anbieter als auch den Kunden des genutzten Dienstes besteht.
-
Bei den Dienstmodellen handelt es sich um die folgenden:
-
Software as a Service (SaaS) (Software als Dienst): Die dem Kunden bereitgestellte Funktion besteht darin, die auf einer Cloud-Infrastruktur ausgeführten Anwendungen des Anbieters zu nutzen. Die Anwendungen sind von verschiedenen Client-Einheiten aus über eine Thin-Client-Schnittstelle wie z.B. über einen Web-Browser (z.B. auf dem Web beruhende eMail) zugänglich. Der Kunde verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur, unter anderem Netzwerke, Server, Betriebssysteme, Speicherplatz oder sogar einzelne Anwendungsfähigkeiten, nicht, abgesehen von der möglichen Ausnahme eingeschränkter benutzerspezifischer Konfigurationseinstellungen von Anwendungen.
-
Platform as a Service (PaaS) (Plattform als Dienst): Die dem Kunden bereitgestellte Funktion besteht darin, auf der Cloud-Infrastruktur vom Kunden erzeugte oder erworbene Anwendungen einzusetzen, die unter Verwendung von Programmiersprachen und Programmierwerkzeugen erzeugt wurden, die durch den Anbieter unterstützt werden. Der Kunde verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur, unter anderem Netzwerke, Server, Betriebssysteme oder Speicherplatz, nicht, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen der Hosting-Umgebung der Anwendungen.
-
Infrastructure as a Service (laaS) (Infrastruktur als Dienst): Die dem Kunden bereitgestellte Funktion besteht darin, Verarbeitung, Speicherplatz, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Kunde beliebige Software einsetzen und ausführen kann, zu der Betriebssysteme und Anwendungen gehören können. Der Kunde verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicherplatz sowie eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Vernetzungskomponenten (z.B. Host-Firewalls).
-
Bei den Einsatzmodellen handelt es sich um die folgenden:
-
Private Cloud (private Cloud): Die Cloud-Infrastruktur wird ausschließlich für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und in den Räumen der Organisation oder außerhalb davon vorhanden sein.
-
Community Cloud (Community-Cloud): Die Cloud-Infrastruktur wird von mehreren Organisationen genutzt und unterstützt eine bestimmte Benutzergemeinschaft, die gemeinsame Interessen hat (z.B. Gesichtspunkte im Zusammenhang mit einer Aufgabe, mit Sicherheitsanforderungen, Richtlinien und mit der Einhaltung von Gesetzen und Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und in den Räumen der Organisation oder außerhalb davon vorhanden sein.
-
Public Cloud (öffentliche Cloud): Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Gruppe in einem Industriezweig zur Verfügung gestellt und ist Eigentum einer Organisation, die Cloud-Dienste verkauft.
-
Hybrid cloud (Hybrid-Cloud): Bei der Cloud-Infrastruktur handelt es sich um eine Mischung aus zwei oder mehreren Clouds (Private Cloud, Community Cloud oder Public Cloud), die eigenständige Entitäten bleiben, aber über eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die die Portierbarkeit von Daten und Anwendungen ermöglicht (z.B. Cloud-Zielgruppenverteilung (Cloud Bursting) zum Lastausgleich zwischen Clouds).
-
Eine Cloud-Computing-Umgebung ist dienstorientiert, wobei der Schwerpunkt auf Zustandsunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität liegt. Im Mittelpunkt des Cloud-Computing steht eine Infrastruktur, die ein Netzwerk aus untereinander verbundenen Knoten umfasst.
-
7 ist ein Blockschema, das eine Cloud-Computing-Umgebung 50 gemäß Ausführungsformen der vorliegenden Erfindung bildlich darstellt. Die Cloud-Computing-Umgebung 50 umfasst einen oder mehrere Cloud-Computing-Knoten 10, mit denen durch Cloud-Kunden verwendete lokale Datenverarbeitungseinheiten wie zum Beispiel ein Personal Digital Assistant (PDA) oder Mobiltelefon 54A, ein Desktop-Computer 54B, ein Notebook-Computer 54C und/oder ein Automobil-Computersystem 54N Daten austauschen können. Die Knoten 10 können untereinander Daten austauschen. Sie können physisch oder virtuell in einem oder mehreren Netzwerken wie zum Beispiel in einer hierin oben beschriebenen Private Cloud, Community Cloud, Public Cloud oder Hybrid Cloud oder in einer Kombination davon gruppiert sein (nicht gezeigt). Dies ermöglicht der Cloud-Computing-Umgebung 50, Infrastruktur, Plattformen und/oder Software als Dienste zu bieten, für die ein Cloud-Kunde keine Ressourcen auf einer lokalen Datenverarbeitungseinheit zu verwalten braucht. Es versteht sich, dass die Arten von in 6 gezeigten Datenverarbeitungseinheiten 54A bis N lediglich veranschaulichend sein sollen und dass die Datenverarbeitungsknoten 10 und die Cloud-Computing-Umgebung 50 über eine beliebige Art von Netzwerk und/oder über eine beliebige Art von Verbindung, die über ein Netzwerk aufgerufen werden kann (z.B. unter Verwendung eines Webbrowsers), mit einer beliebigen Art von computergestützter Einheit Daten austauschen können.
-
8 ist ein Blockschema, das einen Satz von funktionalen Abstraktionsmodellschichten bildlich darstellt, die durch eine Cloud-Computing-Umgebung 50 bereitgestellt werden, die gemäß Ausführungsformen der vorliegenden Erfindung in 6 bildlich darstellt ist. Es sollte von vornherein klar sein, dass die in 7 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie bildlich dargestellt ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
-
Eine Hardware- und Softwareschicht 60 umfasst Hardware- und Softwarekomponenten. Zu Beispielen von Hardwarekomponenten gehören:
- Großrechner 61; auf der RISC-Architektur (RISC = Reduced Instruction Set Computer) beruhende Server 62; Server 63; Blade-Server 64; Speichereinheiten 65; und Netzwerke und Vernetzungskomponenten 66. Bei einigen Ausführungsformen umfassen Softwarekomponenten eine Netzwerk-Anwendungsserversoftware 67 und eine Datenbanksoftware 68.
-
Eine Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, von der aus die folgenden Beispiele von virtuellen Einheiten bereitgestellt sein können: virtuelle Server 71; virtueller Speicher 72; virtuelle Netzwerke 73, unter anderem virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
-
Bei einem Beispiel kann eine Verwaltungsschicht 80 die nachstehend beschriebenen Funktionen bereitstellen. Eine Ressourcenbereitstellung 81 stellt die dynamische Beschaffung von Datenverarbeitungsressourcen und von anderen Ressourcen bereit, die genutzt werden, um Aufgaben innerhalb der Cloud-Computing-Umgebung durchzuführen. Eine Gebührenerfassung und Preisberechnung 82 stellt eine Kostenverfolgung bereit, während Ressourcen innerhalb der Cloud-Computing-Umgebung genutzt werden, sowie eine Abrechnung und Fakturierung der Inanspruchnahme dieser Ressourcen. Bei einem Beispiel können diese Ressourcen Anwendungssoftwarelizenzen umfassen. Eine Sicherheit stellt eine Identitätsüberprüfung für Cloud-Kunden und Aufgaben sowie einen Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 83 stellt Kunden und Systemadministratoren einen Zugriff auf die Cloud-Computing-Umgebung bereit. Eine Dienstgüteverwaltung (Service Level Management) 84 stellt eine Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, sodass die jeweils erforderliche Dienstgüte erreicht wird. Eine Planung und Erfüllung von Dienstgütevereinbarungen 85 (Service Level Agreement (SLA), Servicevertrag) stellt die Vorausplanung für und die Beschaffung von Cloud-Computing-Ressourcen bereit, für die auf der Grundlage eines SLA zukünftige Anforderungen erwartet werden.
-
Eine Betriebslastschicht 90 stellt Beispiele von Funktionalitäten bereit, für die die Cloud-Computing-Umgebung genutzt werden kann. Zu Beispielen von Betriebslasten und Funktionen, die von dieser Schicht aus bereitgestellt werden können, gehören: Zuordnung und Navigation 91; Softwareentwicklung und -verwaltung 92 während des Lebenszyklus; Bereitstellung 93 von Schulungen in virtuellen Schulungsräumen; Verarbeitung 94 von Datenanalysen; Transaktionsverarbeitung 95; und Korrektur 96 von Spracherkennungstranskription.
-
Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung sollen der Veranschaulichung dienen, sind jedoch nicht als erschöpfend oder auf die offenbarten Ausführungsformen beschränkt gedacht. Für Fachleute sind viele Modifikationen und Variationen denkbar, ohne dass diese eine Abweichung vom Schutzumfang und Grundgedanken der Erfindung darstellen würden. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsform, die praktische Anwendung bzw. die technische Verbesserung gegenüber den auf dem Markt vorgefundenen Technologien auf bestmögliche Weise zu erläutern bzw. anderen mit entsprechenden Fachkenntnissen das Verständnis der hierin offenbarten Ausführungsformen zu ermöglichen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- On-demand Self Service (Selbstzuweisung bei Bedarf) [0060]
- Bereitstellung 93 von Schulungen in virtuellen Schulungsräumen; Verarbeitung 94 von Datenanalysen; Transaktionsverarbeitung 95 [0080]