1с документооборот как обучить бота распознавать голос

от admin

1с документооборот как обучить бота распознавать голос

Рассмотрим, как включить и настроить чат-бота Асю в «1С:Документооборот». Также нужно учитывать, что действия чат-бота не поддерживаются в веб-клиенте.

Если вас интересует разработка чат-бота для другой конфигурации 1С или под другие задачи, вам сюда.

Чат-бота включает Администратор — Настройки программыОбщиеИспользовать чат-ботНастройки. Настройки отображаются только если в программе включены Обсуждения.

Рисунок 1 — Включение чат-бота в настройках 1С:Документооборот

Для того чтобы настроить чат-бота так, чтобы он отвечал на вопрос и открывал файлы, необходимо перейти по ссылке НастроитьСостояния чат-бота и добавить новое состояние — сценарий работы чат-бота.

Добавление сценариев работы в чат-бот

Рисунок 2 — Добавление сценариев работы в чат-бот

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

Настройка сценария работы чат-бота в 1С:Документооборот

Рисунок 3 — Настройка сценария работы чат-бота в 1С:Документооборот

Чтобы настроить новый сценарий необходимо создать новое состояние чат-бот. Нажимаем кнопку Создать.

Карточку состояния заполнить очень просто:

  • Добавить ключевые слова, по которым чат-бот будет искать это состояние.
  • Добавить фразу, которой ответит чат-бот.
  • Если нужно, добавить вложения – файлы или папки.
  • Установить флажок Используется.

Карточка состояния чат-бота в 1C

Рисунок 4 — Карточка состояния чат-бота

Флаг Доступно из любого состояния сделает состоянием доступным при поиске по ключевым словам из любых других состояний. Даже если вы вошли в какое-то состояние с подчиненными элементами.

Если вы хотите, чтобы чат-бот выполнил какое-то действие, например, создал письмо или отсутствие, открыл какой-то список с отборами, нажмите кнопку Расширенные настройки. Для настройки действия уже потребуются навыки программирования на языке 1С.

Здесь можно прописать любой код, доступный на клиенте.

Карточка состояния чат-бота в 1C

Рисунок 5 — Карточка состояния чат-бота

Параметром этого действия может служить любая ссылка, дата, число, строка. Можно добавить Вычисляемые параметры, по сути это автоподстановки для чат-бота. С их помощью можно, например, вычислить Руководителя, Подразделение сотрудника и пр. Для проверки корректной работы скрипта есть контекстная команда Проверить.

1С 8.3 Боты системы взаимодействия — Программист 1С Минск. Автоматизация бизнеса.

ТелоВалюты = Нрег ( Сообщение . Текст ); // Получаем весь текст сообщения
Если СтрНайти ( ТелоВалюты , «USD» ) <> 0 ИЛИ СтрНайти ( ТелоВалюты , «Доллар» ) <> 0 Тогда
КодВалюты = «840» ;
ИначеЕсли СтрНайти ( ТелоВалюты , «EUR» ) <> 0 ИЛИ СтрНайти ( ТелоВалюты , «Евро» ) <> 0 Тогда
КодВалюты = «978» ;
ИначеЕсли СтрНайти ( ТелоВалюты , «BYN» ) <> 0 ИЛИ СтрНайти ( ТелоВалюты , «Белорусский рубль» ) <> 0 Тогда
КодВалюты = «933» ;
Иначе
КодВалюты = «0» ;
КонецЕсли;

// Выводим наш ответ на экран пользователю (в зависимости от кода валюты — покажем её курс)
НашОтвет = СистемаВзаимодействия . СоздатьСообщение ( Сообщение . Обсуждение );
Если КодВалюты <> «0» Тогда
// Параметры: адрес, порт (http:80, https:443), пользователь, пароль, прокси, таймаут в секундах, защищ.соединение (для https)
Соединение = Новый HTTPСоединение ( «cbrates.rbc.ru» );
// Получение текста страницы через запрос.
HTTPЗапрос = Новый HTTPЗапрос ( «tsv/» + КодВалюты + Формат ( ТекущаяДата (), «ДФ=/YYYY/MM/DD» ) + «.tsv» );
Ответ = Соединение . Получить ( HTTPЗапрос ); // Get запрос

Если Ответ . КодСостояния <> 200 Тогда
НашОтвет . Текст = «Код ошибки №» + Ответ . КодСостояния ;
Иначе
Содержимое = Ответ . ПолучитьТЕлоКакСтроку ();

