PatentDe  


Dokumentenidentifikation DE102004028724A1 29.12.2005
Titel Verfahren zur natürlichsprachlichen Erkennung von Nummern
Anmelder T-Mobile Deutschland GmbH, 53227 Bonn, DE
Erfinder Liedtke, Klaus Dieter, 31582 Nienburg, DE
Vertreter Riebling, P., Dipl.-Ing. Dr.-Ing., Pat.-Anw., 88131 Lindau
DE-Anmeldedatum 14.06.2004
DE-Aktenzeichen 102004028724
Offenlegungstag 29.12.2005
Veröffentlichungstag im Patentblatt 29.12.2005
IPC-Hauptklasse G10L 19/00
Zusammenfassung Die Erfindung betrifft ein Verfahren zur natürlichsprachlichen Erkennung von Nummern, insbesondere für den Einsatz in einem Spracherkennungssystem, das folgende Schritte aufweist:
Erfassen und Digitalisieren eines gesprochenen Zahlwortes, Zerlegen des Zahlwortes in nummernbezogene Wortbestandteile, Bestimmen der gegenseitigen Position der Wortbestandteile innerhalb des Zahlwortes, Vergleichen und Erkennen der den Wortbestandteilen entsprechenden Zahlenwerte anhand von in einem digitalen Wörterbuch vorgehaltenen Wortbestandteil-Zahlenwertpaaren und Aneinanderreihung und/oder Addition und/oder Multiplikation der einzelnen Zahlenwerte in Abhängigkeit von deren Art und der Positionen der ihnen entsprechenden Wortbestandteile im Zahlwort, derart, dass sich der dem eingegebenen Zahlwort entsprechende Zahlenwert ergibt.

Beschreibung[de]

Die Erfindung betrifft ein Verfahren zur natürlichsprachlichen Erkennung von Nummern, insbesondere für den Einsatz in einem Spracherkennungssystem.

Bei vielen Anwendungen in der Telekommunikation werden Spracherkennungssysteme eingesetzt, zum Beispiel um eine von einem Benutzer gesprochene Telefonnummer zu erkennen und für eine Weiterverarbeitung nutzbar zu machen. Viele dieser Spracherkennungssysteme unterstützen dabei eine natürliche Aussprache von Nummern. Will ein Benutzer zum Beispiel die Zahl „348" eingeben, so spricht er diese als zusammenhängendes Wort „dreihundertachtundvierzig" in das System. Diese natürlichsprachliche Eingabe führt aber nicht selten zu Erkennungsfehlern, so der Benutzer die einzugebende Nummer „348" nochmals als fortlaufende einstellige Ziffern „drei" „acht" „vier" aussprechen muss, damit sie vom System eindeutig erkannt wird.

Es hat sich gezeigt, das die bestehenden Systeme zur Nummernerkennung nur eingeschränkt für die zukünftigen Anforderungen an natürlichsprachliche Applikationen geeignet sind. Die bestehenden Grammatikmodule zur Zahlenerkennung erwiesen sich mit beispielweise über 300 benötigten Subgrammatiken als zu schwerfällig und für die Praxis nur bedingt tauglich.

Im Rahmen der Gewöhnung der Benutzer an die Spracherkennungssysteme werden immer höhere Ansprüche deutlich: So werden Telefonnummern immer öfter nicht mehr in Einzelziffern sondern in beliebigen Ziffernkombinationen geäußert, beispielsweise „null fünfhundertelf" statt „null fünf eins eins". Hier stoßen herkömmliche Nummernerkennungssysteme zum einen wegen ihrer Größe und zum anderen wegen ihrer Beschränkung auf das Erkennen von dreistelligen oder maximal vierstelligen Nummernkombinationen an ihre Grenzen.

Die maschinelle Erkennung von Nummern stellt die Zahlenerkennung vor zwei grundlegende Probleme:

Zum einen gehen die derzeit verbreiteten Grammatiken zur Zahlerkennung vom Dezimalsystem aus und rekonstruieren gesprochene Zahlenreihen nach einer arithmetischen Logik. Diese entspricht – gerade im Deutschen – nicht der gesprochenen Sprache, was sich am Beispiel der sogenannten „Zehnerinversion" gut veranschaulichen lässt. Hierbei wird zum Beispiel die Zahl „21" nicht der Schreibweise folgend als „zwanzigeins" gesprochen sondern in umgekehrter (invertierter) Reihenfolge als „einundzwanzig". Die Abbildung der natürlichsprachlichen Zahlenbildung verlangt innerhalb der arithmetischen Logik des Dezimalsystems einen erheblichen Abgleichaufwand, der sich bisher nur mit eine sehr großen Anzahl von Subgrammatiken bewältigen ließ.

