Поделиться через


Подготовка данных обучения формата текста для пользовательской речи

Служба "Речь" Azure AI может рассматриваться как два компонента: распознавание речи и форматирование текста. Распознавание речи транскрибирует звук в лексический текст, а затем лексический текст преобразуется в отображаемый текст.

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

Это языковые стандарта, поддерживающие функцию форматирования текста отображения: 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.

Форматирование текста по умолчанию

Конвейер отображения текста состоит из последовательности построителей форматов отображения. Каждый построитель соответствует задаче формата отображения, например ITN, прописи и фильтрации ненормативной лексики.

  • Обратное нормализация текста (ITN) — преобразование текста голосовых номеров форм для отображения формы. Например: "I spend twenty dollars" -> "I spend $20"
  • Заглавная буква — имена сущностей верхнего регистра, акронимы или первая буква предложения. Например: "she is from microsoft" -> "She is from Microsoft"
  • Фильтрация ненормативной лексики — маскирование или удаление слов ненормативной лексики из предложения. Например, если "abcd" является словом ненормативной лексики, то слово маскируется маскированием ненормативной лексики: "I never say abcd" -> "I never say ****"

Корпорация Майкрософт поддерживает базовые построители конвейера отображаемого текста для задач обработки отображения общего назначения. При использовании службы "Речь" вы получаете базовые построители по умолчанию. Дополнительные сведения о форматировании вне поля см. в разделе "Отображаемый текстовый формат".

Форматирование текста пользовательского отображения

Помимо базовых построителей, поддерживаемых корпорацией Майкрософт, можно определить пользовательские правила форматирования текста отображения для настройки конвейера форматирования текста для определенных сценариев. Пользовательские правила форматирования текста отображаются в пользовательском файле форматирования текста.

Порядок конвейера форматирования текста отображается на этой схеме.

Diagram of the display format builders.

Настраиваемая ИТ-имя

Философия пользовательского ITN на основе шаблонов заключается в том, что можно указать окончательные выходные данные, которые вы хотите увидеть. Служба "Речь" определяет, как можно говорить слова и сопоставлять прогнозируемые выражения с указанным форматом выходных данных.

Пользовательская модель ITN создается из набора правил ITN. Правило ITN — это регулярное выражение, например строка шаблона, описывающая следующее:

  • Соответствующий шаблон входной строки
  • Требуемый формат выходной строки

Сначала применяются правила ITN по умолчанию, предоставляемые корпорацией Майкрософт. Выходные данные модели ITN по умолчанию используются в качестве входных данных пользовательской модели ITN. Алгоритм сопоставления внутри пользовательской модели ITN не учитывает регистр.

Существует четыре категории сопоставления шаблонов с пользовательскими правилами ITN.

Шаблоны с литералами

Например, у разработчика может быть элемент (например, продукт) с буквенно-цифровой формой JO:500. Служба "Речь" определяет, что пользователи могут сказать букву какJ O, или они могут сказатьjoe, а часть числа как five hundred или или five zero zero илиfive double zerofive oh oh, а затем создать модель, которая сопоставляет все эти возможности обратно JO:500 (включая вставку двоеточия).

Шаблоны можно применять параллельно, указав одно правило для каждой строки в файле форматирования текста. Ниже приведен пример файла форматирования текста отображения, указывающего два правила:

JO:500
MM:760

Шаблоны с дикими карта

Вы можете ссылаться на целый ряд буквенно-цифровых элементов (например JO:500, JO:600, JO:700) без необходимости указывать все возможности несколькими способами.

Диапазоны символов можно указать с нотацией [...], поэтому JO:[5-7]00 эквивалентно написанию трех шаблонов.

Существует также набор диких карта элементов, которые можно использовать. Одним из них является то, что означает \dлюбую цифру. Таким образом JO:\d00 , охватывает JO:000, JO:100и другие до JO:900.