СтрОтвета = «Курс валюты» ;
Если КодВалюты = «840» Тогда
СтрОтвета = СтрОтвета + » доллара: » ;
ИначеЕсли КодВалюты = «978» Тогда
СтрОтвета = СтрОтвета + » евро: » ;
ИначеЕсли КодВалюты = «933» Тогда
СтрОтвета = СтрОтвета + » белорусского рубля: » ;
КонецЕсли;

МН = СтрРазделитель ( Содержимое , Символы . Таб );
КурсВалюты = Число ( МН [ 1 ]) / Число ( МН [ 0 ]);
СтрОтвета = СтрОтвета + КурсВалюты ;
НашОтвет . Текст = СтрОтвета ;
КонецЕсли;
Иначе
НашОтвет . Текст = «Не найдена валюта» ;
КонецЕсли;

Голосовой бот + телефония на полном OpenSource. Часть 1 — создание и обучение текстового бота RU

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

Намерение: Поздороваться
Возможные фразы: привет, добрый день, дратути…
Ответ: Привет

Намерение: Попрощаться
Возможные фразы: Пока, До свидания, Прощай…
Ответ: Пока

Шаг 1: Предобработка датасета

За основу взят датасет из открытого обучения skillbox по написанию чат бота в телеграмм, который может пообщаться с вами на тему кино. Выложить не могу по понятным причинам.
Предобработка является очень важным этапом.

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

Далее необходимо исправить опечатки и ошибки в словах.

Эта задача не самая простая, есть хороший инструмент от Yandex под названием Speller, но он ограничен по числу запросов в день, поэтому будем искать бесплатные альтернативы
Для python есть замечательная библиотека jamspell, которая неплохо исправляет опечатки. Для нее есть хорошая предобученная модель для русского языка. Прогоним все входные данные через эту библиотеку. Для голосового бота этот шаг не так актуален, так как система распознавания речи не должна выдавать слова с ошибками, она может выдать не то слово. Для чат бота этот процесс необходим. Так же для минимизации влияния опечаток можно обучать сеть не на словах, а на n-граммах.

N-граммы, это части слов, состоящие из n букв. к примеру 3-граммы для слова привет будут
при, рив, иве, вет. Это поможет быть менее зависимым от опечаток и повысит точность распознавания.

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

Для данной задачи хорошо подходит библиотека rulemma .

Так же можно из фраз убрать стоп слова, которые несут мало смысловой нагрузки, но увеличивают размер нейронной сети (я брал из библиотеки nltk stopwords.words(«russian»)), но в нашем случае лучше их не убирать, так как пользователь может ответить роботу только одним словом, а оно может быть из списка стоп слов.

Шаг 2: Преобразование датасета в понятный для NN вид

Для начала необходимо сформировать словарь из всех слов датасета.

Для обучения модели понадобится перевести все слова в oneHotVector
Это массив, которые равен длине словаря слов, в котором все значения равны 0 и только одно равно 1 в позиции слова в словаре.

Далее все входные фразы преобразовываются в 3-х мерный массив, который содержит все фразы, фраза содержит список слов в формате oneHotVector — это и будет наш входной датасет X_train.

Каждой входной фразе нужно сопоставить подходящее к ней намерение так же в формате oneHotVector — это наш выход y_train.

Шаг 3: Создание модели

Для небольшого бота достаточно маленькой модели с двумя слоями lstm и двумя полносвязными слоями:

Компилируем модель и подбираем оптимизитор, я выбрал adam, так как он давал лучший результат.

Шаг 4: Обучение модели

После подготовки датасета и компиляции модели можно запустить ее обучение. Так как датасет небольшой, пришлось обучать модель на 250-500 эпохах, после чего происходило переобучение.

Шаг 5: Пытаемся поговорить с нашим ботом

Чтобы поговорить с нашим ботом, надо на вход обученной модели подать правильно подготовленные данные. Пользовательский ввод необходимо обработать так же как и датасет из первого шага. Дальше преобразовать его в вид, понятный NN как во втором шаге используя тот же словарь слов и их индексы, чтобы входные слова соответствовали словам, на которых проводилось обучение.

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

Необходимо оценить уверенность сети в этом ответе и подобрать порог, при котором выдавать пользователю failure phrases, типа — я вас не понял. Для своих целей я установил порог в 50% уверенности, ниже которого бот скажет, что не понял вас.

