Share via


Vorbereiten von Trainingsdaten für das Anzeigetextformat für Custom Speech

Der Azure KI Speech-Dienst umfasst zwei Komponenten: Spracherkennung und Anzeigetextformatierung. Die Spracherkennung transkribiert Audio in lexikalischen Text, der dann in Anzeigetext transformiert wird.

Diagram of the flow of speech recognition to lexical to display text.

Das Anzeigetextformatfeature wird für folgende Gebietsschemas unterstützt: da-DK, de-DE, en-AU, en-CA, en-GB, en-HK, en-IE, en-IN, en-NG, en-NZ, en-PH, en-SG, en-US, es-ES, es-MX, fi-FI, fr-CA, fr-FR, hi-IN, it-IT, ja-JP, ko-KR, nb-NO, nl-NL, pl-PL, pt-PT, sv-SE, tr-TR, zh-CN und zh-HK.

Standard-Anzeigetextformatierung

Die Anzeigetextpipeline besteht aus einer Sequenz von Anzeigeformatgeneratoren. Jeder Generator entspricht einer Anzeigeformataufgabe wie ITN, Großschreibung und Filterung anstößiger Ausdrücke.

  • Umgekehrte Textnormalisierung (Inverse Text Normalization, ITN): Dient dazu, den Text gesprochener Zahlen in das Anzeigeformat zu konvertieren. Beispiel: "I spend twenty dollars" -> "I spend $20"
  • Großschreibung: Dient dazu, Entitätsnamen, Akronyme oder den ersten Buchstaben eines Satzes großzuschreiben. Beispiel: "she is from microsoft" -> "She is from Microsoft"
  • Filterung anstößiger Ausdrücke: Dient zum Maskieren oder Entfernen anstößiger Wörter in einem Satz. Wenn beispielsweise „abcd“ ein anstößiges Wort ist, wird es durch die Maskierung anstößiger Wörter maskiert: "I never say abcd" -> "I never say ****"

Microsoft verwaltet die Basisgeneratoren der Anzeigetextpipeline für universelle Anzeigeverarbeitungsaufgaben. Sie erhalten die Basisgeneratoren standardmäßig, wenn Sie den Speech-Dienst verwenden. Weitere Informationen zur sofort verwendbaren Formatierung finden Sie unter Anzeigen der Textformatierung mit Spracherkennung.

Benutzerdefinierte Anzeigetextformatierung

Neben den von Microsoft verwalteten Basis-Generatoren können Sie benutzerdefinierte Regeln für die Anzeigetextformatierung definieren, um die Pipeline für die Anzeigetextformatierung für Ihre spezifischen Szenarien anzupassen. Die Regeln für die benutzerdefinierte Anzeigetextformatierung werden in einer Datei für die benutzerdefinierte Anzeigetextformatierung definiert.

Die Reihenfolge der Textformatierungspipeline wird im folgenden Diagramm veranschaulicht:

Diagram of the display format builders.

Benutzerdefinierte ITN

Bei der musterbasierten benutzerdefinierten ITN können Sie die gewünschte endgültige Ausgabe angeben. Der Speech-Dienst ermittelt, wie die Wörter gesprochen werden können, und ordnet die vorhergesagten gesprochenen Ausdrücke dem angegebenen Ausgabeformat zu.

Ein benutzerdefiniertes ITN-Modell basiert auf einer Reihe von ITN-Regeln. Eine ITN-Regel ist ein regulärer Ausdruck (beispielsweise eine Musterzeichenfolge), der Folgendes beschreibt:

  • Ein übereinstimmendes Muster der Eingabezeichenfolge
  • Das gewünschte Format der Ausgabezeichenfolge

Die von Microsoft bereitgestellten ITN-Standardregeln werden zuerst angewendet. Die Ausgabe des ITN-Standardmodells wird als Eingabe des benutzerdefinierten ITN-Modells verwendet. Der Abgleichsalgorithmus im benutzerdefinierten ITN-Modell berücksichtigt die Groß-/Kleinschreibung.

Bei benutzerdefinierten ITN-Regeln gibt es vier Musterabgleichskategorien:

Muster mit Literalen

