Python on Raspberry Pi:结果仅为整数

Python on Raspberry Pi: results are only integers

我在 Raspberry Pi 上使用以下 python 代码来收集音频信号并输出​​音量。我不明白为什么我的输出只是整数。

#!/usr/bin/env python

import alsaaudio as aa
import audioop

# Set up audio
data_in = aa.PCM(aa.PCM_CAPTURE, aa.PCM_NONBLOCK, 'hw:1')
data_in.setchannels(2)
data_in.setrate(44100)
data_in.setformat(aa.PCM_FORMAT_S16_LE)

data_in.setperiodsize(256)

while True:
   # Read data from device
   l,data = data_in.read()
   if l:
      # catch frame error
      try:
         max_vol=audioop.max(data,2)
         scaled_vol = max_vol/4680      
         if scaled_vol==0:
            print "vol 0"
         else:
            print scaled_vol

      except audioop.error, e:
         if e.message !="not a whole number of frames":
            raise e

此外,我不明白这一行的语法:

l,data = data_in.read()

很可能是按字节读取。这一行 l,data = data_in.read() 读入一个元组(由 ldata 组成)。 运行 这些变量的 type() 内置函数,看看您需要使用什么。

否则,请查看 PCM 术语和概念 的文档,该文档位于 pyalsaaudio 软件包的文档中,位于here.