Ich versuche meine Maus per Mikrophon zu bedienen.
Das Script, dass ich mir dazu geschrieben habe funktioniert allerdings anders als erwartet.
Ziel:
1. Bei hoher Lautstärke Maus drücken
2. Wenn Fall eins nicht mehr eintrifft Maus loslassen
Problem:
Fall zwei tritt sofort nach Fall eins ein.
Code: Alles auswählen
import sounddevice as sd
import numpy as np
import time
from pynput.mouse import Button, Controller
duration = 10
class MouseController:
def __init__(self):
self.active = False
self.mouse = Controller()
def check_event(self, input):
if input == 1:
if self.active == False:
self.active = True
self.mouse.press(Button.left)
print("press")
else:
if self.active != False:
self.active = False
self.mouse.release(Button.left)
print("release")
mouse_controller = MouseController()
def procces_sound(indata, outdata, frames, time, status):
volume_norm = np.linalg.norm(indata) * 10
if volume_norm >= 50:
mouse_controller.check_event(1)
else:
mouse_controller.check_event(0)
time.sleep(5)
with sd.Stream(callback=procces_sound):
sd.sleep(duration * 1000)