Angenommen, ein Entwickler bzw. eine Entwicklerin verfügt über ein Element (z. B. ein Produkt), das mit dem alphanumerischen Format JO:500 benannt ist. Der Sprachdienst stellt fest, dass Benutzer den Buchstabenteil als J O sagen, oder sie sagen joe und den Nummernteil als five hundred oder five zero zero oder five oh oh oder five double zero, und sie erstellen dann ein Modell, das all diese Möglichkeiten zurück auf JO:500 zuordnet (einschließlich des Einfügens des Doppelpunkts).

Muster können parallel angewendet werden, indem in der Datei für die Anzeigetextformatierung jeweils eine Regel pro Zeile angegeben wird. Hier ist ein Beispiel für eine Datei für die Anzeigetextformatierung mit zwei Regeln:

JO:500
MM:760

Muster mit Platzhaltern

Sie können auf eine ganze Reihe alphanumerischer Elemente (z. B. JO:500, JO:600, JO:700) verweisen, ohne alle Möglichkeiten auf verschiedene Weise erstellen zu müssen.

Mithilfe der Notation [...] können Zeichenbereiche angegeben werden, sodass JO:[5-7]00 drei ausgeschriebenen Mustern entspricht.

Es gibt auch eine Reihe von Platzhalterelementen, die verwendet werden können. Eines davon ist \d (beliebige Ziffer). JO:\d00 deckt also JO:000, JO:100 bis hin zu JO:900 ab.

Genau wie bei einem regulären Ausdruck gibt es mehrere vordefinierte Zeichenklassen für eine ITN-Regel:

  • \d: Verwendet eine Ziffer von 0 bis 9 und gibt sie direkt aus.
  • \l: Verwendet einen Buchstaben (ohne Beachtung der Groß-/Kleinschreibung) und wandelt ihn in einen Kleinbuchstaben um.
  • \u: Verwendet einen Buchstaben (ohne Beachtung der Groß-/Kleinschreibung) und wandelt ihn in einen Großbuchstaben um.
  • \a: Verwendet einen Buchstaben (ohne Beachtung der Groß-/Kleinschreibung) und gibt ihn direkt aus.

Es gibt auch Escapeausdrücke, um auf Zeichen zu verwesen, die andernfalls eine spezielle syntaktische Bedeutung haben:

  • \\: Verwendet das Zeichen \ und gibt es aus.
  • \( und \)
  • \{ und \}
  • \|
  • \+, \? und \*

Muster mit RegEx-ähnlicher Notation

Um die Flexibilität beim Schreiben von Mustern zu verbessern, werden RegEx-ähnliche Konstruktionen von Ausdrücken mit Alternativen und Kleene-Abschluss unterstützt.

  • Ein Ausdruck wird mit Klammern angegeben (z. B. (...)): Die Klammern gelten nicht abzugleichende Zeichen.
  • Mit dem Zeichen | können Alternativen innerhalb eines Ausdrucks angegeben werden (z. B. (AB|CDE)).
  • Sie können einen Ausdruck mit dem Suffix ? versehen, um anzugeben, dass er optional ist. + gibt an, dass er wiederholt werden kann, und * gibt beides an. Sie können Ausdrücke nur mit diesen Zeichen als Suffix versehen. Die Verwendung einzelner Zeichen (was restriktiver ist als die meisten Implementierungen regulärer Ausdrücke) ist nicht möglich.

Ein Muster wie (AB|CD)-(\d)+ würde Konstrukte wie „AB-9“ oder „CD-22“ darstellen und auf gesprochene Wörter wie A B nine und C D twenty two (oder C D two two) erweitert werden.

Muster mit expliziter Ersetzung

Die allgemeine Philosophie ist: Sie zeigen uns, wie die Ausgabe aussehen soll, und der Speech-Dienst findet heraus, wie es gesprochen wird. Das funktioniert allerdings nicht immer, da es in manchen Szenarien möglicherweise unvorhergesehene Möglichkeiten gibt, Dinge zu sagen, oder weil die Hintergrundregeln des Speech-Diensts unter Umständen nicht lückenlos sind. So kann es etwa umgangssprachliche Aussprachen für Initialen und Akronyme geben. ZPI kann zum Beispiel als zippy gesprochen werden. In diesem Fall funktioniert ein Muster wie ZPI-\d\d wahrscheinlich nicht, wenn Benutzer zippy twenty two sagen. Für derartige Situationen gibt es die Notation {spoken>written} für das Anzeigetextformat. Dieser spezielle Fall kann als {zippy>ZPI}-\d\d ausgeschrieben werden.

