mirror of
https://git.exozy.me/a/Never-Gonna-Give-Beep-Up
synced 2024-11-21 19:07:31 +00:00
Try mic program again
This commit is contained in:
parent
fa498f76c8
commit
af5e812489
46
mic.py
46
mic.py
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user