Python读取WAV文件的几种方式整理
1)scipy
from scipy.io import wavfile
import numpy as npsample_rate, sig = wavfile.read('new.wav')
print("采样率: %d" % sample_rate)
print(sig)if sig.dtype == np.int16:print("PCM16位整形")
if sig.dtype == np.float32:print("PCM32位浮点")
输出如下:
采样率: 16000
[-1466 -733 -733 ... 2199 1832 1466]
PCM16位整形
2)pysoundfile
import soundfile as sfsig, sample_rate = sf.read('new.wav')print("采样率:%d" % sample_rate)
print(sig)
输出如下:
采样率:16000
[-0.04473877 -0.02236938 -0.02236938 ... 0.06710815 0.05590820.04473877]
3)wave
不推荐此库
------------------------------------------------分割线-----------------------------------------------
WAV格可以用16位整形或者32位浮点编码
scipy可以通过输出数据的 dtype 格式来判断
pysoundfile 全部自动转换成float32来输出
Q&A
针对评论区的一些问题
Q1P:发现第一二种方法读取的数据比例相同,但是绝对值不同。(第一种是不准确的,数值等比例缩放了)
A1:第一种方法读取出来的是原始音频信息。wav音频绝大部分以16位整形数据存在文件中。读取出来的就是short型,short为int16类型。
Python读取WAV文件的几种方式整理相关推荐
- 用Python读取CSV文件的5种方式
典型的数据集stocks.csv: 一个股票的数据集,其实就是常见的表格数据.有股票代码,价格,日期,时间,价格变动和成交量.这个数据集其实就是一个表格数据,有自己的头部和身体. 第一招:简单的读取 ...
- 使用Python读取本地文件的4种方式
Python读取文件的4种方式,包括read().read(字节数).readlines().readline()方式. 1.read()方式,一次读取所有,返回str file0 = open(&q ...
- python读取csv文件的几种方式(含实例说明)
一.使用pandas库 举个例子:直接利用read_csv()方法读取,文=文本被转化成了dataframe格式. import pandas as pddf = pd.read_csv('../da ...
- django + python上传文件的两种方式
突然心血来潮,研究了下django+python上传文件的两种方式. 第一:直接采用文件读写的方式上传 1. settings.py文件中设置文件的存放路径和文件读取路径 MEDIA_ROOT = o ...
- java读取XML文件的四种方式
java读取XML文件的四种方式 Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT& ...
- 第四章:数据存储-csv文件处理-读取csv文件的两种方式
直接学习:https://edu.csdn.net/course/play/24756/280718 csv文件处理-读取csv文件的两种方式: # 这种方式读取到的每一条数据是个列表,所以需要通过下 ...
- java读取csv文件的两种方式
java读取csv文件的两种方式 1.CsvReader读取 import com.csvreader.CsvReader; /*** CsvReader 读取* @param filePath* @ ...
- C# 读取XML文件的几种方式
在开发过程中,我们有时会需要保存到本地一些结构化数据或者配置信息,这时就可以选择用xml文件.当然xml的用途也不仅仅是这些. 这一篇来谈一谈关于读取xml文件的几种方式: 我们有以下两个文件,一个是 ...
- python读取wav文件并进行FFT变换
一.wav格式文件 WAV为微软公司(Microsoft)开发的一种声音文件格式,它符合RIFF(Resource Interchange File Format)文件规范,用于保存Windows平台 ...
最新文章
- 不安装Oracle使用cx_Oracle
- 从1到N,AI落地现在进行时
- fiddler https 您的连接不是私密连接 解决方法(不明原理但是照着做成功了,记录下)
- 腾讯、阿里到底有多缺这类程序员?
- 【XAuido2】播放wav和ogg格式音频文件
- 8个月打磨,一份送给程序员的「分布式系统」合集
- KIE-WB / JBPM控制台Ng –配置
- 计算机主机安装系统安装系统安装软件,电脑安装软件时提示安装过程出错系统设置未被修改怎么办...
- 分布式面试 - 分布式服务接口请求的顺序性如何保证?
- python urlopen错误_Python:URLError:urlopen错误[Errno 10060]
- Android proguard-rules.pro 混淆模板
- css 固定列头,表格头部固定和表格列固定
- 在工作中能学到的东西-2
- 编写程序销毁一个单链表
- 使用AD14制作PCB的全部流程以及PCB打样流程介绍
- 使用setBounds()函数设置Java布局
- 给字体添加背景图 HTML+CSS
- 普通话测试app怎么样可以不交钱_和小首一起好好说普通话!
- python交通调查数据处理_Python突破高德API限制爬取交通态势数据+GIS可视化(超详细)...
- 【车辆计数】基于matlab GUI背景差分法道路行驶多车辆检测【含Matlab源码 1911期】
热门文章
- 5月份最全的Java面试题总汇(不再惧怕面试官,成功坐等offer)
- 小队战术游戏研究:武器
- 旋转矩阵表示姿态XYZ坐标轴关系
- 什么是跨域以及为什么会出现跨域以及跨域的解决方案
- 最小费用最大流问题详解
- 如何在Flask中实现可视化?
- spark 序列化错误 集群提交时_spark 面试题(2)
- ndarray如何取元素_访问和删除 ndarray 中的元素及向其中插入元素
- C# EPPlus读写Excel
- zookeeper 可视化日志文件报错:java.lang.NoClassDefFoundError: org/apache/jute/InputArchive