gpt4 book ai didi

python - 将麦克风数据转换为频谱

转载 作者:行者123 更新时间:2023-12-03 00:47:14 31 4
gpt4 key购买 nike

我正在尝试创建一个频谱图程序(在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/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com