Changes
1 changed files (+23/-23)
-
-
@@ -6,35 +6,35 @@ audio = pyaudio.PyAudio()stream = audio.open( format = pyaudio.paInt16, channels = 1, rate=88200, rate=200000, input=True ) # https://stackoverflow.com/questions/45908268/how-to-know-the-frequency-of-audio-from-microphone # https://stackoverflow.com/questions/3694918/how-to-extract-frequency-associated-with-fft-values-in-pytho curfreq = 0 stop = False # https://stackoverflow.com/questions/3694918/how-to-extract-frequency-associated-with-fft-values-in-python playingfreq = 0 lastfreq = 0 while True: chunk = stream.read(4096) chunk = stream.read(10000) w = np.fft.fft(list(chunk))[10:200] f = np.fft.fftfreq(8192) f = np.fft.fftfreq(20000) i = 10+np.argmax(np.abs(w)) mag = abs(w[i-10]) freq = abs(2 * f[i] * 88200) freq = abs(2 * f[i] * 200000) if mag > 100000 and curfreq == 0: # Detected mic input # Start new freq stop = False curfreq = freq print('Starting', curfreq) get('http://10.242.6.228:5000/startfreq/' + str(curfreq)) elif mag <= 100000 or abs(curfreq-freq) > 20: if stop and curfreq != 0: print('Stopping', curfreq) get('http://10.242.6.228:5000/stopfreq/' + str(curfreq)) curfreq = 0 else: # Stop next round stop = True if mag <= 200000: freq = 0 print(freq) if playingfreq != 0 and abs(freq-playingfreq) > 20 and abs(lastfreq-playingfreq) > 20: # Stop playing print('Stopping', playingfreq) get('http://10.242.6.228:5000/stopfreq/' + str(playingfreq)) playingfreq = 0 if freq != 0 and playingfreq == 0 and abs(freq-lastfreq) <= 20: # Nothing playing and freq matches last freq print('Starting', freq) get('http://10.242.6.228:5000/startfreq/' + str(freq)) playingfreq = freq lastfreq = freq
-