Python 将16位PCM数据转换为振幅的numpy数组

Python 将16位PCM数据转换为振幅的numpy数组,python,numpy,audio,Python,Numpy,Audio,我在这里可能没有使用正确的术语。我有一个numpy数组,如: 数组([82,73,70,…,1230,1],dtype=uint8) 它应该是16位PCM格式 我需要把它转换成numpy音频波形。如果这不是正确的术语,我会很好地解释这是什么:在某种采样率下的声波振幅 我还需要用Python尽可能快地完成这项工作。这确实是某种采样率下的声波振幅。但存储在np.uint8dtype中。例如,如果您想在Jupyter笔记本中听到它,您可以尝试: 将numpy导入为np s=np.array([82,7

我在这里可能没有使用正确的术语。我有一个numpy数组,如:

数组([82,73,70,…,1230,1],dtype=uint8)

它应该是16位PCM格式

我需要把它转换成numpy音频波形。如果这不是正确的术语,我会很好地解释这是什么:在某种采样率下的声波振幅


我还需要用Python尽可能快地完成这项工作。

这确实是某种采样率下的声波振幅。但存储在
np.uint8
dtype中。例如,如果您想在Jupyter笔记本中听到它,您可以尝试:

将numpy导入为np
s=np.array([82,73,70,2,1230,1],dtype=np.uint8)
从IPython.display导入音频
音频(s,速率=22050)
然后你可以听到你的声音


将n个样本阵列重塑为新形状(n/2,2) 将第二列乘以256(最高有效字节) 将对求和为16位值

a=np.array([0x82,0x73,0x70,0x1,0x30,0x1],dtype=np.uint8)
b=a.重塑(-1,2)*np.数组([1256],np.uint16)
c=b.总和(轴=1)
打印(十六进制(c[0])#“0x7382”
打印(十六进制(c[1])#“0x170”
打印(十六进制(c[2])#“0x130”

我刚刚用上面的python代码从目录中安装了jupyter,它启动了一个浏览器,显示了与上面相同的内容。。。现在,我如何从jupyter内部执行python代码,以便它呈现音频播放小部件,如上面所示?提前谢谢好吧,老实说,我不知道。根据文件,你不能。也许你可以问另一个问题。