Распознавание речи средствами платформы 1С

05.06.25

Интеграция - Распознавание документов и образов

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Распознавание речи средствами платформы 1С
.epf 7,52Kb
12 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Введение

Платформа, начиная с версии 8.3.23, реализует как распознавание, так и синтез речи. Есть механизмы работы как в облачном сервисе, так и локально.

Разработчики разместили сайт, посвященный технологиям работы с речью. 

Предложена конфигурация, в которой реализована эта функциональность.

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

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

Поддерживаются всего два формата: WAV и Opus (ogg).

 

Подключение модели распознавания

Будем использовать локальное распознавание. Сначала необходимо подключить хотя бы одну модель. Для этого запускаем стандартную обработку "Управление работой с речью" в функциях технического специалиста. Подключаемся к сервису speech.1c.ai по кнопке "Подключить", используем логин пароль от портала Портал 1C:ИТС. Выбираем модель распознавания и устанавливаем по кнопке "Установить". Появляется флажок в колонке "Локально":

 

 

Обработка распознавания

Описание процедур и функций модуля формы.

Получаем файл по событию НачалоВыбора поля ПутьКФайлу:

&НаКлиенте
Процедура ПутьКФайлуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
	Диалог.Заголовок = "Выберите файл";
	Диалог.ПолноеИмяФайла = ""; 
	Фильтр = "Файл аудио (*.wav,*.ogg)|*.wav;*.ogg"; 
	Диалог.Фильтр = Фильтр; 
	Диалог.МножественныйВыбор = Ложь;	
	Диалог.Показать(Новый ОписаниеОповещения("ЗагрузитьФайлЗавершение", ЭтаФорма, Новый Структура("Диалог", Диалог)));		
	
КонецПроцедуры   

