A newer version of the Streamlit SDK is available:
1.45.0
title: URFU PE
emoji: 💻
colorFrom: yellow
colorTo: blue
sdk: streamlit
sdk_version: 1.28.2
app_file: run.py
pinned: false
Программная инженерия. Практические задания №2, №3, №4 и №5
Приложение разработано с использованием фреймворка Streamlit. Состоит из двух страниц и Главной страницы:
- Главная страница - содержит описание из README
- Генератор аудио - позволяет сгенерировать аудио по введенному тексту на английском языке. Дополнительно осуществляет перевод с русского языка на английский (при вводе текста на русском языке). Используется 3 модели:
- Определение языка текста
- Перевод текста с языка Ru на En
- Озвучивание текста на английском языке
- Описание изображения - позволяет получить описание изображения на русском языке. Использует 1 модель:
- Классификация и описание изображений
API разработано с использованием фреймворка FastAPI. API доступные для использования:
/langdetector/detect
- Определение языка текста/translator/translate
- Перевод текста с языка Ru на En/text-to-speech/convert
- Преобразование текста на английском языке в речь/get_description_image/predict
- Описание загруженного изображения
Используемые модели
- Определение языка текста - papluca/xlm-roberta-base-language-detection
- Перевод текста с языка Ru на En - Helsinki-NLP/opus-mt-ru-en
- Озвучивание текста на английском языке - microsoft/speecht5_tts
- Классификация и описание изображений. Модель описания изображения Salesforce/blip-image-captioning-large
Как запустить Web-приложение
Запуск осуществляется через модуль streamlit:
streamlit run run.py
Как запустить API-сервер
uvicorn api:app
либо python api.py
Как использовать Web-приложение
После запуска приложение открывается на Главной странице. Выбор режима работы приложения доступен слева в меню
Генератор аудио
Необходимо ввести текст в текстовое поле и нажать кнопку "Генерировать!!!". В результате появится аудио запись на английском языке с описанием введенного текста.
Описание изображения
Необходимо выбрать изображение и нажать кнопку "Получить описание изображения". В результате появится текстовое описание изображения на русском языке.
Как использовать API
Описание методов API генерируется Swagger и доступно по адресу
<host>/docs
Пример вызова сервиса Определение языка текста
Вызвать url сервиса <host>/langdetector/detect
методом POST
Передаваемые параметры:
{
"text": "Доброго деня всем котам!"
}
Результат выполнения:
{
"langs": [
{
"label": "ru",
"score": 0.9351206421852112
}
]
}
Пример вызова сервиса Перевод текста с языка Ru на En
Вызвать url сервиса <host>/translator/translate
методом POST
Передаваемые параметры:
{
"text": "Доброго деня всем котам!"
}
Результат выполнения:
{
"text": "Good day to all cats!"
}
Пример вызова сервиса Преобразование текста в речь
Вызвать url сервиса <host>/text-to-speech/convert/
методом POST
Передаваемые параметры:
{
"text": "FastAPI is a modern, fast (high-performance), web framework for building APIs with Python 3.8+ based on standard Python type hints."
}
Результат выполнения (значение в audio сокращено):
{
"audio": "4HXHYOWAMX2TVFFRYI5NQYFYHKESNWR2YAPHKOWFOCYTULNSF45YUZMDHJEKRJB2QNGMMOX3V6QDV6 ... F5Z5S37LOH7G2ZLSRYSKC4Z47GBXG56ZQ5YY6BEENY=",
"sampling_rate": 16000
}
Пример вызова сервиса Описание загруженного изображения
Вызвать url сервиса <host>/get_description_image/predict/
методом POST
Передаваемые параметры:
{
"url": "https://fikiwiki.com/uploads/posts/2022-02/1645000127_53-fikiwiki-com-p-kartinki-krasivie-babochki-narisovannie-55.png"
}
Тестирует GitHub Actions