Далее из списка наших намерений выбираем подходящий ответ и выдаем его пользователю

Как в Telegram переводить голосовые сообщения в текст

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

Как в Telegram переводить голосовые сообщения в текст

Разработчики из SberDevices, являющиеся частью компаний «Сбера» тоже создали своего бота для Telegram. С его помощью можно превращать голосовые русскоязычные аудио-сообщения в обычной текст.

Естественно, столь продвинутые возможности базируются на определенном фундаменте. Им стала платформа распознавания речи SmartSpeech. Ею «Сбер» уже пользуется, в частности, для работы своего виртуального ассистента «Салют». Система распознавания голоса помогает намного эффективнее работать журналистам, копирайтерам, переводчикам и людям других профессий, которые связаны с написанием или обработкой текстов.

Для работы телеграм-бота требуется аудиофайл или голосовое сообщение на русском языке в формате MP3, WAV (8-96 кГц), FLAC или OggOpus. Размер файла не должен превышать 20 Мбайт. А дальше задействуется платформа SmartSpeech с реализованной на ней технологией распознавания речи (Automatic Speech Recognition, ASR). Бизнесу предлагается использовать ее в качестве интерфейса голосового ввода, к примеру, на веб-сайтах.

Платформа SmartSpeech интересна еще и тем, что у нее есть возможность генерации речи с помощью технологии Text to speech (TTS). Так тексты получают аудио-сопровождение, можно создавать целые ролики. В рамках сервиса подобные технологии позволяют создавать интерактивные голосовые меню (IVR), подключать голосового ассистента, делать озвучку контента и многое другое.

Сама платформа SmartSpeech может быть использована компаниями различных отраслей и размеров, в том числе и в транспорте, медицине, туризме, электронной коммерции. Именно с ней сталкиваются клиенты «Сбера» при звонке на номер 900, чтобы в любое время, не дожидаясь ответа оператора, получить ответы на стандартные вопросы. Например, можно узнать баланс своей банковской карты.

1с документооборот как обучить бота распознавать голос

Если у вас возникла необходимость часто общаться с пользователями, отвечая на типичные вопросы (например, согласовать заявление, забронировать комнату или оборудование и т.д.), обрабатывать запросы от имени администратора базы 1С (установить дистрибутив, настроить удаленное подключение, сбросить текущий пароль и т.д.) или даже обучать сотрудников работе в программе и организовывать навигацию, то эти функции можно возложить на чат-бота в 1С:Документооборот.

Диалог с чат-ботом в Документообороте

Диалог с чат-ботом в Документообороте

Первичные настройки чат-бота в Документообороте

Настраивается он пользователем, у которого есть права администратора. Для этого требуется зайти в “Настройки программы → Общие → Использовать чат-бот → Настройки” (1). Настройка чат-бота возможна только в том случае, если используются обсуждения.

В первичной настройке программы заведен пользователь с именем Ася (бот в помощь). При необходимости в карточке этого пользователя есть возможность менять имя и фотографию. Далее необходимо выбрать этого пользователя и ввести приветственную речь или сообщение (2).

Состояния чат-бота в 1С

Настройка чат-бота в Документообороте для отправки ответов или открытия файла возможна без опыта в программировании. Для этого кликаем по ссылке “Состояния чат-бота”, далее – на кнопку “Создать”, чтобы сформировать новое состояние.

Состояния чат-бота в 1С

Состояния чат-бота в 1С

Конкретное предприятие настраивает состояния самостоятельно в соответствии со своими сценариями бизнес-процессов. Чтобы заполнить новое состояние, необходимо:

  1. внести ключевые слова для осуществления поиска этого состояния;
  2. добавить ответ, отправляемый чат-ботом по запросу;
  3. при необходимости настроить вложения, которые требуются для ответа;
  4. нажать галочку “Используется” (1).

Чтобы была возможность осуществлять поиск из любых состояний, даже в случае, когда пользователь находится в состоянии, у которого настроены вложенные элементы, необходимо нажать галочку “Доступно из любого состояния” (2).

Заполнения состояния чат-бота в 1С:Документооборот

Заполнения состояния чат-бота в 1С:Документооборот

Как настроить чат-бота в 1С:Документооборот

Рассмотрим, как включить и настроить чат-бота Асю в «1С:Документооборот». Также нужно учитывать, что действия чат-бота не поддерживаются в веб-клиенте.

