Микросервис отчета по произношению предназначен для оценки фактического произношения пользователя, на основе транскрибированного аудио с записью прочитанного текста. Сервис автоматически определяет ошибки в произношении, разбирая каждую фонему предложения по отдельности.
- Сравнение фактического и эталонного варианта произношения.
- Язык программирования: Python
- Фреймворк: FastAPI
- База данных: PostgreSQL
- Протоколы: HTTP
- Алгоритмы: Смещение Нидлмана-Вунша
Микросервис настраивается с помощью переменных окружения в конфигурационном файле .env. По умолчанию .env не содержится в репозитории, данный файл необходимо создать самому:
touch .envЕсли вы используете VSCode, не забудьте перезагрузить окно проекта, чтобы применить изменения в .env к вашему окружению.
Или используйте следующую команду:
export $(cat .env)
Пример того, как можно заполнить файл .env, содержится в файле .env.example.
Ниже приведены таблицы, содержащие описание основных параметров, которые необходимо настроить для работы сервиса.
| Переменная | Значимость | Описание | Тип данных | Стандартное значение |
|---|---|---|---|---|
| FEEDBACK_DEBUG_MODE | Опционально | Флаг запуска микросервиса в режиме отладки. | BOOL | True |
| FEEDBACK_SERVICE_NAME | Опционально | Имя микросервиса. Рекомендуется вообще не трогать. | STRING | ilps-service-audio-feedback |
Сервис audio-feedback использует некоторые связанные сервисы для своей работоспособности. Необходимо указать, куда нужно обращаться (на какой микросервис) при получении запроса на оценку произношения. Для каждого сервиса конфигурируется отдельная группа настроек по следующему принципу:
| Переменная | Значимость | Описание | Тип данных | Стандартное значение |
|---|---|---|---|---|
| FEEDBACK_SERVICE_{service_prefix}_HOST | Обязательно | Адрес развернутого сервиса. | STRING | |
| FEEDBACK_SERVICE_{service_prefix}_PORT | Обязательно | Порт развернутого сервиса. | INTEGER | |
| FEEDBACK_SERVICE_{service_prefix}_PROTOCOL | Опционально | Протокол для обращения к сервису. | STRING | http |
Где {service_prefix} - это шаблон, вместо котого необходимо вставить префикс сервиса из числа доступных:
TEXTS- Сервис управления текстами.
Сервис поддерживает отправку логов в Graylog, если эта функция включена при помощи специальной переменной среды.
| Переменная | Значимость | Описание | Тип данных | Стандартное значение |
|---|---|---|---|---|
| FEEDBACK_GRAYLOG_ENABLE | Опционально | Флаг отправки логов в Graylog. | BOOL | False |
| FEEDBACK_GRAYLOG_HOST | Опционально | Адрес развернутого Graylog. Может быть заглушкой. | STRING | localhost |
| FEEDBACK_GRAYLOG_PORT | Опционально | Порт развернутого Graylog. Может быть заглушкой. | STRING | 12201 |
Для удобства локальной разработки микросервиса следуйте этим рекомендациям.
Перед началом работы убедитесь, что все зависимости установлены. Или установите, если предыдущее условие ложно.
При разработке сервиса используется менеджер зависимостей Poetry.
pip install poetrypoetry config virtualenvs.in-project true
poetry install --no-rootДалее выберете виртуальную среду Poetry как основную для проекта.
Создайте файл .env и сконфигурируйте переменные огружения, согласно главе конфигурация.
В контексте локальной разработки необходимо задать только обязательные переменные среды. Опциональную переменную FEEDBACK_DEBUG_MODE рекомендуется перевести в значение True.
Теперь все готово к запуску!
python start.py
Для развертывания микросервиса в production-среде следуйте инструкциям, описанным в этом репозитории.
Сервис аутентификации в инфраструктуре ILPS будет развернут автоматически посредством docker-compose.
Процессы установки зависимостей и применения миграций автоматизированны при сборке Docker контейнера.
Этот проект распространяется под лицензией GNU General Public License v3.0 (GPL-3.0).