我希望在 python 中创建一个视觉效果,它将音频文件 (WAV) 的输出与对象的大小相关联,类似于有多少聊天平台会在您正在聊天的人的个人资料照片周围显示一个圆环当他们说话或沉默时会随之波动。
目前我正在使用 moviepy 进行视频编辑,并且更愿意尽可能多地通过这个库来做,除非在其他地方有明显更好的选择。我可以使用 scipy.io 和以下代码获得声波输出幅度和采样率的数组:
from scipy.io import wavfile
output = wavfile.read("audiofile.wav")
samplerate = output[0]
output_array = output[1]
我知道我需要将输出数组实现为时间函数,它与函数指定时间的某个对象的大小有关。我可以为这个对象创建一个单独的视频剪辑,并使用 CompositeVideoClip 类将我的背景视频和这个波动的对象附加在一起。我不得不厌倦 fpos(60) 与初始音频采样率 (24000) 之间的关系。
我已经阅读了关于创建将时间与发生的某些事件相关联的 lambda 函数的 moviepy 的文档,也许我只是很笨,但是当我自己尝试导航到这个领域时我完全迷路了。 https://zulko.github.io/moviepy/examples/the_end.html
在 macOS 上工作,python3.10.
任何向前推进的指示将不胜感激。