Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python将numpy数组(wav数据)转换为int16?_Python_Numpy_Scipy_Wav_Soundfile - Fatal编程技术网

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

如何使用Python将numpy数组(wav数据)转换为int16?,python,numpy,scipy,wav,soundfile,Python,Numpy,Scipy,Wav,Soundfile,我假设有一些数据是wav数据。如果我使用: soundfile.write(filepath, my_data, samplerate) ,然后它正确地写入wav文件。但我想将wav数据转换成int16,因为目前它是某种float: [0.0018415 0.00730521 0.01155283 ... 0.10048427 0.09344029 0.08903081] 与 它来自于一个过程 有什么方法可以让我转换成int16而不必保存然后读取文件吗?答案很简单: my_data = (

我假设有一些数据是
wav
数据。如果我使用:

soundfile.write(filepath, my_data, samplerate)
,然后它正确地写入
wav
文件。但我想将wav数据转换成
int16
,因为目前它是某种
float

[0.0018415  0.00730521 0.01155283 ... 0.10048427 0.09344029 0.08903081]

它来自于一个过程


有什么方法可以让我转换成
int16
而不必保存然后读取文件吗?

答案很简单:

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

因为现在它是某种浮动,你能检查一下它到底是什么吗?你在这里几乎没有提供任何信息,你能更具体一点吗?文件来自哪里?你在使用什么库?添加了更多的细节来概括问题它是一个numpy数组?什么是
.dtype
?您想将类型更改为int16,还是也要缩放数据?我想将数据缩放为与使用soundfile读取时相同的大小。read(dtype=int16)是当前范围为[0,1]的数据[?您编写时假设数据为wav格式,可以更具体一些吗?
my_data = (my_data * 32767).astype(np.int16)