我试图使用Python来检索现场音频输入的主频率。目前,我正在试验使用音频流我的笔记本内置麦克风,但当测试以下代码时,我得到了非常差的结果。# Read from Mic Input and find the freq's

import pyaudio

import numpy as np

import bge

import wave

chunk = 2048

# use a Blackman window

window = np.blackman(chunk)

# open stream

FORMAT = pyaudio.paInt16

CHANNELS = 1

RATE = 1920

p = pyaudio.PyAudio()

myStream = p.open(format = FORMAT, channels = CHANNELS, rate = RATE, input = True, frames_per_buffer = chunk)

def AnalyseStream(cont):

data = myStream.read(chunk)

# unpack the data and times by the hamming window

indata = np.array(wave.struct.unpack("%dh"%(chunk), data))*window

# Take the fft and square each value

fftData=abs(np.fft.rfft(indata))**2

# find the maximum

which = fftData[1:].argmax() + 1

# use quadratic interpolation around the max

if which != len(fftData)-1:

y0,y1,y2 = np.log(fftData[which-1:which+2:])

x1 = (y2 - y0) * .5 / (2 * y1 - y2 - y0)

# find the frequency and output it

thefreq = (which+x1)*RATE/chunk

print("The freq is %f Hz." % (thefreq))

else:

thefreq = which*RATE/chunk

print("The freq is %f Hz." % (thefreq))

# stream.close()

# p.terminate()

该代码是从this question中分离出来的,后者处理波形文件的傅里叶分析。它在当前的模块化结构中,因为我是在Blender游戏环境中实现它的(因此在顶部是import bge),但是我很确定我的问题在AnalyseStream模块中。

如果您能提供任何建议,我们将不胜感激。

更新:我时不时地得到正确的值,但在不正确的值中很少发现这些值(<10Hz)。这个程序运行得很慢。

python频率_Python中的频率分析相关推荐

  1. python参数化_Python 中如何实现参数化测试的方法示例

    之前,我曾转过一个单元测试框架系列的文章,里面介绍了 unittest.nose/nose2 与 pytest 这三个最受人欢迎的 Python 测试框架. 本文想针对测试中一种很常见的测试场景,即参 ...

  2. python标准化_python中标准化

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! sdk 3.0 实现了统一化,各个语言版本的 sdk具备使用方法相同.接口调用方 ...

  3. python字符集_PYTHON 中的字符集

    Python中的字符编码是个老生常谈的话题,今天来梳理一下相关知识,希望给其他人些许帮助. Python2的 默认编码 是ASCII,不能识别中文字符,需要显式指定字符编码:Python3的 默认编码 ...

  4. kafka python框架_Python中如何使用Apache Avro——Apache的数据序列化系统

    了解如何创建和使用基于Apache Avro的数据,以实现更好,更有效的传输. 在这篇文章中,我将讨论Apache Avro,这是一种开源数据序列化系统,Spark,Kafka等工具正在使用该工具进行 ...

  5. matlab+信号+mpf,Python和Matlab中平均频率的差异

    我有这个EMG signal,我想根据这个article绘制平均功率频率.我使用以下代码在Matlab中实现它:clear all; close all; EMG=load('EMG.txt'); N ...

  6. python正弦_python生成任意频率正弦波方式

    如下所示: def signal_xHz(A, fi, time_s, sample): return A * np.sin(np.linspace(0, fi * time_s * 2 * np.p ...

  7. python评论情感分析步骤_python中snownlp情感分析简易的demo分享

    下面小编就为大家带来一篇python snownlp情感分析简易demo(分享).小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 SnowNLP是国人开发的python类 ...

  8. python有向图_Python 中的垃圾回收机制

    一.概述 python采用的是引用计数机制为主,标记-清除和分代收集(隔代回收)两种机制为辅的策略. 现在的高级语言如java,c#等,都采用了垃圾收集机制,而不再是c,c++里用户自己管理维护内存的 ...

  9. python推荐_Python中一个简单的基于内容的推荐引擎

    假设,我们需要为一个电子商务网站建立一个推荐引擎. 基本上,你有两种方法:基于内容和协同过滤.我们将看看每种方法的优缺点,然后深入一个基于内容的引擎的一个简单的实现(准备在Heroku之上部署!). ...

最新文章

  1. C/C++包管理工具Conan简介
  2. java设计模式---构建者模式
  3. Linux基础命令---shutdown
  4. 通过 SpringBoot 中使用 lombok 实现自动创建JavaBean的get/set方法、全参/无参构造方法、toString()、equals()、hashCode()
  5. Hasor【付诸实践 01】低代码框架 DataQL 聚合查询引擎 SQL执行器报错 Query dialect missing 原因分析及解决(针对GreenPlum数据库)
  6. python中common是什么意思_common中的python无效语法
  7. 永磁交流伺服电机的工作原理与更换新编码器后的常规零位校正方法
  8. Java IO: 字节和字符数组
  9. 安装ae显示安装程序无法初始化_adobe CC 2015/2017安装失败(adobe cc安装不了的解决办法)...
  10. Excel表哥表姐如何突破职业天花板?我有两个忠告
  11. 防控疫情,我们在行动——爱奇艺战“疫”全纪录
  12. android listView与adapter
  13. vep视频转换为mp4文件
  14. Ubuntu 18.04上使用snort3搭建NIDS(一)| 安装篇
  15. 神经网络数据分析案例题,神经网络模型数据处理
  16. 物理地址通过什么协议转换为ip地址
  17. Can‘t find bundle for base name jdbc, locale zh_CN的解决方法
  18. Axure8 全选控制中继器里的checkbox
  19. iOS/MAC 数据压缩与解压缩及常用算法 LZMA、ZLIB
  20. 包容普通的父亲和母亲

热门文章

  1. uboot中变量env(收集)
  2. halcon深度学习算子,持续更新
  3. C#using static
  4. XML —— DTD介绍
  5. 学习笔记(34):Python网络编程并发编程-异步调用与回调机制
  6. matlab 读取excel一列,读取excel中的数据把第一列相同的所有行数据输出成一个excel...
  7. python 重定向 ctf_3.CTF——python利用工具
  8. python调用c#注意事项_Python调用C#编写的DLL
  9. 一个长方体玻璃容器从里面量长宽_泰来包装分享:如何设计钢边箱里面中型木包装箱...
  10. powerdesigner怎么导出pdf_各种科研绘图软件中的矢量图导出技巧