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

01.04.25

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

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

Файлы

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

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

Подписка 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

См. также

SALE! 30%

SALE! 20%

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

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

6480 руб.

23.12.2021    14107    25    25    

11

Учет документов Распознавание документов и образов Бухгалтер Пользователь 1С v8.3 1C:Бухгалтерия Платные (руб)

Расширение для типовых конфигурация и для самостоятельной интеграции системы распознавания документо удостоверяющих личность и прочих документов непосредственно из информационных баз "1С:Предприятия 8.3" с помощью Content AI - Passport Reader SDK. Расширение позволит не изменяя типовой код конфигурации, расширить текущий функционал несколькими кликами мыши.

12000 руб.

26.01.2016    70933    78    5    

104

Распознавание документов и образов Программист 1С v8.3 Россия Абонемент ($m)

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

1 стартмани

05.06.2025    936    2    user595604    4    

11

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

Итак: https://docvision.ru.tuna.am/ Сервис распознавания накладных из изображений в json (на самом деле в любой текст или html), c помощью Finereader + Deepseek (ОСень + Winow + 1connector). Данная публикация родилась после того, как я познакомился с фреймворком ОСень и Winow.  Идея сделать сервис аналогичный 1С по распознаванию первички родилась уже давно. Бот в Телеграм: @DocumentsRecognitionBot, разработанный на этом сервисе и SaluteBot от Сбер

10 стартмани

30.05.2025    1108    2    exitone    8    

11

Распознавание документов и образов Программист 1С v8.3 Абонемент ($m)

Данная обработка позволяет распознавать текст в формате PNG и записывает распознанный текст в TXT формат.

3 стартмани

05.05.2025    479    3    Likarus    0    

1

Распознавание документов и образов Программист Пользователь 1С v8.3 Россия Абонемент ($m)

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

1 стартмани

20.03.2025    778    8    mrKHrom    4    

8

Распознавание документов и образов Нейросети Программист 1С v8.3 Абонемент ($m)

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

1 стартмани

27.02.2025    3149    mkalimulin    21    

18
Оставьте свое сообщение