Проекты
Конкурсные проекты

Speak2Sign


Тип участника:  Авторский/творческий коллектив
Полное наименование организации/физического лица/авторского или творческого коллектива:  АлтГУ ИМИТ AltaiSign
В лице (для организации или авторского/творческого коллектива указывается ФИО и должность руководителя):  зав. кафедрой информатики, к. ф.-м. н., доцент, Козлов Денис Юрьевич
Интернет-сайт заявителя:  https://www.math.asu.ru/
Контактное лицо: ФИО:  Казаков Геннадий Евгеньевич
ФИО всех участников авторского/творческого коллектива:  Казаков Геннадий Евгеньевич
Меньшиков Сергей Александрович
Идея и краткое описание ИТ-проекта: 

Разработана программная система (rule-based пайплайн), которая автоматически переводит русский текст в последовательность жестов русского жестового языка (РЖЯ) и создаёт итоговое видео с показом этих жестов и субтитрами.

Система состоит из модулей предобработки текста, поиска соответствий в словаре (~500 жестов), разрешения многозначности слов (с помощью ruBERT) и склейки видео. Дополнительно реализована поддержка немецкого жестового языка (DGS) через интеграцию со сторонним решением.

Является промежуточным решением перед переходом к нейросетевой архитектуре.

Перечень решаемых задач: 

Перечень решаемых задач (функциональные требования):

  1. Приём текста — система принимает на вход предложение на русском языке (строка текста).

  2. Предобработка текста — выполняется токенизация, удаление служебных слов (предлоги, союзы), лемматизация и определение частей речи.

  3. Видовая нормализация глаголов — глаголы совершенного вида (например, «сказал») преобразуются в несовершенный вид («говорить») для корректного сопоставления с жестом.

  4. Лексический маппинг — каждое слово сопоставляется с соответствующим глоссом из словаря РЖЯ (с поддержкой точного и нечёткого сравнения).

  5. Разрешение лексической многозначности (WSD) — для слов-омонимов с несколькими возможными глоссами выбирается правильный вариант с использованием модели ruBERT на основе контекста предложения.

  6. Визуализация результата — создаётся итоговое видео: последовательная склейка видеофайлов жестов с наложением субтитров и подсветкой текущего жеста.

  7. Поддержка мультиязычности — при выборе немецкого жестового языка (DGS) система вызывает сторонний проект spoken-to-signed-translation для выполнения перевода.

Описание функциональных возможностей и элементов проекта: 

Функциональные возможности системы

  1. Ввод текста — пользователь подаёт на вход предложение на русском языке (до 500 символов).

  2. Автоматический анализ текста — система определяет части речи, леммы и синтаксические зависимости, удаляя всё лишнее (предлоги, союзы).

  3. Перевод в глоссы — каждое слово сопоставляется с жестом из словаря РЖЯ (~500 записей). Если слово не найдено, система пытается:

    • преобразовать глагол совершенного вида в несовершенный;

    • отрезать приставку (префиксальный анализ);

    • найти нечёткое совпадение (с порогом 60%);

    • или помечает слово как неизвестное.

  4. Разрешение омонимии — для многозначных слов (например, «ключ») система автоматически выбирает правильный вариант жеста, анализируя контекст с помощью модели ruBERT.

  5. Генерация видео — из найденных видеофайлов жестов склеивается один ролик (MP4) с наложенными субтитрами, где текущий жест выделяется синим цветом.

  6. Поддержка DGS — при выборе немецкого жестового языка система переключается на внешний модуль spoken-to-signed-translation, обрабатывающий немецкие тексты.


Основные элементы проекта (модули)