Zum anderen sind natürlichsprachliche Zahlenfolgen vielfach mehrdeutig: So kann „Einhundertvierzig" zum einen „140" genauso gut aber auch „100 40" bedeuten. Eine Unterscheidung zwischen den beiden Alternativen kann nur aufgrund der Sprechpause zwischen der „Einhundert" und der „Vierzig" vorgenommen werden. Bei Zahlenfolgen mit begrenzter Länge oder mit begrenztem Spielraum, wie z. B. Telefonnummern inklusive Vorwahlen, ist die Grammatik zumeist in der Lage zu entscheiden, welche der potentiell gleichwertigen Alternative die Richtige sein muss, weil zum Beispiel die Gesamtlänge der geäußerten Nummer ansonsten entweder zu kurz oder zu lang wäre. Fehlt eine solche Möglichkeit der Plausibilitätsprüfung der erkannten Nummer, ergeben sich Probleme, die bis dato noch nicht voll befriedigend gelöst werden konnten.

Es ist daher die Aufgabe der vorliegenden Erfindung, ein Verfahren zur natürlichsprachlichen Nummernerkennung zu schaffen, das gesprochene Nummern – bei gleichzeitig geringem Rechenaufwand – mit großer Genauigkeit erkennt.

Die Aufgabe wird erfindungsgemäß durch die im Anspruch 1 angegebenen Maßnahmen gelöst.

Weitere vorteilhafte Ausgestaltungen der vorliegenden Erfindung sind Gegenstand der abhängigen Ansprüche.

Im explorativen Verfahren wurde ein grundlegend neues Konzept zur Zahlenerkennung entwickelt, im folgenden auch als ENI: Enhanced Number Identification bezeichnet, das mit nur 21 Subgrammatiken auskommt, die Rechnerlast minimiert und erkennungstechnisch den bisherigen Verfahren deutlich überlagen ist.

Die vorliegende Erfindung stellt ein Spracherkennungsverfahren und -system zur Verfügung, das eine auf mehrere unterschiedliche Weisen ausgesprochene Zahl erkennt. Zum Beispiel können die Zahlen, wie zum Beispiel „12" oder „1000" als jede einstellige Zahl in einer fort-laufenden Reihenfolge, wie zum Beispiel „eins-zwei" oder „eins-null-null-null" gesprochen werden oder als eine mehrstellige Zahl, wie zum Beispiel „zwölf" oder „eintausend".

Genauer gesagt ist, um die vorhergehende Aufgabe zu lösen ein Verfahren mit den folgenden Schritten vorgesehen:

Erfassen und digitalisieren eines gesprochenen Zahlwortes, Zerlegen des Zahlwortes in nummernbezogene Wortbestandteile, Bestimmen der gegenseitigen Position der Wortbestandteile innerhalb des Zahlwortes, Vergleichen und Erkennen der den Wortbestandteilen entsprechenden Zahlenwerte anhand von in einem digitalen Wörterbuch vorgehaltenen Wortbestandteil-Zahlenwertpaaren, und Aneinanderreihung und/oder Addition und/oder Multiplikation der einzelnen Zahlenwerte in Abhängigkeit von deren Art und der Positionen der ihnen entsprechenden Wortbestandteile im Zahlwort, derart, dass sich der dem eingegebenen Zahlwort entsprechende Zahlenwert ergibt.

Mit Hilfe der Zahlenerkennung ENI wird erfindungsgemäß ein größerer Nutzungskomfort bei der Zahlenerkennung erreicht, weil der Benutzer (Sprecher) größere Zahlenwerte nicht mehr in Einzelziffern einzugeben braucht, sondern natürlichsprachig mit der Maschine interagieren kann. Ein weiterer Vorteil ist, dass eine verbesserte Erkennung erreicht wird. Da die Erkennungsgenauigkeit eines Spracherkennungssystems in dem Maße fällt, in dem man die Grammatik vergrößert, wird von ENI eine signifikante Verbesserung der Erkennerleistung erzielt, da nur eine relativ kompakte Grammatik notwenig ist, was die benötigte Rechenleistung wesentlich verringert.