Как и регулярное выражение, существует несколько стандартных классов символов для правила ITN:

  • \d — соответствует цифре от "0" до "9" и выводит ее непосредственно.
  • \l — соответствует букве (без учета регистра) и трансдуцировать его в нижний регистр
  • \u — сопоставляет букву (без учета регистра) и трансдуцировать ее в верхний регистр
  • \a — соответствует букве (без учета регистра) и выводит ее непосредственно.

Существуют также escape-выражения для ссылки на символы, которые в противном случае имеют специальное синтаксическое значение:

  • \\ — сопоставление и вывод символа \
  • \( и \)
  • \{ и \}
  • \|
  • \+и \?\*

Шаблоны с нотацией в стиле regex

Для повышения гибкости написания шаблонов поддерживаются такие регулярные выражения, как построение фраз с альтернативными вариантами и закрытие Клееном.

  • Фраза указывается с круглыми скобками, например (...) - скобки не подсчитываются буквально как символы, которые должны быть сопоставлены.
  • Можно указать альтернативные варианты в фразе с таким символом | , как (AB|CDE).
  • Можно суффиксировать фразу, ? указывающую, что она является необязательной, чтобы указать, + что она может повторяться или * указывать оба. Фразы суффикса можно использовать только с этими символами, а не отдельные символы (что является более строгим, чем большинство реализаций регулярных выражений).

Шаблон, например, представляет конструкции, такие как (AB|CD)-(\d)+ AB-9 или CD-22, и будут развернуты для речевых слов, таких как A B nine и C D twenty two (или C D two two).

Шаблоны с явной заменой

Общая философия — это "вы показываете нам, как должны выглядеть выходные данные, и служба "Речь" определяет, как люди говорят это". Но это не всегда работает, так как некоторые сценарии могут иметь причудливые непредсказуемые способы говорить вещи, или правила фона службы "Речь" могут иметь пробелы. Например, для инициалов и акронимов ZPI можно говорить zippyкак о коллоквиальном произношении. В этом случае шаблон, как ZPI-\d\d вряд ли будет работать, если пользователь говорит zippy twenty two. Для такого рода ситуации есть нотация {spoken>written}формата текста отображения. Этот конкретный случай можно записать {zippy>ZPI}-\d\d.

Это может быть полезно для обработки вещей, которые правила сопоставления речи, но пока не поддерживаются. Например, можно написать шаблон \d0-\d0 , ожидающий, что система понимает, что "-" может означать диапазон и должен быть произнесен to, как и в twenty to thirty. Но, возможно, это не так. Таким образом, вы можете написать более явный шаблон, как \d0{to>-}\d0 и рассказать, как вы ожидаете, что тире будет считываться.

Вы также можете исключить и следующую > письменное форму, чтобы указать слова, которые должны быть распознаны, но игнорируются. Таким образом, шаблон, например {write} (\u.)+ распознает write A B C и выводит A.B.Cчасть, удаляя write ее.

Пользовательские примеры ИТN

Групповые цифры

Чтобы сгруппировать 6 цифр в две группы и добавить между ними символ -:

Правило ITN: пример: \d\d\d-\d\d\d"cadence one oh five one fifteen" -> "cadence 105-115"

Форматирование имени фильма

Пространство: 1999 является известным фильмом, чтобы поддержать его:

Правило ITN: пример: Space: 1999"watching space nineteen ninety nine" -> "watching Space: 1999"

Шаблон с заменой

Правило ITN: пример: \d[05]{ to >-}\d[05]fifteen to twenty -> 15-20

Настраиваемое перезаписи

Общая речь, для входной строки, перезапись модели пытается заменить original phrase входную строку соответствующим new phrase для каждого правила перезаписи. Модель перезаписи — это коллекция правил перезаписи.

  • Правило перезаписи — это пара двух фраз: исходная фраза и новая фраза.
  • Две фразы разделены символом TAB. Например, original phrase{TAB}new phrase.
  • Исходная фраза совпадает (без учета регистра) и заменена новой фразой (учитывает регистр). Символы препинания грамматики в исходной фразе игнорируются во время совпадения.
  • Если какие-либо правила переопределения конфликтуют, он с более длинным original phrase используется в качестве совпадения.