Элемент Назначение
Модуль предобработки (preprocessor.py) Токенизация, лемматизация, POS-тегирование, фильтрация служебных слов (библиотека Stanza)
Модуль лексического маппинга (mapping.py) Поиск глосса в словаре с использованием точного совпадения, видовой нормализации, префиксального анализа и нечёткого сравнения (rapidfuzz)
Модуль WSD (sense_disambiguation.py) Разрешение многозначности через сравнение эмбеддингов предложения и описаний значений (ruBERT-base-cased)
Модуль визуализации (visualisation.py) Склейка видеофайлов, наложение субтитров с подсветкой жеста (OpenCV + Pillow)
Модуль DGS (de_module/translate_text.py) Интеграция со сторонним проектом для поддержки немецкого жестового языка
Словарь (gloss_dict.json) Хранилище соответствий «лемма → глосс → видеофайл», включая описания для омонимов
Видовые пары (verb_aspects.json) Таблица соответствия глаголов совершенного и несовершенного вида
 REST API интерфейс Взаимодействие с проектом через браузер


Итоговый результат на выходе: пользователь получает:

  • Видеофайл формата MP4 с последовательным показом жестов и текстовыми субтитрами.

Дата внедрения (в случае, если предполагается запуск проекта в эксплуатацию):  -
Используемые платформы, средства разработки: 

Платформы:

  • Операционные системы: Windows 10/11, Ubuntu 22.04 LTS (поддерживаются обе).

  • Среда выполнения: Python 3.11 (для русского модуля) и Python 3.14 (для немецкого модуля).

  • Система контроля версий: Git, репозиторий на GitHub.


Средства разработки (библиотеки и инструменты):




Категория Инструмент Назначение
NLP Stanza Токенизация, лемматизация, POS-тегирование, синтаксический разбор
NLP Hugging Face Transformers Загрузка и использование модели ruBERT
NLP ruBERT-base-cased (DeepPavlov) Модель для разрешения лексической многозначности (эмбеддинги предложений)
Нечёткое сравнение rapidfuzz Поиск соответствий между словами и записями словаря с порогом совпадения 60%
Визуализация OpenCV Загрузка видео, покадровая обработка, склейка роликов
Визуализация Pillow (PIL) Наложение текста (субтитров) на кадры видео
Математика/ML PyTorch (torch) Бэкенд для работы модели ruBERT
Математика/ML NumPy Математические операции
Математика/ML scikit-learn Косинусное сходство для сравнения эмбеддингов
Данные JSON (встроенная библиотека) Хранение словаря и видовых пар
Вспомогательные os, sys, re, shutil, subprocess Работа с файловой системой, регулярные выражения, запуск внешних процессов
Вспомогательные wget, tarfile Скачивание и распаковка данных для DGS
Управление зависимостями pip + requirements.txt Установка всех необходимых пакетов


Кратко: Python 3.11/3.14 + Stanza (NLP) + ruBERT (WSD) + OpenCV/Pillow (видео) + rapidfuzz (поиск) — всё это работает на Windows/Linux и управляется через Git.

Стоимость разработки системы:  0
Средний размер ежегодных затрат на эксплуатацию:  0
Перспективы развития: 

Перспективы развития системы

  1. Расширение словарной базы — увеличить словарь с текущих ~500 записей до нескольких тысяч жестов за счёт краудсорсинга и интеграции с открытыми словарями (Spreadthesign, SLOVO и др.). Это позволит обрабатывать более широкий спектр текстов.

  2. Улучшение синтаксического реордеринга — доработать алгоритмы для корректной обработки сложных конструкций: вложенных придаточных предложений, пассивных оборотов, сложных временных форм.

  3. Переход к гибридной архитектуре — комбинировать rule-based подход с нейросетевыми моделями на тех этапах, где правила показывают недостаточную точность (например, разрешение многозначности или определение порядка слов в сложных предложениях), особенно при появлении достаточных размеченных корпусов.

  4. Расширение мультиязычности — добавить поддержку дополнительных жестовых языков (например, американского ASL, французского LSF, британского BSL) через унификацию форматов данных и модульную архитектуру.

  5. Оптимизация производительности — внедрить кэширование эмбеддингов ruBERT и предзагрузку моделей для ускорения обработки запросов.

  6. Интеграция в комплексные системы синтеза жестов — использовать разработанный модуль text-to-gloss как часть полного пайплайна text-to-pose (генерация анимированных 3D-персонажей, выполняющих жесты).