Im Unterschied zur bisherigen Grammatik zur Zahlenerkennung löst ENI die Äußerung nicht nach der Logik des Dezimalsystems sondern sprachlogisch auf. Dabei wird der Zielwert, also die zu erkennende Zahl, teilweise aus den einzelnen erkannten Zahlenwerten errechnet und/oder teilweise aus Zahlensymbolen zusammengefügt (konkateniert).

Die vorliegende Erfindung wird nachstehend anhand von Ausführungsbeispielen näher erläutert.

Einzelziffern werden aus Zahlenwerten (NumCalcSection) gebildet, Einzelziffern in Zahlenkombinationen aus Zahlensymbolen (NumSymSection).

Mit den Symbolen, die durch Anführungsstriche gekennzeichnet sind, kann nicht gerechnet werden. Sie werden im Rahmen einer Konkatenierung (cat) kettenartig miteinander verknüpft.

Beispiel:
  • Zwei -> {return (2)} -> 2
  • Zwei Zwei Fünf -> {return (cat(cat(cat(„2")"2")"5") -> 225

Bei zweistelligen Zahlwerten wird zwischen dem Zehnerbereich (Teensection), das heißt den Werten „zehn" bis „neunzehn", und dem darüber liegenden zweistelligen Bereich (Decimalsection), das heißt „einundzwanzig" bis „neunundneunzig" unterschieden. Dabei werden Einzelziffernerkennung und Dezimalziffernerkennung kombiniert. Die erkannten Ziffern innerhalb der Decimalsection werden addiert (add).

Beispiel:
  • Siebzehn -> {return („17")} -> 17
  • Zwei_und_dreißig -> {return (add(2 30))} -> 32

Der Hunderterbereich wird durch den Zahlenwert (NumCalcSection) vor dem Wort „Hundert" multipliziert mit dem Zahlenwert „100", sowie einer Addition der anschließenden Teen- bzw. Decimalsection gebildet.

Beispiel:
  • Drei_hundert_fünf -> {return (add(mul(100 3)5))} -> 305
  • Acht_hundert_sechzehn -> {return (add(mul(100 8)16))} -> 816
  • Zwei_hundert_vier_und_zwanzig -> {return (add(add(mul(100 2)4)20)} -> 224

Der Tausenderbereich wird nach eben diesem Schema durch NumSymsection vor dem Wort „Tausend" oder der TeenSection vor dem Wort „Hundert" und dem sich anschließenden Hunderterbereich aus dem Symbolbereich erschlossen. Dabei wird ausschließlich konkateniert. Wird der Tausenderbereich durch ein vielfaches von „hundert" angegeben, wird die Teensection vor dem Wort „Hundert" mit dem Zahlenwert „100" multipliziert.

Beispiel:
  • Drei_tausend_vier_hundert_zwölf -> {return (cat(cat(cat(3 4)12)} -> 3412
  • Vierzehn_hundert_und_achtzehn -> {return (add(mul(14 100)18)} -> 1418

Der Zehntausenderbereich wird durch die Teensection bzw. die Decimalsection vor dem Wort „Tausend" und dem sich anschließenden Hunderterbereich aufgefangen. Je nach ihrer Position im Zahlwort werden die Zahlenwerte addiert oder konkateniert.

Beispiel
  • Vierzehn_tausend_acht_hundert_drei_und_zwanzig

    -> {return (add(cat(cat(cat(14 8)3)20))} -> 14823
  • Der Hunderttausenderbereich wird nach eben diesem Schema durch den Hunderterbereich vor dem Wort „Tausend" und dem sich neuerlich anschließenden Hunderterbereich gebildet.
Beispiel:
  • Neun_hundert_acht_tausend_und_drei_und_zwanzig

    -> (return (cat(cat(cat(cat(mul(10 9)8)0)2)3)) -> 908023

Die Zahl „Eine Million" wird als einzelnes Zahlwort erkannt

Das beschriebene Zahlenbildungsschema setzt sich aus einer geringen Anzahl von Modulen zusammen, die nach sprachlogischen Regeln verknüpft werden. Es lässt sich problemlos nach oben erweitern und ist in der Lage, noch sehr viel größere Zahlen abzufangen, was in der ASR jedoch kaum mehr sinnvoll ist. Auch Kommazahlen beliebiger Länge können leicht integriert und verstanden werden.


Anspruch[de]
  1. Verfahren zur natürlichsprachlichen Erkennung von Nummern, insbesondere für den Einsatz in einem Spracherkennungssystem, mit folgenden Schritten:

    Erfassen und Digitalisieren eines gesprochenen Zahlwortes,

    Zerlegen des Zahlwortes in seine nummernbezogenen Wortbestandteile,

    Bestimmen der gegenseitigen Position der Wortbestandteile innerhalb des Zahlwortes,

    Vergleichen und Erkennen der den Wortbestandteilen entsprechenden Zahlenwerte anhand von in einem digitalen Wörterbuch vorgehaltenen Wortbestandteil-Zahlenwertpaaren, und

    Aneinanderreihung und/oder Addition und/oder Multiplikation der einzelnen Zahlenwerte in Abhängigkeit von deren Art und der Positionen der ihnen entsprechenden Wortbestandteile im Zahlwort, derart, dass sich der dem eingegebenen Zahlwort entsprechende Zahlenwert ergibt.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Wortbestandteile „null", „eins", „zwei", „drei", „vier", „fünf", „sechs", „sieben", „acht", „neun", „zehn", „elf", „zwölf", „dreizehn", „vierzehn", „fünfzehn", „sechzehn", „siebzehn", „achtzehn", „neunzehn", „zwanzig", „dreißig", „vierzig", „fünfzig", „sechzig", „siebzig", „achtzig", „neunzig", „hundert", „einhundert", „zweihundert", „dreihundert", „vierhundert", „fünfhundert", „sechshundert", „siebenhundert", „achthundert", „neunhundert", „tausend", „million", „eine million" als Wortbestandteile erkannt werden und den entsprechenden Zahlenwerten 0, 1, 2,.., 1000, 1000000 zugeordnet werden.
  3. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass einstellige Ziffern unmittelbar aus den aus dem Wörterbuch ermittelten Zahlenwerten gebildet werden.
  4. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass eine Aneinanderreihung von mehreren Einzelziffern aus einer kettenartigen Verknüpfung der einzelnen Zahlenwerte gebildet werden.
  5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass bei zweistelligen Ziffern zwischen einem Zehnerbereich (Teensection) und einem darüber liegenden zweistelligen Zahlenbereich (Decimalsection) unterschieden wird, wobei Ziffern im Zehnerbereich unmittelbar aus den den erkannten Wortbestandteilen zugeordneten Zahlenwerten und Ziffern im Dezimalbereich durch Addition der einzelnen Zahlenwerte gebildet werden.
  6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass eine Ziffer im Hunderterbereich durch Multiplikation des vor dem Wortbestandteil „hundert" erfassten Zahlenwerts mit dem Zahlenwert „100" und – sofern vorhanden – einer Addition der gemäß den vorhergehenden Ansprüchen bestimmten Zahlenwerten gebildet wird.
  7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass eine Ziffer im Tausenderbereich durch Multiplikation des vor dem Wortbestandteil „tausend" erfassten Zahlenwerts mit dem Zahlenwert „1000" und – sofern vorhanden – einer Addition der gemäß den vorhergehenden Ansprüchen bestimmten Zahlenwerten gebildet wird.
  8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass eine Ziffer im Tausenderbereich durch Multiplikation des vor dem Wortbestandteil „hundert" erfassten Zahlenwerts mit dem Zahlenwert „100" und – sofern vorhanden – einer Addition der in den vorhergehenden Ansprüchen bestimmten Zahlenwerten gebildet wird.
  9. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass eine Ziffer im Zehntausenderbereich durch die Teensection oder die Decimalsection vor dem Wortbestandteil „tausend" und dem sich anschließenden Hunderterbereich gebildet wird.
  10. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass eine Ziffer im Hunderttausenderbereich durch den erkannten Hunderterbereich vor dem Wortbestandteil „tausend" und dem sich anschließenden Hunderterbereich gebildet wird.
  11. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der Wortbestandteil „Million" oder „eine Million" als einzelnes Zahlwort erkannt wird.
Es folgt kein Blatt Zeichnungen






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com