Python音频分析。我可以从中提取哪些属性/值?

1 人关注

我目前正在做一个tkinter python学校项目,唯一的目的是从音频文件中生成图像,我打算挑选音频属性并将其作为值来生成独特的抽象图像,但是我不知道我可以分析哪些属性来提取值。所以我想寻求一些指导,看看我可以从哪些属性(音频频率、振幅......等)中提取数值来用Python生成图像。

4 个评论
我会在音频或数字艺术论坛上问这个问题,StackOverflow不允许图书馆推荐问题或已经没有写好代码的开放式帖子。我们也希望你能分享你目前所研究的东西--比如说,用音频频谱图来生成图像怎么样?这已经存在了,但你还没有真正说出你目前的想法是什么,你已经尝试了什么,或者给出一个你的意思的例子。这个帖子需要更多的内容,不管它是否符合主题。
A:这是为音乐还是一般的音频?B:考虑发布到软件需求而不是溢出。
Okym
它只是有一个可笑的目的,任何音频文件真的不是特定的音乐......我遇到的困难是找到哪些属性(音频振幅、频率等)我可以用Python提取数据。我想我一定会在另一个论坛上发帖,谢谢大家。
@Myko 你可以从python中提取任何你想要的属性。你没有说明你是在问 如何 做这些事情。你没有在你的问题中列出你想通过Python读取的任何属性。如果你能具体说明这些,那么我们可以给出具体的答案。
python
signal-processing
analysis
audio-processing
Okym
Okym
发布于 2021-01-12
3 个回答
George Profenza
George Profenza
发布于 2021-02-12
0 人赞同

这个问题在目前的形式下是非常广泛的。 (请记住,音频不是我的专业领域,所以请注意在音频/视听/生成领域工作的人的意见。)

你可以用两种方法:先弄清楚你想从音频中创造什么样的图像,然后再弄清楚要使用哪些音频特征。另一种方法也是有效的:选择一个你想探索的音频特征,然后思考如何在视觉上最好或最有趣地表现它。

图像和影像之间是有区别的。 对于一个单一的图像,我能想到的最简单的方法是画一个方格,方格的视觉属性(如方格大小、填充颜色强度等)被映射到当时的振幅上。单一的图像将直观地显示整个轨道的振幅模式。即使是这样一个简单的例子,你也可以做出很多选择(你的采样频率,你如何布局网格(笛卡尔,极地),每个振幅样本如何被可视化(可以是不同的形状,大小,颜色,等等)。 (与 CinemaRedux 的概念类似,只是对音频来说比较简单)。 你可以从数据可视化的领域中寻找灵感。 信息是美好的 》是一个很好的开始。

如果你想生成的图像似乎进入了视听领域(如抽象动画、音频反应运动图形等)。 你的问题原来有 Processing 的标签,我把它去掉了,然而你可能在使用Processing的Python模式。

在音频可视化方面,我能想到的一个好例子是Robert Hogin的工作,见 Magnetosphere 音频生成的景观原型 。他使用频率分析(FFT)和一些平滑/数据处理来放大对可视化有用的元素并抑制一些噪音。

(有一些方便的音频库,如 Minim beads ,不过我想你感兴趣的是使用原始Python,而不是Jython(官方Processing Python模式使用的)。他是一个关于 FFT分析可视化的 答案(尽管它是在Processing Java中,但其原理可以应用于Python)。

就我个人而言,到目前为止我只用pyaudio做基本的音频任务。我认为你可以用它来进行振幅分析,但对于其他更复杂的任务,你可能需要一些额外的东西。 快速搜索一下 librosa 就会出现。

如果你想实现的目标还不清楚,可以先试着做原型,从你能想到的最简单的音频分析和视觉元素开始(例如,振幅随时间映射到盒子上)。限制条件可以很好地发挥创造力,最小的方法可以转化为更干净、最小的视觉效果。

然后你可以研究FFT、 MFCC 、发病/节拍检测等。

另一个可能对原型设计有用的工具是 Sonic Visualiser 。 你可以打开一个轨道并使用一些内置的特征提取器。 (你甚至可以从Sonic Visualser中导出XML或CSV数据,你可以在Python中加载/解析这些数据并用于渲染图像)。 它使用一个插件系统(类似于DAW中的VST插件,如Abbleton Live, Apple Logic等),称为 Vamp插件 。如果你在运行时需要这些数据,你可以使用 VampPy Python包装器。

(你可能还想从其他视听艺术作品的语言中获得灵感,如 PureData + Gems , MaxMSP + Jitter , VVVV 等)。

Okym
我很感谢你的广泛回答,这肯定会帮助我走向更明确的方向
George
George
发布于 2021-02-12
已采纳
0 人赞同

时域 。零交叉率,均方根能量等。 频域 。频谱带宽,通量,滚动度,平整度,MFCC等。还有 ,节奏 ,你可以使用Python的 librosa 链接 https://librosa.org/doc/latest/index.html ,用于从.wav文件中提取,它实现了快速傅里叶变换和成帧。然后你可以对整个音频文件的上述特征向量进行一些统计,如平均值、标准偏差。