-
ANWENDUNGSGEBIET
-
Die vorliegende Anmeldung betrifft allgemein Computer und Computeranwendungen und konkret das automatische Korrigieren von Tonsignalen aus Sprechen.
-
HINTERGRUND
-
Es gibt Tonverarbeitungssysteme, die versuchen, die Tonhöhe und die Geschwindigkeit eines Sängers zu korrigieren, indem falsch oder aus dem Takt esungene Noten abgeändert werden. Andere bestehende Tonverarbeitungssysteme steuern die Lautstärke eines gegebenen Tonsignals automatisch so, dass sie innerhalb eines bestimmten Bereichs bleibt (nicht zu laut oder zu leise). Wieder andere ändern Sprechsignale für eine verbesserte Telefonverständlichkeit für ältere Erwachsene ab. Diese Systeme versuchen jedoch nicht, Sprechstörungen zugehörige Artefakte beim Sprechen zu beseitigen, wie zum Beispiel Stottern während des Sprechens, Lispeln und stimmliche Ticks, die unfreiwillig auftreten könnten.
-
Es wurden Techniken zum automatischen Erkennen von Stottern in Sprechsignalen erforscht, wobei aber kein automatisches Korrekturverfahren beschrieben wurde.
-
Honal und Schultz beschreiben in „Automatic Disfluency Removal On Recognized Spontaneous Speech -Rapid Adaptation To Speaker-Dependent Disfluencies“, IEEE ICASSP 2005, ein Verfahren zum Entfernen von nicht fließenden Wörtern und Ausdrücken in einer Äußerung, wobei dieses Verfahren aber angewendet wird, nachdem das Sprechsignal in Text umgeschrieben wurde, und Sprechstörungen nicht auf der Ebene des Sprechsignals bearbeitet werden.
-
Die US 2008 / 0201141 A1 offenbart ein Verfahren und ein Berechnungssystem zum Analysieren von Äußerungen eines Sprechers. Die gesprochenen Wörter werden erkannt und auf ihre jeweiligen Analoga indiziert, die verwendet werden, um die Sprachsequenz so anzupassen, dass sie einem vorbestimmten Standard von Sprachmerkmalen entspricht, der für eine bestimmte Sprache festgelegt oder basierend auf den regionalen Merkmalen eines gemeinsamen Sprachziels für eine Kommunikationssitzung ausgewählt werden kann. Auf diese Weise ausgewählte Audiosequenzen werden dann in die normierten Merkmale eingepasst oder synthetisiert und in den ausgehenden Sprachstrom eingefügt, so dass die resultierende Audiosequenz als unerwünscht empfundene Spracheigenschaften in reduziertem Umfang aufweist.
-
Die US 2007 / 0038455 A1 offenbart ein Konzept, ein Verfahren und eine Vorrichtung zum Erfassen und Korrigieren eines Akzents mittels Klangumwandlung. Das Eingangsaudiosignal wird analysiert, um vordefinierte unerwünschte Sprachmuster zu finden, d.h. Phoneme oder Gruppen von Phonemen, die korrigiert werden sollen, z.B. weil sie einen fremden Akzent darstellen. Diese unerwünschten Klänge werden dann durch die vorab gespeicherten Ersatzaudiomuster modifiziert oder vollständig ersetzt, angepasst an die aktuelle Tonhöhe und Stimmklangfarbe des Benutzers. Der Grad der Sprachmodifikation, d.h. die Menge der zu modifizierenden Phoneme, kann auf einen gewünschten Pegel eingestellt werden. Das System arbeitet in zwei Modi: Erstens Lernen, d.h. Speichern des unerwünschten und des Ersatz-Phonem-Musters, und zweitens ein Korrekturmodus, der die Phonem-Modifikation basierend auf den gespeicherten Informationen durchführt. Die Implementierung erfolgt sowohl in Software als auch in Hardware. Die Hardware-Vorrichtung basiert auf einer parallelen Signalverarbeitung und ermöglicht daher eine Echtzeit-Akzentkorrektur variabler Komplexität, bis hin zu superkomplexen Systemen mit mehreren Benutzern und mehreren Akzenten, die auf einer Mesh-Architektur mehrerer Chips und Boards basieren, möglicherweise als Teil eines Telefonie- oder anderen Netzwerksystems.
-
KURZDARSTELLUNG
-
Ein Verfahren zum Korrigieren von Auswirkungen von Sprechstörungen eines Benutzers kann in einem Aspekt das Erfassen eines Tonsignals eines Sprechens beinhalten. Das Verfahren kann auch das Analysieren des Tonsignals beinhalten, um durch die Sprechstörung des Benutzers verursachte Tonsignalartefakte zu erkennen. Das Verfahren kann ferner das Abändern des Tonsignals durch Beseitigen der erkannten Tonsignalartefakte aus dem Tonsignal beinhalten. Das Verfahren kann auch das Bereitstellen des abgeänderten Tonsignals beinhalten.
-
Ein System zum Korrigieren von Auswirkungen von Sprechstörungen eines Benutzers kann in einem Aspekt ein Empfangsmodul beinhalten, das in der Lage ist, ein Tonsignal eines Sprechens zu erfassen. Ein Analysemodul kann in der Lage sein, auf dem Prozessor ausgeführt zu werden, und ferner in der Lage sein, das Tonsignal zu analysieren, um durch die Sprechstörung des Benutzers verursachte Tonsignalartefakte zu erkennen. Ein Abänderungsmodul kann in der Lage sein, das Tonsignal durch Beseitigen der erkannten Tonsignalartefakte aus dem Tonsignal abzuändern. Ein Abspielmodul kann in der Lage sein, das abgeänderte Tonsignal bereitzustellen.
-
Es kann auch ein durch einen Computer lesbares Speichermedium bereitgestellt werden, auf dem ein durch eine Maschine ausführbares Programm mit Anweisungen zum Durchführen einer oder mehrerer hierin beschriebener Verfahren gespeichert ist.
-
Andere Merkmale sowie die Struktur und der Betrieb von verschiedenen Ausführungsformen werden nachfolgend unter Bezugnahme auf die beigefügten Zeichnungen ausführlicher beschrieben. In den Zeichnungen bezeichnen gleichartige Bezugszahlen identische oder funktional gleichartige Elemente.
-
Figurenliste
-
- 1 ist ein Ablaufplan, der ein Verfahren zum Korrigieren des Sprechens in einer Ausführungsform der vorliegenden Offenbarung veranschaulicht.
- 2 ist ein Blockschaubild, das Komponenten und die Pipeline der vorliegenden Offenbarung in einer Ausführungsform veranschaulicht.
- 3 veranschaulicht ein beispielhaftes Nutzungsszenario für ein Verfahren der vorliegenden Offenbarung in einer Ausführungsform der vorliegenden Offenbarung.
- 4 veranschaulicht eine schematische Darstellung eines beispielhaften Computers oder Verarbeitungssystems, der das Echtzeit-Sprechstörungssystem in einer Ausführungsform der vorliegenden Offenbarung umsetzen kann.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Das Korrigieren des Sprechens kann es in einer Ausführungsform der vorliegenden Offenbarung einem Benutzer ermöglichen, mit einer Sprechstörung fertig zu werden, indem sein Sprechen abgefangen wird, die Artefakte der Störung erkannt werden, diese Artefakte beseitigt werden und das korrigierte Sprechen z.B. zum Rundsenden bereitgestellt wird. In einem Aspekt kann das Tonsignal des Sprechens eines Benutzers erfasst werden. Das Tonsignal wird analysiert, um Störungsartefakte zu erkennen, das Tonsignal wird abgeändert, um die erkannten Störungsartefakte zu beseitigen, und das abgeänderte Tonsignal wird als abzuspielende Ausgabe bereitgestellt. Das Korrigieren des Sprechens kann in einer Ausführungsform der vorliegenden Offenbarung in Echtzeit oder nahezu in Echtzeit durchgeführt werden, so dass das korrigierte Sprechen rundgesendet werden kann, während der Benutzer spricht.
-
1 ist ein Ablaufplan, der ein Verfahren zum Korrigieren des Sprechens in einer Ausführungsform der vorliegenden Offenbarung veranschaulicht. Bei 102 wird eine Spezifikation der Sprechstörung des Benutzers erfasst. Es werden zum Beispiel Stottern, Lispeln, unfreiwillige Vokalisierung oder andere Typen, die nicht als Teil des Sprechens beabsichtigt sind, erkannt, wenn ein Benutzer spricht.
-
Bei 104 werden ein oder mehrere der erfassten Sprechstörung des Benutzers zugeordnete Tonartefaktmuster abgerufen. Bei den Tonartefaktmustern handelt es sich zum Beispiel um Tonsignale oder eine Beschreibung oder Spezifikation derartiger Signale, die zum Beispiel einem oder mehreren erfassten Sprechstörungen des Benutzers entsprechen.
-
Bei 106 wird das Tonsignal des Sprechens des Benutzers aufgezeichnet. In einer Ausführungsform der vorliegenden Offenbarung kann das Erfassen inkrementell durchgeführt werden, zum Beispiel durch Erfassen von Segmenten des Tonsignals einer festgelegten Dauer oder Länge, während der Benutzer spricht. Während der Benutzer spricht, kann das Sprechen des Benutzers zum Beispiel in zusammenhängenden Segmenten von Tonsignalen mit einer Dauer von einer Minute zum Verarbeiten aufgezeichnet werden.
-
Bei 108 kann ein aufgezeichnetes Segment analysiert werden, und ein oder mehrere Artefakte in dem aufgezeichneten Segment werden zum Beispiel beruhend auf dem/den bei 104 empfangenen Tonartefaktmuster(n) erkannt. Nach dem der erfassten Sprechstörung entsprechenden Tonartefaktmuster wird zum Beispiel in den Tonsignalen des aufgezeichneten Segments gesucht, zum Beispiel durch Vergleichen des Tonsignals oder der Spezifikation des erfassten Musters mit den Tonsignalen in dem aufgezeichneten Segment. Die übereinstimmenden Signale bilden die erkannten Artefakte.
-
Bei 110 werden die erkannten Artefakte aus dem aufgezeichneten Tonsegment gelöscht.
-
Bei 112 kann das abgeänderte aufgezeichnete Segment z.B. zum Übertragen, Abspielen oder Rundsenden, wie jeweils zutreffend, bereitgestellt werden. Wenn das Verfahren zum Beispiel in einer Datenübertragungseinheit wie zum Beispiel einem Telefon, einem Mobiltelefon, einem Smartphone oder einer anderen Datenübertragungseinheit verwendet wird, kann das abgeänderte aufgezeichnete Segment bereitgestellt werden, um an die empfangende Einheit oder dergleichen zum Beispiel über ein geeignetes Netzwerk übertragen zu werden.
-
Bei 114 wird ermittelt, ob das Sprechen beendet wurde. Wenn dem so ist, endet die Logik, andernfalls kehrt die Logik zu 106 zurück, wo mehr Tonsegmente aufgezeichnet und/oder analysiert werden.
-
Die oben angeführten Schritte können in Echtzeit oder nahezu in Echtzeit durchgeführt werden, wenn ein Benutzer spricht. In einem Aspekt können ein oder mehrere der gezeigten Verarbeitungsschritte asynchron durchgeführt werden, zum Beispiel unabhängig voneinander. Das Aufzeichnen bei 106 kann zum Beispiel asynchron in Bezug auf die Schritte des Analysierens 108, des Abänderns 110 und des Rundsendens 112 durchgeführt werden. Somit können zum Beispiel bei 106 Segmente des Sprechens des Benutzers mit einer festgelegten Dauer aufgezeichnet und zum Beispiel in einer Warteschlange (z.B. einer FIFO-Datenstruktur oder anderen Strukturen) in dem Arbeitsspeicher gespeichert werden. Die Schritte des Analysierens 108 und des Abänderns 110 können sogar während des Aufzeichnens weiterer Segmente bei 106 auf die von einer derartigen Warteschlange abgerufenen Segmente angewendet werden.
-
Gleichermaßen kann der Verarbeitungsschritt bei 110 das abgeänderte Tonsignalsegment als Ausgabe in einer Warteschlange oder dergleichen speichern und mit dem Abändern des nächsten aufgezeichneten Segments fortfahren, ohne auf das entsprechende Bereitstellen des abgeänderten Tonsignalsegments bei 112 zu warten. Das Verarbeiten bei 112 kann abgeänderte Segmente aus einer derartigen Warteschlange abrufen und das abgeänderte Tonsignal bereitstellen. Des Weiteren kann das Verarbeiten bei 112 die abgeänderten Segmente in einer solchen Weise bereitstellen, dass die Segmente, aus der das Sprechen besteht, in relativ gleichen Zeitintervallen rundgesendet oder abgespielt werden, um zum Beispiel unnatürliche Zeitabstände zwischen den Segmenten des rundgesendeten Sprechens zu vermeiden.
-
In einem anderen Aspekt können die oben angeführten Schritte beruhend auf einem bereits aufgezeichneten vollständigen Sprechen eines Benutzers durchgeführt werden.
-
2 ist ein Blockschaubild, das Komponenten und die Pipeline der vorliegenden Offenbarung in einer Ausführungsform veranschaulicht. Ein Tonsignalempfangs- oder Erfassungsmodul 202 kann Segmente von Tonsignalen erfassen. Das Tonsignalempfangsmodul 202 kann zum Beispiel Signale aufzeichnen, die über ein Mikrofon 204 oder gleichartige Einheiten übertragen werden, während ein Benutzer 206 in das Mikrofon 204 oder die gleichartige Einheit spricht. Das Tonsignalempfangsmodul 202 kann zum Beispiel das Sprechen des Benutzers für die Dauer einer Minute oder eines anderen Zeitintervalls aufzeichnen und dieses Sprechsegment zum Beispiel in einer Warteschlange oder dergleichen 210 platzieren. Das Tonsignalempfangsmodul 202 kann das aufgezeichnete Segment auch direkt an das Analysemodul 212 übertragen. Das Tonsignalempfangsmodul 202 fährt mit dem Aufzeichnen des Sprechens des Benutzers für die nächste einminütige (oder andere) Dauer fort, fügt das aufgezeichnete Segment zu der Warteschlange oder dergleichen 210 hinzu oder überträgt direkt an das Analysemodul 212. Dieser die Segmente aufzeichnende Prozess kann fortgeführt werden, während der Benutzer 206 spricht und bis das Sprechen des Benutzers beendet ist.
-
In einem anderen Aspekt kann das Tonsignalempfangsmodul 202 die Tonsignalsegmente aus einer die aufgezeichneten Daten 208 enthaltenden Datei aufzeichnen.
-
Das Analysemodul 212 kann das aufgezeichnete Tonsignalsegment empfangen und analysieren. Das Analysemodul 212 sucht nach Tonsignalartefakten, die den Teilen des Sprechens entsprechen, die zum Beispiel durch die Sprechstörung des Benutzers verursacht werden. In diesem Hinblick kann das Analysemodul 212 die Zuordnung der Tonsignalartefakte zu der Sprechstörung des Benutzers zum Beispiel aus einer Datenbank oder dergleichen erfassen, die derartige Zuordnungen 214 enthält. Dieser bestimmte Benutzer 206 stottert zum Beispiel möglicherweise beim Sprechen. Ein Tonsignalartefakt, welches das Stottern des Benutzers darstellt oder diesem entspricht, kann von der Datenbank 214 abgerufen und mit dem aufgezeichneten Tonsignalsegment verglichen werden. In einer Ausführungsform der vorliegenden Offenbarung können die Zuordnungen 214 spezifische Tonsignalartefakte beinhalten, die einer Sprechstörung eines bestimmten Benutzers zugeordnet sind. Zu den Zuordnungen 214 können auch Tonsignalartefakte gehören, die bestimmten Sprechstörungen allgemein zugeordnet sind und nicht konkret einem bestimmten Benutzer zugeordnet sind. Wenn also der Benutzer bei 206 stottert, die Zuordnung des Stotterns dieses konkreten Benutzers und des Tonsignalartefakts aber nicht in der Datenbank 214 gefunden wird, kann das Analysemodul 212 ein allgemeinen Stottereigenschaften zugeordnetes Tonsignalartefakt verwenden. Wenn das aufgezeichnete Tonsignalsegment ein oder mehrere durch die Sprechstörung des Benutzers oder dergleichen verursachte Artefakte enthält, kann das aufgezeichnete Tonsignalsegment durch Entfernen der erkannten Artefakte aus dem aufgezeichneten Segment abgeändert werden. Das Analysemodul 212 kann zum Beispiel die in dem aufgezeichneten Tonsignalsegment erkannten Artefakte an ein Abänderungsmodul 216 übertragen, welches das Löschen der Artefakte aus dem aufgezeichneten Tonsignal durchführen kann.
-
Das Abänderungsmodul 216 kann die in dem aufgezeichneten Tonsignalsegment erkannten Artefakte löschen. Das Erkennen kann zum Beispiel in Form von Verschiebungen geschehen; Tonsignaldaten in dem aufgezeichneten Segment, die sich zwischen den erkannten Zeitintervallen befinden, können z.B. entfernt werden. Das abgeänderte Tonsignalsegment kann dann bereitgestellt werden, um zum Hören abgespielt wie zum Beispiel rundgesendet zu werden. In einem Aspekt kann das Abänderungsmodul 216 die abgeänderten Daten in einer Warteschlange 218 in dem Arbeitsspeicher oder dergleichen zum Abrufen durch ein Abspielmodul 220 für das Übertragen und/oder Abspielen speichern oder dort platzieren.
-
Das Abspielmodul 220 stellt das abgeänderte Tonsignalsegment zum Beispiel zum Rundsenden oder Abspielen bereit. In einem Aspekt kann das Abspielmodul 220 ein aus einer Warteschlange bereitzustellendes Segment abrufen und es bereitstellen, während es mit dem Abrufen und Bereitstellen des nächsten verfügbaren Segments in der Warteschlange fortfährt. Auf diese Weise muss kein Modul in einer Ausführungsform der vorliegenden Offenbarung auf Daten von einem anderen Modul in der Verarbeitungs-Pipeline warten. Außerdem können die Segmente in einer Weise bereitgestellt werden, dass das Rundsenden oder Abspielen des gesamten Sprechens ununterbrochen sein kann und es zum Beispiel keine langen oder lückenhaften Pausen durch Schweigen zwischen dem Abspielen der Segmente gibt, wenn zum Beispiel ein Empfänger des Sprechens dieses anhört.
-
Ein oder mehrere der in 2 gezeigten Module können auf einem oder mehreren Prozessoren oder Verarbeitungselementen ausgeführt, im Arbeitsspeicher gespeichert und auf den einen oder die mehreren Prozessoren zur Ausführung geladen werden. In einem anderen Aspekt können ein oder mehrere der Module in eine integrierte Schaltung programmiert werden, um die oben beschriebenen Funktionalitäten durchzuführen.
-
Die Datenbank mit Zuordnungen 214 kann vorgegebene Störungen und zugeordnete Tonsignalartefakte beinhalten. Das Stottern eines Benutzers kann zum Beispiel einem Tonsignalmuster zugeordnet sein, das auch als Tonsignalartefakt bezeichnet wird. Ein Beispiel einer Zuordnung von Störungen und Tonsignalartefakten kann beim Stottern ein wiederholtes Vorkommen von bestimmten, mit Stottern verbundenen Lauten sein. Ein weiteres Beispiel kann bei Tourette-Syndrom in das Sprechen eingefügtes Schreien (oder unangebrachte Sprache) sein. Noch ein weiteres Beispiel der Zuordnung kann beim Lispeln eine undeutliche Aussprache sein. Somit kann das Analysemodul 212, wenn ein Benutzer stottert, zum Beispiel nach einem wiederholten Vorkommen eines bestimmten Lauts beim Sprechen des Benutzers suchen. Die Datenbank 214 kann derartige Zuordnungen zwischen Störungen und Tonsignalartefakten beinhalten. Die Datenbank 214 kann auch eine Wissensdatenbank über Benutzer beinhalten, zum Beispiel, welcher Benutzer welche Störungen aufweist. In einer Ausführungsform der vorliegenden Offenbarung können ein oder mehrere einer Störung zugeordnete Tonsignalartefakte als Beschreibung oder Spezifikation dessen festgelegt werden, nach was gesucht werden soll, um die zugeordnete Störung bei einem Sprechen (z.B. wiederholtes Vorkommen eines bestimmten Lauts) oder ein Beispiel von tatsächlichen Signalmustern (z.B. eine Voraufzeichnung des Signalmusters oder dergleichen) oder Kombinationen daraus zu erkennen.
-
Die Zuordnungen der Sprechstörung des Benutzers zu entsprechenden Tonsignalartefakten werden durch Einarbeitung erzeugt. Erfindungsgemäß wird ein automatisiertes System so eingearbeitet, dass es einem Benutzer zugeordnete Tonsignalartefakte beruhend auf dem Vergleichen von dem Sprechen des Benutzers zugeordneten Tonsignalen mit einem beispielhaften Tonsignal desselben Sprechens vergleicht. Es können zum Beispiel Tonsignale einer bekannten Textstelle erzeugt und mit dem Tonsignal des Lesens derselben Textstelle durch den Benutzer verglichen werden.
-
Zu der Sprechstörung, auf den die vorliegende Offenbarung Bezug nimmt, können Stottern, diejenigen durch Tourette-Syndrom, ein unfreiwillige Vokalklänge verursachender Zustand, verursachten, Lispeln und andere gehören, sie sind aber nicht darauf beschränkt.
-
Die Methodiken der vorliegenden Offenbarung können das Korrigieren von durch bekannte Störungen (z.B. Stottern) verursachte Sprechstörungsartefakte in Echtzeit oder nahezu in Echtzeit bereitstellen, zum Beispiel durch Aufzeichnen, Analysieren und Löschen dieser Tonsignale. Das Verarbeiten der Tonsignale kann bekannte Signalverarbeitungstechniken verwenden.
-
3 veranschaulicht ein beispielhaftes Nutzungsszenario der Sprechkorrekturmethodik der vorliegenden Offenbarung in einer Ausführungsform. Die Sprechkorrekturmethodik der vorliegenden Offenbarung kann als Anwendung oder dergleichen 302 auf einer Einheit 304 wie zum Beispiel einem Smartphone, einem Mobiltelefon oder einer anderen Datenübertragungseinheit umgesetzt werden. Wenn ein erster Benutzer 306 einen zweiten Benutzer 310 anruft und an der Einheit spricht, kann die auf der Einheit 304 laufende Anwendung oder dergleichen 302 die Sprech- oder Tonsignale des ersten Benutzers abfangen, bevor sie an die Einheit 308 des zweiten Benutzers übertragen werden, und zum Beispiel, durch die Sprechstörung des ersten Benutzers verursachte Artefakte aus dem Sprechen nahezu in Echtzeit beseitigen, wie hierin beschrieben ist. Die Einheit 302 kann dann das korrigierte Tonsignal an die Einheit 308 des zweiten Benutzers übertragen oder rundsenden. Der zweite Benutzer 310 würde dann den ersten Benutzer ohne die Sprechstörungen sprechen hören. Die Spezifikation der Sprechstörung des Benutzers und/oder die Zuordnung der Störung zu Artefaktdaten, die zum Vergleichen verwendet werden, können lokal auf der Einheit 302 gespeichert sein oder aus einem fernen Datenbankspeicher oder dergleichen erfasst oder abgerufen werden.
-
4 veranschaulicht eine schematische Darstellung eines beispielhaften Computers oder Verarbeitungssystems, der das Echtzeit-Sprechstörungssystem in einer Ausführungsform der vorliegenden Offenbarung umsetzen kann. Das Computersystem ist lediglich ein Beispiel eines geeigneten Verarbeitungssystems und soll keinerlei Einschränkungen für den Umfang der Verwendung oder Funktionalität von Ausführungsformen der hierin beschriebenen Methodik andeuten. Das gezeigte Verarbeitungssystem kann mit zahlreichen anderen Universal- bzw. Spezial-Datenverarbeitungssystem-Umgebungen bzw. Konfigurationen betriebsfähig sein. Zu Beispielen für allgemein bekannte Datenverarbeitungssysteme, Umgebungen und/oder Konfigurationen, die zur Verwendung mit dem in 4 gezeigten Verarbeitungssystem geeignet sein können, gehören Smartphones (z.B. das iPhone oder Android), Personal-Computer-Systeme, Server-Computersysteme, Thin Clients, Thick Clients, Handheld- bzw. Laptop-Geräte, Multiprozessorsysteme, auf Mikroprozessoren beruhende Systeme, Set-Top-Boxen, programmierbare Verbraucherelektronik, Netzwerk-PCs, Minicomputersysteme, Mainframe-Computersysteme sowie verteilte Cloud-Computing-Umgebungen, die irgendeine(s) der obigen Systeme bzw. Einheiten und dergleichen beinhalten, aber nicht darauf beschränkt.
-
Das Computersystem kann in dem allgemeinen Kontext von durch Computersysteme ausführbaren Anweisungen, zum Beispiel durch Programmmodule, beschrieben werden, die von einem Computersystem ausgeführt werden. Allgemein können zu Programmmodulen Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen und so weiter gehören, die bestimmte Aufgaben durchführen bzw. bestimmte abstrakte Datentypen umsetzen. Das Computersystem kann in verteilten Cloud-Computing-Umgebungen ausgeführt werden, wo Aufgaben durch ferne Verarbeitungseinheiten durchgeführt werden, die über ein Datenübertragungsnetzwerk verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl in lokalen als auch in fernen Computersystem-Speichermedien befinden, darunter Hauptspeichereinheiten.
-
Die Komponenten des Computersystems können eine(n) oder mehrere Prozessoren oder Verarbeitungseinheiten 12, einen Systemspeicher 16 und einen Bus 14 aufweisen, der verschiedene Systemkomponenten, darunter den Systemspeicher 16, mit dem Prozessor 12 verbindet, sind aber nicht darauf beschränkt. Der Prozessor 12 kann ein Sprechkorrekturmodul 10 beinhalten, das die hierin beschriebenen Verfahren durchführt. Das Modul 10 kann in die integrierten Schaltungen des Prozessors 12 programmiert sein oder aus dem Arbeitsspeicher 16, Speichereinheiten 18 oder einem Netzwerk 24 oder Kombinationen daraus geladen werden.
-
Der Bus 14 kann eine oder mehrere einer beliebigen von mehreren Arten von Busstrukturen darstellen, darunter einen Speicherbus oder eine Speichersteuereinheit, einen Peripheriebus, einen beschleunigten Grafikanschluss und einen Prozessor- oder lokalen Bus, die eine beliebige aus einer Vielfalt von Busarchitekturen verwenden. Zu derartigen Architekturen gehören als Beispiel und nicht als Einschränkung ein ISA-Bus (Industry Standard Architecture), ein MCA-Bus (Micro Channel Architecture), ein EISA-Bus (Enhanced ISA), ein VESA-Lokalbus (Video Electronics Standards Association) sowie ein PCI-Bus (Peripheral Component Interconnects).
-
Das Computersystem kann eine Vielfalt von durch ein Computersystem lesbaren Medien beinhalten. Bei derartigen Medien kann es sich um jedes beliebige Medium handeln, auf welches das Computersystem zugreifen kann, und es kann sowohl flüchtige als auch nichtflüchtige Medien, austauschbare und nicht austauschbare Medien beinhalten.
-
Der Systemspeicher 16 kann durch ein Computersystem lesbare Medien in Form eines flüchtigen Speichers wie zum Beispiel einen Direktzugriffsspeicher (RAM) und/oder Cachespeicher oder andere enthalten. Das Computersystem kann ferner andere austauschbare/nicht austauschbare, flüchtige/nichtflüchtige Computersystem-Speichermedien enthalten. Als Beispiel kann das Speichersystem 18 zum Lesen von und zum Schreiben auf ein nicht austauschbares, nichtflüchtiges magnetisches Medium bereitgestellt werden (z.B. ein „Festplattenlaufwerk“). Es können auch ein Magnetplattenlaufwerk zum Lesen von und Schreiben auf eine austauschbare, nichtflüchtige Magnetplatte (z.B. eine „Floppy-Diskette“) und ein optisches Plattenlaufwerk zum Lesen von oder Schreiben auf eine austauschbare, nichtflüchtige optische Platte wie eine CD-ROM, DVD-ROM oder ein anderes optisches Medium bereitgestellt werden, auch wenn diese nicht gezeigt sind. In derartigen Fällen können sie jeweils über ein oder mehrere Datenmedienschnittstellen mit dem Bus 14 verbunden sein.
-
Das Computersystem kann auch mit einer oder mehreren externen Einheiten 26 wie einer Tastatur, einer Zeigeeinheit, einer Anzeige 28 usw., einer oder mehreren Einheiten, die es einem Benutzer ermöglichen, mit dem Computersystem Daten auszutauschen, und/oder beliebigen Einheiten (z.B. Netzwerkkarten, Modems usw.) Daten austauschen, die es dem Computersystem ermöglichen, mit einer oder mehreren anderen Datenverarbeitungseinheiten Daten auszutauschen. Ein derartiger Datenaustausch kann über die Eingabe/Ausgabe- (E/A-) Schnittstellen 20 erfolgen.
-
Außerdem kann das Computersystem über den Netzwerkadapter 22 mit einem oder mehreren Netzwerken 24 Daten austauschen, wie zum Beispiel einem lokalen Netzwerk (LAN), einem allgemeinen Weitverkehrsnetz (WAN) und/oder einem öffentlichen Netzwerk (z.B. dem Internet). Wie abgebildet ist, tauscht der Netzwerkadapter 22 mit den anderen Komponenten des Computersystems über den Bus 14 Daten aus. Es sollte klar sein, dass andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Computersystem verwendet werden könnten, auch wenn diese nicht gezeigt sind. Zu Beispielen gehören folgende, ohne auf diese beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Festplattenlaufwerk-Arrays, RAID-Systeme, Bandlaufwerke und Speichersysteme zur Datenarchivierung usw.
-
Der Fachmann wird verstehen, dass Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt ausgeführt werden können. Entsprechend können Aspekte der vorliegenden Erfindung die Form einer vollständigen Hardware-Ausführungsform, einer vollständigen Software-Ausführungsform (darunter Firmware, im Speicher befindliche Software, Mikrocode, usw.) oder einer Software- und Hardware-Aspekte kombinierenden Ausführungsform annehmen, die hierin alle allgemein als „Schaltkreis“, „Modul“ oder „System“ bezeichnet sein können. Des Weiteren können Aspekte der vorliegenden Erfindung die Form eines auf einem oder mehreren durch einen Computer lesbaren Medien enthaltenen Computerprogrammprodukts annehmen, die durch einen Computer lesbaren Programmcode enthalten.
-
Es kann jede Kombination aus einem oder mehreren durch einen Computer lesbaren Medien verwendet werden. Bei dem durch einen Computer lesbaren Medium kann es sich um ein durch einen Computer lesbares Signalmedium oder ein durch einen Computer lesbares Speichermedium handeln. Bei einem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine derartige Vorrichtung oder Einheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu konkreteren Beispielen (eine nicht erschöpfende Liste) des durch einen Computer lesbaren Speichermediums gehören die folgenden: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede geeignete Kombination daraus. In dem Kontext dieses Dokuments kann es sich bei einem durch einen Computer lesbaren Speichermedium um jedes beliebige physische Medium handeln, das ein Programm enthalten bzw. speichern kann, das von oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Ausführung von Anweisungen verwendet wird.
-
Ein durch einen Computer lesbares Signalmedium kann ein weitergeleitetes Datensignal mit darin enthaltenem durch einen Computer lesbarem Programmcode beinhalten, zum Beispiel im Basisband oder als Teil einer Trägerwelle. Ein derartiges weitergeleitetes Signal kann eine beliebige Form aus einer Vielfalt an Formen annehmen, darunter elektromagnetische, optische bzw. jede geeignete Kombination daraus, jedoch nicht darauf beschränkt. Bei einem durch einen Computer lesbaren Signalmedium kann es sich um ein beliebiges durch einen Computer lesbares Medium handeln, das kein durch einen Computer lesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder Einheit zum Ausführen von Anweisungen übertragen, weiterleiten bzw. transportieren kann.
-
Auf einem durch einen Computer lesbaren Medium enthaltener Programmcode kann unter Verwendung eines beliebigen geeigneten Mediums übertragen werden, darunter drahtlos, drahtgebunden, Lichtwellenleiter-Kabel, HF usw. oder jede geeignete Kombination daraus, jedoch nicht auf diese beschränkt.
-
Computerprogrammcode für das Ausführen von Arbeitsschritten für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie zum Beispiel Java, Smalltalk, C++ und dergleichen sowie herkömmliche prozedurale Programmiersprachen wie zum Beispiel die Programmiersprache „C“ oder ähnliche Programmiersprachen, eine Script-Sprache wie zum Beispiel Perl, VBS oder ähnliche Sprachen und/oder funktionelle Sprachen wie zum Beispiel Lisp und ML sowie logikorientierte Sprachen wie zum Beispiel Prolog. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters).
-
Aspekte der vorliegenden Erfindung werden unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern durch Computerprogrammanweisungen ausgeführt werden können. Diese Computerprogrammanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen.
-
Diese Computerprogrammanweisungen können auch auf einem durch einen Computer lesbaren Medium gespeichert sein, das einen Computer oder eine andere programmierbare Datenverarbeitungsvorrichtung bzw. andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass die auf dem durch einen Computer lesbaren Medium gespeicherten Anweisungen ein Herstellungsprodukt herstellen, darunter Anweisungen, welche die/den in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebene(n) Funktion/Schritt umsetzen.
-
Die Computerprogrammanweisungen können auch auf einen Computer oder eine andere programmierbare Datenverarbeitungsvorrichtung bzw. andere Einheiten geladen werden, um das Ausführen einer Folge von Prozessschritten auf dem Computer, der anderen programmierbaren Vorrichtung bzw. den anderen Einheiten zu veranlassen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer oder einer anderen programmierbaren Vorrichtung ausgeführten Anweisungen Verfahren zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktionen/Schritte erzeugen.
-
Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil eines Codes darstellen, der eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweist. Es sei auch angemerkt, dass in einigen alternativen Ausführungen die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden können. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder durch Kombinationen aus Spezial-Hardware und Computeranweisungen.
-
Das Computerprogrammprodukt kann alle der entsprechenden Merkmale aufweisen, welche die Umsetzung der hierin beschriebenen Methodik ermöglichen und die in der Lage sind, die Verfahren auszuführen, wenn sie in ein Computersystem geladen werden. Computerprogramm, Software-Programm, Programm oder Software bedeutet im vorliegenden Kontext jeden beliebigen Ausdruck in jeder beliebigen Sprache, jedem beliebigen Code bzw. jeder beliebigen Schreibweise einer Reihe von Anweisungen, die ein eine Informationsverarbeitungsfähigkeit aufweisendes System zur Durchführung einer bestimmten Funktion veranlassen, entweder direkt oder nach (a) Umwandlung in eine andere Sprache, einen anderen Code oder eine andere Schreibweise und/oder (b) Reproduktion in einer anderen Materialform.
-
Die hierin verwendete Terminologie dient lediglich dem Zweck des Beschreibens bestimmter Ausführungsformen und soll die Erfindung nicht einschränken. Die Verwendung der Singularform „ein“, „eine“ bzw. „der“, „die“, „das“ hierin soll ebenfalls die Pluralformen einschließen, es sei denn, etwas anderes ergibt sich deutlich aus dem Zusammenhang. Es wird ferner darauf hingewiesen, dass die Begriffe „aufweisen“ und/oder „aufweisend“, wenn sie in dieser Beschreibung verwendet werden, das Vorhandensein von aufgeführten Eigenschaften, ganzen Zahlen, Schritten, Operationen, Elementen und/oder Komponenten angeben, jedoch nicht das Vorhandensein oder das Hinzufügen einer oder mehrerer anderer Eigenschaften, ganzer Zahlen, Schritte, Operationen, Elemente, Komponenten und/oder Gruppen hiervon ausschließen.
-
Die in den nachfolgenden Ansprüchen etwa vorhandenen, entsprechenden Strukturen, Materialien, Schritte und Entsprechungen aller Mittel oder Step-plusfunction-Elemente, falls zutreffend, verstehen sich dahingehend, dass sie jede beliebige Struktur, jedes beliebige Material bzw. jeden beliebigen Schritt zur Durchführung der Funktion in Kombination mit anderen beanspruchten Elementen nach Maßgabe der konkreten Beanspruchung aufweisen. Die Beschreibung der vorliegenden Erfindung wurde zum Zwecke der Veranschaulichung und Beschreibung aufgeführt, soll jedoch nicht gesamthaft stehen für bzw. begrenzt sein auf die Erfindung in der beschriebenen Form. Für Fachleute werden viele Abänderungen und Abweichungen ersichtlich sein, ohne von dem Umfang und dem Gedanken der Erfindung abzuweichen. Die Ausführungsform wurde gewählt und beschrieben, um die Grundgedanken der Erfindung und die praktische Anwendung bestmöglich zu erläutern und um es anderen Fachleuten zu ermöglichen, die Erfindung für verschiedene Ausführungsformen mit verschiedenen Abänderungen, die für eine bestimmte in Betracht gezogene Verwendung geeignet sind, zu verstehen.
-
Verschiedene Aspekte der vorliegenden Offenbarung können als Programm, Software oder Computeranweisungen umgesetzt werden, die in einem durch einen Computer oder eine Maschine verwendbaren oder lesbaren Medium enthalten sind, das den Computer bzw. die Maschine dazu veranlasst, die Schritte des Verfahrens durchzuführen, wenn sie auf dem Computer, dem Prozessor und/oder der Maschine ausgeführt werden. Es wird auch eine durch eine Maschine lesbare Programmspeichereinheit, auf der ein Programm mit Anweisungen physisch enthalten ist, die durch die Maschine ausgeführt werden können, um verschiedene in der vorliegenden Offenbarung beschriebene Funktionalitäten und Verfahren durchzuführen.
-
Das System und Verfahren der vorliegenden Offenbarung kann auf einem Universalcomputer oder einem Spezialcomputersystem umgesetzt und darauf ausgeführt werden. Die Begriffe „Computersystem“ und „Computernetzwerk“, die möglicherweise in der vorliegenden Anmeldung verwendet werden, können eine Vielfalt von Kombinationen aus fester/festen und/oder tragbarer/tragbaren Computer-Hardware, Software, Peripheriegeräten und Speichereinheiten beinhalten. Das Computersystem kann eine Vielfalt von einzelnen Komponenten beinhalten, die zur gemeinsamen Durchführung vernetzt oder anderweitig verknüpft sind, oder es kann eine oder mehrere eigenständige Komponenten beinhalten. Die Hardware- und Software-Komponenten des Computersystems der vorliegenden Anmeldung können feste und tragbare Einheiten wie zum Beispiel Desktops, Laptops und/oder Server beinhalten oder in diesen beinhaltet sein. Ein Modul kann eine Komponente einer Einheit, einer Software, eines Programms oder eines eine gewisse „Funktionalität“ umsetzenden Systems sein, die als Software, Hardware, Firmware, elektronische Schaltung usw. ausgeführt sein können.
-
Die oben beschriebenen Ausführungsformen sind veranschaulichende Beispiele und es darf nicht abgeleitet werden, dass die vorliegende Erfindung auf diese bestimmten Ausführungsformen beschränkt ist. Folglich kann ein Fachmann verschiedene Änderungen und Abänderungen vornehmen, ohne von dem Gedanken oder dem Umfang der wie in den beigefügten Ansprüchen festgelegten Erfindung abzuweichen.