Итог: система является базой для дальнейших исследований и разработок, с потенциалом превращения в полноценный коммерческий или социально значимый сервис для глухих и слабослышащих.

Достижение поставленных целей: 

Достижение поставленных целей

Разработка rule-based пайплайна автоматической генерации глосс из русского текста для русского жестового языка, включая выбор целевого жестового языка (РЖЯ или DGS), отображение глосс и воспроизведение сгенерированного видео.

Степень достижения: Цель полностью достигнута.

Актуальность, экономическая или социальная полезность: 

Актуальность

Научная актуальность:

  1. РЖЯ — низкоресурсный язык — отсутствуют большие параллельные корпуса «текст — глоссы» (десятки тысяч размеченных примеров), нет общедоступных синхронных аннотаций. Это затрудняет применение нейросетевых методов.

  2. Rule-based подход — единственная стратегия — позволяет получать работающие системы даже при ограниченном словарном запасе и отсутствии больших обучающих выборок.

  3. Пробел в исследованиях — на момент разработки отсутствовала открытая система text-to-gloss для РЖЯ (стр. 12-13).


Социальная актуальность:


Проблема Решение
Дефицит сурдопереводчиков Автоматизация перевода текста в жесты снижает зависимость от квалифицированных кадров
Высокая стоимость ручного перевода Система бесплатна и не требует оплаты труда переводчика
Отсутствие оперативной обратной связи Пользователь может мгновенно получить перевод произвольного текста на РЖЯ
Низкая доступность учебных материалов Система может генерировать размеченные примеры «текст — жест» для изучения РЖЯ
Языковой барьер в цифровой среде Большинство веб-ресурсов, госуслуг, образовательных платформ не имеют версии на РЖЯ


Социальная полезность


Сфера применения Польза
Образование Создание учебных материалов для глухих, слабослышащих и изучающих РЖЯ
Коммуникация Генерация субтитров и визуального сопровождения для видеоконтента на РЖЯ
Цифровая доступность Снижение языкового барьера при использовании государственных услуг и образовательных платформ
Научные исследования Базовое решение для тестирования гибридных подходов (rule-based + нейросети)
Разработка систем синтеза жестов Использование как модуля text-to-gloss в комплексных пайплайнах text-to-pose


Экономическая полезность


Аспект Польза
Бесплатность Все используемые инструменты — open-source. Система не требует лицензионных отчислений
Снижение затрат Автоматизация заменяет ручной труд сурдопереводчиков (создание субтитров, учебных материалов)
Открытый код Позволяет организациям адаптировать систему под свои задачи без затрат на разработку с нуля
Масштабируемость Возможность использования в государственных и коммерческих сервисах без дополнительных капитальных вложений
Основа для коммерческих продуктов Может служить ядром для платных сервисов автоматического перевода

Масштабируемость, способность к взаимодействию с другими системами, мобильность: 
Параметр Оценка
Масштабируемость Высокая (модульная архитектура, JSON-словарь, поддержка новых языков). Ограничена размером словаря.
Взаимодействие Средняя-высокая (есть интеграция с DGS, универсальные входы/выходы, потенциал для API).
Мобильность Высокая (поддержка Windows/Linux, минимальные требования, управление зависимостями, открытый код).

Обоснованность применяемых проектных решений: 

1. Выбор rule-based подхода


Решение Обоснование
Rule-based вместо нейросетей РЖЯ — низкоресурсный язык. Отсутствуют большие параллельные корпуса «текст — глоссы» (десятки тысяч размеченных предложений). Нейросетевые методы требуют огромных объёмов данных для обучения. Rule-based подход позволяет получить работающую систему даже при ограниченном словарном запасе (~500 записей).

2. Выбор архитектурного стиля


