0

我正在将一个库从 Python 2 更新到 Python 3.7,该库从麦克风获取声音输入并将其转换为音高。但是,当我运行程序时出现此错误:

File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/analyse.py", line 58, in detect_pitch dp = analyseffi.detect_pitch(chunk2, min_frequency, max_frequency, samplerate, sens, ratio) TypeError: argument 1 must be read-only bytes-like object, not memoryview

它似乎与以下代码有关:

# Read raw microphone data
rawsamps = stream.read(1024)
# Convert raw data to NumPy array
samps = numpy.frombuffer(rawsamps, dtype=numpy.int16)
# Show the volume and pitch
print(analyse.musical_detect_pitch(samps))

错误信息中chunk2的位置是通过chunk2 = samps.data[:]函数内获取的。我一直在试图弄清楚如何解决这个错误,但基于我有限的理解,“只读字节类对象”与“memoryview”非常相似。所以我不确定我应该怎么做才能从一个转换到另一个。

4

0 回答 0