GithubHelp home page GithubHelp logo

creativefiltermediawise's Introduction

Решение кейса MediaWise "Креативный фильтр" от команды INSOMNIUM


В представленном репозитории вы найдете:

prepared_dataset_for_neuron.ipynb

Нотбук, который используется для предобработки датасета с видео.

  1. С его запуском, в корне проекта создается файл train_dataset.csv. В нем будут записаться тексты рекламных роликов. Собираемая в него информация, это:
  • AdvertisementID - идентификатор ролика
  • SegmentID - идентификатор сегмента
  • FileExtention - расширение виодеоролика
  • Time - время длительности ролика
  • SpeechText - распознанный из аудиодорожки голос речи
  • CadrText - распознанный с кадра текст.
  1. Далее, из папки с видеокреативами data/, будут браться в порядке очереди файлы. Вначале их преобразуют в VideoFileClip с использованием moviepy библиотеки, затем извлекается отдельно аудиодорожка AudioFileClip, временно сохраняется одноименно видеофайлу с расширением .wav. После .wav файл преобразуется в AudioData с помощью метода listen() класса Recognizer (набора методов разбора речи), библиотеки speech_recognition. Затем аудиоданные передаем параметром в метод recognize_google() с указанием языка и получаем на выходе текст.

Важное замечание: Данный метод работает в том случае, когда указываем для свойства класса Recognizer значение pause_threshold = 10.0 (в секундах). Он отвечает за время, когда прекращается слушать при длительном молчании речь в аудиодорожке.

Альтернативный метод - закомментированый кусок кода, когда звуковая дорожка режется на слайсы по 8с и читаются по отдельности, перед отправкой на распознавание предварительно проверяясь на пустой массив байтов.

  1. После, получаем из train_segments.csv после преобразования в dataframe, по идентификатору Advertisement_ID - Segment_num.
  2. В конце, в .csv пишется срока.

ПРИМЕР

AdvertisementIDSegmentID,FileExtention,Time,SpeechText,CadrText
1034675,16,mp4,22.73,Алиса Включи что-нибудь бодрое включаю Алиса Можно мне в отпуск,
1034727,16,mp4,25.26,Алиса Включи нам ужастик включаю Алиса зачем мы смотрим ужастик просмотр одного ужастика сжигает более 100 калорий,
1039744,16,mp4,11.42,Алиса Поставь будильник на 7:00 утра,
1039779,16,mp4,13.61,Алиса Включи сказку про медвежат включаю как Медведица искала своих медвежат Яндекс станция смотрите как звучит,
1039862,16,mp4,17.14,Алиса Включи плейлист встреча гостей включаю Как звучит,
1040482,16,mp4,13.57,Алиса Включи сказку про медвежат включаю как Медведица искала своих медвежат Яндекс станция смотрите как звучит,
1040484,16,mp4,17.09,Алиса Включи плейлист встреча гостей включаю станция смотрите как звучит,
1040485,16,mp4,11.37,Алиса Поставь будильник на 7:00 утра,
1040486,16,mp4,16.62,Алиса Давай посмотрим мир дикого запада в медиатеке включаю надеюсь хоть вы-то не Android Яндекс станция смотрите как звучит,
1040488,16,mp4,25.22,Алиса Включи нам ужастик включаю Алиса зачем мы смотрим ужастик просмотр одного ужастика сжигает более 100 калорий,
1040491,16,mp4,11.37,Алиса Поставь будильник на 7:00 утра поставила,
1040493,16,mp4,11.37,Алиса Поставь будильник на 7:00 утра поставила,
1040571,16,mp4,17.09,Алиса Включи плейлист встреча гостей Как звучит,
1040572,16,mp4,17.09,Алиса Включи плейлист встреча гостей Как звучит,
1040607,16,mp4,16.62,Алиса Давай посмотрим мир дикого запада в медиатеке включаю надеюсь хоть вы-то не Android Яндекс станция смотрите как звучит,
1041127,16,mp4,13.57,Алиса Включи сказку про медвежат включаю как Медведица искала своих медвежат Яндекс станция смотрите как звучит,
1041128,16,mp4,13.57,Алиса Включи сказку про медвежат включаю как Медведица искала своих медвежат Яндекс станция смотрите как звучит,
1041129,16,mp4,13.57,Алиса Включи сказку про медвежат включаю как Медведица искала своих медвежат Яндекс станция смотрите как звучит,
1041184,16,mp4,25.22,Алиса Включи нам ужастик включаю Алиса зачем мы смотрим ужастик просмотр одного ужастика сжигает более 100 калорий,
1041272,16,mp4,16.62,Алиса Давай посмотрим мир дикого запада в медиатеке включаю надеюсь хоть вы-то не Android Яндекс станция смотрите как звучит,
1041273,16,mp4,16.62,Алиса Давай посмотрим мир дикого запада в медиатеке включаю надеюсь хоть вы-то не Android Яндекс станция смотрите как звучит,
1041989,16,mp4,25.22,Алиса Включи нам ужастик включаю Алиса зачем мы смотрим ужастик просмотр одного ужастика сжигает более 100 калорий,
1042765,17,mp4,15.07,,
1042835,17,mp4,15.07,,
1042842,17,mp4,15.07,,
1042867,16,mp4,22.7,Алиса Включи что-нибудь бодрое включаю Алиса Можно мне в отпуск,
1042868,16,mp4,22.7,Алиса Включи что-нибудь бодрое включаю Алиса Можно мне в отпуск,
1049959,16,mp4,25.22,Алиса Включи нам ужастик включаю Алиса зачем мы смотрим ужастик просмотр одного ужастика сжигает более 100 калорий,
1049961,16,mp4,25.22,Алиса Включи нам ужастик включаю Алиса зачем мы смотрим ужастик просмотр одного ужастика сжигает более 100 калорий,
1049963,16,mp4,25.22,Алиса Включи нам ужастик включаю Алиса зачем мы смотрим ужастик просмотр одного ужастика сжигает более 100 калорий,

Примечания

  1. Такие строки получались в ходе обработки ролика YouTube Music, где фоном играла музыка, а видео было в виде слайд-шоу.
1042765,17,mp4,15.07,,
  1. Для видеороликов с таймлайном от 13.57 до 16.62 секунд, удалось считать полностью все рекламное сообщение. Для остальных роликов, не входящих в этот промежуток, теряется конец записи. Скорее это связано с настройой Recognizer, но времени чтобы разобраться было мало.

[НЕРАБОТАЕТ] cnn.ipynb

Нотбук для обучения и проверки гипотез для сверточной нейронной сети.

Предлагалось построить решение на основе tensorflow и библиотеки tensorflow.keras. После предобработки данных и получения тренировочных размеченных датасетов, предполагалось построить решение на основе токенизации наборов слов из рекламных креативов.

Решение не работает, так как времени разобраться с ошибкой при Токенизации нехватило.

creativefiltermediawise's People

Contributors

leonleonnight avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.