Решение Обоснование
Монолитная архитектура с модульной организацией Простота разработки и развёртывания (не требует настройки межсервисного взаимодействия). Логическая связность компонентов — все модули образуют последовательный конвейер. Отсутствие необходимости в горизонтальном масштабировании на этапе прототипирования. Упрощение отладки и тестирования — все компоненты в едином процессе.
Конвейерный паттерн (Pipeline Pattern) Данные последовательно проходят через независимые модули обработки, что естественно для задачи text-to-gloss.

3. Выбор технологического стека


Инструмент Обоснование
Python 3.11, 3.14 Широкая экосистема NLP-библиотек (Stanza, transformers); наличие инструментов для компьютерного зрения (OpenCV, Pillow); простота реализации rule-based алгоритмов и прототипирования; возможность интеграции с веб-фреймворками и масштабирования.
Stanza (вместо pymorphy2 или NLTK) Высокая точность для русского языка; предоставляет не только морфологию, но и синтаксический разбор (зависимости), что критично для реордеринга.
rapidfuzz (вместо ручного сравнения) Высокая производительность (C++ ядро); поддержка различных метрик расстояния (Левенштейн и др.); настраиваемый порог совпадения (60%).
ruBERT-base-cased (вместо других эмбеддингов) Одна из лучших доступных моделей для русского языка (178 млн параметров); позволяет получать контекстные эмбеддинги предложений для сравнения с описаниями значений омонимов.
OpenCV + Pillow Стандартные, хорошо документированные инструменты для видеомонтажа в Python; обеспечивают загрузку видео, покадровую обработку и склейку.

4. Выбор формата хранения данных


Решение Обоснование
JSON вместо реляционной СУБД Словарный объём невелик (~500 записей) — не требуется производительность СУБД. Упрощение развёртывания — не нужен отдельный сервер базы данных. Простота редактирования словаря — можно править JSON в любом текстовом редакторе. Быстрая загрузка в память при старте приложения.

5. Архитектура модулей


Модуль Обоснование проектных решений
Лексический маппинг Многоуровневая стратегия (точное совпадение → видовая нормализация → префиксальный анализ → нечёткое сравнение) обеспечивает максимальный охват словоформ при ограниченном словаре.
WSD на ruBERT Использование косинусного сходства между эмбеддингом предложения и описаниями значений не требует размеченного корпуса для обучения, что критично для низкоресурсного языка.
Визуализация Склейка видео с субтитрами и подсветкой текущего жеста повышает информативность и наглядность результата для пользователя.

6. Поддержка мультиязычности


Решение Обоснование
Интеграция со сторонним проектом через функцию-обёртку Позволяет добавить поддержку DGS без усложнения собственной кодовой базы. Демонстрирует масштабируемость подхода на другие жестовые языки. Использование готового решения экономит время разработки.


Краткий итог: Все проектные решения обоснованы либо техническими ограничениями (низкоресурсность РЖЯ, малый словарь), либо прагматическими соображениями (простота разработки и развёртывания, использование проверенных open-source инструментов, отсутствие необходимости в сложной инфраструктуре на этапе прототипирования).

Оригинальность, новизна, отличие от аналогов либо отсутствие аналогов: 

Оригинальность и новизна

  1. Первая открытая rule-based система text-to-gloss для РЖЯ — на момент разработки отсутствовало готовое открытое решение для автоматической генерации глосс именно для русского жестового языка.

  2. Адаптация под низкоресурсные условия — система работает без больших параллельных корпусов, используя rule-based подход, что является единственно возможной стратегией для РЖЯ на текущий момент.

  3. Мультиязычность в одной системе — поддержка РЖЯ + DGS не реализована ни в одном из аналогов для РЖЯ.

  4. Комбинация технологий — впервые применена связка: rule-based маппинг + ruBERT для WSD + OpenCV-визуализация в едином пайплайне для РЖЯ.

Гарантирую достоверность предоставленной в заявке информации. Подтверждаю, что организация не находится в состоянии ликвидации, банкротства, реорганизации (Только для организаций):  Да
Презентация проекта pdf:  Загрузить
Возврат к списку
нет доступа к комментариям Авторизоваться