Разработка сервиса Speech-to-text на базе существующего API (проект)
Ментор | Королев Денис |
Учебный семестр | Осень 2017 |
Учебный курс | 2-й курс |
Проект можно развивать на летней практике | |
Максимальное количество студентов, выбравших проект: 5-10 | |
Что это за проект?
Разработка в уже действиующем проекте, направления работы -- от UI/UX до предобработки потоков и анализа и обработки результатов распознавания и перевода.
Суть проекта: пользователь загружает видео- или аудио-файл, файл преобразуется для отправки в один или несколько сервисов распознавания, далее результат высылается на электронную почту пользователя.
Сервисов распознавания и перевода существует много, но всилу специфики их назначения и произвольного характера поступающих от пользователей исходных файлов, требуется предобработка и последующая сборка результатов. Взаимодействие со сторонними сервисами -- через API. При этом, различные сервисы по-разному воспринимают особенности исходных записей. Например, одни не любят телефонные разговоры, а другие -- многоголосые записи. Стоимость обработки также различается.
Отдельное направление -- разработка личного кабинета со статистикой, сохранением результатов ранее проведенных распознаваний и исходных файлов (файлы сохраняются на аккаунте GoogleDrive). В том числе, требуется поддержка обработки папок (GoogleDrive, FTP, WebDAV) в качестве источников файлов и места сохранения результатов.
Также отдельный подпроект -- подключение не только распознавания, но и перевода (также через API).
Результаты распознавания и перевода могут быть представлены как простым текстом, так и размеченным таймкодами, облаком тегов и т.д.
Заметим, что операции распознавания и перевода доступны в реальном времени и одной из задач (на практике уже проверено -- работает) будет реализовать для пользователей возможность давать на вход сервиса не только файлы, но и потоки, а на выходе -- поток субтитров, в т.ч. автоматически стримить в Yotube.
Разработка на Ruby on Rails.
Чему вы научитесь?
В зависимости от выбранного направления работы:
- работа с API сторонних сервисов
- предобработка потоков (gstreamer, ffmpeg)
- UI/UX разработка
- OAuth, работа с платежной системой
- Работа с хранилищами файлов (GoogleDrive, WebDAV, FTP)
Задачи разносторонние, поэтому каждый найдет себе что-то по вкусу.
Какие начальные требования?
В зависимости от выбранного направления -- владение соответствующими технологиями и языками. Очевидно, потребуется знать или изучить большинство используемых инструментов и языков.
Какие будут использоваться технологии?
- API сервисов распознавания и перевода, Google Drive и Youtube, ЯндексКассы.
- Ruby on Rails, Java Script
- Анализ видео- и аудиофайлов, их предобработка
- Анализ текстов и их обработка
Темы вводных занятий
Не в порядке изложения:
1. Архитектура проекта. API, внешние связи и зависимости.
2. Специфические технологии и используемые инструменты.
3. Доступные ресурсы, организация доступа.
4. Разделение ролей
Направления развития
Сейчас этот сервис работает лишь для распознавания голосовых записей, может работать с потоками (но для пользователей эта возможность закрыта, а так титры в Youtube делаются на лету), при этом выдача распознанных файлов приходит пользователю с таймкодами. Но это пока очень сырой проект, выросший из прошлогодней курсовой работы в МИЭМ. В развитие видятся следующие направления:
- Повышение качества распознавания -- не только подбором провайдера сервиса распознавания (сейчас Google, тестируются два других), но и предобработкой (особенно шумных и искаженных сжатием) записей и анализом результирующего текста, возможно, по дублирующему результату от альтернативного провайдера;
- Введение распознавания графических образов из видео (про это есть отдельный проект). Актуально для мониторинговых компаний, которые распознают телевизионный эфир (а там много интересного пишут в lower third и не только);
- Пользовательский интерфейс для всего этого. Сейчас его можно сказать что нет.
Помимо этого предстоит много сделать для интеграции в рабочие процессы заказчиков. Например, обработку папок в облачных дисках и по адресам ftp/webdav вместо загрузки файлов непосредственно на сайте.
Критерии оценки
Про работу и оценки почитайте здесь: https://d.pr/143bq
Постарайтесь отнестись к этому с пониманием. Очень часто бодрое начало длится 3-4 недели и потом наступает тишина. Очень хочется, чтобы проекты доводились до запуска, а вы получали опыт успешной разработки и, возможно, работу в этих проектах уже в другом статусе. Но пока это для вас учебная работа, поэтому будем придерживаться описанных по ссылке правил и критериев. Спасибо!
Как записаться?
В общем доступе есть порядка двадцати проектов, относящихся к области видеотехнологий (стриминг, доставка потоков и т.д.). Чтобы всем было проще, эти проекты объединим в четыре группы и при записи на проект выбирайте группу, а конкретный проект и вашу роль в нем мы обсудим уже в рабочем порядке.
Ориентировочное расписание занятий
Более точное расписание будет ясно после утверждения графика факультативов, пока ориентируемся на вторник, среду или пятницу во второй половине дня (после 15-16 часов).
На самом деле, для общения (как индивидуального, так и группового) удобно использовать средства видеосвязи -- это не заменяет очных встреч, но отлично дополняет их за счет возможности оперативно решать задачи "здесь и сейчас", сидя за удобным вам рабочим местом. Практически все темы проектов подразумевают работу в сети.
Денис Королев,
https://www.hse.ru/staff/dkorolev (там есть ссылки на соцсети)
+7 903 610 3290 (месенджеры по вкусу)
d.korolev@gmail.com