Если вас интересует разработка чат-бота для другой конфигурации 1С или под другие задачи, вам сюда.

Чат-бота включает Администратор — Настройки программыОбщиеИспользовать чат-ботНастройки. Настройки отображаются только если в программе включены Обсуждения.

Включение чат-бота в настройках 1С:Документооборот

Рисунок 1 — Включение чат-бота в настройках 1С:Документооборот

Для того чтобы настроить чат-бота так, чтобы он отвечал на вопрос и открывал файлы, необходимо перейти по ссылке НастроитьСостояния чат-бота и добавить новое состояние — сценарий работы чат-бота.

Добавление сценариев работы в чат-бот

Рисунок 2 — Добавление сценариев работы в чат-бот

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

Настройка сценария работы чат-бота в 1С:Документооборот

Рисунок 3 — Настройка сценария работы чат-бота в 1С:Документооборот

Чтобы настроить новый сценарий необходимо создать новое состояние чат-бот. Нажимаем кнопку Создать.

Карточку состояния заполнить очень просто:

  • Добавить ключевые слова, по которым чат-бот будет искать это состояние.
  • Добавить фразу, которой ответит чат-бот.
  • Если нужно, добавить вложения – файлы или папки.
  • Установить флажок Используется.

Карточка состояния чат-бота в 1C

Рисунок 4 — Карточка состояния чат-бота

Флаг Доступно из любого состояния сделает состоянием доступным при поиске по ключевым словам из любых других состояний. Даже если вы вошли в какое-то состояние с подчиненными элементами.

Если вы хотите, чтобы чат-бот выполнил какое-то действие, например, создал письмо или отсутствие, открыл какой-то список с отборами, нажмите кнопку Расширенные настройки. Для настройки действия уже потребуются навыки программирования на языке 1С.

Здесь можно прописать любой код, доступный на клиенте.

Карточка состояния чат-бота в 1C

Рисунок 5 — Карточка состояния чат-бота

Параметром этого действия может служить любая ссылка, дата, число, строка. Можно добавить Вычисляемые параметры, по сути это автоподстановки для чат-бота. С их помощью можно, например, вычислить Руководителя, Подразделение сотрудника и пр. Для проверки корректной работы скрипта есть контекстная команда Проверить.

Чат-бот Ася помогает сотрудникам в 1С:Документооборот 24/7

Бесплатный вебинар: Для чего компаниям необходим 1С:Документооборот

Начиная с «настольной» версии 2.1.18.11 в 1С:Документооборот КОРП появился чат-бот Ася – помощник, который может помочь разгрузить секретарей и других сотрудников, отвечая на частые вопросы пользователей. Чат-бот поможет в обучении, упростит работу в программе новичкам, отправит запросы администратору системы, создаст задачи коллегам.

Чтобы задать вопрос достаточно открыть Обсуждения на нижней панели любого раздела и установить курсор на чат-бот. Теперь можно написать любой вопрос в окне запроса.

Чат-бот Ася. Помощник для пользователей 1С Документооборот - рисунок 1

Как задавать вопросы?

Можете написать любые близкие к сути вопроса ключевые слова.

Например, если нужна информация о компании – «о компании», и Ася пришлет презентацию о компании.

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

Чат-бот Ася. Помощник для пользователей 1С Документооборот - рисунок 2

Нужна помощь администратора?

Напишите Асе «запрос администратору» или просто «администратор», Ася создаст задачу администратору, перед отправкой задачи останется только сформулировать содержание запроса в открывшейся форме задачи и нажать Стартовать и закрыть.

Чат-бот Ася. Помощник для пользователей 1С Документооборот - рисунок 3

Необходимо согласовать отпуск?

Напишите «Согласовать отпуск» или просто «отпуск», и Ася предложит направить задачу согласования руководителю

Чат-бот Ася. Помощник для пользователей 1С Документооборот - рисунок 4

Чему можно научить Асю?

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

Кто может настроить чат-бот выполнять команды?

Настроить выполнение простых команд может любой сотрудник на уровне пользователя 1С:Документооборот. Например, научить чат-бот предоставлять информацию по запросам пользователей по ключевым словам. Более сложные команды, например, создание задач, может настроить сотрудник IT-подразделения, знакомый с языком 1С.

Для улучшения и развития выполнения команд чат-ботом доступна история запросов чат-боту. Анализируя выполняемые запросы администратор системы сможет добавлять новые команды и расширять возможности использования чат-бота в системе.

