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

如何解决Python 音频分析:我可以从中提取哪些属性/值?

我目前正在研究一个 tkinter python 学校项目,其唯一目的是从音频文件生成图像,我将选择音频属性并将它们用作值来从中生成独特的抽象图像,但是我不不知道我可以分析哪些属性以从中提取值。因此,我一直在寻找有关哪些属性(音频、振幅...等)的指导,我可以从中提取值以使用 Python 生成图像。

解决方法

这个问题的当前形式非常广泛。 (请注意,音频不是我的专业领域,因此请留意音频/视听/生成领域工作人员的意见。)

您可以采用任何一种方式进行操作:确定您想从音频创建哪种类型的图像,然后确定要使用的音频功能。另一种方法也是有效的:选择您想要探索的音频功能,然后考虑您如何最好或最有趣地以视觉方式呈现它。

图像和图像之间存在区别。 对于单个图像,我能想到的最简单的事情是绘制一个正方形网格,其中正方形的视觉属性(例如正方形大小、填充颜色强度等)映射到当时的振幅。单个图像将可视化整个轨道的振幅模式。即使是这样一个简单的例子,您也可以做出很多选择(采样频率、网格布局(笛卡尔、极坐标)、每个振幅样本的可视化方式(可能有不同的形状、大小、颜色等)。 (类似于 CinemaRedux 的概念,仅对音频更简单) 您可以查看数据可视化领域的灵感。 Information is Beautiful 是一个很好的起点。 Information is Beautiful displaying major music streaming services compared

如果您想生成似乎进入视听领域的图像(例如抽象动画、音频反应运动图形等)。 您的问题最初有标签 Processing tag,我已将其删除,但您可以使用 Processing 的 Python 模式。

在音频可视化方面,我能想到的一个很好的例子是 Robert Hogin 的作品,参见 MagnetosphereAudio-generated landscape prototype。他正在使用频率分析 (FFT) 和一些平滑/数据按摩来放大对可视化有用的元素并抑制一些噪音:

Robert Hodgin Magnetosphere

Robert Hodgin Audio Driven Landscape

(有一些方便的音频库,例如 Minimbeads,但是我假设您有兴趣使用原始 Python,而不是 Jython(这是官方处理 Python 模式使用的) . 他是对FFT analysis for visualisation的回答(虽然是Processing Java,但是原理可以应用到Python)

就我个人而言,到目前为止,我只将 pyaudio 用于基本的音频任务。我假设您可以将它用于幅度分析,但对于其他更复杂的任务,您可能需要额外的东西。 会弹出快速搜索 librosa

如果您想实现的目标不明确,请先尝试原型设计,然后从您能想到的最简单的音频分析和视觉元素开始(例如,随着时间的推移映射到框的幅度)。约束对创造力很有帮助,最小的方法可以转化为更清晰、最小的视觉效果。

然后您可以查看 FFT、MFCC、起始/节拍检测等。

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

(您可能还想从用于视听艺术作品的其他语言中汲取灵感,例如 PureData + GemsMaxMSP + JitterVVVV 等)

,

时域:过零率、均方根能量等。 Frequency Domain:频谱带宽、通量、滚动、平坦度、MFCC 等。另外,tempo,您可以使用 librosa for Python,link : https://librosa.org/doc/latest/index.html 用于从 .wav 文件中提取,它实现了快速傅立叶变换和成帧。然后你可以对整个音频文件中上述特征的向量应用一些统计数据,如均值、标准差。

,

提供额外的探索途径:您有一些工具可以定性探索这个问题(而不是定量使用从音频信号中获得的指标,如最佳答案中所建议的那样)以上)

正如您提到的,目标是从声音中生成独特的抽象图像 - 我建议一个有趣的角度是应用一些机器学习技术并从源音频中得出一些情绪分类预测。

例如,您可以使用 essentia 中的 Tensorflow 模型来预测曲目的情绪,并将您选择的图像与生成的情绪分数相关联。我建议超越此范围并使用 tkinter 图像创建工具来创建与心情的映射。使用笔和纸来制定您的映射策略 - 某些情绪是否更具棱角或圆形?你会选择什么颜色映射,为什么?您有很大的自由来创建这些映射 - 因此,随着复杂性自然生成,从简单开始。

使用一些简单的情绪预测可能对您更有用,因为您对声音的定性经验比音频工程师的定量经验有更多经验.如果这是任务的要求,我认为这可能值得成为您编写的报告的中心,并记录您的映射决策和报告的设计过程。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86
报错1 [root@slave1 data_mocker]# kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topic_db [2023-12-19 18:31:12,770] WARN [Consumer clie
错误1 # 重写数据 hive (edu)> insert overwrite table dwd_trade_cart_add_inc > select data.id, > data.user_id, > data.course_id, > date_format(
错误1 hive (edu)> insert into huanhuan values(1,'haoge'); Query ID = root_20240110071417_fe1517ad-3607-41f4-bdcf-d00b98ac443e Total jobs = 1
报错1:执行到如下就不执行了,没有显示Successfully registered new MBean. [root@slave1 bin]# /usr/local/software/flume-1.9.0/bin/flume-ng agent -n a1 -c /usr/local/softwa
虚拟及没有启动任何服务器查看jps会显示jps,如果没有显示任何东西 [root@slave2 ~]# jps 9647 Jps 解决方案 # 进入/tmp查看 [root@slave1 dfs]# cd /tmp [root@slave1 tmp]# ll 总用量 48 drwxr-xr-x. 2
报错1 hive> show databases; OK Failed with exception java.io.IOException:java.lang.RuntimeException: Error in configuring object Time taken: 0.474 se
报错1 [root@localhost ~]# vim -bash: vim: 未找到命令 安装vim yum -y install vim* # 查看是否安装成功 [root@hadoop01 hadoop]# rpm -qa |grep vim vim-X11-7.4.629-8.el7_9.x
修改hadoop配置 vi /usr/local/software/hadoop-2.9.2/etc/hadoop/yarn-site.xml # 添加如下 <configuration> <property> <name>yarn.nodemanager.res