Во первых технлогии PE (Portable Executable) это очень старый стандарт. И он был еще раньше чем
до платформы .Net, Для чего в современном .Net приложении понадобилось лазить в какие-то PE
секции и еще и каким-то инструментом? Непонятно.
Вобщем автор ты ходи к тому человеку который тебе это придумал и задай больше вопросов.
И я думаю что хабр тебе посоветует более простой путь. Потому что в таком виде ТЗ никто не дает.
Это - издевательство и невозможно придумать никаких критериев приемки.
Хм... плохо что они такой выбрали градиент. Непонятно можно ли по уровню яркости брать.
Вобщем желтому цвету пиксела соотвествует логический максимум. Допустим это 1.0
А темно синему - минимум. 0.0. Между ними - интерполяция. Придумай сам как ее сделать.
Получится примерно такой pipeline. Попробуем без нейросетей просто на операциях с векторами.
1) Берем картинки и преобразуем их в матрицы чисел.
2) Тоже самое с паттернами.
3) Нормируем все таким образом чтобы по ширине спектра они были одинаковые. Допустим
семпл собаки был снят с частотой 22050 Гц а оригинал записи 44100 - делаем прореживание
частоты так чтобы было ровно.
4) Ищем вхождение семпла в оригинал. Критерий - максимум скалярного произведения двух
матриц. Где одна из них - семпл. А вторая - под-матрица такой же размерности. И эту под-матрицу
надо будет двигать по всему временному интервалу где была запись.
Если будешь рисовать график скалярного произведения - в момент максимальной близости
семпла и реального лая собаки - там будет скачок графика вверх и будет заметен локальный максимум.
Вот эта точка и будет "Гавк".
Вот такой грубый и примитивный алгоритм и возможно он медленно работает но он простой
и в этом его преимущество.
В более сложном варианте можно добавить пороговый фильтр шумов и варпинг звуков с целью
сохранить их профиль но сократить длительность. Варпинг я никогда не делал. Но делал мой друг
на фактультете распознавания звуковых образов. У него дипломная была и он мне рассказал.
Еще у него была сильная квантизация. Он почти полностью ушел от вещественных чисел и
его алгоритм работал просто на булевых матрицах. А определял он команды управления
мобильным роботом. Ну... такие как "Стоп Вперед-назад", и эти голосовые семплы было удобно
делать в таком дискретном виде.
Возникла мысль что если Вася и Коля начнут переругиваться то границы их речи будет
трудно определить. Скорее всего ни будут частично перекрываться. Такое тоже заходит в ТЗ?
Роман Кофф, все нейронки в мире работат так. Это ящик которым на вход приходит
вектор вида
{ 0.0, 1.1, -1.0 .... }
и на выходе они тоже выдают вектор.
Если работаешь в текстом - то там тоже есть хитрые приемчики как текст свернуть в вектор.
Для обработки звука - тоже самое. Почему спектр лучше - потому что он толерантен
к фазовым преобразованиям. А если ты будешь анализировать одномерный график типа PCM
то можешь получить не просто лай собаки а минус-лай собаки. Тоесть результат парадоксальный
и неправильный.
Svyatoclav_Richter, мне легко заходило. Я лет с 15 программировал игровые ПК (8-bit).
И поэтому в отрасли мне было все более менее знакомо. Ну разве что Кнута с Алгоритмами
пришлось подучить.
Если ты до этого никогда не писал код - то тебе будет конечно трудновато.
Не всем нужно идти в технические ВУЗы. Может ты - гумантитарий?
Я говорю не с целью там делать victim-blaming а просто констатируя факты.
Может ты вообще в It будешь глубого несчастный человек? Зачем тебе это? Ну ВУЗ закончишь
а потом работа. Такое-же выгорание только еще хуже. И не преподы а начальники и деньги
будут над тобой висеть. Подумай.
Возможно твой бот переполняет память и операционка его убивает.
Смотри системные логи ОС для начала. Вообще любое подобное расследование
надо начинать не с вопроса а со сбора логов.
На данный момент никто в qna не может знать почему у тебя что-то выключается.
Я-бы различал отдельно язык и платформу. Версия платформы JVM при компилляции собирается
в заголовке каждого .class файла. И когда мы говорим о совместимости бинарника - то как раз
имеем в виду именно эту версию.