Python3.7 读取 mp3 音频文件生成波形图效果

测试环境为Windows 10 系统,Python3.7,转换需要提前安装pydub、ffmpeg,安装和加入环境变量配置方法自行解决,至于缺少的包直接 pip install xx 搞定。

主要是 mp3 转成 wav 格式的文件,因为 mp3 格式为了减小体积牺牲了音质,转成无损的 wav 格式之后,可以读取到更详细的信息。然后读取 wav 的信息,利用 matlotlib 绘图即可。

mp3towavaform.py 代码:

#coding=utf8

from pydub import AudioSegment
import wave
import io
import numpy as np
import matplotlib.pyplot as plt  #专业绘图库
from PIL import Image
import pylab
from scipy.io import wavfile

# 先从本地获取 mp3 的 bytestring 作为数据样本
filename = "b.mp3"
fp=open(filename, 'rb')
data=fp.read()
fp.close()
# 读取
aud=io.BytesIO(data)
sound=AudioSegment.from_file(aud, format='mp3')
raw_data = sound._data

# 写入到文件
l=len(raw_data)
f = wave.open(filename + ".wav",'wb')
f.setnchannels(1)
f.setsampwidth(2)
f.setframerate(16000)
f.setnframes(l)
f.writeframes(raw_data)
f.close()

# 读取生成波形图
samplerate, data = wavfile.read(filename + ".wav")
times = np.arange(len(data))/float(samplerate)
# print(len(data), samplerate, times)

# 可以以寸为单位自定义宽高 frameon=False 为关闭边框

fig = plt.figure(figsize=(20, 5), facecolor="white")
# plt.tick_params(top='off', bottom='off', left='off', right='off', labelleft='off', labelbottom='on')

ax = fig.add_axes([0, 0, 1, 1])
ax.axis('off')
plt.fill_between(times, data, linewidth = '1', color='green')
plt.xticks([])
plt.yticks([])
plt.savefig(filename + '.png', dpi=100, transparent=False, bbox_inches='tight', edgecolor='w')
#plt.show()

最终就可以生成一个无边框的波形图,matplotlib 的可选参数非常多,至于生成的波形图想要什么边框,颜色,图例,坐标轴信息等,可以查阅 matplotlib 社区文档。

最终效果图:

总结

