当前位置: 首页 > article >正文

python pyaudio显示音频波形图

python pyaudio显示音频波形图

代码如下:

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()

在这里插入图片描述


http://www.kler.cn/a/162064.html

相关文章:

  • vue3+vite 前端打包不缓存配置
  • RHCE web解析、dns配置、firewalld配置实验
  • 【项目开发 | 跨域认证】JSON Web Token(JWT)
  • CLion配置QT开发环境
  • 【Python TensorFlow】进阶指南(续篇一)
  • 扫雷游戏代码分享(c基础)
  • FPGA模块——SPI协议(读写FLASH)
  • UDP协议实现群聊
  • 云架构的思考3--云上开发
  • AI自动生成代码工具
  • HTTP 缓存机制
  • Leetcode刷题笔记——摩尔投票法
  • 【无线网络技术】——无线个域网(学习笔记)
  • 『亚马逊云科技产品测评』活动征文|基于亚马逊云EC2搭建PG开源数据库
  • Linux指令学习
  • 第二十一章总结
  • centOS使用docker部署ElasticSearch和Kibana
  • 深入浅出理解kafka ---- 万字总结
  • Wi-Fi 认证过程【 802.11 协议】
  • rust高级 异步编程 一 future
  • flutter添加全局水印
  • 分类变量组间差异分析
  • Vue 防止页面闪烁 v-cloak
  • 通讯app:
  • Maven基础知识
  • ingress介绍和ingress通过LoadBalancer暴露服务配置