使用PortAudio / PyAudio从输入设备获取幅度范围

时间:2015-12-01 20:33:19

标签: python portaudio pyaudio

我正在使用PyAudio(这只是PortAudio的Python包装器)来注册用户的听觉响应;我想创建一个小的校准动画,其中包含一个点,该点在给定的采样周期内响应峰值幅度而动态增长和缩小。

问题是我不能有意义地将幅度转换为像素,直到我知道任何给定设备的最大幅度可能是什么(PortAudio的API只是描述了这是一个无符号长度,据我所知,它只是未经修改的幅度通过输入设备测量,其值的范围将基本上根据齿轮的质量而变化。

有没有办法让PortAudio报告输入设备可能的最大幅度值(可能是在初始化流后)?

1 个答案:

答案 0 :(得分:1)

您可以从输入设备接收的最小值和最大值取决于使用的样本格式,通常是有符号整数。例如,如果您使用pyaudio.paInt16格式,则样本为16位整数,因此它们的范围为-32,768到32,767。没有"无符号长"样本格式。

实际范围输入值将取决于控件之外的任何音频API的许多因素。诸如您正在使用的麦克风,人们说话的声音以及麦克风和ADC之间可能将模拟音频转换为数字的任何放大器或其他设备之类的东西。您可能需要校准您的设置,以便它使用数字样本范围的有用部分。