首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在matplotlib图的tkinter GUI显示中绘制x轴上的音频时间,而不是音频采样率

,可以通过以下步骤实现:

  1. 首先,需要使用音频处理库(如librosa、pydub等)加载音频文件,并获取音频的采样率和时长。
  2. 根据音频的采样率和时长,计算出音频的时间轴。时间轴可以通过将音频的采样点数除以采样率得到。
  3. 在matplotlib中创建一个图形窗口,并在窗口中添加一个绘图区域。
  4. 使用matplotlib的plot函数绘制音频数据。将音频数据作为y轴的值,将时间轴作为x轴的值。
  5. 设置x轴的标签为时间,并根据需要进行格式化,如将时间显示为分钟和秒。
  6. 在tkinter GUI中显示matplotlib的图形窗口。

以下是一个示例代码,演示如何在tkinter GUI中绘制音频时间轴:

代码语言:txt
复制
import tkinter as tk
import matplotlib.pyplot as plt
import librosa

def plot_audio_time(audio_file):
    # 加载音频文件
    audio, sr = librosa.load(audio_file, sr=None)
    
    # 计算音频的时间轴
    duration = len(audio) / sr
    time_axis = range(len(audio)) / sr
    
    # 创建图形窗口和绘图区域
    fig, ax = plt.subplots()
    
    # 绘制音频数据
    ax.plot(time_axis, audio)
    
    # 设置x轴标签为时间
    ax.set_xlabel('Time (s)')
    
    # 格式化x轴标签,显示为分钟和秒
    ax.xaxis.set_major_formatter(plt.FuncFormatter(lambda x, _: '{:02d}:{:02d}'.format(int(x//60), int(x%60))))
    
    # 显示图形窗口
    plt.show()

# 创建tkinter GUI窗口
window = tk.Tk()

# 添加一个按钮,点击按钮时绘制音频时间轴
button = tk.Button(window, text='Plot Audio Time', command=lambda: plot_audio_time('audio.wav'))
button.pack()

# 运行tkinter GUI主循环
window.mainloop()

在上述示例代码中,我们使用了librosa库来加载音频文件,并使用matplotlib来绘制音频时间轴。通过设置x轴的标签为时间,并格式化x轴标签,我们可以在图形中显示音频的时间轴。你可以根据需要修改代码中的音频文件路径和格式化方式。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

将Matplotlib绘制的图显示到Tkinter中(详细教程)

将Matplotlib绘制的图显示到Tkinter中 tkinter是python的一个GUI库,有时候PC端UI界面上需要显示复杂的图时候就会用到这点。...tkinter.Tk() # 创建tkinter的主窗口 root.title("在tkinter中使用matplotlib") f = Figure(figsize=(5, 4), dpi=100...* x) # 在前面得到的子图上绘图 a.plot(x, y) # 将绘制的图形显示到tkinter:创建属于root的canvas画布,并将图f置于画布上 canvas = FigureCanvasTkAgg...) # 随窗口大小调整而调整 # matplotlib的导航工具栏显示上来(默认是不会显示它的) toolbar = NavigationToolbar2Tk(canvas, root) toolbar.update...=1) #把matplotlib绘制图形的导航工具栏显示到tkinter窗口上 toolbar =NavigationToolbar2Tk(self.canvas,

4K31

人工智能下的音频还能这样玩!!!!

特征提取 绘图显示 三、常用功能代码实现 读取音频 提取特征 提取Log-Mel Spectrogram 特征 提取MFCC特征 绘图显示 绘制声音波形 绘制频谱图 --- 序言 Librosa是一个用于音频...,由于CNN在处理图像上展现了强大的能力,使得音频信号的频谱图特征的使用愈加广泛,甚至比MFCC使用的更多。...,128表示Mel频率的维度(频域),100为时间帧长度(时域),所以Log-Mel Spectrogram特征是音频信号的时频表示特征。...--- 4.绘图显示 4.1绘制声音波形 Librosa有显示声音波形函数waveplot( ): # # 绘图显示 import librosa.display import matplotlib.pyplot...', y_axis='mel') plt.title('sample wavform') plt.show() [format,png] --- 将声音波形和频谱图绘制在一张图表中: # # 将声音波形和频谱图绘制在一张图表中

1.5K30
  • 面试官让你使用 scipy.fft 进行Fourier Transform,你会吗

    这两个术语指的是查看信号的两种不同方式,要么是其分量频率,要么是随时间变化的信息。 在时域中,信号是幅度(y 轴)随时间(x 轴)变化的波。...横轴表示时间,纵轴表示幅度。 在频域中,信号表示为一系列频率(x 轴),每个频率都有相关的功率(y 轴)。...定义函数后,您可以使用它生成一个持续 5 秒的 2 赫兹正弦波,并使用 Matplotlib 绘制它。您的正弦波图应如下所示: [8go94nxa7m.jpg?...fftfreq()计算 的输出中每个bin中心的频率fft()。没有这个,就无法在频谱上绘制 x 轴。 甲箱是已经被分组,就像在一个值的范围的直方图。...避免过滤陷阱 上面的示例更多用于教育目的,而不是实际使用。在真实世界的信号(例如一首音乐)上复制该过程可能会引入比消除更多的嗡嗡声。

    1.2K30

    掌握音视频已是一种趋势,Android音视频基础解析帮大家破除学习“高门槛”

    如上图所示就是一个采样的过程,将模拟音频在连续的时间域上,切割成不连续的时间域的信号过程,即是对x轴的操作。那么有x轴就有y轴,实际上对y轴的操作就是量化。 量化 量化是什么?...就是要将上面分割的信息用具体的数据来进行表示,用形象的话来说,就是给每个x时间轴,对应其y轴的变化数值。...32比特 0~2^32 -1 0~4294967295 0~192 由上可知,一般我们使用16比特,因为其有0~65535中变化,而且刚好符合人对声音大小的范围,而8比特处理音频,只有0~255...png格式,而大图采用jpeg的原因,小图经过无损压缩放大之后不让其太过模糊,大图保证其能够清晰即可。...时间上的冗余信息(temporal redundancy)- 在视频数据中,相邻的帧(frame)与帧之间通常有很强的关连性,这样的关连性即为时间上的冗余信息。

    1K00

    NumPy 秘籍中文第二版:五、音频和图像处理

    randint() 该函数与random_integers()函数相同,除了它使用半开间隔而不是关闭间隔。 clip() 该函数在给定最小值和最大值的情况下裁剪数组的值。...这可以在复平面上绘制,水平轴显示实数值,垂直轴显示虚数值。 我们将使用所谓的逃逸时间算法绘制分形。 该算法以大约 2 个单位的距离扫描原点周围小区域中的点。...= np.tile(data, 3) 使用 matplotlib 绘制音频数据: plt.title("Repeated") plt.plot(repeated) 原始声音数据和重复数据图如下所示:...操作步骤 首先初始化随机值,然后生成正弦波,编写旋律,最后使用 matplotlib 绘制生成的音频数据: 初始化随机值为: 200-2000之间的幅度 0.01-0.2的持续时间 使用已经提到的公式的频率...另见 concatenate()函数的文档 设计音频过滤器 我记得在模拟电子课上学习了所有类型的过滤器。 然后,我们实际上构造了这些过滤器。 可以想象,用软件制作过滤器要比用硬件制作过滤器容易得多。

    1.2K10

    手机侧信道窃听攻击

    通过在后台运行的AccDataRec APP同时收集加速度计读数。记录加速度信号后,计算每个轴的连续小波变换并生成相应的比例图,这些比例图显示了频率分量的大小如何随时间变化。...可以观察到,加速度计的音频响应随轴而显着变化,并且随着音量的增大而增加。沿x轴,y轴和z轴的传感单元能够分别捕获高于60%,60%和20%音量水平的语音信号。...这样的表示显示了信号的频率分量以及它们的强度如何随时间变化。在基于常规音频信号的语音识别任务中,通常会在Mel刻度上进一步处理频谱图,以计算梅尔频率倒谱系数倒谱系数(MFCC)。...由于频谱图的稀疏性,不稳定的问题可能是由训练小批量中的稀疏异常值引起的。为了解决这个问题,使用重构图像和目标图像之间的L1距离作为训练损失,而不是MSE损失。...与桌面设置相比,手持设置中的加速度计将在x轴和y轴上显示出较低的SNR。因此,应将更多注意力(权重)分配给z轴。在下表中,在“Table”和“Hand-hold”设置中显示了模型的测试准确性。

    63531

    花椒 Web 端多路音频流播放器研发

    并实现 移动端页面多路音频流同时播放 获取多路音频的可视化数据 实现以上 2 个需求在 PC 端不是难点,有成熟的技术方案。最简单的多个 标签 + HLS 即可实现。...如果想要在播放一个音频流的同时播放另一个音频流,那么就会从容器中删除前一个音频流,新的音频流将会在前一个音频流的位置上被实例化。...时域(time domain)是描述数学函数或物理信号对时间的关系。体现的是一段音频的音量变化,它的 X 轴单位是时间。...频域(frequency domain)是指在对函数或信号进行分析时,分析其和频率有关部分,而不是和时间有关的部分。体现的是在某一固定时刻各个频率的音量高低,它的 X 轴单位是频率。...audioArray,我们只需要按照一定规则把数组数据绘制在 canvas 上。

    3.3K20

    Android音视频开发:踩一踩“门槛”

    音频采样 如上图所示就是一个采样的过程,将模拟音频在连续的时间域上,切割成不连续的时间域的信号过程,即是对x轴的操作。那么有x轴就有y轴,实际上对y轴的操作就是量化。 量化 量化是什么?...就是要将上面分割的信息用具体的数据来进行表示,用形象的话来说,就是给每个x时间轴,对应其y轴的变化数值。...32比特 0~2^32 -1 0~4294967295 0~192 由上可知,一般我们使用16比特,因为其有0~65535中变化,而且刚好符合人对声音大小的范围,而8比特处理音频,只有0~255...png格式,而大图采用jpeg的原因,小图经过无损压缩放大之后不让其太过模糊,大图保证其能够清晰即可。...时间上的冗余信息(temporal redundancy)- 在视频数据中,相邻的帧(frame)与帧之间通常有很强的关连性,这样的关连性即为时间上的冗余信息。

    68840

    Matplotlib使用(1)

    fig, ax = plt.subplots() ax.plot([1, 2, 3, 4], [1, 4, 2, 3]) Matplotlib在Figures(窗口)上绘制数据图,每个数据可以包含一个或多个...使用轴创建图形的最简单方法是使用,pyplot.subplots然后我们可以 Axes.plot在轴上绘制一些数据: ---- matlab中不用画轴,就像这样 Matlab m里面也有相似得用法, 接下来看看图形要素...绘制图形后,所有艺术家都被绘制到画布上。大多数艺术家都被绑在斧头上。这样的艺术家不能被多个轴共享,也不能从一个轴移动到另一个轴。...Matplotlib提供了几种方法,以稍微改变绘制外观(达到可设置的公差)为代价,大大减少了渲染时间。减少渲染时间的可用方法取决于所创建绘图的类型。...该 path.simplify_threshold参数控制简化的线段数量。阈值越高,渲染越快。 以下脚本将首先显示数据而不进行任何简化,然后以简化方式显示相同的数据。

    2K30

    我用Python做了一个假唱鉴定器

    当然作为一个编程博主,这不是我们今天的重点。 这次事情最开始是因为有博主拿专业的音频软件去分析了一下五月天演唱会上的纯人声音频。 B站 麦田农夫 那就有人问了,这软件分析一下就能看出是不是假唱了吗?...可以选择电脑上的歌曲,自动将其伴奏和人声分离开,然后将人声部分的频率,也就是音高,以散点图的形式绘制出来,并可以调整显示的位置和缩放大小。 图表上可以同时显示两首歌的对比,并通过设定偏移量来进行对齐。...再通过可视化图表库matplotlib,将序列绘制成散点图。 拿这首歌的原版进行对比。...所以都这种程度了还去抠字眼到底是不是假唱其实也没啥意思,就看大家自己怎么想了。 程序的界面部分,用的还是tkinter库,并且仍然是靠AI完成了大部分的代码框架。...为了能调节展示的位置和缩放大小,还需要做一些额外的计算处理,并关联在GUI的控件事件上。这部分精细活儿AI不是很给力,还得靠自己动手解决。 程序已经开源,需要的请自行获取。

    23810

    GNU Radio创建qt time plot python OOT块

    前言 官方提供的绘制时域波形的 block 名字叫做 QT GUI Time Sink,其底层实现是用 C++ 写的,但是我发现如果要是对收到的信号做一些其他的显示,例如在实现雷达测距的时候将 x 轴改为距离轴...,y 轴改为主副瓣比,那么直接对 QT GUI Time Sink 这个模块做一些修改还是比较难的,因此就想通过 python OOT 实现一个简单的绘制时域波形的 block,并且这个 block 方便后面做自定义修改...一、创建自定义的 OOT 块 1、安装相应依赖 Matplotlib:一个数据可视化库,提供了一个类似于 MATLAB 的绘图框架。...gr-modtool 创建自定义的 OOT块 ①、在 gr-customModule 目录下添加一个名为 Zadoff-Chu 的新块: gr_modtool add my_time_plot 将显示块的类型...sudo ldconfig 二、测试 1、grc 图 这里用一个 10Hz 的信号源做测试,采样率设置大一些,设置成10 kHz 2、运行结果 官方 QT GUI Time Sink 显示内容:

    17210

    Python Tkinter实战——开发音频播放器

    的细节问题 Tkinter 的各小控件在实际使用中,都会存在一些细节问题,这些细节问题不是在初识小控件的时候能弄明白的,需要有一定的实战经验,并结合具体的项目才能体会出来。...设置窗体透明度 这部分描述,在tkinter文档中并未描述,我们需要查看tcl/Tk的 相关文档https://www.tcl.tk/man/tcl8.7/TkCmd/wm.htm ,关于窗口feature...在Seekbar中,我们监听了鼠标按下和移动事件,关于事件的修饰符,可以查看tcl/Tk的官方文档,内容比tkinter要全面很多,相关部分文档https://www.tcl.tk/man/tcl8.7...关于VLC的安装与详细使用,请阅览本人博客 传送门https://blog.csdn.net/yingshukun/article/details/89527561 Tkinter 与异步编程 关于在Tkinter...要改善该问题,可以考虑将音频播放移入后台线程中运行,而不阻塞前台的GUI 本地音频文件格式筛选,不要将非音频文件导入 响应快捷键,包括控制栏上的播放、暂停、快进等 界面美化 完整项目源码 传送门

    4.2K40

    Python高阶项目(转发请告知)

    在下面的示例中,我将显示正弦方法,以谐波的方式为最初的15个间隔产生正弦调谐: 使用Python的数字时钟 让我们看看如何使用Python创建数字时钟GUI应用程序。...Tkinter是用于创建GUI应用程序的库。在这里,我们不需要使用太多功能,只需要使用Tkinter的askdirectory()方法和,在下面的代码部分中看到的方法即可。...图像转换器 要建立与Python的图像转换系统,图形用户界面,我将使用Python中的Tkinter库,是生成GUI应用程序最有名的Python框架。...解码功能将主要做三件事,可以列出如下: •识别并解码要显示在相机上的条形码/ QR码。•添加了以文本形式存储在识别的条形码/ QR码上的信息。•最后,将存储的信息导出为文本文档。...PDF文件提取的文本 3D图形 最基本的三维图是由(x,y,z)三元组集合创建的线形图或散点图。

    4.3K10

    DIY木鱼:敲电子木鱼,品赛博人生

    我这里准备了一张大木鱼图还有一张小木鱼图。添加一个文本框,先固定好位置,在右侧的文本输入“功德 +1”字样,注意字体选择 simsun 才可以显示中文。据此,所需要的组件已经添加成功了。...x 坐标伟 206,y 坐标为 25,动画效果选择 linear 线性,持续时间为 50ms,也就是整个移动过程的持续时间。...5.其次在 Animation 下勾选移动,将我们按下图片后的文本框移动回原来的位置,也就是一开始的坐标位置,x 坐标 206,y 坐标 45,动画选择 linear 线性,持续时间 0 秒也就是瞬间移动...驱动的原理是 I2S 驱动 8388 芯片,然后将音频文件烧录至 flash 中,然后再接口中通过 dma 输出音频文件。这里我已经找到一个音频文件,是 wav 的格式,采样率是 44100。...首先将音频文件放进去,然后修改 flash_prog_cfg.ini 将音频文件烧录进 flash 中,可以参考我截图中方法,起始地址可以参考 flash 教学博文中,这里我选择 0x230000,如果是烧录多个文件的话

    19410

    matplotlib - matplotlib 教程

    Artist对象 基本上你在图上看到的一切都是艺术家(Artist)对象(甚至是图,轴和轴对象)。这包括Text对象,Line2D对象,集合对象,Patch对象……(现在你明白了)。...那么,为什么所有都是额外的类型而不是MATLAB样式(依赖于全局状态和平面名称空间)呢?...允许但本身并不需要或确保绘制到屏幕上。是否以及何时绘制到屏幕,以及在屏幕上绘制绘图后是否继续脚本或shell会话取决于调用的函数和方法,以及确定matplotlib是否处于“交互模式”的状态变量”。...这有什么用,假设您需要一个脚本,将文件内容绘制到屏幕上。您想查看该图,然后结束脚本。如果没有一些阻塞命令(如show()),脚本会闪现图像,然后立即结束,屏幕上不显示任何内容。...第一个地块关闭后,将显示第二个地块。 摘要 在交互模式下,pyplot功能会自动绘制到屏幕上。

    4.6K31

    matplotlib 与 tkinter 集成小案例 (上篇)

    tkinter模块设计精简,满足一些小型GUI设计,首先创建一个窗体对象,添加基本组件,如Label,Button,Radiobutton等,再pack或grid组件到父容器中。...(长 * 宽) # 这里的乘是小x window.geometry('1200x600') # 第4步,在图形界面上创建一个标签label用以显示并放置 # 定义一个var用来将radiobutton...') 然后,在左侧frame中创建柱状图,右侧frame中创建饼状图。...下面就是最重要的tkinter和matplotlib集成部分,matplotlib提供FigureCanvasTkAgg对象,只需三行代码,实现图形绘制在tkinter的Canvas中: canvas_l...最终实现的展示效果如下: ? 交互部分,选中Radiobutton中bar选项后,仅显示柱状图: ? 选中pie选项时,仅显示饼状图: ? 当选中both选项后,恢复全部显示。

    2.1K30

    制作Web Gui也太简单了!

    前言 之前小编用Python做GUI界面,首选就是Tkinter、PyQt5 。...它有一个名为“ label ”的变量,它告诉用户它期望的输入类型。每当用户在输入框中输入内容时,ui.label() 的 .set_text() 函数就会激活并在屏幕上显示键入的文本。...• number():此函数的工作方式与 input() 函数类似,唯一的区别是此函数接受数字而不是文本 效果展示: 4、数据元素和图表 通过 NiceGui显示表格数据。...使用 NiceGUI 在屏幕上显示图形 使用 NiceGUI 中的 pyplot() 函数,它在 UI 上显示 matplotlib 图形。...我们甚至将图的大小传递给函数。 现在,在with下面,我们编写通过matplotlib绘制图形的代码。这里我们编写了一个简单的图,其中x轴包含从0到10000的值,步长为10,y轴包含它们的对数值。

    3.4K11

    librosa怎么安装_librosa保存音频

    读取音频 提取特征 提取Log-Mel Spectrogram 特征 提取MFCC特征 绘图显示 绘制声音波形 绘制频谱图 ---- 序言 Librosa是一个用于音频、音乐分析、处理的python工具包...,由于CNN在处理图像上展现了强大的能力,使得音频信号的频谱图特征的使用愈加广泛,甚至比MFCC使用的更多。...,128表示Mel频率的维度(频域),194为时间帧长度(时域),所以Log-Mel Spectrogram特征是音频信号的时频表示特征。...Librosa还有很多其他音频特征的提取方法,比如CQT特征、chroma特征等,在第二部分“librosa常用功能”给了详细的介绍。...='time', y_axis='mel') >>> plt.title('Beat wavform') >>> plt.show() 输出结果为: 将声音波形和频谱图绘制在一张图表中: >>> import

    1.7K40
    领券