Проектирование эффективного распознавания речи

Понимание естественного языка (NLU) лежит в основе того, как агенты Copilot Studio понимают пользовательские запросы и предоставляют релевантные, контекстуальные ответы. Четко определенный подход к распознаванию намерений, извлечению сущностей и обработке нераспознанных запросов позволяет агентам вести эффективные, естественные разговоры, соответствующие бизнес-потребностям.

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

Что такое распознавание речи?

Распознавание речи (Language Understanding, LU) — это область обработки естественного языка (Natural Language Processing, NLP), ориентированная на то, чтобы машины могли понимать смысл, намерение и контекст человеческой речи.

Схема, иллюстрирующая процесс распознавания речи.

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

Распознавание речи включает в себя следующее:

  • Распознавание намерений: определение того, чего пользователь хочет достичь (например, "Забронировать билет в Париж на следующей неделе" соответствует намерению забронировать билет).
  • Извлечение сущностей: извлечение ключевых деталей, таких как даты, местоположения или имена (например, "Париж" как пункт назначения, "на следующей неделе" как дата поездки).
  • Учет контекста: поддержание непрерывности и разрешение неоднозначностей в разговоре (например, понимание местоимений или ссылок).
  • Обработка неоднозначностей: использование контекста для определения значения многозначных слов (например, слово "ключ" может означать родник или инструмент для открывания замков).

Распознавание речи в Copilot Studio

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

Генеративная оркестрация

Генеративная оркестрация использует языковые модели для интеллектуального объединения тем, действий и знаний. Эта функция обеспечивает распознавание нескольких намерений, расширенное извлечение сущностей и динамическое построение планов для сложных запросов.

Этот метод используется по умолчанию для Copilot Studio. Этот подход распознает несколько намерений или тем в одном речевом фрагменте, автоматически связывает действия и источники знаний и генерирует единые ответы. Он особенно полезен для ведения сложных разговоров, охватывающих несколько бизнес-областей. У генеративной оркестрации есть ограничения, такие как не более пяти сообщений на каждую тему или цепочку действий и 128 тем или действий на одну оркестрацию, но она предоставляет мощный способ масштабировать охват диалогов.

Подробнее см. в разделе Применение возможностей генеративной оркестрации.

Классическая оркестрация

Классическая оркестрация использует фразы-триггеры и детерминированную маршрутизацию тем. Если речевой фрагмент пользователя совпадает с фразой-триггером, запускается соответствующая тема. Если совпадения нет, резервные механизмы ищут источники знаний или просят пользователя уточнить.

Встроенное NLU

Этот подход ранее использовался по умолчанию, но теперь является резервным подходом. Copilot Studio предоставляет готовую модель NLU, которая поддерживает фразы-триггеры, заранее определенные сущности и пользовательские сущности. Эта модель позволяет агентам выявлять намерение пользователя и извлекать ключевые детали, такие как даты, места назначения или количества, непосредственно из запроса.

NLU+

Для высокой точности используйте вариант NLU+. Опция NLU+ идеально подходит для крупных корпоративных приложений. Такие приложения обычно включают большое количество тем и сущностей и используют значительное количество обучающих примеров. Также, если у вас агент с поддержкой голосовых функций, ваши обучающие данные NLU+ используются также для повышения качества распознавания речи.

Интеграция с Azure CLU

Для более сложных сценариев, где нельзя использовать стандартную генеративную оркестрацию, можно интегрировать распознавание устной речи Azure (Conversational Распознавание речи, CLU). CLU обеспечивает расширенные возможности настройки, многоязычную поддержку и сложное извлечение сущностей (например, несколько сущностей "из"). Необходимо сопоставить намерения CLU с темами Copilot Studio, чтобы поддерживать их синхронизацию. Этот вариант особенно полезен для отраслевой лексики, отличных от английского языков или сценариев, требующих высокой точности.

Основные возможности и ограничения

В таблице ниже сравниваются три подхода к распознаванию речи в Copilot Studio. В ней выделяются ключевые функции и ограничения, чтобы помочь вам выбрать подходящую модель с учетом сложности, масштаба и точности вашего агента.

Возможности и ограничения Генеративная оркестрация Встроенная модель NLU Пользовательская модель Azure CLU
Ключевые функции
  • Предполагает использование большой языковой модели
  • Обрабатывает сложные речевые фрагменты с множеством намерений, тем и действий, а также знаний
  • Автоматически генерирует вопросы для отсутствующих входных данных
  • Допускает корректировки во время работы
  • Формирует единый ответ на основе выходных данных тем, действий и знаний
  • Предварительно обученная модель по умолчанию с предопределенными типами сущностей
  • Настраивается с использованием фраз-триггеров и пользовательских сущностей (закрытых списков или регулярных выражений)
  • Поддерживает больше языков с нативными моделями
  • Настраиваемая модель запуска по намерениям для повышения точности или для потребностей конкретных отраслей
  • Расширенное извлечение сущностей (например, тот же тип, тихое извлечение)
  • Извлечение сущностей может выполняться с использованием стандартного NLU Copilot Studio
