Итак, уже достаточно давно этот функционал появился на уровне платформы 1С. Не в каких то отдельных конфигурациях, а именно это новый функционал платформы. Одновременно с этим в конфигураторе появился такой инструмент, как работа с речью:
Есть уже много публикаций на форуме на эту тему, и я решил сам все прощупать и протестировать.
Итак, вот здесь дословно, как все подключить и настроить //infostart.ru/1c/tools/2402460/. И там все правильно описано и приводится пример распознавания из файла. За исключением нескольких но!!!
Во-первых, если хотите бесплатное распознавание и у вас слабый компьютер, лучше устанавливать версию 1.1.17 облегченную! В противном случае, вы словите ошибку аварийного завершения программы при не хватке памяти. И потом долго придется ловить момент, как удалить пакет.
Во-вторых, нам интересно именно потоковое распознавание!!!
Делается это примерно так:
Функция ПоддерживаетсяПотоковоеРаспознавание() Экспорт
Возврат РаботаСРечью.ПоддерживаетсяПотоковоеРаспознавание();
КонецФункции
Процедура НачатьПотоковоеРаспознавание(
Ключ,
ОбработчикРаспознавания,
ПараметрыМодели,
ИспользованиеВариантаРасположенияРаботыСРечью,
ПараметрыПотоковогоРаспознавания
) Экспорт
РаботаСРечью.НачатьПотоковоеРаспознавание(
Ключ,
ОбработчикРаспознавания,
ПараметрыМодели,
ИспользованиеВариантаРасположенияРаботыСРечью,
ПараметрыПотоковогоРаспознавания
);
КонецПроцедуры
Процедура ЗапуститьУправлениеГолосом() Экспорт
Ключ = Новый УникальныйИдентификатор();
кткт_РаспознованиеРечи.УстановитьКлючУправления(Ключ);
ПараметрыМодели = Новый ПараметрыМоделиРаспознаванияРечи;
ВариантИспользования = ВариантИспользованияРасположенияРаботыСРечью.ТолькоЛокальное;
ПараметрыРаспознавания = Новый ПараметрыПотоковогоРаспознаванияРечи;
ПараметрыРаспознавания.ПолучатьВариантыПромежуточныхГипотез = Ложь;
ПараметрыРаспознавания.ПолучатьПромежуточныеРезультаты = Ложь;
кткт_РаспознованиеРечи.УстановитьДополнительнуюГрамматикуСеанса(Ключ,1);
НачатьПотоковоеРаспознавание(
Ключ,
Новый ОписаниеОповещения(
"ПриПолученииКомандыГолосом", ЭтотОбъект, Ложь,
"ПриОбработкеОшибкиРаспознавания", ЭтотОбъект),
ПараметрыМодели,
ВариантИспользования,
ПараметрыРаспознавания
);
Состояние("Управление голосом",,"Сервис запущен",БиблиотекаКартинок.КрасныйМикрофон);
КонецПроцедуры
Как вы видите, достаточно много параметров, которые вы можете менять на свое усмотрение, но результат, конечно же, обрабатывается в функции:
Процедура ПриПолученииКомандыГолосом(РезультатРаспознавания, ПродолжитьРаспознавание, Контекст) Экспорт
фраза = РезультатРаспознавания.ДанныеФраз[0].Фраза;
фраза = Врег(стрЗаменить(фраза,".",""));
// Далее команды из справочника
// Замена символа '.' нужна только в локальном распозновании
// Далее обработка результата полученных фраз
// Или массива фраз и выбор наиболее уверенного распознования
КонецПроцедуры
По поводу установки Дополнительной грамматики. Это дело хорошее, но не обязательное. Это если что-то распознается не так, как нужно, можно добавить.
Так-то идея и функционал хороший, но будем ждать исполнения и применения во всех конфигурациях от разработчика. Кому интересно, можете пощупать уже сейчас.
Напомню, если вас заинтересовала тема и вам прям это крайне необходимо, то есть платные (облачные) модели https://speech.1c.ai/prices/, все, что скачано и установлено локально, на данный момент бесплатно!!!
Функционал расширения разрабатывался на БП 3 последнего релиза, конечно же, был протестирован на Рознице 3. Он без привязки к какой-либо конфигурации и будет работать на любой!
Проверено на следующих конфигурациях и релизах:
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.188.22
- Управление нашей фирмой, редакция 3.0, релизы 3.0.12.226
- Розница, редакция 2.3, релизы 2.3.23.65
- Розница, редакция 3.0, релизы 3.0.12.226
- Управление торговлей, редакция 11, релизы 11.5.25.80
Вступайте в нашу телеграмм-группу Инфостарт
