Файл: Направление подготовки 09. 03. 04 Программная инженерия.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 29.10.2023
Просмотров: 749
Скачиваний: 2
-
Дискриминатор
-
Генератор
нулю, а дисперсии к единице. Данный метод направлен на повышение производительности и стабилизацию работы нейросетевой модели.
√ (2.8)
x − E(x)
BatchNorm(x) = Var(x)
где E- математическое ожидание, Var - дисперсия. Архитектура генератора изображена на рисунке 2.8.
Рис. 2.8 – Архитектура генератора
- 1 ... 7 8 9 10 11 12 13 14 15
Выводы
В рамках данного раздела была описана теоретическая подготовка к построению программ- ного модуля генерации звука по видео, а именно:-
Представлена нейросетевая модель генерации звука по видео. -
Описана архитектура реализуемых нейросетевых моделей.
-
Построение модуля генерации аудиоинформации на основе видеозаписи
-
Требования к модулю генерации аудиоинформации на основе видеоза- писи
-
Выбор инструментальных средств для разработки модуля генерации аудио- информации на основе видеозаписи
, по которым данные тензоры ”перемещаются”. Фреймворк PyTorch является более удобным при кроссплатформенном использовании, а также является более эффективным (с точки зрения скорости проведения вычислений) и в процессе тренировки, и в процессе инференса при ис- пользовании GPU. Таким образом, для разработки данного модуля был выбран PyTorch.
Все математические операции с тензорами выполняются с помощью математического ап- парата PyTorch. Вычисления за пределами модели предполагается выполнять при помощи библиотеки NumPy, реализующей комплексные математические функции, генераторы случай- ных чисел, процедуры линейной алгебры, преобразования Фурье и многое другое. Для обра-
ботки аудиоинформации была использована библиотека librosa. Для предобработки видео и визуальной информации был использован набор библиотек FFmpeg и библиотека алгоритмов компьютерного зрения OpenCV.
-
Реализация программного модуля генерации аудиоинформации на ос- нове видеозаписи
-
Обрабатывающий компонент
приводитсякдлительностидесятьсекундпутемповторенияиобрезки. Далее разделяются на аудио- и видеоинформацию, видеоинформация преобразуется путем из- менениячастотыкадров(21.5fps),частотадискретизацииаудиоинформацииконвертируется в значение 220500.#changeaudiosampleratesr_audio_dir=P.join(output_dir,f”audio_{duration_target}s_{sr}hz”) os.makedirs(sr_audio_dir,exist_ok=True)os.system(”ffmpeg−i{}−loglevelerror−ac1−ab16k−ar{}−y{}”.format( P.join(cut_audio_dir,audio_name),sr,P.join(sr_audio_dir,audio_name)))#changevideofpsfps_audio_dir=P.join(output_dir,f”videos_{duration_target}s_{fps}fps”)os.makedirs(fps_audio_dir,exist_ok=True)os.system(”ffmpeg−y−i{}−loglevelerror−r{}−c:vlibx264−strict−2{}”.format( P.join(cut_video_dir,video_name),fps,P.join(fps_audio_dir,video_name)))ПрипомощибиблиотекиOpenCVконвертированноевидеоразделяетсянакадры,таккак длительность видео и частота кадров фиксирована, то для каждого видео мы получаем одина- ковое количество кадров - 215. Каждый кадр подвергается изменению размеров и конвертиру- ется в черно-белый формат.whilevideo.isOpened(): reg,img=video.read() if notreg:breakimg=cv2.cvtColor(img,cv2.COLOR_RGB2GRAY) img=cv2.resize(img,(width,height))cv2.imwrite(P.join(save_dir,f”img_{num:05d}.jpg”),img)При помощи библиотеки librosa аудиоинформация конвертируется в мел-спектрограмму. Выбранныенамипараметрыконвертации:размерокна-2048,размерпересеченияокон-512 (применяются для оконного преобразования Фурье), количество мел-фильтров - 80. Так как частота дискретизации и длительность аудиоинформации фиксирована, мы получаем мел- спектрограммы одинакового формата в виде матрицы (80, 430). Полученные мел-спектрограммы нормализуютсяметодомминимакс