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()
相关推荐
同学小张13 小时前
【端侧AI 与 C++】1. llama.cpp源码编译与本地运行
开发语言·c++·aigc·llama·agi·ai-native
DanCheng-studio14 小时前
网安毕业设计简单的方向答疑
python·毕业设计·毕设
踢球的打工仔14 小时前
PHP面向对象(7)
android·开发语言·php
轻抚酸~14 小时前
KNN(K近邻算法)-python实现
python·算法·近邻算法
独行soc16 小时前
2025年渗透测试面试题总结-264(题目+回答)
网络·python·安全·web安全·网络安全·渗透测试·安全狮
汤姆yu16 小时前
基于python的外卖配送及数据分析系统
开发语言·python·外卖分析
Yue丶越16 小时前
【C语言】字符函数和字符串函数
c语言·开发语言·算法
马剑威(威哥爱编程)16 小时前
鸿蒙6开发视频播放器的屏幕方向适配问题
java·音视频·harmonyos
如何原谅奋力过但无声17 小时前
TensorFlow 1.x常用函数总结(持续更新)
人工智能·python·tensorflow
翔云 OCR API17 小时前
人脸识别API开发者对接代码示例
开发语言·人工智能·python·计算机视觉·ocr