Udostępnij za pośrednictwem


Jak przygotować dane szkoleniowe dotyczące formatowania tekstu wyświetlanego na potrzeby niestandardowej mowy

Usługa Azure AI Speech service może być wyświetlana jako dwa składniki: rozpoznawanie mowy i wyświetlanie formatowania tekstu. Rozpoznawanie mowy transkrybuje dźwięk do tekstu leksyktycznego, a następnie tekst leksyktyczny jest przekształcany w celu wyświetlania tekstu.

Diagram przepływu rozpoznawania mowy na leksykalne wyświetlanie tekstu.

Są to ustawienia regionalne, które obsługują funkcję formatowania tekstu wyświetlanego: 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-BR, pt-PT, sv-SE, tr-TR, zh-CN, zh-HK.

Domyślne formatowanie tekstu wyświetlanego

Potok wyświetlania tekstu składa się z sekwencji konstruktorów formatów wyświetlania. Każdy konstruktor odpowiada zadaniu formatu wyświetlania, takim jak ITN, wielkie litery i filtrowanie wulgaryzmów.

  • Inverse Text Normalization (ITN) — aby przekonwertować tekst w postaci mówionej na formularz. Na przykład: "I spend twenty dollars" -> "I spend $20".
  • Wielkie litery — nazwy jednostek, akronimów lub pierwszej litery zdania. Na przykład: "she is from microsoft" -> "She is from Microsoft".
  • Filtrowanie wulgaryzmów — maskowanie lub usuwanie słów wulgaryzmów z zdania. Na przykład przy założeniu, że "abcd" jest wyrazem wulgaryzmów, to słowo jest maskowane przez maskowanie wulgaryzmów: "I never say abcd" -> "I never say ****"

Firma Microsoft obsługuje podstawowe konstruktory potoku wyświetlania tekstu na potrzeby zadań przetwarzania ogólnego przeznaczenia. Konstruktory podstawowe są domyślnie uzyskiwane podczas korzystania z usługi Mowa. Aby uzyskać więcej informacji na temat formatowania gotowego do użycia, zobacz Wyświetlanie formatu tekstu.

Niestandardowe formatowanie tekstu wyświetlanego

Oprócz konstruktorów podstawowych obsługiwanych przez firmę Microsoft można zdefiniować niestandardowe reguły formatowania tekstu wyświetlania w celu dostosowania potoku formatowania tekstu wyświetlanego dla określonych scenariuszy. Niestandardowe reguły formatowania tekstu wyświetlanego są definiowane w niestandardowym pliku formatowania tekstu wyświetlanego.

Kolejność potoku formatowania tekstu wyświetlanego jest pokazana na tym diagramie.

Diagram konstruktorów formatów wyświetlania.

Niestandardowa nazwa ITN

Filozofią niestandardowej nazwy ITN opartej na wzorcu jest określenie końcowych danych wyjściowych, które chcesz zobaczyć. Usługa rozpoznawania mowy określa, w jaki sposób słowa mogą być wypowiadane i mapowane przewidywane wyrażenia mówione na określony format danych wyjściowych.

Niestandardowy model ITN jest tworzony na podstawie zestawu reguł ITN. Reguła ITN to wyrażenie regularne, takie jak ciąg wzorca, który opisuje:

  • Pasujący wzorzec ciągu wejściowego
  • Żądany format ciągu wyjściowego

Domyślne reguły ITN udostępniane przez firmę Microsoft są stosowane najpierw. Dane wyjściowe domyślnego modelu ITN są używane jako dane wejściowe niestandardowego modelu ITN. Algorytm dopasowania wewnątrz niestandardowego modelu ITN jest niewrażliwy na wielkość liter.

Istnieją cztery kategorie dopasowywania wzorców z niestandardowymi regułami ITN.

Wzorce z literałami

Na przykład deweloper może mieć element (taki jak produkt) o nazwie z postacią JO:500alfanumeryczną . Usługa rozpoznawania mowy określa, że użytkownicy mogą powiedzieć część litery jako J O, lub mogą powiedzieć joe, oraz część cyfry jako five hundred lub five zero zero lub five oh oh five double zero, a następnie utworzyć model, który mapuje wszystkie te możliwości z powrotem na JO:500 (w tym wstawianie dwukropka).

Wzorce można stosować równolegle, określając jedną regułę na wiersz w pliku formatowania tekstu wyświetlanego. Oto przykład pliku formatowania tekstu wyświetlanego, który określa dwie reguły:

JO:500
MM:760

Wzorce z symbolami wieloznacznymi

Można odwoływać się do całej serii elementów alfanumerycznych (takich jak JO:500, JO:600), JO:700bez konieczności sprawdzania wszystkich możliwości na kilka sposobów.

Zakresy znaków można określić za pomocą notacji [...], więc JO:[5-7]00 jest odpowiednikiem zapisywania trzech wzorców.