Модель перезаписи поддерживает прописную букву грамматики по умолчанию, которая прописывает первую букву предложения для en-US таких языковых стандартов. Если функция заглавной буквы форматирования текста отключена в запросе распознавания речи.

Знак препинания грамматики

Знаки препинания грамматики используются для разделения предложения или фразы, а также для уточнения способа чтения предложения или фразы.

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

Ниже приведены правила препинания грамматики:

  • Поддерживаемые знаки препинания предназначены для пунктуации грамматики, если за ними следует пробел или в начале или конце предложения или фразы. Например, вход .x. y (с пробелом между . и y) — это пунктуация грамматики.
  • Знаки препинания, которые находятся в середине слова (за исключением zh-cn и ja-jp) не являются знаками препинания грамматики. В этом случае они обычные символы. Например, это .x.y не грамматика препинания.
  • Для zh-cn и ja-jp (неспакционных языковых стандартов) знаки препинания всегда используются в качестве знаков препинания грамматики, даже если они находятся между символами. Например, это .中.文 знак препинания грамматики.

Пользовательские примеры перезаписи

Исправление орфографических ошибок

Имя COVID-19 может быть распознано как covered 19. Чтобы убедиться, что COVID-19 is a virus отображается вместо covered 19 is a virusэтого, используйте следующее правило перезаписи:

#rewrite
covered 19{TAB}COVID-19

Заглавная буква

Готфрид Вильгельм Лейбниц был немецким математиком. Чтобы убедиться, что Gottfried Wilhelm Leibniz выполняется прописная буква, используйте следующее правило перезаписи:

#rewrite
gottfried leibniz{TAB}Gottfried Leibniz

Настраиваемое ненормативное выражение

Пользовательская модель ненормативной лексики действует так же, как базовая модель ненормативной лексики, за исключением использования настраиваемого списка фраз ненормативной лексики. Кроме того, пользовательская модель ненормативной лексики пытается сопоставить (без учета регистра) все фразы ненормативной лексики, определенные в файле форматирования текста отображения.

  • Фразы ненормативной лексики совпадают (без учета регистра).
  • Если какие-либо фразы ненормативной лексики конфликтуют, самая длинная фраза используется в качестве совпадения.
  • Эти знаки препинания не поддерживаются в фразе ненормативной лексики: . , ? 、 ! : ; ? 。 , ¿ ¡ । ؟ ،
  • Для zh-CN и ja-JP языковых стандартов фразы ненормативной лексики на английском языке не поддерживаются. Поддерживаются слова ненормативной лексики на английском языке. Поддерживаются фразы ненормативной лексики и zh-CNja-JP языковых стандартов.

Ненормативная лексика удаляется или маскируется в зависимости от параметров запроса распознавания речи.

После добавления ненормативной лексики в файл правила форматирования отображаемого текста и настраиваемой модели он используется для выходных данных по умолчанию в пакетной речи для текста и речи в режиме реального времени.

Примеры ненормативной лексики

Ниже приведены некоторые примеры маскирования слов и фраз ненормативной лексики в файле форматирования текста.

Пример слова маскировки с одним ненормативным выражением

Предположим xyz , это слово ненормативной лексики. Чтобы добавить его, выполните приведенные далее действия.

#profanity
xyz

Ниже приведен пример теста: Turned on profanity masking to mask xyz -> Turned on profanity masking to mask ***

Фраза маски ненормативной лексики

Предположим, abc lmn это ненормативная фраза. Чтобы добавить его, выполните приведенные далее действия.

#profanity
abc lmn

Ниже приведен пример теста: Turned on profanity masking to mask abc lmn -> Turned on profanity masking to mask *** ***

Next Steps