Dies kann für die Behandlung von Dingen hilfreich sein, die von den Speech-Zuordnungsregeln noch nicht unterstützt werden. Sie können z. B. das Muster \d0-\d0 schreiben und erwarten, dass das System „-“ als Bereichsangabe erkennt, die als twenty to thirty gesprochen wird (wie etwa bei to). Das funktioniert aber vielleicht nicht. Also können Sie ein expliziteres Muster wie \d0{to>-}\d0 schreiben und angeben, wie der Bindestrich interpretiert werden soll.

Sie können auch > und das nachfolgende geschriebene Format weglassen, um Wörter anzugeben, die zwar erkannt, aber ignoriert werden sollen. Bei einem Muster wie {write} (\u.)+ wird also write A B C erkannt und A.B.C ausgegeben. Der Teil write wird dagegen weggelassen.

Beispiele für benutzerdefinierte ITN

Gruppieren von Ziffern

So gruppieren Sie sechs Ziffern in zwei Gruppen und fügen dazwischen einen Bindestrich („-“) ein

ITN-Regel: \d\d\d-\d\d\d Beispiel: "cadence one oh five one fifteen" -> "cadence 105-115"

Formatieren eines Filmnamens

Space: 1999 ist ein berühmter Film. Verwenden Sie Folgendes, um ihn zu unterstützen:

ITN-Regel: Space: 1999 Beispiel: "watching space nineteen ninety nine" -> "watching Space: 1999"

Muster mit Ersetzung

ITN-Regel: \d[05]{ to >-}\d[05] Beispiel: fifteen to twenty -> 15-20

Benutzerdefinierte Umschreibung

Im Allgemeinen versucht das Umschreibmodell bei einer Eingabezeichenfolge, den ursprünglichen Ausdruck (original phrase) in der Eingabezeichenfolge durch den entsprechenden neuen Ausdruck (new phrase) für jede Umschreiberegel zu ersetzen. Ein Umschreibmodell ist eine Sammlung von Umschreiberegeln.

  • Bei einer Umschreiberegel handelt es sich um ein Paar mit zwei Ausdrücken: einem ursprünglichen Ausdruck und einem neuen Ausdruck.
  • Die beiden Ausdrücke werden durch ein Tabstoppzeichen getrennt. Beispiel: original phrase{TAB}new phrase.
  • Der ursprüngliche Ausdruck wird abgeglichen (ohne Berücksichtigung der Groß-/Kleinschreibung) und durch den neuen Ausdruck ersetzt (unter Berücksichtigung der Groß-/Kleinschreibung). Grammatische Satzzeichen im ursprünglichen Ausdruck werden beim Abgleich ignoriert.
  • Bei einem Konflikt zwischen Umschreiberegeln wird die Regeln mit dem längeren ursprünglichen Ausdruck (original phrase) als Übereinstimmung verwendet.

Das Umschreibmodell unterstützt standardmäßig die grammatische Großschreibung. Hierbei wird jeweils der erste Buchstabe eines Satzes für en-US-ähnliche Gebietsschemas großgeschrieben. Sie wird deaktiviert, wenn das Großschreibungsfeature der Anzeigetextformatierung in einer Spracherkennungsanforderung deaktiviert ist.

Grammatische Satzzeichen

Grammatische Satzzeichen werden zur Trennung von Sätzen oder Ausdrücken verwendet und verdeutlichen, wie ein Satz oder Ausdruck gelesen werden soll.

. , ? 、 ! : ; ? 。 , ¿ ¡ । ؟ ،