Istnieje również zestaw elementów wieloznacznych, których można użyć. Jednym z nich jest \d, co oznacza dowolną cyfrę. W związku z tym JO:\d00 obejmuje wartości , JO:100i inne do JO:900JO:000.

Podobnie jak wyrażenie regularne, istnieje wiele wstępnie zdefiniowanych klas znaków dla reguły ITN:

  • \d — dopasuj cyfrę z "0" do "9" i wyprowadza ją bezpośrednio
  • \l - dopasowuje literę (bez uwzględniania wielkości liter) i transduj ją do małej litery
  • \u - dopasowuje literę (bez uwzględniania wielkości liter) i transduj ją na wielkie litery
  • \a - dopasowuje literę (bez uwzględniania wielkości liter) i wyprowadza ją bezpośrednio

Istnieją również wyrażenia ucieczki do odwoływania się do znaków, które w przeciwnym razie mają specjalne znaczenie składni:

  • \\ - dopasuj i wyprowadza znak \
  • \( i \)
  • \{ i \}
  • \|
  • \+i i \?\*

Wzorce z notacją w stylu regularnym

Aby zwiększyć elastyczność pisania wzorców, obsługiwane są konstrukcje wyrażenia regularnego przypominające frazy z alternatywami i zamknięcie kleene.

  • Fraza jest wskazywana nawiasami, na przykład (...) — nawiasy nie są dosłownie liczone jako znaki do dopasowania.
  • Alternatywy można wskazać w frazie z znakiem | takim jak (AB|CDE).
  • Możesz sufiksować frazę z ? , aby wskazać, że jest opcjonalna, aby wskazać, + że można ją powtórzyć lub * wskazać oba te elementy. Można tylko sufiksować frazy z tymi znakami, a nie poszczególnymi znakami (co jest bardziej restrykcyjne niż większość implementacji wyrażeń regularnych).

Wzorzec, taki jak reprezentuje konstrukcje, takie jak (AB|CD)-(\d)+ "AB-9" lub "CD-22", i można je rozszerzyć na słowa mówione, takie jak A B nine i C D twenty two (lub C D two two).

Wzorce z jawnym zastąpieniem

Ogólna filozofia to "pokazujesz, jak powinny wyglądać dane wyjściowe, a usługa mowa dowiesz się, jak ludzie to mówią". Ale to nie zawsze działa, ponieważ niektóre scenariusze mogą mieć dziwaczne nieprzewidywalne sposoby mówienia rzeczy lub reguły w tle usługi Mowa mogą mieć luki. Na przykład może istnieć potoczna wymowa inicjałów i akronimów — ZPI może być mówiona jako zippy. W takim przypadku wzorzec ZPI-\d\d podobny jest mało prawdopodobne, aby działać, jeśli użytkownik mówi zippy twenty two. W takiej sytuacji istnieje notacja {spoken>written}formatu tekstu wyświetlanego. Ten konkretny przypadek można wypisać {zippy>ZPI}-\d\d.

Może to być przydatne w przypadku obsługi elementów, które są obsługiwane przez reguły mapowania mowy, ale nie są jeszcze obsługiwane. Na przykład można napisać wzorzec \d0-\d0 , który oczekuje, że system zrozumie, że "-" może oznaczać zakres i powinien być wymawiany to, jak w twenty to thirty. Ale być może tak nie jest. Możesz więc napisać bardziej wyraźny wzorzec, taki jak \d0{to>-}\d0 i poinformować o tym, jak oczekujesz, że kreska będzie odczytywana.

Możesz również pominąć tekst > i następujący formularz, aby wskazać wyrazy, które powinny być rozpoznawane, ale ignorowane. Dlatego wzorzec, taki jak {write} (\u.)+ rozpoznawanie write A B C i dane wyjściowe A.B.C— upuszczanie write części.

Niestandardowe przykłady ITN

Cyfry grupy

Aby zgrupować 6 cyfr w dwie grupy i dodać znak "-" między nimi:

Reguła ITN: \d\d\d-\d\d\d Przykład: "cadence one oh five one fifteen" -> "cadence 105-115"

Formatowanie nazwy filmu

Przestrzeń: 1999 jest słynnym filmem, aby go wspierać:

Reguła ITN: Space: 1999 Przykład: "watching space nineteen ninety nine" -> "watching Space: 1999"

Wzorzec z zastąpieniem

Reguła ITN: \d[05]{ to >-}\d[05] Przykład: fifteen to twenty -> 15-20

Ponowne zapisywanie niestandardowe

