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文件的几种方式整理相关推荐

  1. 用Python读取CSV文件的5种方式

    典型的数据集stocks.csv: 一个股票的数据集,其实就是常见的表格数据.有股票代码,价格,日期,时间,价格变动和成交量.这个数据集其实就是一个表格数据,有自己的头部和身体. 第一招:简单的读取 ...

  2. 使用Python读取本地文件的4种方式

    Python读取文件的4种方式,包括read().read(字节数).readlines().readline()方式. 1.read()方式,一次读取所有,返回str file0 = open(&q ...

  3. python读取csv文件的几种方式(含实例说明)

    一.使用pandas库 举个例子:直接利用read_csv()方法读取,文=文本被转化成了dataframe格式. import pandas as pddf = pd.read_csv('../da ...

  4. django + python上传文件的两种方式

    突然心血来潮,研究了下django+python上传文件的两种方式. 第一:直接采用文件读写的方式上传 1. settings.py文件中设置文件的存放路径和文件读取路径 MEDIA_ROOT = o ...

  5. java读取XML文件的四种方式

    java读取XML文件的四种方式 Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT& ...

  6. 第四章:数据存储-csv文件处理-读取csv文件的两种方式

    直接学习:https://edu.csdn.net/course/play/24756/280718 csv文件处理-读取csv文件的两种方式: # 这种方式读取到的每一条数据是个列表,所以需要通过下 ...

  7. java读取csv文件的两种方式

    java读取csv文件的两种方式 1.CsvReader读取 import com.csvreader.CsvReader; /*** CsvReader 读取* @param filePath* @ ...

  8. C# 读取XML文件的几种方式

    在开发过程中,我们有时会需要保存到本地一些结构化数据或者配置信息,这时就可以选择用xml文件.当然xml的用途也不仅仅是这些. 这一篇来谈一谈关于读取xml文件的几种方式: 我们有以下两个文件,一个是 ...

  9. python读取wav文件并进行FFT变换

    一.wav格式文件 WAV为微软公司(Microsoft)开发的一种声音文件格式,它符合RIFF(Resource Interchange File Format)文件规范,用于保存Windows平台 ...

最新文章

  1. 不安装Oracle使用cx_Oracle
  2. 从1到N,AI落地现在进行时
  3. fiddler https 您的连接不是私密连接 解决方法(不明原理但是照着做成功了,记录下)
  4. 腾讯、阿里到底有多缺这类程序员?
  5. 【XAuido2】播放wav和ogg格式音频文件
  6. 8个月打磨,一份送给程序员的「分布式系统」合集
  7. KIE-WB / JBPM控制台Ng –配置
  8. 计算机主机安装系统安装系统安装软件,电脑安装软件时提示安装过程出错系统设置未被修改怎么办...
  9. 分布式面试 - 分布式服务接口请求的顺序性如何保证?
  10. python urlopen错误_Python:URLError:urlopen错误[Errno 10060]
  11. Android proguard-rules.pro 混淆模板
  12. css 固定列头,表格头部固定和表格列固定
  13. 在工作中能学到的东西-2
  14. 编写程序销毁一个单链表
  15. 使用AD14制作PCB的全部流程以及PCB打样流程介绍
  16. 使用setBounds()函数设置Java布局
  17. 给字体添加背景图 HTML+CSS
  18. 普通话测试app怎么样可以不交钱_和小首一起好好说普通话!
  19. python交通调查数据处理_Python突破高德API限制爬取交通态势数据+GIS可视化(超详细)...
  20. 【车辆计数】基于matlab GUI背景差分法道路行驶多车辆检测【含Matlab源码 1911期】

热门文章

  1. 5月份最全的Java面试题总汇(不再惧怕面试官,成功坐等offer)
  2. 小队战术游戏研究:武器
  3. 旋转矩阵表示姿态XYZ坐标轴关系
  4. 什么是跨域以及为什么会出现跨域以及跨域的解决方案
  5. 最小费用最大流问题详解
  6. 如何在Flask中实现可视化?
  7. spark 序列化错误 集群提交时_spark 面试题(2)
  8. ndarray如何取元素_访问和删除 ndarray 中的元素及向其中插入元素
  9. C# EPPlus读写Excel
  10. zookeeper 可视化日志文件报错:java.lang.NoClassDefFoundError: org/apache/jute/InputArchive