问题描述
我正在处理一个项目,该项目的硬件设备编码为连接到 USB 端口的 USB 音频设备。它充当一种音频接收器,通过与其相应的设备配对来工作。然后它向我们发送我们尝试使用 Python 3.8.3 在 USB 上接收的数据。
我们试图接收的信号看起来像这样 256 266 276 286 296 306 316 326 336 346 356 366 376 386 396 406 416 426 436 446 456 466 476 486 496 506 516 526 536 546 556 566 576 586 596 606 616 626 636 646
我们的python代码在这里
import numpy as np
import pyaudio
SAMPLESIZE = 1024 # number of data points to read at a time
SAMPLERATE = 8000 # time resolution of the recording device (Hz)
RECORD_LENGTH = 5
FORMAT = pyaudio.paInt16
p = pyaudio.PyAudio() # instantiate PyAudio
stream=p.open(format=FORMAT,channels=1,rate=SAMPLERATE,input=True,frames_per_buffer=SAMPLESIZE) # use default input device to open audio stream
y = []
print("Start")
for i in range(int(SAMPLERATE / SAMPLESIZE * RECORD_LENGTH)):
data = stream.read(SAMPLESIZE)
frame = np.frombuffer(data,dtype=np.int16).tolist()
# print(len(frame))
y.extend(frame)
print("End")
stream.stop_stream()
stream.close()
p.terminate()
np_array = np.array(y)
print(np_array[200:500]) #printing a slice of the array to display
然后我们将在控制台上显示数据。所以问题是,在 Windows 上,我们得到的输出如下所示,有几位递增和几位递减。在多次运行代码时,我注意到每次都会增加/减少相同的位。
我们在 linux 上使用相同的环境运行相同的代码,我们得到了符合要求的输出。
我需要知道我们遗漏了什么,是否与操作系统处理 USB 数据的方式有关?我在两个操作系统上的 python 上使用 sounddevice 库尝试了同样的事情,但结果相同。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)