В представленном репозитории вы найдете:
Нотбук, который используется для предобработки датасета с видео.
- С его запуском, в корне проекта создается файл
train_dataset.csv
. В нем будут записаться тексты рекламных роликов. Собираемая в него информация, это:
AdvertisementID
- идентификатор роликаSegmentID
- идентификатор сегментаFileExtention
- расширение виодеороликаTime
- время длительности роликаSpeechText
- распознанный из аудиодорожки голос речиCadrText
- распознанный с кадра текст.
- Далее, из папки с видеокреативами
data/
, будут браться в порядке очереди файлы. Вначале их преобразуют вVideoFileClip
с использованием moviepy библиотеки, затем извлекается отдельно аудиодорожкаAudioFileClip
, временно сохраняется одноименно видеофайлу с расширением.wav
. После.wav
файл преобразуется вAudioData
с помощью методаlisten()
классаRecognizer
(набора методов разбора речи), библиотеки speech_recognition. Затем аудиоданные передаем параметром в методrecognize_google()
с указанием языка и получаем на выходе текст.
Важное замечание:
Данный метод работает в том случае, когда указываем для свойства класса Recognizer
значение pause_threshold = 10.0
(в секундах).
Он отвечает за время, когда прекращается слушать при длительном молчании речь в аудиодорожке.
Альтернативный метод - закомментированый кусок кода, когда звуковая дорожка режется на слайсы по 8с и читаются по отдельности, перед отправкой на распознавание предварительно проверяясь на пустой массив байтов.
- После, получаем из
train_segments.csv
после преобразования в dataframe, по идентификаторуAdvertisement_ID
-Segment_num
. - В конце, в
.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 калорий,
- Такие строки получались в ходе обработки ролика YouTube Music, где фоном играла музыка, а видео было в виде слайд-шоу.
1042765,17,mp4,15.07,,
- Для видеороликов с таймлайном от
13.57
до16.62
секунд, удалось считать полностью все рекламное сообщение. Для остальных роликов, не входящих в этот промежуток, теряется конец записи. Скорее это связано с настройойRecognizer
, но времени чтобы разобраться было мало.
Нотбук для обучения и проверки гипотез для сверточной нейронной сети.
Предлагалось построить решение на основе tensorflow и библиотеки tensorflow.keras. После предобработки данных и получения тренировочных размеченных датасетов, предполагалось построить решение на основе токенизации наборов слов из рекламных креативов.
Решение не работает, так как времени разобраться с ошибкой при Токенизации нехватило.