当前位置: 首页 > 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/news/162064.html

相关文章:

  • 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暴露服务配置
  • GateWay的路由与全局过滤器
  • Linux中的网络时间服务器
  • 新书推荐——《Copilot和ChatGPT编程体验:挑战24个正则表达式难题》
  • 『TypeScript』从零开始编写你的第一个TypeScript程序
  • HomeAssistant添加HACS插件并实现公网控制米家,HomeKit等智能家居
  • Linux——操作系统与进程的基础概念
  • python学习:opencv学习和numpy学习(持续更新)
  • python pandas dataframe常用数据处理总结
  • macOS 获取文件夹大小
  • 【学习记录】从0开始的Linux学习之旅——字符型设备驱动及应用