首页
学习
活动
专区
工具
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:创建属于rootcanvas画布,并将f置于画布 canvas = FigureCanvasTkAgg...) # 随窗口大小调整调整 # matplotlib导航工具栏显示上来(默认是不会显示) toolbar = NavigationToolbar2Tk(canvas, root) toolbar.update...=1) #把matplotlib绘制图形导航工具栏显示tkinter窗口上 toolbar =NavigationToolbar2Tk(self.canvas,

3.9K31

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

特征提取 绘图显示 三、常用功能代码实现 读取音频 提取特征 提取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.4K30
  • 面试官让你使用 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”设置显示了模型测试准确性。

    59031

    花椒 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)与帧之间通常有很强关连性,这样关连性即为时间冗余信息。

    67840

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

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

    21010

    Matplotlib使用(1)

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

    2K30

    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 显示内容:

    12510

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

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

    4.3K10

    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

    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,如果是烧录多个文件的话

    14310

    matplotlib - matplotlib 教程

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

    4.6K31

    matplotlibtkinter 集成小案例 (上篇)

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

    2.9K11

    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
    领券