python对wav音频可视化

这篇具有很好参考价值的文章主要介绍了python对wav音频可视化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

本文主要是使用代码实现音频文件(wav)的多种可视化。
1.信号
2.傅里叶变换
3.Mel(梅尔)谱图
4.log_Mel谱图


提示:以下是本篇文章正文内容,下面案例可供参考

一、导入包以及音频文件

为了便于展示,我将信号和傅里叶变换使用plt组合在一起进行展示。

import matplotlib.pyplot as plt
import librosa
import librosa.display
import numpy as np
import sys


# 读取音频wav文件
audio_path = r"D:\PycharmProjects\testwav\test01.wav"
y, sr = librosa.load(audio_path, sr=None, mono=True)
"""
:param
    path	音频路径
    sr	采样率(默认22050,但是有重采样的功能)
    mono	设置为true是单通道,否则是双通道
    offset	音频读取的时间
    duration	获取音频的时长

:returns
    y : 音频的信号值,类型是ndarray
    sr : 采样率
"""
###############################################################################

结果展示:

二、信号+傅里叶变换

为了便于展示,我将信号和傅里叶变换使用plt组合在一起进行展示。

import matplotlib.pyplot as plt
import librosa
import librosa.display
import numpy as np
import sys


# 读取音频wav文件
audio_path = r"D:\PycharmProjects\testwav\test01.wav"
y, sr = librosa.load(audio_path, sr=None, mono=True)
"""
:param
    path	音频路径
    sr	采样率(默认22050,但是有重采样的功能)
    mono	设置为true是单通道,否则是双通道
    offset	音频读取的时间
    duration	获取音频的时长

:returns
    y : 音频的信号值,类型是ndarray
    sr : 采样率
"""
###############################################################################

###############################################################################
# plt画图
f, ((ax11, ax12)) = plt.subplots(1, 2, sharex=False, sharey=False)
###################################################################
# 01 左,信号
ax11.set_title('Signal')
ax11.set_xlabel('Time (samples)')
ax11.set_ylabel('Amplitude')
ax11.plot(y)
###################################################################
# 02 右,傅里叶变换
n_fft = 2048
ft = np.abs(librosa.stft(y[:n_fft], hop_length=n_fft+1))
ax12.set_title('Spectrum')
ax12.set_xlabel('Frequency Bin')
# ax12.set_ylabel('Amplitude')
ax12.plot(ft)
################################################################################

plt.show()

结果展示:
python对wav音频可视化


三、Mel谱图

代码如下(示例):

import matplotlib.pyplot as plt
import librosa
import librosa.display
import numpy as np
import sys


# 读取音频wav文件
audio_path = r"D:\PycharmProjects\testwav\test01.wav"
y, sr = librosa.load(audio_path, sr=None, mono=True)
"""
:param
    path	音频路径
    sr	采样率(默认22050,但是有重采样的功能)
    mono	设置为true是单通道,否则是双通道
    offset	音频读取的时间
    duration	获取音频的时长

:returns
    y : 音频的信号值,类型是ndarray
    sr : 采样率
"""
###############################################################################

################################################################################
# 03 使用librosa获取mel谱图
n_mels = 64
n_frames = 5
n_fft = 1024
hop_length = 512
power = 2.0

mel_spectrogram = librosa.feature.melspectrogram(y=y,
                                                 sr=sr,
                                                 n_fft=n_fft,
                                                 hop_length=hop_length,
                                                 n_mels=n_mels,
                                                 power=power)
librosa.display.specshow(librosa.power_to_db(mel_spectrogram, ref=np.max),
                         y_axis='mel', fmax=8000, x_axis='time')
plt.colorbar(format='%+2.0f dB')
##################################################################################

plt.show()

结果展示:
python对wav音频可视化


四、Log_Mel谱图

代码如下(示例):

import matplotlib.pyplot as plt
import librosa
import librosa.display
import numpy as np
import sys


# 读取音频wav文件
audio_path = r"D:\PycharmProjects\testwav\test01.wav"
y, sr = librosa.load(audio_path, sr=None, mono=True)
"""
:param
    path	音频路径
    sr	采样率(默认22050,但是有重采样的功能)
    mono	设置为true是单通道,否则是双通道
    offset	音频读取的时间
    duration	获取音频的时长

:returns
    y : 音频的信号值,类型是ndarray
    sr : 采样率
"""
###############################################################################

################################################################################
# 03 使用librosa获取mel谱图
n_mels = 64
n_frames = 5
n_fft = 1024
hop_length = 512
power = 2.0

mel_spectrogram = librosa.feature.melspectrogram(y=y,
                                                 sr=sr,
                                                 n_fft=n_fft,
                                                 hop_length=hop_length,
                                                 n_mels=n_mels,
                                                 power=power)

# librosa.display.specshow(librosa.power_to_db(mel_spectrogram, ref=np.max),
#                          y_axis='mel', fmax=8000, x_axis='time')
# plt.colorbar(format='%+2.0f dB')
##################################################################################

# 04 将mel谱图转换为log mel谱图
log_mel_spectrogram = 20.0 / power * np.log10(np.maximum(mel_spectrogram, sys.float_info.epsilon))
librosa.display.specshow(librosa.power_to_db(log_mel_spectrogram, ref=np.max),
                         y_axis='mel', fmax=8000, x_axis='time')
