Распознавание и анализ речи с помощью openai (proxyapi)

01.04.25

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

Пример обработки для преобразования речи в текст, с последующим анализом данного текста с использованием сервисов OpenAi (proxyapi).

Файлы

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

Наименование Скачано Купить файл
Обработка для версии платформы 8.3 и тестовый файл
.zip 1,92Mb
4 2 500 руб. Купить
Обработка для версии платформы 8.2 и тестовый файл
.zip 1,92Mb
0 2 500 руб. Купить

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

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

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

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

Для облегчения труда сотрудников и была сделана данная обработка. Она позволяет преобразовать аудио файл в текст для последующего его анализа. 

 

Описание работы

Поскольку работа из России с OpenAI заблокирована, был использован сервис https://proxyapi.ru/. Для начала работы необходимо зарегистрировать и получить токен. Для доступа к сервисам OpenAI используется API сервиса proxyapi.

Запросы на распознавания речи, отправляются на адрес:

https://api.proxyapi.ru/openai/v1/audio/transcriptions

В заголовках передается полученный токен proxyapi для авторизации:

Authorization : Bearer <Полученный токен proxyapi>
Content-Type : multipart/form-data; boundary=<Разделитель>

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

Содержимое POST-запроса представляет собой значение отдельных полей, разделенных строкой-разделителем, указываемой в "boundary".

Основная проблема как раз в корректном формировании POST-данных. Любое отклонение от заданного формата приводит к ошибке.

Для формирования запроса использовался объект ЗаписьДанных. Код функции ниже:

Функция ПолучитьДанныеТела(Разделитель, ИмяФайла)
	ДД = Новый ДвоичныеДанные(ИмяФайла);
	НовРазделитель = "--"+Разделитель;
	
	Тело = Новый ПотокВПамяти();
	ЗаписьДанных = Новый ЗаписьДанных(Тело, , , Символы.ВК + Символы.ПС);
	
	ЗаписьДанных.ЗаписатьСтроку(НовРазделитель);
	ЗаписьДанных.ЗаписатьСтроку("Content-Disposition: form-data; name=""model""");
	ЗаписьДанных.ЗаписатьСтроку("");
	ЗаписьДанных.ЗаписатьСтроку("whisper-1");

	ЗаписьДанных.ЗаписатьСтроку(НовРазделитель);
	ЗаписьДанных.ЗаписатьСтроку("Content-Disposition: form-data; name=""language""");
	ЗаписьДанных.ЗаписатьСтроку("");
	ЗаписьДанных.ЗаписатьСтроку("ru");
	
	ЗаписьДанных.ЗаписатьСтроку(НовРазделитель);
	ЗаписьДанных.ЗаписатьСтроку("Content-Disposition: form-data; name=""response_format""");
	ЗаписьДанных.ЗаписатьСтроку("");
	ЗаписьДанных.ЗаписатьСтроку("text");
	
	ЗаписьДанных.ЗаписатьСтроку(НовРазделитель);
	ЗаписьДанных.ЗаписатьСтроку("Content-Disposition: form-data; name=""file"";filename=""audio.wav""");
	ЗаписьДанных.ЗаписатьСтроку("Content-Type: audio/x-wav");
	ЗаписьДанных.ЗаписатьСтроку("");
	ЗаписьДанных.Записать(ДД);
	ЗаписьДанных.ЗаписатьСтроку("");
	ЗаписьДанных.ЗаписатьСтроку(НовРазделитель+"--");
	
	ЗаписьДанных.Закрыть();
	
	ДанныеТела = Тело.ЗакрытьИПолучитьДвоичныеДанные();
	
	Возврат ДанныеТела;
КонецФункции

 

Описание работы для версии платформы 8.2

При работе с платформой 8.2 столкнулся с несколькими проблемами:

1. Стандартные функции платформы не работают с https 

2. Нет объекта ЗаписьДанных

3. Нет объектов для работы с JSON

4. Проблемы с кодировкой при разборе результата анализа текста.

Проблему с https разрешил при помощи использования com-объекта WinHttp.WinHttpRequest.5.1.