Ogólnie rzecz biorąc, w przypadku ciągu wejściowego model ponownego zapisywania próbuje zastąpić original phrase element w ciągu wejściowym odpowiadającym new phrase każdej regule ponownego zapisywania. Model ponownego zapisywania to kolekcja reguł ponownego zapisywania.

  • Reguła ponownego zapisywania to para dwóch fraz: oryginalna fraza i nowa fraza.
  • Te dwie frazy są oddzielone znakiem TAB. Na przykład original phrase{TAB}new phrase.
  • Oryginalna fraza jest dopasowywana (bez uwzględniania wielkości liter) i zastąpiona nową frazą (z uwzględnieniem wielkości liter). Znaki interpunkcyjne gramatyki w oryginalnej frazie są ignorowane podczas dopasowywania.
  • Jeśli jakiekolwiek reguły ponownego zapisywania powodują konflikt, ten z dłuższym original phrase użyciem jest używany jako dopasowanie.

Model ponownego zapisywania domyślnie obsługuje literę gramatyki, co powoduje, że pierwsza litera zdania będzie wielkich liter dla en-US takich ustawień regionalnych. Jest ona wyłączona, jeśli funkcja formatowania tekstu wyświetlanego jest wyłączona w żądaniu rozpoznawania mowy.

Interpunkcja gramatyki

Znaki interpunkcyjne gramatyki są używane do oddzielania zdania lub frazy i wyjaśniania, jak należy odczytać zdanie lub frazę.

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

Oto reguły interpunkcji gramatycznych:

  • Obsługiwane znaki interpunkcyjne są przeznaczone dla znaków interpunkcyjnych gramatycznych, jeśli następuje spacja, na początku lub na końcu zdania lub frazy. Na przykład in . x. y (z spacją między . i y) jest znakiem interpunkcyjnym gramatyki.
  • Znaki interpunkcyjne, które znajdują się w środku słowa (z wyjątkiem zh-cn i ja-jp) nie są znakiem interpunkcyjnym. W takim przypadku są to zwykłe znaki. Na przykład element . in x.y nie jest znakiem interpunkcyjnym gramatyki.
  • W przypadku zh-cn ustawień regionalnych i ja-jp (bez przerywania) znaki interpunkcyjne są zawsze używane jako znaki interpunkcyjne, nawet jeśli znajdują się między znakami. Na przykład element . in 中.文 jest znakiem interpunkcyjnym gramatyki.

Niestandardowe przykłady ponownego zapisywania

Poprawianie pisowni

Nazwa COVID-19 może być rozpoznawana jako covered 19. Aby upewnić się, że COVID-19 is a virus jest wyświetlany zamiast covered 19 is a virus, użyj następującej reguły ponownego zapisywania:

#rewrite
covered 19{TAB}COVID-19

Wielkie litery nazw

Gottfried William Leibniz był niemieckim matematykiem. Aby upewnić się, że jest to Gottfried Wilhelm Leibniz kapitalizowane, użyj następującej reguły ponownego zapisywania:

#rewrite
gottfried leibniz{TAB}Gottfried Leibniz

Wulgaryzm niestandardowy

Niestandardowy model wulgaryzmów działa tak samo jak podstawowy model wulgaryzmów, z wyjątkiem użycia niestandardowej listy fraz wulgaryzmów. Ponadto niestandardowy model wulgaryzmów próbuje dopasować (bez uwzględniania wielkości liter) wszystkie frazy wulgaryzmów zdefiniowane w pliku formatowania tekstu wyświetlanego.

  • Frazy wulgaryzmów są dopasowywane (bez uwzględniania wielkości liter).
  • Jeśli jakiekolwiek frazy wulgaryzmów powodują konflikt, najdłuższa fraza jest używana jako dopasowanie.
  • Te znaki interpunkcyjne nie są obsługiwane w frazie wulgaryzmów: . , ? 、 ! : ; ? 。 , ¿ ¡ । ؟ ، .
  • W przypadku zh-CN i ja-JP ustawień regionalnych frazy wulgaryzmów w języku angielskim nie są obsługiwane. Angielskie wulgaryzmy są obsługiwane. Wulgaryzmy dla zh-CN ustawień regionalnych i ja-JP są obsługiwane.

Wulgaryzm jest usuwany lub maskowany w zależności od ustawień żądania rozpoznawania mowy.

Po dodaniu wulgaryzmów w pliku reguły formatu tekstu wyświetlania i wytrenowaniu modelu niestandardowego jest używany do domyślnych danych wyjściowych w usłudze Zamiana mowy wsadowej na tekst i zamiana mowy w czasie rzeczywistym na tekst.

Niestandardowe przykłady wulgaryzmów

Poniżej przedstawiono kilka przykładów maskowania wulgaryzmów i fraz w pliku formatowania tekstu wyświetlanego.

Maskuj pojedynczy przykład słowa wulgaryzmów

Przyjmijmy xyz , że jest to słowo wulgaryzmów. Aby go dodać:

#profanity
xyz

Oto przykład testowy: Turned on profanity masking to mask xyz -> Turned on profanity masking to mask ***

Maskuj frazę wulgaryzmów

Załóżmy abc lmn , że jest frazą wulgaryzmów. Aby go dodać:

#profanity
abc lmn

Oto przykład testowy: Turned on profanity masking to mask abc lmn -> Turned on profanity masking to mask *** ***

Następne kroki