如何解决使用 Linux 和 Windows 在 Python 上的 USB 音频上接收到的不同音频样本
我正在处理一个项目,该项目的硬件设备编码为连接到 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 举报,一经查实,本站将立刻删除。