PYTHON 声音文件 频谱分析 FFT

2023-05-16

import os
import time
import wave
import numpy as np
import numpy.core._dtype_ctypes
import multiprocessing
import matplotlib.pylab as pl

def fft_show(wavdata, Fr, figure_num, cmap0):
    N = Fr
    df = 1
    freq =[df*n for n in range(0, N)]
    c = np.fft.fft(wavdata[:N])
    print('len: {0}:{1}{2}{3}'.format(len(c), c[0], c[1], c[2]))

    d = int(len(c)/2)
    for index in range(d):
        print("freq:{0}, value:{1}".format(freq[index], abs(c[index])))

    fig, ax = pl.plt.subplots(1, 1)
    ax.plot(freq[:d-1], abs(c[:d-1]), color='red')
    ax.set_xlabel('Freq(HZ)')
    ax.set_ylabel('Y(freq)')
    pl.plt.show()

def creat_figure(waveData, Fs, figure_num, cmap0):
    pl.plt.figure(figsize=(8, 4.0))
    print('Child process {0} {1} Running {2} '.format(figure_num, os.getpid(), time.time()))
    pl.specgram(waveData, NFFT=512, Fs=Fs, noverlap=256, pad_to=8192, mode='magnitude', scale='dB' \
                  , vmin=0, cmap=cmap0)
    print('Child process {0} {1} specgram {2} '.format(figure_num, os.getpid(), time.time()))
    #pl.plt.savefig('fft\\mono_%d.png'%(figure_num+1))
    #pl.plt.savefig('fft\\mono_%d.png'% (figure_num+1), dpi=100)
    pl.plt.savefig('fft\\mono_%d.png'% (figure_num+1), bbox_inches='tight')
    pl.plt.cla()
    print('Child process {0} {1} end {2} '.format(figure_num, os.getpid(), time.time()))