&НаКлиенте
Процедура ЗагрузитьФайлЗавершение(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт
	
	Диалог = ДополнительныеПараметры.Диалог; 
	
	Если (ВыбранныеФайлы <> Неопределено) Тогда				
		ПутьКФайлу = Диалог.ПолноеИмяФайла;
	КонецЕсли;
	
КонецПроцедуры

Вызываем процедура распознавания речи по кнопке "Распознать". Функции работы с речью реализует объект глобального контекста РаботаСРечью. Механизм предполагает, что формируется задание на выполнение распознавания, исполнение кода продолжается, а далее мы проверяем результат по расписанию. Здесь я не стал этого делать в целях упрощения, просто в цикле ожидаем какое-то количество времени до завершения работы.

&НаКлиенте
Процедура Распознать(Команда)
	
	Если НЕ ПроверитьЗаполнение() Тогда
		Возврат;
	КонецЕсли;
	
	РаспознатьНаСервере();
КонецПроцедуры

&НаСервере
Процедура РаспознатьНаСервере()
	
	// загружаем тело файла
	ДвоичныеДанные = Новый ДвоичныеДанные(ПутьКФайлу);
	
	// получаем установленные модели
	СписокМоделей = РаботаСРечью.ПолучитьОписаниеМоделейРаспознавания();
	
	// прекращаем выполнение, если нет установленных
	Если СписокМоделей.Количество() = 0 Тогда
		Сообщить("Не обнаружено установленных моделей");
	КонецЕсли;
	
	// задаем параметры работы менеджера работы с речью по умолчанию
	ПараметрыМодели = Новый ПараметрыМоделиРаспознаванияРечи;       
	
	// запускаем процесс распознавания локально
	ИдентификаторОтложенногоРаспознаванияРечи = РаботаСРечью.ВыполнитьОтложенноеРаспознавание(ДвоичныеДанные, ПараметрыМодели, ВариантИспользованияРасположенияРаботыСРечью.ТолькоЛокальное);
	
	// получили ИдентификаторОтложенногоРаспознаванияРечи, его исползуем в дальнейшем, чтобы получить результаты распознования
	Ключи = Новый Массив;
	Ключи.Добавить(ИдентификаторОтложенногоРаспознаванияРечи);

	// максимальное время ожидания завершения
	ВремяОжидания = 60;
	
	// основной цикл ожидания
	Для Счетчик = 1 По ВремяОжидания Цикл
		// ждем одну секнду
		Пауза(1);	       
		
		// получаем результы отложенного распознаванию
		Результаты = РаботаСРечью.ПолучитьРезультатыОтложенныхРаспознаваний(Ключи);
		Результат = Результаты[0];
		
		// если распознавание завершено, переходим к выоду результатов
		Если Результат.Завершено = Истина Тогда
			
			Если НЕ Результат.Успешно Тогда
				Сообщить("Ошибка распознавания речи: " + Результат.Ошибка);
				Возврат;
			КонецЕсли;					
			
			Прервать;
		КонецЕсли;		
		
	КонецЦикла;
	
	Результаты = Результат.Результаты;
	
	// если прошло больше, чем ВремяОжидания, а задание не завершено, выводим об этом информацию
	Если НЕ Результат.Завершено Тогда
		Сообщить("Ошибка распознавания речи: " + "слишком большой объем данных.");
		Возврат;
	КонецЕсли;
	
	// формируем результат как строку 
	ИтогОтвет = "";
	
	Для каждого Результат Из Результаты Цикл
		Для каждого ДанныеФразы из Результат.ДанныеФраз Цикл
			Фраза = СокрЛП(ДанныеФразы.Фраза);
			ИтогОтвет = ИтогОтвет + ?(ЗначениеЗаполнено(ИтогОтвет), Символы.ПС, "") + Фраза;
		КонецЦикла;
	КонецЦикла;
	
	Сообщить("Результат распознавания:");	
	Сообщить(ИтогОтвет);
	
КонецПроцедуры

Код процедуры паузы:

&НаСервере  
Процедура Пауза(Таймаут) Экспорт
	
    HTTPСоединение = Новый HTTPСоединение("1C.ru",11111,,,,Таймаут);
    Попытка
        HTTPСоединение.получить(новый HTTPЗапрос (""));
    Исключение
        
		
    Конецпопытки;

КонецПроцедуры

Затраты времени на ожидание примерно 1:1 длительности входящего аудиопотока и времени его обработки. 

Результат выполнения обработки:

 

Проверено на следующих конфигурациях и релизах:

  • Бухгалтерия предприятия, редакция 3.0, релизы 3.0.176.38

Вступайте в нашу телеграмм-группу Инфостарт

Обработка распознавание речь

См. также

Учет документов Распознавание документов и образов Бухгалтер Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Одна из наиболее удобных обработок автоматического прикрепления большого количества документов-оригиналов к документам 1С. Для файлов поточного сканирования автоматически определяются начало и конец каждого документа. Поддерживаются штрихкоды, QR-коды, отсканированные PDF документы без штрихкодов, сформированные в ЭДО текстовые PDF документы. Поддерживаются входящие и исходящие документы-оригиналы.

6588 руб.

23.12.2021    16046    30    25    

12

SALE! 30%

Распознавание документов и образов Программист Пользователь 1С 8.3 1С:Розница 2 1С:Бухгалтерия 3.0 Россия Абонемент ($m)

Тестируем, как ИИ распознает разные pdf, и результат пробуем запихнуть в документы 1С... Нужна установленная LM Studio и видеокарта. На 1660 супер работает так себе (по скорости). На 3070 уже бодрее. На 50 серии пока не тестировал. Распознавание 1 страницы (секунд 10-40). Добавлен поиск номенклатуры по схожести (Процент схожести). Из пдф картинка делается, и она уже отдается ИИ. Поэтому в обработке преобразователь картинок. При первом запуске положится сам в темпы. Писал для себя - в коде полный бардак - т.к. хотелось быстрее. Но все пашет и в файловой, и на серверах.

2 стартмани

13.03.2026    471    4    PORGY3000    9    

3

Нейросети Распознавание документов и образов Программист Бухгалтер Пользователь 1С 8.3 1С:Комплексная автоматизация 1.х 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Россия Абонемент ($m)

Решение поставляется в 2 версиях: при наличии видеокарты расширение+GPU версия или расширение+СPU версия. Поддерживает 3 режима работы, локальное (на вашем ПК), ИИ-модель (облачная), гибридная локальная+ИИ. В локальном режиме распознавание бесплатно. В ИИ режиме в среднем 0.5 рубля за страницу. Неограниченное количество пользователей. Распознает сканы: УПД, счета-фактуры, товарные накладные. Проверяет цифры и помогает создавать документы в 1С. Отправляйте документы через Telegram бот

10 стартмани

20.02.2026    734    2    dasan92    5    

4

Распознавание документов и образов Программист 1С 8.3 Бесплатно (free)

Рано или поздно каждый 1С-специалист может столкнуться с фактически нерешаемой задачей: организацией загрузки из файла контрагента, где данные предлагается синхронизировать по строке, например, наименованию номенклатуры. Зачастую это строковое представление лишь отдаленно напоминает наименование из соответствующего справочника информационной базы заказчика. То есть фактически контрагент произвольно излагает своё желание, а заказчик требует автоматизировать процесс сопоставления. Надо понимать, что 100% решения задачи не существует. Например, если при анализе примеров стало понятно, что клиентам несвойственна грамотность, лучше вообще не браться за такую автоматизацию. Тем не менее, задачу сопоставления строки из последовательности слов с наименованиями из справочника, где порядок слов может различаться, автору удалось решить в приемлемом для заказчика виде. Предлагаются формулировка условий задачи и подходы к реализации решения

09.02.2026    489    Sergey1CSpb    0    

1

Распознавание документов и образов Бухгалтер Пользователь 1С 8.3 1С:Бухгалтерия 3.0 Россия Абонемент ($m)

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

1 стартмани

05.02.2026    560    6    user213093test    0    

3

Распознавание документов и образов Программист Пользователь 1С 8.3 1С:Розница 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Абонемент ($m)

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

2 стартмани

19.12.2025    2677    7    kras_71    24    

12
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SerVer1C 1060 06.06.25 00:59 Сейчас в теме
[+] за эксперименты.

Поигрался тоже с этой штукой - добавлю от себя:
- модель можно скачать локально с учёткой ИТС, затем сохранить себе на комп, а потом раздавать её бесплатно всем нуждающимся )
- покопался в кишках модели распознавания - создано AiBox Lab (какой-то бразильской фирмой?)
- если будете скармливать на распознавание формат ogg, то для его создания в ffmpeg (например, если понадобится вырезать аудиодорожку из видоса) юзайте libopus, а не libvorbis
- распознавание ну ооооочень медленное, 1 минуту голоса переваривал 70 сек (!); для сравнения: я юзал vosk и он мне выдал результат на одном потоке для 11-ти минутной речи за 113 сек (!), а на 8-ми потоках - за 23 сек (!) - и это на аудио в 11 раз (!) больше - разница мега-колоссальна.
mikaelangelm; wan4ik2008; +2 Ответить
2. AASergan 15 06.06.25 03:33 Сейчас в теме
- да достаточно учетки любого пользователя, даже без всяких подписок;
- насчет медленно - все зависит от 1с, будут ли они этот проект развивать. работает в один поток традиционного процессора, без всяких gpu. если интересно, отвечает за это вот эта служба. скромно потребляет, что процессорное время, что память
Прикрепленные файлы:
SerVer1C; +1 Ответить
3. SerVer1C 1060 06.06.25 08:21 Сейчас в теме
(2) Что интересно, rmstt запускается вместе с предприятием (клиентом), видимо, подгружает модель в память, делая это примерно за минуту и занимая 2,5 Гига рамы.
* при существующей локальной модели "Основная большая, для распознавания общих тем"
4. ТочкаScarab 17.06.25 13:00 Сейчас в теме
(3) rmstt - на файловой такое отсутствует (по крайней мере у меня на 11 винде), но локальное распознавание работает (подозреваю что и облачное то же будет).
З.Ы. хотел так сказать немного похитрить: начинал разбираться с этим на 10 винде - установил локальные модели (как я понял, они загружаются в базу данных 1С). всё нормально работало. переустановил винду - базу просто переподключил: модели показывает что есть и в файл выгрузить могу, но при попытке распознавания выдавало "ошибка взаимодействия с сервисом работы с речью" :( . удалил модель с помощью встроенной обработки и скачал заново - всё заработало. а вот на убунту 22.04 получаю ошибку "отсутствуют доступные устройства звукозаписи" (хотя так-то микрофон работает) - знает ли кто как это побороть?
5. PlatonStepan 38 15.09.25 04:37 Сейчас в теме
Развернул на сервере демо базу, ffmpeg установил, при попытке распознавания файлов процесс rmstt завершается и перезапускается.
В списке заданий на распознавание файлов появляется статус "Ошибка", если покопаться в отладке, то ошибка: "Отложенное распознавание не найдено".
Техн. журнал никаких данных, кроме запуска нового процесса rmstt не выдаёт.

Облачное распознавание выдаётся без ошибок.

Может каких прав не хватает?
Кто-нибудь понимает, чего хочет эта 1С? )