Hier finden Sie die Regeln für grammatische Satzzeichen:

  • Die unterstützten Satzzeichen fungieren als grammatische Satzzeichen, wenn nach ihnen ein Leerzeichen folgt oder wenn sie sich am Anfang oder Ende eines Satzes oder Ausdrucks befinden. . in x. y (mit einem Leerzeichen zwischen . und y) ist beispielsweise ein grammatisches Satzzeichen.
  • Satzzeichen, die sich in der Mitte eines Worts befinden (mit Ausnahme von zh-cn und ja-jp), sind keine grammatischen Satzzeichen. In diesem Fall sind sie normale Zeichen. . in x.y ist beispielsweise kein grammatisches Satzzeichen.
  • Bei zh-cn und ja-jp (Gebietsschemas ohne Leerzeichen) werden Satzzeichen immer als grammatische Satzzeichen verwendet, auch wenn sie sich zwischen Zeichen befinden. . in 中.文 ist beispielsweise ein grammatisches Satzzeichen.

Beispiele für Umschreibungen

Rechtschreibekorrektur

Der Name COVID-19 wird möglicherweise als covered 19 erkannt. Verwenden Sie die folgende Umschreiberegel, um sicherzustellen, dass nicht covered 19 is a virus, sondern COVID-19 is a virus angezeigt wird:

#rewrite
covered 19{TAB}COVID-19

Großschreibung von Namen

Gottfried Wilhelm Leibniz war ein deutscher Mathematiker. Verwenden Sie die folgende Umschreiberegel, um sicherzustellen, dass Gottfried Wilhelm Leibniz großgeschrieben wird:

#rewrite
gottfried leibniz{TAB}Gottfried Leibniz

Benutzerdefinierte anstößige Ausdrücke

Ein benutzerdefiniertes Modell für anstößige Ausdrücke funktioniert genau wie das Basismodell für anstößige Ausdrücke. Der einzige Unterschied besteht in der Verwendung einer benutzerdefinierten Liste mit anstößigen Ausdrücken. Außerdem versucht das benutzerdefinierte Modell für anstößige Ausdrücke, alle anstößigen Ausdrücke, die in der Datei für die Anzeigetextformatierung definiert sind, abzugleichen (ohne Berücksichtigung der Groß-/Kleinschreibung).

  • Die anstößigen Ausdrücke werden abgeglichen (ohne Berücksichtigung der Groß-/Kleinschreibung).
  • Bei einem Konflikt der Regeln für anstößige Ausdrücke wird der längste Ausdruck als Übereinstimmung verwendet.
  • Folgende Satzzeichen werden in einem anstößigen Ausdruck nicht unterstützt: . , ? 、 ! : ; ? 。 , ¿ ¡ । ؟ ، .
  • Für die Gebietsschemas zh-CN und ja-JP werden anstößige Ausdrücke in englischer Sprache nicht unterstützt. Anstößige Ausdrücke in englischer Sprache werden unterstützt. Anstößige Ausdrücke für die Gebietsschemas zh-CN und ja-JP werden unterstützt.

Der anstößige Ausdruck wird abhängig von den Einstellungen der Spracherkennungsanforderung entweder entfernt oder maskiert.

Nachdem anstößige Ausdrücke der Regeldatei für das Anzeigetextformat hinzugefügt wurden und das benutzerdefinierte Modell trainiert wurde, werden sie für die Standardausgabe der Batch-Spracherkennung und der Spracherkennung in Echtzeit verwendet.

Beispiele für benutzerdefinierte anstößige Ausdrücke

Hier sind einige Beispiele für die Maskierung anstößiger Wörter und Ausdrücke in der Datei für die Anzeigetextformatierung.

Beispiel für die Maskierung eines einzelnen anstößigen Worts

Angenommen, xyz ist ein anstößiges Wort. Gehen Sie zum Hinzufügen wie folgt vor:

#profanity
xyz

Hier ist ein Testbeispiel: Turned on profanity masking to mask xyz -> Turned on profanity masking to mask ***

Maskieren eines anstößigen Ausdrucks

Angenommen, abc lmn ist ein anstößiger Ausdruck. Gehen Sie zum Hinzufügen wie folgt vor:

#profanity
abc lmn

Hier ist ein Testbeispiel: Turned on profanity masking to mask abc lmn -> Turned on profanity masking to mask *** ***

Nächste Schritte