Refer GCP/Docker/docker-audio for more details

In [1]:
import sounddevice as sd
In [2]:
sd.query_devices()
Out[2]:
   0 HDA Intel PCH: ALC887-VD Analog (hw:0,0), ALSA (2 in, 2 out)
   1 HDA Intel PCH: ALC887-VD Digital (hw:0,1), ALSA (0 in, 2 out)
   2 HDA Intel PCH: ALC887-VD Alt Analog (hw:0,2), ALSA (2 in, 0 out)
   3 HDA NVidia: HDMI 0 (hw:1,3), ALSA (0 in, 2 out)
   4 HDA NVidia: HDMI 1 (hw:1,7), ALSA (0 in, 8 out)
   5 HDA NVidia: HDMI 2 (hw:1,8), ALSA (0 in, 8 out)
   6 HDA NVidia: HDMI 3 (hw:1,9), ALSA (0 in, 8 out)
   7 Webcam C170: USB Audio (hw:2,0), ALSA (1 in, 0 out)
   8 sysdefault, ALSA (128 in, 128 out)
   9 front, ALSA (0 in, 2 out)
  10 surround40, ALSA (0 in, 2 out)
  11 surround51, ALSA (0 in, 2 out)
  12 surround71, ALSA (0 in, 2 out)
  13 iec958, ALSA (0 in, 2 out)
  14 spdif, ALSA (0 in, 2 out)
  15 pulse, ALSA (32 in, 32 out)
  16 dmix, ALSA (0 in, 2 out)
* 17 default, ALSA (32 in, 32 out)
In [3]:
fs=44100
duration = 5  # seconds
In [4]:
myrecording = sd.rec(duration * fs, samplerate=fs, channels=2,dtype='float64') #pass device=.. to select device
sd.wait()
In [5]:
myrecording
Out[5]:
array([[-0.00143433, -0.00143433],
       [ 0.        ,  0.        ],
       [ 0.        ,  0.        ],
       ...,
       [ 0.00189209,  0.00189209],
       [ 0.00234985,  0.00234985],
       [ 0.00259399,  0.00259399]])
In [6]:
sd.play(myrecording, fs)
sd.wait()
In [7]:
myrecording.shape
Out[7]:
(220500, 2)