53:06.668036-0,STTAdm,0,process=rmstt,p:processName=RegMngrCntxt,p:processName=ServerJobExecutorContext,OSThread=6136,Func=Load model component start,Path=C:/Program Files/1cv8/srvinfo/reg_1541/STT/m9e23cce0-7485-4d08-a9cb-268f3744f1c6.ibox,Name=01a451bf-2e36-4007-9b57-0881116d2aa0_dnet,Type=acoustics
53:07.856000-1187963,STTAdm,0,process=rmstt,p:processName=RegMngrCntxt,p:processName=ServerJobExecutorContext,OSThread=6136,Func=Load model component end,Name=01a451bf-2e36-4007-9b57-0881116d2aa0_dnet,Status=Success
53:07.856001-0,STTAdm,0,process=rmstt,p:processName=RegMngrCntxt,p:processName=ServerJobExecutorContext,OSThread=6136,Func=Load model component start,Path=C:/Program Files/1cv8/srvinfo/reg_1541/STT/m9e23cce0-7485-4d08-a9cb-268f3744f1c6.ibox,Name=01a451bf-2e36-4007-9b57-0881116d2aa0_dec,Type=grammar
54:46.742000-98885998,STTAdm,0,process=rmstt,p:processName=RegMngrCntxt,p:processName=ServerJobExecutorContext,OSThread=6136,Func=Load model component end,Name=01a451bf-2e36-4007-9b57-0881116d2aa0_dec,Status=Success
54:46.821000-0,STT,0,process=rmstt,p:processName=RegMngrCntxt,p:processName=ServerJobExecutorContext,OSThread=11540,Func=Long recognize start,ID=85c14fca-4405-465c-87cf-dc6732127a61,ModelId=9e23cce0-7485-4d08-a9cb-268f3744f1c6
Для отправки сообщения требуется регистрация/авторизация