Ограничения
  • Пять сообщений для каждой темы или цепочки действий
  • Ограничение в 128 тем и действий для запуска
  • Распознавание одного намерения для каждого запроса
  • Расширение невозможно
  • Заполнение слотов несколькими сущностями одного типа требует разрешения неоднозначности
  • Распознавание одного намерения для каждого запроса
  • Настройка на базе Azure и дополнительные расходы
  • Имеет ограничения служб Azure
  • Намерения Azure CLU и темы Copilot Studio должны быть тщательно синхронизированы.

Подробнее см. в разделе Обзор понимания естественного языка (NLU).

Структура тем и резервные варианты

Темы перешли от жесткого, основанного на намерениях пути к более гибкому, ориентированному на оркестрацию подходу. Вместо того чтобы использовать только заранее определенные триггеры и пути, темы теперь выступают как модульные инструкции, к которым агент может обращаться при оркестрации разговора. Генеративная оркестрация выполняет большую часть маршрутизации, интерпретируя пользовательский ввод динамически, а темы предоставляют структурированный запасной вариант, когда нужна точность.

Более традиционный структурированный дизайн тем делает разговоры естественными и эффективными. Темы могут представлять собой точки входа, запускаемые речевыми фрагментами пользователя, или многократно используемые подтемы, вызываемые перенаправлениями или системными событиями. Темы для разрешения неоднозначности помогают избежать путаницы, когда может быть активировано несколько тем, а резервные темы и темы оптимизации разговора обеспечивают подстраховку на случай, если агент не может уверенно определить намерение. Вы также можете интегрировать генеративные ответы из внешних источников знаний, чтобы пользователи почти всегда получали ответ.

Подробнее см. в разделе Лучшие практики разработки тем.

Локализация и языки

Язык, используемый агентом Copilot Studio, определяется значением системной переменной System.User.Language.

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

Как это работает?

  • Поиск знаний на языке пользователя: Copilot Studio использует значение System.User.Language для поиска в источниках знаний на указанном языке. Это означает, что даже если пользователь задает вопрос на одном языке, агент переводит поисковый запрос на язык, установленный в System.User.Language (автоперевод поискового запроса).

  • Ответ на языке пользователя: агент генерирует ответы на языке, указанном в System.User.Language, независимо от языка, используемого в вопросе или в оригинальных документах (автоперевод при генерации ответов).

  • Ручное переопределение: вы можете вручную задать значение System.User.Language, чтобы агент работал на определенном языке. Эта функция полезна для тестирования или в случаях, когда требуется вручную управлять языком. Подробнее см. в разделе Настройка и создание многоязычных агентов.

Автоматическое определение языка

Вы можете настроить Copilot Studio так, чтобы система автоматически определяла язык устной или письменной речи пользователя и устанавливала значение переменной System.User.Language соответствующим образом. Эта функция обеспечивает бесшовное переключение между языками, не требуя, чтобы пользователи указывали свои языковые предпочтения.

Как работает автоопределение

  • Определение языка на основе триггеров: когда бот получает сообщение, триггер инициирует поток определения языка.
  • Установка системной переменной: бот присваивает обнаруженный язык переменной System.User.Language.
  • Динамический ответ: агент продолжает беседу на обнаруженном языке, т. е. и ищет знания, и генерирует ответы соответствующим образом.

Льготы

  • Персонализация: пользователи взаимодействуют на предпочитаемом языке без ручной настройки.
  • Последовательность: все ответы и извлечение знаний выполняются с использованием обнаруженного или установленного языка.
  • Масштабируемое решение: поддерживает глобальные развертывания с минимальной настройкой.

Совет

Ознакомьтесь с примером решения, демонстрирующим, как включить автоматическое определение языка пользователя и переключение агентов Copilot Studio на один из разрешенных создателем языков для агента, в статье Автоматическое определение языка для генеративных ответов.

Рекомендации по локализации

  • Настройте поддерживаемые языки: определите первичный и вторичный языки для вашего агента. Используйте файлы локализации (JSON или ResX) для предоставления переводов запросов, сообщений и тем.
  • Протестируйте многоязычные сценарии: моделируйте взаимодействие пользователей на разных языках для обеспечения плавных переходов и точных ответов.
  • Используйте автоперевод: используйте встроенный перевод Copilot Studio для поиска по базе знаний и генерации ответов, но предоставляйте собственные переводы для критически важного или нюансированного контента.
  • Контролируйте и совершенствуйте: используйте аналитику для отслеживания использования языка и улучшения покрытия локализации со временем.

Языковые подходы для агентов Copilot Studio:

  • Отдельные агенты для каждого языка.
  • Один многоязычный агент с заранее подготовленными переводами.
  • Многоязычные агенты реального времени, использующие службы перевода между пользователем и агентом.

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

Выявленные технические сложности

Типичные сложности включают обеспечение синхронизации тем Azure CLU и Copilot Studio, обработку неоднозначных речевых фрагментов и масштабирование многоязычных развертываний. Заблаговременное выявление этих препятствий позволяет планировать стратегии их устранения, такие как резервные конфигурации, массовое тестирование фраз-триггеров или ретрансляционные службы перевода.

Назначение распознавания речи — обеспечить, чтобы каждый агент мог точно интерпретировать пользовательские запросы, адаптироваться к различным языкам и сценариям, а также корректно справляться с неожиданностями. Это назначения создает прочную основу для построения надежных, увлекательных и эффективных разговоров в Copilot Studio.