以上所述是小编给大家介绍的Python3.7 读取 mp3 音频文件生成波形图效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • python基于http下载视频或音频

    一.简介 这里介绍使用python基于http下载视频或音频. 二.关键点 1.断点续传 视频或音频文件一般比较大,所以通过需要断点续传.方式通过在http的header里添加Range字段,指示接下来需要接收文件的位置. 2.判断结束 这里采用读取response的content-length字段,若当前报文长度小于前次报文长度,或者已接收文件等于当前报文长度,则可以认为视频接收完成. 三.示例代码 import os import requests def do_load_media(url

  • python实现定时播放mp3

    程序很简单,主要是 mp3play 模块的应用 import mp3play, time filename = "Should It Matter.mp3" clip = mp3play.load(filename) while 1: if time.localtime().tm_min % 30 == 0: clip.play() print "\nStart to play" time.sleep(clip.seconds()) clip.stop() prin

  • python获取mp3文件信息的方法

    本文实例讲述了python获取mp3文件信息的方法.分享给大家供大家参考.具体如下: 将代码生成.py文件放在目录下运行,可以获取该目录的所有mp3文件的信息,需要使用ID3库 import os, sys from ID3 import * files = os.listdir(os.getcwd()) for f in files: x = os.path.splitext(f) if x[1] == '.mp3': n = x[0].split(' - ') author = n[0] t

  • python使用win32com库播放mp3文件的方法

    本文实例讲述了python使用win32com库播放mp3文件的方法.分享给大家供大家参考.具体实现方法如下: # Python supports COM, if you have the Win32 extensions # check your Python folder eg. D:\Python23\Lib\site-packages\win32com # also http://starship.python.net/crew/mhammond/win32/Downloads.html

  • python音频处理用到的操作的示例代码

    前言 本文主要记录python下音频常用的操作,以.wav格式文件为例.其实网上有很多现成的音频工具包,如果仅仅调用,工具包是更方便的. 更多pyton下的操作可以参考: 用python做科学计算 1.批量读取.wav文件名: 这里用到字符串路径: 1.通常意义字符串(str) 2.原始字符串,以大写R 或 小写r开始,r'',不对特殊字符进行转义 3.Unicode字符串,u'' basestring子类 如: path = './file/n' path = r'.\file\n' path

  • python使用PyGame播放Midi和Mp3文件的方法

    本文实例讲述了python使用PyGame播放Midi和Mp3文件的方法.分享给大家供大家参考.具体实现方法如下: ''' pg_midi_sound101.py play midi music files (also mp3 files) using pygame tested with Python273/331 and pygame192 by vegaseat ''' import pygame as pg def play_music(music_file): ''' stream m

  • Python中音频处理库pydub的使用教程

    前言 pydub是Python中用户处理音频文件的一个库.本文主要介绍了关于Python音频处理库pydub使用的相关内容,分享出来供大家参考学习,下面来看看详细的介绍: 安装: 1.安装pip工具:sudo apt-get install python-pip 2.安装pydub:sudo pip install pydub 3.pydub依赖于ffmpeg,所以还需要安装ffmpeg,由于Ubunbtu14.04官方源移除了ffmpeg,因此通过ppa源安装: sudo apt-add-re

  • Python基于pygame模块播放MP3的方法示例

    本文实例讲述了Python基于pygame模块播放MP3的方法.分享给大家供大家参考,具体如下: 安装pygame(可参考:安装Python和pygame及相应的环境变量配置) pip安装这个whl文件 装完就直接跑代码啦,很短的 import time import pygame file=r'C:\Users\chan\Desktop\Adele - All I Ask.mp3' pygame.mixer.init() print("播放音乐1") track = pygame.m

  • Python3.7 读取 mp3 音频文件生成波形图效果

    测试环境为Windows 10 系统,Python3.7,转换需要提前安装pydub.ffmpeg,安装和加入环境变量配置方法自行解决,至于缺少的包直接 pip install xx 搞定. 主要是 mp3 转成 wav 格式的文件,因为 mp3 格式为了减小体积牺牲了音质,转成无损的 wav 格式之后,可以读取到更详细的信息.然后读取 wav 的信息,利用 matlotlib 绘图即可. mp3towavaform.py 代码: #coding=utf8 from pydub import A

  • python3 写一个WAV音频文件播放器的代码

    环境:ubuntu 16.04 python3.5 pycharm 包 : wave pyaudio sys 上代码:AudioPlayer.py # coding:utf-8 # author:king # brief : 播放wav音频文件 import wave from pyaudio import PyAudio import sys def player(filename): chunk = 1024 wf = wave.open(filename, 'rb') p = PyAudi

  • Python 读取WAV音频文件 画频谱的实例

    Python 读取WAV文件 import wave import struct from scipy import * from pylab import * #读取wav文件,我这儿读了个自己用python写的音阶的wav filename = '1.wav' wavefile = wave.open(filename, 'r') # open for writing #读取wav文件的四种信息的函数.期中numframes表示一共读取了几个frames,在后面要用到滴. nchannels

  • C++读取WAV音频文件的头部数据的实现方法

    C++读取WAV音频文件的头部数据的实现方法 前言: 在这里分享一下自己的心得,希望和大家一起分享技术,如果有什么不足,还请大家指正.写出这篇目的,就是希望大家一起成长,我也相信技术之间没有高低,只有互补,只有分享,才能使彼此更加成长. 实现代码: #include <iostream> #include <string> #include <fstream> using namespace std; using std::string; using std::fstr

  • 使用 FFmpeg 命令拼接mp3音频文件异常问题及解决方法

    使用FFmpeg命令拼接多个mp3格式的音频文件时报错抛出异常,使用命令格式如下: ffmpeg -i 1.mp3 -i 2.mp3 -filter_complex '[0:0] [1:0] concat=n=2:v=0:a=1 [a]' -map [a] out3.mp3 异常错误提示信息: Automatic encoder selection failed for output stream #0:0. Default encoder for format mp3 (codec mp3)

  • vue中添加mp3音频文件的方法

    有的时候我们需要在vue中添加音频文件,但是直接将音频文件放置了assets目录下的时候,会发现并不能正常播放,下面是两种常用的配置方法: 方法一.将音频文件放置在static目录中,然后进行调用,如下所示 <audio class="success" src="/static/audios/do_wrong.mp3"> </audio> 以上这种方式就能够解决这个问题了. 方法二.给项目配置mp3格式的解析器 1.在webpack.base

  • Python实现将mp3音频格式转换为wav格式

    最近收到一个朋友委托的需求,要将MP3的音频格式转换成wav的音频格式.于是,使用python写了这个小工具便于批量进行转换操作. 首先,下载需要导入的python模块包.这里选用清华大学的镜像站进行模块的下载. pip install ffmpy -i https://pypi.tuna.tsinghua.edu.cn/simple/ 然后,导入需要依赖的python模块. from ffmpy import FFmpeg as mpy # 音频格式转换对象 import os # 文件系统操

  • Python3.7 读取音频根据文件名生成脚本的代码

    Warning: 仅适用于文件名即字幕本体,按音频时常平均拆分来生成字幕,其他情况不适合. 以下为读取 mp3 文件夹下的音频,然后按市场,平均来生成字幕,例如文件名 a-pp-le.mp3,字幕也将是 a pp le 三行. make_srt.py 代码 import librosa import os g = os.walk(r"mp3") def calTime(time): sec = int(time) micSec = time - sec timeStr = '' if

  • Python爬取酷狗MP3音频的步骤

    分析问题 音频url 点入某个音乐的播放界面,通过F12-Network,分析数据,可以看到有一个index.php?..返回数据中有一个play_url,打开后正是我们需要的音频. 查看该url的headers,其params参数如下,通过反复不同的几次尝试,得知r.callback.dfid.mid.platid这几项不变,而通过初步的requests尝试,发现最后一项'_'可有可无,改变的只有hash和album_id两项. r: play/getdata callback: jQuery

  • 解析用PHP读写音频文件信息的详解(支持WMA和MP3)

    复制代码 代码如下: <?php// AudioExif.class.php// 用PHP进行音频文件头部信息的读取与写入// 目前只支持 WMA 和 MP3 两种格式, 只支持常用的几个头部信息//// 写入信息支持: Title(名称), Artist(艺术家), Copyright(版权), Description (描述)//               Year(年代),  Genre (流派),   AlbumTitle (专辑标题)// 其中 mp3 和 wma 略有不同, 具体返

随机推荐