使用Python绘制语音信号的波形图

2023-11-09

# improt library
import numpy as np
import wave
import pylab as pl
# download open-souce audio in
# http://www.voiptroubleshooter.com/open_speech/american.html


def plot_audio(audio_file='OSR_us_000_0010_8k.wav'):
    # load audio
    audio = wave.open(audio_file, 'rb')

    # read format information
    params = audio.getparams()
    n_channels, _, sample_rate, n_frames = params[:4]

    # read waveform data
    str_wave_data = audio.readframes(n_frames)
    audio.close()

    # tranform waveform to array, then plot
    time = np.arange(0, n_frames) * (1.0 / sample_rate)
    wave_data = np.frombuffer(str_wave_data, dtype=np.short)
    if n_channels == 1:
        wave_data = np.reshape(wave_data, [-1, 1]).T

        pl.subplot(1, 1, 1)
        pl.plot(time, wave_data[0])
        pl.xlabel('time (seconds)')
        pl.ylabel('amplitude')
        pl.show()

    elif n_channels == 2:
        wave_data = np.reshape(wave_data, [-1, 2]).T

        pl.subplot(2, 1, 1)
        pl.plot(time, wave_data[0])
        pl.plot(2, 1, 2)
        pl.plot(time, wave_data[1], c='r')

        pl.xlabel('time (seconds)')
        pl.ylabel('amplitude')
        pl.show()
    else:
        raise ValueError('Only 1 or 2 channels supported!')
image-20210429171326750
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Python绘制语音信号的波形图 的相关文章

随机推荐

  • libdl.so的用途

    通过对某些bin或者so执行ldd 可以看到他们运行前需要连接的共享库 但是有时候会看到有2个与dl相关的so ld linux so和libdl so 这时候我就有些困惑了 他们分别做了什么工作呢 原来 ld linux so的工作是在程
  • monkeyrunner的基本

    导入我们需要用到的包和类并且起别名 import sys from com android monkeyrunner import MonkeyRunner as mr from com android monkeyrunner impor
  • 渗透测试工程师面试题大全(三)

    渗透测试工程师面试题大全 三 from backlion大佬 整理 101 什么是 WebShell WebShell 就是以 asp php jsp 或者 cgi 等网页文件形式存在的 种命令执行环境 也可以将其称做为 种网页后门 黑客在
  • VLAN间路由及路由器下连接交换机的配置方法

    方法一 建议路由器下连接三层交换机 例如Cisco3650 大体思路是 三层交换机与路由器之间建立OSPF邻居 将交换机上的Vlan三层网段宣告出来 Vlan中主机的默认网关设置为Vlan三层网段实现Vlan间互通以及对外通信 其中 Vla
  • 关于火星坐标系统

    转载 关于火星坐标系统 2011 09 08 23 11 57 分类 默认分类 字号 订阅 偶然得知中国有一种火星坐标系统 其原理是这样的 保密局开发了一个系统 能将实际的坐标转换成虚拟的坐标 所有在中国销售的数字地图必须使用这个系统进行坐
  • 显示Hello World

    C 语言 include iostream using namespace std int main cout lt lt Hello World lt
  • 没有编程基础,可以自学Python吗?

    可以 Python是一门简单优雅的计算机程序设计语言 自身的特点决定了它是一门易学难精的语言 所以对于零基础学员而言 只要肯努力 学习是没有问题的 下面说说相比于C语言 Java语言 Python的特点 Python语法简单 代码可读性高
  • 性能监控-influxDB+grafana+jmeter展示测试结果

    InfluxDB 是 Go 语言编写的时间序列数据库 用于处理海量写入与负载查询 涉及大量时间戳数据的任何用例 包括 DevOps 监控 应用程序指标等 我认为 InfluxDB 最大的特点在于可以按照时间序列面对海量数据时候的高性能读写能
  • 高数【求导】--猴博士爱讲课

    第三课 求导 1 5 照公式求导 常见的求导 2 5 隐函数求导 例 1 若 y y
  • spring Aop嵌套调用的解决办法

    众所周知 Spring AOP在同一个类里自身方法相互调用时是无法拦截的 问题示例代码 public String say String a System out println say a a say2 a return a a publ
  • px、em、rem、rpx 用法 与 区别

    这篇文章记录前端 包含小程序 开发中常用到的几个单位 px em rem rpx 的区别和用法 px px像素 Pixel 相对长度单位 像素px是相对于显示器屏幕分辨率而言的 PX特点 1 IE无法调整那些使用px作为单位的字体大小 2
  • 消息中间件 RocketMQ 源码解析:Message拉取&消费(上)

    摘要 原创出处 http www iocoder cn RocketMQ message pull and consume first 芋道源码 欢迎转载 保留摘要 谢谢 本文主要基于 RocketMQ 4 0 x 正式版 1 概述 2 C
  • std::vector push_back报错Access violation

    C C code 1 2 3 4 5 6 7 8 9
  • 简单聊聊FPGA的一些参数

    笔者 E林1010 在上一篇中 我们已经知道了 FPGA的几个主流厂家和其中Intel家族中FPGA的系列的分类 上一篇文章链接 https mp weixin qq com s 1YufdRZ3Kvvk1znDGu69Og 本文微信公众号
  • word无法显示图片的问题终于搞定!oh yeah!

    我的word中的图片只显示一个方框 这个问题困扰我有一段时间了 今天终于搞定 原因如下 Word中不能显示公式 问 在Word 2003中编辑好的公式无法显示 只显示为一个方框 该怎么办 答 Word把使用公式编辑器输入的公式作为图形处理
  • SPECCPU 2017测试指导

    一 依赖包下载安装 安装前需要安装依赖包 可通过本地源进行安装 yum install gcc gfortran 离线场景下需要外网下载好后传到本地再安装 Deepin gfortran安装包手动安装3个gfortran的包 可选 yum
  • UDS应用层协议解析(史上最全)

    UDS应用层协议解析 UDS应用层协议解读 下 诊断服务分类 基础服务类 0x10 诊断会话模式 任何会话模式切换至默认会话模式时 非默认会话模式下设置的状态需要reset 28服务 85服务设置的状态需要恢复至默认状态 27服务解锁状态需
  • Win平台搭建WordPress环境

    Win平台搭建WordPress环境 WordPress是一个开源流行的个人信息发布平台 使用PHP编写 现在有众多的网站都使用WordPress来搭建的 同时WordPress还提供了大量的插件 能够帮助人们搭建个性化的网站 安装PHP
  • 在IntelliJ IDEA上使用Maven创建Spring项目HelloWorld

    因为IDEA自带Maven插件 所以使用IDEA是不需要在下载Maven的文件的 也可使用自己下载的Maven Spring我们则是通过Maven来下载构建 所以不需要下载jar包的 大神勿喷 请自行绕道 本博客面向第一次接触spring的
  • 使用Python绘制语音信号的波形图

    improt library import numpy as np import wave import pylab as pl download open souce audio in http www voiptroubleshoote