我打算制作一个分析音频样本的通用应用程序。当我说'通用'时,我的意思是任何技术(Javascript,C,Java等)都可以使用它。 基本上我在iOS上使用Apple的AVFoundation制作了一个应用程序,它实时接收长度为512(bufferSize = 512)的麦克风样本。 在Python我使用PyAudio做了同样的事情,但不幸的是我收到了非常不同的值...
查看样本:
t_object
更多信息:
Python代码:
https://gist.github.com/denisb411/7c6f601175e8bb9f735d8aa43a0db340
在这两种情况下,我都使用同一台计算机。
我如何找到一种方法'转换'(不知道这是否是正确的词)它们的规模相同?
如果我不清楚这个问题,请通知我。
答案 0 :(得分:0)
音频样本通常在16或24位上量化。但是这些样本可以采用的值范围有不同的约定:
基本上,当您决定存储样本时,您有两个参数:
每个都有其优点和缺点。例如,存储在[-1,1]范围内的浮点数中的优点是,两个样本的乘积将始终在[-1,1]的相同范围内......
因此,要回答您的问题,您只需要更改打开 PyAudio 流的格式。目前,您使用format=pyaudio.paInt16
。尝试更改它pyaudio.paFloat32
,您应该获得与iOS实现相同的数据。