我想在最大尺寸为 180×180 像素的图像中表示音频文件。
我想生成这个图像,以便它以某种方式给出音频文件的表示,将其想象为 SoundCloud 的波形(幅度图)?.
我想知道你们中是否有人有这方面的东西。我一直在搜索一些,主要是“音频可视化”和“音频缩略图”,但我没有找到任何有用的东西。
I first 将此发布到 ux.stackexchange.com https://ux.stackexchange.com/q/17037/7206,这是我试图联系任何从事此工作的程序员。
您还可以将音频分解为多个块并测量 RMS(响度度量)。假设您想要一张 180 像素宽的图像。
我会用pydub http://pydub.com,我围绕标准库编写的轻量级包装器wave
模块:
from pydub import AudioSegment
# first I'll open the audio file
sound = AudioSegment.from_mp3("some_song.mp3")
# break the sound 180 even chunks (or however
# many pixels wide the image should be)
chunk_length = len(sound) / 180
loudness_of_chunks = []
for i in range(180):
start = i * chunk_length
end = chunk_start + chunk_length
chunk = sound[start:end]
loudness_of_chunks.append(chunk.rms)
for 循环可以表示为以下列表理解,我只是想让它清楚:
loudness_of_chunks = [
sound[ i*chunk_length : (i+1)*chunk_length ].rms
for i in range(180)]
现在唯一要做的就是将 RMS 缩小到 0 - 180 范围(因为您希望图像高 180 像素)
max_rms = max(loudness_of_chunks)
scaled_loudness = [ (loudness / max_rms) * 180 for loudness in loudness_of_chunks]
我将把实际像素的绘制留给你,我对 OIL 或 ImageMagick 不太有经验:/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)