В результате чат-бот станет простым и доступным помощником всем пользователям 1С:Документооборот и сэкономит их время.

Голосовой помощник "Ванесса"

У всех помощников есть имена, “Ванесса“, думаю, будет лучшим.

По сути “помощник“ — некий чат с ботом голосом. Реализовать текстовый чат с ботом не проблема для многих программистов. Всего пара реквизитов на форме и несколько функций. Не хватает лишь функций распознавания текста из голоса и наоборот. Реализовал эти функции в отдельном приложении Vanessa.apk

Пока много ума в помощницу не вкладывал.

Читать:
Urp unity что это

Понимает только великий и могучий.

Пример общения на картинке ниже.

Вся Ванесса занимает пока 100 строчек кода 1С, конечно это не нейронные сети, но все в ваших руках.

Основное отличие от других помощников это то, что “Ванессу“ можно обучить.

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

Научить можно как плохому, так и хорошему, создать для себя идеального собеседника.

Изначально, делал возможность голосового ввода сообщения для публикации //i.doc-lvv.ru/public/622737/

Про голосовой ввод написать что-то новое вряд ли возможно. Всегда думал, что “помощники“ это относительно просто, решил попробовать, и действительно, все очень просто.

Поправил баг в Vanessa.apk , приводивший к молчанию Ванессы.

Добавил возможность задать несколько ответов на один вопрос.

Также добавил возможность заполнения голосом и чтения заполненного.

Вложил в архив apk платформы для пользователей.

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

Во вложенном архиве, Vanessa.apk, Vanessa.cf, com.PloAl.Vanessa-arm.apk, com.PloAl.Vanessa-x86.apk

  • Vanessa.apk — дополнительное приложение для распознавания голоса и чтения текста, не предназначено для самостоятеного запуска. Требуется только право записи голоса.
  • Vanessa.cf — конфигурация мобильного приложения
  • com.PloAl.Vanessa-arm.apk и com.PloAl.Vanessa-x86.apk — готовое для установки в телефон мобильное приложение. Никаких прав не требуется.

Приложению требуется android 5.0 и выше.

Для установки нужно перенести файлы «Vanessa.apk» и один из файлов «com.PloAl.Vanessa-arm.apk» или «com.PloAl.Vanessa-x86.apk», в мобильный телефон.

В зависимости от процессора смартфона ARM или x86. И установить перенесенные файлы.

Как 1С и голосовой робот МТТ помогли автоматизировать уведомления клиентов в клинике

«Здравствуйте, Вы записаны на завтра, 5 июня 2022 года, на прием к стоматологу, в 10:05. Вы придете на прием?».

Пожалуй, каждый из нас, в той или иной форме получал подобный звонок от оператора колл-центра клиники. На фоне другие операторы кликают клавишами, доносится гул их голосов. Усталым голосом оператор отрабатывает скрипт, кладет трубку. Полезный звонок, надо поставить напоминание в телефоне, предупредить коллег, что с 10 до 11 будешь не на связи.

Такие звонки достаточно просто автоматизировать, обрабатывать и отслеживать. Мало того, с точки зрения комфортной беседы, исполнение такого скрипта роботом с простыми вариантами ответа — «Да», «Нет», «Оператор» — создают более привлекательное впечатление о бизнесе, который инициирует звонок. Приятным голосом, за короткое время, вы получаете полезное сообщение, что может быть удобнее?

Бизнес же экономит ресурсы за счет сокращения времени звонков, перенаправления сил операторов на более важные направления, возможности заранее представлять загрузку специалистов, использовать освободившееся время для визита других клиентов (отдельная интересная задача для автоматизации).

Меня зовут Дмитрий Лупонос. Я был админом и программистом 1С в нулевые, потом перешёл в менеджмент. Сейчас работаю ведущим программистом 1С. У меня есть разный опыт: менеджера, разработчика и админа. И как со всем этим не заняться интеграциями.

В этой инструкции постараюсь максимально широко раскрыть вопрос связки базы данных 1С с роботом МТТ

Постановка задачи

В клинике на Linux-сервере уже развернута отраслевая конфигурация 1С для работы с пациентами, в которой есть все данные для совершения звонков с уведомлениями о визите.

Чтобы исключить проблемы со связью, выбрали сервис МТТ с использованием voicebox.mtt.ru, там есть доступ к настройкам скриптов обзвона, настройкам кампаний обзвона.

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

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

