python pyaudio显示音频波形图

python pyaudio显示音频波形图

代码如下:

python 复制代码
import numpy as np
import matplotlib.pylab as plb
import wave

# 读取 wav
wf = wave.open("./output.wav", "rb")

# 获取音频相关参数:声道数、量化位数、采样频率、采样帧数
nchannels, sampwidth, framerate, nframes = wf.getparams()[:4]

# 将音频转为可处理形式,nframes 是帧数,函数返回的是 str 数据
str_datas = wf.readframes(nframes)

# 关闭文件流 wave
wf.close()

# 转换为 1 维短整型数组,np.short 8 位
w_datas = np.fromstring(str_datas, dtype=np.short)
print(w_datas.shape)

# 维度修改为 2,分离左右声道
w_datas.shape = -1, 2
print(w_datas.shape)

# -1 表示自动适配,根据另一个维度的数量进行分割,得到 n 行 2 列的数组
w_datas = w_datas.T
time = np.arange(0, nframes) * (1 / framerate)
plb.subplot(211)
plb.plot(time[0:220160], w_datas[0], c="g")
plb.xlabel("time")
plb.ylabel("amplitude")
plb.subplot(212)
plb.plot(time[0:220160], w_datas[1], c="b")
plb.xlabel("time")
plb.ylabel("amplitude")
plb.show()
相关推荐
Hgfdsaqwr42 分钟前
实战:用Python开发一个简单的区块链
jvm·数据库·python
程序员三藏5 小时前
接口测试及常用接口测试工具总结
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
小二·7 小时前
Python Web 开发进阶实战 :AI 原生数字孪生 —— 在 Flask + Three.js 中构建物理世界实时仿真与优化平台
前端·人工智能·python
Whisper_Sy7 小时前
Flutter for OpenHarmony移动数据使用监管助手App实战 - 网络状态实现
android·java·开发语言·javascript·网络·flutter·php
Black蜡笔小新7 小时前
视频汇聚平台EasyCVR打造校园消防智能监管新防线
网络·人工智能·音视频
Bony-7 小时前
Go语言垃圾回收机制详解与图解
开发语言·后端·golang
hmywillstronger8 小时前
【Rhino】【Python】 查询指定字段并cloud标注
开发语言·python
新缸中之脑8 小时前
Weave.js:开源实时白板库
开发语言·javascript·开源
我能坚持多久8 小时前
D16—C语言内功之数据在内存中的存储
c语言·开发语言
leo__5208 小时前
C#与三菱PLC串口通信源码实现(基于MC协议)
开发语言·c#