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

01.04.25

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

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

Скачать файл

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

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

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

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

 

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

Поскольку работа из России с 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! 10%

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

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

6480 руб.

23.12.2021    13874    20    25    

10

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

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

3 стартмани

05.05.2025    314    1    Likarus    0    

1

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

Уникальное расширение для автоматического распознавания текста и анализа изображений прямо в интерфейсе любой типовой конфигурации 1С:Предприятие. Автоматически извлекает данные с фотографий документов, поддерживает рукописный текст и формирует подробные описания изображений с помощью популярных моделей ИИ.

10 стартмани

26.03.2025    952    9    Prepod2003    5    

12

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

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

1 стартмани

20.03.2025    616    5    mrKHrom    3    

8

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

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

1 стартмани

27.02.2025    2989    mkalimulin    21    

18

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

В последнее время у меня возникла необходимость в распознавании текста из изображений и PDF-документов. Данный вариант распознавания текста предлагается как альтернатива традиционным OCR-сервисам. Возможно, кому то данная статья будет полезна. Сравнивал между собой два сервиса Google Cloud Vision и Yandex Vision. Сразу скажу, что результат распознавания рукописного текста не удовлетворил, поэтому искал другие возможности. В процессе поиска альтернатив я обратил внимание на одну интересную возможность, которую предлагает Google Docs. Если загрузить изображение в Google Документы, сервис автоматически добавляет распознанный текст под изображением. Качество меня приятно удивило — текст извлекался даже из рукописных записей!

1 стартмани

24.02.2025    1478    SERG326    0    

15

Нейросети Распознавание документов и образов Программист Платформа 1С v8.3 Отраслевые Бесплатно (free)

Пример использования механизма голосового распознавания платформы 1С: Предприятия на примере Демоприложения речевого распознавания от 1С с примером добавленной библиотеки ИИ от Михаила Калимулина с интегрированным голосовым управлением для формирования текста запроса к ИИ.

07.02.2025    821    37    m_aster    3    

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