Распознавание и анализ речи с помощью 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%

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

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

12000 руб.

26.01.2016    71364    81    7    

105

SALE! 20%

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

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

6480 руб.

23.12.2021    14441    26    25    

11

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

Расширение для автоматического распознавания первичных документов в 1С:Бухгалтерии государственного учреждения (редакция 2.0). Поддерживает сканы, фото, цифровые файлы и архивы, упрощает ввод счетов, накладных, УПД и кассовых чеков.

13.08.2025    513    24    Natalya_Ivanova    0    

2

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

Чтение штрих-кодов, QR из PDF и картинок, копирование страниц из одного PDF в другой, удаление страниц из PDF.

5 стартмани

11.08.2025    700    6    Grigoriy251    2    

4

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

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

1 стартмани

05.06.2025    1273    2    user595604    4    

11

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

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

10 стартмани

30.05.2025    1655    4    exitone    9    

11

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

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

3 стартмани

05.05.2025    705    3    Likarus    0    

1
Для отправки сообщения требуется регистрация/авторизация