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 音频文件生成波形图效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
相关推荐
-
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音频处理用到的操作的示例代码
前言 本文主要记录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模块播放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
-
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基于http下载视频或音频
一.简介 这里介绍使用python基于http下载视频或音频. 二.关键点 1.断点续传 视频或音频文件一般比较大,所以通过需要断点续传.方式通过在http的header里添加Range字段,指示接下来需要接收文件的位置. 2.判断结束 这里采用读取response的content-length字段,若当前报文长度小于前次报文长度,或者已接收文件等于当前报文长度,则可以认为视频接收完成. 三.示例代码 import os import requests def do_load_media(url
-
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播放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使用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
-
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 略有不同, 具体返
随机推荐
- node.js插件nodeclipse安装图文教程
- vue中使用localstorage来存储页面信息
- BootStrap selectpicker后台动态绑定数据
- 如何传值在2个页面之间 要求不刷新父页面,并且不能用Querystring传值
- 实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
- 深入理解Python中装饰器的用法
- python基础入门学习笔记(Python环境搭建)
- GO语言映射(Map)用法分析
- C#自动创建数据库实现代码
- Android ViewPager加载图片效果
- Mysql中校对集utf8_unicode_ci与utf8_general_ci的区别说明
- java双向循环链表的实现代码
- Ajax in action 英文版配书源码 下载
- 2014年全年公休假国务院放假安排时间表(5.1劳动节10.1国庆节中秋节放假安排时间表)
- 本机每个盘都添加上卷标的命令
- 一次性压缩Sqlserver2005中所有库日志的存储过程
- 用C++实现一个链式栈的实例代码
- java实现gif动画效果(java显示动态图片)
- 禁用Tab键JS代码兼容Firefox和IE
- Python封装成可带参数的EXE安装包实例