if __name__ == '__main__':
    multiprocessing.freeze_support()
    time0 = time.time()
    wavefile = wave.open("d:\\1k.wav", 'rb')
    params = wavefile.getparams()
    nchannels, sample_width, framerate, numframe = params[:4]
    print("framerate:", framerate)
    print("sample_width:", sample_width)
    print("nchannels:", nchannels)
    print("numframe:", numframe)
    strData = wavefile.readframes(numframe)
    waveData = np.frombuffer(strData, dtype=np.int16)
    waveData = np.reshape(waveData, [numframe, nchannels])
    wavefile.close()
    # pl.plt.figure(figsize=(6.4, 4.0))
    cmap_fft = pl.plt.get_cmap('plasma')
    fft_show(waveData[:, 0], framerate, 0, cmap_fft)


    #p = multiprocessing.Pool(processes=4)
    #for num in range(nchannels):
        #p.apply_async(creat_figure, args=(waveData[:,num], numframe, num, cmap_fft))
        #p.apply_async(fft_show, args=(waveData[:, num], framerate, num, cmap_fft))
    #p.close()
    #p.join()
    print('Running time: %s Seconds' % (time.time() - time0))
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PYTHON 声音文件 频谱分析 FFT 的相关文章

  • ios平台Ahorro记账APP换新机无法下载问题

    起因 xff1a 更换iphone新机后 xff0c 原有记账APP Ahorro在app store中已不再提供 xff0c 无法下载 解决方法 xff1a 前提 xff1a 原有手机仍在手上 xff0c 且原有手机中的Ahorro AP
  • Microsoft Print to PDF的纸张大小问题

    问题 尚未解决 在word打印选项页面设置纸张大小为信纸 xff0c 在 打印机属性 gt 高级 中也设置纸张规格为信纸 但是导出的PDF文档大小依然是A4 猜想原因 在打印机的可用纸张选项中只有A4 xff0c 且未找到添加纸张类型的方法
  • KDE下安装Fcitx

    sudo apt get install fcitx pinyin im switch im switch s fcitx z all ALL 修改 etc X11 xinit xinput d fcitx xff0c 为 xff1a XI
  • win10 vs2015 tesseract5.0

    https www cnblogs com hupeng1234 p 8545371 html
  • python 买卖提的菜单_03

    temp 61 input 34 你要买几根 xff1f n 34 mount 61 int temp print type temp Totalprice 61 20 mount print 39 您一共需要支付 xff1a 39 43
  • python 02

    import turtle as t 39 39 39 t speed 0 t screensize 600 500 屏幕大小 t pensize 5 t pencolor 34 black 34 t fillcolor 34 black
  • 取字符串某个特定字符后的字符串 strchr函数

    strchr函数返回指定字符串中从左到右第一个指定字符的指针 xff0c 未找到则返回NULL 函数原型 xff1a extern char strchr char str char character 例如 xff1a 字符串s为 11
  • 折腾了好久这个opencv的Windows库

    折腾了好久这个opencv的Windows库 xff0c 实在是想吐血了 终于找到一个可以用的已经编译好的 xff0c 下载地址如下 xff1a https github com huihut OpenCV MinGW Build 来自 x
  • ch10_列表 字典 例子

    num 61 num len 61 0 for i in range 100 if i gt 1 temp 61 0 for j in range 2 int i 2 if i j 61 61 0 temp 43 61 1 if temp
  • C# AForge设置摄像头参数(含代码)

    网上有很多c 设置摄像头参数的例子 xff0c 代码给的不多 增加新类的源码 xff1a AForge设置摄像头参数实例源码 源码地址 xff1a https download csdn net download gigizhongyan
  • QT 开发多窗口多页面问题(一)中文乱码的问题

    开发环境 xff1a Microsoft Visual C 43 43 2019 43 QT 5 13 1 QT5 中文乱码 xff0c 网上有很多例子 效果有但是没有那么彻底 因为我需要使用tr 后续中文需要翻译 最后在 h文件中加入了
  • QT 开发多窗口多页面问题(二)QT 插件模式

    编译环境 xff1a VS2019 43 QT5 13 1 业务要求 xff1a 界面是多窗口拖动的模式 xff0c 窗口采用插件的模式 xff08 DLL xff09 封装 参考的文档 xff1a 结合两个文档 结合了vs的QDesign
  • QT项目适配libmodbus3.1.6库源码

    想要自己开发的可以参考 xff1a https blog csdn net qq 37887537 article details 88548358 https blog csdn net zgrjkflmkyc article detai
  • 时隔一年,C++加python 的混合编程(包括python无环境发布)

    时隔一年 xff0c 上一篇文档比较LOW一点 xff0c 实现了python2 7的混合编译 xff0c 可发布无PYTHON环境的机器 发布也是比较LOW xff0c 文件特别大 编译版本 xff1a python 3 7 2 xff0
  • 逆向APP查看内部源码

    我的原创 xff1a https www jianshu com p 991265039648 文章中使用的工具 xff1a https download csdn net download gigizhongyan 12568942
  • 用C#实现MVC+观察者模式(WINFORM)

    用C 实现MVC xff08 Model View Control xff09 模式介绍 益处 下载案例 xff1a https download csdn net download gigizhongyan 13011332 在我们的开发
  • sscanf函数基本用法

    用法1 xff1a 从字符串中取数字 代码如下 xff1a include lt bits stdc 43 43 h gt using namespace std int main char s 61 34 11 LL 34 int v s
  • 2020-10-22

    用C 实现MVC xff08 Model View Control xff09 模式介绍 益处 在我们的开发项目中使用MVC xff08 Model View Control xff09 模式的益处是 xff0c 可以完全降低业务层和应用表
  • sqlite 删除数据的时候如果设立外键如何解决

    PRAGMA foreign keys 61 no 关闭了外键限制 清空各表 DELETE from D ConfigFormula DELETE from D ConfigSensor DELETE from D ConfigCommun
  • Microsoft.NETCore.App/2.1.0的下载超时问题

    最近公司一个项目需要采用 Microsoft NETCore App技术 之前没有基于这个框架开发过代码 xff0c 安装了2019后 xff0c 一直提示 未能从 https www nuget org api v2 package Mi

