Я хочу получить доступ к 4 внешним проводным микрофонам из моего скрипта Python. Мне удалось получить доступ к встроенному микрофону моего ноутбука, но теперь я хочу получить доступ к внешнему микрофону
Я получил доступ к микрофону моего ноутбука
import pyaudio
import numpy as np
import time
import wave
# open stream
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
CHUNK = 100 # RATE / number of updates per second
RECORD_SECONDS = 1
# use a Blackman window
window = np.blackman(CHUNK)
x = 0
def soundPlot(stream,y):
t1=time.time()
data = stream.read(CHUNK, exception_on_overflow=False)
waveData = wave.struct.unpack("%dh"%(CHUNK), data)
npArrayData = np.array(waveData)
indata = npArrayData*window
fftData=np.abs(np.fft.rfft(indata))
fftTime=np.fft.rfftfreq(CHUNK, 1./RATE)
which = fftData[1:].argmax() + 1
# print("took %.02f ms"%((time.time()-t1)*1000))
# use quadratic interpolation around the max
if which != len(fftData)-1:
y0,y1,y2 = np.log(fftData[which-1:which+2:])
x1 = (y2 - y0) * .5 / (2 * y1 - y2 - y0)
# find the frequency and output it
thefreq = (which+x1)*RATE/CHUNK
if thefreq>19400 and thefreq<19415:
print ("The freq is %f Hz." % (thefreq),y)
y=y+1
else:
thefreq = which*RATE/CHUNK
if thefreq>19400 and thefreq<19415:
print ("The freq is %f Hz." % (thefreq),y)
y=y+1
p=pyaudio.PyAudio()
stream=p.open(format=pyaudio.paInt16,channels=CHANNELS,rate=RATE,input=True,
frames_per_buffer=CHUNK)
y=0
while True:
y=y+1
soundPlot(stream,y)
stream.stop_stream()
stream.close()
p.terminate()
Это код, с которого я печатаю частоты, которыемежду 19400 и 19415. В настоящее время я использую микрофон моего ноутбука. Теперь я хочу получить доступ к внешнему проводному микрофону.