Идеальный сценарий: за сутки до визита, в произвольное время дня, но допустимое для звонка, сделать звонок с сервера 1С. В этом звонке роботу нужно обратиться к абоненту по имени и отчеству, сообщить специализацию специалиста, дату и время визита.

Во время звонка могут произойти следующие события:

  1. Прием звонка и подтверждение визита.
  2. Прием звонка и отмена визита.
  3. Прием звонка и, в результате прохождения скрипта, соединение с оператором.
  4. Прием звонка и отбой до завершения отработки скрипта.
  5. Отказ от приема – нет соединения или не ответ.

Совершать любой звонок можно не более трех раз при статусах 4 и 5, как только возникает событие 1, 2, 3 прекращаем обзвон по этому пациенту.

image
Рис. 1: Постановка задания в очередь

image
Рис. 2: Формирование записи о событии.

image
Рис. 3: Работа планировшика сервера 1С
image
Рис. 4: Обработка входящего статуса после завершения звонка

Про настройку скрипта

В интерфейсе сервиса я нашёл инструменты для настройки скриптов прозвона и извлечения отчетов с детализацией звонков, план нумерации.

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

Создание сценария

Создаю сценарий с названием 1С тест – уведомление о приеме. В интерфейсе сценарий отображается в виде блок-схемы из блоков различного назначения. Приведу некоторые из них на рисунках 5-6.
image
Рис. 5: Блок формирования JSON-запроса, вид 1

image
Рис. 6: Блок формирования JSON-запроса, вид 2

Один из самых ключевых блоков скрипта – блок оповещения, обратной связи с передачей статуса. Нам важно провести сериализацию JSON-запроса, чтобы не перегрузить данными прием ответа и сохранить понятную структуру при различных ответах. Иначе алгоритм обработки полученного от МТТ сообщения о результате скрипта будет слишком ветвистым.

Поэтому, согласно возможным статусам, у JSON-Запроса всего шесть блоков формирования, различаются они только передаваемым статусом. Приведу схему работы запроса на рисунке 7.

alt=»image» />
Рис. 7: Блок-схема реализации скрипта прозвона Voicebox МТТ

Тип сценария: исходящий сценарий. Содержит в себе начальные настройки для произведения звонка (Рис. 8-10).

image
Рис. 8: Исходящий звонок, вид 1

Выбираю голос и скорость воспроизведения, переход на блок звонок – единственный вариант в этом блоке. При ошибке наш сервер 1С не получит как call_id (ниже подробнее про ответы Voicebox), и необходим обход по незавершенным статусам и перезапуск. Количество попыток, конечно, стоит ограничить.

image
Рис. 9: Исходящий звонок, вид 2

Затем идёт настройка переменных JSON, которые в результате работы скрипта будут как приходить, так и отправляться. Тут можно добавлять и исправлять произвольные переменные для использования в голосовом скрипте.

image
Рис. 10: Исходящий звонок, вид 3

Затем настройки для формирования JSON-запроса, привязанного к инициации звонка. В нашем случае сервер 1С отрабатывает любой не-ответ как ошибку, это стандартное действие, поэтому настроек нет.

После перехода на звонок алгоритм скрипта разветвляется (Рис. 7) на ошибку и успех. По каждой следующей ветке вставим информирование о произведении звонка блоком HTTP. Обратите внимание, в моем алгоритме при успешном совершении передается статус ошибки, это индикатор поднятия трубки абонентом. Теперь, если абонент прервет связь до окончания следующего блока, то сервер 1С уже получит статус успешного звонка из этого блока.

При ошибке звонка сервер 1С получит статус из блока 1С-Недозвон, после чего алгоритм завершится.

Ветка успешного звонка после блока ведёт к ошибке, но это ветвление алгоритма для невозможности передать запрос по ссылке из HTTP блока, и обе стрелки перекрывает на статус «Ошибка». Не стоит обращать на это внимание. Советую убедиться в ветвлении в настройках HTTP запроса (рис. 6) – обе ветки переходят на блок «вопрос».

image
Рис. 11: Блок «Вопрос», вид 1

В блоке содержатся настройки номера, с помощью которого идёт работа скрипта, переходы.

image
Рис. 12: Блок «Вопрос», вид 2

Теперь ключевой момент блока «Вопрос» — выделенные фигурными скобками переменные из запроса JSON, который описан в настройке «Исходящий звонок» на рисунке 10.