随机推荐

  • SRS 分发HLS 跨域问题

    一 SRS 分发 1 通过修改配置 usr local srs conf xff1a 的srs conf 增加如下配置 xff0c 开通srs的hls功能 http stream 注释 xff1a srs 版本不一样 配置信息头可能不一样
  • C# 调用ffmepg 读取海康或大华视频的功能

    一 C 调用ffmepg 调用C FFmpeg AutoGen 下载方法 注意这个版本需要和下载的ffmpeg的版本一致 也就是FFmpeg AutoGen4 3 1那么下载的ffmpeg的动态链接库也要是4 3 1 ffmpeg下载 ht
  • Windows Socket五种I/O模型——代码全攻略

    Windows Socket五种I O模型 代码全攻略 2007 06 14 09 45 43 分类 xff1a WINDOWS 如果你想在Windows平台上构建服务器应用 xff0c 那么I O模型是你必须考虑的 Windows操作系统
  • 五种I/O模型的性能分析

    重叠I O模型的另外几个优点在于 xff0c 微软针对重叠I O模型提供了一些特有的扩展函数 当使用重叠I O模型时 xff0c 可以选择使用不同的完成通知方式 采用事件对象通知的重叠I O模型是不可伸缩的 xff0c 因为针对发出WSAW
  • QT 调用捷宇摄像头OCX控件,界面显示的控件非常小的问题。

    QT调用捷宇控件的问题 xff0c 控件再qaxtive容器显示太小如下图 xff1a 上代码 xff1a 这个代码都包括一个定时器的延时作用 xff0c 控件小时因为打开摄像头在初始化里面 正确的代码如下 xff1a 注意圈的部分 参考博
  • QT 调用捷宇摄像头OCX控件,界面显示的控件续。

    其实自己把问题想的复杂了 如果手动用按钮打开摄像头测试可以不用定时器 如果打开摄像头可以看前面一个篇幅 https blog csdn net gigizhongyan article details 86086416
  • Qt控件四周留白的问题处理

    使用QT界面 xff0c 没有仔细的处理过细节 xff0c 那么现在项目要求实现界面 xff0c 我的界面是这样的 xff1a 四周都有一个缝隙 当然这个是非常小的问题 xff0c 网页上方法也很多 xff0c 我实现的比较简单 如果是代码
  • C++ Primer中关于auto的“设置一个为auto的引用,初始值中的顶层常量属性仍然保存。如果我们给初始值绑定一个引用,此时常量就不是顶层常量了”这句话的理解

    设置一个为auto的引用 xff0c 初始值中的顶层常量属性仍然保存 如果我们给初始值绑定一个引用 此时常量就不是顶层常量了 const int a 61 2 xff1b auto amp b 61 a 被误导这句话有什么弦外之音 xff0
  • QT 调用Python Py_Initializez中断

    网上有很多方法 xff1a 也给出了很多意见 xff0c 下面我稍微总结一下 xff1a Py SetPythonHome L 34 D software python Scripts 34 比如崩溃的时候前面加这句话是没有效果的 第一步
  • QT 在VS下 moc文件生成方法

    直接打开别人写的VS 43 QT程序 xff0c 编译后提示没有moc文件 xff0c 解决后觉得问题比较low 用QT TOOL project编译程序会生成MOC 但是给一些刚入门的借鉴
  • QT 延时控件

    实现效果 xff1a 效果可能还不够完美 xff0c 欢迎讨论 代码下载 xff1a https download csdn net download gigizhongyan 11068499 直接上代码 COPYRIGHT C 64 f
  • 发布QML程序

    windeployqt untitled2 exe qmldir E Qt Qt5 8 0 5 8 msvc2015 qml F UsbReaderHdQML build UsbReaderNew Desktop Qt 5 11 3 MSV
  • QT 手写识别功能的实现

    QT 调用C 控件的实现 填补QT 手写识别功能的缺失问题 QT 手写识别功能一直网上没有很好的例子 C 的一个项目中它的手写识别功能还不错 所以在想是否可以通过QT把C 项目的手写功能拿过来 提醒 xff1a linux用户失望了 xff
  • C++ 混合编程(python) 发布问题

    目的 xff1a C 43 43 调用python混合编程过程中 xff0c 发表C 43 43 程序时候 xff0c 客户机并不想安装python 那么可以通过拷贝以下目录和文件可以达到效果 注意细节 xff1a 程序调试的时候使用的py
  • 酷Q 二次开发 C++SDK 加python混合编程

    酷Q 源代码 xff1a https github com richardchien coolq cpp sdk 不用问我这个怎么用啊 xff0c 去酷Q社区去看看 xff0c 会C 43 43 开发的应该很简单 xff0c 实在不会留言我
  • PYTHON pyinstaller 发布的坑

    基于python3 7 打包时候找不到模块 因为我们在编写程序的时候 xff0c 尤其经验不足的时候 xff0c 最容易装一堆的各版本的python 最后自己发布的python和运行工作的python是哪个对哪个完全搞不清楚 xff0c 包
  • HPSOCKET VS2015编译的报错的问题解决

    xff08 vs2010向2015编译升级 xff09 提示无法打开包括文件 SDKDDKVer h No such file or directory 2 fatal error C1083 无法打开包括文件 new h No such
  • NFC NDEF C#

    NFC NDEF C 背景 NTF需要使用C 写的程序封装NDEF协议 C ndef协议代码地址 xff1a https github com andijakl ndef nfc releases 实际项目中引用库可以采用这个方法 环境 x
  • 关于顶层const和底层const

    之前有段时间对于这个一直比较模糊不理解 xff0c 网上很多对于这个底层和顶层const的理解都是针对指针做出解释 xff0c 漏掉基本数据类型和引用的解释 xff0c 最终发现自己也是马虎了 xff0c 在C 43 43 primer中有
  • PYTHON 声音文件 频谱分析 FFT

    import os import time import wave import numpy as np import numpy core dtype ctypes import multiprocessing import matplo