Репозиторий содержит решение тестового задания на стажировку Data Science компании "Контур".
Требовалось разработать и обучить модель для распознавания и расшифровки азбуки Морзе в аудиофайлах.
В качестве данных имелись сами аудио и расшифровки для тренировочного набора.
Для обработки аудио сигнала использовались различные аудио преобразования, такие как применение полосового фильтра, огибающая амплитуда, фильтрация шумов, порог Отсу для сигнала, бинаризация сигнала. В результате, сигнал был преобразован в набор признаков вида (сигнал/тишина, длительность). Например, (1, 1300) - сигнал длительности 1300 условных единиц времени (фреймов), а (0, 500) - тишина длительности 500 единиц времени.
Затем сигналы/тишина кластеризовались по их длительности. Сигналы могут быть только двух видов - точка (коротких сигнал) и тире (длинный сигнал). Тишина же бывает трех видов - тишина между точками и тире внутри одной буквы, тишина между различными буквами, тишина как пробел между словами.
После всех преобразований аудио преобразовывалось в последовательность точек, тире и пробелов и расшифровывалось алгоритмически.
Ошибка решения составляет в среднем 4.2 символа на одно аудио (усредненное расстояние Левенштейна).
Также в ноутбуке есть пример использования нейронных сетей для решения этой задачи. Нейронным сетям различной конфигурации подавался на вход бинаризованный по описанному выше принципу сигнал. Ошибка при данном подходе составляла в среднем 2.1 символа на одно аудио.