На стороне 1С сформирована строка <>, в моем случае с Именем и Отчеством пациента и <>, в которой содержится описание визита – дата, время, специальность специалиста. Приведу часть запроса:

В поле visit данные без лишних символов, которые робот МТТ произнести не сможет, сама процедура в полном объеме ниже.

image
Рис. 13: Блок «Вопрос», вид 3

В этом блоке обратите внимание на тайминг 10 секунд – ожидание ответа на вопрос, возможность ответа голосом или на клавиатуре. На количестве посещений, равное двум подразумевает количество повторения вопроса скрипта.

image
Рис. 14 Блок «Вопрос», вид 4

Вариантов перехода блока «Вопрос» больше, чем в предыдущих блоках. Удобнее отследить разветвление алгоритма графически, на рисунке 7.

Итог работы скрипта

При переходе на вопрос в результате исполнения блока «Вопрос» в ветках:
1. Успешно – передаем на сервер 1С статус успешно, проигрываем блок Придет.
2. В случае ошибки переводим на оператора.
3. В случае определения блоком Вопрос автоответчика или отказа уходим в блоки 1С-Недозвон и Отбой.
4. В случае успеха (ответ «Да») – передача в 1С данных подтверждения, проигрывания блока Придет и завершения звонка.
5. В случае отказа (ответ «Нет») – снова аналогичный блок вопрос, уточняющий, устроит ли пациента другое время.
5.1. В случае успеха (ответ: «Да») – проигрываем блок с записью другое время и переводим на оператора с уведомлением сервера 1С «оператор».
5.2. В случае ошибки также происходит перевод на оператора с уведомлением сервера 1С «оператор».
5.3. В случае отказа (ответ «Нет») – проигрываем блок «Ничего не нужно» и завершаем звонок с уведомлением сервера 1С «Отказ».

Настройка прозвона клиентов скриптом 1С тест – уведомление о приеме

Для реализации JSON метода для обращения к серверу voicebox.mtt.ru необходимо создать кампанию, указать метод прозвона, HTTP-запрос, выбрать тип кампании и номер из пула номеров (Рис. 15).

image
Рис. 15: настройки компании.

При выборе вида запуска «По HTTP запросу», выборе сценария «1С тест – уведомление о приеме», выборе номера – «наш номер» получаем необходимые для управления данные:

  1. URL для обращения к методу.
  2. Логин для обращения к методу.
  3. Пароль для обращения к методу.
  4. Формат JSON-запроса. Приведу пример моего запроса:

Как реализовать управление в 1С и особенности обмена с Voicebox

Созданные в конфигурации объекты не касаются типовых объектов. Точкой входа назначена процедура «ПриЗаписи» документа, фиксирующего бронирование времени у специалиста со статусом «Бронь». В данной реализации записи о бронировании заносятся в справочник МТТ_Обзвон со структурой как на рисунке 16.

image
Рис 16. Структура справочника

Кратко о реквизитах:

  • Пациент – ссылка на справочник «Пациенты», где есть информация для работы скрипта: имя, отчество, телефон. Вносятся в данные справочника NameStr, VisitStr.
  • ЗаписьПациента – ссылка на документ «ЗаписьПациента», которому нужно устанавливать статус на основе полученного ответа по результатам работы скрипта МТТ.
  • Дата, Время приема – разделена переменная ДатаВремяПриема для работы запроса, формирования отчета и работы регламентного задания.
  • Завершен – буль, признак завершения задания.
  • КоличествоНеудачныхПопыток – счетчик попыток звонка для работы алгоритма.
  • Прочие данные заполняются из ответов HTTP-методов Voicebox MTT.

Листинг методов для работы с Voicebox МТТ

Все методы реализованы в модуле менеджера справочника, являются экспортными и вызываются по ссылке Справочники.МТТ_Обмен.<ИмяМетода>().
1. Метод записи данных справочника: Процедура ОбработатьЗаписьПациента(ЗаписьПациента) Экспорт

Листинг 1: ОбработатьЗаписьПациента(ЗаписьПациента)

Далее следует проверка на корректность номера пациента функцией ПолучитьНомерПациента(Пациент):

Листинг 2: ПолучитьНомерПациента(Пациент)

Достаточно простая функция, не учитывающая содержание в номере только цифр. По-умолчанию мы считаем, что все номера в справочнике проверены.

Листинг 3: ОтправитьЗапросВМТТ(ВыбГУИД)

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

