如何使用 Python 将 numpy 数组(wav 数据)转换为 int16?

How can I convert a numpy array (wav data) to int16 with Python?

我有一些数据,我认为是 wav 数据。如果我使用:

soundfile.write(filepath, my_data, samplerate)

,然后它正确地写入一个 wav 文件。但我想以某种方式将该 wav 数据转换为 int16,因为目前它是某种 float:

[0.0018415  0.00730521 0.01155283 ... 0.10048427 0.09344029 0.08903081]

max 0.3002103
min -0.33075073

它来自 https://github.com/santi-pdp/segan_pytorch

中的一个进程

有没有什么方法可以让我转换为 int16 而无需保存然后读取文件?

答案很简单:

my_data = (my_data * 32767).astype(np.int16)