Merhaba. İki gündür bir python kodu üzerinde çalışıyorum fakat 2 gündür yapamadığım bir şey var. Tuşa basılı tutma işini bir türlü çözemedim. Yardımcı olur musunuz?
import speech_recognition as sr
import pyautogui
r = sr.Recognizer()
w_key_pressed = False
while True:
with sr.Microphone() as source:
print("Bir komut söyleyin:")
audio = r.listen(source)
try:
recognized_text = r.recognize_google(audio, language='tr-TR')
print("Söylenen komut: " + recognized_text)
if "İleri" in recognized_text and not w_key_pressed:
pyautogui.keyDown("w")
w_key_pressed = True
elif "Durdur" in recognized_text:
pyautogui.keyUp("w")
w_key_pressed = False
elif "Bulgur" in recognized_text or "Burdur" in recognized_text:
pyautogui.keyUp("w")
w_key_pressed = False
except sr.UnknownValueError:
print("Ses anlaşılamadı.")
except sr.RequestError as e:
print("Ses tanıma hatası: {0}".format(e))
Merhaba,
Bilgisayarımda mikrofon olmadığı için kodunu olduğu gibi çalıştıramadım.
Aşağıdaki şekilde çalıştırdığımda kod çalıştı;
import pyautogui
w_key_pressed = False
while True:
girdi = input("Bir komut söyleyin:")
try:
if girdi == "İleri":
pyautogui.keyDown("w")
w_key_pressed = True
elif girdi == "Durdur":
pyautogui.keyUp("w")
w_key_pressed = False
elif girdi == "Bulgur":
pyautogui.keyUp("w")
w_key_pressed = False
except:
print("Ses anlaşılamadı.")
senin hatanın, kodun bu kısmında olduğunu düşünüyorum.
if "İleri" in recognized_text and not w_key_pressed:
kodu şu şekilde değiştirip dener misin?;
if recognized_text == "İleri" and not w_key_pressed:
Tabi mikrofondan alınan sözün küçük büyük harf duyarlılığı nasıl olur o da şüpheli.
Yani mikrofondan alınan kelimelerin tüm harflerini küçük harfe ya da büyük harfe çevirmek mantıklı olabilir. recognized_text string bir değer döndürüyorsa aşağıdaki şekilde tüm harfleri küçükharfe çevirebilirsin.;
if recognized_text.lower() == "ileri" and not w_key_pressed:
r = sr.Recognizer()
w_key_pressed = False
while True:
with sr.Microphone() as source:
print("Bir komut söyleyin:")
audio = r.listen(source)
try:
recognized_text = r.recognize_google(audio, language='tr-TR')
print("Söylenen komut: " + recognized_text)
if recognized_text == "İleri" and not w_key_pressed:
pyautogui.keyDown("w")
w_key_pressed = True
elif recognized_text == "Durdur" or recognized_text == "Bulgur" or recognized_text == "Burdur":
pyautogui.keyUp("w")
w_key_pressed = False
else:
print("falan filan...")
except sr.UnknownValueError:
print("Ses anlaşılamadı.")
except sr.RequestError as e:
print("Ses tanıma hatası: {0}".format(e))