Листинг 4: СформироватьJSONМногомерный(СтруктураДанных, ФормироватьСПереносами = Ложь)

Привожу тут код в формате «как есть», подходит для вставки в любую часть вашего кода. Отлаживал и настраивал, код рабочий, проверен.

Листинг 5: Функция ОповеститьСервер(ЗапросJSON)

С функцией отправки предлагаю поступить аналогично функции формирования запроса, а именно использовать в формате «как есть». Долго отлаживал заголовки, получился в итоге рабочий вариант, не требующий изменений.

Листинг 6: Процедура ОбработатьВходящийПакет(ДанныеПакета)

Обязательно приведу листинг 7 процедуры нормализации строки, передаваемой для произнесения роботом МТТ. Есть символы, которые не произносятся и могут вызвать отказ и перевод на оператора.

Листинг 7: Функция НормализацияСтроки(СтрокаJSON)

Заключение

В статье изложил основные методы и принципы настройки обмена на стороне 1С. Настройки Voicebox от компании МТТ привел на своем примере. Функциональность запущена на реальных данных 30 мая 2022 года, отладку механизма завершил 4 июля.

В результате тестовой работы ошибок обмена нет. Но очень долго шел к тому, что нужно фиксировать установку соединения в результате звонка. Иначе оставались «Мертвые души» в справочнике МТТ_Обмен без статусов. В связи с этим механизм набирал условленное количество раз, которое меньше счетчика справочника МТТ_Обмен.КоличествоНеудачныхПопыток без указания статуса, не менял статус документа.

При реализации HTTP-метода отражения инициации звонка стало понятно, отработал запрос звонка или нет. В итоге стандартным стал считаться статус «взял-положил трубку до отработки скрипта», и все стало работать корректно

МТТ оказали поддержку на всех этапах. Разбирались и оптимизировали скрипты совместно, на все вопросы появились ответы. Особенно это было актуально, когда вместе с заказчиком настраивали веб-сервер IIS для публикации базы данных, обеспечивали нестандартный порт для приема ответов от Voicebox.

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

1с документооборот как обучить бота распознавать голос

Голосовые сервисы для решения бизнес-задач

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

  • Распознает потоковое аудио Сервис превратит в текст вашу речь в режиме реального времени. Так, например, будет удобно надиктовать письмо, или реализовать голосовое управление программой. Длительность одного сеанса при потоковом распознавании речи с помощью облачного сервиса имеет ограничение в 2 часа.
  • Расшифровывает аудиофайлы Сервис распознает отправленный файл с аудиозаписью и предоставит его текстовую расшифровку. Так можно получить текст записанного разговора по телефону или протокол совещания. Распознанный текст будет предоставлен пользователю сразу или через некоторое время в зависимости от длительности аудиофайла и загрузки сервиса. Поддерживаются файлы в формате: WAV signed 16 bit little-endian и Opus в контейнере ogg с частотой дискретизации: 8 — 48 кГц. Максимальный размер аудиофайла — 1Гб длительностью до 4 часов. Результаты распознавания доступны для скачивания из сервиса в течение 7 суток после выполнения задания.
  • Знает разные языки Сейчас сервис поддерживает распознавание речи на русском и английском языках. Возможно добавление других языков для распознавания. Если у вас есть задачи для распознавания на других языках, пожалуйста, напишите нам на ailab@1c.ru с описанием задачи.
  • Понимает сложную лексику Перед началом потокового распознавания можно передать сервису список специфичных терминов (фамилий сотрудников, названий номенклатуры, отраслевых терминов или компаний-контрагентов), и сервис будет их уверенно распознавать.
  • Работает в 1С-приложениях Сервис доступен из встроенного языка платформы 1С:Предприятие 8, что открывает возможность для удобной интеграции распознавания речи в различные прикладные решения 1С. Подробнее…
  • Распознавать записи звонков и совещаний
  • Вводить голосом электронные письма, текстовые блоки в документах, реквизиты и т.п.
  • Управлять приложениями с помощью голосовых команд
  • Разрабатывать голосовые системы самообслуживания
  • Анализировать речь сотрудников при обслуживании клиентов
  • Создавать интерфейсы для людей с ограниченными возможностями
1С:Документооборот 3.0

Вводите текст писем и адресатов голосом. Надиктуйте текст задачи или резолюцию при согласовании документа.

Демоприложение

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

Похожие статьи