# plt.colorbar(format='%+2.0f dB')
##################################################################################

plt.show()

结果展示:
python对wav音频可视化


总结

本文主要是将wav文件进行可视化,并没有对原理进行说明。文章来源地址https://www.toymoban.com/news/detail-403787.html

python对wav音频可视化

到了这里,关于python对wav音频可视化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 记录--关于前端的音频可视化-Web Audio

    记录--关于前端的音频可视化-Web Audio

    最近听音乐的时候,看到各种动效,突然好奇这些音频数据是如何获取并展示出来的,于是花了几天功夫去研究相关的内容,这里只是给大家一些代码实例,具体要看懂、看明白,还是建议大家大家结合相关API文档来阅读这篇文章。 参考资料地址:Web Audio API - Web API 接口参考

    2024年02月16日
    浏览(13)
  • Pixi + Tone 实现简单midi音频可视化

    Pixi + Tone 实现简单midi音频可视化

    Pixi.js 是一个前端图形渲染库,使用精灵技术绘制高性能的图形。 Tone.js是一个前端音频框架,对web audio api进行了封装,可以快速创建音频样本、音频效果、进行音频分析和音频播放。 @tonejs/midi是tonejs的一个插件,可以讲midi文件转化为Tone.js可以解析的json格式。 首先需要讲

    2024年02月16日
    浏览(13)
  • HTML5+CSS3+JS小实例:音频可视化

    HTML5+CSS3+JS小实例:音频可视化

    实例:音频可视化 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 【CSS】

    2024年01月18日
    浏览(9)
  • html+css+js本地音乐播放器,实现可视化音频频谱

    html+css+js本地音乐播放器,实现可视化音频频谱

    html+css+js本地音乐播放器,实现可视化音频频谱 之前用swing写了个本地音乐播放器(如下图),但是效果一言难尽,界面丑,功能bug也多,唉 所以后面又重新用html写了个,界面样式和功能方面,比swing写的好看、完善多了。 导入音乐(已完成) 展示列表(已完成) 列表双击

    2024年02月09日
    浏览(13)
  • Qt数据可视化示例01-显示实时音频数据的简单应用程序

    Qt数据可视化示例01-显示实时音频数据的简单应用程序

    audiolevels 示例显示实时音频数据的简单应用程序。示例从麦克风读取音频电平, 并在条形图中显示这些电平。为了增加用于演示目的的负载,并使图形更漂亮, 使用稍作修改的数据来填充多行。 作为Qt 数据可视化的第一个示例,我们忽略数据源的获取,主要关注数据的呈现

    2024年01月18日
    浏览(11)
  • 前端开发攻略---根据音频节奏实时绘制不断变化的波形图。深入剖析如何通过代码实现音频数据的可视化。

    前端开发攻略---根据音频节奏实时绘制不断变化的波形图。深入剖析如何通过代码实现音频数据的可视化。

    逐行解析 JavaScript 代码块: 这几行代码首先获取了  audio  和  canvas  元素的引用,并使用  getContext(\\\'2d\\\')  方法获取了 Canvas 2D 上下文对象,以便后续在画布上进行绘图操作。 initCvs  函数用于初始化画布的尺寸。它将画布的宽度设置为窗口宽度的倍数,高度设置为窗口高度

    2024年04月15日
    浏览(20)
  • 可视化监控云平台/智能监控平台EasyCVR国标设备开启音频没有声音是什么原因?

    可视化监控云平台/智能监控平台EasyCVR国标设备开启音频没有声音是什么原因?

    视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。GB28181视频平台EasyCVR拓展性强,视频能力丰富,具体可实现视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警

    2024年02月04日
    浏览(37)
  • 【html本地工具】html+css+js本地音乐播放器,实现可视化音频频谱

    【html本地工具】html+css+js本地音乐播放器,实现可视化音频频谱

    html+css+js本地音乐播放器,实现可视化音频频谱 之前用swing写了个本地音乐播放器(如下图),但是效果一言难尽,界面丑,功能bug也多,唉 所以后面又重新用html写了个,界面样式和功能方面,比swing写的好看、完善多了。 导入音乐(已完成) 展示列表(已完成) 列表双击

    2024年02月14日
    浏览(25)
  • GPT4 Advanced data analysis Code Interpreter 做行业数据分析、可视化处理图像、视频、音频等

    GPT4 Advanced data analysis Code Interpreter 做行业数据分析、可视化处理图像、视频、音频等

    ChatGPT + Jungle scout 案例:跨境电商如何用ChatGFT选品 ChatGPT+Jungle scout 素材和资料来自: Jungle ScoutEM, Michael Soltis 和 文韬武韬AIGC Date Range Last 90 days Download CSV 把CSV文件打包zip,点击加号上传 Prompt: 请帮我解压这个zip文件,里面有很多csv文件,请你执行以下操作: 1、把每一个文件

    2024年02月07日
    浏览(10)
  • python三维建模可视化与交互,python三维建模可视化

    python三维建模可视化与交互,python三维建模可视化

    本篇文章给大家谈谈python三维建模可视化与交互,以及python三维建模可视化,希望对各位有所帮助,不要忘了收藏本站喔。 一、 内容介绍 人类是那么得有创造力,我们创造、发明、设计、生产了一切大自然没有直接给予我们的东西使我们的生活变得更轻松更美好。在过去,

    2024年01月23日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包