您现在的位置是:亿华云 > 域名
让GAN随音乐律动的Python工具,网友:GAN的建议用法
亿华云2025-10-02 18:41:46【域名】5人已围观
简介本文经AI新媒体量子位公众号ID:QbitAI)授权转载,转载请联系出处。用GAN生成画作已经不是新鲜事了,不过你见过“懂音乐”的GAN吗?一位外国小哥开发的Python工具,能让GAN生成的图像随音
本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,随音转载请联系出处。乐律
用GAN生成画作已经不是动的新鲜事了,不过你见过“懂音乐”的工具GAN吗?
一位外国小哥开发的Python工具,能让GAN生成的网友图像随音乐律动,几个小时内就在reddit上收获了1.5k个赞。建议

这就像海市蜃楼,乐律好像能看出描绘的动的物体或场景,但是工具下一分钟,你又会意识到它们并不存在。网友

Lucid Sonic Dreams默认使用StyleGAN2-ADA架构,并且使用Justin Pinkney的存储库awesome-pretrained-stylegan2中的预训练模型。
根据指定风格的图像数据集进行训练,得到与其风格相似的服务器租用大量图像。

在图像生成过程中,向模型中输入包含512个数值的向量来决定输出图像,而向量的细微变化,在输出图像中也会产生相应地细微的变化。
因此,Lucid Sonic Dreams将从音乐的声波中提取的数值(例如:振幅),添加到输入向量中。对视频中的每一帧都执行此操作,创造出随音乐跳动和变化的艺术效果。
作者开发这一工具的灵感,来自Matt Siegelman的Deep Music Visualizer项目——BigGAN,它能够使其生成的图像与音乐同步变化。
图源:Matt Siegelman
虽然以前也有一些类似的项目,但Lucid Sonic Dreams与众不同的地方在于,它是能够实现自定义的Python软件包。
可简可繁,亿华云满足不同需求
Lucid Sonic Dreams的安装十分简单,只需要运行pip install lucidsonicdreams进行安装就可以了。
首先要实现基本可视化,代码是这样的:
from lucidsonicdreams import LucidSonicDream L = LucidSonicDream(song = song.mp3, style = abstract photos) L.hallucinate(file_name = song.mp4)由此就可以生成抽象风格的视频:

此外,也可以使用其他风格,只需要将参数值style设为相应的pkl文件路径,就像这样:
L = LucidSonicDream(song = raspberry.mp3, style = VisionaryArt.pkl) L.hallucinate(file_name = raspberry.mp4, pulse_react = 1.2, motion_react = 0.7, contrast_strength = 0.5, flash_strength = 0.5)例如,使用Jeremy Torman训练的模型生成的效果:

例如,参数pulse_react、motion_react和class_react,分别控制着3个主要视觉组件:Pulse(脉冲)、Motion(运动)和Class(种类)。
Pulse组件,是指视音乐中打击乐元素的视觉效果。从数学上讲,脉冲是声波振幅临时添加到输入向量的结果,云服务器而在下一帧视频中,向量则恢复正常。

在默认情况下,程序还带有与音频中打击乐元素同步的“对比”和“闪光”效果,分别通过contrast_strength和flash_strength参数进行设置。
调整参数的代码就像这样:
L = LucidSonicDream(pancake_feet.mp3, style = modern art) L.hallucinate(file_name = pancake_feet.mp4, speed_fpm = 0, motion_react = 0.8, contrast_strength = 0.5, flash_strength = 0.7)除了这些内置的效果外,Lucid Sonic Dreams还支持创建自定义效果。只需创建一个函数,其中至少包含3个参数:
array用来指示应用效果的图像;strength决定对音乐的反应程度;amplitude则是指音乐在任何给定时间点的音量。
然后,将此自定义函数传递给EffectsGenerator对象。比如,利用scikit-image生成旋流效果的代码:
import numpy as np from skimage.transform import swirl from lucidsonicdreams import EffectsGenerator def swirl_func(array, strength, amplitude): swirled_image = swirl(array, rotation = 0, strength = 100 * strength * amplitude, radius=650) return (swirled_image*255).astype(np.uint8) swirl_effect = EffectsGenerator(swirl_func, audio = unfaith.mp3, strength = 0.2, percussive = False)生成的旋流效果示例:

除此之外,Lucid Sonic Dreams支持上传分离后的音轨来控制参数,音乐制作者可以用它作为音乐可视化程序。
例如,使用分离后的打击乐音轨来控制Pulse,同时用一个分离后的“合成和弦”音轨来控制Class:
L = LucidSonicDream(song = lucidsonicdreams_main.mp3, pulse_audio = lucidsonicdreams_pulse.mp3, class_audio = lucidsonicdreams_class.mp3, style = wikiart)既有简便易用的默认模式,又支持各种自定义素材,难怪网友们对它大加赞赏。
OMG,我认为这是我见过的GAN的最佳用法。


很赞哦!(2)
下一篇: 数据中心网络安全建设方案研究