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

在这里插入图片描述

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-09 01:24:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-09 01:24:02       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-09 01:24:02       82 阅读
  4. Python语言-面向对象

    2023-12-09 01:24:02       91 阅读

热门阅读

  1. 函数的参数

    2023-12-09 01:24:02       57 阅读
  2. AcGeLinearEnt2d::getPerpLine函数

    2023-12-09 01:24:02       57 阅读
  3. docker数据卷

    2023-12-09 01:24:02       60 阅读
  4. DVPP媒体数据处理视频编码问题案例

    2023-12-09 01:24:02       55 阅读
  5. React 笔记 父子组件传值

    2023-12-09 01:24:02       56 阅读
  6. 圣诞树网页效果代码详解

    2023-12-09 01:24:02       59 阅读
  7. scss:修改element组件样式(el-select)

    2023-12-09 01:24:02       57 阅读
  8. MySQL-DATE_FORMAT()函数

    2023-12-09 01:24:02       65 阅读
  9. uniapp下拉刷新

    2023-12-09 01:24:02       72 阅读
  10. 数据仪表盘设计:可视化数据指标和报告

    2023-12-09 01:24:02       59 阅读
  11. Golang中json和jsoniter的区别

    2023-12-09 01:24:02       59 阅读
  12. 【Https】HTTPS协议 的介绍及作用

    2023-12-09 01:24:02       49 阅读
  13. Sass 的一小部分功能和语法

    2023-12-09 01:24:02       70 阅读