Вместо ЗаписиДанных был использован объект ЗаписьТекста. Функция ПолучитьДанныеТела приняла вид:

Функция ПолучитьДанныеТела(Разделитель)
	НовРазделитель = "--"+Разделитель;
	
	ПервыйФайл = ПолучитьИмяВременногоФайла();
	ПоследнийФайл = ПолучитьИмяВременногоФайла();
	
	ЗаписьДанных = Новый ЗаписьТекста(ПервыйФайл, КодировкаТекста.ANSI, Символы.ПС);
	
	ЗаписьДанных.ЗаписатьСтроку(НовРазделитель);
	ЗаписьДанных.ЗаписатьСтроку("Content-Disposition: form-data; name=""model""");
	ЗаписьДанных.ЗаписатьСтроку("");
	ЗаписьДанных.ЗаписатьСтроку("whisper-1");

	ЗаписьДанных.ЗаписатьСтроку(НовРазделитель);
	ЗаписьДанных.ЗаписатьСтроку("Content-Disposition: form-data; name=""language""");
	ЗаписьДанных.ЗаписатьСтроку("");
	ЗаписьДанных.ЗаписатьСтроку("ru");
	
	ЗаписьДанных.ЗаписатьСтроку(НовРазделитель);
	ЗаписьДанных.ЗаписатьСтроку("Content-Disposition: form-data; name=""response_format""");
	ЗаписьДанных.ЗаписатьСтроку("");
	ЗаписьДанных.ЗаписатьСтроку("text");
	
	ЗаписьДанных.ЗаписатьСтроку(НовРазделитель);
	ЗаписьДанных.ЗаписатьСтроку("Content-Disposition: form-data; name=""file"";filename=""audio.wav""");
	ЗаписьДанных.ЗаписатьСтроку("Content-Type: audio/x-wav");
	ЗаписьДанных.ЗаписатьСтроку("");
	ЗаписьДанных.Закрыть();
	
	ЗаписьДанных = Новый ЗаписьТекста(ПоследнийФайл, КодировкаТекста.ANSI, Символы.ВК + Символы.ПС);
	ЗаписьДанных.ЗаписатьСтроку("");
	ЗаписьДанных.ЗаписатьСтроку(НовРазделитель+"--");
	
	ЗаписьДанных.Закрыть();
	
	ВременныйФайл = ПолучитьИмяВременногоФайла();
	МассивФайлов = Новый Массив;
	МассивФайлов.Добавить(ПервыйФайл);
	МассивФайлов.Добавить(Файл);
	МассивФайлов.Добавить(ПоследнийФайл);
	
	ОбъединитьФайлы(МассивФайлов,ВременныйФайл);
	
	УдалитьФайлы(ПервыйФайл);
	УдалитьФайлы(ПоследнийФайл);
	
	Возврат ВременныйФайл;
КонецФункции

JSON пришлось собирать вручную, по кусочкам текста. Ну, а проблему с кодировкой путем записи потока в файл:

	ВФ = ПолучитьИмяВременногоФайла();
	Stream = Новый COMОбъект("ADODB.Stream"); //Для создания этого объекта требуется MDAC 2.5 и выше
	Stream.Type = 1;
	Stream.Mode = 3;
	Stream.Open();
	Stream.Write(WinHttp.ResponseBody());
	Stream.SaveToFile(ВФ);
	Stream.Close();
	
	Текст = Новый ЧтениеТекста(ВФ, КодировкаТекста.UTF8);
	АнализТекстаОтвет = Текст.Прочитать();

 

Обработки тестировались на версии 1С:Предприятие 8.3 (8.3.22.2143) и на версии 1С:Предприятие 8.2 (8.2.19.130).

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

Обработка нейросети OpenAi ChatGPT DeepSeek multipart/form-data

См. также

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

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

6588 руб.

23.12.2021    16044    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    470    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    731    2    dasan92    5    

4

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

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

09.02.2026    488    Sergey1CSpb    0    

1

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

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

1 стартмани

05.02.2026    556    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
Для отправки сообщения требуется регистрация/авторизация