为任意音频文件生成缩略图

2024-02-07

我想在最大尺寸为 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(使用前将#替换为@)

为任意音频文件生成缩略图 的相关文章

  • 如何打印前面有一定数量空格的整数?

    C has printf Xd Y 它只打印整数 X 并使其在控制台窗口上占据 Y 空格 例如 printf 3d 10 console 10 printf 5d 5 console 5 我如何在 python 3 中使用它 This pr
  • 函数名称未定义

    我有一段代码 看起来像这样 if name main main def main print hello 但是 当我尝试运行此代码时 出现错误 NameError 名称 main 未定义 我是否没有在函数 def main 的第一行定义名称
  • caffe安装:opencv libpng16.so.16链接问题

    我正在尝试在 Ubuntu 14 04 机器上使用 python 接口编译 caffe 我已经安装了 Anaconda 和 opencvconda install opencv 我还安装了咖啡中规定的所有要求 并更改了注释块makefile
  • 我可以同时打开两个 Tkinter Windows 吗?

    可以同时打开2个窗口吗 import tkinter as Tk import random import math root Tk Tk canvas Tk Canvas root background image Tk PhotoIma
  • NumPy 数组与 SQLite

    我在 Python 中见过的最常见的 SQLite 接口是sqlite3 但是有什么东西可以很好地与 NumPy 数组或 rearray 配合使用吗 我的意思是 它可以识别数据类型 不需要逐行插入 并提取到 NumPy rec 数组中 有点
  • 为什么我会收到 ValueError:系列的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()

    以下代码给出了值错误 major males for row in recent grads if recent grads Men gt recent grads Women major males append recent grads
  • 将列表值转换为 pandas 中的行

    我有数据帧 其中一列具有相同长度的 numpy ndarray 值 df list 0 Out 92 array 0 0 0 0 29273096 0 30691767 0 27531403 我想将这些列表值转换为数据框并从 df iloc
  • cxfreeze virtualenv 中缺少 distutils 模块

    从 python3 2 项目运行 cxfreeze 二进制文件时 我收到以下运行时错误 project dist project distutils init py 13 UserWarning The virtualenv distuti
  • 当元组列表中相同项目的值是字符串时,对它们的值求和

    如果我有这样的元组列表 my list books 5 books 10 ink 20 paper 15 paper 20 paper 15 我怎样才能把列表变成这样 books 15 ink 20 paper 50 即添加同一项目的费用
  • matplotlib vlines 图中未应用 y 轴的最小值

    我正在 matplotlib 中绘制 vlines 图 数据集中的所有 y 值如下 gt 0 我希望 y 轴最底部的刻度能够读取0 但相反 我得到 500 这是代码 usr bin env python import numpy as np
  • 为什么 pip 已经是最新的了却要求我升级?

    我全新安装了 python 3 7 1 64 位 并使用最新的 pyCharm 作为我的 IDE 我在这台机器上没有安装其他 python 我去安装 numpy 并收到以下消息 venv C Users John PycharmProjec
  • 使用 Python-VLC 的 PyInstaller:无属性“media_player_new”错误

    我使用 Python VLC 创建视频播放器 并使用 PyInstaller 在 Windows 10 计算机上生成可执行文件 最初 它给了我错误 Import Error Failed to load dynlib dll libvlc
  • 机器学习的周期性数据(例如度角 -> 179 与 -179 相差 2)

    我使用 Python 进行核密度估计 并使用高斯混合模型对多维数据样本的可能性进行排名 每一条数据都是一个角度 我不确定如何处理机器学习的角度数据的周期性 首先 我通过添加 360 来删除所有负角 因此所有负角都变成了正角 179 变成了
  • 使用具有可变数量索引的 numpy mggrid

    如何将 numpy mgrid 与可变数量的索引一起使用 我在 github 上找不到任何人将其与硬编码值以外的任何内容一起使用的示例 import numpy as np np mgrid 1 10 1 10 this works fin
  • 列表中的特定范围(python)

    我有一个从文本字符串中提取的整数列表 因此当我打印该列表 我称之为test I get 135 2256 1984 3985 1991 1023 1999 我想打印或制作一个仅包含特定范围内的数字的新列表 例如1000 2000之间 我尝试
  • 将二进制数据视为文件对象?

    在此代码片段 由另一个人编写 中 self archive是一个大文件的路径并且raw file是以二进制数据形式读取的文件内容 with open self archive rb as f f seek offset raw file s
  • 带 Qt 的菜单栏/系统托盘应用程序

    我是 Qt PyQt 的新手 我正在尝试制作一个应用程序 其功能将从菜单栏 系统托盘执行 这里展示了一个完美的例子 我找不到关于如何做到这一点的好资源 有人可以建议吗 Thanks 我认为您正在寻找与QMenu and QMainWindo
  • 关闭正在运行代码的 IPython Notebook

    怎么运行的 我在 IPython Notebook 中运行了一些代码 一些迭代工作 我不小心关闭了正在运行的笔记本的浏览器 但回到 IPython 仪表板 我发现这个特定的笔记本尚未关闭 所以如果我再次打开笔记本 我会在它正在执行的代码前面
  • 将二进制数转换为包含每个二进制数的数组

    我试图将二进制值转换为每个 1 0 的列表 但我得到默认的二进制值而不是列表 我有一个字符串 我将每个字符转换为二进制 它给了我一个列表 其中每个字符都有一个字符串 现在我试图将每个字符串拆分为值为 0 1 的整数 但我什么也得不到 if
  • 如何在不同的目录中执行python脚本?

    Solved对于可能觉得这有帮助的人 请参阅下面我的答案 我有两个脚本 a py 和 b py 在我当前的目录 C Users MyName Desktop MAIN 中 我运行 gt python a py 第一个脚本 a py 在我当前

随机推荐

  • Python 2.x 中两个图像的直方图匹配?

    我正在尝试匹配两个图像的直方图 在 MATLAB 中 这可以使用imhistmatch http www mathworks com help images ref imhistmatch html 标准 Python 库中是否有等效的函数
  • 在sql server中存储视频持续时间

    在sql server中存储视频的持续时间信息最合适的类型是什么 有几种选择 http www sqlteam com article working with time spans and durations in sql server
  • Matplotlib 指示 X 轴和 Y 轴上的点

    I often want to highlight a point along a curve using matplotlib to make a plot that looks like 以下代码用于创建绘图 import numpy
  • 如何检查视图是否设置了特定背景

    我正在尝试将视图背景与可绘制对象进行比较 但它对我不起作用 View v1 options findViewById i v1 findViewById R drawable back Drawable d v1 getBackground
  • 从 WordPress 到媒体 wiki 的单点登录

    我正在尝试创建从 Wordpress 到 MediaWiki 的单点登录 我的 WordPress Wordpress 插件 上运行着 WPOauthServer 在我的维基上我有扩展 OAuth2 客户端 https www mediaw
  • /socket.io/socket.io.js 404(未找到)

    我在使用 socket io 时遇到一些问题 我已经查看了我所看到的所有答案 但我找不到任何差异 任何帮助 将不胜感激 我在将代码粘贴到此处时也遇到了格式问题 因此我将其放在了 Pastebin 上 http pastebin com tm
  • 在 ghci 中加载已编译模块时出现“无法加载接口”错误

    你好哈斯克尔社区 我是 Haskell 的新手 当我尝试构建我的第一个更大的项目时遇到了问题 这是问题的最小示例 我正在使用 cabal 来构建 这是一个简单模块的目录结构 FooMod1 FooMod1 cabal Setup hs sr
  • 带有 Angular 的手表工厂变量

    我的单页应用程序有 2 个控制器 第一个用于主菜单 第二个用于视图 他们与这家工厂共享数据 myApp factory MenuFactory function var factory Monitor doneJob Control Rep
  • 自定义波特率

    我正在尝试通过虚拟 COM 端口与硬件设备通信 主机为PC Windows操作系统PC 设备正在以 921600 波特率工作 这段代码的工作原理 DCB dcb dcb BaudRate CBR 115200 SetCommState hP
  • 用空格分割字符串,然后在 ansible/jinja2 中再次连接它

    我正在尝试 清理 Ansible ansible 2 1 1 0 1 fc24 noarch 剧本中变量中的空格 但我首先会split 它然后加入 再次 由于某种原因 该方法给了我以下错误 hosts all remote user roo
  • MATLAB 中的反向谱图 A La Aphex Twin

    我正在尝试将图像视为频谱图 从而在 MATLAB 中将图像转换为音频信号就像 Aphex Twin 的歌曲中那样舔窗者 http www bastwood com aphex php 不幸的是 我很难得到结果 这是我现在所拥有的 funct
  • 将驼峰式字符串转换为 kebab 式字符串的正则表达式

    function hyphenate str var replace str str toLowerCase replace s b g replace console log str return str hyphenate This I
  • ECS Fargate 中的 StoppedReason 被截断

    在 ECS Fargate 中 当任务失败时 有一个 停止原因 字段 它会提供一些有用的日志记录 然而我注意到它在 255 个符号后被截断 下面的屏幕截图 我检查了网络选项卡并跟踪了 http 响应的 JSON 即使在那里它也被截断了 所以
  • iOS 的粒子动画

    我需要粒子动画UIView基于2D的游戏 目前我正在使用一组图像来制作粒子动画 这使得我的应用程序大小增加 有时会导致内存泄漏 有没有办法使用Core Animation制作粒子动画 cocos2d 参见http cocos2d iphon
  • 应用程序的生命周期 - 当应用程序终止并且推送套件有效负载到来时

    应用程序的生命周期是怎样的 当应用程序处于终止状态并且推送套件有效负载到来时 首先 Pushkit 委托方法将起作用 或者 AppDelegate 方法将起作用 有人可以描述在这种情况下调用方法的顺序吗 感谢您的回答 提前致谢 一旦推送套件
  • '无效更新:第 1 部分中的行数无效

    我正在尝试对 tableView 中的聊天重新排序 最近更新的聊天记录应插入IndexPath row 0 section 1 我的理解是 为了删除一行 它必须是可见的 如果该行不可见 则当更新数据源时 我只需tableView inser
  • 如何将 TeamCity 设置为在构建失败时不生成构建工件?

    如何设置 TeamCity 以便在由于单元测试失败而导致构建失败时它不会发布构建工件 我很确定它在 6 0 版本之前是这样工作的 但自从升级到 6 0 后 即使测试失败 它也总是会产生工件 我检查了 如果至少一项测试失败 则构建失败 我们的
  • Powershell:如何将 -whatif 传播到另一个模块中的 cmdlet

    我一直在尝试使用 ShouldProcess 方法编写支持 whatif 的安全代码 以便我的用户在真正运行 cmdlet 之前就知道它应该做什么 然而我遇到了一些困难 如果我使用 whatif 作为参数调用脚本 pscmdlet Shou
  • 基于 Numpy 时间的向量运算,其中前面元素的状态很重要 - for 循环合适吗?

    在状态很重要的情况下执行基于时间的计算时 numpy 数组提供什么功能 换句话说 序列中较早或较晚发生的事情很重要 考虑以下基于时间的向量 TIME np array 0 10 20 30 40 50 60 70 80 90 FLOW np
  • 为任意音频文件生成缩略图

    我想在最大尺寸为 180 180 像素的图像中表示音频文件 我想生成这个图像 以便它以某种方式给出音频文件的表示 将其想象为 SoundCloud 的波形 幅度图 我想知道你们中是否有人有这方面的东西 我一直在搜索一些 主要是 音频可视化