- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个频谱图程序(在python中),该程序将实时分析和显示来自麦克风输入的频谱。我正在使用模板程序从此处录制音频:http://people.csail.mit.edu/hubert/pyaudio/#examples(录制示例)
这个模板程序工作正常,但是我不确定从data = stream.read(CHUNK)
行返回的数据格式。我已经对该程序中使用的.wav格式进行了一些研究,但是我找不到真正的数据字节本身的含义,仅是.wav文件中元数据的定义。
我了解该程序使用16位样本,并且“块”存储在python字符串中。我希望有人可以帮助我准确地理解每个样本中的数据代表什么。即使只是指向此信息源的链接也将有所帮助。我尝试使用谷歌搜索,但我认为我对术语不太了解,无法准确搜索。
最佳答案
stream.read
为您提供二进制数据。要获取十进制音频样本,可以使用 numpy.fromstring
将其转换为numpy数组,或者使用Python的内置 struct.unpack
。
例:
import pyaudio
import numpy
import struct
CHUNK = 128
p = pyaudio.PyAudio()
stream = p.open(format=pyaudio.paInt16, channels=1, rate=44100, input=True, frames_per_buffer=CHUNK)
data = stream.read(CHUNK)
print numpy.fromstring(data, numpy.int16) # use external numpy module
print struct.unpack('h'*CHUNK, data) # use built-in struct module
stream.stop_stream()
stream.close()
p.terminate()
关于python - 将麦克风数据转换为频谱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25129035/
我对复值频谱执行 iFFT 并通过让第一个样本归零来更改相应的时域信号。最后,我通过 FFT 将其转换回频域。 我想知道这里使用两侧(对称)频谱或仅使用一侧频谱(仅正频率)之间的(物理)差异在哪里,因
我正在尝试提高使用 cython 计算 Jonswap 频谱的性能。但它似乎比原始代码慢得多。我该如何改进? 赛通代码: from libc.math cimport exp from libc.st
我目前可以使用 JavaScript Web Audio API 播放音轨。在播放此轨道时,我可以提取 FFT 频谱数据、峰值、RMS 值等。 但是,出于我的应用程序的目的,我需要能够在开始播放轨道之
我正在尝试将频谱保存在我的 FMOD_DSP_PARAMETER_FFT 中,但我只收到充满零的频谱,如果你能看到我的错误我会同意,我认为我没有很好地将 DSP 连接到 channel 或类似的东西,
我有一个复杂的信号,我想对其进行 FFT。使用 Mathematica 我得到以下结果: (* Some acquisition params *) fS = 100. 10^6; time = 10
我是一名优秀的程序员,十分优秀!